使用LEX / YACC解析嵌套文件

时间:2014-01-27 14:28:11

标签: parsing nested yacc lex

我有一个关于如何使用LEX / YACC解析具有相同结构的嵌套文件的问题。

假设我有一个具有以下结构的文件

  File_1
      ....
      include File_2
      include File_3
      ....

一种可能的方法是每次读取一行(例如

)时在YACC文件中调用函数yyparse()
 include File_n

但我理解这种方法并不好,根据我缺乏经验和LEX / YACC知识不足,会有两个针对两个YACC解析函数的LEX实例,这可能会导致奇怪的问题,不是吗?。

所以,我想知道我有哪些其他选择?

谢谢!

1 个答案:

答案 0 :(得分:0)

经过一些研究日后,我想出了如何解决我的问题。

由于我的问题没有得到很多关注,我想我的问题并没有以可理解的方式提出。无论如何,我要发布我发现的解决方案。我按照this教程解决了lex文件中的问题。

基本上我必须定义一个堆栈,以便在找到include语句时保存当前正在解析的文件的当前缓冲区状态,我开始解析include文件,当包含的文件完成时我切换回到第一个文件。

我希望这个答案可以帮助周围的人。

最佳.-