antlr4语法无法匹配初始标识符

时间:2014-01-27 23:03:40

标签: antlr4

我的语法在第一个令牌上失败了。我已经删除了一些以减少选择,但仍然有错误:

第1行:0输入'main'不匹配期待{,'@','def',IDENTIFIER}

我希望令牌'main'与IDENTIFIER相匹配,IDENTIFIER有这个词汇制作:

IDENTIFIER:[a-zA-Z] [a-zA-Z0-9] *;

为什么会失败?

1 个答案:

答案 0 :(得分:1)

以下情况之一正在发生:

  1. 您在IDENTIFIER之前的语法中还有另一条规则,该规则也与输入main匹配。
  2. 您有一个组合语法(声明为grammar T而不是parser grammar Tlexer grammar T),其中一个解析器规则包含文字'main',导致单独的lexer规则是为这个文字隐式创建的。