More files.
[pdp10-muddle.git] / <mdl.comp> / cleanac.mud.2
1 <PACKAGE "NEWREP">
2
3 <ENTRY PROG-REP-GEN RETURN-GEN AGAIN-GEN TAG-GEN GO-GEN CLEANUP-STATE
4        AGAIN-UP RETURN-UP PROG-START-AC>
5
6 <USE "CODGEN" "COMCOD" "CACS" "CHKDCL" "COMPDEC" "CUP">
7
8 <DEFINE CLEAN-AC (AC "AUX" ACRES INAC OAC) 
9    #DECL ((AC) AC (INAC) DATUM)
10    <COND
11     (<SET ACRES <ACRESIDUE .AC>>
12      <PUT .AC ,ACRESIDUE <>>
13      <MAPF <>
14       <FUNCTION (SYM) 
15          <COND
16           (<TYPE? .SYM SYMTAB>
17            <MAPF <>
18                  <FUNCTION (SYMT) 
19                          <COND (<N==? .SYMT .SYM>
20                                 <COND (<OR <NOT <TYPE? .SYMT SYMTAB>>
21                                            <STORED .SYMT>>
22                                        <SMASH-INACS .SYMT <>>)
23                                       (ELSE <STOREV .SYMT T>)>)>>
24                  .ACRES>
25            <COND
26             (<AND <SET INAC <INACS .SYM>>
27                   <OR <AND <==? <DATTYP .INAC> .AC>
28                            <TYPE? <SET OAC <DATVAL .INAC>> AC>>
29                       <AND <==? <DATVAL .INAC> .AC>
30                            <TYPE? <SET OAC <DATTYP .INAC>> AC>>>>
31              <MAPF <>
32                    <FUNCTION (SYMT) 
33                            <COND (<N==? .SYMT .SYM>
34                                   <COND (<OR <NOT <TYPE? .SYMT SYMTAB>>
35                                              <STORED .SYMT>>
36                                          <SMASH-INACS .SYMT <>>)
37                                         (ELSE <STOREV .SYMT T>)>)>>
38                    <ACRESIDUE .OAC>>
39              <PUT .OAC ,ACRESIDUE (.SYM)>)>
40            <PUT .AC ,ACRESIDUE (.SYM)>
41            <MAPLEAVE <1 <ACRESIDUE .AC>>>)
42           (ELSE <SMASH-INACS .SYM <>> <>)>>
43       .ACRES>)>>
44
45 <ENDPACKAGE>