1
(我編輯基於@Bart煮布鍋的第一個評論我的問題 - 謝謝!)ANTLR的貪婪選項
我有以下的語法:
SPACE : (' '|'\t'|'\n'|'\r')+ {$channel = HIDDEN;};
START : 'START:';
STRING_LITERAL : ('"' .* '"')+;
rule : START STRING_LITERAL;
,我想分析像語言:'START:'abcd「START:」img src =「test.jpg」「'(字符串文字可以在字符串文字內)。
如果由於語言'START:'img src =「test.jpg」''詞法分析器將字符串翻譯爲以下標記,則字符串文字中存在字符串文字時,上述語法不起作用:START('START: ')STRING_LITERAL(「img src =」)test.jpg。
有沒有什麼辦法來定義一個適合我的問題的語法?
謝謝!我將我的原始問題更新爲上面的問題。 Unfortuanaltey我不知道如何解決字符串文字問題中的字符串文字。我怎麼能改變語法? - 先謝謝你。 – user1286372 2012-04-04 09:07:05
@ user1286372,我的觀點是你需要改變你的語法,以便在字符串內部不可能有字符串(至少,不是沒有轉義嵌套字符串)。換句話說:它不可能支持它。爲什麼不將外部引號定義爲單引號? – 2012-04-04 09:17:06
是的,這將是一個可能的解決方案,但我希望沒有任何語言變化是可能的。但是非常感謝你!無法支持它的信息幫助了我! – user1286372 2012-04-04 10:15:24