[ jababa @ 20.04.2008. 22:20 ] @
Da li ima neko iskustva sa izradom parsera u Javi koristeci alat iz naslova teme?

Ja konkretno imam problem sa prosledjivanjem instanci objekata iz parser code-a u action code i u scanner (lexer)...

Ikakva sugestija je dobrodosla.
[ rj444 @ 25.04.2008. 22:31 ] @
Zasto bi nesto prosledjivao iz parsera lexeru? Lexer prvi odradi posao i vise ti nije potreban.

Kakav tacno problem imas sa prosledjivanjem objekata?
[ pangalaktickigrgoljblaste @ 01.08.2009. 03:00 ] @
Posto odgovara naslovu manje - vise, da ne otvaram novu temu...
Imam problem sa java-cup-om, naime kada pokusam da izgenerisem parser njime izbacuje mi

Parsing specification from standard input...
Error at 1(: Internal error: Unexpected exception
Exception in thread "main" java.lang.NullPointerException
at java_cup.runtime.lr_parser.parse(lr_parser.java:553)
at java_cup.Main.parse_grammar_spec(Main.java:442)
at java_cup.Main.main(Main.java:175)

i izjurio sam po fajlovima gde je red u kome puca, ali sam se zaglavio tj. ne znam sta cu dalje

Ima li neko ideju u cemu gresim ?
[ anon315 @ 01.08.2009. 10:56 ] @
(M)ucenici, kome treba ceo taj projekat uradjen, nek mi posalje mejl na vpetreski-at-gmail-dot-com
[ vtomic85 @ 06.12.2011. 20:32 ] @
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]
[ hoplit @ 07.12.2011. 15:42 ] @
probaj ovo :

statement ::= matched
| unmatched ;

unmatched ::= IF LPAREN condition RPAREN statement {: if(parser.main_fleg==true)
parser.iskazi++ ; :}
| IF LPAREN condition RPAREN matched ELSE unmatched ;


inace ovo
statement ::= ......
| IF:l LPAREN condition RPAREN statement {: System.out.println("Pronadjena IF komanda na liniji "+lleft); :} (1)
| IF LPAREN condition RPAREN statement ELSE:l statement {: System.out.println("Pronadjena IF ELSE komanda na liniji "+lleft); :}(2)
......

ne valja jer u (2) mozes sve shvatiti kao statement ::=statement else statement sto nije ok