This grammar has been been recovered from IBM's COBOL Language Reference (Document Number: SC26-9046-03) automatically.
Disclaimer
This grammar is not yet corrected nor completed.
It merely represents the portion of syntax covered by the syntax diagrams
in the referenced document. In this sense, this version of the grammar
illustrates some problems with IBM language references as, for example,
indicated by the huge number of top and bottom sorts. If you want to see
a completed and corrected COBOL grammar, we refer to our
VS COBOL II grammar.
If you have any remark or a question, contact the authors of this grammar: Ralf Lämmel (CWI, Amsterdam, Email: ralf@cwi.nl) & Chris Verhoef (WINS, Universiteit van Amsterdam, Email: x@wins.uva.nl). This is Version 0.1.1 of the grammar. It has been released on December, 16th, 1999. Version 0.1 (i.e., the first version) of the grammar has been released on December, 14th, 1999. Refer to the ChangeLog for details. This document is maintained by Ralf Lämmel.
Acknowledgement
The system
LDL
supporting language-centric software protoyping has been used for
nearly all aspects of specification/implementation in this project,
namely grammar recovery and generation of the actual browsable grammar.
| references-to-copy-libraries | = | text-name [ ( "IN" | "OF" ) library-name ] |
| references-to-procedure-division-names | = | paragraph-name [ ( "IN" | "OF" ) section-name ] |
| references-to-procedure-division-names | = | section-name |
| simple-data-reference | = | data-name |
| identifier | = | data-name { ( "IN" | "OF" ) data-name }* |
| [ ( "IN" | "OF" ) file-name ] { "(" subscript ")" }* | ||
| [ "(" leftmost-character-position ":" [ length ] ")" ] |
| identifier | = | ( condition-name | data-name ) { ( "IN" | "OF" ) data-name }* |
| [ ( "IN" | "OF" ) file-name ] |
| identifier | = | "LINAGE-COUNTER" [ ( "IN" | "OF" ) file-name ] |
| condition-name | = | condition-name { ( "IN" | "OF" ) data-name }* |
| [ ( "IN" | "OF" ) file-name ] [ "(" { subscript }+ ")" ] |
| condition-name | = | condition-name { ( "IN" | "OF" ) mnemonic-name }* |
| subscripting | = | ( condition-name | data-name ) { ( "IN" | "OF" ) data-name }* |
| [ ( "IN" | "OF" ) file-name ] | ||
| "(" { ( integer | "ALL" | data-name [ ( "+" | "-" ) integer ] | index-name [ ( "+" | "-" ) integer ] ) }+ ")" |
| reference-modification | = | ( data-name | "FUNCTION" function-name [ "(" { argument }+ ")" ] ) |
| "(" leftmost-character-position ":" [ length ] ")" |
| function-identifier | = | "FUNCTION" function-name [ "(" { argument }+ ")" ] |
| [ reference-modifier ] |
| cobol-program-structure | = | ( "IDENTIFICATION" | "ID" ) "DIVISION" "." "PROGRAM-ID" "." program-name |
| [ [ "IS" ] ( "RECURSIVE" | "INITIAL" ) [ "PROGRAM" ] ] "." | ||
| [ identification-division-content ] | ||
| [ "ENVIRONMENT" "DIVISION" "." environment-division-content ] | ||
| [ "DATA" "DIVISION" "." data-division-content ] | ||
| [ "PROCEDURE" "DIVISION" "." procedure-division-content ] | ||
| [ { cobol-program-structure-nested-source-program }* "END" "PROGRAM" program-name "." ] |
| cobol-program-structure | = | { cobol-source-program }+ |
| cobol-program-structure-nested-source-program | = | ( "IDENTIFICATION" | "ID" ) "DIVISION" "." "PROGRAM-ID" "." program-name |
| [ [ "IS" ] ( "COMMON" [ "INITIAL" ] | "INITIAL" [ "COMMON" ] ) [ "PROGRAM" ] ] "." | ||
| [ identification-division-content ] | ||
| [ "ENVIRONMENT" "DIVISION" "." environment-division-content ] | ||
| [ "DATA" "DIVISION" "." data-division-content ] | ||
| [ "PROCEDURE" "DIVISION" "." procedure-division-content ] | ||
| { cobol-program-structure-nested-source-program }* "END" "PROGRAM" program-name "." |
| cobol-class-definition-structure | = | ( "IDENTIFICATION" "DIVISION" "." | "ID" "DIVISION" "." ) "CLASS-ID" "." class-name "." |
| [ identification-division-content ] | ||
| "ENVIRONMENT" "DIVISION" "." class-environment-division-content | ||
| [ "DATA" "DIVISION" "." class-data-division-content ] | ||
| [ "PROCEDURE" "DIVISION" "." { method-definition }* ] | ||
| "END" "CLASS" class-name "." |
| cobol-method-definition-structure | = | ( "IDENTIFICATION" "DIVISION" "." | "ID" "DIVISION" "." ) |
| [ identification-division-content ] | ||
| [ "ENVIRONMENT" "DIVISION" "." method-environment-division-content ] | ||
| [ "DATA" "DIVISION" "." method-data-division-content ] | ||
| [ "PROCEDURE" "DIVISION" "." method-procedure-division-content ] | ||
| "END" "METHOD" method-name "." |
| identification-division | = | ( "IDENTIFICATION" | "ID" ) "DIVISION" "." "PROGRAM-ID" "." program-name |
| [ [ "IS" ] ( "RECURSIVE" | "COMMON" [ "INITIAL" ] | "INITIAL" [ "COMMON" ] ) [ "PROGRAM" ] ] "." | ||
| [ "AUTHOR" "." { comment-entry }* ] | ||
| [ "INSTALLATION" "." { comment-entry }* ] | ||
| [ "DATE-WRITTEN" "." { comment-entry }* ] | ||
| [ "DATE-COMPILED" "." { comment-entry }* ] | ||
| [ "SECURITY" "." { comment-entry }* ] |
| identification-division | = | ( "IDENTIFICATION" "DIVISION" | "ID" "DIVISION" ) "CLASS-ID" "." class-name |
| "INHERITS" { class-name }+ [ "METACLASS" [ "IS" ] class-name ] "." | ||
| [ "AUTHOR" "." { comment-entry }* ] | ||
| [ "INSTALLATION" "." { comment-entry }* ] | ||
| [ "DATE-WRITTEN" "." { comment-entry }* ] | ||
| [ "DATE-COMPILED" "." { comment-entry }* ] | ||
| [ "SECURITY" "." { comment-entry }* ] |
| identification-division | = | ( "IDENTIFICATION" "DIVISION" | "ID" "DIVISION" ) |
| "METHOD-ID" "." method-name [ [ "IS" ] [ "METHOD" ] "OVERRIDE" ] "." | ||
| [ "AUTHOR" "." { comment-entry }* ] | ||
| [ "INSTALLATION" "." { comment-entry }* ] | ||
| [ "DATE-WRITTEN" "." { comment-entry }* ] | ||
| [ "DATE-COMPILED" "." { comment-entry }* ] | ||
| [ "SECURITY" "." { comment-entry }* ] |
| configuration-section | = | "CONFIGURATION" "SECTION" "." [ source-computer-paragraph ] |
| [ object-computer-paragraph ] [ special-names-paragraph ] | ||
| [ repository-paragraph ] |
| source-computer-paragraph | = | "SOURCE-COMPUTER" "." |
| [ computer-name [ [ "WITH" ] "DEBUGGING" "MODE" ] "." ] |
| object-computer-paragraph | = | "OBJECT-COMPUTER" "." |
| [ computer-name [ "MEMORY" [ "SIZE" ] integer ( "WORDS" | "CHARACTERS" | "MODULES" ) ] object-computer-paragraph-entry-1 "." ] |
| object-computer-paragraph-entry-1 | = | [ [ "PROGRAM" ] [ "COLLATING" ] "SEQUENCE" [ "IS" ] alphabet-name ] |
| special-names-paragraph | = | "SPECIAL-NAMES" "." { ( environment-name [ "IS" ] mnemonic-name | environment-name ( [ "IS" ] mnemonic-name [ special-names-paragraph-entry-1 ] | special-names-paragraph-entry-1 ) ) }* |
| { "ALPHABET" alphabet-name [ "IS" ] ( "STANDARD-1" | "STANDARD-2" | "NATIVE" | "EBCDIC" | { literal special-names-paragraph-phrase-1 }+ ) }* | ||
| { "SYMBOLIC" [ "CHARACTERS" ] special-names-paragraph-symbolic [ "IN" alphabet-name ] }* | ||
| { "CLASS" class-name [ "IS" ] { literal [ ( "THROUGH" | "THRU" ) literal ] }+ }* | ||
| [ "CURRENCY" [ "SIGN" ] [ "IS" ] literal [ [ "WITH" ] "PICTURE" "SYMBOL" literal ] ] | ||
| [ "DECIMAL-POINT" [ "IS" ] "COMMA" ] [ "." ] |
| special-names-paragraph-entry-1 | = | ( "ON" [ "STATUS" ] [ "IS" ] condition [ "OFF" [ "STATUS" ] [ "IS" ] condition ] | "OFF" [ "STATUS" ] [ "IS" ] condition [ "ON" [ "STATUS" ] [ "IS" ] condition ] ) |
| special-names-paragraph-phrase-1 | = | [ ( ( "THROUGH" | "THRU" ) literal | { "ALSO" literal }+ ) ] |
| special-names-paragraph-symbolic | = | { { symbolic-character }+ ( "ARE" | "IS" ) { integer }+ }+ |
| repository-paragraph | = | "REPOSITORY" "." [ "CLASS" class-name [ [ "IS" ] external-class-name ] ] |
| "." |
| input-output-section | = | "INPUT-OUTPUT" "SECTION" "." "FILE-CONTROL" "." |
| { file-control-paragraph }+ | ||
| [ "I-O-CONTROL" "." [ { i-o-control-paragraph }+ "." ] ] |
| file-control-paragraph | = | "SELECT" [ "OPTIONAL" ] file-name "ASSIGN" ( [ "TO" ] { assignment-name }+ | "USING" data-name ) |
| [ "RESERVE" integer [ ( "AREA" | "AREAS" ) ] ] [ [ "ORGANIZATION" [ "IS" ] ] "SEQUENTIAL" ] | ||
| [ "PADDING" [ "CHARACTER" ] [ "IS" ] ( data-name | literal ) ] | ||
| [ "RECORD" "DELIMITER" [ "IS" ] ( "STANDARD-1" | assignment-name ) ] | ||
| [ "ACCESS" [ "MODE" ] [ "IS" ] "SEQUENTIAL" ] | ||
| [ "LOCK" [ "MODE" ] [ "IS" ] "AUTOMATIC" [ [ "WITH" ] "LOCK" "ON" "RECORD" ] ] | ||
| [ "PASSWORD" [ "IS" ] data-name ] | ||
| [ [ "FILE" ] "STATUS" [ "IS" ] data-name [ data-name ] ] "." |
| file-control-paragraph | = | "SELECT" [ "OPTIONAL" ] file-name |
| "ASSIGN" ( [ "TO" ] { assignment-name }+ | "USING" data-name ) | ||
| [ "ORGANIZATION" [ "IS" ] ] "LINE" "SEQUENTIAL" | ||
| [ "ACCESS" [ "MODE" ] [ "IS" ] "SEQUENTIAL" ] | ||
| [ [ "FILE" ] "STATUS" [ "IS" ] data-name [ data-name ] ] "." |
| file-control-paragraph | = | "SELECT" [ "OPTIONAL" ] file-name "ASSIGN" ( [ "TO" ] { assignment-name }+ | "USING" data-name ) |
| [ "RESERVE" integer [ ( "AREA" | "AREAS" ) ] ] [ "ORGANIZATION" [ "IS" ] ] "RELATIVE" | ||
| [ "ACCESS" [ "MODE" ] [ "IS" ] ( "SEQUENTIAL" [ "RELATIVE" [ "KEY" ] [ "IS" ] data-name ] | ( "RANDOM" | "DYNAMIC" ) "RELATIVE" [ "KEY" ] [ "IS" ] data-name ) ] | ||
| [ "LOCK" [ "MODE" ] [ "IS" ] "AUTOMATIC" [ [ "WITH" ] "LOCK" "ON" "RECORD" ] ] | ||
| [ "PASSWORD" [ "IS" ] data-name ] | ||
| [ [ "FILE" ] "STATUS" [ "IS" ] data-name [ data-name ] ] "." |
| file-control-paragraph | = | "SELECT" [ "OPTIONAL" ] file-name "ASSIGN" ( [ "TO" ] { assignment-name }+ | "USING" data-name ) |
| [ "RESERVE" integer [ ( "AREA" | "AREAS" ) ] ] [ "ORGANIZATION" [ "IS" ] ] "INDEXED" | ||
| [ "ACCESS" [ "MODE" ] [ "IS" ] ( "SEQUENTIAL" | "RANDOM" | "DYNAMIC" ) ] | ||
| [ "LOCK" [ "MODE" ] [ "IS" ] "AUTOMATIC" [ [ "WITH" ] "LOCK" "ON" "RECORD" ] ] | ||
| "RECORD" [ "KEY" ] [ "IS" ] data-name [ "PASSWORD" [ "IS" ] data-name ] | ||
| { file-control-paragraph-entry-1 }* [ [ "FILE" ] "STATUS" [ "IS" ] data-name [ data-name ] ] "." |
| file-control-paragraph-entry-1 | = | "ALTERNATE" "RECORD" [ "KEY" ] [ "IS" ] data-name [ [ "WITH" ] "DUPLICATES" ] |
| [ "PASSWORD" [ "IS" ] data-name ] |
| assign-clause | = | [ label "-" ] [ "S" "-" ] name |
| assign-clause | = | [ file-system-id "-" ] system-file-name |
| [ "(" alt-inx-file-name { "," [ alt-inx-file-name ] }* ")" ] |
| assign-clause | = | [ label "-" ] "AS" "-" name |
| assign-clause | = | [ label "-" ] name |
| assign-clause | = | [ comment "-" ] [ file-system-id "-" ] |
| ( system-file-name [ assign-clause-alt_index ] | environment-variable-name ) |
| assign-clause-alt_index | = | "(" alt-inx-file-name { "," [ alt-inx-file-name ] }* ")" |
| i-o-control-paragraph | = | ( "RERUN" "ON" ( assignment-name | file-name ) [ "EVERY" ] i-o-control-paragraph-phrase-1 | "SAME" [ "RECORD" ] [ "AREA" ] [ "FOR" ] file-name { file-name }+ | "MULTIPLE" "FILE" [ "TAPE" ] [ "CONTAINS" ] { file-name [ "POSITION" integer ] }+ | "APPLY" "WRITE-ONLY" [ "ON" ] { file-name }+ ) |
| i-o-control-paragraph | = | [ "RERUN" [ "ON" ] assignment-name ] |
| { "SAME" ( "RECORD" | "SORT" | "SORT-MERGE" ) [ "AREA" ] [ "FOR" ] i-o-control-paragraph-phrase-1 }+ |
| i-o-control-paragraph | = | "SAME" [ "RECORD" ] [ "AREA" ] [ "FOR" ] file-name { file-name }+ |
| i-o-control-paragraph | = | ( "RERUN" "ON" ( assignment-name | file-name ) [ "EVERY" ] i-o-control-paragraph-phrase-1 | "SAME" [ "RECORD" ] [ "AREA" ] [ "FOR" ] file-name { file-name }+ ) |
| i-o-control-paragraph-phrase-1 | = | ( integer "RECORDS" | "END" [ "OF" ] ( "REEL" | "UNIT" ) ) [ "OF" ] file-name |
| i-o-control-paragraph-phrase-1 | = | integer "RECORDS" [ "OF" ] file-name |
| i-o-control-paragraph-phrase-1 | = | file-name { file-name }+ |
| data-division-overview | = | "DATA" "DIVISION" "." |
| [ "FILE" "SECTION" "." { file-description-entry { record-description-entry }+ }* ] | ||
| [ "WORKING-STORAGE" "SECTION" "." { ( record-description-entry | data-item-description-entry ) }* ] | ||
| [ "LOCAL-STORAGE" "SECTION" "." { ( record-description-entry | data-item-description-entry ) }* ] | ||
| [ "LINKAGE" "SECTION" "." { ( record-description-entry | data-item-description-entry ) }* ] |
| data-division-overview | = | [ "WORKING-STORAGE" "SECTION" "." { ( record-description-entry | data-item-description-entry ) }* ] |
| file-description-entry | = | "FD" file-name [ [ "IS" ] "EXTERNAL" ] [ [ "IS" ] "GLOBAL" ] |
| [ "BLOCK" [ "CONTAINS" ] [ integer "TO" ] integer ( "CHARACTERS" | "RECORDS" ) ] | ||
| [ "RECORD" ( [ "CONTAINS" ] integer [ "CHARACTERS" ] | [ "CONTAINS" ] integer "TO" integer [ "CHARACTERS" ] | file-description-entry-clause-1 [ "DEPENDING" [ "ON" ] data-name ] ) ] | ||
| [ "LABEL" ( "RECORD" [ "IS" ] | "RECORDS" [ "ARE" ] ) ( "STANDARD" | "OMITTED" | { data-name }* ) ] | ||
| [ "VALUE" "OF" { system-name [ "IS" ] ( data-name | literal ) }+ ] | ||
| [ "DATA" ( "RECORD" [ "IS" ] | "RECORDS" [ "ARE" ] ) { data-name }+ ] | ||
| [ "LINAGE" [ "IS" ] ( data-name | integer ) [ "LINES" ] file-description-entry-clause-2 ] | ||
| [ "RECORDING" [ "MODE" ] [ "IS" ] mode ] | ||
| [ "CODE-SET" [ "IS" ] alphabet-name ] "." |
| file-description-entry | = | "SD" file-name [ "RECORD" ( [ "CONTAINS" ] integer [ "CHARACTERS" ] | [ "CONTAINS" ] integer "TO" integer [ "CHARACTERS" ] | file-description-entry-clause-1 [ "DEPENDING" [ "ON" ] data-name ] ) ] |
| [ "DATA" ( "RECORD" [ "IS" ] | "RECORDS" [ "ARE" ] ) { data-name }+ ] | ||
| [ "BLOCK" [ "CONTAINS" ] [ integer "TO" ] integer ( "CHARACTERS" | "RECORDS" ) ] | ||
| [ "LABEL" ( "RECORD" [ "IS" ] | "RECORDS" [ "ARE" ] ) ( "STANDARD" | "OMITTED" | { data-name }+ ) ] | ||
| [ "VALUE" "OF" { system-name [ "IS" ] ( data-name | literal ) }+ ] | ||
| [ "LINAGE" [ "IS" ] ( data-name | integer ) [ "LINES" ] file-description-entry-clause-2 ] | ||
| [ "CODE-SET" [ "IS" ] alphabet-name ] "." |
| file-description-entry | = | "FD" file-name [ [ "IS" ] "EXTERNAL" ] [ [ "IS" ] "GLOBAL" ] |
| [ "RECORD" ( [ "CONTAINS" ] integer [ "CHARACTERS" ] | [ "CONTAINS" ] integer "TO" integer [ "CHARACTERS" ] | file-description-entry-clause-1 [ "DEPENDING" [ "ON" ] data-name ] ) ] "." |
| file-description-entry | = | "FD" file-name [ [ "IS" ] "EXTERNAL" ] [ [ "IS" ] "GLOBAL" ] |
| [ "BLOCK" [ "CONTAINS" ] [ integer "TO" ] integer ( "CHARACTERS" | "RECORDS" ) ] | ||
| [ "RECORD" ( [ "CONTAINS" ] integer [ "CHARACTERS" ] | [ "CONTAINS" ] integer "TO" integer [ "CHARACTERS" ] | file-description-entry-clause-1 [ "DEPENDING" [ "ON" ] data-name ] ) ] | ||
| [ "LABEL" ( "RECORD" [ "IS" ] | "RECORDS" [ "ARE" ] ) ( "STANDARD" | "OMITTED" ) ] | ||
| [ "VALUE" "OF" { system-name [ "IS" ] ( data-name | literal ) }+ ] | ||
| [ "DATA" ( "RECORD" [ "IS" ] | "RECORDS" [ "ARE" ] ) { data-name }+ ] "." |
| file-description-entry-clause-1 | = | [ "IS" ] "VARYING" [ "IN" ] [ "SIZE" ] [ [ "FROM" ] integer ] |
| [ "TO" integer ] [ "CHARACTERS" ] |
| file-description-entry-clause-2 | = | [ [ "WITH" ] "FOOTING" [ "AT" ] ( data-name | integer ) ] |
| [ [ "LINES" ] [ "AT" ] "TOP" ( data-name | integer ) ] | ||
| [ [ "LINES" ] [ "AT" ] "BOTTOM" ( data-name | integer ) ] |
| record-clause | = | "RECORD" [ "CONTAINS" ] integer [ "CHARACTERS" ] |
| record-clause | = | "RECORD" [ "CONTAINS" ] integer "TO" integer [ "CHARACTERS" ] |
| record-clause | = | "RECORD" [ "IS" ] "VARYING" [ "IN" ] [ "SIZE" ] |
| [ [ "FROM" ] integer ] [ "TO" integer ] [ "CHARACTERS" ] | ||
| [ "DEPENDING" [ "ON" ] data-name ] |
| data-description-entry | = | level-number [ ( data-name | "FILLER" ) ] [ redefines-clause ] |
| [ blank-when-zero-clause ] [ external-clause ] | ||
| [ global-clause ] [ justified-clause ] [ occurs-clause ] | ||
| [ picture-clause ] [ sign-clause ] [ synchronized-clause ] | ||
| [ usage-clause ] [ value-clause ] [ date-format-clause ] |
| data-description-entry | = | "66" data-name renames-clause "." |
| data-description-entry | = | "88" condition-name value-clause "." |
| level-numbers | = | level-number [ ( data-name | "FILLER" ) ] |
| blank-when-zero-clause | = | "BLANK" [ "WHEN" ] ( "ZERO" | "ZEROS" | "ZEROES" ) |
| date-format-clause | = | "DATE" "FORMAT" [ "IS" ] date-pattern |
| justified-clause | = | ( "JUSTIFIED" | "JUST" ) [ "RIGHT" ] |
| fixed-length-tables | = | "OCCURS" integer [ "TIMES" ] |
| { ( "ASCENDING" | "DESCENDING" ) [ "KEY" ] [ "IS" ] { data-name }+ }* | ||
| [ "INDEXED" [ "BY" ] { index-name }+ ] |
| variable-length-tables | = | "OCCURS" integer "TO" integer [ "TIMES" ] "DEPENDING" |
| [ "ON" ] data-name | ||
| { ( "ASCENDING" | "DESCENDING" ) [ "KEY" ] [ "IS" ] { data-name }+ }* | ||
| [ "INDEXED" [ "BY" ] { index-name }+ ] |
| picture-clause | = | ( "PICTURE" | "PIC" ) [ "IS" ] character-string |
| external-floating-point-items | = | [ ( "+" | "-" ) ] mantissa-e [ ( req "." "+" | "-" ) ] exponent |
| redefines-clause | = | level-number [ ( data-name | "FILLER" ) ] "REDEFINES" data-name |
| renames-clause | = | "66" data-name "RENAMES" data-name |
| [ ( "THROUGH" | "THRU" ) data-name ] |
| sign-clause | = | [ "SIGN" [ "IS" ] ] ( "LEADING" | "TRAILING" ) [ "SEPARATE" [ "CHARACTER" ] ] |
| synchronized-clause | = | ( "SYNCHRONIZED" | "SYNC" ) [ ( "LEFT" | "RIGHT" ) ] |
| usage-clause | = | [ "USAGE" [ "IS" ] ] ( "BINARY" [ "NATIVE" ] | "COMP" | "COMP-1" [ "NATIVE" ] | "COMP-2" [ "NATIVE" ] | "COMP-3" | "COMP-4" [ "NATIVE" ] | "COMP-5" | "COMPUTATIONAL" | "COMPUTATIONAL-1" [ "NATIVE" ] | "COMPUTATIONAL-2" [ "NATIVE" ] | "COMPUTATIONAL-3" | "COMPUTATIONAL-4" [ "NATIVE" ] | "COMPUTATIONAL-5" | "DISPLAY" [ "NATIVE" ] | "DISPLAY-1" [ "NATIVE" ] | "INDEX" | usage-clause-objref-phrase | "PACKED-DECIMAL" | "POINTER" | "PROCEDURE-POINTER" ) |
| usage-clause-objref-phrase | = | "OBJECT" "REFERENCE" [ [ "METACLASS" [ "OF" ] ] class-name ] |
| value-clause | = | "VALUE" [ "IS" ] literal |
| value-clause | = | "88" condition-name ( "VALUE" [ "IS" ] | "VALUES" [ "ARE" ] ) |
| { literal [ ( "THROUGH" | "THRU" ) literal ] }+ "." |
| value-clause | = | "VALUE" [ "IS" ] ( "NULL" | "NULLS" ) |
| procedure-division-structure | = | "PROCEDURE" "DIVISION" [ procedure-division-header ] "." |
| [ "DECLARATIVES" "." { procedure-division-structure-sect "." "USE" [ procedure-division-structure-para ] }+ "END" "DECLARATIVES" "." ] | ||
| { section-name "SECTION" [ priority-number ] "." [ procedure-division-structure-para ] }+ |
| procedure-division-structure | = | "PROCEDURE" "DIVISION" "." { method-definition }* |
| procedure-division-structure-sect | = | section-name "SECTION" [ priority-number ] |
| procedure-division-structure-para | = | { paragraph-name "." { sentence }* }+ |
| the-procedure-division-header | = | "PROCEDURE" "DIVISION" |
| [ "USING" { [ ( [ "BY" ] "REFERENCE" | [ "BY" ] "VALUE" ) ] { data-name }+ }+ ] | ||
| [ "RETURNING" data-name ] "." |
| the-procedure-division-header | = | "PROCEDURE" "DIVISION" "." |
| class-condition | = | identifier [ "IS" ] [ "NOT" ] ( "NUMERIC" | "ALPHABETIC" | "ALPHABETIC-LOWER" | "ALPHABETIC-UPPER" | class-name | "DBCS" | "KANJI" ) |
| condition-name-condition | = | condition-name |
| relation-condition | = | operand [ "IS" ] ( [ "NOT" ] ( "GREATER" [ "THAN" ] | ">" | "LESS" [ "THAN" ] | "<" | "EQUAL" [ "TO" ] | "=" ) | "GREATER" [ "THAN" ] "OR" "EQUAL" [ "TO" ] | ">=" | "LESS" [ "THAN" ] "OR" "EQUAL" [ "TO" ] | "<" "=" ) |
| operand |
| pointer-data-items | = | ( "ADDRESS" "OF" identifier | identifier | "NULL" | "NULLS" ) [ "IS" ] [ "NOT" ] |
| ( "EQUAL" [ "TO" ] | "=" ) ( "ADDRESS" "OF" identifier | identifier | "NULL" | "NULLS" ) |
| procedure-pointer-data-items | = | [ ( identifier | "NULL" | "NULLS" ) ] [ "IS" ] [ "NOT" ] ( "EQUAL" [ "TO" ] | "=" ) |
| [ ( identifier | "NULL" | "NULLS" ) ] |
| object-reference-data-items | = | ( object-reference-identifier | "SELF" | "NULL" | "NULLS" ) [ "IS" ] [ "NOT" ] |
| ( "EQUAL" [ "TO" ] | "=" ) ( object-reference-identifier | "SELF" | "NULL" | "NULLS" ) |
| sign-condition | = | operand [ "IS" ] [ "NOT" ] ( "POSITIVE" | "NEGATIVE" | "ZERO" ) |
| switch-status-condition | = | condition-name |
| negated-simple-conditions | = | "NOT" condition |
| combined-conditions | = | condition { ( "AND" | "OR" ) condition }+ |
| abbreviated-combined-relation-conditions | = | relation-condition |
| { ( "AND" | "OR" ) [ "NOT" ] [ relational-operator ] object }+ |
| into-from-identifier-phrase | = | ( ( "READ" | "RETURN" ) file-name [ "RECORD" ] [ "INTO" identifier ] | ( "RELEASE" | "REWRITE" | "WRITE" ) record-name [ "FROM" identifier ] ) |
| data-transfer | = | "ACCEPT" identifier [ "FROM" ( mnemonic-name | environment-name ) ] |
| system-information-transfer | = | "ACCEPT" identifier "FROM" ( "DATE" [ "YYYYMMDD" ] | "DAY" [ "YYYYDDD" ] | "DAY-OF-WEEK" | "TIME" ) |
| add-statement | = | "ADD" { ( identifier | literal ) }+ "TO" { identifier [ "ROUNDED" ] }+ |
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-ADD" ] |
| add-statement | = | "ADD" { ( identifier | literal ) }+ [ "TO" ] ( identifier | literal ) |
| "GIVING" { identifier [ "ROUNDED" ] }+ | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-ADD" ] |
| add-statement | = | "ADD" ( "CORRESPONDING" | "CORR" ) identifier "TO" identifier |
| [ "ROUNDED" ] [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-ADD" ] |
| alter-statement | = | "ALTER" |
| { procedure-name "TO" [ "PROCEED" "TO" ] procedure-name }+ |
| call-statement | = | "CALL" ( identifier | literal | procedure-ptr ) |
| [ "USING" { ( [ [ "BY" ] "REFERENCE" ] { ( [ "ADDRESS" "OF" ] identifier | file-name | "OMITTED" ) }+ | [ "BY" ] "CONTENT" { ( [ ( "ADDRESS" "OF" | "LENGTH" "OF" ) ] identifier | literal | "OMITTED" ) }+ | [ "BY" ] "VALUE" { ( [ ( "ADDRESS" "OF" | "LENGTH" "OF" ) ] identifier | literal ) }+ ) }+ ] | ||
| [ "RETURNING" identifier ] [ ( [ call-statement-on_exception ] [ call-statement-not_on_exception ] | [ "ON" ] "OVERFLOW" imperative-statement ) ] | ||
| [ "END-CALL" ] |
| call-statement-on_exception | = | [ [ "ON" ] "EXCEPTION" imperative-statement ] |
| call-statement-not_on_exception | = | [ "NOT" [ "ON" ] "EXCEPTION" imperative-statement ] |
| cancel-statement | = | "CANCEL" { ( identifier | literal ) }+ |
| close-statement | = | "CLOSE" { file-name [ ( ( "REEL" | "UNIT" ) [ ( [ "FOR" ] "REMOVAL" | "WITH" "NO" "REWIND" ) ] | [ "WITH" ] ( "NO" "REWIND" | "LOCK" ) ) ] }+ |
| close-statement | = | "CLOSE" { file-name [ [ "WITH" ] "LOCK" ] }+ |
| compute-statement | = | "COMPUTE" { identifier [ "ROUNDED" ] }+ ( "=" | "EQUAL" ) |
| arithmetic-expression | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-COMPUTE" ] |
| continue-statement | = | "CONTINUE" |
| delete-statement | = | "DELETE" file-name [ "RECORD" ] |
| [ "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "NOT" "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "END-DELETE" ] |
| delete-statement | = | [ sequence-number ] "DELETE" sequence-number-field |
| display-statement | = | "DISPLAY" { ( identifier | literal ) }+ |
| [ "UPON" ( mnemonic-name | environment-name ) ] [ [ "WITH" ] "NO" "ADVANCING" ] |
| divide-statement | = | "DIVIDE" ( identifier | literal ) "INTO" { identifier [ "ROUNDED" ] }+ |
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-DIVIDE" ] |
| divide-statement | = | "DIVIDE" ( identifier | literal ) "INTO" ( identifier | literal ) |
| "GIVING" { identifier [ "ROUNDED" ] }+ | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-DIVIDE" ] |
| divide-statement | = | "DIVIDE" ( identifier | literal ) "BY" ( identifier | literal ) |
| "GIVING" { identifier [ "ROUNDED" ] }+ | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-DIVIDE" ] |
| divide-statement | = | "DIVIDE" ( identifier | literal ) "INTO" ( identifier | literal ) |
| "GIVING" identifier [ "ROUNDED" ] "REMAINDER" identifier | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-DIVIDE" ] |
| divide-statement | = | "DIVIDE" ( identifier | literal ) "BY" ( identifier | literal ) |
| "GIVING" identifier [ "ROUNDED" ] "REMAINDER" identifier | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-DIVIDE" ] |
| entry-statement | = | "ENTRY" literal |
| [ "USING" { [ ( [ "BY" ] "REFERENCE" | [ "BY" ] "VALUE" ) ] { identifier }+ }+ ] "." |
| evaluate-statement | = | "EVALUATE" ( identifier | literal | expression | "TRUE" | "FALSE" ) { "ALSO" ( identifier | literal | expression | "TRUE" | "FALSE" ) }* |
| { { "WHEN" evaluate-statement-phrase-1 { "ALSO" evaluate-statement-phrase-2 }* }+ imperative-statement }+ | ||
| [ "WHEN" "OTHER" imperative-statement ] [ "END-EVALUATE" ] |
| evaluate-statement-phrase-1 | = | ( "ANY" | condition | "TRUE" | "FALSE" | [ "NOT" ] ( identifier | literal | arithmetic-expression ) [ ( "THROUGH" | "THRU" ) ( identifier | literal | arithmetic-expression ) ] ) |
| evaluate-statement-phrase-2 | = | ( "ANY" | condition | "TRUE" | "FALSE" | [ "NOT" ] ( identifier | literal | arithmetic-expression ) [ ( "THROUGH" | "THRU" ) ( identifier | literal | arithmetic-expression ) ] ) |
| exit-statement | = | paragraph-name "." "EXIT" "." |
| exit-method-statement | = | "EXIT" "METHOD" "." |
| exit-program-statement | = | "EXIT" "PROGRAM" "." |
| goback-statement | = | "GOBACK" |
| unconditional-go-to | = | "GO" [ "TO" ] procedure-name |
| conditional-go-to | = | "GO" [ "TO" ] { procedure-name }+ "DEPENDING" [ "ON" ] |
| identifier |
| altered-go-to | = | paragraph-name "." "GO" [ "TO" ] "." |
| more-labels-go-to | = | "GO" [ "TO" ] "MORE-LABELS" |
| if-statement | = | "IF" condition [ "THEN" ] ( { statement }+ | "NEXT" "SENTENCE" ) |
| [ "ELSE" ( { statement }+ | "NEXT" "SENTENCE" ) ] [ "END-IF" ] |
| initialize-statement | = | "INITIALIZE" { identifier }+ |
| [ "REPLACING" { ( "ALPHABETIC" | "ALPHANUMERIC" | "NUMERIC" | "ALPHANUMERIC-EDITED" | "NUMERIC-EDITED" | "DBCS" | "EGCS" ) [ "DATA" ] "BY" ( identifier | literal ) }+ ] |
| inspect-statement | = | "INSPECT" identifier "TALLYING" |
| { identifier "FOR" { ( "CHARACTERS" { inspect-statement-phrase-1 }* | ( "ALL" | "LEADING" ) { ( identifier | literal ) { inspect-statement-phrase-1 }* }+ ) }+ }+ |
| inspect-statement | = | "INSPECT" identifier "CONVERTING" ( identifier | literal ) "TO" |
| ( identifier | literal ) | ||
| { ( "BEFORE" | "AFTER" ) [ "INITIAL" ] ( identifier | literal ) }+ |
| inspect-statement | = | "INSPECT" identifier "TALLYING" |
| { identifier "FOR" { ( "CHARACTERS" { inspect-statement-phrase-1 }* | ( "ALL" | "LEADING" ) { ( identifier | literal ) { inspect-statement-phrase-1 }* }+ ) }+ }+ | ||
| "REPLACING" | ||
| { ( "CHARACTERS" "BY" ( identifier | literal ) { inspect-statement-phrase-1 }* | ( "ALL" | "LEADING" | "FIRST" ) { ( identifier | literal ) "BY" ( identifier | literal ) { inspect-statement-phrase-1 }* }+ ) }+ |
| inspect-statement | = | "INSPECT" identifier "REPLACING" |
| { ( "CHARACTERS" "BY" ( identifier | literal ) { inspect-statement-phrase-1 }* | ( "ALL" | "LEADING" | "FIRST" ) { ( identifier | literal ) "BY" ( identifier | literal ) { inspect-statement-phrase-1 }* }+ ) }+ |
| inspect-statement-phrase-1 | = | ( "BEFORE" | "AFTER" ) [ "INITIAL" ] ( identifier | literal ) |
| invoke-statement | = | "INVOKE" ( identifier | class-name | "SELF" | [ class-name "OF" ] "SUPER" ) ( literal | identifier ) |
| [ "USING" { ( [ [ "BY" ] "REFERENCE" ] { ( [ "ADDRESS" "OF" ] identifier | "OMITTED" ) }+ | [ "BY" ] "CONTENT" { ( [ ( "ADDRESS" "OF" | "LENGTH" "OF" ) ] identifier | literal | "OMITTED" ) }+ | [ "BY" ] "VALUE" { ( [ ( "ADDRESS" "OF" | "LENGTH" "OF" ) ] identifier | literal ) }+ ) }+ ] | ||
| [ "RETURNING" identifier ] [ [ "ON" ] "EXCEPTION" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "EXCEPTION" imperative-statement ] [ "END-INVOKE" ] |
| merge-statement | = | "MERGE" file-name { [ "ON" ] ( "ASCENDING" | "DESCENDING" ) [ "KEY" ] { data-name }+ }+ |
| [ [ "COLLATING" ] "SEQUENCE" [ "IS" ] alphabet-name ] "USING" file-name | ||
| { file-name }+ | ||
| ( "OUTPUT" "PROCEDURE" [ "IS" ] procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] | "GIVING" { file-name }+ ) |
| move-statement | = | "MOVE" ( identifier | literal ) "TO" { identifier }+ |
| move-statement | = | "MOVE" ( "CORRESPONDING" | "CORR" ) identifier "TO" identifier |
| multiply-statement | = | "MULTIPLY" ( identifier | literal ) "BY" { identifier [ "ROUNDED" ] }+ |
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-MULTIPLY" ] |
| multiply-statement | = | "MULTIPLY" ( identifier | literal ) "BY" ( identifier | literal ) |
| "GIVING" { identifier [ "ROUNDED" ] }+ | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-MULTIPLY" ] |
| open-statement | = | "OPEN" |
| { ( "INPUT" { file-name [ ( "REVERSED" | [ "WITH" ] "NO" "REWIND" ) ] }+ | "OUTPUT" { file-name [ [ "WITH" ] "NO" "REWIND" ] }+ | "I-O" { file-name }+ | "EXTEND" { file-name }+ ) }+ |
| open-statement | = | "OPEN" { ( "INPUT" { file-name }+ | "OUTPUT" { file-name }+ | "I-O" { file-name }+ | "EXTEND" { file-name }+ ) }+ |
| open-statement | = | "OPEN" { ( "INPUT" { file-name }+ | "OUTPUT" { file-name }+ | "EXTEND" { file-name }+ ) }+ |
| basic-perform-statement | = | "PERFORM" |
| ( procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] | imperative-statement "END-PERFORM" ) |
| perform-with-times-phrase | = | "PERFORM" |
| ( procedure-name [ perform-with-times-phrase-phrase-1 ] ( identifier | integer ) "TIMES" | ( identifier | integer ) "TIMES" imperative-statement "END-PERFORM" ) |
| perform-with-times-phrase-phrase-1 | = | ( "THROUGH" | "THRU" ) procedure-name |
| perform-with-until-phrase | = | "PERFORM" ( procedure-name perform-with-until-phrase-phrase-1 perform-with-until-phrase-phrase-2 | perform-with-until-phrase-phrase-2 imperative-statement "END-PERFORM" ) |
| perform-with-until-phrase-phrase-1 | = | [ ( "THROUGH" | "THRU" ) procedure-name ] |
| perform-with-until-phrase-phrase-2 | = | [ [ "WITH" ] "TEST" ( "BEFORE" | "AFTER" ) ] "UNTIL" condition |
| perform-with-varying-phrase | = | "PERFORM" |
| ( procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] perform-with-varying-phrase-phrase-1 [ perform-with-varying-phrase-phrase-2 ] | perform-with-varying-phrase-phrase-1 imperative-statement "END-PERFORM" ) |
| perform-with-varying-phrase-phrase-1 | = | [ [ "WITH" ] "TEST" ( "BEFORE" | "AFTER" ) ] "VARYING" ( identifier | index-name ) "FROM" ( identifier | index-name | literal ) "BY" |
| ( identifier | literal ) "UNTIL" condition |
| perform-with-varying-phrase-phrase-2 | = | { "AFTER" ( identifier | index-name ) "FROM" ( identifier | index-name | literal ) perform-with-varying-phrase-phrase-3 }+ |
| perform-with-varying-phrase-phrase-3 | = | "BY" ( identifier | literal ) "UNTIL" condition |
| read-statement | = | "READ" file-name [ ( "NEXT" | "PREVIOUS" ) ] [ "RECORD" ] |
| [ "INTO" identifier ] | ||
| [ [ "AT" ] "END" imperative-statement ] | ||
| [ "NOT" [ "AT" ] "END" imperative-statement ] [ "END-READ" ] |
| read-statement | = | "READ" file-name [ "RECORD" ] [ "INTO" identifier ] |
| [ "KEY" [ "IS" ] data-name ] | ||
| [ "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "NOT" "INVALID" [ "KEY" ] imperative-statement ] [ "END-READ" ] |
| release-statement | = | "RELEASE" record-name [ "FROM" identifier ] |
| return-statement | = | "RETURN" file-name [ "RECORD" ] [ "INTO" identifier ] |
| [ "AT" ] "END" imperative-statement | ||
| [ "NOT" [ "AT" ] "END" imperative-statement ] [ "END-RETURN" ] |
| rewrite-statement | = | "REWRITE" record-name [ "FROM" identifier ] |
| [ "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "NOT" "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "END-REWRITE" ] |
| search-statement | = | "SEARCH" identifier [ "VARYING" ( identifier | index-name ) ] |
| [ [ "AT" ] "END" imperative-statement ] | ||
| { "WHEN" condition ( imperative-statement | "NEXT-SENTENCE" ) }+ | ||
| [ "END-SEARCH" ] |
| search-statement | = | "SEARCH" "ALL" identifier [ [ "AT" ] "END" imperative-statement ] |
| "WHEN" ( data-name [ "IS" ] ( "EQUAL" [ "TO" ] | "=" ) ( identifier | literal | arithmetic-expression ) | condition-name ) | ||
| { "AND" ( data-name [ "IS" ] ( "EQUAL" [ "TO" ] | "=" ) ( identifier | literal | arithmetic-expression ) | condition-name ) }* | ||
| ( imperative-statement | "NEXT" "SENTENCE" ) [ "END-SEARCH" ] |
| set-statement | = | "SET" { ( index-name | identifier ) }+ "TO" ( index-name | identifier | integer ) |
| set-statement | = | "SET" { index-name }+ ( "UP" "BY" | "DOWN" "BY" ) ( identifier | integer ) |
| set-statement | = | "SET" { { mnemonic-name }+ "TO" ( "ON" | "OFF" ) }+ |
| set-statement | = | "SET" { condition-name }+ "TO" "TRUE" |
| set-statement | = | "SET" { ( identifier | "ADDRESS" "OF" identifier ) }+ |
| "TO" ( identifier | "ADDRESS" "OF" identifier | "NULL" | "NULLS" ) |
| set-statement | = | "SET" { procedure-pointer-data-item }+ |
| "TO" ( procedure-pointer-data-item | "ENTRY" ( identifier | literal ) | "NULL" | "NULLS" | pointer-data-item ) |
| set-statement | = | "SET" object-reference-id "TO" ( object-reference-id | "NULL" | "SELF" ) |
| sort-statement | = | "SORT" file-name { [ "ON" ] ( "ASCENDING" | "DESCENDING" ) [ "KEY" ] { data-name }+ }+ |
| [ [ "WITH" ] "DUPLICATES" [ "IN" ] [ "ORDER" ] ] | ||
| [ [ "COLLATING" ] "SEQUENCE" [ "IS" ] alphabet-name ] | ||
| ( "USING" { file-name }+ | "INPUT" "PROCEDURE" [ "IS" ] procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] ) | ||
| ( "GIVING" { file-name }+ | "OUTPUT" "PROCEDURE" [ "IS" ] procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] ) |
| start-statement | = | "START" file-name |
| [ "KEY" [ "IS" ] ( "EQUAL" [ "TO" ] | "=" | "LESS" [ "THAN" ] | "<" | "GREATER" [ "THAN" ] | ">" | "NOT" "LESS" [ "THAN" ] | "NOT" "<" | "NOT" "GREATER" [ "THAN" ] | "NOT" ">" | "LESS" [ "THAN" ] "OR" "EQUAL" [ "TO" ] | "<" "=" | "GREATER" [ "THAN" ] "OR" "EQUAL" [ "TO" ] | ">=" ) data-name ] | ||
| [ "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "NOT" "INVALID" [ "KEY" ] imperative-statement ] [ "END-START" ] |
| stop-statement | = | "STOP" ( "RUN" | literal ) |
| string-statement | = | "STRING" |
| { { ( identifier | literal ) }+ "DELIMITED" [ "BY" ] ( identifier | literal | "SIZE" ) }+ | ||
| "INTO" identifier [ [ "WITH" ] "POINTER" identifier ] | ||
| [ [ "ON" ] "OVERFLOW" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "OVERFLOW" imperative-statement ] | ||
| [ "END-STRING" ] |
| subtract-statement | = | "SUBTRACT" { ( identifier | literal ) }+ "FROM" |
| { identifier [ "ROUNDED" ] }+ | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-SUBTRACT" ] |
| subtract-statement | = | "SUBTRACT" { ( identifier | literal ) }+ "FROM" ( identifier | literal ) |
| "GIVING" { identifier [ "ROUNDED" ] }+ | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-SUBTRACT" ] |
| subtract-statement | = | "SUBTRACT" ( "CORRESPONDING" | "CORR" ) identifier "FROM" |
| identifier [ "ROUNDED" ] | ||
| [ [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "SIZE" "ERROR" imperative-statement ] | ||
| [ "END-SUBTRACT" ] |
| unstring-statement | = | "UNSTRING" identifier |
| [ "DELIMITED" [ "BY" ] [ "ALL" ] ( identifier | literal ) { "OR" [ "ALL" ] ( identifier | literal ) }* ] | ||
| "INTO" | ||
| { identifier [ "DELIMITER" [ "IN" ] identifier ] [ "COUNT" [ "IN" ] identifier ] }+ | ||
| [ [ "WITH" ] "POINTER" identifier ] [ "TALLYING" [ "IN" ] identifier ] | ||
| [ [ "ON" ] "OVERFLOW" imperative-statement ] | ||
| [ "NOT" [ "ON" ] "OVERFLOW" imperative-statement ] [ "END-UNSTRING" ] |
| write-statement | = | "WRITE" record-name [ "FROM" identifier ] |
| ( [ ( "BEFORE" | "AFTER" ) [ "ADVANCING" ] ( ( identifier | integer ) [ ( "LINE" | "LINES" ) ] | mnemonic-name | "PAGE" ) ] write-statement-phrase-1 | write-statement-invalid_key write-statement-not_invalid_key ) | ||
| [ "END-WRITE" ] |
| write-statement | = | "WRITE" record-name [ "FROM" identifier ] |
| [ "AFTER" [ "ADVANCING" ] ( ( identifier | integer ) [ ( "LINE" | "LINES" ) ] | "PAGE" ) ] | ||
| [ "END-WRITE" ] |
| write-statement | = | "WRITE" record-name [ "FROM" identifier ] |
| [ "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "NOT" "INVALID" [ "KEY" ] imperative-statement ] | ||
| [ "END-WRITE" ] |
| write-statement-phrase-1 | = | [ [ "AT" ] ( "END-OF-PAGE" | "EOP" ) imperative-statement ] |
| [ "NOT" [ "AT" ] ( "END-OF-PAGE" | "EOP" ) imperative-statement ] |
| write-statement-invalid_key | = | [ "INVALID" [ "KEY" ] imperative-statement ] |
| write-statement-not_invalid_key | = | [ "NOT" "INVALID" [ "KEY" ] imperative-statement ] |
| specifying-a-function | = | "FUNCTION" function-name [ "(" { argument }+ ")" ] |
| [ reference-modifier ] |
| intrinsic-function | = | "FUNCTION" "ACOS" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "ANNUITY" "(" argument argument ")" |
| intrinsic-function | = | "FUNCTION" "ASIN" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "ATAN" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "CHAR" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "COS" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "CURRENT-DATE" |
| intrinsic-function | = | "FUNCTION" "DATE-OF-INTEGER" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "DATE-TO-YYYYMMDD" "(" argument [ argument ] ")" |
| intrinsic-function | = | "FUNCTION" "DATEVAL" "(" argument argument ")" |
| intrinsic-function | = | "FUNCTION" "DAY-OF-INTEGER" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "DAY-TO-YYYYDDD" "(" argument [ argument ] ")" |
| intrinsic-function | = | "FUNCTION" "FACTORIAL" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "INTEGER" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "INTEGER-OF-DATE" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "INTEGER-OF-DAY" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "INTEGER-PART" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "LENGTH" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "LOG" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "LOG10" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "LOWER-CASE" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "MAX" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "MEAN" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "MEDIAN" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "MIDRANGE" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "MIN" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "MOD" "(" argument argument ")" |
| intrinsic-function | = | "FUNCTION" "NUMVAL" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "NUMVAL-C" "(" argument [ argument ] ")" |
| intrinsic-function | = | "FUNCTION" "ORD" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "ORD-MAX" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "ORD-MIN" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "PRESENT-VALUE" "(" argument { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "RANDOM" [ "(" argument ")" ] |
| intrinsic-function | = | "FUNCTION" "RANGE" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "REM" "(" argument argument ")" |
| intrinsic-function | = | "FUNCTION" "REVERSE" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "SIN" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "SQRT" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "STANDARD-DEVIATION" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "SUM" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "TAN" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "UNDATE" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "UPPER-CASE" "(" argument ")" |
| intrinsic-function | = | "FUNCTION" "VARIANCE" "(" { argument }+ ")" |
| intrinsic-function | = | "FUNCTION" "WHEN-COMPILED" |
| intrinsic-function | = | "FUNCTION" "YEAR-TO-YYYY" "(" argument [ argument ] ")" |
| intrinsic-function | = | "FUNCTION" "YEARWINDOW" |
| basis-statement | = | [ sequence-number ] "BASIS" ( basis-name | literal ) |
| cbl-process-statement | = | ( "CBL" | "PROCESS" ) [ options-list ] |
| control-cbl-statement | = | ( "*CONTROL" | "*CBL" ) { ( "SOURCE" | "NOSOURCE" | "LIST" | "NOLIST" | "MAP" | "NOMAP" ) }+ [ "." ] |
| copy-statement | = | "COPY" ( text-name | literal ) [ ( "OF" | "IN" ) ( library-name | literal ) ] |
| [ "SUPPRESS" ] [ "REPLACING" { operand "BY" operand }+ ] "." |
| eject-statement | = | "EJECT" [ "." ] |
| enter-statement | = | "ENTER" language-name [ routine-name ] "." |
| insert-statement | = | [ sequence-number ] "INSERT" sequence-number-field |
| ready-or-reset-trace-statement | = | ( "READY" | "RESET" ) "TRACE" "." |
| replace-statement | = | "REPLACE" { "=" "=" pseudo-text "=" "=" "BY" "=" "=" pseudo-text "=" "=" }+ "." |
| replace-statement | = | "REPLACE" "OFF" "." |
| service-label-statement | = | "SERVICE" "LABEL" |
| service-reload-statement | = | "SERVICE" "RELOAD" identifier |
| skip123-statement | = | ( "SKIP1" | "SKIP2" | "SKIP3" ) [ "." ] |
| title-statement | = | "TITLE" literal [ "." ] |
| use-statement | = | "USE" [ "GLOBAL" ] "AFTER" [ "STANDARD" ] ( "EXCEPTION" | "ERROR" ) "PROCEDURE" |
| [ "ON" ] ( { file-name }+ | "INPUT" | "OUTPUT" | "I-O" | "EXTEND" ) |
| use-statement | = | "USE" [ "GLOBAL" ] "AFTER" [ "STANDARD" ] [ ( "BEGINNING" | "ENDING" ) ] [ ( "FILE" | "REEL" | "UNIT" ) ] |
| "LABEL" "PROCEDURE" [ "ON" ] ( { file-name }+ | "INPUT" | "OUTPUT" | "I-O" | "EXTEND" ) |
| use-statement | = | "USE" [ "FOR" ] "DEBUGGING" [ "ON" ] ( { procedure-name }+ | "ALL" "PROCEDURES" ) |
| call-interface | = | ( ">>CALLINTERFACE" | ">>CALLINT" ) [ ( "SYSTEM" | "OPTLINK" | "FAR16" | "PASCAL16" | "CDECL" ) ] [ ( "DESC" | "DESCRIPTOR" | "NODESC" | "NODESCRIPTOR" ) ] |
_________________________________________________ | | | >>__text-name________________________________>< | | |_____IN_____library-name__| | | |__OF__| | |_________________________________________________|
|
|
______________________________________________________ | | | >>__paragraph-name________________________________>< | | |_____IN_____section-name__| | | |__OF__| | |______________________________________________________| ______________________ | | | >>__section-name__>< | |______________________|
|
|
___________________ | | | >>__data-name__>< | |___________________|
|
|
__________________________________________________________________ | | | >>__data-name__________________________________________________> | | | <______________________ | | | |_______IN_____data-name__|__| | | |__OF__| | | >______________________________________________________________> | | |_____IN_____file-name__| | <__________________ | | | |__OF__| |____(__subscript__)__|__| | | >_____________________________________________________________>< | | |__(__leftmost-character-position__:________________)__| | | |__length__| | |__________________________________________________________________| ______________________________________________________________ | | | >>_____condition-name______________________________________> | | |__data-name_______| | <______________________ | | | |_______IN_____data-name__|__| | | |__OF__| | | >_________________________________________________________>< | | |_____IN_____file-name__| | | |__OF__| | |______________________________________________________________| ___________________________________________________ | | | >>__LINAGE-COUNTER_____________________________>< | | |_____IN_____file-name__| | | |__OF__| | |___________________________________________________|
|
|
_______________________________________________________________ | | | >>__condition-name__________________________________________> | | | <______________________ | | | |_______IN_____data-name__|__| | | |__OF__| | | >__________________________________________________________>< | | |_____IN_____file-name__| | <____________ | | | |__OF__| |__(____subscript__|__)__| | |_______________________________________________________________| ____________________________________________________________ | | | >>__condition-name______________________________________>< | | | <__________________________ | | | |_______IN_____mnemonic-name__|__| | | |__OF__| | |____________________________________________________________|
|
|
______________________________________________________________ | | | >>_____condition-name______________________________________> | | |__data-name_______| | <______________________ | | | |_______IN_____data-name__|__| | | |__OF__| | | >__________________________________________________________> | | |_____IN_____file-name__| | | |__OF__| | | <___________________________________________ | | >___(_______integer________________________________|__)___>< | | |__ALL_________________________________| | | |__data-name___________________________| | | | |_____+_____integer__| | | | | |__-__| | | | |__index-name__________________________| | | |_____+_____integer__| | | |__-__| | |______________________________________________________________|
|
|
__________________________________________________________________ | | | >>_____data-name_______________________________________________> | | |__FUNCTION__function-name_____________________________| | | | <___________ | | | |__(____argument__|__)__| | | >___(__leftmost-character-position__:________________)________>< | | |__length__| | |__________________________________________________________________|
|
|
____________________________________________________________ | | | >>__FUNCTION__function-name______________________________> | | | <___________ | | | |__(____argument__|__)__| | | >_______________________________________________________>< | | |__reference-modifier__| | |____________________________________________________________|
|
|
_______________________________________________________________________________________________________ | | | >>_____IDENTIFICATION_____DIVISION__.__PROGRAM-ID__.__program-name__________________________________> | | |__ID______________| | | >___________________________________________________._______________________________________________> | | |_______________RECURSIVE____________________| | | |__IS__| |__INITIAL____| |__PROGRAM__| | | >___________________________________________________________________________________________________> | | |__identification-division-content__| | | >___________________________________________________________________________________________________> | | |__ENVIRONMENT__DIVISION__.__environment-division-content__| | | >___________________________________________________________________________________________________> | | |__DATA__DIVISION__.__data-division-content__| | | >___________________________________________________________________________________________________> | | |__PROCEDURE__DIVISION__.__procedure-division-content__| | | >__________________________________________________________________________________________________>< | | |____________________________________________________________END__PROGRAM__program-name__.__| | | | <________________________________________________ | | | |____cobol-program-structure-nested-source-program__|__| | |_______________________________________________________________________________________________________| ___________________________________ | | | <_______________________ | | >>____cobol-source-program__|__>< | |___________________________________|
|
|
_________________________________________________________________________________________________ | | | >>_____IDENTIFICATION_____DIVISION__.__PROGRAM-ID__.__program-name____________________________> | | |__ID______________| | | >_______________________________________________________________._____________________________> | | |_______________COMMON___________________________________| | | |__IS__| | |__INITIAL__| | |__PROGRAM__| | | |__INITIAL________________| | | |__COMMON__| | | >_____________________________________________________________________________________________> | | |__identification-division-content__| | | >_____________________________________________________________________________________________> | | |__ENVIRONMENT__DIVISION__.__environment-division-content__| | | >_____________________________________________________________________________________________> | | |__DATA__DIVISION__.__data-division-content__| | | >_____________________________________________________________________________________________> | | |__PROCEDURE__DIVISION__.__procedure-division-content__| | | >_____________________________________________________________END__PROGRAM__program-name__.__>< | | | <________________________________________________ | | | |____cobol-program-structure-nested-source-program__|__| | |_________________________________________________________________________________________________|
|
|
_______________________________________________________________________ | | | >>_____IDENTIFICATION__DIVISION__._____CLASS-ID__.__class-name__.___> | | |__ID__DIVISION__.______________| | | >___________________________________________________________________> | | |__identification-division-content__| | | >___ENVIRONMENT__DIVISION__.__class-environment-division-content____> | | >___________________________________________________________________> | | |__DATA__DIVISION__.__class-data-division-content__| | | >___________________________________________________________________> | | |__PROCEDURE__DIVISION__.________________________________| | | | <____________________ | | | |____method-definition__|__| | | >___END__CLASS__class-name__.______________________________________>< | |_______________________________________________________________________|
|
|
_____________________________________________________________________________ | | | >>_____IDENTIFICATION__DIVISION__.________________________________________> | | |__ID__DIVISION__.______________| | | >_________________________________________________________________________> | | |__identification-division-content__| | | >_________________________________________________________________________> | | |__ENVIRONMENT__DIVISION__.__method-environment-division-content__| | | >_________________________________________________________________________> | | |__DATA__DIVISION__.__method-data-division-content__| | | >_________________________________________________________________________> | | |__PROCEDURE__DIVISION__.__method-procedure-division-content__| | | >___END__METHOD__method-name__.__________________________________________>< | |_____________________________________________________________________________|
|
|
________________________________________________________________________ | | | >>_____IDENTIFICATION_____DIVISION__.__PROGRAM-ID__.__program-name___> | | |__ID______________| | | >_______________________________________________________________.____> | | |_______________RECURSIVE________________________________| | | |__IS__| |__COMMON_________________| |__PROGRAM__| | | | |__INITIAL__| | | | |__INITIAL________________| | | |__COMMON__| | | >____________________________________________________________________> | | |__AUTHOR__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >____________________________________________________________________> | | |__INSTALLATION__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >____________________________________________________________________> | | |__DATE-WRITTEN__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >____________________________________________________________________> | | |__DATE-COMPILED__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >___________________________________________________________________>< | | |__SECURITY__.____________________________| | | | <________________ | | | |____comment-entry__|__| | |________________________________________________________________________| _____________________________________________________________________________ | | | >>_____IDENTIFICATION__DIVISION_____CLASS-ID__.__class-name_______________> | | |__ID__DIVISION______________| | | <_____________ | | >___INHERITS____class-name__|_________________________________________.___> | | |__METACLASS____________class-name__| | | |__IS__| | | >_________________________________________________________________________> | | |__AUTHOR__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >_________________________________________________________________________> | | |__INSTALLATION__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >_________________________________________________________________________> | | |__DATE-WRITTEN__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >_________________________________________________________________________> | | |__DATE-COMPILED__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >________________________________________________________________________>< | | |__SECURITY__.____________________________| | | | <________________ | | | |____comment-entry__|__| | |_____________________________________________________________________________| ______________________________________________________________________________ | | | >>_____IDENTIFICATION__DIVISION____________________________________________> | | |__ID__DIVISION______________| | | >___METHOD-ID__.__method-name__________________________________________.___> | | |__________________________OVERRIDE__| | | |__IS__| |__METHOD__| | | >__________________________________________________________________________> | | |__AUTHOR__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >__________________________________________________________________________> | | |__INSTALLATION__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >__________________________________________________________________________> | | |__DATE-WRITTEN__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >__________________________________________________________________________> | | |__DATE-COMPILED__.____________________________| | | | <________________ | | | |____comment-entry__|__| | | >_________________________________________________________________________>< | | |__SECURITY__.____________________________| | | | <________________ | | | |____comment-entry__|__| | |______________________________________________________________________________|
|
|
________________________________________________________________________ | | | >>__CONFIGURATION__SECTION__.________________________________________> | | |__source-computer-paragraph__| | | >____________________________________________________________________> | | |__object-computer-paragraph__| |__special-names-paragraph__| | | >___________________________________________________________________>< | | |__repository-paragraph__| | |________________________________________________________________________|
|
|
___________________________________________________________________ | | | >>__SOURCE-COMPUTER__.__________________________________________> | | >______________________________________________________________>< | | |__computer-name_____________________________________.__| | | |______________DEBUGGING__MODE__| | | |__WITH__| | |___________________________________________________________________|
|
|
________________________________________________________________________________________________________________________ | | | >>__OBJECT-COMPUTER__._______________________________________________________________________________________________> | | >___________________________________________________________________________________________________________________>< | | |__computer-name_______________________________________________________object-computer-paragraph-entry-1__.__| | | |__MEMORY______________integer_____WORDS__________| | | |__SIZE__| |__CHARACTERS__| | | |__MODULES_____| | |________________________________________________________________________________________________________________________|
|
|
_________________________________________________________________________________ | | | >>___________________________________________________________________________>< | | |__________________________________SEQUENCE____________alphabet-name__| | | |__PROGRAM__| |__COLLATING__| |__IS__| | |_________________________________________________________________________________|
|
|
___________________________________________________________________________________________________________________________________ | | | >>__SPECIAL-NAMES__.____________________________________________________________________________________________________________> | | | <_______________________________________________________________________________________________ | | | |_______environment-name____________mnemonic-name__________________________________________________|__| | | | |__IS__| | | | |__environment-name_______________mnemonic-name____________________________________________| | | | |__IS__| |__special-names-paragraph-entry-1__| | | | |__special-names-paragraph-entry-1_________________________________| | | >_______________________________________________________________________________________________________________________________> | | | <__________________________________________________________________________________________ | | | |____ALPHABET__alphabet-name_______________STANDARD-1_________________________________________|__| | | |__IS__| |__STANDARD-2______________________________________| | | |__NATIVE__________________________________________| | | |__EBCDIC__________________________________________| | | | <____________________________________________ | | | |____literal__special-names-paragraph-phrase-1__|__| | | >_______________________________________________________________________________________________________________________________> | | | <________________________________________________________________________________________ | | | |____SYMBOLIC____________________special-names-paragraph-symbolic___________________________|__| | | |__CHARACTERS__| |__IN__alphabet-name__| | | >_______________________________________________________________________________________________________________________________> | | | <__________________________________________________________________________ | | | | <________________________________________ | | | | |____CLASS__class-name______________literal________________________________|__|__| | | |__IS__| |_____THROUGH_____literal__| | | |__THRU_____| | | >_______________________________________________________________________________________________________________________________> | | |__CURRENCY________________________literal______________________________________________| | | |__SIGN__| |__IS__| |______________PICTURE__SYMBOL__literal__| | | |__WITH__| | | >______________________________________________________________________________________________________________________________>< | | |__DECIMAL-POINT____________COMMA__| |__.__| | | |__IS__| | |___________________________________________________________________________________________________________________________________|
|
|
___________________________________________________________________________________________________ | | | >>_____ON__________________________condition___________________________________________________>< | | | |__STATUS__| |__IS__| |__OFF__________________________condition__| | | | | |__STATUS__| |__IS__| | | | |__OFF__________________________condition_______________________________________________| | | |__STATUS__| |__IS__| |__ON__________________________condition__| | | |__STATUS__| |__IS__| | |___________________________________________________________________________________________________|
|
|
____________________________________________ | | | >>______________________________________>< | | |________THROUGH_____literal_____| | | | |__THRU_____| | | | | <________________ | | | |____ALSO__literal__|______| | |____________________________________________|
|
|
_______________________________________________________________ | | | <___________________________________________________ | | <_____________________ <__________ | | | >>______symbolic-character__|_____ARE_______integer__|__|__>< | | |__IS___| | |_______________________________________________________________|
|
|
_____________________________________________________________________________________ | | | >>__REPOSITORY__._________________________________________________________________> | | |__CLASS__class-name_______________________________________| | | |____________external-class-name__| | | |__IS__| | | >___.____________________________________________________________________________>< | |_____________________________________________________________________________________|
|
|
___________________________________________________________________ | | | >>__INPUT-OUTPUT__SECTION__.__FILE-CONTROL__.___________________> | | <_________________________ | | >_____file-control-paragraph__|_________________________________> | | >______________________________________________________________>< | | |__I-O-CONTROL__._______________________________________| | | | <________________________ | | | |____i-o-control-paragraph__|__.__| | |___________________________________________________________________|
|
|
___________________________________________________________________________________________________ | | | <__________________ | | >>__SELECT__________________file-name__ASSIGN_________________assignment-name__|________________> | | |__OPTIONAL__| | |__TO__| | | | |__USING__data-name________________| | | | | >_______________________________________________________________________________________________> | | |__RESERVE__integer_____________________| |________________________________SEQUENTIAL__| | | |_____AREA______| |__ORGANIZATION____________| | | |__AREAS__| |__IS__| | | >_______________________________________________________________________________________________> | | |__PADDING________________________________data-name_____| | | |__CHARACTER__| |__IS__| |__literal____| | | >_______________________________________________________________________________________________> | | |__RECORD__DELIMITER_______________STANDARD-1__________| | | |__IS__| |__assignment-name__| | | >_______________________________________________________________________________________________> | | |__ACCESS________________________SEQUENTIAL__| | | |__MODE__| |__IS__| | | >_______________________________________________________________________________________________> | | |__LOCK________________________AUTOMATIC______________________________________| | | |__MODE__| |__IS__| |______________LOCK__ON__RECORD__| | | |__WITH__| | | >_______________________________________________________________________________________________> | | |__PASSWORD____________data-name__| | | |__IS__| | | >___________________________________________________________________.__________________________>< | | |______________STATUS____________data-name___________________| | | |__FILE__| |__IS__| |__data-name__| | |___________________________________________________________________________________________________| ___________________________________________________________________________ | | | >>__SELECT__________________file-name___________________________________> | | |__OPTIONAL__| | | <__________________ | | >___ASSIGN_________________assignment-name__|___________________________> | | | |__TO__| | | | |__USING__data-name________________| | | | | >_________________________________LINE__SEQUENTIAL______________________> | | |__ORGANIZATION____________| | | |__IS__| | | >_______________________________________________________________________> | | |__ACCESS________________________SEQUENTIAL__| | | |__MODE__| |__IS__| | | >___________________________________________________________________.__>< | | |______________STATUS____________data-name___________________| | | |__FILE__| |__IS__| |__data-name__| | |___________________________________________________________________________| ______________________________________________________________________________________________________________ | | | <__________________ | | >>__SELECT__________________file-name__ASSIGN_________________assignment-name__|___________________________> | | |__OPTIONAL__| | |__TO__| | | | |__USING__data-name________________| | | | | >____________________________________________________________________________RELATIVE______________________> | | |__RESERVE__integer_____________________| |__ORGANIZATION____________| | | |_____AREA______| |__IS__| | | |__AREAS__| | | >__________________________________________________________________________________________________________> | | |__ACCESS___________________________SEQUENTIAL_____________________________________________________| | | |__MODE__| |__IS__| | |__RELATIVE_______________________data-name__| | | | | |__KEY__| |__IS__| | | | |_____RANDOM______RELATIVE_______________________data-name_____| | | |__DYNAMIC__| |__KEY__| |__IS__| | | >__________________________________________________________________________________________________________> | | |__LOCK________________________AUTOMATIC______________________________________| | | |__MODE__| |__IS__| |______________LOCK__ON__RECORD__| | | |__WITH__| | | >__________________________________________________________________________________________________________> | | |__PASSWORD____________data-name__| | | |__IS__| | | >___________________________________________________________________._____________________________________>< | | |______________STATUS____________data-name___________________| | | |__FILE__| |__IS__| |__data-name__| | |______________________________________________________________________________________________________________| ______________________________________________________________________________________________________________________ | | | <__________________ | | >>__SELECT__________________file-name__ASSIGN_________________assignment-name__|___________________________________> | | |__OPTIONAL__| | |__TO__| | | | |__USING__data-name________________| | | | | >____________________________________________________________________________INDEXED_______________________________> | | |__RESERVE__integer_____________________| |__ORGANIZATION____________| | | |_____AREA______| |__IS__| | | |__AREAS__| | | >__________________________________________________________________________________________________________________> | | |__ACCESS___________________________SEQUENTIAL_____| | | |__MODE__| |__IS__| |__RANDOM______| | | |__DYNAMIC_____| | | >__________________________________________________________________________________________________________________> | | |__LOCK________________________AUTOMATIC______________________________________| | | |__MODE__| |__IS__| |______________LOCK__ON__RECORD__| | | |__WITH__| | | >___RECORD_______________________data-name_________________________________________________________________________> | | |__KEY__| |__IS__| |__PASSWORD____________data-name__| | | |__IS__| | | >______________________________________________________________________________________________________________.__>< | | | <_________________________________ | |______________STATUS____________data-name___________________| | | |____file-control-paragraph-entry-1__|__| |__FILE__| |__IS__| |__data-name__| | |______________________________________________________________________________________________________________________|
|
|
_________________________________________________________________________________________ | | | >>__ALTERNATE__RECORD_______________________data-name_________________________________> | | |__KEY__| |__IS__| |______________DUPLICATES__| | | |__WITH__| | | >____________________________________________________________________________________>< | | |__PASSWORD____________data-name__| | | |__IS__| | |_________________________________________________________________________________________|
|
|
__________________________________________ | | | >>______________________________name__>< | | |__label__-__| |__S__-__| | |__________________________________________| ______________________________________________________________________________ | | | >>___________________________system-file-name______________________________> | | |__file-system-id__-__| | | >_________________________________________________________________________>< | | |__(__alt-inx-file-name_________________________________________)__| | | | <_____________________________ | | | |____,___________________________|__| | | |__alt-inx-file-name__| | |______________________________________________________________________________| _____________________________________ | | | >>__________________AS__-__name__>< | | |__label__-__| | |_____________________________________| ______________________________ | | | >>__________________name__>< | | |__label__-__| | |______________________________| _______________________________________________________________ | | | >>__________________________________________________________> | | |__comment__-__| |__file-system-id__-__| | | >______system-file-name____________________________________>< | | | |__assign-clause-alt_index__| | | | |__environment-variable-name________________________| | |_______________________________________________________________|
|
|
________________________________________________________________________ | | | >>__(__alt-inx-file-name_________________________________________)__>< | | | <_____________________________ | | | |____,___________________________|__| | | |__alt-inx-file-name__| | |________________________________________________________________________|
|
|
___________________________________________________________________________________________________ | | | >>_____RERUN__ON_____assignment-name__________________i-o-control-paragraph-phrase-1___________>< | | | |__file-name________| |__EVERY__| | | | | <____________ | | | |__SAME_______________________________________file-name____file-name__|_________________| | | | |__RECORD__| |__AREA__| |__FOR__| | | | | <_____________________________________ | | | |__MULTIPLE__FILE________________________________file-name___________________________|__| | | | |__TAPE__| |__CONTAINS__| |__POSITION__integer__| | | | | <____________ | | | |__APPLY__WRITE-ONLY______________file-name__|__________________________________________| | | |__ON__| | |___________________________________________________________________________________________________| ____________________________________________________________________________________________ | | | >>_______________________________________________________________________________________> | | |__RERUN____________assignment-name__| | | |__ON__| | | <________________________________________________________________________________ | | >_____SAME_____RECORD________________________________i-o-control-paragraph-phrase-1__|__>< | | |__SORT________| |__AREA__| |__FOR__| | | |__SORT-MERGE__| | |____________________________________________________________________________________________| ______________________________________________________________________________ | | | <____________ | | >>__SAME_______________________________________file-name____file-name__|__>< | | |__RECORD__| |__AREA__| |__FOR__| | |______________________________________________________________________________| _____________________________________________________________________________________________ | | | >>_____RERUN__ON_____assignment-name__________________i-o-control-paragraph-phrase-1_____>< | | | |__file-name________| |__EVERY__| | | | | <____________ | | | |__SAME_______________________________________file-name____file-name__|___________| | | |__RECORD__| |__AREA__| |__FOR__| | |_____________________________________________________________________________________________|
|
|
______________________________________________________________ | | | >>_____integer__RECORDS________________________file-name__>< | | |__END_______________REEL_____| |__OF__| | | |__OF__| |__UNIT__| | |______________________________________________________________| _______________________________________________ | | | >>__integer__RECORDS____________file-name__>< | | |__OF__| | |_______________________________________________| ___________________________________ | | | <____________ | | >>__file-name____file-name__|__>< | |___________________________________|
|
|
__________________________________________________________________________________________________ | | | >>__DATA__DIVISION__.__________________________________________________________________________> | | >______________________________________________________________________________________________> | | |__FILE__SECTION__.____________________________________________________________________| | | | <________________________________________________________ | | | | <___________________________ | | | | |____file-description-entry____record-description-entry__|__|__| | | >______________________________________________________________________________________________> | | |__WORKING-STORAGE__SECTION__.________________________________________________| | | | <____________________________________ | | | |_______record-description-entry________|__| | | |__data-item-description-entry__| | | >______________________________________________________________________________________________> | | |__LOCAL-STORAGE__SECTION__.________________________________________________| | | | <____________________________________ | | | |_______record-description-entry________|__| | | |__data-item-description-entry__| | | >_____________________________________________________________________________________________>< | | |__LINKAGE__SECTION__.________________________________________________| | | | <____________________________________ | | | |_______record-description-entry________|__| | | |__data-item-description-entry__| | |__________________________________________________________________________________________________| _________________________________________________________________________________________ | | | >>___________________________________________________________________________________>< | | |__WORKING-STORAGE__SECTION__.________________________________________________| | | | <____________________________________ | | | |_______record-description-entry________|__| | | |__data-item-description-entry__| | |_________________________________________________________________________________________|
|
|
___________________________________________________________________________________________________ | | | >>__FD__file-name_______________________________________________________________________________> | | |____________EXTERNAL__| |____________GLOBAL__| | | |__IS__| |__IS__| | | >_______________________________________________________________________________________________> | | |__BLOCK_____________________________________integer_____CHARACTERS_____| | | |__CONTAINS__| |__integer__TO__| |__RECORDS_____| | | >_______________________________________________________________________________________________> | | |__RECORD_____________________integer___________________________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__________________integer__TO__integer___________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__file-description-entry-clause-1________________________________________| | | |__DEPENDING____________data-name__| | | |__ON__| | | >_______________________________________________________________________________________________> | | |__LABEL_____RECORD____________________STANDARD_________________| | | | |__IS__| | |__OMITTED_______________| | | |__RECORDS_____________| |________________________| | | |__ARE__| | <____________ | | | |____data-name__|__| | | >_______________________________________________________________________________________________> | | | <_________________________________________ | | | |__VALUE__OF____system-name_______________data-name_____|__| | | |__IS__| |__literal____| | | >_______________________________________________________________________________________________> | | | <____________ | | | |__DATA_____RECORD___________________data-name__|__| | | | |__IS__| | | | |__RECORDS_____________| | | |__ARE__| | | >_______________________________________________________________________________________________> | | |__LINAGE_______________data-name__________________file-description-entry-clause-2__| | | |__IS__| |__integer____| |__LINES__| | | >_______________________________________________________________________________________________> | | |__RECORDING________________________mode__| | | |__MODE__| |__IS__| | | >____________________________________________._________________________________________________>< | | |__CODE-SET____________alphabet-name__| | | |__IS__| | |___________________________________________________________________________________________________| __________________________________________________________________________________________________________________ | | | >>__SD__file-name______________________________________________________________________________________________> | | |__RECORD_____________________integer___________________________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__________________integer__TO__integer___________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__file-description-entry-clause-1________________________________________| | | |__DEPENDING____________data-name__| | | |__ON__| | | >______________________________________________________________________________________________________________> | | | <____________ | | | |__DATA_____RECORD___________________data-name__|__| | | | |__IS__| | | | |__RECORDS_____________| | | |__ARE__| | | >______________________________________________________________________________________________________________> | | |__BLOCK_____________________________________integer_____CHARACTERS_____| | | |__CONTAINS__| |__integer__TO__| |__RECORDS_____| | | >______________________________________________________________________________________________________________> | | |__LABEL_____RECORD____________________STANDARD___________| | | | |__IS__| | |__OMITTED_________| | | |__RECORDS_____________| | <____________ | | | |__ARE__| |____data-name__|__| | | >______________________________________________________________________________________________________________> | | | <_________________________________________ | | | |__VALUE__OF____system-name_______________data-name_____|__| | | |__IS__| |__literal____| | | >______________________________________________________________________________________________________________> | | |__LINAGE_______________data-name__________________file-description-entry-clause-2__| | | |__IS__| |__integer____| |__LINES__| | | >____________________________________________.________________________________________________________________>< | | |__CODE-SET____________alphabet-name__| | | |__IS__| | |__________________________________________________________________________________________________________________| ______________________________________________________________________________________________________ | | | >>__FD__file-name__________________________________________________________________________________> | | |____________EXTERNAL__| |____________GLOBAL__| | | |__IS__| |__IS__| | | >______________________________________________________________________________________________.__>< | | |__RECORD_____________________integer___________________________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__________________integer__TO__integer___________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__file-description-entry-clause-1________________________________________| | | |__DEPENDING____________data-name__| | | |__ON__| | |______________________________________________________________________________________________________| ___________________________________________________________________________________________________ | | | >>__FD__file-name_______________________________________________________________________________> | | |____________EXTERNAL__| |____________GLOBAL__| | | |__IS__| |__IS__| | | >_______________________________________________________________________________________________> | | |__BLOCK_____________________________________integer_____CHARACTERS_____| | | |__CONTAINS__| |__integer__TO__| |__RECORDS_____| | | >_______________________________________________________________________________________________> | | |__RECORD_____________________integer___________________________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__________________integer__TO__integer___________________________________| | | | |__CONTAINS__| |__CHARACTERS__| | | | |__file-description-entry-clause-1________________________________________| | | |__DEPENDING____________data-name__| | | |__ON__| | | >_______________________________________________________________________________________________> | | |__LABEL_____RECORD____________________STANDARD_____| | | | |__IS__| | |__OMITTED___| | | |__RECORDS_____________| | | |__ARE__| | | >_______________________________________________________________________________________________> | | | <_________________________________________ | | | |__VALUE__OF____system-name_______________data-name_____|__| | | |__IS__| |__literal____| | | >_________________________________________________________.____________________________________>< | | | <____________ | | | |__DATA_____RECORD___________________data-name__|__| | | | |__IS__| | | | |__RECORDS_____________| | | |__ARE__| | |___________________________________________________________________________________________________|
|
|
____________________________________________________________________________ | | | >>____________VARYING____________________________________________________> | | |__IS__| |__IN__| |__SIZE__| |______________integer__| | | |__FROM__| | | >_______________________________________________________________________>< | | |__TO__integer__| |__CHARACTERS__| | |____________________________________________________________________________|
|
|
______________________________________________________________ | | | >>_________________________________________________________> | | |______________FOOTING_______________data-name_____| | | |__WITH__| |__AT__| |__integer____| | | >__________________________________________________________> | | |_________________________TOP_____data-name_____| | | |__LINES__| |__AT__| |__integer____| | | >_________________________________________________________>< | | |_________________________BOTTOM_____data-name_____| | | |__LINES__| |__AT__| |__integer____| | |______________________________________________________________|
|
|
___________________________________________________________ | | | >>__RECORD__________________integer____________________>< | | |__CONTAINS__| |__CHARACTERS__| | |___________________________________________________________| ________________________________________________________________________ | | | >>__RECORD__________________integer__TO__integer____________________>< | | |__CONTAINS__| |__CHARACTERS__| | |________________________________________________________________________| ________________________________________________________________________ | | | >>__RECORD____________VARYING________________________________________> | | |__IS__| |__IN__| |__SIZE__| | | >____________________________________________________________________> | | |______________integer__| |__TO__integer__| |__CHARACTERS__| | | |__FROM__| | | >___________________________________________________________________>< | | |__DEPENDING____________data-name__| | | |__ON__| | |________________________________________________________________________|
|
|
____________________________________________________________________________ | | | >>__level-number_________________________________________________________> | | |_____data-name_____| |__redefines-clause__| | | |__FILLER_____| | | >________________________________________________________________________> | | |__blank-when-zero-clause__| |__external-clause__| | | >________________________________________________________________________> | | |__global-clause__| |__justified-clause__| |__occurs-clause__| | | >________________________________________________________________________> | | |__picture-clause__| |__sign-clause__| |__synchronized-clause__| | | >_______________________________________________________________________>< | | |__usage-clause__| |__value-clause__| |__date-format-clause__| | |____________________________________________________________________________| __________________________________________ | | | >>__66__data-name__renames-clause__.__>< | |__________________________________________| _____________________________________________ | | | >>__88__condition-name__value-clause__.__>< | |_____________________________________________|
|
|
_____________________________________________ | | | >>__level-number_________________________>< | | |_____data-name_____| | | |__FILLER_____| | |_____________________________________________|
|
|
_________________________________________ | | | >>__BLANK_________________ZERO_______>< | | |__WHEN__| |__ZEROS___| | | |__ZEROES__| | |_________________________________________|
|
|
______________________________________________ | | | >>__DATE__FORMAT____________date-pattern__>< | | |__IS__| | |______________________________________________|
|
|
______________________________________ | | | >>_____JUSTIFIED__________________>< | | |__JUST_______| |__RIGHT__| | |______________________________________|
|
|
__________________________________________________________________________ | | | >>__OCCURS__integer____________________________________________________> | | |__TIMES__| | | >______________________________________________________________________> | | | <________________________________________________________ | | | | <____________ | | | | |_______ASCENDING_____________________________data-name__|__|__| | | |__DESCENDING__| |__KEY__| |__IS__| | | >_____________________________________________________________________>< | | | <_____________ | | | |__INDEXED______________index-name__|__| | | |__BY__| | |__________________________________________________________________________|
|
|
__________________________________________________________________________ | | | >>__OCCURS__integer__TO__integer_______________DEPENDING_______________> | | |__TIMES__| | | >_____________data-name________________________________________________> | | |__ON__| | | >______________________________________________________________________> | | | <________________________________________________________ | | | | <____________ | | | | |_______ASCENDING_____________________________data-name__|__|__| | | |__DESCENDING__| |__KEY__| |__IS__| | | >_____________________________________________________________________>< | | | <_____________ | | | |__INDEXED______________index-name__|__| | | |__BY__| | |__________________________________________________________________________|
|
|
___________________________________________________ | | | >>_____PICTURE_______________character-string__>< | | |__PIC______| |__IS__| | |___________________________________________________|
|
|
____________________________________________________________________ | | | >>_________________mantissa-e_________________________exponent__>< | | |_____+_____| |_____req__.__+_____| | | |__-__| |__-__________| | |____________________________________________________________________|
|
|
___________________________________________________________________ | | | >>__level-number_________________________REDEFINES__data-name__>< | | |_____data-name_____| | | |__FILLER_____| | |___________________________________________________________________|
|
|
___________________________________________ | | | >>__66__data-name__RENAMES__data-name___> | | >______________________________________>< | | |_____THROUGH_____data-name__| | | |__THRU_____| | |___________________________________________|
|
|
_______________________________________________________________________________ | | | >>___________________________LEADING_______________________________________>< | | |__SIGN____________| |__TRAILING__| |__SEPARATE___________________| | | |__IS__| |__CHARACTER__| | |_______________________________________________________________________________|
|
|
_______________________________________________ | | | >>_____SYNCHRONIZED________________________>< | | |__SYNC__________| |_____LEFT______| | | |__RIGHT__| | |_______________________________________________|
|
|
____________________________________________________________________ | | | >>____________________________BINARY____________________________>< | | |__USAGE____________| | |__NATIVE__| | | | |__IS__| |__COMP___________________________| | | |__COMP-1_________________________| | | | |__NATIVE__| | | | |__COMP-2_________________________| | | | |__NATIVE__| | | | |__COMP-3_________________________| | | |__COMP-4_________________________| | | | |__NATIVE__| | | | |__COMP-5_________________________| | | |__COMPUTATIONAL__________________| | | |__COMPUTATIONAL-1________________| | | | |__NATIVE__| | | | |__COMPUTATIONAL-2________________| | | | |__NATIVE__| | | | |__COMPUTATIONAL-3________________| | | |__COMPUTATIONAL-4________________| | | | |__NATIVE__| | | | |__COMPUTATIONAL-5________________| | | |__DISPLAY________________________| | | | |__NATIVE__| | | | |__DISPLAY-1______________________| | | | |__NATIVE__| | | | |__INDEX__________________________| | | |__usage-clause-objref-phrase_____| | | |__PACKED-DECIMAL_________________| | | |__POINTER________________________| | | |__PROCEDURE-POINTER______________| | |____________________________________________________________________|
|
|
________________________________________________________________________ | | | >>__OBJECT__REFERENCE_______________________________________________>< | | |_____________________________class-name__| | | |__METACLASS____________| | | |__OF__| | |________________________________________________________________________|
|
|
__________________________________ | | | >>__VALUE____________literal__>< | | |__IS__| | |__________________________________| _______________________________________________________ | | | >>__88__condition-name_____VALUE____________________> | | | |__IS__| | | | |__VALUES_____________| | | |__ARE__| | | <________________________________________ | | >_____literal________________________________|__.__>< | | |_____THROUGH_____literal__| | | |__THRU_____| | |_______________________________________________________| ______________________________________ | | | >>__VALUE_______________NULL______>< | | |__IS__| |__NULLS__| | |______________________________________|
|
|
______________________________________________________________________________________________________________________________________________ | | | >>__PROCEDURE__DIVISION___________________________________.________________________________________________________________________________> | | |__procedure-division-header__| | | >__________________________________________________________________________________________________________________________________________> | | | <_____________________________________________________________________________________ | | | |__DECLARATIVES__.____procedure-division-structure-sect__.__USE___________________________________________|__END__DECLARATIVES__.__| | | |__procedure-division-structure-para__| | | <___________________________________________________________________________________________ | | >_____section-name__SECTION_________________________.___________________________________________|_________________________________________>< | | |__priority-number__| |__procedure-division-structure-para__| | |______________________________________________________________________________________________________________________________________________| ______________________________________________________________ | | | >>__PROCEDURE__DIVISION__.________________________________>< | | | <____________________ | | | |____method-definition__|__| | |______________________________________________________________|
|
|
______________________________________________________ | | | >>__section-name__SECTION_________________________>< | | |__priority-number__| | |______________________________________________________|
|
|
_____________________________________________________ | | | <_________________________________________ | | >>____paragraph-name__._______________________|__>< | | | <___________ | | | |____sentence__|__| | |_____________________________________________________|
|
|
___________________________________________________________________________ | | | >>__PROCEDURE__DIVISION_________________________________________________> | | >_______________________________________________________________________> | | | <__________________________________________________ | | | | <____________ | | | | |__USING_______________________________________data-name__|__|__| | | |_______________REFERENCE_____| | | | |__BY__| | | | |____________VALUE______| | | |__BY__| | | >_______________________________.______________________________________>< | | |__RETURNING__data-name__| | |___________________________________________________________________________| ________________________________ | | | >>__PROCEDURE__DIVISION__.__>< | |________________________________|
|
|
_________________________________________________________________ | | | >>__identifier__________________________NUMERIC______________>< | | |__IS__| |__NOT__| |__ALPHABETIC________| | | |__ALPHABETIC-LOWER__| | | |__ALPHABETIC-UPPER__| | | |__class-name________| | | |__DBCS______________| | | |__KANJI_____________| | |_________________________________________________________________|
|
|
________________________ | | | >>__condition-name__>< | |________________________|
|
|
___________________________________________________________________________ | | | >>__operand_____________________________GREATER_________________________> | | |__IS__| | |__NOT__| | |__THAN__| | | | | | |__>____________________| | | | | |__LESS_________________| | | | | | |__THAN__| | | | | | |__<____________________| | | | | |__EQUAL________________| | | | | | |__TO__| | | | | | |__=____________________| | | | |__GREATER______________OR__EQUAL____________| | | | |__THAN__| |__TO__| | | | |__>=________________________________________| | | |__LESS______________OR__EQUAL_______________| | | | |__THAN__| |__TO__| | | | |__<__=______________________________________| | | >___operand____________________________________________________________>< | |___________________________________________________________________________|
|
|
______________________________________________________________ | | | >>_____ADDRESS__OF__identifier_____________________________> | | |__identifier_______________| |__IS__| |__NOT__| | | |__NULL_____________________| | | |__NULLS____________________| | | >______EQUAL__________________ADDRESS__OF__identifier_____>< | | | |__TO__| | |__identifier_______________| | | |__=________________| |__NULL_____________________| | | |__NULLS____________________| | |______________________________________________________________|
|
|
____________________________________________________________________________ | | | >>__________________________________________________EQUAL________________> | | |_____identifier_____| |__IS__| |__NOT__| | |__TO__| | | | |__NULL________| |__=________________| | | |__NULLS_______| | | >_______________________________________________________________________>< | | |_____identifier_____| | | |__NULL________| | | |__NULLS_______| | |____________________________________________________________________________|
|
|
__________________________________________________________________ | | | >>_____object-reference-identifier_____________________________> | | |__SELF_________________________| |__IS__| |__NOT__| | | |__NULL_________________________| | | |__NULLS________________________| | | >______EQUAL__________________object-reference-identifier_____>< | | | |__TO__| | |__SELF_________________________| | | |__=________________| |__NULL_________________________| | | |__NULLS________________________| | |__________________________________________________________________|
|
|
______________________________________________________ | | | >>__operand__________________________POSITIVE_____>< | | |__IS__| |__NOT__| |__NEGATIVE__| | | |__ZERO______| | |______________________________________________________|
|
|
________________________ | | | >>__condition-name__>< | |________________________|
|
|
________________________ | | | >>__NOT__condition__>< | |________________________|
|
|
______________________________________________ | | | <_______________________ | | >>__condition_______AND_____condition__|__>< | | |__OR___| | |______________________________________________|
|
|
______________________________________________________________________ | | | >>__relation-condition_____________________________________________> | | <__________________________________________________________ | | >________AND___________________________________________object__|__>< | | |__OR___| |__NOT__| |__relational-operator__| | |______________________________________________________________________|
|
|
_____________________________________________________________________________ | | | >>________READ_______file-name___________________________________________>< | | | |__RETURN__| |__RECORD__| |__INTO__identifier__| | | | |_____RELEASE_____record-name_____________________________________| | | |__REWRITE__| |__FROM__identifier__| | | |__WRITE____| | |_____________________________________________________________________________|
|
|
________________________________________________________________ | | | >>__ACCEPT__identifier______________________________________>< | | |__FROM_____mnemonic-name________| | | |__environment-name__| | |________________________________________________________________|
|
|
______________________________________________________________ | | | >>__ACCEPT__identifier__FROM_____DATE_____________________>< | | | |__YYYYMMDD__| | | | |__DAY___________________| | | | |__YYYYDDD__| | | | |__DAY-OF-WEEK___________| | | |__TIME__________________| | |______________________________________________________________|
|
|
________________________________________________________________________ | | | <___________________ <____________________________ | | >>__ADD_______identifier_____|__TO____identifier_________________|___> | | |__literal_____| |__ROUNDED__| | | >____________________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________________>< | | |__END-ADD__| | |________________________________________________________________________| ________________________________________________________________ | | | <___________________ | | >>__ADD_______identifier_____|_______________identifier______> | | |__literal_____| |__TO__| |__literal_____| | | <____________________________ | | >___GIVING____identifier_________________|___________________> | | |__ROUNDED__| | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-ADD__| | |________________________________________________________________| __________________________________________________________________________ | | | >>__ADD_____CORRESPONDING_____identifier__TO__identifier_______________> | | |__CORR___________| | | >______________________________________________________________________> | | |__ROUNDED__| |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >______________________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >_____________________________________________________________________>< | | |__END-ADD__| | |__________________________________________________________________________|
|
|
____________________________________________________________________ | | | >>__ALTER________________________________________________________> | | <________________________________________________________ | | >_____procedure-name__TO_____________________procedure-name__|__>< | | |__PROCEED__TO__| | |____________________________________________________________________|
|
|
___________________________________________________________________________________________________________________________ | | | >>__CALL_____identifier_________________________________________________________________________________________________> | | |__literal________| | | |__procedure-ptr__| | | >_______________________________________________________________________________________________________________________> | | | <____________________________________________________________________________ | | | | <______________________________________ | | | | |__USING__________________________________________________________identifier_____|_____|__| | | | |____________REFERENCE__| | |__ADDRESS__OF__| | | | | | |__BY__| |__file-name______________________| | | | | |__OMITTED________________________| | | | | <____________________________________________ | | | |____________CONTENT________________________________identifier_____|____| | | | |__BY__| | |_____ADDRESS__OF_____| | | | | | | |__LENGTH__OF___| | | | | | |__literal______________________________| | | | | |__OMITTED______________________________| | | | | <____________________________________________ | | | |____________VALUE________________________________identifier_____|______| | | |__BY__| | |_____ADDRESS__OF_____| | | | | |__LENGTH__OF___| | | | |__literal______________________________| | | | | >_______________________________________________________________________________________________________________________> | | |__RETURNING__identifier__| |__________________________________________________________________________________| | | | |__call-statement-on_exception__| |__call-statement-not_on_exception__| | | | |____________OVERFLOW__imperative-statement__________________________________| | | |__ON__| | | >______________________________________________________________________________________________________________________>< | | |__END-CALL__| | |___________________________________________________________________________________________________________________________|
|
|
_________________________________________________________ | | | >>___________________________________________________>< | | |____________EXCEPTION__imperative-statement__| | | |__ON__| | |_________________________________________________________|
|
|
______________________________________________________________ | | | >>________________________________________________________>< | | |__NOT____________EXCEPTION__imperative-statement__| | | |__ON__| | |______________________________________________________________|
|
|
_______________________________________ | | | <___________________ | | >>__CANCEL_______identifier_____|__>< | | |__literal_____| | |_______________________________________|
|
|
_______________________________________________________________________________________ | | | <____________________________________________________________________ | | >>__CLOSE____file-name__________________________________________________________|__>< | | |________REEL________________________________________| | | | |__UNIT__| |________________REMOVAL_____| | | | | | |__FOR__| | | | | | |__WITH__NO__REWIND____| | | | |_________________NO__REWIND___________________| | | |__WITH__| |__LOCK________| | |_______________________________________________________________________________________| _______________________________________________________ | | | <____________________________________ | | >>__CLOSE____file-name__________________________|__>< | | |______________LOCK__| | | |__WITH__| | |_______________________________________________________|
|
|
________________________________________________________________ | | | <____________________________ | | >>__COMPUTE____identifier_________________|_____=____________> | | |__ROUNDED__| |__EQUAL__| | | >___arithmetic-expression____________________________________> | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-COMPUTE__| | |________________________________________________________________|
|
|
__________________ | | | >>__CONTINUE__>< | |__________________|
|
|
_____________________________________________________________ | | | >>__DELETE__file-name_____________________________________> | | |__RECORD__| | | >_________________________________________________________> | | |__INVALID_____________imperative-statement__| | | |__KEY__| | | >_________________________________________________________> | | |__NOT__INVALID_____________imperative-statement__| | | |__KEY__| | | >________________________________________________________>< | | |__END-DELETE__| | |_____________________________________________________________| ______________________________________________________________ | | | >>_________________________DELETE__sequence-number-field__>< | | |__sequence-number__| | |______________________________________________________________|
|
|
_____________________________________________________________________________ | | | <___________________ | | >>__DISPLAY_______identifier_____|________________________________________> | | |__literal_____| | | >________________________________________________________________________>< | | |__UPON_____mnemonic-name________| |______________NO__ADVANCING__| | | |__environment-name__| |__WITH__| | |_____________________________________________________________________________|
|
|
________________________________________________________________________ | | | <____________________________ | | >>__DIVIDE_____identifier_____INTO____identifier_________________|___> | | |__literal_____| |__ROUNDED__| | | >____________________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________________>< | | |__END-DIVIDE__| | |________________________________________________________________________| ________________________________________________________________ | | | >>__DIVIDE_____identifier_____INTO_____identifier____________> | | |__literal_____| |__literal_____| | | <____________________________ | | >___GIVING____identifier_________________|___________________> | | |__ROUNDED__| | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-DIVIDE__| | |________________________________________________________________| ________________________________________________________________ | | | >>__DIVIDE_____identifier_____BY_____identifier______________> | | |__literal_____| |__literal_____| | | <____________________________ | | >___GIVING____identifier_________________|___________________> | | |__ROUNDED__| | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-DIVIDE__| | |________________________________________________________________| __________________________________________________________________ | | | >>__DIVIDE_____identifier_____INTO_____identifier______________> | | |__literal_____| |__literal_____| | | >___GIVING__identifier_________________REMAINDER__identifier___> | | |__ROUNDED__| | | >______________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >______________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >_____________________________________________________________>< | | |__END-DIVIDE__| | |__________________________________________________________________| __________________________________________________________________ | | | >>__DIVIDE_____identifier_____BY_____identifier________________> | | |__literal_____| |__literal_____| | | >___GIVING__identifier_________________REMAINDER__identifier___> | | |__ROUNDED__| | | >______________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >______________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >_____________________________________________________________>< | | |__END-DIVIDE__| | |__________________________________________________________________|
|
|
_______________________________________________________________________________ | | | >>__ENTRY__literal__________________________________________________________> | | >_______________________________________________________________________.__>< | | | <___________________________________________________ | | | | <_____________ | | | | |__USING_______________________________________identifier__|__|__| | | |_______________REFERENCE_____| | | | |__BY__| | | | |____________VALUE______| | | |__BY__| | |_______________________________________________________________________________|
|
|
_________________________________________________________________________________________________________________________ | | | >>__EVALUATE_____identifier___________________________________________________________________________________________> | | |__literal_____| | <_________________________ | | | |__expression__| |____ALSO_____identifier_____|__| | | |__TRUE________| |__literal_____| | | |__FALSE_______| |__expression__| | | |__TRUE________| | | |__FALSE_______| | | <_____________________________________________________________________________________________________________ | | <__________________________________________________________________________________ | | | >_______WHEN__evaluate-statement-phrase-1________________________________________________|__imperative-statement__|___> | | | <____________________________________ | | | |____ALSO__evaluate-statement-phrase-2__|__| | | >____________________________________________________________________________________________________________________>< | | |__WHEN__OTHER__imperative-statement__| |__END-EVALUATE__| | |_________________________________________________________________________________________________________________________|
|
|
________________________________________________________________________________________________________ | | | >>_____ANY__________________________________________________________________________________________>< | | |__condition_________________________________________________________________________________| | | |__TRUE______________________________________________________________________________________| | | |__FALSE_____________________________________________________________________________________| | | |________________identifier__________________________________________________________________| | | |__NOT__| |__literal________________| |_____THROUGH________identifier________________| | | |__arithmetic-expression__| |__THRU_____| |__literal________________| | | |__arithmetic-expression__| | |________________________________________________________________________________________________________|
|
|
________________________________________________________________________________________________________ | | | >>_____ANY__________________________________________________________________________________________>< | | |__condition_________________________________________________________________________________| | | |__TRUE______________________________________________________________________________________| | | |__FALSE_____________________________________________________________________________________| | | |________________identifier__________________________________________________________________| | | |__NOT__| |__literal________________| |_____THROUGH________identifier________________| | | |__arithmetic-expression__| |__THRU_____| |__literal________________| | | |__arithmetic-expression__| | |________________________________________________________________________________________________________|
|
|
____________________________________ | | | >>__paragraph-name__.__EXIT__.__>< | |____________________________________|
|
|
_________________________ | | | >>__EXIT__METHOD__.__>< | |_________________________|
|
|
__________________________ | | | >>__EXIT__PROGRAM__.__>< | |__________________________|
|
|
________________ | | | >>__GOBACK__>< | |________________|
|
|
______________________________________ | | | >>__GO____________procedure-name__>< | | |__TO__| | |______________________________________|
|
|
________________________________________________________________ | | | <_________________ | | >>__GO______________procedure-name__|__DEPENDING_____________> | | |__TO__| |__ON__| | | >___identifier______________________________________________>< | |________________________________________________________________|
|
|
____________________________________________ | | | >>__paragraph-name__.__GO____________.__>< | | |__TO__| | |____________________________________________|
|
|
___________________________________ | | | >>__GO____________MORE-LABELS__>< | | |__TO__| | |___________________________________|
|
|
_________________________________________________________ | | | <____________ | | >>__IF__condition___________________statement__|______> | | |__THEN__| |__NEXT__SENTENCE__| | | | | >____________________________________________________>< | | | <____________ | |__END-IF__| | | |__ELSE_______statement__|_____| | | |__NEXT__SENTENCE__| | | | |_________________________________________________________|
|
|
___________________________________________________________________________________________ | | | <_____________ | | >>__INITIALIZE____identifier__|_________________________________________________________> | | >______________________________________________________________________________________>< | | | <______________________________________________________________ | | | |__REPLACING_______ALPHABETIC__________________________BY_____identifier_____|__| | | |__ALPHANUMERIC_________| |__DATA__| |__literal_____| | | |__NUMERIC______________| | | |__ALPHANUMERIC-EDITED__| | | |__NUMERIC-EDITED_______| | | |__DBCS_________________| | | |__EGCS_________________| | |___________________________________________________________________________________________|
|
|
______________________________________________________________________________________________________________________ | | | >>__INSPECT__identifier__TALLYING__________________________________________________________________________________> | | <__________________________________________________________________________________________________________ | | <____________________________________________________________________________________ | | | >_____identifier__FOR_______CHARACTERS______________________________________________________________________|__|__>< | | | | <_____________________________ | | | | | |____inspect-statement-phrase-1__|__| | | | | <__________________________________________________________ | | | |_____ALL______________identifier____________________________________________|__| | | |__LEADING__| |__literal_____| | <_____________________________ | | | |____inspect-statement-phrase-1__|__| | |______________________________________________________________________________________________________________________| _______________________________________________________________ | | | >>__INSPECT__identifier__CONVERTING_____identifier_____TO___> | | |__literal_____| | | >______identifier___________________________________________> | | |__literal_____| | | <________________________________________________ | | >________BEFORE_______________________identifier_____|_____>< | | |__AFTER___| |__INITIAL__| |__literal_____| | |_______________________________________________________________| ______________________________________________________________________________________________________________________ | | | >>__INSPECT__identifier__TALLYING__________________________________________________________________________________> | | <__________________________________________________________________________________________________________ | | <____________________________________________________________________________________ | | | >_____identifier__FOR_______CHARACTERS______________________________________________________________________|__|___> | | | | <_____________________________ | | | | | |____inspect-statement-phrase-1__|__| | | | | <__________________________________________________________ | | | |_____ALL______________identifier____________________________________________|__| | | |__LEADING__| |__literal_____| | <_____________________________ | | | |____inspect-statement-phrase-1__|__| | | >___REPLACING______________________________________________________________________________________________________> | | <__________________________________________________________________________________________________________ | | >________CHARACTERS__BY_____identifier_________________________________________________________________________|__>< | | | |__literal_____| | <_____________________________ | | | | | |____inspect-statement-phrase-1__|__| | | | | <________________________________________________________________________________ | | | |_____ALL______________identifier_____BY_____identifier____________________________________________|__| | | |__LEADING__| |__literal_____| |__literal_____| | <_____________________________ | | | |__FIRST____| |____inspect-statement-phrase-1__|__| | |______________________________________________________________________________________________________________________| ______________________________________________________________________________________________________________________ | | | >>__INSPECT__identifier__REPLACING_________________________________________________________________________________> | | <__________________________________________________________________________________________________________ | | >________CHARACTERS__BY_____identifier_________________________________________________________________________|__>< | | | |__literal_____| | <_____________________________ | | | | | |____inspect-statement-phrase-1__|__| | | | | <________________________________________________________________________________ | | | |_____ALL______________identifier_____BY_____identifier____________________________________________|__| | | |__LEADING__| |__literal_____| |__literal_____| | <_____________________________ | | | |__FIRST____| |____inspect-statement-phrase-1__|__| | |______________________________________________________________________________________________________________________|
|
|
_______________________________________________________ | | | >>_____BEFORE_______________________identifier_____>< | | |__AFTER___| |__INITIAL__| |__literal_____| | |_______________________________________________________|
|
|
_____________________________________________________________________________________________________ | | | >>__INVOKE_____identifier_________________________literal_________________________________________> | | |__class-name___________________| |__identifier__| | | |__SELF_________________________| | | |________________________SUPER__| | | |__class-name__OF__| | | >_________________________________________________________________________________________________> | | | <____________________________________________________________________________ | | | | <______________________________________ | | | | |__USING__________________________________________________________identifier_____|_____|__| | | | |____________REFERENCE__| | |__ADDRESS__OF__| | | | | | |__BY__| |__OMITTED________________________| | | | | <____________________________________________ | | | |____________CONTENT________________________________identifier_____|____| | | | |__BY__| | |_____ADDRESS__OF_____| | | | | | | |__LENGTH__OF___| | | | | | |__literal______________________________| | | | | |__OMITTED______________________________| | | | | <____________________________________________ | | | |____________VALUE________________________________identifier_____|______| | | |__BY__| | |_____ADDRESS__OF_____| | | | | |__LENGTH__OF___| | | | |__literal______________________________| | | | | >_________________________________________________________________________________________________> | | |__RETURNING__identifier__| |____________EXCEPTION__imperative-statement__| | | |__ON__| | | >________________________________________________________________________________________________>< | | |__NOT____________EXCEPTION__imperative-statement__| |__END-INVOKE__| | | |__ON__| | |_____________________________________________________________________________________________________|
|
|
________________________________________________________________________________________________ | | | <________________________________________________________ | | <____________ | | | >>__MERGE__file-name_________________ASCENDING___________________data-name__|__|_____________> | | |__ON__| |__DESCENDING__| |__KEY__| | | >_____________________________________________________________USING__file-name_______________> | | |___________________SEQUENCE____________alphabet-name__| | | |__COLLATING__| |__IS__| | | <____________ | | >_____file-name__|___________________________________________________________________________> | | >______OUTPUT__PROCEDURE____________procedure-name__________________________________________>< | | | |__IS__| |_____THROUGH_____procedure-name__| | | | | |__THRU_____| | | | | <____________ | | | |__GIVING____file-name__|____________________________________________________________| | |________________________________________________________________________________________________|
|
|
_____________________________________________________ | | | <_____________ | | >>__MOVE_____identifier_____TO____identifier__|__>< | | |__literal_____| | |_____________________________________________________| _______________________________________________________________ | | | >>__MOVE_____CORRESPONDING_____identifier__TO__identifier__>< | | |__CORR___________| | |_______________________________________________________________|
|
|
________________________________________________________________________ | | | <____________________________ | | >>__MULTIPLY_____identifier_____BY____identifier_________________|___> | | |__literal_____| |__ROUNDED__| | | >____________________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________________>< | | |__END-MULTIPLY__| | |________________________________________________________________________| ________________________________________________________________ | | | >>__MULTIPLY_____identifier_____BY_____identifier____________> | | |__literal_____| |__literal_____| | | <____________________________ | | >___GIVING____identifier_________________|___________________> | | |__ROUNDED__| | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-MULTIPLY__| | |________________________________________________________________|
|
|
______________________________________________________________________________ | | | >>__OPEN___________________________________________________________________> | | <__________________________________________________________________ | | <________________________________________________ | | | >________INPUT____file-name______________________________________|_____|__>< | | | |_____REVERSED___________________| | | | | |______________NO__REWIND__| | | | | |__WITH__| | | | | <__________________________________________ | | | |__OUTPUT____file-name________________________________|_______| | | | |______________NO__REWIND__| | | | | |__WITH__| | | | | <____________ | | | |__I-O____file-name__|________________________________________| | | | <____________ | | | |__EXTEND____file-name__|_____________________________________| | | | |______________________________________________________________________________| _________________________________________________ | | | <_______________________________ | | <____________ | | | >>__OPEN_______INPUT____file-name__|______|__>< | | | <____________ | | | |__OUTPUT____file-name__|__| | | | <____________ | | | |__I-O____file-name__|_____| | | | <____________ | | | |__EXTEND____file-name__|__| | | | |_________________________________________________| _________________________________________________ | | | <_______________________________ | | <____________ | | | >>__OPEN_______INPUT____file-name__|______|__>< | | | <____________ | | | |__OUTPUT____file-name__|__| | | | <____________ | | | |__EXTEND____file-name__|__| | | | |_________________________________________________|
|
|
___________________________________________________________________ | | | >>__PERFORM_____________________________________________________> | | >______procedure-name__________________________________________>< | | | |_____THROUGH_____procedure-name__| | | | | |__THRU_____| | | | |__imperative-statement__END-PERFORM____________________| | |___________________________________________________________________|
|
|
_________________________________________________________________________________________________ | | | >>__PERFORM___________________________________________________________________________________> | | >______procedure-name_______________________________________________identifier_____TIMES_____>< | | | |__perform-with-times-phrase-phrase-1__| |__integer_____| | | | |_____identifier_____TIMES__imperative-statement__END-PERFORM_________________________| | | |__integer_____| | |_________________________________________________________________________________________________|
|
|
_______________________________________ | | | >>_____THROUGH_____procedure-name__>< | | |__THRU_____| | |_______________________________________|
|
|
_______________________________________________________________________________________________________________ | | | >>__PERFORM_____procedure-name__perform-with-until-phrase-phrase-1__perform-with-until-phrase-phrase-2_____>< | | |__perform-with-until-phrase-phrase-2__imperative-statement__END-PERFORM___________________| | |_______________________________________________________________________________________________________________|
|
|
_____________________________________________ | | | >>_______________________________________>< | | |_____THROUGH_____procedure-name__| | | |__THRU_____| | |_____________________________________________|
|
|
________________________________________________________________ | | | >>________________________________________UNTIL__condition__>< | | |______________TEST_____BEFORE_____| | | |__WITH__| |__AFTER___| | |________________________________________________________________|
|
|
_____________________________________________________________________________________________________________________________________________________ | | | >>__PERFORM_______________________________________________________________________________________________________________________________________> | | >______procedure-name_______________________________________perform-with-varying-phrase-phrase-1_________________________________________________>< | | | |_____THROUGH_____procedure-name__| |__perform-with-varying-phrase-phrase-2__| | | | | |__THRU_____| | | | |__perform-with-varying-phrase-phrase-1__imperative-statement__END-PERFORM________________________________________________________________| | |_____________________________________________________________________________________________________________________________________________________|
|
|
_____________________________________________________________________________________________________ | | | >>________________________________________VARYING_____identifier_____FROM_____identifier_____BY___> | | |______________TEST_____BEFORE_____| |__index-name__| |__index-name__| | | |__WITH__| |__AFTER___| |__literal_____| | | >______identifier_____UNTIL__condition___________________________________________________________>< | | |__literal_____| | |_____________________________________________________________________________________________________|
|
|
____________________________________________________________________________________________________ | | | <________________________________________________________________________________________ | | >>____AFTER_____identifier_____FROM_____identifier_____perform-with-varying-phrase-phrase-3__|__>< | | |__index-name__| |__index-name__| | | |__literal_____| | |____________________________________________________________________________________________________|
|
|
________________________________________________ | | | >>__BY_____identifier_____UNTIL__condition__>< | | |__literal_____| | |________________________________________________|
|
|
________________________________________________________________________ | | | >>__READ__file-name__________________________________________________> | | |_____NEXT_________| |__RECORD__| | | |__PREVIOUS__| | | >____________________________________________________________________> | | |__INTO__identifier__| | | >____________________________________________________________________> | | |____________END__imperative-statement__| | | |__AT__| | | >___________________________________________________________________>< | | |__NOT____________END__imperative-statement__| |__END-READ__| | | |__AT__| | |________________________________________________________________________| _____________________________________________________________________________ | | | >>__READ__file-name_______________________________________________________> | | |__RECORD__| |__INTO__identifier__| | | >_________________________________________________________________________> | | |__KEY____________data-name__| | | |__IS__| | | >_________________________________________________________________________> | | |__INVALID_____________imperative-statement__| | | |__KEY__| | | >________________________________________________________________________>< | | |__NOT__INVALID_____________imperative-statement__| |__END-READ__| | | |__KEY__| | |_____________________________________________________________________________|
|
|
______________________________________________________ | | | >>__RELEASE__record-name__________________________>< | | |__FROM__identifier__| | |______________________________________________________|
|
|
__________________________________________________________________________ | | | >>__RETURN__file-name__________________________________________________> | | |__RECORD__| |__INTO__identifier__| | | >_____________END__imperative-statement________________________________> | | |__AT__| | | >_____________________________________________________________________>< | | |__NOT____________END__imperative-statement__| |__END-RETURN__| | | |__AT__| | |__________________________________________________________________________|
|
|
_____________________________________________________________ | | | >>__REWRITE__record-name__________________________________> | | |__FROM__identifier__| | | >_________________________________________________________> | | |__INVALID_____________imperative-statement__| | | |__KEY__| | | >_________________________________________________________> | | |__NOT__INVALID_____________imperative-statement__| | | |__KEY__| | | >________________________________________________________>< | | |__END-REWRITE__| | |_____________________________________________________________|
|
|
_____________________________________________________________ | | | >>__SEARCH__identifier____________________________________> | | |__VARYING_____identifier_____| | | |__index-name__| | | >_________________________________________________________> | | |____________END__imperative-statement__| | | |__AT__| | | <______________________________________________ | | >_____WHEN__condition_____imperative-statement_____|______> | | |__NEXT-SENTENCE_________| | | >________________________________________________________>< | | |__END-SEARCH__| | |_____________________________________________________________| _______________________________________________________________________________________________________ | | | >>__SEARCH__ALL__identifier_________________________________________________________________________> | | |____________END__imperative-statement__| | | |__AT__| | | >___WHEN_____data-name_______________EQUAL__________________identifier______________________________> | | | |__IS__| | |__TO__| | |__literal________________| | | | | |__=________________| |__arithmetic-expression__| | | | |__condition-name___________________________________________________________| | | >___________________________________________________________________________________________________> | | | <_____________________________________________________________________________________ | | | |____AND_____data-name_______________EQUAL__________________identifier___________________|__| | | | |__IS__| | |__TO__| | |__literal________________| | | | | |__=________________| |__arithmetic-expression__| | | | |__condition-name___________________________________________________________| | | >______imperative-statement________________________________________________________________________>< | | |__NEXT__SENTENCE________| |__END-SEARCH__| | |_______________________________________________________________________________________________________|
|
|
__________________________________________________________ | | | <___________________ | | >>__SET_______index-name_____|__TO_____index-name_____>< | | |__identifier__| |__identifier__| | | |__integer_____| | |__________________________________________________________| ________________________________________________________________ | | | <_____________ | | >>__SET____index-name__|_____UP__BY__________identifier_____>< | | |__DOWN__BY__| |__integer_____| | |________________________________________________________________| _____________________________________________________ | | | <____________________________________ | | <________________ | | | >>__SET______mnemonic-name__|__TO_____ON______|__>< | | |__OFF__| | |_____________________________________________________| ____________________________________________ | | | <_________________ | | >>__SET____condition-name__|__TO__TRUE__>< | |____________________________________________| _________________________________________________ | | | <________________________________ | | >>__SET_______identifier__________________|___> | | |__ADDRESS__OF__identifier__| | | >___TO_____identifier________________________>< | | |__ADDRESS__OF__identifier__| | | |__NULL_____________________| | | |__NULLS____________________| | |_________________________________________________| _______________________________________________ | | | <______________________________ | | >>__SET____procedure-pointer-data-item__|___> | | >___TO_____procedure-pointer-data-item_____>< | | |__ENTRY_____identifier_________| | | | |__literal_____| | | | |__NULL_________________________| | | |__NULLS________________________| | | |__pointer-data-item____________| | |_______________________________________________| _________________________________________________________________ | | | >>__SET__object-reference-id__TO_____object-reference-id_____>< | | |__NULL_________________| | | |__SELF_________________| | |_________________________________________________________________|
|
|
________________________________________________________________________________________________ | | | <________________________________________________________ | | <____________ | | | >>__SORT__file-name_________________ASCENDING___________________data-name__|__|______________> | | |__ON__| |__DESCENDING__| |__KEY__| | | >____________________________________________________________________________________________> | | |______________DUPLICATES_________________________| | | |__WITH__| |__IN__| |__ORDER__| | | >____________________________________________________________________________________________> | | |___________________SEQUENCE____________alphabet-name__| | | |__COLLATING__| |__IS__| | | <____________ | | >______USING____file-name__|_________________________________________________________________> | | |__INPUT__PROCEDURE____________procedure-name_______________________________________| | | |__IS__| |_____THROUGH_____procedure-name__| | | |__THRU_____| | | | | <____________ | | >______GIVING____file-name__|_______________________________________________________________>< | | |__OUTPUT__PROCEDURE____________procedure-name_______________________________________| | | |__IS__| |_____THROUGH_____procedure-name__| | | |__THRU_____| | | | |________________________________________________________________________________________________|
|
|
________________________________________________________________________________________ | | | >>__START__file-name_________________________________________________________________> | | >____________________________________________________________________________________> | | |__KEY_______________EQUAL________________________________________data-name__| | | |__IS__| | |__TO__| | | | |__=_________________________________________| | | |__LESS______________________________________| | | | |__THAN__| | | | |__<_________________________________________| | | |__GREATER___________________________________| | | | |__THAN__| | | | |__>_________________________________________| | | |__NOT__LESS_________________________________| | | | |__THAN__| | | | |__NOT__<____________________________________| | | |__NOT__GREATER______________________________| | | | |__THAN__| | | | |__NOT__>____________________________________| | | |__LESS______________OR__EQUAL_______________| | | | |__THAN__| |__TO__| | | | |__<__=______________________________________| | | |__GREATER______________OR__EQUAL____________| | | | |__THAN__| |__TO__| | | | |__>=________________________________________| | | >____________________________________________________________________________________> | | |__INVALID_____________imperative-statement__| | | |__KEY__| | | >___________________________________________________________________________________>< | | |__NOT__INVALID_____________imperative-statement__| |__END-START__| | | |__KEY__| | |________________________________________________________________________________________|
|
|
_____________________________ | | | >>__STOP_____RUN_________>< | | |__literal__| | |_____________________________|
|
|
___________________________________________________________________________ | | | >>__STRING______________________________________________________________> | | <_______________________________________________________________ | | <___________________ | | | >__________identifier_____|__DELIMITED_______________identifier_____|___> | | |__literal_____| |__BY__| |__literal_____| | | |__SIZE________| | | >___INTO__identifier____________________________________________________> | | |______________POINTER__identifier__| | | |__WITH__| | | >_______________________________________________________________________> | | |____________OVERFLOW__imperative-statement__| | | |__ON__| | | >_______________________________________________________________________> | | |__NOT____________OVERFLOW__imperative-statement__| | | |__ON__| | | >______________________________________________________________________>< | | |__END-STRING__| | |___________________________________________________________________________|
|
|
________________________________________________________________ | | | <___________________ | | >>__SUBTRACT_______identifier_____|__FROM____________________> | | |__literal_____| | | <____________________________ | | >_____identifier_________________|___________________________> | | |__ROUNDED__| | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-SUBTRACT__| | |________________________________________________________________| _________________________________________________________________ | | | <___________________ | | >>__SUBTRACT_______identifier_____|__FROM_____identifier______> | | |__literal_____| |__literal_____| | | <____________________________ | | >___GIVING____identifier_________________|____________________> | | |__ROUNDED__| | | >_____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >_____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________>< | | |__END-SUBTRACT__| | |_________________________________________________________________| ________________________________________________________________ | | | >>__SUBTRACT_____CORRESPONDING_____identifier__FROM__________> | | |__CORR___________| | | >___identifier_______________________________________________> | | |__ROUNDED__| | | >____________________________________________________________> | | |____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >____________________________________________________________> | | |__NOT____________SIZE__ERROR__imperative-statement__| | | |__ON__| | | >___________________________________________________________>< | | |__END-SUBTRACT__| | |________________________________________________________________|
|
|
____________________________________________________________________________________________________________ | | | >>__UNSTRING__identifier_________________________________________________________________________________> | | >________________________________________________________________________________________________________> | | |__DELIMITED__________________________identifier_________________________________________________| | | |__BY__| |__ALL__| |__literal_____| | <__________________________________ | | | |____OR________________identifier_____|__| | | |__ALL__| |__literal_____| | | >___INTO_________________________________________________________________________________________________> | | <_______________________________________________________________________________________ | | >_____identifier____________________________________________________________________________|____________> | | |__DELIMITER____________identifier__| |__COUNT____________identifier__| | | |__IN__| |__IN__| | | >________________________________________________________________________________________________________> | | |______________POINTER__identifier__| |__TALLYING____________identifier__| | | |__WITH__| |__IN__| | | >________________________________________________________________________________________________________> | | |____________OVERFLOW__imperative-statement__| | | |__ON__| | | >_______________________________________________________________________________________________________>< | | |__NOT____________OVERFLOW__imperative-statement__| |__END-UNSTRING__| | | |__ON__| | |____________________________________________________________________________________________________________|
|
|
________________________________________________________________________________________________________________________ | | | >>__WRITE__record-name_______________________________________________________________________________________________> | | |__FROM__identifier__| | | >______________________________________________________________________________________write-statement-phrase-1______> | | | |_____BEFORE____________________________identifier___________________________| | | | | |__AFTER___| |__ADVANCING__| | |__integer_____| |_____LINE______| | | | | | | |__LINES__| | | | | | |__mnemonic-name________________________| | | | | |__PAGE_________________________________| | | | |__write-statement-invalid_key__write-statement-not_invalid_key______________________________________________| | | >___________________________________________________________________________________________________________________>< | | |__END-WRITE__| | |________________________________________________________________________________________________________________________| _________________________________________________________________________________ | | | >>__WRITE__record-name________________________________________________________> | | |__FROM__identifier__| | | >_____________________________________________________________________________> | | |__AFTER_________________________identifier___________________________| | | |__ADVANCING__| | |__integer_____| |_____LINE______| | | | | |__LINES__| | | | |__PAGE_________________________________| | | >____________________________________________________________________________>< | | |__END-WRITE__| | |_________________________________________________________________________________| _____________________________________________________________ | | | >>__WRITE__record-name____________________________________> | | |__FROM__identifier__| | | >_________________________________________________________> | | |__INVALID_____________imperative-statement__| | | |__KEY__| | | >_________________________________________________________> | | |__NOT__INVALID_____________imperative-statement__| | | |__KEY__| | | >________________________________________________________>< | | |__END-WRITE__| | |_____________________________________________________________|
|
|
______________________________________________________________________ | | | >>_________________________________________________________________> | | |_______________END-OF-PAGE_____imperative-statement__| | | |__AT__| |__EOP__________| | | >_________________________________________________________________>< | | |__NOT_______________END-OF-PAGE_____imperative-statement__| | | |__AT__| |__EOP__________| | |______________________________________________________________________|
|
|
________________________________________________________ | | | >>__________________________________________________>< | | |__INVALID_____________imperative-statement__| | | |__KEY__| | |________________________________________________________|
|
|
_____________________________________________________________ | | | >>_______________________________________________________>< | | |__NOT__INVALID_____________imperative-statement__| | | |__KEY__| | |_____________________________________________________________|
|
|
____________________________________________________________ | | | >>__FUNCTION__function-name______________________________> | | | <___________ | | | |__(____argument__|__)__| | | >_______________________________________________________>< | | |__reference-modifier__| | |____________________________________________________________|
|
|
________________________________________ | | | >>__FUNCTION__ACOS__(__argument__)__>< | |________________________________________| _____________________________________________________ | | | >>__FUNCTION__ANNUITY__(__argument__argument__)__>< | |_____________________________________________________| ________________________________________ | | | >>__FUNCTION__ASIN__(__argument__)__>< | |________________________________________| ________________________________________ | | | >>__FUNCTION__ATAN__(__argument__)__>< | |________________________________________| ________________________________________ | | | >>__FUNCTION__CHAR__(__argument__)__>< | |________________________________________| _______________________________________ | | | >>__FUNCTION__COS__(__argument__)__>< | |_______________________________________| ________________________________ | | | >>__FUNCTION__CURRENT-DATE__>< | |________________________________| ___________________________________________________ | | | >>__FUNCTION__DATE-OF-INTEGER__(__argument__)__>< | |___________________________________________________| ____________________________________________________________________ | | | >>__FUNCTION__DATE-TO-YYYYMMDD__(__argument__________________)__>< | | |__argument__| | |____________________________________________________________________| _____________________________________________________ | | | >>__FUNCTION__DATEVAL__(__argument__argument__)__>< | |_____________________________________________________| __________________________________________________ | | | >>__FUNCTION__DAY-OF-INTEGER__(__argument__)__>< | |__________________________________________________| __________________________________________________________________ | | | >>__FUNCTION__DAY-TO-YYYYDDD__(__argument__________________)__>< | | |__argument__| | |__________________________________________________________________| _____________________________________________ | | | >>__FUNCTION__FACTORIAL__(__argument__)__>< | |_____________________________________________| ___________________________________________ | | | >>__FUNCTION__INTEGER__(__argument__)__>< | |___________________________________________| ___________________________________________________ | | | >>__FUNCTION__INTEGER-OF-DATE__(__argument__)__>< | |___________________________________________________| __________________________________________________ | | | >>__FUNCTION__INTEGER-OF-DAY__(__argument__)__>< | |__________________________________________________| ________________________________________________ | | | >>__FUNCTION__INTEGER-PART__(__argument__)__>< | |________________________________________________| __________________________________________ | | | >>__FUNCTION__LENGTH__(__argument__)__>< | |__________________________________________| _______________________________________ | | | >>__FUNCTION__LOG__(__argument__)__>< | |_______________________________________| _________________________________________ | | | >>__FUNCTION__LOG10__(__argument__)__>< | |_________________________________________| ______________________________________________ | | | >>__FUNCTION__LOWER-CASE__(__argument__)__>< | |______________________________________________| ____________________________________________ | | | <___________ | | >>__FUNCTION__MAX__(____argument__|__)__>< | |____________________________________________| _____________________________________________ | | | <___________ | | >>__FUNCTION__MEAN__(____argument__|__)__>< | |_____________________________________________| _______________________________________________ | | | <___________ | | >>__FUNCTION__MEDIAN__(____argument__|__)__>< | |_______________________________________________| _________________________________________________ | | | <___________ | | >>__FUNCTION__MIDRANGE__(____argument__|__)__>< | |_________________________________________________| ____________________________________________ | | | <___________ | | >>__FUNCTION__MIN__(____argument__|__)__>< | |____________________________________________| _________________________________________________ | | | >>__FUNCTION__MOD__(__argument__argument__)__>< | |_________________________________________________| __________________________________________ | | | >>__FUNCTION__NUMVAL__(__argument__)__>< | |__________________________________________| ____________________________________________________________ | | | >>__FUNCTION__NUMVAL-C__(__argument__________________)__>< | | |__argument__| | |____________________________________________________________| _______________________________________ | | | >>__FUNCTION__ORD__(__argument__)__>< | |_______________________________________| ________________________________________________ | | | <___________ | | >>__FUNCTION__ORD-MAX__(____argument__|__)__>< | |________________________________________________| ________________________________________________ | | | <___________ | | >>__FUNCTION__ORD-MIN__(____argument__|__)__>< | |________________________________________________| ________________________________________________________________ | | | <___________ | | >>__FUNCTION__PRESENT-VALUE__(__argument____argument__|__)__>< | |________________________________________________________________| ________________________________________________ | | | >>__FUNCTION__RANDOM________________________>< | | |__(__argument__)__| | |________________________________________________| ______________________________________________ | | | <___________ | | >>__FUNCTION__RANGE__(____argument__|__)__>< | |______________________________________________| _________________________________________________ | | | >>__FUNCTION__REM__(__argument__argument__)__>< | |_________________________________________________| ___________________________________________ | | | >>__FUNCTION__REVERSE__(__argument__)__>< | |___________________________________________| _______________________________________ | | | >>__FUNCTION__SIN__(__argument__)__>< | |_______________________________________| ________________________________________ | | | >>__FUNCTION__SQRT__(__argument__)__>< | |________________________________________| ___________________________________________________________ | | | <___________ | | >>__FUNCTION__STANDARD-DEVIATION__(____argument__|__)__>< | |___________________________________________________________| ____________________________________________ | | | <___________ | | >>__FUNCTION__SUM__(____argument__|__)__>< | |____________________________________________| _______________________________________ | | | >>__FUNCTION__TAN__(__argument__)__>< | |_______________________________________| __________________________________________ | | | >>__FUNCTION__UNDATE__(__argument__)__>< | |__________________________________________| ______________________________________________ | | | >>__FUNCTION__UPPER-CASE__(__argument__)__>< | |______________________________________________| _________________________________________________ | | | <___________ | | >>__FUNCTION__VARIANCE__(____argument__|__)__>< | |_________________________________________________| _________________________________ | | | >>__FUNCTION__WHEN-COMPILED__>< | |_________________________________| ________________________________________________________________ | | | >>__FUNCTION__YEAR-TO-YYYY__(__argument__________________)__>< | | |__argument__| | |________________________________________________________________| ______________________________ | | | >>__FUNCTION__YEARWINDOW__>< | |______________________________|
|
|
________________________________________________________ | | | >>_________________________BASIS_____basis-name_____>< | | |__sequence-number__| |__literal_____| | |________________________________________________________|
|
|
___________________________________________ | | | >>_____CBL_____________________________>< | | |__PROCESS__| |__options-list__| | |___________________________________________|
|
|
______________________________________________________ | | | <_________________ | | >>_____*CONTROL__________SOURCE_______|___________>< | | |__*CBL______| |__NOSOURCE__| |__.__| | | |__LIST______| | | |__NOLIST____| | | |__MAP_______| | | |__NOMAP_____| | |______________________________________________________|
|
|
_______________________________________________________________________ | | | >>__COPY_____text-name______________________________________________> | | |__literal____| |_____OF________library-name_____| | | |__IN__| |__literal_______| | | >_______________________________________________________________.__>< | | |__SUPPRESS__| | <_______________________ | | | |__REPLACING____operand__BY__operand__|__| | |_______________________________________________________________________|
|
|
________________________ | | | >>__EJECT___________>< | | |__.__| | |________________________|
|
|
_____________________________________________________ | | | >>__ENTER__language-name______________________.__>< | | |__routine-name__| | |_____________________________________________________|
|
|
______________________________________________________________ | | | >>_________________________INSERT__sequence-number-field__>< | | |__sequence-number__| | |______________________________________________________________|
|
|
_______________________________ | | | >>_____READY_____TRACE__.__>< | | |__RESET__| | |_______________________________|
|
|
_______________________________________________________________________________ | | | <_______________________________________________________ | | >>__REPLACE____=__=__pseudo-text__=__=__BY__=__=__pseudo-text__=__=__|__.__>< | |_______________________________________________________________________________| _________________________ | | | >>__REPLACE__OFF__.__>< | |_________________________|
|
|
________________________ | | | >>__SERVICE__LABEL__>< | |________________________|
|
|
_____________________________________ | | | >>__SERVICE__RELOAD__identifier__>< | |_____________________________________|
|
|
______________________________ | | | >>_____SKIP1______________>< | | |__SKIP2__| |__.__| | | |__SKIP3__| | |______________________________|
|
|
_________________________________ | | | >>__TITLE__literal___________>< | | |__.__| | |_________________________________|
|
|
______________________________________________________________________________ | | | >>__USE________________AFTER_____________________EXCEPTION_____PROCEDURE___> | | |__GLOBAL__| |__STANDARD__| |__ERROR______| | | <____________ | | >__________________file-name__|___________________________________________>< | | |__ON__| |__INPUT___________| | | |__OUTPUT__________| | | |__I-O_____________| | | |__EXTEND__________| | | | |______________________________________________________________________________| ___________________________________________________________________________________________ | | | >>__USE________________AFTER____________________________________________________________> | | |__GLOBAL__| |__STANDARD__| |_____BEGINNING_____| |_____FILE_____| | | |__ENDING_____| |__REEL__| | | |__UNIT__| | | <____________ | | >___LABEL__PROCEDURE_________________file-name__|______________________________________>< | | |__ON__| |__INPUT___________| | | |__OUTPUT__________| | | |__I-O_____________| | | |__EXTEND__________| | | | |___________________________________________________________________________________________| ________________________________________________________________________ | | | <_________________ | | >>__USE_____________DEBUGGING_________________procedure-name__|_____>< | | |__FOR__| |__ON__| |__ALL__PROCEDURES______| | | | |________________________________________________________________________|
|
|
_______________________________________________________________________________ | | | >>_____>>CALLINTERFACE_____________________________________________________>< | | |__>>CALLINT________| |_____SYSTEM_______| |_____DESC_____________| | | |__OPTLINK___| |__DESCRIPTOR____| | | |__FAR16_____| |__NODESC________| | | |__PASCAL16__| |__NODESCRIPTOR__| | | |__CDECL_____| | |_______________________________________________________________________________|
|
|
Copyright (c) 1999, Ralf Lämmel & Chris Verhoef.
All rights reserved.
Permission is hereby granted by Ralf Lämmel and Chris Verhoef (the "Copyright holders"), free of charge, to any person obtaining a copy of this software in source code or binary form and associated files (the "Distribution"), to deal in the Distribution without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Distribution, and to permit persons to whom the Distribution is furnished to do so, subject to the following conditions:
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.