We use the following notation for defining syntax:
``Followed by'' has greater binding power than
X Y
X
followed byY
X|Y
X
orY
[X]
X
or empty{X}
A possibly empty sequence of X
'sX&Y
X
orY
orX Y
|
or &
;
parentheses are used to override this precedence rule. Non-terminals begin
with an upper-case letter. Terminals are either keywords or quoted operators.
The symbols Id
, Number
, TextLiteral
, and
CharLiteral
are defined in the token grammar. Each production is
terminated by a period. The syntax does not reflect the restrictions that
revelations and exceptions can be declared only at the top level; nor does it
include explicit productions for NEW
, INC
, and DEC
, which
parse like procedure calls.