Chapter 18: S-COBOL

This chapter describes coding S-COBOL programs, and S-COBOL structures.


Coding Programs

Follow these guidelines when coding programs using S-COBOL

 

 


Structures

AT END/INVALID KEY

conditionalverb [AT] END ON filename
          INVALID [KEY] ON filename
    statementblock

ENTRY

ENTRY literal
  .
  .
[USING identifier1, ..., identifierN]

ESCAPE

ESCAPE

EVALUATE

Format 1:

EVALUATE identifier1
WHEN valuexpression1
    statementblock
[  .
  .
WHEN valuexpressionN
    statementblockN]
 
[WHEN OTHER
    statementblock]

Format 2 (decision table):

EVALUATE identifier1[, ..., identifierN]
WHEN valuexpression1[, ..., valuexpressionN]
    statementblock
[  .
  .
WHEN valuexpressionN+1[, ..., valuexpressionN+N]
    statementblock]
 
[WHEN OTHER
    statementblock]

EXIT PROGRAM

EXIT PROGRAM

IF/ELSE-IF/ELSE

Format 1:

IF condition1
    statementblock
 
[ ELSE-IF|ELSE IF condition2
    statementblock
  .
  .
ELSE-IF|ELSE IF conditionN
    statementblock]
 
[ELSE
    statementblock]

Format 2:

COBOLimperativestatement
... COBOLconditionalclause
    statementblock
 
ELSE-IF|ELSE IF condition1
    statementblock
[  .
  .
ELSE-IF|ELSE IF conditionN
    statementblock]
 
[ELSE
    statementblock]

PERFORM

Format 1:

PERFORM paragraphname

Format 2:

PERFORM paraname (argument1[[,] argument2[,]
...[,] argumentN])
  .
  .
paraname ([+|-]argument1[[,] [+|-]argument2[,]
...[,] [+|-]argumentN])

REPEAT

Format 1:

REPEAT
    statementblock
 
UNTIL|WHILE condition
    [statementblock]

Format 2:

REPEAT VARYING|LINKING indexname|identifier1
... [FROM indexexpression]|[arithexpression]
... [BY literal]|[identifier2]
 
    [statementblock]
 
UNTIL|WHILE condition
    [statementblock]

Format 3:

REPEAT VARYING|LINKING indexname|identifier1
... [FROM indexexpression][arithexpr1]
... [BY literal]|[identifier2]
... [DOWN] TO|THRU arithexpr2
 
        statementblock

Format 4:

REPEAT VARYING|LINKING clause1
  .
  .
[... VARYING|LINKING clauseN]
 
        statementblock1
 
[UNTIL|WHILE condition
        statementblock]

SAGE-TRACE-FLAG

When the SAGE-TRACE-FLAG is tested, APS generates:

WORKING-STORAGE SECTION.
   .
   .
        02  SAGE-TRACE-FLAG PIC X VALUE "T".
   .
   .
PROCEDURE DIVISION.
   .
   .
paragraphname
     IF SAGE-TRACE-FLAG = TRUE
         DISPLAY "EXEC:--paragraphname--".
   .
   .

SEARCH

Format 1:

SEARCH identifier1 VARYING indexname|identifier2
... [[AT] END]
    statementblock
 
[WHEN searchcondition1
        statementblock
  .
  .
[WHEN searchconditionN
        statementblock]]

Format 2:

SEARCH ALL identifier [[AT] END]
        statementblock
 
WHEN searchcondition
        statementblock

STOP RUN

STOP RUN

SUPRA

S-COBOL source input:

WS
01   [viewname] INCLUDE logicalviewname [(userfieldlist)]
   .
   .
     SUPRA suprastatement
     ...   suprastatement continuation
     ...   .
     ...   .

COBOL source output:

WORKING-STORAGE SECTION.
01  [viewname] INCLUDE logicalviewname [(userfieldlist)]
     .
      .
    suprastatement
        suprastatement continuation
        .
        .

TRUE, FALSE

TRUE|FALSE dataname1 [dataname2 [... datanameN]]

TRUE/FALSE/
ALWAYS/NEVER

APS generates in Working-Storage:

01  GENERATED-FLAGS.
    02  TRUX        PIC X  VALUE 'T'.
        88  ALWAYS         VALUE 'T'.
        88  NEVER          VALUE 'F'.
    02 FALSX        PIC X  VALUE 'F'.

UNTIL/WHILE

UNTIL|WHILE condition1 [AND|OR condition2 
... [... AND|OR conditionN]]
 
        statementblock

USERNAME

USERNAME paragraphname

 


Copyright © 2002 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.