2017-01-02 28 views
1

我想要一個用於CSV輸入的ANTLR語法。ANTLR4語法正則表達式和波浪號

  1. 什麼(~["])+(~['"'])+之間的區別?

  2. 爲什麼~是非常重要的?

這裏是我的語法:

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; 
+0

1)應該沒有區別2)'〜'否定下列項目 – Lucero

回答

1

在詞法規則,在方括號中的字符定義的字符集。所以["]是帶有單個字符"的集合。作爲一個集合,每個角色都在集合中或不在集合中,因此定義一個字符兩次,如[""]沒有區別,它與["]相同。

~否定集,因此~["]意味着除了"任何字符。