antlr:生成的Lexer源中缺少包声明

时间:2012-06-26 07:20:03

标签: java antlr

我正在为lexer和parser使用一个.g文件。我在语法文件中有以下几行:

@header {
package foo.bar;
}

但是我发现包行只被放入生成的解析器源文件中,并在FooLexer.java文件中丢失。有谁知道如何处理这个?

1 个答案:

答案 0 :(得分:7)

@header {
package foo.bar;
}

简称:

@parser::header {
package foo.bar;
}

要在词法分析器中放置包声明,请执行:

@lexer::header {
package foo.bar;
}

@members { ... }也是如此,@parser::members { ... }@lexer::members { ... }的缩写。还有{{1}}将变量/方法等放在词法分析器中。