--:** See error message in line 6 -- parsing of Prof. Blikle small language -- -- file ANALYSE.RIG -- #analyse_program (. (* $rez !.:= #analyse_stmt * ';' ) [ ';' ] .) --:-----^ --:** 323 UNEXPECTED SYMBOL (END OF '<<'-STATEMENT NOT FOUND) --:** ************************************************** --:** ************************************************** / RETURN $rez / ## #analyse_stmt $rez := ( #assignment ! #while_op ) / RETURN $rez/ ;; (* $R !.:= S'( $$ <> ';' ) *) / report << unrecognised statement $R ; FAIL / ## #assignment $var := #variable ':=' $E := #expression V'( $$ = ';' OR $$ = 'OD') / RETURN 'assignment_op' :: <. left_part: $var, right_part: $E .> / ## #while_op 'WHILE' $E := #expression 'DO' (* $body !.:= #analyse_stmt * ';' ) 'OD' / RETURN 'while_op' :: <. condition: $E, body: $body .> / ## #expression $a1 := #arithm_expr [ '<' $a2 := #arithm_expr / RETURN '<' :: <. arg1: $a1, arg2: $a2 .>/ ] / RETURN $a1 / ## #arithm_expr $a1 := #term / RETURN $a1 / ;; '(' $a1 := #arithm_expr '+' $a2 := #arithm_expr ')' / RETURN '+' :: <. arg1: $a1, arg2: $a2 .> / ## #term $NUM / RETURN $NUM / ;; $rez := #variable /RETURN $rez / ## #variable $R := ( W ! V ! X ! Y ! Z ) / RETURN $R / ##