0
Мне нужно совместить параметр, который либо литерально литеральным, либо двойным кавычками. Следующий мой код, он не может правильно совпадать.Как определить буквенный литерал и цитату цитаты ANTLR3?
DOUBLE_QUOTE: '\"';
fragment
SP : ' '+;
UnquotedString
:
(ESC_SEQ | ~('\\'|'"'|' '|'\t'))*
;
QuotedLiteral
:
DOUBLE_QUOTE (SP UnquotedString)* DOUBLE_QUOTE
;
fragment
ESC_SEQ
: '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
| UNICODE_ESC
| OCTAL_ESC
;
fragment
HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;
fragment
OCTAL_ESC
: '\\' ('0'..'3') ('0'..'7') ('0'..'7')
| '\\' ('0'..'7') ('0'..'7')
| '\\' ('0'..'7')
;
fragment
UNICODE_ESC
:
'\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
;
Parameter
:
UnquotedString | QuotedLiteral
;
WS : ('\r'|'\t'|'\n'|' ') {$channel=HIDDEN;}
;
Например, когда я ввода para1 оператора "para2", то Параметр правило может быть согласован para1 и "para2".