Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有一种标准的方法来实现使用 Flex 和 Bison 对导入的模块进行单独编译?就我而言,当解析器在导入声明中遇到标识符时,它需要以某种方式推送当前状态并开始编译导入的模块,然后弹出状态并继续编译先前推送的模块。有什么线索吗?
您需要构建一个可重入解析器和扫描器。
Bison 有一些实验性的支持,可以用它的“纯”api 来做这件事——你把它放在%define api.pure.y 文件的顶部。同样,flex%option reentrant在它的第一部分有一个你可以用来构建一个可重入扫描器的。有关更多详细信息,请参阅bison 文档和flex 文档。
%define api.pure
%option reentrant