Failed Predicate Exception



谁能给我一些ANTLR中失败谓词异常的例子?

和一些示例将清楚地解释:输入不匹配VS失败谓词VS没有可行的alt异常ANTLR。提前谢谢。

异常的名称很好地解释了它们何时会出现。只有失败的谓词异常有点特殊。

NoViableAlt:

当您尝试用多个备选项匹配块而没有匹配时抛出。例子:

r: 'a' | 'b';

输入:"c"。

InputMismatch:

当输入部分匹配时抛出。例子:

r: 'a' 'b' 'c' EOF;

输入:'a' 'b'或'a' 'c' EOF

FailedPredicateException:

在某些情况下抛出,如果路径由谓词保护,并且该路径是唯一可能的匹配(或必需的匹配),但谓词阻止匹配它。例如:

... | a ({condition}? b)

但是,如果带有谓词的块是可选的(因此不是必需的),则不会抛出谓词异常,例如:

... | a ({condition}? b)?

有关这些异常的更高级使用,以生成更好的错误消息,请参阅此错误侦听器。

相关内容

  • 没有找到相关文章

最新更新