我正在尝试挑选文本中的所有标记,并且需要匹配所有 Ascii 和 Unicode 字符,所以这就是我如何布置它们。
fragment CHAR : ('A'..'Z') | ('a'..'z');
fragment DIGIT : ('0'..'9');
fragment UNICODE : '\u0000'..'\u00FF';
现在,如果我将令牌规则写为:
TOKEN : (CHAR|DIGIT|UNICODE)+;
我得到“Decision can match input such as "'A'..'Z'" using multiple alternatives: 1, 3 因此,该输入的替代项 3 被禁用”“Decision can match input such as "' 0'..'9'" 使用多个备选方案:2、3 因此,该输入的备选方案 3 被禁用"
没有任何匹配:如果我把它写成
TOKEN : (UNICODE)+;
什么都匹配不上。
有没有办法做到这一点。