54200 #include "rundecs.h"
54210     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
54220 (**)
54230 PROCEDURE GARBAGE (ANOBJECT: OBJECTP); EXTERN;
54240 PROCEDURE ERRORR(N :INTEGER); EXTERN;
54250 FUNCTION SAFEACCESS(LOCATION: OBJECTP): UNDRESSP; EXTERN;
54260 (**)
54270 (**)
54280 (*-01() (*-05()
54290 FUNCTION TASSTS(DESTINATION: OBJECTP; SOURCE: A68INT): OBJECTP;
54300 (*PASSIGNTT*)
54310   VAR POINT: UNDRESSP;
54320     BEGIN
54330     WITH DESTINATION^.ANCESTOR^ DO
54340         IF FPTWO(PVALUE^) THEN 
54350         POINT := SAFEACCESS(DESTINATION)
54360       ELSE
54370         BEGIN
54380         PVALUE^.OSCOPE := 0;
54390         POINT := INCPTR(PVALUE, DESTINATION^.OFFSET)
54400         END;
54410     POINT^.FIRSTINT := SOURCE;
54420     TASSTS := DESTINATION
54430     END;
54440 (**)
54450 (**)
54460 FUNCTION TASSTS2(DESTINATION: OBJECTP; SOURCE: A68LONG): OBJECTP;
54470 (*PASSIGNTT+1*)
54480   VAR POINT: UNDRESSP;
54490     BEGIN
54500     WITH DESTINATION^.ANCESTOR^ DO
54510         IF FPTWO(PVALUE^) THEN 
54520         POINT := SAFEACCESS(DESTINATION)
54530       ELSE
54540         BEGIN
54550         PVALUE^.OSCOPE := 0;
54560         POINT := INCPTR(PVALUE, DESTINATION^.OFFSET)
54570         END;
54580     POINT^.FIRSTLONG := SOURCE;
54590     TASSTS2 := DESTINATION
54600     END;
54610 ()-05*) ()-01*)
54620 (**)
54630 (**)
54640 (*-01()
54650 FUNCTION TASSTPT(DESTINATION, SOURCE: OBJECTP): OBJECTP;
54660 (*PASSIGNTT+2*)
54670   VAR DESTPTR: OBJECTP;
54680       DESTPTR2: UNDRESSP;
54690     BEGIN
54700     WITH SOURCE^ DO FINC;
54710     IF DESTINATION^.OSCOPE<SOURCE^.OSCOPE THEN ERRORR(RSCOPE);
54720     WITH DESTINATION^ DO
54730       IF SORT=REFN THEN
54740         BEGIN DESTPTR := PVALUE; PVALUE := SOURCE END
54750       ELSE
54760         BEGIN
54770         WITH ANCESTOR^ DO
54780           IF FPTWO(PVALUE^) THEN 
54790             DESTPTR2 := SAFEACCESS(DESTINATION)
54800           ELSE
54810             BEGIN
54820             PVALUE^.OSCOPE := 0;
54830             DESTPTR2 := INCPTR(PVALUE, DESTINATION^.OFFSET)
54840             END;
54850         DESTPTR := DESTPTR2^.FIRSTPTR;
54860         DESTPTR2^.FIRSTPTR := SOURCE
54870         END;
54880     WITH DESTPTR^ DO BEGIN FDEC; IF FTST THEN GARBAGE(DESTPTR) END;
54890     TASSTPT := DESTINATION
54900     END;
54910 (**)
54920 (**)
54930 ()-01*)
54940 (*-02()
54950   BEGIN
54960   END;
54970 ()-02*)
54980 (*+01()
54990 BEGIN (*OF MAIN PROGRAM*)
55000 END  (*OF EVERYTHING*).
55010 ()+01*)
