2011-04-20 51 views
2

我正在實現一行一行的數據解析器,它通過在循環中調用yyparse來工作。唯一的問題是我沒有辦法提取除了全局變量之外的數據,我寧願避免。有小費嗎?如何從yyparse返回數據?

回答

6

您可以使用bison的%parse-param指令爲yyparse添加參數,該參數可以包含指向解析器中的動作中可寫入的某個變量或數據結構的指針(或C++中的引用)。

1

你試圖提取什麼數據?所有的工作都應該通過規則完成時所調用的動作來完成。

在我的經驗

此外,像使用goto方法和全局變量不好的編程風格採用YACC /野牛和lex /柔性的時候發生了很多。我不相信有辦法解決這個問題。