Shift/Reduce conflict
Ako neko zna kako treba preurediti datu gramatiku, da bi se prevazisao
Shift/Reduce conflict koji Cup prijavljuje prilikom uvodjenja akcija u
sledece smene iza terminala WHILE i LPAREN
molim da mi odgovori.
unmatched ::= IF LPAREN condition RPAREN statement
| IF LPAREN error RPAREN statement {:
System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :}
| IF LPAREN condition RPAREN matched ELSE
unmatched
| IF LPAREN error RPAREN matched ELSE unmatched {:
System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :}
| WHILE {:!!!!!!!!!:} LPAREN {:!!!!!!!!!:}
condition RPAREN unmatched
| WHILE LPAREN error RPAREN unmatched {:
System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :};
matched ::= designator:des EQUAL{:Output.write("=");:} expr:exp SEMI
{:sem.checkAssign(des,exp,expleft);Output.write(";\n"); :}
| error SEMI {:
System.out.println("Neispravna konstrukcija izraza dodele\n");
p=false; :}
| designator LPAREN LPAREN SEMI
| designator LPAREN act_pars RPAREN
SEMI
| designator:des ART_OP_INC SEMI
{:RESULT=sem.checkInc(des,desleft);:}
| designator:des ART_OP_DEC SEMI
{:RESULT=sem.checkDec(des,desleft);:}
| BREAK SEMI
| RETURN SEMI{: if (!isVoid)
System.out.println("Greska: Metoda je deklarisana kao void i mora imati
ispravan return iskaz!"); returnExists=true;Output.write("return;");:}
| RETURN{:Output.write(" return ");:}
expr SEMI{: if (isVoid) System.out.println("Greska: Metoda je deklarisana
kao void! i ne sme imati return vrednost!"); returnExists=true;
Output.write(" ;"); :}
| READ LPAREN designator RPAREN SEMI
| PRINT LPAREN expr RPAREN SEMI
| PRINT LPAREN expr COMMA NUMBER
RPAREN SEMI
| LBRACE RBRACE
| LBRACE stmt_list RBRACE
| IF LPAREN condition RPAREN matched
ELSE matched
| IF LPAREN error RPAREN matched ELSE
matched {: System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :}
| WHILE {:!!!!!!:} LPAREN
{:!!!!!!:} condition RPAREN matched
| WHILE LPAREN error RPAREN
matched {: System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :};
Pozdrav
Aleksandar Acic
Shift/Reduce conflict koji Cup prijavljuje prilikom uvodjenja akcija u
sledece smene iza terminala WHILE i LPAREN
molim da mi odgovori.
unmatched ::= IF LPAREN condition RPAREN statement
| IF LPAREN error RPAREN statement {:
System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :}
| IF LPAREN condition RPAREN matched ELSE
unmatched
| IF LPAREN error RPAREN matched ELSE unmatched {:
System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :}
| WHILE {:!!!!!!!!!:} LPAREN {:!!!!!!!!!:}
condition RPAREN unmatched
| WHILE LPAREN error RPAREN unmatched {:
System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :};
matched ::= designator:des EQUAL{:Output.write("=");:} expr:exp SEMI
{:sem.checkAssign(des,exp,expleft);Output.write(";\n"); :}
| error SEMI {:
System.out.println("Neispravna konstrukcija izraza dodele\n");
p=false; :}
| designator LPAREN LPAREN SEMI
| designator LPAREN act_pars RPAREN
SEMI
| designator:des ART_OP_INC SEMI
{:RESULT=sem.checkInc(des,desleft);:}
| designator:des ART_OP_DEC SEMI
{:RESULT=sem.checkDec(des,desleft);:}
| BREAK SEMI
| RETURN SEMI{: if (!isVoid)
System.out.println("Greska: Metoda je deklarisana kao void i mora imati
ispravan return iskaz!"); returnExists=true;Output.write("return;");:}
| RETURN{:Output.write(" return ");:}
expr SEMI{: if (isVoid) System.out.println("Greska: Metoda je deklarisana
kao void! i ne sme imati return vrednost!"); returnExists=true;
Output.write(" ;"); :}
| READ LPAREN designator RPAREN SEMI
| PRINT LPAREN expr RPAREN SEMI
| PRINT LPAREN expr COMMA NUMBER
RPAREN SEMI
| LBRACE RBRACE
| LBRACE stmt_list RBRACE
| IF LPAREN condition RPAREN matched
ELSE matched
| IF LPAREN error RPAREN matched ELSE
matched {: System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :}
| WHILE {:!!!!!!:} LPAREN
{:!!!!!!:} condition RPAREN matched
| WHILE LPAREN error RPAREN
matched {: System.out.println("Neispravna konstrukcija logickog izraza\n");
p=false; :};
Pozdrav
Aleksandar Acic
Previous by date: Re: i opet taj BST...
Next by date: RE: stvarni argumenti moraju po broju i tipu odgovarati formalnim argumentima???
Previous by thread: Re: stvarni argumenti moraju po broju i tipu odgovarati formalnim argumentima??? Next by thread: Domaci zadaci u septembru i oktobru
Previous by thread: Re: stvarni argumenti moraju po broju i tipu odgovarati formalnim argumentima??? Next by thread: Domaci zadaci u septembru i oktobru