1
需要在我调查从ANTLR项目wiki的JSON ANTLR语法此刻的ANTLR语法的解释:http://www.antlr.org/wiki/display/ANTLR3/JSON+Interpreter对JSON语法
String :
'"' (EscapeSequence | ~('\u0000'..'\u001f' | '\\' | '\"'))* '"'
;
fragment EscapeSequence
: '\\' (UnicodeEscape |'b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
;
我能不明白的是为什么他们在否定\\
和\"
String
规则?无论如何,它将匹配EscapeSequence
。
如果我们将其更改为~('\u0000'..'\u001f')
那么它应该是相同的。
我错过了什么?
哦,我看到'EscapeSequence'允许'\\\',而'String'不允许''''。对? – zerkms 2013-05-10 10:07:29
我想你明白了,尽管你的评论格式出错了。 – Gunther 2013-05-10 10:18:00
噢:-S这是因为这个反斜杠才是逃避反射。好,谢谢 – zerkms 2013-05-10 10:23:47