Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次のフラグメントの定義があります。
fragment CHAR :'a'..'z'|'A'..'Z'|'\n'|'\t'|'\\'|EOF;
次に、文字列のレクサー ルールを定義する必要があります。私は次のことをしました:
STRING : '"'(CHAR)*'"'
ただし、文字列では、改行「\ n」を除くすべての文字に一致させたいと考えています。どうすればそれを達成できるのでしょうか?
"改行以外にも除外する必要があります。これを試して:
"
STRING : '"' ~('\r' | '\n' | '"')* '"' ;
~char-setsを無効にします。
~
UTCHARセットの改行のみを無効にしたい
このAFAIK以外の方法はありません:
STRING : '"' CHAR_NO_NL* '"' ; fragment CHAR_NO_NL : 'a'..'z'|'A'..'Z'|'\t'|'\\'|EOF;