*COMDECK,COMQPAR
#     COMQPAR - COMMAND PARSER VARIABLES #
                                               CONTROL NOLIST;
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL ENDIF; 
# 
**    COMQPAR - COMMAND PARSER VARIABLES. 
# 
      BEGIN  # COMMON DECK COMQPAR #
  
      DEF MXPARMS    #10#;         # MAXIMUM NUMBER OF PARAMETERS # 
      DEF MXTKLEN    #07#;         # MAXIMUM LENGTH OF TOKEN #
  
      STATUS VTYPE                 # VALUE TYPE # 
         EMPTY                     # NULL VALUE (KEYWORD=) #
        ,NAME                      # NAME # 
        ,INTEGER                   # INTEGER #
        ,RANGE                     # RANGE OF INTEGER (LB..UB) #
        ,ASTERISK                  # ASTERISK # 
        ,KEYWORD                   # KEYWORD #
        ,DEFAULT                   # PARAMETER NOT SPECIFIED #
        ; 
  
      STATUS STAT                  # PARSE STATUS # 
         OK                        # NO ERROR # 
        ,VERBERR                   # ERROR IN COMMAND VERB #
        ,EQUALERR                  # MISPLACED EQUAL #
        ,SEPERR                    # NO SEPARATOR AFTER KEYWORD # 
        ,INVCHAR                   # INVALID CHARACTER #
        ,ELIPERR                   # ELLIPSIS MISPLACED # 
        ,ASTKERR                   # MISPLACED ASTERISK # 
        ,RANGERR                   # RANGE ERROR #
        ,NOFILE                    # FILE NOT FOUND # 
        ,PIDERROR                  # PID NOT DEFINED #
        ,SCERROR                   # SC ERROR # 
        ,PARMERR                   # PARAMETER ERROR #
        ; 
  
      COMMON COMQPAR; 
  
      BEGIN  # COMMON BLOCK COMQPAR # 
  
      ITEM PARM$CMDL  U;           # LENGTH OF COMMAND #
      ITEM PARM$ECOL  U;           # COLUMN WHERE PARSE HALTED #
      ITEM PARM$PCNT  U;           # PARAMETER COUNT #
      ITEM PARM$STAT  S:STAT;      # PARSE STATUS # 
      ITEM PARM$VERB  C(MXTKLEN);  # COMMAND VERB # 
      ITEM PARM$VERBL U;           # LENGTH OF VERB # 
      ARRAY PARMS [1:MXPARMS] S(2); 
        BEGIN 
        ITEM PARM$KEY   C(00,00,07);  # KEYWORD OR NAME # 
        ITEM PARM$VTYPE S:VTYPE(00,42,06);  # VALUE TYPE #
        ITEM PARM$COL   U(00,48,12);  # STARTING COLUMN # 
        ITEM PARM$VALUE U(01,00,42);  # PARAMETER VALUE # 
        ITEM PARM$NAME  C(01,00,07);  # NAME VALUE #
        ITEM PARM$INT   U(01,00,42);  # INTEGER VALUE # 
        ITEM PARM$UB    U(01,06,18);  # RANGE UPPER BOUND VALUE # 
        ITEM PARM$LB    U(01,24,18);  # RANGE LOWER BOUND VALUE # 
        ITEM PARM$PLEN  U(01,42,09);  # KEYWORD LENGTH #
        ITEM PARM$VLEN  U(01,51,09);  # VALUE LENGTH #
        END 
  
      END  # COMMON BLOCK COMQPAR # 
  
      END  # COMMON DECK COMQPAR #
                                               CONTROL LIST;
