Lua_5.1_参考手册,LuizHenriquedeFigueiredo,WaldemarCeles云风译right©,PUC--介绍Lua是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。Lua也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。Lua以一个用cleanC写成的库形式提供。(所谓CleanC,指的ANSIC和C++中共通的一个子集)作为一个扩展式语言,Lua没有"main"程序的概念:它只能嵌入一个宿主程序中工作,这个宿主程序被称作embeddingprogram或简称为host。宿主程序可以通过调用函数执行一小段Lua代码,可以读写Lua变量,可以注入C函数让Lua代码调用。这些扩展的C函数,可以大大的扩展了Lua可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。Lua的官方发布版就包含了一个叫做lua的简单的宿主程序,它用Lua库提供了一个保证独立的Lua解释器。Lua是一个自由软件,它的使用许可决定了对它的使用过程一般没有任何保证。这份手册中描述的东西的实现,可以在Lua的官方网站,跟其它的许多参考手册一样,这份文档有些地方比较枯燥。关于Lua的设计想法的探讨,可以看看Lua网站上提供的技术论文。有关用Lua编程的细节介绍,可以读一下Roberto的书,ProgramminginLua(SecondEdition)。2-语言这一节从词法、语法、句法上描述Lua。换句话说,这一节描述了哪些token(符记)是有效的,它们如何被组合起来,这些组合方式有什么含义。关于语言的构成概念将用常见的扩展BNF表达式写出。也就是这个样子:{a}意思是0或多个a,[a]意思是一个可选的a。非最终的符号会保留原来的样子,关键字则看起来像这样kword,其它最终的符号则写成`=´。完整的Lua语法可以在本手册最后找到。-词法约定Lua中用到的名字(也称作标识符)可以是任何非数字开头的字母、数字、下划线组成的字符串。这符合几乎所有编程语言中关于名字的定义。(字母的定义依赖于当前环境:系统环境中定义的字母表中的字母都可以被用于标识符。)标识符用来命名变量,或作为表的域名。下面的关键字是保留的,不能用作名字:andbreakdoelseelseifendfalseforfunctionifinlocalnilnotorrepeatreturnthentrueuntilwhileLua是一个大小写敏感的语言:and是一个保留字,但是And和AND则是两个不同的合法的名字。一般约定,以下划线开头连接一串大写字母的名字(比如_VERSION)被保留用于Lua内部全局变量。下面这些是其它的token:+-*/%^#==~=<=>=<>=(){}[];:,......字符串既可以用一对单引号引起,也可以是双引号,里面还可以包含类似C的转义符:'\a'(响铃),'\b'(退格),'\f'(表单),'\n'(换行),'\r'(回车),'\t'(横向制表),'\v'(纵向制表),'\\'(反斜杠),'\"'(双引号),以及'\''(单引号)。而且,如果在一个反斜杠后跟了一个真正的换行符,其结果就是在字符串中产生一个换行符。我们还可以用反斜杠加数字的形式\ddd来描述一个字符。这里,ddd是一串最多三位的十进制数字。(注意,如果需要在这种描述方法后接一个是数字的字符,那么反斜杠后必须写满三个数字。)Lua中的字符串可以包含任何8位的值。包括用'\0'表示的零。只有在你需要把不同的引号、换行、反斜杠、或是零结束符这些字符置入字符串时,你才必须使用转义符。别的任何字符都可以直接写在文本里。(一些控制符可以会影响文件系统造成某些问题,但是不会引起Lua的任何问题。)字符串还可以用一种长括号括起来的方式定义。我们把两个正的方括号间插入n个等号定义为第n级正长括号。就是说,0级正的长括号写作[[,一级正的长括号写作[=[,如此等等。反的长扩展也作类似定义;举个例子,4级反的长括号写作]====]。一个长字符串可以由任何一级的正的长括号开始,而由第一个碰到的同级反的长括号结束。整个词法分析过程将不受分行限制,不处理任何转意符,并且忽略掉任何不同级别的长括号。这种方式描述的字符串可以包含任何东西,当然特定级别的反长括号除外。另一个约定是,当正的长括号后面立即跟了一个换行符,这个换行符就不包含在这个字符串内。举个例子,假设一个系统使用ASCII码(这时,'a'编码为97,换行符编码为10,'1'编码为49),下面五种方式描述了完全相同的字符串
Lua 5.1 参考手册 来自淘豆网m.daumloan.com转载请标明出处.