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

Re: Oporavak od gre¹aka (CUP)

by jelena markicevic
ponedeljak, 23. januar 2006 - 01:41.

Ja mislim da ne moze jer ce posle BEGIN procitati statements pa naici na gresku. Oporavice se do prve ; (kao statement) ali ako recimo poslednji statement, pre END nema ; onda ne moze. Ja radim byaccj i tu moze da se oporavi ako stavis smenu tipa
main_function ::=BEGIN statemens error END
Mozda moze i nekako elegantnije, ali meni je ovo prvo palo na pamet. Mozda ce i kod tebe da uspe...
Pozz

Vaso Putica <vaso@putica.com> wrote: Je l' ima neko ideju za¹to dobijam gre¹ku "Couldn't repair and continue
parse Object" sa ovom gramatikom i test programom? Zar ne bi trebalo da
"main_function ::= BEGIN error END" odradi oporavak po¹to "error SEMI"
ne mo¾e jer nedostaje ; iza x?


// CUP ----------------------------------
start with program;

program ::= prog_decl main_function;
prog_decl ::= PROGRAM ID SEMI;

main_function ::= BEGIN END;
main_function ::= BEGIN statements END;
main_function ::= BEGIN error END {:
System.out.println("main_function_error");
:};


statements ::= statement statements;
statements ::= statement;


statement ::= ID EQ INTEGER_LITERAL SEMI;
statement ::= error SEMI {: System.out.println("statement error"); :};



// microJava ----------------------------------
program pp;
begin
z=4;
x
end.

-----------------------------------------------------------------
unsubscribe:
minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------





---------------------------------
Yahoo! Photos
Ring in the New Year with Photo Calendars. Add photos, events, holidays, whatever.