处理项目中多个Flex/Bison解析器的最佳方式是什么?多个flex/bison解析器
我写了一个解析器,现在我需要第二个在同一个项目中。到目前为止,在parser1.y
的第三部分,我插入了main(..)
方法,并从那里调用yyparse
。
我想获得是一种有两个不同的解析器(parser1.y
和parser2.y
),并能够从外部函数中使用它们什么(假设在main.cpp
main
)。
我应该使用哪些预防措施导出yyparse
函数.y
以外的文件以及我应该如何处理两个解析器?
PS。我使用g ++编译而不是C++版本的Flex和Bison,我想这样保持它(所以避免在对象中封装解析器)。
当我这样做时,我的词法分析器和解析器有很多对YYTYPE和YYSTYPE等的引用,编译失败。为什么没有被转换?我究竟做错了什么??我不想要一个可重入的解析器,我只想要一个调用两个解析器之一的解析器,然后程序退出。 – TimeHorse 2017-01-07 01:26:18
@TimeHorse:考虑到回答这个问题和你的评论/问题之间的时间差异,我想你应该问一个新问题,用两个小词法/文法例子来解释你遇到的问题(一个MCVE - [MCVE ])并显示您正在使用的构建过程以及您收到的错误消息。如果你没有机会提供这些信息,你会得到一个新的问题,我无法给出答案。尽一切办法回来,在这里留下评论,让我看看你的新问题;考虑在你的这个问题中加入一个链接。 – 2017-01-07 01:49:22