E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Lua4.0
Lua4.0
参考手册(五)5.1-5.7
为什么80%的码农都做不了架构师?>>>(接上篇)--------------------------------------5API--------------------------------------这节描述Lua的API,也就是宿主程序和Lua交互的一组C函数。所有的API函数和相关联的类型及常量都在文件lua.h中声明。所有的API提供的功能都可以由宏来替代,即使当我们使用术语函数(
weixin_34344677
·
2023-10-08 19:35
lua
Lua4.0
中的函数
把
Lua4.0
里面的函数总结出来,目的是为了和5.1中的函数进行区分,由于工作中经常使用到4.0中的函数,所以列出来也便于查询和学习 标准库 _ALERT _ERRORMESSAGE
·
2015-11-11 11:40
lua
Lua4.0
朋友再见
在这里向
Lua4.0
说再见,准备步入新时代!写个总结,纪念这个不是很圆满的结束。
Lua4.0
的开始是2014年的10月,到现在10个月了。写到中间的时候,一度中断了很久。
晓寒
·
2015-08-23 14:00
lua
Lua4.0
Lua4.0
lua_dofile,lua_dostring
这两个函数的定义都位于ldo.c中,看看这两个函数都做了什么事儿?先来看一下lua_dofile执行文件LUA_API int lua_dofile (lua_State *L, const char *filename) { int status = parse_file(L, filename); if (status == 0) /* parse OK? */ status
晓寒
·
2015-08-21 13:00
lua
Lua4.0
Lua4.0
解释器入口
开始解释器了。解释器的入口文件为lua.c,在文件中找到C语言的main。int main (int argc, char *argv[]) { struct Options opt; int status; opt.toclose = 0; getstacksize(argc, argv, &opt); /* handle option `-s' */ L = lua_op
晓寒
·
2015-08-20 12:00
lua
Lua4.0
Lua4.0
编译器其它
编译器到现在为止,基本上大面上的东西都涉及到了。看一下上节还剩下的问题。----------------------------------------到目前为止的问题:>函数原型优化luaU_optchunk>打印函数原型luaU_printchunk>dump函数原型luaU_dumpchunk----------------------------------------如上所示,还剩这几个
晓寒
·
2015-08-16 18:00
lua
Lua4.0
Lua4.0
字符串相关
这节看一下字符串相关的:TString数据结构如下所示,可以看到,TString不单用于处理字符串,还可用于处理用户自定义数据。/* ** String headers for string table */ /* ** most `malloc' libraries allocate memory in blocks of 8 bytes. TSPACK ** tries to make siz
晓寒
·
2015-08-15 16:00
lua
Lua4.0
Lua4.0
语法分析
Lua最初使用的是Yacc生成的语法分析器,后来改为手写的递归下降语法分析器(Recursivedescentparser)。因为一般在语言发展的早期,语言的语法还没有稳定下来,变动可能会比较多,用工具可以快速的验证自己的想法。当语法稳定下来之后,一般都会采用手写的语法分析器。因为这样程序员是调试可控的,并且一般也能有更好的性能表现。递归下降的语法分析对编程语言的语法有要求。因Lua的语法比较简单
晓寒
·
2015-08-14 13:00
lua
Lua4.0
Lua4.0
词法分析
在说语法分析之前,先说一下词法分析。因为语法分析时会调用词法分析。词法分析相关的文件为llex.h,llex.c。先来看一下词法分析的头文件。RESERVED保留字枚举。Token结构体,词法分析就是把输入源分析成一个个的token。这个词比较常见,不再翻译成中文,因为我也不知道它的准确的中文叫什么。LexState结构体,词法分析状态机,记录当前词法分析的状态以及一些相关的环境。下面的是几个词分
晓寒
·
2015-08-13 14:00
lua
Lua4.0
Lua4.0
ZIO缓冲区
来看一下ZIO缓冲。词法分析读一个一个的字符就是从它读的。或者umdump时也是从它读字符(一个char字节)的。缓冲区隔离了下层数据源的不同,对上层提供一致的读取接口。相关的代码文件是lzio.h和lzio.c。先看一下数据结构:#ifndef ZBSIZE #define ZBSIZE 256 /* buffer size */ #endif struct zio {
晓寒
·
2015-08-12 14:00
lua
Lua4.0
Lua4.0
内存分配
先来看一下lua的内存分配。内存分配的文件是lmem.h及对就的lmem.c。内存分配方法为luaM_realloc和luaM_growaux。其它的内存操作接口是定义的宏,通过调用上面的两个基本方法实现。看一下实现:/* ** generic allocation routine. */ void *luaM_realloc (lua_State *L, void *block, lint32
晓寒
·
2015-08-11 13:00
lua
Lua4.0
Lua4.0
编译入口
解决上一篇的问题,上代码了。C语言程序的入口为main函数,Lua编译器的入口为luac.c文件里的main函数。先来看一下main函数:int main(int argc, const char* argv[]) { Proto** P,*tf; int i=doargs(argc,argv); argc-=i; argv+=i; if (argc 函数原型优化luaU_optchunk
晓寒
·
2015-08-10 12:00
lua
Lua4.0
Lua4.0
正式开始
自己挖的坑,含泪也要填上。自已做的计划,无论多么艰难,都要付诸实施的。上一次写博客中断到现在又过去了几个月。但是,不管怎么样,总算是开始了。这个版本的编译器和解释器是分开的。读代码的时候先编译器再解释器,解释器中包含了编译这一步。先看一下编译大概是个什么过程。编译把源代码转化为字节码(以及程序中的数据信息),字节码可由虚拟机执行。字节码可以保存为文件,保存的二进制文件可以直接交给解释器执行。这样可
晓寒
·
2015-08-09 13:00
lua
Lua4.0
Lua4.0
代码
这个标题是2014.11.13号写的,今天总算是写入内容了。离上次写代码分析时间有点长,都忘记自己之前是如何写的了。不管这些历史包袱了,这次轻装上阵,想到哪就写到哪。开始。参照4.0的INSTALL文档内容,编译下。在Linux机器上比较简单,make一下就好了。在Windows上建工程的话,也算是比较容易。这部分之前有描述,这里就不再重复了。简单的说一下这次的代码分析可能会写什么内容。(注意,这
晓寒
·
2015-08-04 18:00
lua
Lua4.0
Lua4.0
翻译小结
4.0手册翻译完了,小结一下。这一次从2.4跳到4.0,手册绝大部分都得从头翻译。以前的2.4的只参考了一小部分,所以,翻译得进度比较慢。不过,好在现在已经翻译完了。翻译过程中,有几节内容不太熟悉,翻译的可能不好。也有的是因为英语的意思没有太明白。不过,如果遇到不了解的,还是以英文为主。另外,有一点需要解释一下。为什么一个完整的手册要分这么多篇?一个主要的原因是发博客时的字数限制。博客的字数限制是
晓寒
·
2014-11-14 14:00
lua
Lua4.0
Lua4.0
参考手册(九)7-8
(接上篇)--------------------------------------7调试接口--------------------------------------Lua没有内置的调试功能。而是借助于函数和钩子(hook)提供了一个特殊接口,可以用来构建不同种类的调试器,分析器(profile)和一些其它的需要解释器内部信息的工具。这个接口在luadebug.h文件中声明。--------
晓寒
·
2014-11-13 13:00
lua
Lua4.0
Lua4.0
参考手册(八)6.2-6.5
(接上篇)-------------------6.2字符串处理-------------------这个库提供字符串处理的通用函数,如查找,提取子串和模式匹配。在Lua中索引一个字符串的时候,第一个字符的索引是1(不像C中是0)。另外,索引可以为负数,负数被解释为逆向索引,从字符串的结尾开始。所以,最后一个字符位置是-1,以此类推。strbyte(s[,i])返回s的第i个字符的内部数值码(例如
晓寒
·
2014-11-12 13:00
lua
Lua4.0
Lua4.0
参考手册(七)6.1
(接上篇)--------------------------------------6标准库--------------------------------------标准库提供了一些有用的函数,这些函数直接由标准API实现。因此,它们并非语言必需的部分,并且作为单独的C模块被提供。目前,Lua有以下标准库:>基本库;>字符串处理;>数学函数(sin,log,等)>输入输出(和一些系统功能)为了
晓寒
·
2014-11-11 12:00
lua
Lua4.0
Lua4.0
参考手册(六)5.8-5.14
(接上篇)-------------------5.8执行Lua代码-------------------一个宿主程序可以执行写在文件中或在字符串中的Lua块,使用下面的函数: int lua_dofile (lua_State *L, const char *filename); int lua_dostring (lua_State *L, const char *string)
晓寒
·
2014-11-10 13:00
lua
Lua4.0
Lua4.0
参考手册(五)5.1-5.7
(接上篇)--------------------------------------5API--------------------------------------这节描述Lua的API,也就是宿主程序和Lua交互的一组C函数。所有的API函数和相关联的类型及常量都在文件lua.h中声明。所有的API提供的功能都可以由宏来替代,即使当我们使用术语函数(``function'')。因为这样的宏
晓寒
·
2014-11-07 14:00
lua
Lua4.0
Lua4.0
参考手册(四)4.6-4.8
(接上篇)-------------------4.6可见性和Upvalue-------------------一个函数体可以引用它自己的局部变量(包括它的参数)和全局变量,只要它们没有被函数中同名的局部变量所隐藏(shadowed)。一个不可以使用包含它的函数的局部变量,因为这样的变量可能在函数调用的时候已经不存在了。然而,一个函数可通过upvalue使用包含它的函数中的局部变量。upvalu
晓寒
·
2014-11-05 14:00
lua
Lua4.0
Lua4.0
参考手册(三)4.5
(接上篇)-------------------4.5表达式----------------------------4.5.1基本表达式---------Lua中基本表达式是: exp::=`('exp`)' exp::=nil exp::=number exp::=literal exp::=var exp::=upvalue exp::=function exp
晓寒
·
2014-11-04 13:00
lua
Lua4.0
Lua4.0
参考手册(二)4.1-4.4
(接上篇)--------------------------------------4语言--------------------------------------这节描述Lua的词法,语法和语义。-------------------4.1词法约定-------------------Lua中的标识符可以是任何字母,数字,下划线组成的字符串,且首字母不可为数字。这符合大多数语言中标识符的定义
晓寒
·
2014-11-03 13:00
lua
Lua4.0
Lua4.0
参考手册(一)1-3
-------------------以下是正文-------------------编程语言
Lua4.0
的参考手册--------------------------------------1简介--
晓寒
·
2014-10-30 12:00
lua
Lua4.0
Lua4.0
解释器文档
解释器文档(lua.html)---------------------------------------------------------名字lua-Lua解释器概要lua[arguments]描述lua是独立的Lua解释器。它加载并执行Lua程序,程序可以是文本源代码形式,或由Lua编译器luac输出的预编译二进制形式。lua可以用作批处理解释器,也可用做交互式解释。参数可以是选项,赋值,
晓寒
·
2014-10-28 12:00
lua
Lua4.0
Lua4.0
编译器文档
编译器文档(luac.html):---------------------------------------------------------名字luac-Lua编译器概要luac[options][filenames]描述luac是Lua编译器。它将由Lua编程语言写成的程序翻译成二进制文件。通过在C语言中调用lua_dofile或在Lua中调用dofile可以加载和执行这个生成的二进制文
晓寒
·
2014-10-26 17:00
lua
Lua4.0
Lua4.0
开篇
标题说是4.0,其实这里分析的是4.0.1。不过按照Lua的版本号规则,小号只做bugfix。所以,下面的所说的4.0指的就是release4.0.1(在不引起混淆的情况下)。4.0发布于2000年11月,4.0.1发布于2002.7,我们看的上一个版本2.4则是发布于1996年5月,怎么说这个版本也是二十一世纪的了。4.0算是比较新的版本了,因为它有在线版的代码和文档。在线文档在http://w
晓寒
·
2014-10-24 13:00
lua
Lua4.0
Lua 4.0 学习 (八) for语句和新的指令格式
Lua4.0
比起3.2,3.1有了一些改进,见HISTORY文件.下面对几个关心的摘要:1.新的break和for语句.语法参考:http://wenku.baidu.com/view/159bc8aad1f34693daef3e70
刘军兴
·
2013-12-31 10:00
lua的随机数问题
我现在使用的4.0版本的LUA,看的代码是5.0的,呵呵
LUA4.0
版本
老茂
·
2009-05-13 10:00
用
lua4.0
模仿c++的指针和类
1.用lua模仿c++的指针: 很简单,c++里的指针的内容就是内存地址。用lua进行模仿,只要用一个全局table模拟内存空间,然后将table下标作为指针地址就行了。 请看代码:_g_pz = {};--模拟内存空间function _new(something, somem_type)--新建指针 something = {}; m_type = "m_type";
corivSky
·
2008-11-30 09:00
C++
function
table
delete
Class
lua
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他