Javacc - consumir último token

Olá Pessoal,

Estou criando um parser com o JavaCC mas estou com um problema para consumir o último caracter (no caso é um token mesmo)

Basicamente {foo} são 3 partes … {,foo,} … mas eia a saída:

[code]{foo}
Call: Start
Call: Expression
Call: Field
Consumed token: <"{">
Consumed token: <: “foo”>
}
Consumed token: <"}">
Return: Field
Call: Operator

Return: Operator

Return: Expression
Return: Start
Exception in thread “main” openWorkflow.parser.ParseException: Encountered “}” a
t line 2, column 1.
Was expecting one of:
“=” …
“<” …
“>” …
“~” …
“!=” …
“<=” …
“>=” …
“IN” …

    at openWorkflow.parser.SearchCriteria.generateParseException(Unknown Sou

rce)
at openWorkflow.parser.SearchCriteria.jj_consume_token(Unknown Source)
at openWorkflow.parser.SearchCriteria.Operator(Unknown Source)
at openWorkflow.parser.SearchCriteria.Expression(Unknown Source)
at openWorkflow.parser.SearchCriteria.Start(Unknown Source)
at openWorkflow.parser.SearchCriteria.main(Unknown Source)[/code]

Vejam que depois digitei } de novo e ele reconheceu, depois digitei só = e ele não reconheceu :cry:

Alguém com um pouco mais de experiencia com o JavaCC sabe o porque do problema?

O parser é o básico [code]PARSER_BEGIN(SearchCriteria)

package openWorkflow.parser;

public class SearchCriteria {
public static void main( String[] args )
throws ParseException, TokenMgrError
{
SearchCriteria parser = new SearchCriteria( System.in ) ;
parser.Start() ;
}
}

PARSER_END(SearchCriteria)[/code]