加载中
Lua5.0 非正式总结

如您所愿,这个 Lua 代码分析系列结束了。 Lua 老版本代码的“考古工作”暂时告一段落。 以后应该也不会再拾起来了。 从写第一篇到现在已经快两年了,这是个不短的时间。 像有的网友说的,这...

2015/09/09 13:18
285
Lua5.0 示例程序抽样

Lua5.0 的 test 目录里是一些 Lua 示例程序,有些挺有意思的,这里拿出来看看。 简单的介绍在 README 文件里有描述。 这些程序应该就是原作者的团队写的,有的程序的含金量很高,也很有意思。...

2015/09/08 13:10
426
Lua5.0 语法分析

写着写着,又来到了这里。 这次是写还是不写,嗯,这是一个问题。 先说点题外话,没准也算是题内。 经过这段时间的代码阅读,分析,调试,感觉自己的代码控制力提高了一些。 当然了,不单是 ...

2015/09/06 13:39
230
Lua5.0 词法分析

语法分析器会调用词法分析器。 在语法分析之前,简单的看一下词法分析。 内存管理和 ZIO 输入在词法分析中会用到,因为它们相对比较孤立,不影响主流程的阅读。 上一个版本也看过它们了,这里...

2015/09/01 20:54
315
Lua5.0 语法解析之路

上回说到 luaL_loadfile ,这次把它的调用展开到语法分析器 parser. 先一下它的函数定义 LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {   LoadF lf;   ...

2015/08/31 13:16
778
Lua5.0 编译器入口

编译器相关的文主要是 luac.c 。 看一下它的内容: int main(int argc, char* argv[]) {  lua_State* L;  Proto* f;  int i=doargs(argc,argv);  argc-=i; argv+=i;  if (argc...

2015/08/30 22:31
445
Lua5.0 第零篇

Lua5.0 版本从这里下载: www.lua.org/ftp/lua-5.0.tar.gz 它的在线文档在这里: http://www.lua.org/manual/5.0/ 很好,终于进入版本五时代了。 打开下载下来的压缩包,好多的目录和文件。不...

2015/08/29 13:06
279
Lua4.0 朋友再见

在这里向 Lua4.0 说再见,准备步入新时代! 写个总结,纪念这个不是很圆满的结束。 Lua4.0 的开始是 2014 年的 10 月,到现在 10 个月了。 写到中间的时候,一度中断了很久。 等到接上的时候...

2015/08/23 14:24
305
Lua4.0 lua_dofile,lua_dostring

这两个函数的定义都位于 ldo.c 中,看看这两个函数都做了什么事儿? 先来看一下 lua_dofile 执行文件 LUA_API int lua_dofile (lua_State *L, const char *filename) {   int sta...

2015/08/21 13:12
1.2W
Lua4.0 解释器入口

开始解释器了。 解释器的入口文件为 lua.c,在文件中找到 C 语言的 main。 int main (int argc, char *argv[]) {   struct Options opt;   int status;   opt.toclose = 0...

2015/08/20 12:52
5.4K
Lua4.0 编译器其它

编译器到现在为止,基本上大面上的东西都涉及到了。 看一下上节还剩下的问题。 ---------------------------------------- 到目前为止的问题: > 函数原型优化 luaU_optchunk > 打印函数原型...

2015/08/16 18:00
233
Lua4.0 字符串相关

这节看一下字符串相关的: TString 数据结构如下所示,可以看到,TString 不单用于处理字符串,还可用于处理用户自定义数据。 /* ** String headers for string table */ /* ** most ...

2015/08/15 16:06
343
Lua4.0 语法分析

Lua 最初使用的是 Yacc 生成的语法分析器,后来改为手写的递归下降语法分析器(Recursive descent parser)。因为一般在语言发展的早期,语言的语法还没有稳定下来,变动可能会比较多,用工具...

2015/08/14 13:19
562
Lua4.0 词法分析

在说语法分析之前,先说一下词法分析。 因为语法分析时会调用词法分析。 词法分析相关的文件为 llex.h,llex.c。 先来看一下词法分析的头文件。 RESERVED 保留字枚举。 Token 结构体,词法分析...

2015/08/13 14:09
406
Lua4.0 ZIO缓冲区

来看一下 ZIO 缓冲。 词法分析读一个一个的字符就是从它读的。 或者 umdump 时也是从它读字符(一个 char 字节)的。 缓冲区隔离了下层数据源的不同,对上层提供一致的读取接口。 相关的代码...

2015/08/12 14:02
242
Lua4.0 内存分配

先来看一下 lua 的内存分配。 内存分配的文件是 lmem.h 及对就的 lmem.c。 内存分配方法为 luaM_realloc 和 luaM_growaux。 其它的内存操作接口是定义的宏,通过调用上面的两个基本方法实现。...

2015/08/11 13:08
1K
Lua4.0 编译入口

解决上一篇的问题,上代码了。 C 语言程序的入口为 main 函数,Lua 编译器的入口为 luac.c 文件里的 main 函数。 先来看一下 main 函数: int main(int argc, const char* argv[]) {  ...

2015/08/10 12:46
675
Lua4.0 正式开始

自己挖的坑,含泪也要填上。 自已做的计划,无论多么艰难,都要付诸实施的。 上一次写博客中断到现在又过去了几个月。 但是,不管怎么样,总算是开始了。 这个版本的编译器和解释器是分开的。...

2015/08/09 13:32
398
Lua4.0 代码

这个标题是 2014.11.13 号写的,今天总算是写入内容了。 离上次写代码分析时间有点长,都忘记自己之前是如何写的了。 不管这些历史包袱了,这次轻装上阵,想到哪就写到哪。 开始。 参照 4.0 ...

2015/08/04 18:48
192
Lua4.0 翻译小结

4.0 手册翻译完了,小结一下。 这一次从 2.4 跳到 4.0,手册绝大部分都得从头翻译。以前的 2.4 的只参考了一小部分,所以,翻译得进度比较慢。不过,好在现在已经翻译完了。 翻译过程中,有几...

2014/11/14 14:08
306

没有更多内容

加载失败,请刷新页面

返回顶部
顶部