我有一个关于如何使用LEX / YACC解析具有相同结构的嵌套文件的问题。
假设我有一个具有以下结构的文件
File_1
....
include File_2
include File_3
....
一种可能的方法是每次读取一行(例如
)时在YACC文件中调用函数yyparse() include File_n
但我理解这种方法并不好,根据我缺乏经验和LEX / YACC知识不足,会有两个针对两个YACC解析函数的LEX实例,这可能会导致奇怪的问题,不是吗?。
所以,我想知道我有哪些其他选择?
谢谢!
答案 0 :(得分:0)
由于我的问题没有得到很多关注,我想我的问题并没有以可理解的方式提出。无论如何,我要发布我发现的解决方案。我按照this教程解决了lex文件中的问题。
基本上我必须定义一个堆栈,以便在找到include语句时保存当前正在解析的文件的当前缓冲区状态,我开始解析include文件,当包含的文件完成时我切换回到第一个文件。
我希望这个答案可以帮助周围的人。
最佳.-