【问题标题】:Match lowercase with ANTLR将小写字母与 ANTLR 匹配
【发布时间】:2011-11-23 14:50:04
【问题描述】:

我将 ANTLRWorks 用于一个简单的语法:

grammar boolean;

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

但是,根据解释器的说法,lowercase_stringfoobar 不匹配 (MismatchedSetException(10!={}). 想法?

【问题讨论】:

    标签: antlr antlrworks


    【解决方案1】:

    您不能在这样的解析器规则中使用.. 运算符。要匹配'a''z' 的范围,请为其创建词法分析器规则(词法分析器规则以大写字母开头)。

    试试这样:

    lowercase_string
      :  Lower+ 
      ;
    
    Lower
      :  'a'..'z'
      ;
    

    或:

    lowercase_string
      :  Lower
      ;
    
    Lower
      :  'a'..'z'+
      ;
    

    另请参阅之前的问答:Practical difference between parser rules and lexer rules in ANTLR?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多