-- abstract syntax grammar of tree for language SL #program (. (* #stmt *) .) ## #stmt ( #assignment ! #while ) ## #assignment 'assignment_op' :: <. left_part: $Id, right_part: #expression .> ## #while 'while_op' :: <. condition: #expression, body: (. (* #stmt *) .) .> ## #expression 1 ;; $Id ;; '+' :: <. arg1: #expression, arg2: #expression .> ;; '<' :: <. arg1: #expression, arg2: #expression .> ##