home *** CD-ROM | disk | FTP | other *** search
- START PROGRAM
- PROGRAM PROGRAM-HEADING | !EMPTY BLOCK @ds . @ps @nl @nl
-
- PROGRAM-HEADING program PROGRAM-IDENTIFIER FILE-IDENTIFIER-LIST | !EMPTY @ds ; @ps @nl
- 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 @nl @ps BLOCK @ds ; @nl @ps @nl
- PROC-HEADING procedure !ID FORM-PARM-SECT-1 | !EMPTY @ds ;
- FORM-PARM-SECT-1 ( FORM-PARM-SECT { @ds ; 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 @nl @ps BLOCK @ds ;
- FUNC-HEADING function !ID FORM-PARM-SECT-1 | !EMPTY : !ID @ds ;
-
- TYPE-DEFINITION-PART type @nl @ps @nl @ind { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE !ID = TYPE @ds ; } @und
- TYPE SIMPLE-TYPE
- SIMPLE-TYPE SCALAR-TYPE
- SCALAR-TYPE ( IDENTIFIER-LIST )
- INDENTIFIER-LIST !ID { , !ID }
-
- VAR-DEFINITION-PART var @nl @ps @nl @ind { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE IDENTIFIER-LIST : !ID @ds ; @ps } @und
-
-
- STATEMENT-PART COMPOUND-STATEMENT
- COMPOUND-STATEMENT begin @nl @ps @nl { !EXIT END STATEMENT @ds ; @ps @nl } 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 @ps @nl @ind { !EXIT UNTIL STATEMENT @ds ; @ps @nl } until EXPRESSION @und
-
- EXPRESSION SIMPLE-EXPRESSION { RELATIONAL-OPERATOR SIMPLE-EXPRESSION }
- SIMPLE-EXPRESSION !ID { ADDING-OPERATOR !ID }
- ADDING-OPERATOR + | -
- RELATIONAL-OPERATOR = | <> | <= | >= | < | > | in