DEF s: <SCRATCH>
DEF DSK: DSK:,SYS:
DEF SYS: DSK:,SYS:
pas:PASCMP
OFF SYSLISP$
OFF MSG$
OFF NOUUO$
OFF DOMOVE$             % Can't have BOTH DOMOVE and FXFRM
OFF NOFIXFRM;		% Reduce ALLOCS
ON MACECHO$		%OFF Cuts down size of output file.

% passer fixups

REMPROP('W,'STAT);
REMPROP('PLIST,'STAT);
PUT(QUOTE SETQ,QUOTE UNARY,QUOTE SETQ)$	% Permit FEXPR definitions
PUT(QUOTE AND,QUOTE UNARY,QUOTE AND)$
PUT(QUOTE OR,QUOTE UNARY,QUOTE OR)$

IN PAS2.SYM$
% Perhaps the following lines should really be in POLY.RED, but they
% don't work correctly inside body of text being compiled.
PUT('CAR,'ANYREG,'T)$
PUT('CDR,'ANYREG,'T)$
PUT('VALUE,'OPENCOD,'("        R[1] := idspace[info_of(R[1])].val;"));
PUT('PLIST,'OPENCOD,'("        R[1] := idspace[Info_of(r[1])].plist;"));
PUT('FUNCELL,'OPENCOD,'("        R[1] := idspace[Info_of(r[1])].funcell;"));
PUT('SETVALUE,'OPENCOD,'("       idspace[Info_of(r[1])].val := R[2];"));
PUT('SETPLIST,'OPENCOD,'("        idspace[Info_of(r[1])].plist := R[2];"));
PUT('SETFUNCELL,'OPENCOD,'("        idspace[Info_of(r[1])].funcell := R[2];"));
PUT('CHAR2ID,'OPENCOD,'("     set_tag(R[1], idtag);"));
PUT('CODEP, 'OPENCOD, '("     tag_of(r[1]) = codetag;"));

OUT PAS3.PAS$
DRT1('PAS3,PAS2IDS,PAS2CSTS,PAS2LITS,PAS2FNS)$
IN PAS3.RED$
DRT2()$
SHUT PAS3.PAS$

OUT PAS3.SYM$
DUMPSYMS('PAS3)$
SHUT PAS3.SYM$

OUT PAS3.SLI$
DRT3()$
SHUT PAS3.SLI$

OUT EXEC.PAS$
DMPFLST()$		% Construct EXECUTE table
SHUT EXEC.PAS$

OUT PAS3.INI$
DUMPINI()$
SHUT PAS3.INI$
QUIT$

