SCL information

SCL heading information

Common name: Scan Parameter List
Macro ID: IEEZB815
DSECT name: SCLPARM
Owning component: System Command (SC1B8)
Eye-catcher ID: SCL
Offset:  0
Length:  4
Storage attributes: Subpool:   Caller's subpool
Key:       Caller's key
Size: 92 bytes
Created by: Callers of Generalized Parser (IEEMB887)
Pointed to by: N/A
Serialization: None
Function: The parameter list to IEEMB887 provides the basic information
to perform a parse of the specified input.

SCL mapping

Table 1. Structure SCLPARM
Offset
Dec
Offset
Hex
Type Len Name(Dim) Description
0 (0) STRUCTURE 92 SCLPARM PARSE PARM LIST
0 (0) CHARACTER 4  SCLACRO ACRONYM - SHOULD EQUAL 'SCL '
4 (4) UNSIGNED 1  SCLVERSN VERSION LEVEL
5 (5) CHARACTER 3  SCLRESV1 RESERVED
8 (8) ADDRESS 4  SCLCHAR PTR TO STRING TO PARSE
12 (C) ADDRESS 4  SCLDSC PTR TO FIRST PARSE DESC.
16 (10) ADDRESS 4  SCLIORTN ADDR OF USER I/O EXIT ROUTINE
20 (14) ADDRESS 4  SCLIOPAD ADDR OF PARM FOR I/O ROUTINE
24 (18) ADDRESS 4  SCLCURNT ADDR OF CURRENT PARSE DESC.
28 (1C) UNSIGNED 2  SCLINLN INPUT RECORD LENGTH
30 (1E) UNSIGNED 2  SCLSTRLN PASSBACK LENGTH
32 (20) BITSTRING 1  SCLFLG1 FLAG BYTE
      1... ....   SCLCONTC CONTINUATION CHAR. CHECK
      .1.. ....   SCLNOCT NO CONTINUATION ALLOWED
      ..1. ....   SCLCOMNT COMMENTS ALLOWED
      ...1 ....   SCLNOSUC AFTER CALL TO ROUT PROCESS ALTERNATE PARSE DESC. NEXT
      .... 1...   SCLSECS AFTER CALL TO ROUT PROC. SEC. SUCCESSOR PARSE DESC. NEXT
      .... .1..   SCLNORT DO NOT CALL ROUT EXIT ROUTINE UNLESS 'CALLRT=YES' IS GIVEN
      .... ..1.   SCLMULTR ALLOW MULTIPLE RECORD SCANS
      .... ...1   * RESERVED
