删除未知文本usign ANTLR4

时间:2019-06-19 15:36:57

标签: antlr4

在我的语法中,有一些用:分隔的键值对。一个例子是这样的:

rule1 : string
rule2 : string

我知道一些指令,例如rule1rule2,并且我需要忽略在文件中找到的其他文本(或未知的键值对),例如rule3,{{1} }等...

在我的 ANTLR4 语法中,我具有以下内容:

randomtext

当我测试有效文件时,一切正常,但是当我测试格式错误的输入时,就像这样:

group     : rule (comment | rule)* ;
rule      : rule1 | rule2
rule1     : RULE1':' ruleName+ comment* ;
rule2     : RULE2':' ruleName+ comment* ;
ruleName  : ID ID*;
comment   : '#' ID* ;

它检测到第一行是正确的(如预期的那样),第二行带有和错误的提示是:

  

第2行:5在“ somestring”处缺少“:”

它被检测为rule1: asd rule2 somestring 解析器规则。

问题是,如何忽略解析器中的所有未知文本?未知规则是我的解析器文件中未考虑的规则。

谢谢

0 个答案:

没有答案