CHAR_LITERAL: '\'' (~['\\\r\n] | EscapeSequence) '\'';
fragment EscapeSequence
: '\\' 'u005c'? [btnfr"'\\]
| '\\' 'u005c'? ([0-3]? [0-7])? [0-7]
| '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit
;
在 CHAR_LITERAL 的第一部分,排除掉转义的字符,用来包含正常的不需要转义的字符,我是可以理解的。
但问题是,这里为什么没有排除 \b \t \f " 这些呢?这些不也是需要被转义的吗?\r \n 跟 \b \t \f " 有啥区别吗?
想了一个晚上也没有想明白,然后问了 chat-gpt ,越解释越糊涂
有没有懂的同学,给我一些提示呢
1
proxytoworld 2023-04-03 10:34:13 +08:00
\b \t \f 本身视为一个字符把,且不会引起歧义
|
2
NeoZephyr OP |
3
NeoZephyr OP 怎么编辑自己的问题呢?
这种问题还是去 so 好一点,gpt 真是不靠谱,问了一个早上都没有问出结果 |