Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cobol-dev] Cobol template for AS400

 
 
 
 

--
Thanks
JianBin Lin
<?xml version="1.0" encoding="UTF-8" standalone="no"?><syntaxtemplate expanded="false"><category description="Reference of the COBOL language for AS400" expanded="false" name="Reference for AS400"><category description="Formats of IDENTIFICATION DIVISION" expanded="false" name="IDENTIFICATION DIVISION"><category description="Formats of paragraphs" expanded="false" name="Paragraphs"><template description="PROGRAM-ID paragraph" keyword="PROGRAM-ID" name="PROGRAM-ID paragraph">PROGRAM-ID. ${Program-Name}.
*&gt;              IS COMMON  PROGRAM
*&gt;              IS INITIAL PROGRAM</template></category><template description="IDENTIFICATION DIVISION format" keyword="IDENTIFICATION_DIVISION" name="IDENTIFICATION DIVISION format">IDENTIFICATION DIVISION.
PROGRAM-ID. ${Program-Name}.</template><template description="END PROGRAM header" keyword="END_PROGRAM" name="END PROGRAM">END PROGRAM ${Program-Name}.</template></category><category description="Formats of ENVIRONMENT DIVISION" expanded="false" name="ENVIRONMENT DIVISION"><category description="Formats of CONFIGURATION SECTION" expanded="false" name="CONFIGURATION SECTION"><template description="CONFIGURATION SECTION format" keyword="CONFIGURATION_SECTION" name="CONFIGURATION SECTION format"> CONFIGURATION SECTION.&#13;
 SOURCE-COMPUTER. IBM-AS400 WITH DEBUGGING MODE.&#13;
 OBJECT-COMPUTER. IBM-AS400.&#13;
*&gt;         PROGRAM COLLATING SEQUENCE IS ${alphabet-name}&#13;
 SPECIAL-NAMES.&#13;
*&gt;   ${environment-name-1} IS ${mnemonic-name-1}&#13;
*&gt;   ${environment-name-2} [IS ${mnemonic-name-2}] &#13;
*&gt;&gt;             ON STATUS IS ${condition-name-1} &#13;
*&gt;&gt;            OFF STATUS IS ${condition-name-2}&#13;
*&gt;   ALPHABET ${alphabet-name-1} IS STANDARD-1/STANDARD-2/NATIVE/EBCDIC/NLSSORT/&#13;
*&gt;&gt;      [${literal-1} [THROUGH ${literal-2}]]...&#13;
*&gt;&gt;      ${literal-1} ALSO [${literal-3}]...&#13;
*&gt;   CLASS ${class-name-1} IS [${literal-1} [THROUGH ${literal-2}]]...&#13;
*&gt;   CONSOLE IS DISPLAY/CRT&#13;
*&gt;   CRT STATUS is ${data-name-2}&#13;
*&gt;&gt;data-name-2:Must be described in the WORKING-STORAGE SECTION and must be a&#13;
*&gt;&gt;6-byte alphanumeric field or a 6-byte unsigned zoned integer.&#13;
*&gt;   CURRENCY SIGN IS ${literal-6}&#13;
*&gt;&gt;       WITH PICTURE SYMBOL ${literal-7}&#13;
*&gt;   CURSOR IS ${data-name-1}&#13;
*&gt;&gt;data-name-1:Must be a 4- or 6-byte alphanumeric field or a 4- or 6-byte &#13;
*&gt;&gt;unsigned zoned integer field.&#13;
*&gt;   DECIMAL-POINT IS COMMA&#13;
*&gt;   FORMAT OF DATE/TIME IS&#13;
*&gt;&gt;     ${literal-8} [SIZE IS integer-4 [LOCALE IS ${mnemonic-name-4}]]&#13;
*&gt;&gt;     SIZE IS ${integer-4} LOCALE IS ${mnemonic-name-4}&#13;
*&gt;   LINKAGE TYPE IS ${environment-name-3}/PROGRAM/PROCEDURE FOR ${literal-7}&#13;
*&gt;&gt;     USING ALL/${integer-1} THROUGH ${integer-2} ARE DESCRIBED&#13;
*&gt;   LOCALE ${locale-name-1}/${literal-4} IN LIBRARY ${literal-5}&#13;
*&gt;&gt;        IS ${mnemonic-name-5}&#13;
*&gt;   .</template><template description="SOURCE-COMPUTER paragraph" keyword="SOURCE-COMPUTER" name="SOURCE-COMPUTER paragraph"> SOURCE-COMPUTER. ${Computer-Name}.&#13;
*&gt;                  WITH DEBUGGING MODE</template><template description="OBJECT-COMPUTER paragraph" keyword="OBJECT-COMPUTER" name="OBJECT-COMPUTER paragraph"> OBJECT-COMPUTER. ${Computer-Name}.&#13;
*&gt;                  PROGRAM COLLATING SEQUENCE IS ${Alphabet-name}</template></category><category description="Formats of INPUT-OUTPUT SECTION" expanded="false" name="INPUT-OUTPUT SECTION"><template description="INPUT-OUTPUT SECTION format" keyword="INPUT-OUTPUT_SECTION" name="INPUT-OUTPUT SECTION"> INPUT-OUTPUT SECTION.&#13;
*&gt; FILE-CONTROL. &#13;
*&gt;&gt;   file-control-entry &#13;
*&gt; I-O-CONTROL.&#13;
*&gt;&gt;   i-o-control-entry &#13;
</template><template description="FILE-CONTROL paragraph Sequential Files" keyword="FILE-CONTROL" name="FILE-CONTROL paragraph Sequential Files"> FILE-CONTROL. SELECT [OPTIONAL] ${file-name}&#13;
       ASSIGN TO ${assignment-name-1/literal-1}&#13;
*&gt;     RESERVE ${integer} AREAS&#13;
*&gt;     ORGANIZATION IS SEQUENTIAL&#13;
*&gt;     PADDING CHARACTER IS ${data-name-6/literal-2}&#13;
***data-name-6:&#13;
*Must be defined in the Data Division as an alphanumeric 1 character data item&#13;
***literal-2:Must be a 1-character nonnumeric literal.&#13;
*&gt;     RECORD DELIMITER IS STANDARD-1/${assignment-name-2}&#13;
*&gt;     ACCESS MODE IS SEQUENTIAL&#13;
*&gt;     FILE STATUS IS ${data-name-1} [${data-name-5}]&#13;
***data-name-1:&#13;
*The status key data item must be defined in the Data Division as a 2-character&#13;
*alphanumeric item.&#13;
***data-name-5:&#13;
*For transaction files, the data item must be a 4-character alphanumeric item.&#13;
*For non-transaction files, the data item must be a 6-byte group item.</template><template description="I-O-CONTROL paragraph" keyword="I-O-CONTROL" name="I-O-CONTROL paragraph"> I-O-CONTROL.&#13;
*&gt;   COMMITMENT CONTROL FOR ${file-name-6}</template><template description="FILE-CONTROL paragraph Relative Files" keyword="FILE-CONTROL" name="FILE-CONTROL paragraph Relative Files"> FILE-CONTROL. SELECT [OPTIONAL] ${file-name}&#13;
       ASSIGN TO ${assignment-name-1/literal-1}&#13;
*&gt;     RESERVE ${integer} AREAS&#13;
*&gt;     ORGANIZATION IS RELATIVE&#13;
*&gt;     ACCESS MODE IS &#13;
*&gt;&gt;      SEQUENTIAL [RELATIVE KEY IS ${data-name-4}]&#13;
*&gt;&gt;      RANDOM/DYNAMIC RELATIVE KEY IS ${data-name-4}&#13;
*&gt;     FILE STATUS IS ${data-name-1} [${data-name-5}]&#13;
***data-name-4:&#13;
*Must be defined as an unsigned integer data item whose description does not&#13;
*contain the PICTURE symbol P.&#13;
***data-name-1:&#13;
*The status key data item must be defined in the Data Division as a 2-character&#13;
*alphanumeric item.&#13;
***data-name-5:&#13;
*For transaction files, the data item must be a 4-character alphanumeric item.&#13;
*For non-transaction files, the data item must be a 6-byte group item.&#13;
</template><template description="FILE-CONTROL Paragraph  Indexed Files" keyword="FILE-CONTROL" name="FILE-CONTROL Paragraph  Indexed Files"> FILE-CONTROL. SELECT ${file-name}&#13;
       ASSIGN TO ${assignment-name-1/literal-1}&#13;
