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

if, while, return, break, reseno uglavnom

by Vladimir Kovacevic
četvrtak, 30. novembar 2006 - 18:34.

Nije bila greska u znaku |...
Nego u .lex fajlu. Bitan je redosled navodjenja stanja, meni je return bio pri vrhu, a ovi ostali(if, while, break...), posto sam ih naknadno dodavao na kraju (izmedju njih je bilo simbola razlicitih grupa...).
Ja se ne secam da smo na vezbama pricali o redosledu navodjenja stanja, ako jesmo, bilo bi lepo kad bi to neko ponovio, ako pak nismo valjalo bi da nam asistent kaze rec-dve o tome,
cisto zbog ostalih, da ne rade u praznom hodu kao ja sinoc. Uglavnom sada sve dari lepo, sto je najvaznije.
Ponovio bih i pitanje od ranije:
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???)?

Hvala unapred,
Vlada

Aleksandar Milicevic wrote:


I ja sam prepisao onu ponudjenu gramatiku i radi normalno.
Jedina razlika koju vidim na prvi pogled je da nisam pisao

matched ::= ...;
matched ::= ...;
matched ::= ...;

vec

matched ::= ...
| ...
| ...;



--
Pozdrav,
Aleksandar Milicevic
aca.milicevic@gmail.com <mailto:aca.milicevic@gmail.com>

On 11/30/06, *Vladimir Kovacevic* <vladak@madnet.co.yu <mailto:vladak@madnet.co.yu>> wrote:


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



-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir4pp1
<http://minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir4pp1>
-----------------------------------------------------------------




------------------------------------------------------------------------

-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir4pp1
-----------------------------------------------------------------