首先生成抽象語法樹(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 閱讀(751)
評論(0) 編輯 收藏 引用 所屬分類:
QLanguage