有没有办法为 ANTLRv3 生成的 Parser 和 Lexer 类指定自定义类名(意味着独立于语法名)?
所以在这种情况下
grammar MDD;
//other stufff
它会自动创建 MDDParser 和 MDDLexer,但我希望将它们作为 MDDBaseParser 和 MDDLexer。
有没有办法为 ANTLRv3 生成的 Parser 和 Lexer 类指定自定义类名(意味着独立于语法名)?
所以在这种情况下
grammar MDD;
//other stufff
它会自动创建 MDDParser 和 MDDLexer,但我希望将它们作为 MDDBaseParser 和 MDDLexer。
不,在类似的组合语法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'
;
现在解析器和词法分析器源文件都将获得与其语法文件相同的名称。