加载中
Lua4.0 正式开始

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

2015/08/09 13:32
398
Lua4.0 开篇

标题说是 4.0,其实这里分析的是 4.0.1。不过按照 Lua 的版本号规则,小号只做 bug fix 。所以,下面的所说的 4.0 指的就是 release 4.0.1(在不引起混淆的情况下)。 4.0 发布于 2000 年 11...

2014/10/24 13:17
550
Lua4.0 语法分析

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

2015/08/14 13:19
562
Lua4.0 朋友再见

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

2015/08/23 14:24
305
Lua4.0 代码

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

2015/08/04 18:48
192
Lua4.0 编译器其它

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

2015/08/16 18:00
233
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 解释器文档

解释器文档(lua.html) --------------------------------------------------------- 名字 lua - Lua 解释器 概要 lua [ arguments ] 描述 lua 是独立的 Lua 解释器。它加载并执行 Lua 程序...

2014/10/28 12:58
310
Lua4.0 内存分配

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

2015/08/11 13:08
1K
Lua4.0 编译器文档

编译器文档(luac.html): --------------------------------------------------------- 名字 luac - Lua 编译器 概要 luac [ options ] [ filenames ] 描述 luac 是 Lua 编译器。它将由 Lu...

2014/10/26 17:30
476
Lua4.0 翻译小结

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

2014/11/14 14:08
306
Lua4.0 编译入口

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

2015/08/10 12:46
675
Lua4.0 ZIO缓冲区

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

2015/08/12 14:02
242
Lua4.0 词法分析

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

2015/08/13 14:09
406
Lua4.0 字符串相关

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

2015/08/15 16:06
343
Lua4.0 参考手册(七)6.1

(接上篇) -------------------------------------- 6 标准库 -------------------------------------- 标准库提供了一些有用的函数,这些函数直接由标准 API 实现。因此,它们并非语言必需...

2014/11/11 12:51
719
Lua4.0 参考手册(一)1-3

说明: 这个文档是 doc 目录里的 manual.html 文件。 原文版权归原作者所有,这篇翻译只是作为学习之用。如果翻译有不当之处,请参考原文。 -------------------以下是正文-----------------...

2014/10/30 12:47
777
Lua4.0 参考手册(三)4.5

(接上篇) ------------------- 4.5 表达式 ------------------- --------- 4.5.1 基本表达式 --------- Lua 中基本表达式是: exp ::= `(' exp `)' exp ::= nil exp ::= number exp ::= l...

2014/11/04 13:05
290
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 参考手册(四)4.6-4.8

(接上篇) ------------------- 4.6 可见性和 Upvalue ------------------- 一个函数体可以引用它自己的局部变量(包括它的参数)和全局变量,只要它们没有被函数中同名的局部变量所隐藏(s...

2014/11/05 14:21
389

没有更多内容

加载失败,请刷新页面

返回顶部
顶部