Ich verwende ANTLR (3.2), um einige ziemlich einfache Grammatik zu analysieren. Leider stieß ich auf ein kleines Problem. Nehmen Sie die follwoing Regel:ANTLR: Problem unterscheidet unäre und binäre Operatoren (z. B. Minuszeichen)
exp
: NUM
| '(' expression OPERATOR expression ')' -> expression+
| '(' (MINUS | '!') expression ')' -> expression
;
OPERATOR enthält die gleichen Minuszeichen ('-') als mit MINUS definiert ist. Jetzt scheint ANTLR mit diesen beiden Regeln nicht fertig zu werden. Wenn ich eins entferne, funktioniert alles gut.
Wer Ideen?
wow, tolle Arbeit, vielen Dank! – Christian
@Christian, gern geschehen. –
Und wie soll der Tokenizer wissen, wenn er ein Minus liest, wenn es einem UNARY entspricht? –