4
I가 내가 규칙에 일치 할 다음 문자열, stringLiteral :ANTLR 4 문자열 일치에서 제외 "및 하는 방법
"D:\\Downloads\\Java\\MyFile"
그리고 내 문법 파일입니다 : String.g4로 다음과 같습니다 :
grammar String;
fragment
HexDigit : ('0'..'9'|'a'..'f'|'A'..'F') ;
stringLiteral
: '"' (EscapeSequence | XXXXX )* '"'
;
fragment
EscapeSequence
: '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
| UnicodeEscape
| OctalEscape
;
fragment
OctalEscape
: '\\' ('0'..'3') ('0'..'7') ('0'..'7')
| '\\' ('0'..'7') ('0'..'7')
| '\\' ('0'..'7')
;
fragment
UnicodeEscape
: '\\' 'u' HexDigit HexDigit HexDigit HexDigit
;
\ 또는 "\"가 아닌 문자를 찾으려면 어떻게해야합니까?
나는 다음을 시도하고, 모든 작동하지 않습니다 :이 밖으로 시도 ANTLRWorks 2를 사용하고~['\\'"']
~['\\'\"']
~["\]
~[\"\\]
~('\"'|'\\')
~[\\\"]
. 오류는 다음과 같습니다 : 문자 클래스 내부
D:\Downloads\ANTLR\String.g4 line 26:5 mismatched character '<EOF>' expecting '"'
error(50): D:\Downloads\ANTLR\String.g4:26:5: syntax error: '<EOF>' came as a complete surprise to me while looking for rule element