Command
L: intloc E: intexp
L:=E:
comm
C_1: comm C_2: comm
C_1;C_2: comm
E: boolexp C_1: comm C_2: comm
if
E then C_1 else C_2 fi: comm
E: boolexp C: comm
while E do C
od: comm
skip: comm
Expression
if T in {int, bool}
N: int
N: intexp
L: intloc
@L: intexp
E_1: intexp E_2: intexp
E_1+E_2:
intexp
E: boolexp
not E: boolexp
E_1: Texp E_2:
Texp
E_1=E_2: boolexp
Location | Numeral |
loc_i: intloc, if i>0 |
n: int, if n in Integer |