38900 #include "rundecs.h" 38910 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *) 38920 (**) 38930 PROCEDURE GARBAGE (ANOBJECT: OBJECTP); EXTERN; 38940 PROCEDURE ERRORR(N :INTEGER); EXTERN; 38950 PROCEDURE TESTCC(TARGET: OBJECTP); EXTERN ; 38960 PROCEDURE TESTSS (REFSTRUCT: OBJECTP); EXTERN ; 38970 (**) 38980 (**) 38990 PROCEDURE NASSTCMN(ANOBJECT: OBJECTP); 39000 BEGIN 39010 WITH ANOBJECT^ DO 39020 CASE ANCESTOR^.SORT OF 39030 REFR, RECR: 39040 TESTCC(ANOBJECT); 39050 RECN, REFN: 39060 TESTSS(ANCESTOR); 39070 UNDEF: 39080 ERRORR(RSEL); 39090 NILL: 39100 ERRORR(RSELNIL) 39110 END 39120 END; 39130 (**) 39140 (**) 39150 (*-01() (*-05() 39160 FUNCTION NASSTS(TEMP: NAKEGER; SOURCE: A68INT): ASNAKED; 39170 (*PASSIGNNT*) 39180 VAR DEST: UNDRESSP; 39190 BEGIN 39200 WITH TEMP.NAK, STOWEDVAL^.ANCESTOR^ DO 39210 BEGIN 39220 IF FPTWO(PVALUE^) THEN 39230 NASSTCMN(STOWEDVAL); 39240 PVALUE^.OSCOPE := 0; 39250 DEST := INCPTR(PVALUE, POSITION) 39260 END; 39270 DEST^.FIRSTINT := SOURCE; 39280 NASSTS := TEMP.ASNAK; 39290 END; 39300 (**) 39310 (**) 39320 FUNCTION NASSTS2(TEMP: NAKEGER; SOURCE: A68LONG): ASNAKED; 39330 (*PASSIGNNT+1*) 39340 VAR DEST: UNDRESSP; 39350 BEGIN 39360 WITH TEMP.NAK, STOWEDVAL^.ANCESTOR^ DO 39370 BEGIN 39380 IF FPTWO(PVALUE^) THEN 39390 NASSTCMN(STOWEDVAL); 39400 PVALUE^.OSCOPE := 0; 39410 DEST := INCPTR(PVALUE, POSITION) 39420 END; 39430 DEST^.FIRSTLONG := SOURCE; 39440 NASSTS2 := TEMP.ASNAK; 39450 END; 39460 ()-05*) ()-01*) 39470 (**) 39480 (**) 39490 FUNCTION NASSTPT(TEMP: NAKEGER; SOURCE: OBJECTP): ASNAKED; 39500 (*+01() EXTERN ; ()+01*) 39510 (*-01() 39520 (*PASSIGNNT+2*) 39530 VAR DEST: UNDRESSP; 39540 BEGIN 39550 WITH TEMP.NAK, STOWEDVAL^.ANCESTOR^ DO 39560 BEGIN 39570 IF FPTWO(PVALUE^) THEN 39580 NASSTCMN(STOWEDVAL); 39590 PVALUE^.OSCOPE := 0; 39600 DEST := INCPTR(PVALUE, POSITION) 39610 END; 39620 WITH DEST^ DO 39630 BEGIN 39640 FPINC(SOURCE^); 39650 FPDEC(FIRSTPTR^); IF FPTST(FIRSTPTR^) THEN GARBAGE(FIRSTPTR); 39660 FIRSTPTR := SOURCE; 39670 END; 39680 NASSTPT := TEMP.ASNAK; 39690 END; 39700 ()-01*) 39710 FUNCTION SCPNTPT(TEMP: NAKEGER; SOURCE: OBJECTP): ASNAKED; 39720 (*PSCOPENT+2*) 39730 BEGIN 39740 WITH SOURCE^ DO 39750 BEGIN 39760 IF TEMP.NAK.STOWEDVAL^.OSCOPE