*&gt;     RESERVE ${integer} AREAS&#13;
*&gt;     ORGANIZATION IS INDEXED&#13;
*&gt;     ACCESS MODE IS SEQUENTIAL/RANDOM/DYNAMIC&#13;
*&gt;     RECORD KEY IS EXTERNALLY-DESCRIBED-KEY/${data-name-2}&#13;
*&gt;&gt;    WITH DUPLICATES&#13;
*&gt;     FILE STATUS IS ${data-name-1} [${data-name-5}]&#13;
***data-name-2:&#13;
*Data-name-2 is the RECORD KEY data item. It must be described as a&#13;
*fixed-length alphanumeric item within a record description entry associated&#13;
*with the file.&#13;
***data-name-1:&#13;
*The status key data item must be defined in the Data Division as a 2-character&#13;
*alphanumeric item.&#13;
***data-name-5:&#13;
*For transaction files, the data item must be a 4-character alphanumeric item.&#13;
*For non-transaction files, the data item must be a 6-byte group item.</template><template description="FILE-CONTROL Paragraph Sort or Merge Files" keyword="FILE-CONTROL" name="FILE-CONTROL Paragraph Sort or Merge Files"> FILE-CONTROL. SELECT ${file-name}&#13;
       ASSIGN TO ${assignment-name-1/literal-1}</template><template description="FILE-CONTROL Paragraph Transaction Files" keyword="FILE-CONTROL" name="FILE-CONTROL Paragraph Transaction Files"> FILE-CONTROL. SELECT ${file-name}&#13;
       ASSIGN TO ${assignment-name-1/literal-1}&#13;
*&gt;     ORGANIZATION IS TRANSACTION&#13;
*&gt;     ACCESS MODE IS &#13;
*&gt;&gt;      SEQUENTIAL [RELATIVE KEY IS ${data-name-4}]&#13;
*&gt;&gt;      DYNAMIC RELATIVE KEY IS ${data-name-4}&#13;
*&gt;     FILE STATUS IS ${data-name-1} [${data-name-5}]&#13;
*&gt;     CONTROL-AREA IS ${data-name-7}&#13;
</template></category><template description="ENVIRONMENT DIVISION format" keyword="ENVIRONMENT_DIVISION" name="ENVIRONMENT DIVISION format"> ENVIRONMENT DIVISION.&#13;
 CONFIGURATION SECTION.&#13;
*&gt;    SOURCE-COMPUTER.&#13;
*&gt;    OBJECT-COMPUTER.&#13;
*&gt;    SPECIAL-NAMES.&#13;
 INPUT-OUTPUT SECTION.&#13;
*&gt;     FILE-CONTROL.&#13;
*&gt;     I-O-CONTROL.</template></category><category description="Formats of DATA DIVISION" expanded="false" name="DATA DIVISION"><category description="Formats of sections" expanded="false" name="Sections"><category description="Entries format" expanded="false" name="Entries of the File Section"><template description="File Description Entry Formatfile, Database" keyword="FD" name="File Description Entry Formatfile, Database"> FD ${file-name}&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    BLOCK CONTAINS [${integer1} TO] ${integer2} CHARACTERS/RECORDS&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS&#13;
*&gt;    LABEL RECORDS ARE STANDARD/OMITTED&#13;
*&gt;    VALUE OF ${system-name-1} IS ${data-name-1/literal-1}&#13;
*&gt;    DATA RECORDS ARE ${data-name-2}&#13;
      .</template><template description="File Description Entry Disk" keyword="FD" name="File Description Entry Disk"> FD ${file-name}&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    BLOCK CONTAINS [${integer1} TO] ${integer2} CHARACTERS/RECORDS&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS/&#13;
*&gt;&gt;           IS VARYING IN SIZE FROM ${integer-4} TO ${integer-5} CHARACTERS&#13;
*&gt;&gt;              [DEPENDING ON ${data-name-1}]&#13;
*&gt;    LABEL RECORDS ARE STANDARD/OMITTED&#13;
*&gt;    VALUE OF ${system-name-1} IS ${data-name-1/literal-1}&#13;
*&gt;    DATA RECORDS ARE ${data-name-2}&#13;
      .</template><template description="File Description Entry Diskette File" keyword="FD" name="File Description Entry Diskette File"> FD ${file-name}&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    BLOCK CONTAINS [${integer1} TO] ${integer2} CHARACTERS/RECORDS&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS&#13;
*&gt;    LABEL RECORDS ARE STANDARD/OMITTED&#13;
*&gt;    VALUE OF ${system-name-1} IS ${data-name-1/literal-1}&#13;
*&gt;    DATA RECORDS ARE ${data-name-2} &#13;
*&gt;    CODE-SET IS ${alphabet-name-1}&#13;
      .</template><template description="File Description Entry Tapefile" keyword="FD" name="File Description Entry Tapefile"> FD ${file-name}&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    BLOCK CONTAINS [${integer1} TO] ${integer2} CHARACTERS/RECORDS&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS/&#13;
*&gt;&gt;           IS VARYING IN SIZE FROM ${integer-4} TO ${integer-5} CHARACTERS&#13;
*&gt;&gt;              [DEPENDING ON ${data-name-1}]&#13;
*&gt;    LABEL RECORDS ARE STANDARD/OMITTED&#13;
*&gt;    VALUE OF ${system-name-1} IS ${data-name-1/literal-1}&#13;
*&gt;    DATA RECORDS ARE ${data-name-2}&#13;
*&gt;    CODE-SET IS ${alphabet-name-1}&#13;
      .</template><template description="File Description Entry Printer File" keyword="FD" name="File Description Entry Printer File"> FD ${file-name}&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    BLOCK CONTAINS [${integer1} TO] ${integer2} CHARACTERS/RECORDS&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS/&#13;
*&gt;    LABEL RECORDS ARE STANDARD/OMITTED&#13;
*&gt;    VALUE OF ${system-name-1} IS ${data-name-1/literal-1}&#13;
*&gt;    DATA RECORDS ARE ${data-name-2} &#13;
*&gt;    LINAGE IS ${data-name-3/integer-8} LINES &#13;
*&gt;&gt;    WITH FOOTING  AT ${data-name-4/integer-9}&#13;
*&gt;&gt;    LINES AT TOP ${data-name-5/integer-10}&#13;
*&gt;&gt;    LINES AT BOTTOM ${data-name-6/integer-11}&#13;
*&gt;    CODE-SET IS ${alphabet-name-1}&#13;
      .</template><template description="Sort Description Entry Sort or Merge Files" keyword="SD" name="Sort Description Entry Sort or Merge Files"> SD ${file-name}&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS/&#13;
*&gt;&gt;           IS VARYING IN SIZE FROM ${integer-4} TO ${integer-5} CHARACTERS&#13;
*&gt;&gt;              [DEPENDING ON ${data-name-1}]&#13;
*&gt;    DATA RECORDS ARE ${data-name-2} &#13;
      .</template><template description="File Description Entry Transaction Files" keyword="FD" name="File Description Entry Transaction Files"> FD ${file-name}&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    RECORD CONTAINS ${integer3}/${integer6} TO ${integer7} CHARACTERS&#13;
*&gt;    LABEL RECORDS ARE STANDARD/OMITTED&#13;
*&gt;    DATA RECORDS ARE ${data-name-2} &#13;
      .</template></category><template description="FILE SECTION header" keyword="FILE_SECTION" name="FILE SECTION">FILE SECTION.</template><template description="WORKING-STORAGE SECTION header" keyword="WORKING-STORAGE_SECTION" name="WORKING-STORAGE SECTION">WORKING-STORAGE SECTION.</template><template description="LINKAGE SECTION header" keyword="LINKAGE_SECTION" name="LINKAGE SECTION">LINKAGE SECTION.</template></category><category description="Formats of a data item description" expanded="false" name="Data item descriptions"><category description="Formats of Clauses" expanded="false" name="Clauses"><template description="BLANK WHEN ZERO clause" keyword="BLANK_WHEN_ZERO" name="BLANK WHEN ZERO clause">BLANK WHEN ZERO</template><template description="JUSTIFIED clause" keyword="JUSTIFIED_RIGHT" name="JUSTIFIED clause">JUSTIFIED RIGHT</template><template description="OCCURS clause" keyword="OCCURS" name="OCCURS clause">OCCURS ${Integer} TIMES
