lua

引入

lua是一个支持过程编程的扩展式语言, 他同时支持相关数据描述设施. 他同时也支持面向对象编程, 函数式编程,以及数据驱动编程。通常lua被用来作为一个强力的轻量级的脚本语言使用。
lua语言以一个c库存在,使用标准c语言(Ansi C和c++的子集)

作为一个扩展式语言, lua完全没有成为主程序的野心: 他的工作方式完全是嵌入主程序(宿主程序或者简称主程序)中。宿主程序可以调用函数去执行一块lua代码,也可以读写lua变量,还可以注册一些列c函数提供给lua调用
lua发行包中包含了一个叫做lua的宿主程序,是一个使用lua库实现的一个可以独立运行的lua解释器

lua是免费软件, 被提供出来无需任何代价即可使用, 就如license证书中所描述的那样。该手册中所有的实现与描述都可以在官网www.lua.org中找到

语言

这一节描述了lua语言的词法, 语法, 语义等内容。即这一节描述哪些词法单元是正确的, 他们是如何组合在一起的, 他们又有什么意义
lua语言通过扩展的bnf语法来描述。即{a}表示重复0个或多个a, [a]表示可选的a。 非终结符会被这样书写non-terminal, 关键词会被写成kwords,其他终结符则会被写成’=’, 在文档的末尾会给出完整的bnf语法

词法

在lua中标识符可以由任意多的字母数字(不可用于开头)下划线组成。这个定义方式与现有的大部分语言都切合(字母的定义取决于)
标识符一般用于命名变量以及表中的字段,以下关键词不允许作为标识符存在

1
2
3
4
and break do else elseif
end false for function if
in local nil not or
repeat return then true util while

lua是一个大小写敏感的语言, 虽然and是一个保留字, 但是And和AND就是两个合法的标识符。约定俗称的, 以下划线开头跟着大写字母的表示符一般被lua自己使用用作全局变量

好饿好饿好饿 我真的好饿