52 |
| S_Assign of exp * exp (* lvalue '=' exp ';' *) |
| S_Assign of exp * exp (* lvalue '=' exp ';' *) |
53 |
| S_If of exp * stm * stm (* 'if' exp stm 'else' stm *) |
| S_If of exp * stm * stm (* 'if' exp stm 'else' stm *) |
54 |
| S_While of exp * stm (* 'while' exp stm *) |
| S_While of exp * stm (* 'while' exp stm *) |
55 |
|
| S_For of (ty * var * exp) list * exp * exp list * stm |
56 |
|
(* 'for' '(' inits ';' exp ';' incrs ')' stm *) |
57 |
| S_Call of string * exp list |
| S_Call of string * exp list |
58 |
| S_Return of exp option (* 'return' [ exp ] ';' *) |
| S_Return of exp option (* 'return' [ exp ] ';' *) |
59 |
|
|
178 |
val mkAssign = S_Assign |
val mkAssign = S_Assign |
179 |
fun mkIfThenElse (e, b1, b2) = S_If(paren e, b1, b2) |
fun mkIfThenElse (e, b1, b2) = S_If(paren e, b1, b2) |
180 |
fun mkIfThen (e, b) = mkIfThenElse (e, b, skip) |
fun mkIfThen (e, b) = mkIfThenElse (e, b, skip) |
181 |
|
val mkFor = S_For |
182 |
fun mkWhile (e, b) = S_While(paren e, b) |
fun mkWhile (e, b) = S_While(paren e, b) |
183 |
val mkCall = S_Call |
val mkCall = S_Call |
184 |
val mkReturn = S_Return |
val mkReturn = S_Return |