-- source grammar for SL #program (. (* #stmt * ';' ) .) ## #stmt ( #assignment ! #while_op ) ## #assignment $Id ':=' #expression ## #while_op 'while' #expression 'do' (* #stmt * ';' ) 'od' ## #expression #arithm_expr [ '<' #arithm_expr ] ## #arithm_expr #term ;; '(' #arithm_expr '+' #arithm_expr ')' ## #term ( 1 ! #variable ) ## #variable ( w ! v ! x ! y ! z ) ##