Tipi 3
# type com = Assign of ide * expr | Ifthenelse of expr *
com list * com list | While of expr * com list;;
| Ifthenelse of expr * com list * com list
| While of expr * com list
C ::= ifthenelse(E, C1, C2) | while(E, C1) | assign(I, E) | cseq(C1, C2)
# While(Den "x", [Assign("y", Plus(Val "y", Val "x"))]);;
- : com = While (Den "x", [Assign ("y", Plus (Val "y", Val "x"))])