2017-01-02 6 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

、角括弧内の文字は、文字セットを定義します。だから["]は一文字の"のセットです。セットであるため、すべての文字はセット内にあるかどうかのどちらかであるため、[""]のように文字を2回定義すると違いはありません。["]と同じです。

~はセットを否定し、そう~["]"以外の任意の文字を意味します。