83 lines
2.5 KiB
OpenEdge ABL
83 lines
2.5 KiB
OpenEdge ABL
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*)
|