Da oživimo malo ovu temu...
Imam nešto ovakvo u svom kodu:
Code:
statement ::= ......
| IF:l LPAREN condition RPAREN statement {: System.out.println("Pronadjena IF komanda na liniji "+lleft); :}
| IF LPAREN condition RPAREN statement ELSE:l statement {: System.out.println("Pronadjena IF ELSE komanda na liniji "+lleft); :}
......
Naravno, greška koja se prijavljuje je
shift/reduce konflikt. Znam da bi ovo moglo da se reši opcijom
precedence, ali jedan od zahteva u projektnom zadatku je da se ta opcija
ne koristi. Može li neko da me posavetuje kako da rešim ovaj problem? Pokušao sam da sve ono zamenim sa if_statement, pa da onda uvedem novu smenu, da to malo razbijem, al' na kraju se sve svodi na isto...
Edit:
Pokušao sam i ovo:
Code:
statement ::= matched | unmatched;
matched ::= IF:l LPAREN condition RPAREN matched ELSE matched {: System.out.println("Pronadjena IF komanda na liniji "+lleft); :}
| ...ostale smene...;
unmatched ::= IF:l LPAREN condition RPAREN statement {: System.out.println("Pronadjena IF komanda na liniji "+lleft); :}
[tab] | IF LPAREN condition RPAREN matched ELSE:l unmatched {: System.out.println("Pronadjena IF ELSE komanda na liniji "+lleft); :};
Međutim, sad mi javlja konflikt između sve tri smene...
Help, please? :)
[Ovu poruku je menjao vtomic85 dana 06.12.2011. u 23:21 GMT+1]
[Ovu poruku je menjao vtomic85 dana 06.12.2011. u 23:22 GMT+1]
[Ovu poruku je menjao vtomic85 dana 06.12.2011. u 23:22 GMT+1]