ANTLR - 永远无法匹配以下替代方案

时间:2011-08-24 01:48:42

标签: antlr context-free-grammar

我无法理解为什么这个简单的语法 -

grammar Test;
file    :   ID;
ID  :   .*;

导致此错误 -

Test.g:3:6: The following alternatives can never be matched: 1

为什么会这样?

1 个答案:

答案 0 :(得分:6)

在词法分析法规结尾处使用.*.+在ANTLR中是非法的:

ID : .*;       // illegal
ID : 'bar' .*; // illegal
ID : .* 'bar'; // legal

在解析器规则中,情况并非如此。