33 (21) UNSIGNED 1  SCLFLG2 RESERVED
34 (22) UNSIGNED 1  SCLFLG3 RESERVED
35 (23) UNSIGNED 1  SCLUFUNC FUNCTION BYTE - HAS CONTENTS OF ADDRESS THAT TRT INSTR. STOPPED AT DURING TRT SCAN
36 (24) ADDRESS 4  SCLUTAB ADDR OF USER PROCESSING TABLE
40 (28) SIGNED 2  SCLUINDX INDEX WITHIN PROCESSING TABLE
42 (2A) SIGNED 2  SCLRESV2 RESERVED
44 (2C) ADDRESS 4  SCLUSER USER-DEFINED WORK AREA
48 (30) SIGNED 4  SCLDATA USER'S DATA FOR THE ROUT
52 (34) ADDRESS 4  SCLMBUFP ADDR. OF MULTIPLE RECORD BUFFER
56 (38) UNSIGNED 2  SCLMBUFL LENGTH OF MULTIPLE RECORD BUFFER
58 (3A) SIGNED 2  SCLFLG5 RESERVED
60 (3C) ADDRESS 4  SCLMBUFU ADDR. OF FIRST UNUSED BYTE OF MULT. REC. BUFFER
64 (40) SIGNED 4  SCLRET RETURN CODE
68 (44) SIGNED 4  SCLRSN REASON CODE
72 (48) CHARACTER 4  SCLRSVD1 RESERVED
76 (4C) CHARACTER 4  SCLRSVD2 RESERVED
80 (50) CHARACTER 4  SCLRSVD3 RESERVED
84 (54) CHARACTER 4  SCLRSVD4 RESERVED
88 (58) CHARACTER 4  SCLRSVD5 RESERVED
Table 2. Structure DSCPARSE
Offset
Dec
Offset
Hex
Type Len Name(Dim) Description
0 (0) STRUCTURE * DSCPARSE PARSE MAPPING
0 (0) ADDRESS 4  DSCALTAD ADDR OF ALT PARSE DESC.
4 (4) ADDRESS 4  DSCSUCAD ADDR OF SUCC PARSE DESC.
8 (8) ADDRESS 4  DSCSSAD ADDR OF SEC. SUCC PARSE DESC.
12 (C) ADDRESS 4  DSCRTAD ADDR OF ROUT EXIT ROUTINE
16 (10) SIGNED 4  DSCDATA USER'S DATA FOR THE ROUT
20 (14) CHARACTER 12  DSCRSVD RESERVED
32 (20) ADDRESS 4  DSCTRTAD ADDR OF USER'S TRT TABLE
36 (24) ADDRESS 4  DSCUTAB ADDR OF USER PROCESSING TABLE
40 (28) SIGNED 2  DSCUINDX INDEX WITHIN PROCESSING TABLE
42 (2A) BITSTRING 1  DSCFLG1 FLAG BYTE
      1... ....   DSCALPHA ALPHA DATA EXPECTED
      .1.. ....   DSCNUMER NUMERIC DATA EXPECTED
      ..1. ....   DSCHEX HEX DATA EXPECTED
      ...1 ....   DSC1A FIRST CHAR CAN ONLY BE ALPHA
      .... 1...   DSC1A@ FIRST CHAR ALPHA/NATIONAL
      .... .111   * RESERVED
43 (2B) BITSTRING 1  DSCFLG2 FLAG BYTE
      1... ....   DSCBLANK DONT SKIP OVER BLANKS
      .1.. ....   DSCIOYES CALL I/O EXIT TO READ
      ..1. ....   DSCCOMMA DONT SKIP OVER COMMAS
      ...1 ....   DSCCALRT ALWAYS CALL ROUT IF IT EXISTS
      .... 1...   DSCNOSCN DO 'ROUT ONLY' PROCESSING
      .... .111   * RESERVED
