前几节实现了流程控制结构,如if条件选择,for循环控制等,但是编程经常需要将常用的代码做成模块的形式,方便调用和维护,通常的一个做法就是使用函 数,将有用的代码放在一个函数定义里,需...
前几节实现了if条件控制语句,这节v0.0.11版本就实现了for循环控制结构。 本节v0.0.11版本的源代码下载地址为:http://pan.baidu.com/share/link?shareid=141552&...
上一节虽然实现了if-elif-else-endif的条件控制结构,但是控制结构之间还无法相互嵌入,即if结构里还不能包含其他的if结构。本节通 过引入堆栈来实现流程之间的相互嵌入,同时还实现了逗号,以...
之前的版本对应的脚本代码都是按顺序执行的,没有if-elif-else之类的流程控制结构,本节的v0.0.9版本就实现了if-elif- else-endif的条件控制结构。类似C语言的if(...)....else if(....)....else.......
前几节,编译器里的parser.c用的构建语法树的express函数,不方便扩展新的运算符,而且也不方便进行优先级的比较,BUG也多,所以这一节 将采用新的语法解析函数express2来生成AST抽象语法树,...
回顾上一节,完成了加减乘除和字符串的打印,不过print还无法直接将加减乘除的表达式结果显示出来。这一节,将实现这个功能,并且修复几个代码文件里的BUG。 本节v0.0.7版本的源代码下载地址为...
上一节完成了简单的动态脚本的实现,但是还只能给变量赋值,打印变量,整数。本节v0.0.6的版本,让动态脚本能够做一些更有用的东东,在linux系统下有一种bc的命令行下的小工具,可以实现加减乘除的运算,还...
上一节完成了AST抽象语法树的构建,有了抽象语法树就可以将语法树转为真实的汇编中间码,再创建一个虚拟机来解释执行这些汇编中间代码就可以完成一个动态脚本该做的事了。 本节v0.0.5版本的代码...
上一节完成了单条语句的抽象语法树的构建,而且单条表达式里还只能使用变量标示符,不能使用数字,本节将完成多条语句的AST的构建工作,并可以在表达式里使用数字,还为语法树的每个节点元素增加了行...
上一节完成了初始化抽象语法树的工作,这一节将会使用初始化抽象语法树里存放的节点信息构建一个可以表达单条语句的语法树。 本节v0.0.3版本的代码下载地址:http://sourceforge.net/projects/...