我試圖實現一個解析器使用ANTLRv4語言,接受」「和\」作爲逃避「分隔字符串中的字符」。ANTLRv4:讀雙引號與和「
this question的答案顯示如何做「」轉義。然而,當我試圖把它擴大到也包括了\」的情況下,它幾乎作品,但是當兩個字符串在同一行變得過於貪婪
這裏是我的語法:
grammar strings;
strings : STRING (',' STRING)* ;
STRING
: '"' (~[\r\n"] | '""' | '\"')* '"'
;
這裏是我的三個字符串輸入:
"This is ""my string\"",
"cat","fish"
這正確識別「這是‘’我的字符串\」」,但認爲‘貓’,‘魚’是所有一個字符串。 如果我將「魚」向下移動到下一行,它會正常工作。
任何人都可以弄清楚如何使它工作,如果「貓」和「魚」在同一行?
這使得「貓」,「魚」部分正常工作,但完全打破了逃逸部分。 –