什么是在项目中处理多个Flex/Bison解析器的最佳方法?
我编写了一个解析器,现在我需要在同一项目中使用第二个解析器。到目前为止,在parser1.y的第三部分中,我插入了main(..)方法并从那里调用了yyparse。
我想要实现的是拥有两个不同的解析器(parser1.y和parser2.y),并能够从外部函数(假设是main.cpp中的main)中使用它们。
我应该采取哪些预防措施来将yyparse函数导出到.y文件之外,并如何处理两个解析器?
PS. 我正在使用g++进行编译,但不是Flex和Bison的C++版本,我希望保持这种方式(因此避免将解析器封装在对象内)。
我编写了一个解析器,现在我需要在同一项目中使用第二个解析器。到目前为止,在parser1.y的第三部分中,我插入了main(..)方法并从那里调用了yyparse。
我想要实现的是拥有两个不同的解析器(parser1.y和parser2.y),并能够从外部函数(假设是main.cpp中的main)中使用它们。
我应该采取哪些预防措施来将yyparse函数导出到.y文件之外,并如何处理两个解析器?
PS. 我正在使用g++进行编译,但不是Flex和Bison的C++版本,我希望保持这种方式(因此避免将解析器封装在对象内)。
%define api.prefix {PREFIX}
,否则会收到警告。 - Michael Mrozek