language While { nonterminal Stms, Stm, Exp, Base; Stms[one] --> ; [more] --> ; Stm[ass] --> := ";" ; [skip] --> skip ";" ; [if] --> if then ; [ifelse] --> if then else ; [while] --> while do ; [block] --> { } ; Exp[base] --> ; [neg] --> ! ; [add] --> + ; [sub] --> - ; [mul] --> * ; [div] --> / ; Base[num] --> ; [var] --> ; }