将小写与ANTLR匹配

Rea*_*onk 2 antlr antlrworks

我使用ANTLRWorks来获得简单的语法:

grammar boolean;

// [...]
lowercase_string
        :   ('a'..'z')+ ;
Run Code Online (Sandbox Code Playgroud)

但是,根据口译员的lowercase_string不符foobar(MismatchedSetException(10!={}).想法?

Bar*_*ers 5

你不能..在这样的解析器规则中使用运算符.为了匹配的范围内'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中解析器规则和词法分析器规则之间的实际区别?