if, while, return, break
Jel proradilo kome while i if ? Definisao sam gramatiku u .cup fajlu
IDENTICNO onoj u dodatku domaceg i nece da prepozna.
U kakvom god obliku da stavim prekine mi parsiranje. Ono sto je jos nelogicnije je sto mi return; prepozna dok kada stavim
break; program puca, iako po sintaksi mogu da stoje na istome mestu, kao sto stoje i u gramatici(
matched ::= BREAK SEMI;
matched ::= WHILE LPAREN condition RPAREN matched ;
matched ::= IF LPAREN condition RPAREN matched ELSE matched;
matched ::= designator LPAREN RPAREN SEMI
{: System.out.println("Pronadjen poziv metode bez argumenata."); :};
matched ::= designator LPAREN act_pars RPAREN SEMI
{: System.out.println("Pronadjen poziv metode sa argumentima."); :};
matched ::= designator LPAREN act_pars_err RPAREN SEMI;
matched ::= designator PLUSPLUS SEMI;
matched ::= designator MINUSMINUS SEMI;
matched ::= RETURN SEMI
{: System.out.println("Pronadjen prazan return iskaz."); :};
)
Redosled navodjenja smena u .cup fajlu pretpostavljam da je nebitan.
Pada mi na pamet da je greska u lekseru, ali i tamo je sve identicno definisano:
<YYINITIAL> return {return new Symbol(sym.RETURN);}
<YYINITIAL> break {return new Symbol(sym.BREAK);}
Neki simboli se stavljaju u znake navoda, ne znam koja su pravila, kada se stavljaju, a kada ne(u primeru sa vezbi + stoji pod navodnicima, a minus ne???)?
Bilo kakva sugestija, predlog savet...
Vlada
U kakvom god obliku da stavim prekine mi parsiranje. Ono sto je jos nelogicnije je sto mi return; prepozna dok kada stavim
break; program puca, iako po sintaksi mogu da stoje na istome mestu, kao sto stoje i u gramatici(
matched ::= BREAK SEMI;
matched ::= WHILE LPAREN condition RPAREN matched ;
matched ::= IF LPAREN condition RPAREN matched ELSE matched;
matched ::= designator LPAREN RPAREN SEMI
{: System.out.println("Pronadjen poziv metode bez argumenata."); :};
matched ::= designator LPAREN act_pars RPAREN SEMI
{: System.out.println("Pronadjen poziv metode sa argumentima."); :};
matched ::= designator LPAREN act_pars_err RPAREN SEMI;
matched ::= designator PLUSPLUS SEMI;
matched ::= designator MINUSMINUS SEMI;
matched ::= RETURN SEMI
{: System.out.println("Pronadjen prazan return iskaz."); :};
)
Redosled navodjenja smena u .cup fajlu pretpostavljam da je nebitan.
Pada mi na pamet da je greska u lekseru, ali i tamo je sve identicno definisano:
<YYINITIAL> return {return new Symbol(sym.RETURN);}
<YYINITIAL> break {return new Symbol(sym.BREAK);}
Neki simboli se stavljaju u znake navoda, ne znam koja su pravila, kada se stavljaju, a kada ne(u primeru sa vezbi + stoji pod navodnicima, a minus ne???)?
Bilo kakva sugestija, predlog savet...
Vlada
- Follow-Ups:
- Re: if, while, return, break
- From: "Aleksandar Milicevic" <aca.milicevic@gmail.com>
- Re: if, while, return, break
Previous by date: kompajliranje lex fajla
Next by date: Re: if, while, return, break
Previous by thread: lex -> lex.java, moze i za asistenta pitanje Next by thread: Re: if, while, return, break
Previous by thread: lex -> lex.java, moze i za asistenta pitanje Next by thread: Re: if, while, return, break