如果双引号字符串以转义的反斜杠结尾,则词法分析器规则会变得贪婪并保持匹配字符,就好像它们是带引号的字符串的一部分一样。然后词法分析器认为实际开始下一个带引号的字符串的双引号正在结束第一个字符串,并在后面的字符上给出语法错误。我们需要调整词法分析器规则来解决这个问题。
词法分析器规则在 .g4 文件类型中设置。
例子:string demo = "a\\b" + "c";
工作正常,但字符串 demo1 ="a\\" + "c"
给出语法错误,指出表达式是无效字符串。
另一个例子:string demo = "a\\b" + "\\c";
也给出了语法错误,与上面的错误相同。
如果有人有这方面的经验,我可以知道如何为此编写词法分析器规则吗?
反斜杠很特殊,它充当字符串内的转义字符。如果你想要字符串中的一个,你必须将它加倍\\
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)