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