Dúvida com JavaCC

0 respostas
C

Estou com problemas no JavaCC e gostaria de alguma orientação.

É minha primeira tentativa no uso desta ferramenta e surgiu a seguinte dúvida:
Após a palavra UPDATE o nome do banco de dados é opcional, mas no Java gerado ele aparece como obrigatório. O que fiz de errado?
Já substitui o conjunto ( )? por [ ], e o resultado foi o mesmo.
Seguem os trechos do código.

caferna.

JavaCC

void syntax() : {}

{

debug(“syntax”)

(  databaseName()  )?

(  ( databaseName() )? 

(   

(   (  |  )  )?



)?

)?

( databaseElements1() )?

databaseElements2()



}
Java

static final public void syntax() throws ParseException {

trace_call(syntax);

try {

debug(syntax);

if (jj_2_1(2)) {

jj_consume_token(MODEL);

databaseName();

jj_consume_token(SEMICOLON);

} else {

;

}

if (jj_2_6(2)) {

jj_consume_token(UPDATE);

databaseName();

jj_consume_token(SEMICOLON);

if (jj_2_5(2)) {

jj_consume_token(REORGANIZE);

jj_consume_token(GLOBAL);

jj_consume_token(DATA);

if (jj_2_4(2)) {

jj_consume_token(LPARENCHAR);

jj_consume_token(ITEMS);

if (jj_2_2(2)) {

jj_consume_token(SAME);

} else if (jj_2_3(2)) {

jj_consume_token(CHANGED);

} else {

jj_consume_token(-1);

throw new ParseException();

}

jj_consume_token(RPARENCHAR);

} else {

;

}

jj_consume_token(SEMICOLON);

} else {

;

}

} else {

;

}

databaseElements1();

databaseElements2();

jj_consume_token(0);

} finally {

trace_return(syntax);

}

}
Criado 31 de agosto de 2008
Respostas 0
Participantes 1