JavaCC Problem

uwerotfheld

Grünschnabel
Hallo zusammen,

ich habe eine JavaCC Grammatik, welche leider nicht tut was soll, obwohl sie ohne Fehler durch JavaJJ und JavaCC durchläuft. Hier ein Auszug:
Code:
void ConditionalExpression(): { }
{
    "(" WhereList() ")" |
    Condition() |
}


void Condition(): {}
{
    LOOKAHEAD( UnaryOperation() )
    UnaryOperation() |
    LOOKAHEAD( BinaryOperation() )
    BinaryOperation() |
    LOOKAHEAD( TernaryOperation() )
    TernaryOperation()
}

void UnaryOperation():{}
{
    Var() UnaryOperator()
}

void BinaryOperation():{}
{
    Var() BinaryOperator() Value()
}

void TernaryOperation():{}
{
    Var() TernaryOperator() TernaryOperationArguments()
}

wobei die WhereList wieder zu einer Condition abgeleitet wird. Die Grammatik soll im Prinzip folgende Optionen unterscheiden:

UnaryOperation: A++
BinaryOperation: A > 5
TernarayOperation: A BETWEEN 4 AND 5

wobei ++, > und Betweeen jeweils die Operatoren sind.

Wie gesagt, JavaJJ und JavaCC laufen ohne Fehler bzw Warnung durch, wenn ich aber den folgenden Ausdruck teste:
Code:
( A > 5 )
dann sagt er:
Code:
Encountered "( A >" at line 1, column 20.
Was expecting one of:
    "(" "(" ...
    "(" "A" ...
    "(" "B" ...
    "(" "C" ...
    "(" "A" "AND" ...
    "(" "B" "OR" ...
    "(" "C" ")" ...
    "A" ...
    "B" ...
    "C" ...

Wo liegt mein Fehler?

Vielen Dank schon einmal.
 
Zurück