我无法理解为什么这个简单的语法 -
grammar Test;
file : ID;
ID : .*;
导致此错误 -
Test.g:3:6: The following alternatives can never be matched: 1
为什么会这样?
答案 0 :(得分:6)
在词法分析法规结尾处使用.*
和.+
在ANTLR中是非法的:
ID : .*; // illegal
ID : 'bar' .*; // illegal
ID : .* 'bar'; // legal
在解析器规则中,情况并非如此。