home *** CD-ROM | disk | FTP | other *** search
- START PROGRAM
- PROGRAM PROGRAM-HEADING | !EMPTY BLOCK .
-
- PROGRAM-HEADING program PROGRAM-IDENTIFIER FILE-IDENTIFIER-LIST | !EMPTY ;
- PROGRAM-IDENTIFIER !ID
- FILE-IDENTIFIER-LIST ( FILE-IDENTIFIER { , FILE-IDENTIFIER } )
- FILE-IDENTIFIER !ID
-
- BLOCK DECLARATION-PART STATEMENT-PART
- DECLARATION-PART { TYPE-DEFINITION-PART | VAR-DEFINITION-PART | PROC-DECL | FUNC-DECL }
-
- PROC-DECL PROC-HEADING BLOCK ;
- PROC-HEADING procedure !ID FORM-PARM-SECT-1 | !EMPTY ;
- FORM-PARM-SECT-1 ( FORM-PARM-SECT { ; FORM-PARM-SECT } )
- FORM-PARM-SECT var | !EMPTY PARM-GROUP
- PARM-GROUP IDENTIFIER-LIST : TYPE-IDENTIFIER
- IDENTIFIER-LIST !ID { , !ID }
- TYPE-IDENTIFIER !ID
-
- FUNC-DECL FUNC-HEADING BLOCK ;
- FUNC-HEADING function !ID FORM-PARM-SECT-1 | !EMPTY : !ID ;
-
- TYPE-DEFINITION-PART type { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE !ID = TYPE ; }
- TYPE SIMPLE-TYPE
- SIMPLE-TYPE SCALAR-TYPE
- SCALAR-TYPE ( IDENTIFIER-LIST )
- INDENTIFIER-LIST !ID { , !ID }
-
- VAR-DEFINITION-PART var { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE IDENTIFIER-LIST : !ID ; }
-
-
- STATEMENT-PART COMPOUND-STATEMENT
- COMPOUND-STATEMENT begin { !EXIT END STATEMENT ; } end
- STATEMENT STRUCTURED-STATEMENT | ASSIGNMENT-STATEMENT
- ASSIGNMENT-STATEMENT !ID := !ID
- STRUCTURED-STATEMENT CONDITIONAL-STATEMENT | REPETITIVE-STATEMENT
- CONDITIONAL-STATEMENT IF-STATEMENT
- IF-STATEMENT if EXPRESSION then STATEMENT { else STATEMENT }
- REPETITIVE-STATEMENT REPEAT-STATEMENT
- REPEAT-STATEMENT repeat { !EXIT UNTIL STATEMENT ; } until EXPRESSION
-
- EXPRESSION SIMPLE-EXPRESSION { RELATIONAL-OPERATOR SIMPLE-EXPRESSION }
- SIMPLE-EXPRESSION !ID { ADDING-OPERATOR !ID }
- ADDING-OPERATOR + | -
- RELATIONAL-OPERATOR = | <> | <= | >= | < | > | in
-
-