0
MissingTokenException
, NullPointerException
, 계속 정확하게 기억한다면 NoViableAlterativeException
입니다. ANTLRWorks의 logfile/console 출력은 저에게 도움이되지 않습니다.ANTLR 재 작성 문과 관련된 문제 (간단합니까?)
은 무엇 난 후하는 것은 다음과 같은 재 작성 인 : 여기에 아래
(expression | FLOAT) '(' -> (expression | FLOAT) '*('
내가 가진 테스트 파일을 만들 밖으로 납치 내 문법의 샘플입니다.
grammar Test;
expression
: //FLOAT '(' -> (FLOAT '*(')+
| add EOF!
;
term
:
| '(' add ')'
| FLOAT
| IMULT
;
IMULT
: (add ('(' add)*) -> (add ('*' add)*)
;
negation
: '-'* term
;
unary
: ('+' | '-')* negation
;
mult
: unary (('*' | '/') unary)*
;
add
: mult (('+' | '-') mult)*
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
FLOAT
: ('0'..'9')+ '.' ('0'..'9')*// EXPONENT?
| '.' ('0'..'9')+ //EXPONENT?
| ('0'..'9')+ //EXPONENT
;
WS : (' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
가 나는 또한 시도했다 :
imult
: FLOAT '(' -> FLOAT '*('
;
그리고이 : 나는의 수를 잃은
IMULT/imult
: expression '(' -> expression '*'
;
뿐만 아니라 수많은 다른 버전 (해킹).
누구든지 나를 도와 줄 수 있습니까?