1
我爲詞法分析器和解析器使用一個.g文件。我在語法文件以下行:antlr:在生成的Lexer源文件中缺少包聲明
@header {
package foo.bar;
}
不過,我發現,包裝線只放入生成的解析器的源文件,並在文件FooLexer.java失蹤。任何人都知道如何處理這個問題?
我爲詞法分析器和解析器使用一個.g文件。我在語法文件以下行:antlr:在生成的Lexer源文件中缺少包聲明
@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 { ... }
把變量/方法等放在詞法分析器中。
+1是的,這是一個有據可查的功能。 – buc
它在[documentation](http://www.antlr.org/wiki/display/ANTLR3/Grammars)中。 – buc