Trailing-Edge
-
PDP-10 Archives
-
BB-H138E-BM
-
6-1-sources/pardata.old
There is 1 other file named pardata.old in the archive. Click here to see a list.
!
! This module contains all the data required for parsing. This consists
! of any required macros, literals, command keyword tables and parse
! tables. This is referenced by PRPARCOM.B36.
!
! Created: 2-Mar-83 C.Gill
!
REQUIRE
'EDTSRC:SUPPORTS'; ! Support flags
!
! The following external must be defined here to simplify the layout of
! PRPARCOM.
!
EXTERNAL
GETJFN_BLOCK, ! GTJFN block
CMD_BUF; ! Command buffer
!
! GLOBAL STORAGE:
!
!+
! The following block is used by the COMND JSYS.
!-
GLOBAL
ATOM_BUF : VECTOR [CH$ALLOCATION (ATOM_LEN, BYTE_SIZE)], ! Atom buffer
CSB : VECTOR [10] INITIAL (
0,
$PRIIN*%O'1000000'+$PRIOU, ! Primary JFN's - may change
0, ! Prompt pointer
CH$PTR (CMD_BUF,, BYTE_SIZE), ! Command buffer
CH$PTR (CMD_BUF,, BYTE_SIZE),
256, ! Length of command buffer
256,
CH$PTR (ATOM_BUF,, BYTE_SIZE), ! Local atom buffer
ATOM_LEN,
GETJFN_BLOCK); ! GTJFN block for filespecs
!+
! The following tables are the command and switch name tables used during
! parsing. All tables must be alphabetically ordered.
!-
CMDTAB (CMD_TABLE, ! Main command table
'ADJUST',CM_INV,COM_TADJ,
'C',(CM_INV + CM_ABR),CMD_TABLE+3, ! CHANGE
'CHANGE',,COM_CHANGE,
'CLEAR',,COM_CLEAR,
'COPY',,COM_COPY,
'D',(CM_INV + CM_ABR),CMD_TABLE+8, ! DELETE
'DEFINE',,COM_DEFINE,
'DELETE',,COM_DELETE,
'E',CM_NOR,0,
'EXIT',,COM_EXIT,
'F',(CM_INV + CM_ABR),CMD_TABLE+13, ! FIND
'FILL',,COM_FILL,
'FIND',,COM_FIND,
'HELP',,COM_HELP,
'I',(CM_INV + CM_ABR),CMD_TABLE+17, ! INSERT
'INCLUDE',,COM_INCLUDE,
'INSERT',,COM_INSERT,
'MOVE',,COM_MOVE,
'NEXT',,COM_SUBS_NEXT,
'PRINT',,COM_PRINT,
'PUSH',,COM_PUSH,
'QUI',CM_NOR,0,
'QUIT',,COM_QUIT,
'R',(CM_INV + CM_ABR),CMD_TABLE+25, ! REPLACE
'REPLACE',,COM_REPLACE,
'RESEQUENCE',,COM_RESEQ,
'S',(CM_INV + CM_ABR),CMD_TABLE+30, ! SUBSTITUTE
'SET',,COM_SET,
'SHOW',,COM_SHOW,
'SUBSTITUTE',,COM_SUBS,
'T',(CM_INV + CM_ABR),CMD_TABLE+34, ! TYPE
'TAB',,COM_TADJ,
'TRACE',(CM_INV),COM_TRACE,
'TYPE',,COM_TYPE,
'WRITE',,COM_WRITE,
'XDDT',(CM_INV),COM_XDDT);
!+,
! Other keyword tables,
!-,
CMDTAB (ADJ_CMD,
'ADJUST',,0);
CMDTAB (DEF_CMD_AS, ! AS
'AS',,0);
CMDTAB (DEF_CMD_TBL, ! DEFINE keywords
'KEY',,COM_DEFINE,
'MACRO',,COM_DEF_MAC);
CMDTAB (RAN_CMD_TBL, ! Range keywords
'ALL',,RAN_ALL,
'AND',,RAN_AND,
'B',(CM_INV + CM_ABR),RAN_CMD_TBL+5,
'BEFORE',,RAN_BEFORE,
'BEGIN',,RAN_BEGIN,
'BUFFER',,RAN_BUFFER,
'END',,RAN_END,
'FOR',,RAN_FOR,
'LAST',,RAN_LAST,
'ORIGINAL',,RAN_ORIG,
'REST',,RAN_REST,
'SELECT',,RAN_SELECT,
'THRU',,RAN_THRU,
'WHOLE',,RAN_WHOLE);
CMDTAB (RAN_CMD_TO, ! Parse 'TO'
'TO',,RAN_THRU)
CMDTAB (COP_SWT_TBL, ! COPY switches
'DUPLICATE',,SWT_DUPL,
'QUERY',,SWT_QUERY);
CMDTAB (DEL_SWT_TBL, ! DELETE switches
'QUERY',,SWT_QUERY);
CMDTAB (EXI_SWT_TBL, ! EXIT switches
'GO',,SWT_GO,
'SAVE',,SWT_SAVE,
'SEQUENCE',,SWT_SEQU);
CMDTAB (QIT_SWT_TBL, ! QUIT switches
'SAVE',,SWT_SAVE);
CMDTAB (RES_SWT_TBL, ! RESEQUENCE switches
'SEQUENCE',,SWT_SEQU);
CMDTAB (SUB_SWT_TBL, ! SUBSTITUTE switches
'BRIEF',,SWT_BRIEF,
'NOTYPE',,SWT_NOTYP,
'QUERY',,SWT_QUERY);
CMDTAB (TYP_SWT_TBL, ! TYPE switches
'BRIEF',,SWT_BRIEF,
'STAY',,SWT_STAY);
CMDTAB (SET_OPT_TBL, ! SET options
'AUTOREPEAT',,SET_AUTO,
'CASE',,SET_CASE,
'COMMAND',,SET_COMND,
'CONTROL-T',,SET_CTRLT,
'CURSOR',,SET_CURSR,
'ENTITY',,SET_NTITY,
'FNF',,SET_FNF,
'HELP',,SET_HELP,
'KEYPAD',,SET_KEY,
'LINES',,SET_LINES,
'MODE',,SET_MODE,
'NOAUTOREPEAT',,SET_NOAUT,
'NOCONTROL-T',,SET_NOCTLT,
'NOFNF',,SET_NOFNF,
'NOKEYPAD',,SET_NOKEY,
'NONUMBERS',,SET_NONUM,
'NOQUIET',,SET_NOQIT,
'NOREPEAT',,SET_NORPT,
'NOSUMMARY',,SET_NOSUM,
'NOTAB',,SET_NOTAB,
'NOTRUNCATE',,SET_NOTRU,
'NOVERIFY',,SET_NOVER,
'NOWRAP',,SET_NOWRP,
'NUMBERS',,SET_NUMB,
'PARAGRAPH',,SET_PARA,
'PROMPT',,SET_PROMPT,
'QUIET',,SET_QUIET,
'REPEAT',,SET_REPT,
'SCREEN',,SET_SCRN,
'SEARCH',,SET_SRCH,
'SUMMARY',,SET_SUMM,
'TAB',,SET_TAB,
'TERMINAL',,SET_TERM,
'TEXT',,SET_TEXT,
'TRUNCATE',,SET_TRUNC,
'VERIFY',,SET_VERFY,
'WORD',,SET_WORD,
'WRAP',,SET_WRAP);
CMDTAB (SHO_OPT_TBL, ! SHOW options
'AUTOREPEAT',,SHO_AUTO,
'BUFFER',,SHO_BUFF,
'CASE',,SHO_CASE,
'COMMAND',,SHO_COMND,
'CONTROL-T',,SHO_CTRLT,
'CURSOR',,SHO_CURSR,
'ENTITY',,SHO_NTITY,
'FILES',,SHO_FILES,
'FNF',,SHO_FNF,
'HELP',,SHO_HELP,
'KEY',,SHO_KEY,
'KEYPAD',,SHO_KEYPD,
'LINES',,SHO_LINES,
'MODE',,SHO_MODE,
'NUMBERS',,SHO_NUM,
'PARAGRAPH',,SHO_PARA,
'PROMPT',,SHO_PROMPT,
'QUIET',,SHO_QUIET,
'REPEAT',,SHO_REPT,
'SCREEN',,SHO_SCRN,
'SEARCH',,SHO_SRCH,
'SUMMARY',,SHO_SUMM,
'TAB',,SHO_TAB,
'TERMINAL',,SHO_TERM,
'TEXT',,SHO_TEXT,
'TRUNCATE',,SHO_TRUNC,
'VERIFY',,SHO_VRFY,
'VERSION',,SHO_VERS,
'WORD',,SHO_WORD,
'WRAP',,SHO_WRAP);
CMDTAB (SHO_KEY_TBL, ! SHOW KEY keywords
'GOLD',,KEY_GOLD); ! Drops into SHO_KEY_GOLD
CMDTAB (SHO_KEY_GOLD, ! SHOW KEY GOLD keywords
'C',CM_NOR,0, ! Might be key name
'CONTROL',,KEY_CONT,
'D',CM_NOR,0,
'DELETE',,KEY_DEL
%IF SUPPORT_VT220
%THEN
,'F',CM_NOR,0,
'FUNCTION',,KEY_FUNC
%FI
)
CMDTAB (ENTITY_TBL, ! ENTITY keywords
'PAGE',,ENT_PAGE,
'PARAGRAPH',,ENT_PARA,
'SENTENCE',,ENT_SENT,
'WORD',,ENT_WORD);
CMDTAB (CASE_TBL, ! SET CASE keywords
'LOWER',,SET_CLOWR,
'NONE',,SET_CNONE,
'UPPER',,SET_CUPPR);
CMDTAB (MODE_TBL, ! SET MODE keywords
'CHANGE',,SET_MCHNG,
'LINES',,SET_MLINE);
CMDTAB (SEARCH_TBL, ! SET SEARCH keywords
'BEGIN',,SET_SBEG,
'BOUNDED',,SET_SBND,
'CASE-INSENSITIVE',,SET_CI,
'CI',,SET_CI,
%IF SUPPORT_VT220
%THEN
'DI',,SET_DI,
'DIACRITICAL-INSENSITIVE',,SET_DI,
%FI
'END',,SET_SEND,
'EXACT',,SET_SEXCT,
'GENERAL',,SET_SGEN,
'IGNORE',CM_INV,SET_SIGN,
'NOIGNORE',CM_INV,SET_SNIGN,
'UNBOUNDED',,SET_SUNB,
'WPS',,SET_SWPS);
CMDTAB (TERM_TBL, ! SET TERMINAL keywords
'EDIT',,SET_EDIT,
%IF SUPPORT_VT220
%THEN
'EIGHTBIT',,SET_8BIT,
%FI
'HARDCOPY',,SET_HCPY,
'HCPY',,SET_HCPY,
'NOEDIT',,SET_NEDIT,
%IF SUPPORT_VT220
%THEN
'NOEIGHTBIT',,SET_N8BIT,
%FI
'NOSCROLL',,SET_NSCRL,
'SCROLL',,SET_SCRL,
'VT100',,SET_VT100,
'VT52',,SET_VT52);
CMDTAB (PROMPT_TBL, ! SET PROMPT keywords
'HCCHANGE',,SET_PHCCH,
'INSERT',,SET_PINS,
'KEYPAD',,SET_PKEY,
'LINE',,SET_PLINE,
'NINSERT',,SET_PNINS,
'NOKEYPAD',,SET_PNKEY,
'QUERY',,SET_PQRY);
CMDTAB (TEXT_TBL, ! SET TEXT keywords
'END',,SET_TEND,
'PAGE',,SET_TPAGE);
CMDTAB (WORD_TBL, ! SET WORD keywords
'DELIMITER',,SET_WDEL,
'NODELIMITER',,SET_WNDEL);
CMDTAB (PARA_TBL, ! SET PARAGRAPH keywords
'NOWPS',,SET_PNWPS,
'WPS',,SET_PWPS);
CMDTAB (TRACE_TBL, ! TRACE keywords
'CLOSE',,TRC_CLOSE,
'LIST',,TRC_LIST,
'OFF',,TRC_OFF,
'ON',,TRC_ON,
'OPEN',,TRC_OPEN,
'RESET',,TRC_RESET);
CMDTAB (TRACE_SWT, ! TRACE switches
'LOCATION',,SWT_LOCN,
'STACK',,SWT_STACK);
!+
! Break mask and extra keyword for SUBSTITUTE
!-
OWN
BREAK_MASK : VECTOR [4] INITIAL (%O'20000000', 0, 0, 0);
CMDTAB (NEXT_TBL,
'NEXT',,0);
!+
! Break mask for TRACE routine and symbol names.
!-
OWN
TRR_BREAK : VECTOR [4] INITIAL (FLDB0$,
FLDB1$ AND NOT %O'030010000000',
FLDB2$,
FLDB3$);
!+
! The following data are the function descriptor blocks for the COMND JSYS.
!-
GLOBAL
FD_INI : FLDDB$ (TYP=$CMINI), ! Init the parser
FD_CMT : FLDDB$ (TYP=$CMCFM, ! Implied TYPE
FLGS=CM_SDH,
HLPM='Press return to type the next line'),
FD_CMM : FLDDB$ (TYP=$CMFLD, ! Parse a macro name
HLPM='Range to type',
LST=FD_CMT),
FD_CMD : FLDDB$ (TYP=$CMKEY, ! Parse the overall command
DATA=CMD_TABLE,
LST=FD_CMM),
FD_CFM : FLDDB$ (TYP=$CMCFM), ! Confirm
FD_VAL : FLDDB$ (TYP=$CMNUX, ! Parse a decimal number
DATA=10),
FD_COP : FLDDB$ (TYP=$CMSWI, ! COPY switches
DATA=COP_SWT_TBL),
FD_DEL : FLDDB$ (TYP=$CMSWI, ! DELETE and MOVE switches
DATA=DEL_SWT_TBL),
FD_EXI : FLDDB$ (TYP=$CMSWI, ! EXIT command switches
DATA=EXI_SWT_TBL),
FD_QIT : FLDDB$ (TYP=$CMSWI, ! QUIT switches
DATA=QIT_SWT_TBL),
FD_RES : FLDDB$ (TYP=$CMSWI, ! RESEQUENCE and WRITE switches
DATA=RES_SWT_TBL),
FD_DEF : FLDDB$ (TYP=$CMKEY, ! DEFINE keywords
DATA=DEF_CMD_TBL),
FD_AS : FLDDB$ (TYP=$CMKEY, ! AS
DATA=DEF_CMD_AS),
FD_SUB : FLDDB$ (TYP=$CMSWI, ! SUBSTITUTE switches
DATA=SUB_SWT_TBL),
FD_UQS : FLDDB$ (TYP=$CMUQS, ! SUBSTITUTE string
DATA=BREAK_MASK),
FD_SNX : FLDDB$ (TYP=$CMKEY, ! NEXT keyword
DATA=NEXT_TBL,
HLPM='String to be replaced or '),
FD_TYP : FLDDB$ (TYP=$CMSWI, ! TYPE switches
DATA=TYP_SWT_TBL),
FD_FIL : FLDDB$ (TYP=$CMFIL), ! EXIT command filespec
FD_RNN : FLDDB$ (TYP=$CMNUM, ! Parse a decimal number
FLGS=CM_SDH,
DATA=10),
FD_RN7 : FLDDB$ (TYP=$CMTOK, ! Parse buffer sign
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('=')),
LST=FD_RNN),
FD_RN6 : FLDDB$ (TYP=$CMTOK, ! Parse decimal point or dot
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('.')),
LST=FD_RN7),
FD_RN5 : FLDDB$ (TYP=$CMTOK, ! Parse minus sign
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('-')),
LST=FD_RN6),
FD_RN4 : FLDDB$ (TYP=$CMTOK, ! Parse plus sign
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('+')),
LST=FD_RN5),
FD_RN3 : FLDDB$ (TYP=$CMTOK, ! Parse AND sign
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT (',')),
LST=FD_RN4),
FD_RN2 : FLDDB$ (TYP=$CMTOK, ! Parse THRU sign
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT (':')),
LST=FD_RN3),
FD_RN1 : FLDDB$ (TYP=$CMTOK, ! Parse FOR sign
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('#')),
LST=FD_RN2),
FD_RNS : FLDDB$ (TYP=$CMQST, ! Parse a quoted string
FLGS=CM_SDH,
LST=FD_RN1),
FD_RNK : FLDDB$ (TYP=$CMKEY, ! Simple range parsing
FLGS=CM_SDH,
DATA=RAN_CMD_TBL,
HLPM='A valid range specification',
LST=FD_RNS),
FD_RNG : FLDDB$ (TYP=$CMTOK, ! '%' on keyword
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('%')),
LST=FD_RNK),
FD_DOT : FLDDB$ (TYP=$CMTOK, ! Decimal point
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('.')),
HLPM='Decimal point or space'),
FD_RNF : FLDDB$ (TYP=$CMFLD, !Parse a field
FLGS=CM_SDH,
HLPM='Buffer name'),
FD_RT1 : FLDDB$ (TYP=$CMKEY, ! Parse 'TO' or '%TO'
DATA=RAN_CMD_TO),
FD_RTO : FLDDB$ (TYP=$CMTOK, ! '%' on TO keyword
FLGS=CM_SDH,
DATA=CH$PTR (UPLIT ('%')),
LST=FD_RT1),
FD_ADJ : FLDDB$ (TYP=$CMKEY, ! TABS ADJUST
DATA=ADJ_CMD,
LST=FD_VAL),
FD_TXT : FLDDB$ (TYP=$CMTXT), ! Parse a text string (for HELP)
FD_QST : FLDDB$ (TYP=$CMQST), ! Parse a quoted string
FD_COL : FLDDB$ (TYP=$CMTOK, ! Parse a colon
DATA=CH$PTR (UPLIT (':'))),
FD_SET : FLDDB$ (TYP=$CMKEY, ! SET options
DATA=SET_OPT_TBL),
FD_SHO : FLDDB$ (TYP=$CMKEY, ! SHOW options
DATA=SHO_OPT_TBL),
FD_ENT : FLDDB$ (TYP=$CMKEY, ! SET ENTITY options
DATA=ENTITY_TBL),
FD_CAS : FLDDB$ (TYP=$CMKEY, ! SET CASE options
DATA=CASE_TBL),
FD_MOD : FLDDB$ (TYP=$CMKEY, ! SET MODE options
DATA=MODE_TBL),
FD_SCH : FLDDB$ (TYP=$CMKEY, ! SET SEARCH options
DATA=SEARCH_TBL),
FD_TRM : FLDDB$ (TYP=$CMKEY, ! SET TERMINAL options
DATA=TERM_TBL),
FD_PRO : FLDDB$ (TYP=$CMKEY, ! SET PROMPT options
DATA=PROMPT_TBL),
FD_TEX : FLDDB$ (TYP=$CMKEY, ! SET TEXT options
DATA=TEXT_TBL),
FD_WRD : FLDDB$ (TYP=$CMKEY, ! SET WORD options
DATA=WORD_TBL),
FD_PAR : FLDDB$ (TYP=$CMKEY, ! SET PARAGRAPH options
DATA=PARA_TBL),
FD_KYS : FLDDB$ (TYP=$CMFLD, ! Part of FD_KYN
FLGS=CM_SDH),
FD_KYN : FLDDB$ (TYP=$CMQST, ! Parse a character
HLPM='Name of key to define',
LST=FD_KYS),
FD_SKV : FLDDB$ (TYP=$CMNUX, ! DEFINE KEY number
DATA=10,
FLGS=CM_SDH,
HLPM='Number of key to define',
LST=FD_KYN),
FD_SKG : FLDDB$ (TYP=$CMKEY, ! SHOW KEY GOLD options
DATA=SHO_KEY_GOLD,
LST=FD_SKV),
FD_SKY : FLDDB$ (TYP=$CMKEY, ! SHOW KEY options
DATA=SHO_KEY_TBL,
LST=FD_SKG),
FD_TRC : FLDDB$ (TYP=$CMKEY, ! Parse TRACE options
DATA=TRACE_TBL),
FD_TRR : FLDBK$ (TYP=$CMFLD, ! TRACE routine or symbol
FLGS=CM_SDH,
BRKM=TRR_BREAK,
HLPM='Symbol name'),
FD_TRS : FLDDB$ (TYP=$CMSWI,
DATA=TRACE_SWT),
FD_EN2 : FLDDB$ (TYP=$CMCFM), ! Parse <CR><LF>
FD_END : FLDDB$ (TYP=$CMTOK, ! Parse '\' between commands
DATA=CH$PTR (UPLIT ('\')),
LST=FD_EN2);
!
! End of PRDATA.R36
!