*&gt;   ASCENDING KEY IS data-name
*&gt;   DESCENDING KEY IS data-name
*&gt;   INDEXED BY Index-Name</template><template description="OCCURS clause" keyword="OCCURS_DEPENDING_ON" name="OCCURS clause (DEPENDING ON)">OCCURS ${Integer-1} TO ${Integer-2} TIMES DEPENDING ON ${Data-Name}
*&gt;   ASCENDING KEY IS data-name
*&gt;   DESCENDING KEY IS data-name
*&gt;   INDEXED BY Index-Name</template><template description="PICTURE clause" keyword="PICTURE" name="PICTURE clause">PICTURE IS ${String}</template><template description="REDEFINES clause" keyword="REDEFINES" name="REDEFINES clause">REDEFINES ${Data-Name}</template><template description="SIGN clause" keyword="SIGN_LEADING" name="SIGN clause (LEADING)">SIGN IS LEADING
*&gt;  SEPARATE CHARACTER</template><template description="SIGN clause" keyword="SIGN_TRAILING" name="SIGN clause (TRAILING)">SIGN IS TRAILING
*&gt;  SEPARATE CHARACTER</template><template description="SYNCHRONIZED clause" keyword="SYNCHRONIZED_LEFT" name="SYNCHRONIZED clause (LEFT)">SYNCHRONIZED LEFT</template><template description="SYNCHRONIZED clause" keyword="SYNCHRONIZED_RIGHT" name="SYNCHRONIZED clause (RIGHT)">SYNCHRONIZED RIGHT</template><template description="USAGE clause" keyword="USAGE_BINARY" name="USAGE clause (BINARY)">USAGE IS BINARY</template><template description="USAGE clause" keyword="USAGE_BIT" name="USAGE clause (BIT)">USAGE IS BIT</template><template description="USAGE clause" keyword="USAGE_COMPUTATIONAL" name="USAGE clause (COMPUTATIONAL)">USAGE IS COMPUTATIONAL</template><template description="USAGE clause" keyword="USAGE_COMPUTATIONAL-5" name="USAGE clause (COMPUTATIONAL-5)">USAGE IS COMPUTATIONAL-5</template><template description="USAGE clause" keyword="USAGE_DISPLAY" name="USAGE clause (DISPLAY)">USAGE IS DISPLAY</template><template description="USAGE clause" keyword="USAGE_INDEX" name="USAGE clause (INDEX)">USAGE IS INDEX</template><template description="USAGE clause" keyword="USAGE_PACKED-DECIMAL" name="USAGE clause (PACKED-DECIMAL)">USAGE IS PACKED-DECIMAL</template><template description="VALUE clause" keyword="VALUE" name="VALUE clause">VALUE IS ${Literal}</template></category><template description="Define a data item" keyword="01" name="Data item"> ${level-number} &#13;
*&gt;    ${data-name-1}/FILLER&#13;
*&gt;    REDEFINES ${data-name-2}/LIKE ${data-name-3} [integer]/IS TYPEDEF&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    BLANK WHEN ZERO&#13;
*&gt;    FORMAT OF DATE/TIME/TIMESTAMP IS&#13;
*&gt;&gt;     ${literal-8} [SIZE IS integer-4 [LOCALE IS ${mnemonic-name-4}]]&#13;
*&gt;&gt;     SIZE IS ${integer-4} LOCALE IS ${mnemonic-name-4}&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    JUSTIFIED RIGHT&#13;
*&gt;    OCCURS ${integer-2} TIMES &#13;
*&gt;&gt;      ASCENDING/DESCENDING KEY IS ${data-name-2}&#13;
*&gt;&gt;      INDEXED BY ${index-name-1}&#13;
*&gt;    OCCURS ${integer-1} TO ${integer-2} TIMES DEPENDING ON ${data-name-1}&#13;
*&gt;&gt;      ASCENDING/DESCENDING KEY IS ${data-name-2}&#13;
*&gt;&gt;      INDEXED BY ${index-name-1}&#13;
*&gt;    PICTURE IS ${character-string}&#13;
*&gt;&gt;      SIZE IS ${integer-3} LOCALE IS ${mnemonic-name-1}&#13;
*&gt;    SIGN IS LEADING/TRAILING [SEPARATE CHARACTER] &#13;
*&gt;    VALUE IS ${literal}&#13;
*&gt;    SYNCHRONIZED LEFT/RIGHT&#13;
*&gt;    TYPE ${type-name-1}&#13;
*&gt;    USAGE IS BINARY/COMPUTATIONAL/COMPUTATIONAL-1/COMPUTATIONAL-2/&#13;
**&gt;            COMPUTATIONAL-3/COMPUTATIONAL-4/DISPLAY/DISPLAY-1/INDEX&#13;
**&gt;            PACKED-DECIMAL/POINTER/PROCEDURE-POINTER</template><template description="Define a data item" keyword="77" name="Data item (77)"> ${level-number} &#13;
*&gt;    ${data-name-1}/FILLER&#13;
*&gt;    REDEFINES ${data-name-2}/LIKE ${data-name-3} [integer]/IS TYPEDEF&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    BLANK WHEN ZERO&#13;
*&gt;    FORMAT OF DATE/TIME/TIMESTAMP IS&#13;
*&gt;&gt;     ${literal-8} [SIZE IS integer-4 [LOCALE IS ${mnemonic-name-4}]]&#13;
*&gt;&gt;     SIZE IS ${integer-4} LOCALE IS ${mnemonic-name-4}&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    JUSTIFIED RIGHT&#13;
*&gt;    OCCURS ${integer-2} TIMES &#13;
*&gt;&gt;      ASCENDING/DESCENDING KEY IS ${data-name-2}&#13;
*&gt;&gt;      INDEXED BY ${index-name-1}&#13;
*&gt;    OCCURS ${integer-1} TO ${integer-2} TIMES DEPENDING ON ${data-name-1}&#13;
*&gt;&gt;      ASCENDING/DESCENDING KEY IS ${data-name-2}&#13;
*&gt;&gt;      INDEXED BY ${index-name-1}&#13;
*&gt;    PICTURE IS ${character-string}&#13;
*&gt;&gt;      SIZE IS ${integer-3} LOCALE IS ${mnemonic-name-1}&#13;
*&gt;    SIGN IS LEADING/TRAILING [SEPARATE CHARACTER] &#13;
*&gt;    VALUE IS ${literal}&#13;
*&gt;    SYNCHRONIZED LEFT/RIGHT&#13;
*&gt;    TYPE ${type-name-1}&#13;
*&gt;    USAGE IS BINARY/COMPUTATIONAL/COMPUTATIONAL-1/COMPUTATIONAL-2/&#13;
**&gt;            COMPUTATIONAL-3/COMPUTATIONAL-4/DISPLAY/DISPLAY-1/INDEX&#13;
**&gt;            PACKED-DECIMAL/POINTER/PROCEDURE-POINTER</template><template description="Define a rename item" keyword="66" name="Rename item"> 66 ${data-name-1} RENAMES ${data-name-2} [THROUGH ${data-name-3}].&#13;
</template><template description="Define a condition item" keyword="88" name="Condition item"> 88 ${condition-name} VALUE IS ${literal-1} THROUGH ${literal-2}.</template><template description="Boolean Data" keyword="Boolean Data" name="Boolean Data Item"> ${level-number} &#13;
*&gt;    ${data-name-1}/FILLER&#13;
*&gt;    REDEFINES ${data-name-2}/LIKE ${data-name-3} [integer]/IS TYPEDEF&#13;
*&gt;    IS EXTERNAL&#13;
*&gt;    IS GLOBAL&#13;
*&gt;    JUSTIFIED RIGHT&#13;
*&gt;    OCCURS ${integer-2} TIMES &#13;
*&gt;&gt;      ASCENDING/DESCENDING KEY IS ${data-name-2}&#13;
*&gt;&gt;      INDEXED BY ${index-name-1}&#13;
*&gt;    OCCURS ${integer-1} TO ${integer-2} TIMES DEPENDING ON ${data-name-1}&#13;
*&gt;&gt;      ASCENDING/DESCENDING KEY IS ${data-name-2}&#13;
*&gt;&gt;      INDEXED BY ${index-name-1}&#13;
*&gt;    INDICATOR ${integer-3}&#13;
*&gt;    PICTURE IS 1&#13;
*&gt;    VALUE IS ${boolean-literal}&#13;
*&gt;    SYNCHRONIZED LEFT/RIGHT&#13;
*&gt;    TYPE ${type-name-1}&#13;
*&gt;    USAGE IS DISPLAY&#13;
      .</template></category><template description="DATA DIVISION format" keyword="DATA DIVISION" name="DATA DIVISION format"> DATA DIVISION.&#13;
