2011-04-20 97 views
2

我正在实现一行一行的数据解析器,它通过在循环中调用yyparse来工作。唯一的问题是我没有办法提取除了全局变量之外的数据,我宁愿避免。有小费吗?如何从yyparse返回数据?

回答

6

您可以使用bison的%parse-param指令为yyparse添加参数,该参数可以包含指向解析器中的动作中可写入的某个变量或数据结构的指针(或C++中的引用)。

1

你试图提取什么数据?所有的工作都应该通过规则完成时所调用的动作来完成。

在我的经验

此外,像使用goto方法和全局变量不好的编程风格采用YACC /野牛和lex /柔性的时候发生了很多。我不相信有办法解决这个问题。