转让的要求是:
"在字符串中非法逃脱:" +错误的字符串:当词法分析器检测到非法时 在字符串中逃脱。错误的字符串是从字符串的开头到 非法逃脱。
所有支持的转义序列如下:
\ b退格
\ f formfeed
\ r \ n回车
\ n换行
\ t水平标签
\'单引号
\"双引号
\ backslash
我使用" String"的代码和这篇文章一样推荐:
ANTLR4 - Need an explanation on this String Literals
STRINGLIT: '"' ( '\\' [btnfr"'\\] | ~[\b\t\f\r\n\\"] )* '"';
并且还为#34;未终止(或未闭合)字符串"如下:
UNCLOSE_STRING: '"' ( '\\' [btnfr"'\\] | ~[\b\t\f\r\n\\"] )* ;
所以我试着写下这个要求的原型:
ILLEGAL_ESCAPE: '"' .*? ESCAPE ;
fragment ESCAPE: [\b\f\r\n\t'"\\]
有人可以帮我弄清楚是否做错了,我认为STRING和ILLEGAL_ESCAPE之间有一些不清楚的结果是不对的。 如果您能够再次修复它以满足我之前提到的要求,我感谢您。在此先感谢!!
答案 0 :(得分:0)
尝试使用以下词法分析器规则:
M