*&gt;FILE SECTION.&#13;
*&gt;&gt;   file-section-entries&#13;
*&gt;WORKING-STORAGE SECTION.&#13;
*&gt;&gt;   record-description-entry&#13;
*&gt;&gt;   data-item-description-entry&#13;
*&gt;LINKAGE SECTION.&#13;
*&gt;&gt;   record-description-entry&#13;
*&gt;&gt;   data-item-description-entry  </template><template description="DATA DIVISION header" keyword="DATA DIVISION" name="DATA DIVISION header">DATA DIVISION.</template></category><category description="Formats of PROCEDURE DIVISION" expanded="false" name="PROCEDURE DIVISION"><category description="Formats of declaratives" expanded="false" name="Declaratives"><template description="DECLARATIVES header" keyword="DECLARATIVES" name="DECLARATIVES header">DECLARATIVES.
*&gt;  USE statement
END DECLARATIVES.</template><template description="USE statement" keyword="USE_AFTER_EXCEPTION" name="USE statement (AFTER EXCEPTION)">USE AFTER STANDARD EXCEPTION PROCEDURE ${File-Name}.</template></category><category description="Formats of statements" expanded="false" name="Statements"><category description="Formats of statement that starts from A - E" expanded="false" name="A - E"><template description="ACCEPT statement:data transfer" keyword="ACCEPT" name="ACCEPT statement:data transfer">ACCEPT ${identifier-1} FROM ${mnemonic-name/environment-name}&#13;
    END-ACCEP</template><template description="ADD statement" keyword="ADD" name="ADD statement">ADD ${Identifier-1} TO ${Identifier-2} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-ADD</template><template description="ADD statement" keyword="ADD_GIVING" name="ADD statement (GIVING)">ADD ${Identifier-1} TO ${Identifier-2} GIVING ${Identifier-3} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-ADD</template><template description="ADD statement" keyword="ADD_CORRESPONDING" name="ADD statement (CORRESPONDING)">ADD CORRESPONDING ${Identifier-1} TO ${Identifier-2} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-ADD</template><template description="CALL statement:Program" keyword="CALL" name="CALL statement:Program">     CALL ${identifier-1}&#13;
*&gt;    CALL LINKAGE TYPE IS ${environment-name-1}/PROGRAM ${literal-1}&#13;
*&gt;    CALL PROGRAM ${literal-1}&#13;
**&gt;    IN LIBRARY ${identifier-5/literal-4}&#13;
**&gt;    USING BY REFERENCE ${file-name-1}/[ADDRESS OF] ${identifier-2}&#13;
**&gt;    USING BY CONTENT ${file-name-1/literal-2}/[ADDRESS OF/LENGTH OF] ${identifier-2}&#13;
**&gt;    [NOT] ON EXCEPTION ${imperative statement-1}&#13;
**&gt;    ON OVERFLOW ${imperative statement-3}&#13;
       END-CALL</template><template description="CANCEL statement" keyword="CANCEL" name="CANCEL statement">     CANCEL ${identifier-1}&#13;
*&gt;    CANCEL LINKAGE TYPE IS ${environment-name-1}/PROCEDURE/PROGRAM ${literal-1}&#13;
*&gt;    CANCEL PROCEDURE/PROGRAM ${literal-1}&#13;
**&gt;    IN LIBRARY ${identifier-5/literal-4}</template><template description="CLOSE statement" keyword="CLOSE" name="CLOSE statement">CLOSE ${File-Name} [WITH LOCK]</template><template description="COMPUTE statement" keyword="COMPUTE" name="COMPUTE statement">COMPUTE ${Identifier} [ROUNDED] = ${Arithmetic-Expression}&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-COMPUTE</template><template description="DELETE statement" keyword="DELETE" name="DELETE statement">     DELETE ${file-name} RECORD FORMAT IS ${identifier-1/literal-1}&#13;
*&gt;    NULL-KEY-MAP IS ${identifier-2}&#13;
*&gt;    [NOT] INVALID KEY ${imperative-statement-1}&#13;
     END-DELETE&#13;
</template><template description="DISPLAY statement:data transfer" keyword="DISPLAY" name="DISPLAY statement:data transfer">    DISPLAY ${identifier-1/literal-1} UPON ${mnemonic-name/environment-name}&#13;
      WITH NO ADVANCING END-DISPLAY</template><template description="DIVIDE statement" keyword="DIVIDE" name="DIVIDE statement">DIVIDE ${Identifier-1} INTO ${Identifier-2} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-DIVIDE</template><template description="DIVIDE statement" keyword="DIVIDE_INTO_GIVING" name="DIVIDE statement (INTO GIVING)">DIVIDE ${Identifier-1} INTO ${Identifier-2} [ROUNDED]&#13;
    GIVING ${Identifier-3} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-DIVIDE</template><template description="DIVIDE statement" keyword="DIVIDE_BY_GIVING" name="DIVIDE statement (BY GIVING)">DIVIDE ${Identifier-1} BY ${Identifier-2} GIVING ${Identifier-3}
*&gt;  ON SIZE ERROR
*&gt;      Statement
*&gt;  NOT ON SIZE ERROR
*&gt;      Statement
*&gt;END-DIVIDE</template><template description="DIVIDE statement" keyword="DIVIDE_INTO_REMAINDER" name="DIVIDE statement (INTO REMAINDER)">DIVIDE ${Identifier-1} INTO ${Identifier-2} &#13;
    GIVING ${Identifier-3} [ROUNDED]&#13;
    REMAINDER ${Identifier-4}&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-DIVIDE</template><template description="DIVIDE statement" keyword="DIVIDE_BY_REMAINDER" name="DIVIDE statement (BY REMAINDER)">DIVIDE ${Identifier-1} BY ${Identifier-2} GIVING ${Identifier-3} REMAINDER ${Identifier-4}
*&gt;  ON SIZE ERROR
*&gt;      Statement
*&gt;  NOT ON SIZE ERROR
*&gt;      Statement
*&gt;END-DIVIDE</template><template description="EVALUATE statement" keyword="EVALUATE" name="EVALUATE statement">E EVALUATE ${identifier-1/literal-1/expression-1}/TRUE/FALSE&#13;
     [ALSO ${identifier-2/literal-2/expression-2}/TRUE/FALSE]&#13;
 WHEN ANY/${condition-1}/TRUE/FALSE/&#13;
     NOT ${identifier-3/literal-3/arith-expr-1} THROUGH ${identifier-4/literal-4/arith-expr-2}&#13;
     [ALSO ANY/${condition-1}/TRUE/FALSE/&#13;
         NOT ${identifier-3/literal-3/arith-expr-1} THROUGH ${identifier-4/literal-4/arith-expr-2}]&#13;
   ${imperative-stmt-1}&#13;
 WHEN OTHER ${imperative-stmt-2}&#13;
 END-EVALUATE</template><template description="EXIT statement" keyword="EXIT" name="EXIT statement">EXIT</template><template description="EXIT PERFORM statement" keyword="EXIT_PERFORM" name="EXIT PERFORM statement">EXIT PERFORM</template><template description="EXIT PROGRAM statement" keyword="EXIT_PROGRAM" name="EXIT PROGRAM statement">EXIT PROGRAM [AND CONTINUERUN UNIT]</template><template description="ACCEPT Statement:System Info Transfer" keyword="ACCEPT" name="ACCEPT Statement:System Info Transfer">ACCEPT ${identifier-1} FROM DATE [YYYYMMDD]/DAY [YYYYDDD]/DAY-OF-WEEK/TIME&#13;
    END-ACCEPT</template><template description="ACCEPT Statement:Feedback" keyword="ACCEPT" name="ACCEPT Statement:Feedback"> ACCEPT ${identifier-1} FROM mnemonic-name [FOR ${file-name-1}]&#13;
     END-ACCEPT</template><template description="ACCEPT Statement:Local Data Area" keyword="ACCEPT" name="ACCEPT Statement:Local Data Area">ACCEPT ${identifier-1} FROM ${mnemonic-name} [FOR ${identifier-2/literal-1}]&#13;
    END-ACCEPT</template><template description="ACCEPT Statement:PIP Data Area" keyword="ACCEPT" name="ACCEPT Statement:PIP Data Area">     ACCEPT ${identifier-1} FROM ${mnemonic-name}&#13;
