ANTLR4 - 不断收到不匹配的输入错误

时间:2015-06-29 09:00:00

标签: antlr antlr4

我刚刚开始使用Antlr 4.我尝试为一个简单的程序编写语法规则,但是我很难让它工作。

我正在尝试解析一系列看起来像

的行
$int a;
$string b;
$int num;

但是,我一直收到以下错误。 “第1:5行不匹配的输入'a'期待IDENTIFIER”

我试过了

  • 获得一个小的repro
  • 检查制作“片段”是否影响事物

不幸的是,我很难搞清楚为什么会失败,或者究竟要搜索什么以找到更多相关信息。我的语法规则如下:

SEPARATION : [ \t\r\n\u000C]+;

fragment 
STARTING_CHARACTER : [a-zA-Z];
fragment 
CHARACTER : [a-zA-Z0-9_];
TERMINATE_CHARACTER : ';';

fragment
TYPE_OR_VAR_IDENTIFIER : STARTING_CHARACTER CHARACTER*;
NAMESPACED_TYPENAME : TYPE_OR_VAR_IDENTIFIER;
IDENTIFIER : TYPE_OR_VAR_IDENTIFIER;

type : '$' NAMESPACED_TYPENAME;

declaration_statement : SEPARATION? type SEPARATION IDENTIFIER SEPARATION? TERMINATE_CHARACTER;

statement : declaration_statement;

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

经过一些额外的搜索,最后偶然发现了一个解决方案。看起来像这里看到的类似问题

Mismatched input error in simple antlr4 grammar