0

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

所以在这种情况下

grammar MDD;

//other stufff

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

4

1 回答 1

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

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

于 2010-04-06T07:29:47.700 回答