1
在lemon我能夠使用解析函數的第三個參數來返回結果給調用者,當起始符號減少。野牛回傳得到的AST
我如何在野牛身上做同樣的事情?在最終致電yypush_parse()
之後,在啓動符號的動作代碼中將該值分配給$$並將其作爲「yy minor」值分配給該值是否足夠?
解析器是推和純的。線程安全是必須的。
在lemon我能夠使用解析函數的第三個參數來返回結果給調用者,當起始符號減少。野牛回傳得到的AST
我如何在野牛身上做同樣的事情?在最終致電yypush_parse()
之後,在啓動符號的動作代碼中將該值分配給$$並將其作爲「yy minor」值分配給該值是否足夠?
解析器是推和純的。線程安全是必須的。
如果你想要一個AST,通過創建自己的節點並將它們分配給$$,你幾乎必須用bison/yacc自己動手做。
http://epaperpress.com/lexandyacc/(查看Calculator-> Yacc輸入中的.y文件)或http://www.progtools.org/compilers/tutorials/cxx_and_bison/cxx_and_bison.html的示例可能會爲您提供有關如何執行此操作的想法。
不,不是一個騙局,我有一個像固定框架內的線程安全的特定需求:一個純推式解析器。 – Flavius 2011-04-15 10:34:16