BNF GRAMMAR FOR PL/0 -------------------- ::= . ::= ::= const ; | e ::= = | , = ::= var ; | e ::= | , ::= procedure ; ; | e ::= := | call | begin end | if then | while do | e ::= | ; ::= odd | ::= = | <> | < | > | <= | >= ::= | | ::= + | - ::= | ::= * | / ::= | | ( ) Notes. (1) "e" denotes the empty string. (2) and are tokens representing identifiers and numbers, respectively. EXTENDED BNF GRAMMAR FOR PL/0 ----------------------------- ::= . ::= ::= [const = {, = } ;] ::= [var {, } ;] ::= {procedure ; ;} ::= := | call | begin {; } end | if then | while do | e ::= odd | ::= = | <> | < | > | <= | >= ::= [] { } ::= + | - ::= { } ::= * | / ::= | | ( ) Notes. (1) Optional constructions are enclosed in square brackets ([]). (2) Constructs repeated zero or more times are enclosed in curly brackets ({}).