首先生成抽象语法树(AST)
生成方法:
1.移进时将Number,String或Symbol分别加入对应集合
2.归约时从集合中取出对应的成员,并删除这条产生式里的所有终结符
3.将产生的语法树节点压入栈中
4.当遇到产生式item_list->item_list item或stmt_list->stmt_list stmt时从栈中弹出两颗语法树并按顺序连接起来
5.当遇到非终结符时弹出相应数量的语法树节点,生成新的根节点并把弹出的语法树节点都连接到这个新的根节点上
6.当归约到第0条产生式时检查栈的元素数量,1为正常值,然后对抽象语法树进行前序遍历并生成虚拟机代码
posted on 2010-09-17 22:21
lwch 阅读(736)
评论(0) 编辑 收藏 引用 所属分类:
QLanguage