44 (2C) UNSIGNED 2  DSCMAXLN MAXIMUM VARIABLE LENGTH
46 (2E) UNSIGNED 2  DSCMINLN MINIMUM VARIABLE LENGTH
48 (30) UNSIGNED 1  DSCKEYLN 'KEY' STRING LENGTH
49 (31) UNSIGNED 1  DSCABBLN MINIMUM ACCEPTABLE LENGTH FOR KEYWORD ABBREVIATION
50 (32) UNSIGNED 1  DSCALSLN 'ALSO' STRING LENGTH
51 (33) UNSIGNED 1  DSCDLMLN 'DELIM' STRING LENGTH
52 (34) CHARACTER 8  DSCALSC 'ALSO' STRING
60 (3C) CHARACTER 8  DSCDLMC 'DELIM' STRING
68 (44) CHARACTER *  DSCKEY 'KEY' STRING
Table 3. Constants for SCL
Len Type        Value Name Description
4 CHARACTER SCL SCLNAME CONSTANT - ACRONYM 'SCL '
1 DECIMAL            1 SCLSP212 VERSION LEVEL NUMBER
1 DECIMAL            1 SCLVERID VERSION IDENTIFICATION
       THE FOLLOWING CONSTANTS DEFINE THE VALUES IN SCLRET
       EITHER RETURNED FROM THE ROUT OR I/O EXIT ROUTINE TO THE
       PARSER OR FROM THE PARSER TO THE INVOKER:
       RETURN CODES PASSED FROM THE PARSER TO THE INVOKER
           RETURN CODE = 0 (SCLGOOD)
           CONDITIONS = ALL AVAILABLE PARSE DESCRIPTIONS OR
                       INPUT RECORDS PROCESSED SUCCESSFULLY
           RETURN CODE = 4 (SCLBAD)
           CONDITIONS = PARSE STOPPED BECAUSE:
                  1) ROUT INDICATED STOP BY SETTING SCLRET=SCLSTOP
               OR 2) PARSE DESCRIPTION AND ALTERNATES EXHAUSTED
                       WITHOUT FINDING MATCH WITH CHARACTER STRING
               OR 3) CHARACTERS DECLARED AS BEING VALID DELIMITERS
                       HAVE ALREADY BEEN DEFINED AS ACCEPTABLE
           RETURN CODE = 8 (SCLSTOP)
           CONDITIONS = PARSER IS TO READ IN NEXT INPUT RECORD
                           BUT NO I/O EXIT ROUTINE EXISTS, OR,
                           AFTER CALLING I/O EXIT ROUTINE, IT
                           IS FOUND THAT NO MORE INPUT IS
                           AVAILABLE WHEN THERE SHOULD HAVE BEEN
                           MORE INPUT TO READ
           RETURN CODE = 12 (SCLINVAL)
           CONDITIONS = SCL CONTAINS INVALID SYNTAX
           RETURN CODE = 16 (SCLERR)
           CONDITIONS = SERIOUS ERROR OCCURRED
           RETURN CODE = 20 (SCLTERM)
           CONDITIONS = TERMINAL ERROR OCCURRED
           RETURN CODE = 24 (SCLESTAE)
           CONDITIONS = PARSER ESTAE HAS NOT BEEN INVOKED
           RETURN CODE = 28 (SCLUNDEF)
           CONDITIONS = ROUT OR I/O EXIT ROUTINE GAVE A RETURN
                           CODE OTHER THAN THOSE EXPECTED
           RETURN CODE = 32 (SCLABEND)
           CONDITIONS = AN ABEND OCCURRED EITHER IN THE PARSER
                           OR WITHIN AN EXIT ROUTINE
       RETURN CODES PASSED FROM ROUT EXIT ROUTINES TO PARSER
           RETURN CODE = 0 (SCLGOOD)
           CONDITIONS = CONTINUE PARSING
           OUTPUT = NONE
           RETURN CODE = 4 (SCLNDSCN)
           CONDITIONS = STOP PARSE BUT HAVE PARSER RETURN TO CALLER
                      WITH RETURN CODE OF SCLGOOD
           OUTPUT = RETURN CODE IN SCL
           RETURN CODE = 8 (SCLSTOP)
           CONDITIONS = STOP PARSE AND HAVE PARSER RETURN TO CALLER
                      WITH RETURN CODE OF SCLBAD
           OUTPUT = RETURN CODE IN SCL
           RETURN CODE = 16 (SCLERR)
           CONDITIONS = STOP PARSE AND HAVE PARSER RETURN TO CALLER
                      WITH RETURN CODE OF SCLERR
           OUTPUT = RETURN CODE IN SCL
           RETURN CODE = 20 (SCLTERM)
           CONDITIONS = STOP PARSE AND RETURN TO CALLER WITH RETURN
                      CODE OF SCLTERM
           OUTPUT = RETURN CODE IN SCL
           RETURN CODE = OTHER
           CONDITIONS = STOP PARSE AND RETURN TO CALLER WITH RETURN
                      CODE OF SCLUNDEF
           OUTPUT = RETURN CODE IN SCL
       RETURN CODES PASSED FROM I/O EXIT ROUTINE TO PARSER
           RETURN CODE = 0 (SCLGOOD)
           CONDITIONS = INPUT BUFFER REFILLED SUCCESSFULLY
           OUTPUT = NONE
           RETURN CODE = 4 (SCLNDSCN)
           CONDITIONS = NO MORE INPUT AVAILABLE -
                 1) IF WITHIN A COMMENT FIELD, PARSER SHOULD
                      RETURN TO CALLER WITH RETURN CODE OF SCLBAD
                      AND A REASON CODE OF SCLBCOM
                 2) IF A CONTINUATION CHARACTER WAS GIVEN, PARSER
                      SHOULD RETURN TO CALLER WITH RETURN CODE
                      OF SCLBAD AND A REASON CODE OF SCLBCONT
                 3) OTHERWISE, PARSER SHOULD RETURN TO CALLER WITH
                      RETURN CODE OF SCLGOOD AND A REASON CODE
                      OF SCLNOIO
           OUTPUT = RETURN CODE IN SCL
           RETURN CODE = 20 (SCLTERM)
           CONDITIONS = STOP PARSE AND RETURN TO CALLER WITH RETURN
                      CODE OF SCLTERM
           OUTPUT = RETURN CODE IN SCL
           RETURN CODE = OTHER
           CONDITIONS = STOP PARSE AND RETURN TO CALLER WITH RETURN
                      CODE OF SCLUNDEF
           OUTPUT = RETURN CODE IN SCL
