Antlr4语法正则和Tilde



我想拥有CSV输入的antlr语法。

  1. (~["])+(~['"'])+

  2. 有什么区别
  3. 为什么~很重要?

这是我的语法:

grammar Exercice4;
csv : ligne+
    ;

ligne : exp (',' exp)* ('n' | EOF)
  ;
exp : ID
    | INT
    | STRING
    ;
INT : '0'..'9'+;
ID : ('0'..'9' | 'a'..'z' | 'A'..'Z')+;
STRING : '"' (~["])+ '"';
WS : [ ,n, t, r] -> skip;

在lexer规则中,方括号内的字符定义一个字符集。因此,["]是具有单个字符"的集合。作为一个集合,每个字符都在集合中是否在集合中,因此定义一个字符两次,因为在[""]中没有区别,它与["]相同。

~否定了该集合,因此~["]表示除了" 以外的任何字符。

相关内容

  • 没有找到相关文章

最新更新