如何防止Antlr规则中出现两个连续空格



作为词法分析器规则,我希望根据以下规则匹配字符串:

  • 不能包含制表符(t)或换行符(r, n)
  • 不能包含两个空格
  • 可以包含所有其他字符,包括单个空格

我想出了:

STRING: ~[trn]*

但是我不知道如何防止连续空格

可以这样做:

STRING: 
     (
        ~[trn ] // non-whitespace
     | ' ' ~[trn ] // or single space followed by non-whitespace
     )+
     ' '?  // may optionally end in a space (if desired, remote the line otherwise)
     ;

相关内容

  • 没有找到相关文章

最新更新