我使用ANTLRWorks来获得简单的语法:
grammar boolean;
// [...]
lowercase_string
: ('a'..'z')+ ;
但是,根据口译员lowercase_string
,foobar
与MismatchedSetException(10!={})
不符。想法?
答案 0 :(得分:5)
您不能在此类解析器规则中使用..
运算符。要将范围'a'
与'z'
匹配,请为其创建词法分析器规则(词法分析器规则以大写字母开头)。
试试这样:
lowercase_string
: Lower+
;
Lower
: 'a'..'z'
;
或:
lowercase_string
: Lower
;
Lower
: 'a'..'z'+
;
另见以前的问与答:Practical difference between parser rules and lexer rules in ANTLR?