ANTLRv3:设置自定义Lexer和Parser类名称

时间:2010-04-06 07:08:15

标签: antlr antlr3 context-free-grammar

有没有办法为ANTLRv3生成的Parser和Lexer类指定自定义类名(意味着与语法名无关)?

所以在

的情况下
grammar MDD;

//other stufff

自动创建MDDParser和MDDLexer,但我希望将它们作为MDDBaseParser和MDDLexer。

1 个答案:

答案 0 :(得分:1)

不,在像MDD这样的组合语法中,解析器和词法分析器被命名为MDDParser和MDDLexer。组合语法是一种语法,您不指定类型(parserlexer)。

您可以定义单独的解析器和词法分析器语法:

// 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'
  ;

现在,解析器和词法分析器源文件都将与其语法文件具有相同的名称。