将小写与ANTLR匹配

时间:2011-11-23 14:50:04

标签: antlr antlrworks

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

grammar boolean;

// [...]
lowercase_string
        :   ('a'..'z')+ ;

但是,根据口译员lowercase_stringfoobarMismatchedSetException(10!={})不符。想法?

1 个答案:

答案 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?