我刚刚开始使用Antlr 4.我尝试为一个简单的程序编写语法规则,但是我很难让它工作。
我正在尝试解析一系列看起来像
的行$int a;
$string b;
$int num;
但是,我一直收到以下错误。 “第1:5行不匹配的输入'a'期待IDENTIFIER”
我试过了
不幸的是,我很难搞清楚为什么会失败,或者究竟要搜索什么以找到更多相关信息。我的语法规则如下:
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;
感谢任何帮助!
答案 0 :(得分:0)
经过一些额外的搜索,最后偶然发现了一个解决方案。看起来像这里看到的类似问题