我正在为词法分析器和解析器使用一个.g文件。我在语法文件中包含以下几行:
@header {
package foo.bar;
}
但是,我发现打包行仅放入生成的解析器源文件中,而在FooLexer.java文件中丢失。有人知道如何处理吗?
最佳答案
@header {
package foo.bar;
}
的缩写:
@parser::header {
package foo.bar;
}
要将包声明放入词法分析器中,请执行以下操作:
@lexer::header {
package foo.bar;
}
@members { ... }
也是一样,@parser::members { ... }
的缩写。还有@lexer::members { ... }
将变量/方法等放在词法分析器中。关于java - antlr:生成的Lexer源代码中缺少程序包声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11202450/