*&gt;      ON EXCEPTION imperative-statement-1&#13;
*&gt;      NOT ON EXCEPTION imperative-statement-1&#13;
*&gt;      END-ACCEPT</template><template description="ACCEPT Statement:Attribute Data" keyword="ACCEPT" name="ACCEPT Statement:Attribute Data">     ACCEPT ${identifier-1} FROM ${mnemonic-name}&#13;
*&gt;    FOR ${identifier-2/literal-1} [FOR ${file-name-1}]&#13;
*&gt;     END-ACCEPT</template><template description="ACCEPT Statement:Data Area" keyword="ACCEPT" name="ACCEPT Statement:Data Area">     ACCEPT ${identifier-1} FROM ${mnemonic-name} &#13;
         FOR ${identifier-2/literal-1}&#13;
*&gt;       IN LIBRARY ${identifier-3/literal-2}&#13;
*&gt;       AT ${identifier-4/integer-1}&#13;
*&gt;       WITH LOCK &#13;
*&gt;       ON EXCEPTION ${imperative-statement-1}&#13;
*&gt;       NOT ON EXCEPTION ${imperative-statement-2}&#13;
       END-ACCEPT</template><template description="CALL statement:Procedure" keyword="CALL" name="CALL statement:Procedure">     CALL ${identifier-1}&#13;
*&gt;    CALL LINKAGE TYPE IS ${environment-name-1}/PROCEDURE ${literal-1}&#13;
*&gt;    CALL PROCEDURE ${literal-1}&#13;
**&gt;    IN LIBRARY ${identifier-5/literal-4}&#13;
**&gt;    USING BY REFERENCE OMITTED/${file-name-1}/[ADDRESS OF] ${identifier-2}&#13;
**&gt;    USING BY CONTENT OMITTED/${file-name-1/literal-2}/[ADDRESS OF/LENGTH OF] ${identifier-2}&#13;
**&gt;    USING BY VALUE ${literal-3}/[ADDRESS OF/LENGTH OF] ${identifier-2}/&#13;
**&gt;&gt;                  ${float-literal-1/integer-1} SIZE IS ${integer-2}&#13;
**&gt;    RETURNING INTO [ADDRESS OF] ${identifier-4}&#13;
**&gt;    [NOT] ON EXCEPTION ${imperative statement-1}&#13;
**&gt;    ON OVERFLOW ${imperative statement-3}&#13;
       END-CALL</template></category><category description="Formats of statement that starts from F - J" expanded="false" name="F - J"><template description="GO TO statement" keyword="GO_TO" name="GO TO statement">GO TO ${Procedure-Name}</template><template description="GO TO statement" keyword="GO_TO_DEPENDING_ON" name="GO TO statement (DEPENDING ON)">GO TO ${Procedure-Name-1} ${Procedure-Name-2} DEPENDING ON ${Identifier}</template><template description="IF statement" keyword="IF" name="IF">IF ${Condition} THEN
    ${Statement-1}
ELSE
    ${Statement-2}
END-IF</template><template description="INITIALIZE statement" keyword="INITIALIZE" name="INITIALIZE statement">INITIALIZE ${Identifier}</template><template description="INITIALIZE statement" keyword="INITIALIZE_REPLACING" name="INITIALIZE statement (REPLACING)"> INITIALIZE ${identifier-1}&#13;
  REPLACING ALPHABETIC/ALPHANUMERIC/NUMERIC/ALPHANUMERIC-EDITED/NUMERIC-EDITED/DBCS/DBCS-EDITED/NATIONAL&#13;
   DATA BY ${Identifier-2}</template><template description="INSPECT statement" keyword="INSPECT_TALLING" name="INSPECT statement (TALLING)">INSPECT ${identifier-1} TALLYING ${identifier-2} FOR&#13;
*&gt; CHARACTERS BEFORE/AFTER [INITIAL] ${identifier-4/literal-2}&#13;
*&gt; ALL/LEADING ${identifier-3/literal-1} BEFORE/AFTER [INITIAL] ${identifier-4/literal-2}</template><template description="INSPECT statement" keyword="INSPECT_REPLACING" name="INSPECT statement (REPLACING)">INSPECT ${identifier-1} REPLACING &#13;
*&gt; CHARACTERS BY ${identifier-5/literal-3} BEFORE/AFTER [INITIAL] ${identifier-4/literal-2}&#13;
*&gt; ALL/LEADING/FIRST ${identifier-3/literal-1} BY ${identifier-5/literal-3} BEFORE/AFTER [INITIAL] ${identifier-4/literal-2}</template><template description="INSPECT statement" keyword="INSPECT_CONVERTING" name="INSPECT statement (CONVERTING)">    INSPECT ${identifier-1} CONVERTING ${identifier-6/literal-4} TO ${identifier-7/literal-5}&#13;
*&gt;    BEFORE/AFTER [INITIAL] ${identifier-4/literal-2}</template><template description="GOBACK Statement" keyword="GOBACK" name="GOBACK Statement">GOBACK </template><template description="INSPECT statement:tallying &amp; replacing" keyword="INSPECT" name="INSPECT statement:tallying &amp; replacing">INSPECT ${identifier-1} TALLYING ${identifier-2} FOR&#13;
*&gt; CHARACTERS BEFORE/AFTER INITIAL ${identifier-4/literal-2}&#13;
*&gt; ALL/LEADING ${identifier-3/literal-1} BEFORE/AFTER INITIAL ${identifier-4/literal-2}&#13;
 REPLACING &#13;
*&gt; CHARACTERS BY ${identifier-5/literal-3} BEFORE/AFTER INITIAL ${identifier-4/literal-2}&#13;
*&gt; ALL/LEADING/FIRST ${identifier-3/literal-1} BY ${identifier-5/literal-3} BEFORE/AFTER INITIAL ${identifier-4/literal-2}</template></category><category description="Formats of statement that starts from K - O" expanded="false" name="K - O"><template description="MERGE statement" keyword="MERGE_OUTPUT_PROCEDURE" name="MERGE statement (OUTPUT PROCEDURE)">MERGE ${File-Name}
    ON ASCENDING ${Data-Name} 
*&gt;  ON DESCENDING Data-Name
*&gt;  COLLATING SEQUENCE IS Alphabet-Name
    USING ${File-Name-2} ${File-Name-3}
    OUTPUT PROCEDURE IS ${Procedure-Name}</template><template description="MERGE statement" keyword="MERGE_GIVING" name="MERGE statement (GIVING)">MERGE ${File-Name}
    ON ASCENDING ${Data-Name} 
*&gt;  ON DESCENDING Data-Name
*&gt;  COLLATING SEQUENCE IS Alphabet-Name
    USING ${File-Name-2} ${File-Name-3}
    GIVING ${File-Name-4}</template><template description="MOVE statement" keyword="MOVE" name="MOVE statement">MOVE ${Identifier-1} TO ${Identifier-2}</template><template description="MOVE statement" keyword="MOVE_CORRESPONDING" name="MOVE statement (CORRESPONDING)">MOVE CORRESPONDING ${Identifier-1} TO ${Identifier-2}</template><template description="MULTIPLY statement" keyword="MULTIPLY" name="MULTIPLY statement">MULTIPLY ${Identifier-1} BY ${Identifier-2}
*&gt;  ON SIZE ERROR
*&gt;      statement
*&gt;  NOT ON SIZE ERROR
*&gt;      statement
*&gt;END-MULTIPLY</template><template description="MULTIPLY statement" keyword="MULTIPLY_GIVING" name="MULTIPLY statement (GIVING)">MULTIPLY ${Identifier-1} BY ${Identifier-2} GIVING ${Identifier-3} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-MULTIPLY</template><template description="OPEN statement" keyword="OPEN_INPUT" name="OPEN statement (INPUT)">OPEN INPUT ${File-Name}</template><template description="OPEN statement" keyword="OPEN_OUTPUT" name="OPEN statement (OUTPUT)">OPEN OUTPUT ${File-Name}</template><template description="OPEN statement" keyword="OPEN_I-O" name="OPEN statement (I-O)">OPEN I-O ${File-Name}</template><template description="OPEN statement" keyword="OPEN_EXTEND" name="OPEN statement (EXTEND)">OPEN EXTEND ${File-Name}</template></category><category description="Formats of statement that starts from P - T" expanded="false" name="P - T"><template description="PERFORM statement" keyword="PERFORM" name="PERFORM statement">PERFORM ${Procedure-Name} [THROUGH ${procedure-name-2}]</template><template description="in-line PERFORM statement" keyword="PERFORM" name="in-line PERFORM statement">PERFORM
    ${Statement}
