«« ( Date ) »» // «« ( Thread ) »» // ir4pp1 - 2007

Veliki problem

by Ivica B
nedelja, 21. januar 2007 - 22:42.

Dok sam pokusavao da napisem svoj drugi domaci, naisao sam na problem. Kada
pokusam da iskompajliram parser.java (dobijen iz CUP fajla), kompajler
ispisuje ovakve greske:

p31003/parser.java:1711: idleft is already defined in
CUP$parser$do_action(int,java_cup.runtime.lr_parser,java.util.Stack,int)
int idleft =
((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
p31003/parser.java:1712: idright is already defined in
CUP$parser$do_action(int,java_cup.runtime.lr_parser,java.util.Stack,int)
int idright =
((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
p31003/parser.java:1713: id is already defined in
CUP$parser$do_action(int,java_cup.runtime.lr_parser,java.util.Stack,int)
String id = (String)((java_cup.runtime.Symbol)
CUP$parser$stack.elementAt(CUP$parser$top-2)).value;

Pogledao sam redove sa greskama. Izgledaju ovako:

int idleft =
((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int idright =
((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
Obj id = (Obj)((java_cup.runtime.Symbol)
CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int idleft =
((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int idright =
((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
String id = (String)((java_cup.runtime.Symbol)
CUP$parser$stack.elementAt(CUP$parser$top-2)).value;

Ove greske nisu vezane za kod koji sam ja ubacivao u CUP fajl. Kada
iskomentarisem zadnje tri linije i tad kompajliram, kompajliranje uspe.
Medjutim, ne znam kakve ce posledice imati to sto sam menjao kod na ovakav
nacin. Niti kod mogu valjano da testiram.

Ako neko ima nekakvo resenje, ili zna sta je u pitanju, bio bih vrlo
zahvalan ako bi mi pomogao.

Ivica