Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0057/initlb.sno
There are 2 other files named initlb.sno in the archive. Click here to see a list.
*	*	*	*	*	*	*	*	*
*	*	DECLARATIONS	*	*	*	*	*
*	*	*	*	*	*	*	*	*
*
*		LOCAL
*
	DECLARE('SNOBOL.SUBPROGRAM','INITLB')
	DECLARE('OPTION','NO.STNO')
	DECLARE('PURGE.VARIABLE',ALL)
	DECLARE('PURGE.LABEL',ALL)
	DECLARE('EXTERNAL.FUNCTION','NEWNAM,
.PRTOUT,ERRMSG')
	DECLARE('INTEGER','I,J,K')
	DECLARE('ENTRY.FUNCTION','INITLB()')
*
*		SYSTEM COMMON
*
*	TABLES AND LISTS
	DECLARE('EXTERNAL.VARIABLE',
.'SYMBTB,XNAMTB,KEYWTB,CTRLTB,DECLTB,CROSTB,CONSTB,ENTFTB,DSIZTB,
.BOPRTB,UOPRTB')
	DECLARE('EXTERNAL.VARIABLE',
.'ENTRLS,EXTRLS,FORTLS')
*	ARRAYS
	DECLARE('EXTERNAL.VARIABLE',
.'PTVRAR,PTFNAR,PRIMAR,GOTOAR,DECLAR,PROGAR,VARBAR,MACHAR,STENAR,BOPRAR,
.UOPRAR,PATRAR,EXPRAR,AROPAR,ARITAR,EACTAR')
*	PARAMETERS (STRINGS,DATATYPES)
	DECLARE('EXTERNAL.VARIABLE',
.'C,INDENT,SPLASH,ITNAM,ITENT,NOFAIL,SNONAM,SUBNAM,PARBLK,PRGNAM,STARTP,
.TEMLOC,P1,P2,P3,P4,P5')
*	PARAMETERS (INTEGERS)
	DECLARE('EXTERNAL.VARIABLE',
.'P,OBJFLG,LISTSR,INTGER,ITTYP,ITATR,PRGALV,PRGALL,PRGALF,STNFLG,HSHSIZ,
.STRTIM,DMPFLG,LISTOB,STNO,MAXTMP')
	DECLARE('INTEGER',
.'P,OBJFLG,LISTSR,INTGER,ITTYP,ITATR,PRGALV,PRGALL,PRGALF,STNFLG,HSHSIZ,
.STRTIM,DMPFLG,LISTOB,STNO,MAXTMP')
	DECLARE('EXTERNAL.VARIABLE',
.'XNATRB,VTATRB,VDATRB,LTATRB,FTATRB,FDATRB,TXATRB,VNATRB,VXATRB,VIATRB,
.VGATRB,LIATRB,LGATRB,FIATRB,FGATRB,FXATRB,SKATRB,SDATRB,BTATRB')
	DECLARE('INTEGER',
.'XNATRB,VTATRB,VDATRB,LTATRB,FTATRB,FDATRB,TXATRB,VNATRB,VXATRB,VIATRB,
.VGATRB,LIATRB,LGATRB,FIATRB,FGATRB,FXATRB,SKATRB,SDATRB,BTATRB')
	DECLARE('EXTERNAL.VARIABLE',
.'XNVATR,XNLATR,XNFATR,XNXMSK,VTVATR,VDDATR,VDPATR,VDDMSK,LTDATR,LTTMSK,
.FTFATR,FDPATR,FDIATR,FDDMSK,TXTATR,TXTMSK,VNNATR,VXXATR,VIPATR,VGGATR,
.LIPATR,LGGATR,FIPATR,FGGATR,FXXATR,FXXMSK,SKRATR,SDRATR,BTRATR')
	DECLARE('INTEGER',
.'XNVATR,XNLATR,XNFATR,XNXMSK,VTVATR,VDDATR,VDPATR,VDDMSK,LTDATR,LTTMSK,
.FTFATR,FDPATR,FDIATR,FDDMSK,TXTATR,TXTMSK,VNNATR,VXXATR,VIPATR,VGGATR,
.LIPATR,LGGATR,FIPATR,FGGATR,FXXATR,FXXMSK,SKRATR,SDRATR,BTRATR')
*	SPECIAL CHARACTERS,CHARACTER SEQUENCES, AND CHARACTER CLASSES
	DECLARE('EXTERNAL.VARIABLE',
.'FFCHR,CRLCHR,LFCHR,CRCHR,SQCHR,DQCHR,TBCHR,LCSCHR,BLNCHR,EQLCHR,
.QTSCHR,ELTCHR,LBCHR')
*	PATTERNS AND MATCHES
	DECLARE('EXTERNAL.VARIABLE',
.'COMSPT,INTGPT,BLNKPT,OPBLPT,PCOMPT,PCPRMT,IDENPT,DCLCMT,RSIDPT,LABLPT,
.POPRMT,IDENMT,SQLTPT,DQLTPT,LBDCPT,IDDCPT')
*
*	MINIMAL SYMBOL TABLE
*
	DECLARE('UNPURGE.VARIABLE','INITLB')
	DECLARE('UNPURGE.LABEL','INITLB')
	DECLARE('PURGE.FUNCTION','DATA,SUBSTR,DUPL,TABLE,DEFINE,ARRAY,
.COPY,TIME,IDENT,OPEN,DIFFER,ENTER,OUTPUT,LOOKUP,INPUT,DATE,
.DAYTIM,RELEASE,SIZE,LGT')
*	*	*	*	*	*	*	*	*
*	*	INITIALIZE SYSTEM COMMON	*	*	*
*	*	*	*	*	*	*	*	*
*
*	LOCAL INITIALIZATION
INITLB	DATA('SYM(INAM,ATRB)')
	DATA('NOD(FRNT,BACK)')
*	CODE ARRAYS
* GOTO CODE
	GOTOAR	= ARRAY('5')
	GOTOAR<1>	= 'S$$NFE##'
	GOTOAR<2>	= TBCHR 'MOVEI 14,S$$BGT##' CRLCHR 
. TBCHR 'MOVEM 14,S$$FLP##'
	GOTOAR<3>	= TBCHR 'JSP 14,S$$ILB##'
	GOTOAR<4>	= NOD(.P1,':')
	GOTOAR<5>	= NOD(TBCHR 'JRST' TBCHR,.P1)
* DECLARATION CODE
	DECLAR	= ARRAY('4')
	DECLAR<1>	= NOD(NOD('TITLE ',.P1),CRLCHR 
. TBCHR 'OPDEF' TBCHR 'UFERR$' TBCHR '[1B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'CFERR$' TBCHR '[2B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'FCALV$' TBCHR '[3B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'FCALN$' TBCHR '[4B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'DASGN$' TBCHR '[5B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'DCONC$' TBCHR '[6B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'DICNV$' TBCHR '[7B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'DRCNV$' TBCHR '[10B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'AREFV$' TBCHR '[11B8]' CRLCHR
. TBCHR 'OPDEF' TBCHR 'AREFN$' TBCHR '[12B8]')
	DECLAR<2>	= NOD('ENTRY ',.P1)
	DECLAR<3>	= NOD(',',.P1)
	DECLAR<4>	= NOD('EXTERN ',.P1)
* GENERAL PROGRAM CODE
	PROGAR	= ARRAY('7')
	PROGAR<1>	= NOD(NOD(NOD(.P1,':' TBCHR 'JSP' TBCHR
. '14,S$$ILZ##' CRLCHR
. TBCHR 'XWD' TBCHR '^D'),NOD(.P2,',')),NOD(NOD(.P3,CRLCHR
. TBCHR 'JRST' TBCHR),.P4))
	PROGAR<2>	= TBCHR 'JRST' TBCHR 'S$$SXT##'
	PROGAR<3>	= NOD(.P1,'=')
	PROGAR<4>	= NOD(PROGAR<3>,NOD(.P2,'+3'))
	PROGAR<5>	= NOD(PROGAR<3>,.P2)
	PROGAR<6>	= GOTOAR<4>
	PROGAR<7>	= TBCHR 'JSP' TBCHR '14,S$$CPE##'
* VARIABLE CODE
	VARBAR	= ARRAY('12')
	VARBAR<1>	= NOD('S$$KWD##+^D',.P1)
	VARBAR<2>	= NOD(TBCHR 'MOVEM' TBCHR '1,',.P1)
	VARBAR<3>	= NOD(TBCHR 'SETZM' TBCHR,.P1)
	VARBAR<4>	= NOD(NOD(TBCHR 'DCONC$' TBCHR '^D',.P1)
. ,NOD(',',.P2))
	VARBAR<5>	= NOD(NOD(TBCHR 'DASGN$' TBCHR,.P1)
. ,NOD(',',.P2))
	VARBAR<6>	= NOD(TBCHR 'SETZM' TBCHR '@',.P1)
	VARBAR<7>	= NOD(TBCHR 'MOVEM' TBCHR '1,@',.P1)
	VARBAR<8>	= TBCHR 'SETZM' TBCHR '(1)'
	VARBAR<9>	= TBCHR 'PUSH' TBCHR '16,1'
	VARBAR<10>	= TBCHR 'JSP' TBCHR '11,S$$ASG##'
	VARBAR<11>	= NOD(TBCHR 'MOVE' TBCHR '1,',.P1)
	VARBAR<12>	= NOD(TBCHR 'MOVEI' TBCHR '1,S$$KWD##+^D'
. ,NOD(.P1,CRLCHR
. TBCHR 'HRLI' TBCHR '1,22B23'))
* MATCH CODE
	MACHAR	= ARRAY('9')
	MACHAR<1>	= VARBAR<9>
	MACHAR<2>	= NOD(TBCHR 'JSP' TBCHR '14,S$$MTX##'
. CRLCHR TBCHR 'XWD' TBCHR '^D',NOD(.P1,',0'))
	MACHAR<3>	= TBCHR 'BYTE' TBCHR '(2)2(16)1(18).+1'
	MACHAR<4>	= TBCHR 'JSP' TBCHR '11,S$$MTS##'
	MACHAR<5>	= NOD(TBCHR 'MOVE' TBCHR '1,@',.P1)
	MACHAR<6>	= TBCHR 'JSP' TBCHR '14,S$$IVV##'
	MACHAR<7>	= TBCHR 'JSP' TBCHR '11,S$$RPS##'
	MACHAR<8>	= TBCHR 'JSP' TBCHR '14,S$$RPL##'
	MACHAR<9>	= TBCHR 'SETZ' TBCHR '1,'
* STATEMENT ENTRY CODE
	STENAR	= ARRAY('-1:1')
	STENAR<-1>	= NOD(TBCHR 'MOVEI' TBCHR '14,',NOD(.P1,CRLCHR
. TBCHR 'MOVEM' TBCHR '14,S$$FLP##'))
	STENAR<0>	= NOD(NOD(TBCHR 'JSP' TBCHR '14,S$$STE##' CRLCHR
. TBCHR 'XWD' TBCHR '^D',.P2),DECLAR<3>)
	STENAR<1>	= NOD(NOD(TBCHR 'JSP' TBCHR '14,S$$STT##' CRLCHR
. TBCHR 'XWD' TBCHR '^D',.P2),DECLAR<3>)
* PATTERN CODE
	PATRAR	= ARRAY('34')
	PATRAR<1>	= NOD(NOD(TBCHR 'JSP' TBCHR '14,S$$GPB##' CRLCHR
. TBCHR 'XWD' TBCHR '^D',.P1),NOD(',',.P2))
	PATRAR<2>	= MACHAR<3>
	PATRAR<3>	= NOD(TBCHR 'JRST' TBCHR 'S$$PTS##' CRLCHR
. ,GOTOAR<4>)
	PATRAR<4>	= NOD(TBCHR 'JSP' TBCHR '11,S$$APS##' CRLCHR
. TBCHR 'XWD' TBCHR '.-.,',.P1)
	PATRAR<5>	= NOD(NOD(GOTOAR<5>,CRLCHR),NOD(.P2,':'))
	PATRAR<6>	= NOD(TBCHR 'JSP' TBCHR '11,S$$APR##' CRLCHR
. TBCHR 'XWD' TBCHR '.-.,',.P1)
	PATRAR<7>	= TBCHR 'JSP' TBCHR '11,S$$APF##'
	PATRAR<8>	= GOTOAR<4>
	PATRAR<9>	= TBCHR 'JSP' TBCHR '11,S$$VAS##'
	PATRAR<10>	= TBCHR 'JSP' TBCHR '11,S$$CVA##'
	PATRAR<11>	= TBCHR 'JSP' TBCHR '11,S$$IVA##'
	PATRAR<12>	= NOD(TBCHR 'HRRZ' TBCHR '1,@S$$SJC##' CRLCHR
. TBCHR 'SUBI' TBCHR '1,(13)' CRLCHR
. TBCHR 'MOVEM' TBCHR '1,',.P1)
	PATRAR<14>	= TBCHR 'JSP' TBCHR '11,S$$ASC##'
	PATRAR<15>	= NOD(VARBAR<11>,CRLCHR
. TBCHR 'JSP' TBCHR '11,S$$MST##')
	PATRAR<16>	= TBCHR 'JSP' TBCHR '11,S$$CKP##' CRLCHR
. TBCHR 'JSP' TBCHR '11,S$$PTX##'
	PATRAR<17>	= TBCHR 'JSP' TBCHR '11,S$$MKP##' CRLCHR
.  VARBAR<9>
	PATRAR<18>	= VARBAR<9>
	PATRAR<19>	= NOD(NOD(TBCHR 'MOVE' TBCHR '1,^D',.P1)
. ,'(15)' CRLCHR)
	PATRAR<20>	= NOD(PATRAR<19>,TBCHR 'JSP' TBCHR '11,S$$PTX##')
	PATRAR<21>	= NOD(TBCHR 'HRRZ' TBCHR '1,',.P1)
	PATRAR<22>	= TBCHR 'JSP' TBCHR '11,S$$MIP##' CRLCHR
. VARBAR<9>
	PATRAR<23>	= NOD(TBCHR 'HRRZ' TBCHR '1,^D',NOD(.P1,'(15)' CRLCHR))
	PATRAR<24>	= TBCHR 'JSP' TBCHR '11,S$$MID##' CRLCHR
. VARBAR<9>
	PATRAR<25>	= TBCHR 'JUMPL' TBCHR '1,S$$MIE##'
	PATRAR<26>	= TBCHR 'DICNV$' TBCHR '0'
	PATRAR<27>	= NOD(TBCHR 'MOVEI' TBCHR '1,',.P1)
	PATRAR<28>	= TBCHR 'JSP' TBCHR '11,S$$MBT##' CRLCHR
. TBCHR 'EXP' TBCHR '.'
	PATRAR<29>	= PATRAR<28> CRLCHR VARBAR<9>
	PATRAR<30>	= NOD(FRNT(PATRAR<19>),'(15)')
	PATRAR<31>	= TBCHR 'JSP' TBCHR '11,S$$UEB##'
	PATRAR<32>	= TBCHR 'JSP' TBCHR '11,S$$UES##'
	PATRAR<33>	= TBCHR 'JSP' TBCHR '11,S$$UFB##'
	PATRAR<34>	= TBCHR 'JSP' TBCHR '11,S$$UFS##'
* PRIMITIVE PATTERN VARIABLE CODE
	PTVRAR	= ARRAY('7')
	PTVRAR<1>	= TBCHR 'POPJ' TBCHR '16,'
	PTVRAR<2>	= TBCHR 'PUSHJ' TBCHR '16,.+2' CRLCHR
. TBCHR 'JRST' TBCHR 'S$$MTA##'
	PTVRAR<3>	= TBCHR 'JRST' TBCHR 'S$$MTA##'
	PTVRAR<4>	= TBCHR 'PUSHJ' TBCHR '16,S$$ARB##'
	PTVRAR<5>	= TBCHR 'PUSHJ' TBCHR '16,S$$BAL##'
	PTVRAR<6>	= TBCHR 'PUSHJ' TBCHR '16,S$$SUC##'
	PTVRAR<7>	= TBCHR 'JSP' TBCHR '11,S$$REM##'
* PRIMITIVE PATTERN FUNCTION CODE
	PTFNAR	= ARRAY('13')
	PTFNAR<1>	= TBCHR 'JSP' TBCHR '11,S$$LEN##'
	PTFNAR<2>	= TBCHR 'JSP' TBCHR '11,S$$TAB##'
	PTFNAR<3>	= TBCHR 'JSP' TBCHR '11,S$$RTB##'
	PTFNAR<4>	= TBCHR 'HRRZ' TBCHR '2,@S$$SJC##' CRLCHR
. TBCHR 'SUBI' TBCHR '2,(1)' CRLCHR
. TBCHR 'CAIE' TBCHR '2,(13)' CRLCHR TBCHR 'POPJ' TBCHR '16,'
	PTFNAR<5>	= TBCHR 'CAIE' TBCHR '1,(13)' CRLCHR
. TBCHR 'POPJ' TBCHR '16,'
	PTFNAR<6>	= TBCHR 'JSP' TBCHR '11,S$$SPN##'
	PTFNAR<7>	= TBCHR 'JSP' TBCHR '11,S$$BRK##'
	PTFNAR<8>	= TBCHR 'JSP' TBCHR '11,S$$ANY##'
	PTFNAR<9>	= TBCHR 'JSP' TBCHR '11,S$$NTA##'
	PTFNAR<10>	= TBCHR 'JSP' TBCHR '11,S$$NSP##'
	PTFNAR<11>	= TBCHR 'JSP' TBCHR '11,S$$BRX##'
	PTFNAR<12>	= TBCHR 'JSP' TBCHR '11,S$$BRQ##'
	PTFNAR<13>	= NOD(NOD(NOD(TBCHR 'MOVEI' TBCHR '1,',.P1),CRLCHR
. TBCHR 'JSP' TBCHR '11,S$$RBS##')
. ,NOD(TBCHR 'JSP' TBCHR '11,S$$RBR##' CRLCHR,GOTOAR<4>))
* EXPRESSION CODE
	EXPRAR	= ARRAY('24')
	EXPRAR<1>	= VARBAR<9>
	EXPRAR<2>	= NOD(TBCHR 'JSP' TBCHR '14,S$$CNC##' CRLCHR
. TBCHR 'EXP' TBCHR '^D',.P1)
	EXPRAR<3>	= TBCHR 'TLO' TBCHR '1,1B18' CRLCHR
. TBCHR 'TLZ' TBCHR '1,1B19'
	EXPRAR<4>	= TBCHR 'LSH' TBCHR '1,-2' CRLCHR
. TBCHR 'TLO' TBCHR '1,3B19'
	EXPRAR<5>	= TBCHR 'JSP' TBCHR '14,S$$EXP##'
	EXPRAR<6>	= TBCHR 'POP' TBCHR '16,1'
	EXPRAR<7>	= TBCHR 'JSP' TBCHR '14,S$$MUL##'
	EXPRAR<8>	= TBCHR 'JSP' TBCHR '14,S$$DIV##'
	EXPRAR<9>	= TBCHR 'JSP' TBCHR '14,S$$ADD##'
	EXPRAR<10>	= TBCHR 'JSP' TBCHR '14,S$$SUB##'
	EXPRAR<11>	= VARBAR<11>
	EXPRAR<12>	= MACHAR<5>
	EXPRAR<13>	= MACHAR<9>
	EXPRAR<14>	= TBCHR 'JSP' TBCHR '7,S$$CPS##'
	EXPRAR<15>	= NOD(TBCHR 'JSP' TBCHR '14,S$$NGS##' CRLCHR
. TBCHR 'EXP' TBCHR,.P1)
	EXPRAR<16>	= TBCHR 'JSP' TBCHR '14,S$$NEG##'
	EXPRAR<17>	= NOD(TBCHR 'JRST' TBCHR 'S$$NGF##' CRLCHR,GOTOAR<4>)
	EXPRAR<18>	= TBCHR 'JSP' TBCHR '14,S$$IVV##'
	EXPRAR<19>	= TBCHR 'JSP' TBCHR '14,S$$IVN##'
	EXPRAR<20>	= NOD(.P1,NOD(',',.P2))
	EXPRAR<21>	= NOD(TBCHR 'AREFV$' TBCHR '^D',EXPRAR<20>)
	EXPRAR<22>	= NOD(TBCHR 'FCALV$' TBCHR '^D',EXPRAR<20>)
	EXPRAR<23>	= NOD(TBCHR 'AREFN$' TBCHR '^D',EXPRAR<20>)
	EXPRAR<24>	= NOD(TBCHR 'FCALN$' TBCHR '^D',EXPRAR<20>)
* ARITHMETIC OPERATOR CODE
	AROPAR	= ARRAY('32:35,0:1')
	AROPAR<32,0>	= TBCHR 'IMUL' TBCHR '^D'
	AROPAR<32,1>	= TBCHR 'FMP' TBCHR '^D'
	AROPAR<33,0>	= TBCHR 'IDIV' TBCHR '^D'
	AROPAR<33,1>	= TBCHR 'FDV' TBCHR '^D'
	AROPAR<34,0>	= TBCHR 'ADD' TBCHR '^D'
	AROPAR<34,1>	= TBCHR 'FAD' TBCHR '^D'
	AROPAR<35,0>	= TBCHR 'SUB' TBCHR '^D'
	AROPAR<35,1>	= TBCHR 'FSB' TBCHR '^D'
* ARITHMETIC CODE
	ARITAR	= ARRAY('28')
	ARITAR<1>	= TBCHR 'DICNV$' TBCHR '0'
	ARITAR<2>	= TBCHR 'DRCNV$' TBCHR '0'
	ARITAR<3>	= TBCHR 'PUSH' TBCHR '17,1'
	ARITAR<4>	= TBCHR 'POP' TBCHR '17,1'
	ARITAR<5>	= TBCHR 'POP' TBCHR '17,0'
	ARITAR<6>	= NOD(.P1,'1,0')
	ARITAR<7>	= NOD(.P1,'0,1' CRLCHR 
. TBCHR 'MOVE' TBCHR '1,0')
	ARITAR<8>	= ARITAR<6>
	ARITAR<9>	= ARITAR<7>
	ARITAR<10>	= TBCHR 'JSP' TBCHR '3,S$$RTI##'
	ARITAR<11>	= TBCHR 'JSP' TBCHR '3,S$$ITR##'
	ARITAR<12>	= NOD('^D',.P1)
	ARITAR<13>	= EXPRAR<20>
	ARITAR<14>	= TBCHR 'MOVE' TBCHR '^D'
	ARITAR<15>	= TBCHR 'MOVN' TBCHR '^D'
	ARITAR<16>	= NOD(.P1,.P2)
	ARITAR<17>	= NOD(NOD(TBCHR 'MOVN' TBCHR '^D',.P1)
. ,NOD(',^D',.P1))
	ARITAR<18>	= TBCHR 'PUSHJ' TBCHR '17,EXP1.0##'
	ARITAR<19>	= TBCHR 'PUSHJ' TBCHR '17,EXP2.0##'
	ARITAR<20>	= TBCHR 'PUSHJ' TBCHR '17,EXP3.0##'
	ARITAR<21>	= NOD(TBCHR 'DICNV$' TBCHR '@',.P1)
	ARITAR<22>	= NOD(TBCHR 'DRCNV$' TBCHR '@',.P1)
	ARITAR<23>	= NOD(TBCHR 'SUB' TBCHR '16,S$$STB##' CRLCHR
. TBCHR 'MOVEM' TBCHR '16,S$$STS##' CRLCHR
. TBCHR 'JSA' TBCHR '16,',.P1)
	ARITAR<24>	= NOD(TBCHR 'JUMP' TBCHR,EXPRAR<20>)
	ARITAR<25>	= NOD(.P1,NOD('+^D',.P2))
	ARITAR<26>	= TBCHR 'ADD' TBCHR '16,S$$STB##'
	ARITAR<27>	= TBCHR 'MOVE' TBCHR '1,0'
	ARITAR<28>	= NOD(NOD(NOD(NOD(NOD(
. TBCHR 'IDIVI' TBCHR '^D',.P1),NOD(',400' CRLCHR
. TBCHR 'SKIPE' TBCHR '^D',.P1)),NOD(CRLCHR
. TBCHR 'TLC' TBCHR '^D',.P1)),NOD(NOD(',243000' CRLCHR
. TBCHR 'TLC' TBCHR '^D',.P1),NOD('+1,233000' CRLCHR
. TBCHR 'FAD' TBCHR '^D',.P1))),NOD(NOD(',^D',.P1),'+1'))
*	ARITAR<29>	= NOD('^D',NOD(.P1,'(1000)'))
* END-ACTION CODE
	EACTAR	= ARRAY('32')
	EACTAR<1>	= NOD(.P1,NOD(':' TBCHR 'BLOCK' TBCHR '^D',.P2))
	EACTAR<2>	= NOD(NOD('K',.P1),NOD(':' TBCHR 'EXP' TBCHR '^D',.P2))
	EACTAR<3>	= NOD(NOD('C',.P1),NOD(':' TBCHR 'EXP' TBCHR,.P2))
	EACTAR<4>	= NOD(NOD('I',.P1),NOD(NOD(':' TBCHR 'EXP' TBCHR '^D',.P2),'!1B0'))
	EACTAR<5>	= NOD(NOD('R',.P1),NOD(NOD(':' TBCHR 'EXP' TBCHR,.P2),'B37!3B1'))
	EACTAR<6>	= NOD(NOD('B',.P1),NOD(':' TBCHR 'EXP' TBCHR '^D',.P2))
	EACTAR<7>	= NOD(NOD(TBCHR 'XWD' TBCHR '^D',.P1),NOD(',^D',.P2))
	EACTAR<8>	= NOD(NOD(.P1,':' TBCHR 'BYTE' TBCHR '(4)4(14)0(18)'),NOD(
.NOD(.P2,'+^D'),.P3))
	EACTAR<9>	= NOD(.P1,':' TBCHR 'EXP' TBCHR '0')
	EACTAR<10>	= NOD(NOD(.P1,':' TBCHR 'POINT' TBCHR '7,.+1,35' CRLCHR
. TBCHR 'BYTE' TBCHR '(2)0(16)^D'),NOD(NOD(.P2,'+1(18)0' CRLCHR
. TBCHR 'BLOCK' TBCHR '^D'),.P2))
	EACTAR<11>	= NOD(NOD('N',.P1),NOD(NOD(':' TBCHR 'BYTE' TBCHR 
. '(4)4(2)',.P2),NOD('(12)0(18)',.P3)))
	EACTAR<12>	= TBCHR 'UFERR$' TBCHR '^D8,S$$PGL##'
	EACTAR<13>	= NOD(TBCHR 'JRST' TBCHR,.P1)
	EACTAR<14>	= NOD(NOD('F',.P1),':' TBCHR 'BYTE' TBCHR
. '(4)4(4)0(5)20(5)0(18)S$$UDF##')
	EACTAR<15>	= NOD(NOD(.P1,':' TBCHR 'BYTE' TBCHR
. '(4)4(4)0(5)^D'),NOD(
.NOD(.P2,'(5)0(18)E'),.P3))
	EACTAR<16>	= NOD(NOD(NOD('F',.P1),':' TBCHR 'BYTE' TBCHR
. '(4)4(4)0(5)^D'),
.NOD(NOD(.P2,'(5)0(18)P$$'),NOD(.P3,'##')))
	EACTAR<17>	= NOD(NOD('S',.P1),NOD(':' TBCHR 'POINT'
. TBCHR '7,A',NOD(.P1,',35')))
	EACTAR<18>	= NOD(NOD('A',.P1),NOD(NOD(':' TBCHR
. 'BYTE' TBCHR '(2)2(16)^D',.P2),NOD('+1(18)^D',.P3)))
	EACTAR<19>	= NOD(NOD(TBCHR 'ASCII' TBCHR,.P1),NOD(.P2,.P1))
	EACTAR<20>	= NOD(NOD(.P1,':' TBCHR 'BYTE' TBCHR
. '(2)2(16)^D'),NOD(NOD(.P2,'+1(18)0' CRLCHR
. TBCHR 'REPEAT' TBCHR '^D'),NOD(.P2,',<0>')))
	EACTAR<21>	= NOD(NOD(NOD(NOD(TBCHR 'POINT' TBCHR '7,A',.P1),NOD(',35' CRLCHR
. ,.P2)),NOD(':' TBCHR 'XWD' TBCHR '0,',.P3)),NOD(NOD(NOD(CRLCHR
. TBCHR 'XWD' TBCHR,.P4),NOD(',^D',.P5)),NOD(CRLCHR
. TBCHR 'EXP' TBCHR,.P4)))
	EACTAR<22>	= NOD(NOD(TBCHR 'POINT' TBCHR '7,A',.P1),',35')
	EACTAR<23>	= NOD(NOD(NOD(
. TBCHR 'XWD' TBCHR '^D',.P1),NOD(',',.P2)),NOD(NOD(NOD(CRLCHR
. 'E',.P3),':' TBCHR 'JSP' TBCHR '13,S$$EFI##' CRLCHR
. TBCHR 'POINT' TBCHR '7,A'),NOD(NOD(.P4,',35' CRLCHR
. TBCHR 'EXP' TBCHR),.P5)))
	EACTAR<24>	= NOD(NOD(NOD(.P1,':' TBCHR 'BLOCK' TBCHR '1' CRLCHR
. TBCHR 'JSP' TBCHR '1,S$$FFI##' CRLCHR
. TBCHR 'XWD' TBCHR '^D'),NOD(.P2,',')),NOD(NOD(NOD(.P3,CRLCHR
. TBCHR 'POINT' TBCHR '7,A'),.P4),NOD(',35' CRLCHR
. TBCHR 'EXP' TBCHR,.P5)))
	EACTAR<25>	= NOD(NOD(.P1,':' TBCHR 'BYTE' TBCHR
. '(2)2(16)^D'),NOD(NOD(.P2,'*4+1(18)-^D'),.P2))
	EACTAR<26>	= NOD('S',NOD(.P1,':'))
	EACTAR<27>	= NOD(NOD(NOD(TBCHR 'EXP' TBCHR '0' CRLCHR
. TBCHR 'BYTE' TBCHR '(5)',.P1),NOD('(31)0' CRLCHR
. ,.P2)),NOD(NOD(TBCHR 'POINT' TBCHR '7,A',.P3),NOD(',35' CRLCHR
. ,.P4)))
	EACTAR<28>	= TBCHR 'END'
	EACTAR<29>	= NOD(TBCHR 'END' TBCHR,.P1)
	EACTAR<30>	= 'EXTERN S$$DMP'
	EACTAR<31>	= NOD(NOD(.P1,':' TBCHR),.P2)
	EACTAR<32>	= NOD(NOD(NOD(NOD(TBCHR 'BYTE' TBCHR
. '(7)^D',.P1),NOD(',^D',.P2)),NOD(',^D',.P3)),NOD(NOD(',^D',.P4),NOD(',^D',.P5)))
* PREDEFINED PRIMITIVE CODE
	PRIMAR	= ARRAY('45')
	PRIMAR<1>	= '16APL'
	PRIMAR<2>	= '16ITM'
	PRIMAR<3>	= '0DTE'
	PRIMAR<4>	= '0TIM'
	PRIMAR<5>	= '0DTM'
	PRIMAR<6>	= '0EJC'
	PRIMAR<7>	= '1INT'
	PRIMAR<8>	= '1RAL'
	PRIMAR<9>	= '1SIZ'
	PRIMAR<10>	= '1TRM'
	PRIMAR<11>	= '1DTY'
	PRIMAR<12>	= '1CPY'
	PRIMAR<13>	= '1PRO'
	PRIMAR<14>	= '1COL'
	PRIMAR<15>	= '1XTM'
	PRIMAR<16>	= '1RVS'
	PRIMAR<17>	= '1DTC'
	PRIMAR<18>	= '1RLS'
	PRIMAR<19>	= '1DAT'
	PRIMAR<20>	= '2LGT'
	PRIMAR<21>	= '2CNV'
	PRIMAR<22>	= '2ARR'
	PRIMAR<23>	= '2TBL'
	PRIMAR<24>	= '2DUP'
	PRIMAR<25>	= '2DEF'
	PRIMAR<26>	= '2OPS'
	PRIMAR<27>	= '2OPN'
	PRIMAR<28>	= '2LKF'
	PRIMAR<29>	= '2NTF'
	PRIMAR<30>	= '2DIF'
	PRIMAR<31>	= '2IDT'
	PRIMAR<32>	= '2LTP'
	PRIMAR<33>	= '2LEP'
	PRIMAR<34>	= '2EQP'
	PRIMAR<35>	= '2NEP'
	PRIMAR<36>	= '2GEP'
	PRIMAR<37>	= '2GTP'
	PRIMAR<38>	= '3LPD'
	PRIMAR<39>	= '3RPD'
	PRIMAR<40>	= '3SBS'
	PRIMAR<41>	= '3INP'
	PRIMAR<42>	= '3OUT'
	PRIMAR<43>	= '3CLS'
	PRIMAR<44>	= '3RPL'
	PRIMAR<45>	= '4INS'
*
	:(RETURN)
END