END-PERFORM</template><template description="PERFORM statement" keyword="PERFORM_TIMES" name="PERFORM statement (TIMES)">PERFORM  ${Procedure-Name} [THROUGH ${procedure-name-2}] ${Integer} TIMES&#13;
</template><template description="in-line PERFORM statement" keyword="PERFORM_TIMES" name="in-line PERFORM statement (TIMES)">PERFORM ${Integer} TIMES
    ${Statement}
END-PERFORM</template><template description="PERFORM statement" keyword="PERFORM_TEST_BEFORE_UNTIL" name="PERFORM statement (TEST BEFORE UNTIL)">PERFORM ${Procedure-Name} [THROUGH ${procedure-name-2}] WITH TEST BEFORE UNTIL ${Condition}</template><template description="in-line PERFORM statement" keyword="PERFORM_TEST_BEFORE_UNTIL" name="in-line PERFORM statement (TEST BEFORE UNTIL)">PERFORM WITH TEST BEFORE UNTIL ${Condition}
    ${Statement}
END-PERFORM</template><template description="PERFORM statement" keyword="PERFORM_TEST_BEFORE_VARYING" name="PERFORM statement (TEST BEFORE VARYING)">PERFORM ${Procedure-Name} [THROUGH ${procedure-name-2}] WITH TEST BEFORE &#13;
    VARYING ${Identifier} FROM ${Initial-Value} BY ${Increment-Value}&#13;
    UNTIL ${Condition}&#13;
*&gt;    AFTER ${Identifier2} FROM ${Initial-Value2} BY ${Increment-Value2}&#13;
*&gt;    UNTIL condition-2</template><template description="in-line PERFORM statement" keyword="PERFORM_TEST_BEFORE_VARYING" name="in-line PERFORM statement (TEST BEFORE VARYING)">PERFORM WITH TEST BEFORE &#13;
    VARYING ${Identifier} FROM ${Initial-Value} BY ${Increment-Value}&#13;
    UNTIL ${Condition}&#13;
*&gt;    AFTER ${Identifier2} FROM ${Initial-Value2} BY ${Increment-Value2}&#13;
*&gt;    UNTIL ${Condition2}&#13;
        ${Statement}&#13;
END-PERFORM</template><template description="READ statement:Sequential Retrieval/Access" keyword="READ_RECORD" name="READ statement:Sequential Retrieval/Access">    READ ${file-name} &#13;
*&gt;    NEXT RECORD INTO ${identifier-1}&#13;
*&gt;    WITH NO LOCK&#13;
*&gt;    FORMAT IS ${identifier-2}&#13;
*&gt;    NULL-KEY-MAP IS ${identifier-5}&#13;
*&gt;    NULL-MAP IS ${identifier-6}&#13;
*&gt;    [NOT] AT END ${imperative-statement-1}&#13;
*&gt;    END-READ</template><template description="READ statement:Sequential Retrieval/Dynamic Access" keyword="READ_RECORD" name="READ statement:Sequential Retrieval/Dynamic Access">    READ ${file-name} &#13;
*&gt;    NEXT/FIRST/LAST/PRIOR RECORD INTO ${identifier-1}&#13;
*&gt;    WITH NO LOCK&#13;
*&gt;    FORMAT IS ${identifier-2}&#13;
*&gt;    NULL-KEY-MAP IS ${identifier-5}&#13;
*&gt;    NULL-MAP IS ${identifier-6}&#13;
*&gt;    [NOT] AT END ${imperative-statement-1}&#13;
*&gt;    END-READ</template><template description="READ statement:Random Retrieval" keyword="READ" name="READ statement:Random Retrieval">    READ ${file-name} &#13;
*&gt;    RECORD INTO ${identifier-1}&#13;
*&gt;    WITH NO LOCK&#13;
*&gt;    KEY IS ${data-name-1}&#13;
*&gt;    FORMAT IS ${identifier-2}&#13;
*&gt;    NULL-KEY-MAP IS ${identifier-5}&#13;
*&gt;    NULL-MAP IS ${identifier-6}&#13;
*&gt;    [NOT] AT END ${imperative-statement-1}&#13;
*&gt;    [NOT] INVALID KEY ${imperative-statement-1}&#13;
*&gt;    END-READ</template><template description="RELEASE statement" keyword="RELEASE" name="RELEASE statement">RELEASE ${Record-Name}
*&gt;  FROM Identifier</template><template description="RETURN statement" keyword="RETURN" name="RETURN statement">RETURN ${File-Name} RECORD
*&gt;  INTO Identifier
*&gt;  AT END
*&gt;      Statement
*&gt;  NOT AT END
*&gt;      Statement
*&gt;END-RETURN</template><template description="REWRITE statement" keyword="REWRITE" name="REWRITE statement">REWRITE ${Record-Name} &#13;
*&gt;  FROM ${Identifier}&#13;
*&gt;  FORMAT IS ${identifier-2}&#13;
*&gt;  NULL-KEY-MAP IS ${identifier-5}&#13;
*&gt;  NULL-MAP IS ${identifier-6}&#13;
*&gt;  INVALID KEY&#13;
*&gt;      ${Statement}&#13;
*&gt;  NOT INVALID KEY ${statement}&#13;
*&gt;END-REWRITE</template><template description="SEARCH statement:Serial Search" keyword="SEARCH" name="SEARCH statement:Serial Search">SEARCH ${identifier-1} &#13;
*&gt;  VARYING ${identifier-2/index-name-1}&#13;
*&gt;  AT END ${imperative-statement-1}&#13;
*&gt;  WHEN ${condition-1} ${imperative-statement-2}/NEXT SENTENCE&#13;
*&gt;  END-SEARCH </template><template description="SEARCH statement:Binary Search" keyword="SEARCH_ALL" name="SEARCH statement:Binary Search">SEARCH ALL ${identifier-1} &#13;
*&gt;  AT END ${imperative-statement-1}&#13;
*&gt;  WHEN ${condition-1} ${imperative-statement-2}/NEXT SENTENCE&#13;
*&gt;  END-SEARCH </template><template description="SET statement" keyword="SET" name="SET statement">SET ${Index-Name} TO ${Identifier}</template><template description="SET statement" keyword="SET_UP_BY" name="SET statement (UP BY)">SET ${Index-Name} UP BY ${Identifier}</template><template description="SET statement" keyword="SET_DOWN_BY" name="SET statement (DOWN BY)">SET ${Index-Name} DOWN BY ${Identifier}</template><template description="SET statement" keyword="SET_ON" name="SET statement (ON)">SET ${Mnemonic-Name} TO ON</template><template description="SET statement" keyword="SET_OFF" name="SET statement (OFF)">SET ${Mnemonic-Name} TO OFF</template><template description="SET statement" keyword="SET_TRUE" name="SET statement (TRUE)">SET ${Condition-Name} TO TRUE</template><template description="SORT statement" keyword="SORT_INPUT_OUTPUT" name="SORT statement (INPUT OUTPUT)">SORT ${File-Name}&#13;
    ON ASCENDING/DESCENDING KEY ${Data-Name}&#13;
*&gt;  WITH DUPLICATES IN ORDER&#13;
*&gt;  COLLATING SEQUENCE IS Alphabet-Name&#13;
*&gt;  INPUT PROCEDURE IS ${Procedure-Name-1} [THROUGH ${procedure-name-2}]&#13;
*&gt;  OUTPUT PROCEDURE IS ${Procedure-Name-2} [THROUGH ${procedure-name-4}]&#13;
</template><template description="SORT statement" keyword="SORT_USING_GIVNG" name="SORT statement (USING GIVING)">SORT ${File-Name-1}
    ON ASCENDING KEY ${Data-Name}
*&gt;  ON DESCENDING KEY Data-Name
*&gt;  WITH DUPLICATES IN ORDER
*&gt;  COLLATING SEQUENCE IS Alphabet-Name
    USING ${File-Name-2}
    GIVING ${File-Name-3}</template><template description="START statement" keyword="START" name="START statement">START ${File-Name} [WITH NO LOCK] KEY ${Condition}&#13;
