在ANTLR4中处理"导入"语句的最简单方法



我使用的是ANTLR4,并且在我的语法中有一个"import"语句。

ANTLR4是否有一个选项来自动打开和解析输入文件,而不是在我的访问者(为每个"import"声明创建另一个解析器/词法分析器和访问者)?

"相当"肯定我已经看到它了,但是我再也找不到它了。

Inside my grammar:

importStatement : 'import' ID ';' // Here ? an action (Java code)
                                  // to prepend an AST to my current AST ?

输入文件内部:

Import test;

没有内置的功能,主要是因为每种需要它的语言都有自己的一套规则来完成它。此外,这可以快速地使整个项目的解析操作从O(n)变为O(n²)(即解析每个文件一次,到解析每个文件的整个项目)。

如果你的语言允许你在解析导入之前构建一个正确的解析树(例如,它没有任意的#define语句可以出现在导入中),那么你应该庆幸你不是C/c++,在解析导入语句之前独立解析每个文件。

相关内容

  • 没有找到相关文章

最新更新