Actual ::=
Expression
Wordreference
Destination
Name
Actuallist ::=
Actual
Actual , Actuallist
Addoperator ::=
+
-
Alternative ::=
Statement
Answerspec ::=
Numbertype
Void
Answerstatement ::=
ANSWER
Expression
Arraydec ::=
Numbertype
ARRAY
Arraylist
Presetlist
Arrayitem ::=
Idlist [ Sizelist ]
Arraylist ::=
Arrayitem
Arrayitem , Arraylist
Assignmentstatement ::=
Variable := Expression
Base ::=
( Id )
Id [ Signedinteger ]
Bitposition ::= Integer
Block ::=
BEGIN
Declist ; Statementlist
END
Booleanword ::=
Booleanword2
Booleanword4
DIFFER
Booleanword5
Booleanword2 ::=
Booleanword3
Booleanword5
UNION
Booleanword6
Booleanword3 ::=
Booleanword6
MASK
Typedprimary
Booleanword4 ::=
Booleanword
Typedprimary
Booleanword5 ::=
Booleanword2
Typedprimary
Booleanword6 ::=
Booleanword3
Typedprimary
Bracketedcomment ::=
(
any sequence of characters in which round brackets are matched
)
Codesequence ::=
defined in a particular implementation
Codestatement ::=
CODE
BEGIN
Codesequence
END
Commentsentence ::=
COMMENT
any sequence of characters not including a semi-colon
;
Commoncommunicator ::=
COMMON ( Commonitemlist )
Commonitem ::=
Datadec
Overlaydec
Placespec
Procedurespec
Void
Commonitemlist ::=
Commonitem
Commonitem ; Commonitemlist
Comparator ::=
<
<=
=
>=
>
<>
Comparison ::=
Simpleexpression
Comparator
Simpleexpression
Compoundstatement ::=
BEGIN
Statementlist
END
Condition ::=
Condition
OR
Subcondition
Subcondition
Conditionalexpression ::=
IF
Condition
THEN
Expression
ELSE
Expression
Conditionalstatement ::=
IF
Condition
THEN
Consequence
IF
Condition
THEN
Consequence
ELSE
Alternative
Consequence ::=
Simplestatement
Label : Consequence
Constant ::=
Number
Addoperator
Number
Constantlist ::=
Group
Group , Constantlist
Datadec ::=
Numberdec
Arraydec
Tabledec
Dec ::=
Datadec
Overlaydec
Switchdec
Proceduredec
Declist ::=
Dec
Dec ; Declist
Destination ::=
Label
Switch [ Index ]
Digit ::= 0 1 2 3 4 5 6 7 8 9
Digitlist ::=
Digit
Digit
Digitlist
Dimension ::=
Lowerbound : Upperbound
Dummystatement ::=
void
Elementdec ::=
Id
Numbertype
Wordposition
Id
Partwordtype
Wordposition , Bitposition
Elementdeclist ::=
Elementdec
Elementdec ; Elementdeclist
Elementpresetlist ::=
PRESET
Constantlist
Void
Elementscale ::=
( Totalbits , Fractionbits )
( Totalbits )
Endcomment ::=
Id
Expression ::=
Unconditionalexpression
Conditionalexpression
Factor ::=
Primary
Booleanword
Forelement ::=
Expression
Expression
WHILE
Condition
Expression
STEP
Expression
UNTIL
Expression
Forlist ::=
Forelement
Forelement , Forlist
Formalpair ::=
Id : Id
Formalpairlist ::=
Formalpair
Formalpair , Formalpairlist
Forstatement ::=
FOR
Wordreference := Forlist
DO
Statement
Fractionbits ::= Signedinteger
Gotostatement ::=
GOTO
Destination
Group ::=
Constant
( Constantlist )
Void
Id ::=
Letter
Letterdigitstring
Idlist ::=
Id
Id , Idlist
Index ::=
Expression
Integer ::=
Digitlist
OCTAL ( Octallist )
LITERAL ( printing character )
Label ::= Id
Labellist ::=
Label
Label , Labellist
Length ::= Integer
Letter ::= a b c d e f g h i j k l m n o p q r s t u v w x y z
Letterdigitstring ::=
Letter
Letterdigitstring
Digit
Letterdigitstring
Void
Lowerbound ::=
Signedinteger
Macrobody ::=
any sequence of characters in which string quotes are matched
Macrocall ::=
Macroname
Macroname ( Macrostringlist )
Macrodefinition ::=
DEFINE
Macroname " Macrobody " ;
DEFINE
Macroname ( Idlist ) " Macrobody " ;
Macrodeletion ::=
DELETE
Macroname ;
Macroname ::=
Id
Macrostring ::=
any sequence of characters in which commas are
protected by round or square brackets and in
which such brackets are properly matched and
nested
Macrostringlist ::=
Macrostring , Macrostringlist
Macrostring
Multoperator ::=
*
/
Name ::=
Id
Number ::=
Real
Integer
Numberdec ::=
Numbertype
Idlist
Presetlist
Numbertype ::=
FLOATING
FIXED
Scale
INTEGER
Octaldigit ::= 0 1 2 3 4 5 6 7
Octallist ::=
Octaldigit
Octaldigit
Octalist
Overlaydec ::=
OVERLAY
Base
WITH
Datadec
Parameterspec ::=
VALUE
Formalpairlist
LOCATION
Formalpairlist
Specifier
Idlist
etc
Parameterspec ::=
Specifier
Idlist
Tablespec
Procedurespec
Parameterspeclist ::=
Parameterspec
Parameterspec ; Parameterspeclist
Partword ::=
Id [ Index ]
BITS [ Totalbits , Bitposition] Typedprimary
Partwordreference ::=
Id [ Index ]
BITS [ Totalbits , Bitposition ] Wordreference
Partwordtype ::=
Elementscale
UNSIGNED
Elementscale
Placespec ::=
LABEL
Idlist
SWITCH
Idlist
Presetlist ::=
:= Constantlist
Void
Primary ::=
Untypedprimary
Typedprimary
Procedurecall ::=
Id
Id ( Actuallist )
Proceduredec ::=
Answerspec
PROCEDURE
Procedureheading ; Statement
Answerspec
RECURSIVE
Procedureheading ; Statement
Procedureheading ::=
Id
Id ( Parameterspeclist )
Procedurespec ::=
Answerspec
PROCEDURE
Procparamlist
Procparameter ::=
Id
Id ( Typelist )
Procparamlist ::=
Procparameter
Procparameter , Procparamlist
Real ::=
Digitlist . Digitlist
Digitlist
10
Signedinteger
10
Signedinteger
Digitlist . Digitlist
10
Signedinteger
OCTAL ( Octallist . Octallist )
Scale ::= ( Totalbits , Fractionbits )
Sign ::=
+
-
Void
Signedinteger ::=
Integer
Addoperator
Integer
Simpleexpression ::=
Term
Addoperator
Term
Simpleexpression
Addoperator
Term
Simplestatement ::=
Assignmentstatement
Gotostatement
Procedurecall
Answerstatement
Codestatement
Compoundstatement
Block
Dummystatement
Sizelist ::=
Dimension
Dimension , Dimension
Specifier ::=
VALUE
Numbertype
LOCATION
Numbertype
Numbertype
ARRAY
LABEL
SWITCH
Specimen ::=
ALPHA
Sign
BETA
Sign
Statement ::=
Label : Statement
Simplestatement
Conditionalstatement
Forstatement
Statementlist ::=
Statement
Statement ; Statementlist
String ::=
" sequence of characters with quotes matched "
Subcondition ::=
Subcondition
AND
Comparison
Comparison
Switch ::= Id
Switchdec ::=
SWITCH
Switch := Labellist
Tabledec ::=
TABLE
Id [ Width , Length ]
[Elementdeclist
Elementpresetlist ] Presetlist
Tablespec ::=
TABLE
Id [ Width, Length ] [ Elementdeclist ]
Term ::=
Factor
Term
Multoperator
Factor
Totalbits ::= Integer
Type ::=
Specifier
TABLE
Answerspec
PROCEDURE
Typedprimary ::=
Wordreference
Partword
LOCATION ( Wordreference )
Numbertype ( Expression )
Procedurecall
Integer
Typelist ::=
Type
Type , Typelist
Unconditionalexpression ::=
Simpleexpression
String
Untypedprimary ::=
Real
( Expression )
Upperbound ::=
Signedinteger
Variable ::=
Wordreference
Partwordreference
Width ::= Integer
Wordposition ::= Signedinteger
Wordreference ::=
Id
Id [ Index ]
Id [ Index , Index]
[ ]