*&gt;  FORMAT IS ${identifier-1}&#13;
*&gt;  NULL-KEY-MAP IS ${identifier-2}&#13;
*&gt;  INVALID KEY&#13;
*&gt;      Statement&#13;
*&gt;  NOT INVALID KEY&#13;
*&gt;      Statement&#13;
*&gt;END-START</template><template description="STOP statement" keyword="STOP" name="STOP statement">STOP ${Literal}</template><template description="STOP statement" keyword="STOP_RUN" name="STOP statement (RUN)">STOP RUN</template><template description="STRING statement" keyword="STRING" name="STRING statement">STRING ${Identifier-1} DELIMITED BY ${Identifier-2}
    INTO ${Identifier-3}
*&gt;  WITH POINTER Identifier
*&gt;  ON OVERFLOW
*&gt;      Statement
*&gt;  NOT ON OVERFLOW
*&gt;      statement
*&gt;END-STRING</template><template description="SUBTRACT statement" keyword="SUBTRACT" name="SUBTRACT statement">SUBTRACT ${Identifier-1} FROM ${Identifier-2} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-SUBTRACT</template><template description="SUBTRACT statement" keyword="SUBTRACT_GIVING" name="SUBTRACT statement (GIVING)">SUBTRACT ${Identifier-1} FROM ${Identifier-2} GIVING ${Identifier-3} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-SUBTRACT</template><template description="SUBTRACT statement" keyword="SUBTRACT_CORRESPONDING" name="SUBTRACT statement (CORRESPONDING)">SUBTRACT CORRESPONDING ${Identifier-1} FROM ${Identifier-2} [ROUNDED]&#13;
*&gt;  ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;  NOT ON SIZE ERROR&#13;
*&gt;      Statement&#13;
*&gt;END-SUBTRACT</template><template description="READ statement:Transaction (Nonsubfile)" keyword="READ" name="READ statement:Transaction (Nonsubfile)">     READ ${file-name} RECORD INTO ${identifier-1}&#13;
*&gt;     FORMAT IS ${identifier-2}&#13;
*&gt;     TERMINAL IS ${identifier-3}&#13;
*&gt;     INDICATORS ARE ${identifier-4}&#13;
*&gt;     NO DATA ${imperative-statement-1}&#13;
*&gt;     [NOT] AT END ${imperative-statement-3}&#13;
*&gt;     END-READ</template><template description="READ Statement:Transaction (Subfile Sequential)" keyword="READ" name="READ Statement:Transaction (Subfile Sequential)">     READ SUBFILE ${file-name} NEXT MODIFIED RECORD INTO ${identifier-1}&#13;
*&gt;     FORMAT IS ${identifier-2}&#13;
*&gt;     TERMINAL IS ${identifier-3}&#13;
*&gt;     INDICATORS ARE ${identifier-4}&#13;
*&gt;     [NOT] AT END ${imperative-statement-3}&#13;
*&gt;     END-READ</template><template description="READ statement:Transaction (Subfile Random)" keyword="READ" name="READ statement:Transaction (Subfile Random)">     READ SUBFILE ${file-name} RECORD INTO ${identifier-1}&#13;
*&gt;     FORMAT IS ${identifier-2}&#13;
*&gt;     TERMINAL IS ${identifier-3}&#13;
*&gt;     INDICATORS ARE ${identifier-4}&#13;
*&gt;     [NOT] INVALID KEY ${imperative-statement-3}&#13;
*&gt;     END-READ</template><template description="REWRITE Statement:Transaction (Subfile)" keyword="REWRITE" name="REWRITE Statement:Transaction (Subfile)">REWRITE SUBFILE ${Record-Name} &#13;
*&gt;  FROM ${Identifier}&#13;
*&gt;  FORMAT IS ${identifier-2}&#13;
*&gt;  TERMINAL IS ${identifier-3}&#13;
*&gt;  INDICATORS ARE ${identifier-4}&#13;
*&gt;  INVALID KEY&#13;
*&gt;      ${Statement}&#13;
*&gt;  NOT INVALID KEY ${statement}&#13;
*&gt;END-REWRITE</template><template description="SET Statement:Pointer Data Item" keyword="SET" name="SET Statement:Pointer Data Item">SET ${identifier-4}/ADDRESS OF ${identifier-5} TO ${identifier-6}/ADDRESS OF ${identifier-7}/NULL/NULLS </template><template description="SET Statement:Procedure-Pointer Data Item" keyword="SET" name="SET Statement:Procedure-Pointer Data Item">SET ${procedure-pointer-data-item-1} TO ${procedure-pointer-data-item-2}/NULL/NULLS/&#13;
**&gt;   ENTRY ${identifier-1} IN LIBRARY ${identifier-2}&#13;
**&gt;   ENTRY [LINKAGE TYPE IS ${environment-name-1}/PROGRAM/PROCEDURE] ${literal-1} IN LIBRARY ${identifier-2}&#13;
**&gt;   ENTRY [PROGRAM/PROCEDURE] ${literal-1} IN LIBRARY ${identifier-2}</template></category><category description="Formats of statement that starts from U - Z" expanded="false" name="U - Z"><template description="UNSTRING statement" keyword="UNSTRING" name="UNSTRING statement">UNSTRING ${Identifier-1} DELIMITED BY ${Identifier-2}
    INTO ${Identifier-3}
