Google
 

Trailing-Edge - PDP-10 Archives - BB-H138F-BM_1988 - 7-sources/pardata.req
There are 10 other files named pardata.req in the archive. Click here to see a list.
!GREEN:<EDT20.EDT>PARDATA.REQ 10-NOV-86 11:20, Edit by PERKINS
!EDIT 43, Fix XDDT command parsing.
!
!
! 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.
!
!
!
!COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984, 1988.  ALL RIGHTS RESERVED.
!
!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ONLY
!IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION OF 
!THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THEREOF MAY 
!NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.  NO TITLE
!TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
!
!THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND 
!SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
!
!DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 
!SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
!
!
!
! 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
		'C',(CM_INV + CM_ABR),CMD_TABLE+2,	! CHANGE
		'CHANGE',,COM_CHANGE,
		'CLEAR',,COM_CLEAR,
		'COPY',,COM_COPY,
		'D',(CM_INV + CM_ABR),CMD_TABLE+7,	! DELETE
		'DEFINE',,COM_DEFINE,
		'DELETE',,COM_DELETE,
		'E',CM_NOR,0,
		'EXIT',,COM_EXIT,
		'F',(CM_INV + CM_ABR),CMD_TABLE+12,	! FIND
		'FILL',,COM_FILL,
		'FIND',,COM_FIND,
		'HELP',,COM_HELP,
		'I',(CM_INV + CM_ABR),CMD_TABLE+16,	! 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+24,	! REPLACE
		'REPLACE',,COM_REPLACE,
		'RESEQUENCE',,COM_RESEQ,
		'S',(CM_INV + CM_ABR),CMD_TABLE+29,	! SUBSTITUTE
		'SET',,COM_SET,
		'SHOW',,COM_SHOW,
		'SUBSTITUTE',,COM_SUBS,
		'T',(CM_INV + CM_ABR),CMD_TABLE+33,	! TYPE
		'TAB',,COM_TADJ,
		'TRACE',(CM_INV),COM_TRACE,
		'TYPE',,COM_TYPE,
		'WRITE',,COM_WRITE,
		'XDD',CM_NOR,0,
		'XDDT',(CM_INV),COM_XDDT);

!+,
! Other keyword tables,
!-,

	CMDTAB (ADJ_CMD,			! TAB keyword
		'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_COMP,			! Compound range keywords
		'AND',,RAN_AND,
		'FOR',,RAN_FOR,
		'THRU',,RAN_THRU);

	CMDTAB (RAN_CMD_SLR,			! SLR range keywords
		'BEGIN',,RAN_BEGIN,
		'END',,RAN_END);

	CMDTAB (RAN_CMD_ALL,			! ALL keyword
		'ALL',,RAN_ALL);

	CMDTAB (RAN_CMD_AND,			! AND keyword
		'AND',,RAN_AND);

	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$);

!+
! Break mask for buffer names
!-

    OWN
	BUFFER_MASK : VECTOR [4] INITIAL (FLDB0$,
					 FLDB1$,
					 FLDB2$ AND NOT %O'20',
					 FLDB3$);

!+
! Break mask for range keywords
!-

    OWN
	RANGE_MASK : VECTOR [4] INITIAL (KEYB0$,
					 KEYB1$ OR %O'20000000',
					 KEYB2$,
					 KEYB3$);

!+
! 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_R82 : FLDDB$ (TYP=$CMTOK,		! Parse minus sign
			DATA=CH$PTR (UPLIT ('-'))),

	FD_R81 : FLDDB$ (TYP=$CMTOK,		! Parse plus sign
			DATA=CH$PTR (UPLIT ('+')),
			LST=FD_R82),

	FD_RN8 : FLDDB$ (TYP=$CMKEY,		! Post THRU parsing
			DATA=RAN_CMD_ALL,
			LST=FD_R81),

	FD_ANC : FLDDB$ (TYP=$CMTOK,		! Parse AND sign
			DATA=CH$PTR (UPLIT (',')),
			LST=FD_RN8),

	FD_AND : FLDDB$ (TYP=$CMKEY,		! Post AND parsing
			DATA=RAN_CMD_AND,
			LST=FD_ANC),

	FD_RNN : FLDDB$ (TYP=$CMNUX,		! 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 : FLDBK$ (TYP=$CMKEY,		! Simple range parsing
			FLGS=CM_SDH,
			DATA=RAN_CMD_TBL,
			BRKM=RANGE_MASK,
			HLPM='Range specification',
			LST=FD_RNS),

	FD_RNG : FLDDB$ (TYP=$CMTOK,		! '%' on keyword
			FLGS=CM_SDH,
			DATA=CH$PTR (UPLIT ('%')),
			LST=FD_RNK),

	FD_RS5 : FLDDB$ (TYP=$CMNUX,		! Parse a decimal number
			FLGS=CM_SDH,
			DATA=10,
			HLPM='Line number'),

	FD_RS4 : FLDDB$ (TYP=$CMQST,		! Parse a quoted string
			LST=FD_RS5),

	FD_RS3 : FLDDB$ (TYP=$CMTOK,		! Parse decimal point or dot
			DATA=CH$PTR (UPLIT ('.')),
			LST=FD_RS4),

	FD_RS2 : FLDDB$ (TYP=$CMTOK,		! Parse minus sign
			DATA=CH$PTR (UPLIT ('-')),
			LST=FD_RS3),

	FD_RS1 : FLDDB$ (TYP=$CMTOK,		! Parse plus sign
			DATA=CH$PTR (UPLIT ('+')),
			LST=FD_RS2),

	FD_RSR : FLDDB$ (TYP=$CMKEY,		! SLR range keywords
			DATA=RAN_CMD_SLR,
			LST=FD_RS1),

	FD_RNA : FLDDB$ (TYP=$CMKEY,		! ALL range keyword
			DATA=RAN_CMD_ALL),

	FD_RC3 : FLDDB$ (TYP=$CMTOK,		! FOR sign
			DATA=CH$PTR (UPLIT ('#'))),

	FD_RC2 : FLDDB$ (TYP=$CMTOK,		! AND sign
			DATA=CH$PTR (UPLIT (',')),
			LST=FD_RC3),

	FD_RC1 : FLDDB$ (TYP=$CMTOK,		! THRU sign
			DATA=CH$PTR (UPLIT (':')),
			LST=FD_RC2),

	FD_RCM : FLDDB$ (TYP=$CMKEY,		! Compound range keywords
			DATA=RAN_CMD_COMP,
			LST=FD_RC1),

	FD_RNM : FLDDB$ (TYP=$CMTOK,		! Minus sign
			FLGS=CM_SDH,
			DATA=CH$PTR (UPLIT ('-')),
			LST=FD_RCM),

	FD_RNP : FLDDB$ (TYP=$CMTOK,		! Plus sign
			FLGS=CM_SDH,
			DATA=CH$PTR (UPLIT ('+')),
			HLPM='"+" or "-"',
			LST=FD_RNM),

	FD_DOT : FLDDB$ (TYP=$CMTOK,		! Decimal point
			FLGS=CM_SDH,
			DATA=CH$PTR (UPLIT ('.')),
			HLPM='Line number'),

	FD_RNF : FLDBK$ (TYP=$CMFLD,		!Parse a field
			FLGS=CM_SDH,
			BRKM=BUFFER_MASK,
			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
!