首先生成抽象語法樹(AST)
生成方法:
1.移進時將Number,String或Symbol分別加入對應(yīng)集合
2.歸約時從集合中取出對應(yīng)的成員,并刪除這條產(chǎn)生式里的所有終結(jié)符
3.將產(chǎn)生的語法樹節(jié)點壓入棧中
4.當遇到產(chǎn)生式item_list->item_list item或stmt_list->stmt_list stmt時從棧中彈出兩顆語法樹并按順序連接起來
5.當遇到非終結(jié)符時彈出相應(yīng)數(shù)量的語法樹節(jié)點,生成新的根節(jié)點并把彈出的語法樹節(jié)點都連接到這個新的根節(jié)點上
6.當歸約到第0條產(chǎn)生式時檢查棧的元素數(shù)量,1為正常值,然后對抽象語法樹進行前序遍歷并生成虛擬機代碼
posted on 2010-09-17 22:21
lwch 閱讀(756)
評論(0) 編輯 收藏 引用 所屬分類:
QLanguage