有没有办法为ANTLRv3生成的Parser和Lexer类指定自定义类名(意味着与语法名无关)?
所以在
的情况下grammar MDD;
//other stufff
自动创建MDDParser和MDDLexer,但我希望将它们作为MDDBaseParser和MDDLexer。
答案 0 :(得分:1)
不,在像MDD
这样的组合语法中,解析器和词法分析器被命名为MDDParser和MDDLexer。组合语法是一种语法,您不指定类型(parser
或lexer
)。
您可以定义单独的解析器和词法分析器语法:
// put this in a file called MDDBaseParser.g
parser grammar MDDBaseParser;
parse
: Token+
;
和
// put this in a file called MDDLexer.g
lexer grammar MDDLexer;
Token
: 'a'..'z'
;
现在,解析器和词法分析器源文件都将与其语法文件具有相同的名称。