1 DECIMAL            0 SCLGOOD  
1 DECIMAL            4 SCLNDSCN  
1 DECIMAL            4 SCLBAD  
1 DECIMAL            8 SCLSTOP  
1 DECIMAL           12 SCLINVAL  
1 DECIMAL           16 SCLERR  
1 DECIMAL           20 SCLTERM  
1 DECIMAL           24 SCLESTAE  
1 DECIMAL           28 SCLUNDEF  
1 DECIMAL           32 SCLABEND  
       THE FOLLOWING CONSTANTS DEFINE THE VALUES IN SCLRSN (REASON
    CODES) ON RETURN FROM THE PARSER TO THE INVOKER. IT IS ALSO
    POSSIBLE THAT THE PARSER WILL PASS ON THE REASON CODE FROM THE
    ROUT OR I/O EXIT ROUTINE AS ITS REASON CODE WHEN RETURNING
    TO THE INVOKER.
            REASON CODE = 0 (SCLOK)
             CONDITIONS = USED WITH SCLGOOD, OR WHEN
                          NO REASON IS DETERMINED
            REASON CODE = 4 (SCLNOPRS)
             CONDITIONS = PARSE DESCRIPTION DEFINED AS NEXT
                          (SUCCESSOR, SECONDARY SUCCESSOR OR
                          ALTERNATE) DOES NOT EXIST
            REASON CODE = 8 (SCLNOIO)
             CONDITIONS = PARSER IS TO READ IN NEXT INPUT RECORD
                          BUT NO MORE INPUT IS AVAILABLE BECAUSE
                          EITHER NO I/O EXIT ROUTINE EXISTS OR ALL
                          OF THE INPUT RECORDS HAVE BEEN PARSED
            REASON CODE = 12 (SCLBCONT)
             CONDITIONS = IF CONTINUATION CHARACTER IS FOUND AS
                          LAST CHARACTER OF PREVIOUS INPUT
                          RECORD AND:
                             1) NO I/O EXIT ROUTINE EXISTS, OR
                             2) I/O EXIT ROUTINE GIVES A RETURN
                                CODE INDICATING THAT NO MORE
                                INPUT IS AVAILABLE
            REASON CODE = 16 (SCLBCOM)
             CONDITIONS = IF, WHEN REACHING END OF INPUT RECORD,
                          PARSER IS WITHIN A COMMENT FIELD AND:
                             1) NO I/O EXIT ROUTINE EXISTS, OR
                             2) I/O EXIT ROUTINE GIVES A RETURN
                                CODE INDICATING THAT NO MORE
                                INPUT IS AVAILABLE
            REASON CODE = 20 (SCLBDLM)
             CONDITIONS = CHARACTERS DEFINED BY INVOKER AS
                          BEING VALID DELIMITERS HAVE ALREADY
                          BEEN DEFINED AS ACCEPTABLE FOR THE
                          SCAN
            REASON CODE = 24 (SCLBKEY)
             CONDITIONS = KEYWORD NOT FOUND (DURING KEY PROCESSING)
            REASON CODE = 28 (SCLBLEN)
             CONDITIONS = LENGTH OF WORD FOUND WHILE SCANNING
                          IS OUT OF RANGE
            REASON CODE = 32 (SCLBCHAR)
             CONDITIONS = CHARACTER THAT SCAN ENDED AT
                          IS AN INVALID DELIMITER
                                      OR
                          'INVALID CHARACTER'
            REASON CODE = 36 (SCLNOSPC)
             CONDITIONS = NO PROCESSING OF ANY KIND WAS SPECIFIED
                          ON CURRENT PARSE DESCRIPTION
            REASON CODE = 40 (SCLBADPD)
             CONDITIONS = AN INVALID PARSE DESCRIPTION WAS SUPPLIED.
                          IT IS SUGGESTED THAT THE USER UNDERSTAND
                          HOW THE 'IEEPARSE' MACRO FUNCTIONS BEFORE
                          GENERATING HIS OWN PARSE DESCRIPTIONS.
            REASON CODE = 44 (SCLBUFLN)
             CONDITIONS = THE MULTIPLE RECORD INPUT BUFFER
                          SUPPLIED IS NOT LONG ENOUGH TO HOLD
                          THE DATA NECESSARY TO ADEQUATELY
                          PERFORM THE PARSE DESCRIPTION POINTED
                          TO BY SCLCURNT.
