我使用ANTLRWorks来获得简单的语法:
grammar boolean;
// [...]
lowercase_string
: ('a'..'z')+ ;
Run Code Online (Sandbox Code Playgroud)
但是,根据口译员的lowercase_string不符foobar(MismatchedSetException(10!={}).想法?
你不能..在这样的解析器规则中使用运算符.为了匹配的范围内'a',以'z'创建一个词法规则为它(词法规则开始与资本).
试试这样:
lowercase_string
: Lower+
;
Lower
: 'a'..'z'
;
Run Code Online (Sandbox Code Playgroud)
要么:
lowercase_string
: Lower
;
Lower
: 'a'..'z'+
;
Run Code Online (Sandbox Code Playgroud)
另请参阅此前的问答:ANTLR中解析器规则和词法分析器规则之间的实际区别?