2 - 语言
本节描述Lua的词法、语法和语义。换句话说,本节描述了哪些记号(token)是有效的,它们可以怎样组合,以及组合的含义。
语言的构成概念将用常见的扩展的BNF记法(notation)进行说明,其中{a}?表示?0或多个a,[a]?表示一个可选的a。非最终符号(non-terminal)原样显示,关键字显示似kword,其他最终符号(terminal symbols)显示似`=´。Lua的完整语法放在本手册的最后。
2.1 - 词法约定
Lua中的名称(也称为标识符(identifier))是非数字开头的字母、数字和下划线构成的任何字符串。这与多数语言的名称定义相符。(字母的定义依赖于当前环境,其中的字母表中的任何字符都可用于标识符。)标识符用于命名变量和表的字段。
下面的关键字是保留的,不能用作名字:
and break do else elseif
end false for function if
in local nil not or
rep……