1 DECIMAL            0 SCLOK  
1 DECIMAL            4 SCLNOPRS  
1 DECIMAL            8 SCLNOIO  
1 DECIMAL           12 SCLBCONT  
1 DECIMAL           16 SCLBCOM  
1 DECIMAL           20 SCLBDLM  
1 DECIMAL           24 SCLBKEY  
1 DECIMAL           28 SCLBLEN  
1 DECIMAL           32 SCLBCHAR  
1 DECIMAL           36 SCLNOSPC  
1 DECIMAL           40 SCLBADPD  
1 DECIMAL           44 SCLBUFLN  
Table 4. Cross Reference for SCL
Name Offset Hex Tag
DSCABBLN 31
DSCALPHA 2A 80
DSCALSC 34
DSCALSLN 32
DSCALTAD 0
DSCBLANK 2B 80
DSCCALRT 2B 10
DSCCOMMA 2B 20
DSCDATA 10
DSCDLMC 3C
DSCDLMLN 33
DSCFLG1 2A
DSCFLG2 2B
DSCHEX 2A 20
DSCIOYES 2B 40
DSCKEY 44
DSCKEYLN 30
DSCMAXLN 2C
DSCMINLN 2E
DSCNOSCN 2B 08
DSCNUMER 2A 40
DSCPARSE 0
DSCRSVD 14
DSCRTAD C
DSCSSAD 8
DSCSUCAD 4
DSCTRTAD 20
DSCUINDX 28
DSCUTAB 24
DSC1A 2A 10
DSC1A@ 2A 08
SCLACRO 0
SCLCHAR 8
SCLCOMNT 20 20
SCLCONTC 20 80
SCLCURNT 18
SCLDATA 30
SCLDSC C
SCLFLG1 20
SCLFLG2 21
SCLFLG3 22
SCLFLG5 3A
SCLINLN 1C
SCLIOPAD 14
SCLIORTN 10
SCLMBUFL 38
SCLMBUFP 34
SCLMBUFU 3C
SCLMULTR 20 02
SCLNOCT 20 40
SCLNORT 20 04
SCLNOSUC 20 10
SCLPARM 0
SCLRESV1 5
SCLRESV2 2A
SCLRET 40
SCLRSN 44
SCLRSVD1 48
SCLRSVD2 4C
SCLRSVD3 50
SCLRSVD4 54
SCLRSVD5 58
SCLSECS 20 08
SCLSTRLN 1E
SCLUFUNC 23
SCLUINDX 28
SCLUSER 2C
SCLUTAB 24
SCLVERSN 4