*&gt;  DELIMITER IN Identifier
*&gt;  COUNT IN Identifier
*&gt;  WITH POINTER Identifier
*&gt;  TALLYING IN Identifier
*&gt;  ON OVERFLOW
*&gt;      Statement
*&gt;  NOT ON OVERFLOW
*&gt;      Statement
*&gt;END-UNSTRING</template><template description="WRITE statement:Sequential Files" keyword="WRITE" name="WRITE statement:Sequential Files">WRITE ${Record-Name}&#13;
*&gt;  FROM ${Identifier}&#13;
*&gt;  BEFORE/AFTER [ADVANCING] PAGE/${mnemonic-name-1}/${identifier-2} LINES&#13;
*&gt;  NULL-MAP IS ${identifier-9}&#13;
*&gt;  AT END-OF-PAGE &#13;
*&gt;      ${Statement}&#13;
*&gt;  NOT AT END-OF-PAGE&#13;
*&gt;      ${Statement}&#13;
*&gt;END-WRITE</template><template description="WRITE statement:Indexed and Relative Files" keyword="WRITE_ADVANCING" name="WRITE statement:Indexed and Relative Files">WRITE ${record-name-1}&#13;
*&gt;   FROM ${identifier-1}&#13;
*&gt;   FORMAT IS ${{identifier-2}&#13;
*&gt;   NULL-KEY-MAP IS ${identifier-8}&#13;
*&gt;   NULL-MAP IS ${identifier-9}&#13;
*&gt;   [NOT] INVALID KEY ${imperative-statement-1}&#13;
*&gt;   END-WRITE</template></category></category><category description="Formats of functions" expanded="false" name="Functions"><category description="Formats of function that starts from A - E" expanded="false" name="A - E"><template description="ACOS function" keyword="ACOS" name="ACOS function">FUNCTION ACOS (${Argument})</template><template description="ANNUITY function" keyword="ANNUITY" name="ANNUITY function">FUNCTION ANNUITY (${Argument-1} ${Argument-2})</template><template description="ASIN function" keyword="ASIN" name="ASIN function">FUNCTION ASIN (${Argument})</template><template description="ATAN function" keyword="ATAN" name="ATAN function">FUNCTION ATAN (${Argument})</template><template description="CHAR function" keyword="CHAR" name="CHAR function">FUNCTION CHAR (${Argument})</template><template description="COS function" keyword="COS" name="COS function">FUNCTION COS (${Argument})</template><template description="CURRENT-DATE function" keyword="CURRENT-DATE" name="CURRENT-DATE function">FUNCTION CURRENT-DATE</template><template description="DATE-OF-INTEGER function" keyword="DATE-OF-INTEGER" name="DATE-OF-INTEGER function">FUNCTION DATE-OF-INTEGER</template><template description="DAY-OF-INTEGER function" keyword="DAY-OF-INTEGER" name="DAY-OF-INTEGER function">FUNCTION DAY-OF-INTEGER</template></category><category description="Formats of function that starts from F - J" expanded="false" name="F - J"><template description="FACTORIAL function" keyword="FACTORIAL" name="FACTORIAL function">FUNCTION FACTORIAL (${Argument})</template><template description="INTEGER function" keyword="INTEGER" name="INTEGER function">FUNCTION INTEGER (${Argument})</template><template description="INTEGER-OF-DATE function" keyword="INTEGER-OF-DATE" name="INTEGER-OF-DATE function">FUNCTION INTEGER-OF-DATE (${Argument})</template><template description="INTEGER-OF-DAY function" keyword="INTEGER-OF-DAY" name="INTEGER-OF-DAY function">FUNCTION INTEGER-OF-DAY (${Argument})</template><template description="INTEGER-OF-PART function" keyword="INTEGER-OF-PART" name="INTEGER-OF-PART function">FUNCTION INTEGER-OF-PART (${Argument})</template></category><category description="Formats of function that starts from K - O" expanded="false" name="K - O"><template description="LENG function" keyword="LENG" name="LENG function">FUNCTION LENG (${Argument})</template><template description="LENGTH function" keyword="LENGTH" name="LENGTH function">FUNCTION LENGTH (${Argument})</template><template description="LOG function" keyword="LOG" name="LOG function">FUNCTION LOG (${Argument})</template><template description="LOG10 function" keyword="LOG10" name="LOG10 function">FUNCTION LOG10 (${Argument})</template><template description="LOWER-CASE function" keyword="LOWER-CASE" name="LOWER-CASE function">FUNCTION LOWER-CASE (${Argument})</template><template description="MAX function" keyword="MAX" name="MAX function">FUNCTION MAX (${Argument-1} ${Argument-2})</template><template description="MEAN function" keyword="MEAN" name="MEAN function">FUNCTION MEAN (${Argument-1} ${Argument-2})</template><template description="MEDIAN function" keyword="MEDIAN" name="MEDIAN function">FUNCTION MEDIAN (${Argument-1} ${Argument-2})</template><template description="MIDRANGE function" keyword="MIDRANGE" name="MIDRANGE function">FUNCTION MIDRANGE (${Argument-1} ${Argument-2})</template><template description="MIN function" keyword="MIN" name="MIN function">FUNCTION MIN (${Argument-1} ${Argument-2})</template><template description="MOD function" keyword="MOD" name="MOD function">FUNCTION MOD (${Argument-1} ${Argument-2})</template><template description="NUMVAL function" keyword="NUMVAL" name="NUMVAL function">FUNCTION NUMVAL (${Argument})</template><template description="NUMVAL-C function" keyword="NUMVAL-C" name="NUMVAL-C function">FUNCTION NUMVAL-C (${Argument})</template><template description="ORD function" keyword="ORD" name="ORD function">FUNCTION ORD (${Argument})</template><template description="ORD-MAX function" keyword="ORD-MAX" name="ORD-MAX function">FUNCTION ORD-MAX (${Argument-1} ${Argument-2})</template><template description="ORD-MIN function" keyword="ORD-MIN" name="ORD-MIN function">FUNCTION ORD-MIN (${Argument-1} ${Argument-2})</template></category><category description="Formats of function that starts from P - T" expanded="false" name="P - T"><template description="PRESENT-VALUE function" keyword="PRESENT-VALUE" name="PRESENT-VALUE function">FUNCTION PRESENT-VALUE (${Argument-1} ${Argument-2})</template><template description="RANDOM function" keyword="RANDOM" name="RANDOM function">FUNCTION RANDOM</template><template description="RANGE function" keyword="RANGE" name="RANGE function">FUNCTION RANGE (${Argument-1} ${Argument-2})</template><template description="REM function" keyword="REM" name="REM function">FUNCTION REM (${Argument-1} ${Argument-2})</template><template description="REVERSE function" keyword="REVERSE" name="REVERSE function">FUNCTION REVERSE (${Argument})</template><template description="SIN function" keyword="SIN" name="SIN function">FUNCTION SIN (${Argument})</template><template description="SQRT function" keyword="SQRT" name="SQRT function">FUNCTION SQRT (${Argument})</template><template description="STANDARD-DEVIATION function" keyword="STANDARD-DEVIATION" name="STANDARD-DEVIATION function">FUNCTION STANDARD-DEVIATION (${Argument-1} ${Argument-2})</template><template description="STORED-CHAR-LENGTH function" keyword="STORED-CHAR-LENGTH" name="STORED-CHAR-LENGTH function">FUNCTION STORED-CHAR-LENGTH (${Argument})</template><template description="SUM function" keyword="SUM" name="SUM function">FUNCTION SUM (${Argument-1} ${Argument-2})</template><template description="TAN function" keyword="TAN" name="TAN function">FUNCTION TAN (${Argument})</template></category><category description="Formats of function that starts from U - Z" expanded="false" name="U - Z"><template description="UCS2-OF function" keyword="UCS2-OF" name="UCS2-OF function">FUNCTION UCS2-OF (${Argument})</template><template description="UPPER-CASE function" keyword="UPPER-CASE" name="UPPER-CASE function">FUNCTION UPPER-CASE (${Argument})</template><template description="UTF8-OF function" keyword="UTF8-OF" name="UTF8-OF function">FUNCTION UTF8-OF (${Argument})</template><template description="VARIANCE function" keyword="VARIANCE" name="VARIANCE function">FUNCTION VARIANCE (${Argument-1} ${Argument-2})</template><template description="WHEN-COMPILED function" keyword="WHEN-COMPILED" name="WHEN-COMPILED function">FUNCTION WHEN-COMPILED</template></category></category><category description="Phrases" expanded="false" name="Phrases"><template description="AT END phrase" keyword="AT_END" name="AT END phrase">AT END ${Statement}</template><template description="INVALID KEY phrase" keyword="INVALID_KEY" name="INVALID KEY phrase">INVALID KEY ${Statement}</template><template description="ON SIZE ERROR phrase" keyword="ON_SIZE_ERROR" name="ON SIZE ERROR phrase">ON SIZE ERROR ${Statement}</template></category><template description="PROCEDURE DIVISION format" keyword="PROCEDURE_DIVISION" name="PROCEDURE DIVISION format">Procedure Division Format 1 - with Sections and Paragraphs&#13;
 PROCEDURE DIVISION&#13;
*&gt;    USING BY REFERENCE/VALUE ${data-name-1}...&#13;
*&gt;    RETURNING ADDRESS OF ${data-name-2}&#13;
      .&#13;
 DECLARATIVES.&#13;
*&gt;    ${section-name} [${segment-number}] SECTION. USE ${statement}.&#13;
*&gt;&gt;     ${paragraph-name}. ${sentence}... &#13;
 END DECLARATIVES.&#13;
*&gt;    ${section-name} [${segment-number}] SECTION.&#13;
*&gt;&gt;     ${paragraph-name}. ${sentence}... &#13;
&#13;
</template></category><category description="Common" expanded="false" name="Common"><category description="Formats of Statements" expanded="false" name="Statements"><template description="COPY statement" keyword="COPY" name="COPY statement">COPY ${Text-Name}.
*&gt;  OF Library-Name
*&gt;  REPLACING Identifier-1 BY Identifier-2</template><template description="REPLACE statement" keyword="REPLACE" name="REPLACE statement">REPLACE ==${Pseudo-Text-1}== BY ==${Pseudo-Text-2}==.</template><template description="REPLACE statement" keyword="REPLACE_OFF" name="REPLACE statement (OFF)">REPLACE OFF.</template></category></category><template description="COBOL Source Program Format" keyword="COBOL Source Program Format" name="COBOL Source Program Format"> IDENTIFICATION DIVISION. PROGRAM-ID. ${program-name-1/literal-1}&#13;
*&gt;   IS INITIAL PROGRAM.&#13;
*&gt;   identification-division-content&#13;
&#13;
 ENVIRONMENT DIVISION. &#13;
*&gt;   environment-division-content&#13;
&#13;
 DATA DIVISION. &#13;
*&gt;   data-division-content&#13;
&#13;
 PROCEDURE DIVISION.&#13;
*&gt;   procedure-division-content&#13;
&#13;
*&gt;   nested program&#13;
 END PROGRAM ${ program-name-1/literal-1}</template><template description="COBOL Source Nested Program Format" keyword="COBOL Source Nested Program Format" name="COBOL Source Nested Program Format"> IDENTIFICATION DIVISION. PROGRAM-ID. ${program-name-1/literal-1}&#13;
*&gt;   IS COMMON/INITIAL PROGRAM.&#13;
*&gt;   identification-division-content&#13;
&#13;
 ENVIRONMENT DIVISION. &#13;
*&gt;   environment-division-content&#13;
&#13;
 DATA DIVISION. &#13;
*&gt;   data-division-content&#13;
&#13;
 PROCEDURE DIVISION.&#13;
*&gt;   procedure-division-content&#13;
&#13;
*&gt;   nested program&#13;
 END PROGRAM ${program-name-1/literal-1}</template></category></syntaxtemplate>

Back to the top