INCLUDE (SCANLIB.PARAMS) C C SCANLIB.PARAMS -- PARAMETERS FOR COMMAND SCANNER LIBRARY C C MODIFIED 1981-JUL-21 - JWB - INCREASE NAME TABLE SIZE FOR OPS C IMPLICIT INTEGER (A-Z) C C SIZES AND DIMENSIONS -- C C CMTBSZ - COMMAND TABLE SIZE C KWTBSZ - KEYWORD ARGUMENT TABLE SIZE C NMTBSZ - NAME TABLE SIZE C NAMLEN - MAXIMUM NUMBER OF CHARACTERS IN A COMMAND,KEYWORD,OR NAME C TOKNSZ - MAXIMUM NUMBER OF CHARACTERS IN A TOKEN, INCLUDING A C . STRING AFTER PAIRS OF QUOTES ARE REDUCED TO SINGLE QUOTES C PNTBSZ - PUNCTUATION TABLE SIZE C LSTLEN - MAXIMUM NUMBER OF ENTRIES IN A LIST C NILSTS - NUMBER OF INTEGER LISTS C NNLSTS - NUMBER OF NAME LISTS C NRLSTS - NUMBER OF REAL LISTS C NSLSTS - NUMBER OF STRING LISTS C PARAMETER (CMTBSZ = 50) PARAMETER (KWTBSZ = 100) PARAMETER (NMTBSZ = 200) PARAMETER (NAMLEN = 6) PARAMETER (TOKNSZ = 72) PARAMETER (PNTBSZ = 10) PARAMETER (LSTLEN = 12) PARAMETER (NILSTS = 25) PARAMETER (NNLSTS = 25) PARAMETER (NRLSTS = 25) PARAMETER (NSLSTS = 25) C C PUNCTUATION TYPE CODES -- C C NOISE - CHARACTERS WHICH ARE IGNORED (TYPICALLY BLANK) C COMENT - COMMENT DELIMITER (TYPICALLY '@' OR '!') C NOPUNC - CHARACTERS WHICH HAVE NO SPECIAL SIGNIFICANCE AS C . PUNCTUATION, EXCEPT POSSIBLY IN NUMERIC LITERALS C LSTSEP - LIST SEPARATORS (TYPICALLY COMMA) C KEYSEP - KEYWORD (COMMAND OR ARG) TERMINATORS (TYPICALLY '=') C ARGSEP - ARGUMENT LIST TERMINATORS (TYPICALLY '/') C CMTERM - COMMAND TERMINATORS (TYPICALLY ';') C CONTIN - LINE CONTINUATION INDICATOR (TYPICALLY '&') C PARAMETER (NOISE = -2) PARAMETER (COMENT = -1) PARAMETER (NOPUNC = 0) PARAMETER (LSTSEP = 1) PARAMETER (KEYSEP = 2) PARAMETER (ARGSEP = 3) PARAMETER (CMTERM = 4) PARAMETER (CONTIN = 5) C C LIST TYPE CODES -- C PARAMETER (LSTYPI = 1) PARAMETER (LSTYPR = 2) PARAMETER (LSTYPN = 3) PARAMETER (LSTYPS = 4) C END INCLUDE INCLUDE (SCANLIB.CMLIST) C C MOD 1982-AUG-04 -- JWB -- SEPARATE CHAR AND NON-CHAR COMMONS C C SCANLIB.CMLIST -- LISTS TO BE SET UP BY COMMAND SCANNER LIBRARY C . ROUTINES WHEN SCANNING A SET OF COMMANDS C C CHARACTER LISTS -- (SEE COMMENT ON CHARACTER REPRESENTATION C . IN CMTABL COMMENTS) C C SLIST IS A LIST OF LISTS OF CHARACTER STRING VALUES C C INTEGER LISTS -- C C ILIST IS A LIST OF LISTS OF INTEGER VALUES C NLIST IS A LIST OF LISTS OF NAME INDEXES C CMDFND IS A LIST INDICATING WHETHER A COMMAND HAS BEEN C . ENCOUNTERED IN THE INPUT COMMAND SET C KWDFND IS A LIST INDICATING WHETHER A KEYWORD ARGUMENT HAS BEEN C . ENCOUNTERED IN THE INPUT COMMAND SET C STLENG IS A LIST OF LENGTHS OF STRINGS IN SLIST C C REAL LISTS -- C C RLIST IS A LIST OF LISTS OF REAL VALUES C CHARACTER*1 SLIST(TOKNSZ,LSTLEN,NSLSTS) INTEGER STLENG(LSTLEN,NSLSTS) INTEGER ILIST(LSTLEN,NILSTS) INTEGER NLIST(LSTLEN,NNLSTS) REAL RLIST(LSTLEN,NRLSTS) INTEGER CMDFND(CMTBSZ) INTEGER KWDFND(KWTBSZ) C COMMON /CMLIST/ CMDFND, KWDFND, ILIST, NLIST, RLIST, STLENG COMMON /CMLISC/ SLIST C C *** END OF CMLIST *** END INCLUDE INCLUDE (SCANLIB.CMTABL) C C MOD 1981-JUL-21 -- JWB -- ADD NAME TABLE RANGE LIMITS C MOD 1982-AUG-04 -- JWB -- SEPARATE CHAR AND NON-CHAR COMMONS C . -- ADD CMUNIT FOR COMMAND LINE INPUT C MOD 1982-OCT-07 -- JWB -- ADD NOECHO SWITCH FOR CMREAD C C SCANLIB.CMTABL - TABLES FOR COMMAND SCANNER LIBRARY C C THESE TABLES ARE GIVEN VALUES BY THE IMPLEMENTOR OF AN C APPLICATION, USUALLY BY USE OF A BLOCK DATA SUBPROGRAM. C THESE TABLES ARE INTENDED FOR READ-ONLY ACCESS BY THE C SCANLIB ROUTINES. C C CHARACTER TABLES -- C C ALL CHARACTER ITEMS ARE ARRAYS OF CHARACTER*1. C C CMDTBL IS THE TABLE OF COMMANDS C KWDTBL IS THE TABLE OF ARGUMENT KEYWORDS C NAMTBL IS THE TABLE OF NAMES WHICH ARE VALID AS LIST ITEMS C PUNTBL IS THE TABLE OF PUNCTUATION CHARACTERS C CHARACTER*1 CMDTBL(NAMLEN,CMTBSZ) CHARACTER*1 KWDTBL(NAMLEN,KWTBSZ) CHARACTER*1 NAMTBL(NAMLEN,NMTBSZ) CHARACTER*1 PUNTBL(PNTBSZ) C C INTEGER TABLES -- C C CARGTP IS A TABLE OF LIST TYPE CODES FOR THE INITIAL C . (NONKEYWORD) LIST OF A COMMAND C CNARGS IS A TABLE OF THE MAXIMUM NUMBER OF LIST ITEMS ALLOWED C . IN THE INITIAL LIST OF A COMMAND C CLSTDX IS A TABLE OF INDEXES FOR THE RESULT LIST OF THE C . INITIAL LIST OF A COMMAND C KARGTP IS A TABLE OF LIST TYPE CODES FOR THE LIST OF C . A KEYWORD ARGUMENT C KNARGS IS A TABLE OF THE MAXIMUM NUMBER OF LIST ITEMS ALLOWED C . IN THE LIST OF A KEYWORD ARGUMENT C KLSTDX IS A TABLE OF INDEXES FOR THE RESULT LIST OF A C . KEYWORD ARGUMENT C KWSTRT IS A TABLE OF STARTING INDEXES INTO THE KEYWORD TABLE C KWSTOP IS A TABLE OF ENDING INDEXES INTO THE KEYWORD TABLE C . FOR COMMAND INDEX I, THE ALLOWED KEYWORDS ARE IN C . KWDTBL(*,KWSTRT(I)) THROUGH KWDTBL(*,KWSTOP(I)) C NMSTRT IS A TABLE OF STARTING INDEXES INTO THE NAME TABLE C NMSTOP IS A TABLE OF ENDING INDEXES INTO THE NAME TABLE C . FOR KEYWORD INDEX K, THE ALLOWED NAMES ARE IN C . NAMTBL(*,NMSTRT(K)) THROUGH NAMTBL(*,NMSTOP(K)) C . NOTE THAT THERE IS NO WAY TO DISTINGUISH A SET OF NAMES C . ALLOWED WITH A KEYWORD ON ONE COMMAND FROM A DIFFERENT SET C . ALLOWED WITH THE SAME KEYWORD ON A DIFFERENT COMMAND, UNLESS C . THAT KEYWORD APPEARS TWICE IN THE KEYWORD TABLE. C PNCODE IS A TABLE OF PUNCTUATION CODES CORRESPONDING TO PUNTBL C INTEGER CARGTP(CMTBSZ), KARGTP(KWTBSZ) INTEGER CNARGS(CMTBSZ), KNARGS(KWTBSZ) INTEGER CLSTDX(CMTBSZ), KLSTDX(KWTBSZ) INTEGER KWSTRT(CMTBSZ) INTEGER KWSTOP(CMTBSZ) INTEGER NMSTRT(KWTBSZ) INTEGER NMSTOP(KWTBSZ) INTEGER PNCODE(PNTBSZ) C C INTEGER CONSTANTS -- C C EOL IS THE POSITION INDEX OF THE END-OF-LINE. THIS C . MUST BE ONE GREATER THAN THE LAST ALLOWED C . INPUT CHARACTER POSITION, AND MUST CONTAIN . C CMUNIT IS THE FORTRAN UNIT NUMBER FOR COMMAND INPUT FOR CMREAD C ERUNIT IS THE FORTRAN UNIT NUMBER FOR DIAGNOSTIC MESSAGES C NOECHO IS A SWITCH TO SUPPRESS COMMAND ECHOING FOR CMREAD C . 0=ECHO ENABLED, 1=ECHO DISABLED C C CHARACTER CONSTANTS -- C C QUOTE IS THE STRING DELIMITER (SHOULD BE APOSTROPHE C . OR QUOTATION MARK) C INTEGER EOL INTEGER ERUNIT, CMUNIT CHARACTER*1 QUOTE C COMMON /CMTABL/ CARGTP, CNARGS, CLSTDX *, KARGTP, KNARGS, KLSTDX *, KWSTRT, KWSTOP, NMSTRT, NMSTOP, PNCODE *, EOL, ERUNIT, CMUNIT, NOECHO COMMON /CMTABC/ CMDTBL, KWDTBL, NAMTBL, PUNTBL, QUOTE C C *** END OF CMTABL *** END INCLUDE INCLUDE (SCANLIB.CMTABL.EQUIVS) C C THIS INCLUDE SEGMENT IS USED TO PROVIDE EQUIVALENCES OF C CHAR*(NAMLEN) VARIABLES FOR THE CHAR*1(NAMLEN) CHAR ARRAYS C FOR CONVENIENCE OF SETTING UP CONSTANTS IN BLOCK DATA. C CHARACTER*(NAMLEN) CMDTBE(CMTBSZ) CHARACTER*(NAMLEN) KWDTBE(KWTBSZ) CHARACTER*(NAMLEN) NAMTBE(NMTBSZ) EQUIVALENCE (CMDTBL(1,1),CMDTBE(1)) EQUIVALENCE (KWDTBL(1,1),KWDTBE(1)) EQUIVALENCE (NAMTBL(1,1),NAMTBE(1)) END INCLUDE END FILE