Syntax is based on lecture NTIN060. The formal definition of it is:
halt
instruction at the very end.#
is ignored. if A ?? B then Inst
where
A and B are expressions, Inst is a simple statement,
and ?? is equality =
, non-equality
<>
, strict inequality <
, >
or non-strict inequality <=
, >=
.
halt
which stops execution of the program goto LABEL
which tranfers execution to
given label. Labels are defined name_of_label:
in front of any statement, name_of_label is C-like identifier.X := W
where
X is an expression which is not a literal value
and W is (Y and Z are expressions):
Y + Z
,
Y - Z
,
Y * Z
,
Y / Z
(integer division, result rounded
to zero, Z must be non-zero),
and Y % Z
(remainder, Z must
be positive),Y & Z
,
bitwise or Y | Z
,
bitwise exclusive-or Y ^ Z
,
left shift Y << Z
,
right shift Y >> Z
.
5
or -100
, [integer]
, [[integer]]
.