::= := ::= true | false ::= | | | ::= begin end ::= if then ( else | ) ::= ::= ::= var : ::= ; | ; | ::= 0 | 1 | 2 | ... | 9 ::= | ::= | ::= | | "(" ")" ::= . | . | . ::= | | ::= | ::= while do ::= a | b | c | ... | z ::= ; | ; | ::= | , ::= | | ::= + | - | or ::= * | / | and ::= < | > | <= | >= | = | <> ::= ! | @ | # | ... ::= program ; . ::= "[" "]" | "[" "]" | ::= | ::= | ::= array [ .. ] of ::= integer | real | boolean ::= ::= ε