0
我與列定義的語法ANTLR文件如下ANTLR - 字符串識別錯誤
STRING
: '"' (EscapeSequence | ~('\\'|'"'))* '"' ;
fragment EscapeSequence
: '\\' .
;
但這詞法規則忽略在引號的第一個實例轉義字符。該
ID \ = \」
是公認的開始字符串,而沒有前面的轉義字符。這只是第一個報價情況發生,所有的後續行情,如果逃跑,被正確識別
/ID \ = \ 「測試\」 - 不應被理解爲兩個引號轉義的字符串
/ID \ = 「測試」 - 應該是引號之間的字符串,因爲他們沒能逃過
主要解決的問題是避免試圖識別字符串詞法分析器如果字符(只報價前的最後一個字符是轉義字符。如果有多個轉義字符,我需要在開始引號之前考慮一個字符。
您是否可以更新問題以包含所需字符串語法的詳細說明,以及正確和不正確字符串的示例? –
更新了正面和負面測試用例的簡單示例 –