lua酱~
文章平均质量分 86
umier2000
这个作者很懒,什么都没留下…
展开
-
Lua5.1代码阅读(一):lua.c
(未完成,待修改) 一、Lua5.1相关资源下载见:http://luabinaries.sourceforge.net/download.html在线版:http://www.lua.org/source/5.1/关于它的代码有一个阅读顺序,可以参考这篇文章:http://www.reddit.com/comments/63hth/ask_reddit_which...原创 2011-08-16 05:10:18 · 246 阅读 · 0 评论 -
Lua5.1代码阅读(二):llex.h/llex.c
Lua5.1代码阅读(二):llex.h/llex.c (未完成,待修改) 一、作用和参考资料 llex.c是Lua的词法分析器(把单个输入字符串切割为多个输出符号) 参考: 1. Lua 5.1.3源代码分析之词法分析 By 天地沙鸥 http://xenyinzen.wordpress.com/2009/12/09/lua-5-1-3%E6%BA%90%E...原创 2011-08-19 17:31:40 · 346 阅读 · 0 评论 -
Lua5.1代码阅读(三):lcode.h/lcode.c
Lua5.1代码阅读(三):lcode.h/lcode.c (未完成,待修改) 一、概述 lcode.h/lcode.c是Lua的代码生成器, 用于优化和生成目标二进制代码。 lcode.c的所有导出函数只被lparser.c引用。 lcode内部的函数引用图如下: 二、宏 1. #define NO_JUMP (-1) 2. #defin...原创 2011-10-03 10:23:56 · 270 阅读 · 0 评论 -
Lua5.1代码阅读(四):lparser.h/lparser.c
(未完成,待修改) 一、概述 lparser.h/lparser.c是Lua的语法分析器。 用于分析Lua脚本的语法以及把上下文信息传递给代码生成器, 完成文本代码到二进制代码的转换,以及语法检查。 在线版: http://www.lua.org/source/5.1/lparser.h.html http://www.lua.org/source/5.1/l...原创 2011-10-06 08:33:07 · 349 阅读 · 0 评论 -
Lua5.1代码阅读(七):lvm.h/lvm.c
Lua5.1代码阅读(七):lvm.h/lvm.c (未完成,待修改)一、概览 lvm.h/lvm.c的作用是提供底层的Lua虚拟机。 这个模块主要是用于循环读取并分解指令, 然后根据其操作码的枚举值进行处理或跳转到Lua的其它模块。 内部的函数引用图如下: 参考资料: * A No-Frills Introduction to Lua...原创 2011-12-20 09:38:10 · 1416 阅读 · 0 评论 -
Lua5.1代码阅读(八):ldo.h/ldo.c
Lua5.1代码阅读(八):ldo.h/ldo.c (未完成,待修改)一、概览 ldo.h/ldo.c描述Lua的堆栈和调用的结构。 提供对调用、协程、异常等复杂控制流的支持。 模块中对外公开的API主要分为以下几类: (1) 错误恢复: luaD_seterrorobj,luaD_throw,luaD_rawrunprotected,luaD_pcall...原创 2012-05-02 16:06:27 · 432 阅读 · 0 评论 -
Lua5.1代码阅读(五):lundump.h/lundump.c
Lua5.1代码阅读(五):lundump.h/lundump.c (未完成,待修改) 一、概述 lundump.h和lundump.c是lua预编译二进制代码的加载器。 不同于llex/lparser/lcode串联起来对文本脚本的解析和编译, lundump解析的是二进制脚本文件(由luac编译生成)。 它的公开接口luaU_undump和luaY_par...原创 2011-11-08 09:57:11 · 348 阅读 · 0 评论 -
Lua5.1代码阅读(六):ltm.h/ltm.c
Lua5.1代码阅读(六):ltm.h/ltm.c (未完成,待修改) 一、概览 ltm.h/ltm.c的作用是提供查询元方法(元方法的值可能是函数,也可能是非函数的值)的API。 源码中把元方法称为标签方法(tag method)。 Lua的元方法有点像C++的运算符重载,用于覆盖一些Lua内部定义的默认行为。 参考链接: 1. LUA源码分析五:元表...原创 2011-11-21 00:28:48 · 480 阅读 · 0 评论 -
Lua5.1代码修改记录
下面的补丁只是用来学习代码,无任何实际用途。 --------------------------------------1. 替换LUAI_THROW和LUAI_TRY:使用特定于Windows的__try和__except扩展关键词(见msdn),用Access Violation(地址违例)来模拟抛异常,替换原有的setjmp和longjmp实现。 ...原创 2011-11-27 00:07:48 · 216 阅读 · 0 评论