gpt4 book ai didi

c - 如何在 flex/bison 中包含导入

转载 作者:行者123 更新时间:2023-11-30 16:00:08 26 4
gpt4 key购买 nike

我正在制作一个编程语言转换器,并且它具有导入和包含功能。

例如:

 import com.nanana.MyClassFile
include "myfile.any"

我是新手,这意味着我迷失了如何做到这一点。我想知道是否可以在解析一个文件的同时解析另一个文件。

我该怎么做?

编辑:

我在主函数中用来解析文件的代码是:

yyin = fopen( argv[1], "r" ); 
return yyparse();

我可以使用相同的代码,还是有另一个代码?

最佳答案

词法分析器使用 YY_INPUT 宏来获取其数据。在解析器中,一旦解析了 include“myfile.any”命令,解析器将需要打开新文件并安排其数据从 YY_INPUT 返回,而不是原始文件。一旦到达 EOF,YY_INPUT 将需要继续从原始文件读取。您可能希望将这些打开的文件存储在堆栈上,以便包含的文件可以依次包含其他文件,但要注意无限的包含循环。

关于c - 如何在 flex/bison 中包含导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com