77 lines
2.2 KiB
OpenEdge ABL
77 lines
2.2 KiB
OpenEdge ABL
|
36400 #include "rundecs.h"
|
||
|
36410 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *)
|
||
|
36420 (**)
|
||
|
36430 (**)
|
||
|
36440 FUNCTION CRSTRUCT(TEMPLATE: DPOINT): OBJECTP; EXTERN;
|
||
|
36450 (**)
|
||
|
36460 (**)
|
||
|
36470 FUNCTION HEAPSTR(TEMPLATE: DPOINT): OBJECTP;
|
||
|
36480 (*PLEAPGEN+1*)
|
||
|
36490 VAR NEWREF: OBJECTP;
|
||
|
36500 BEGIN
|
||
|
36510 IF ORD(TEMPLATE)=SZINT THEN
|
||
|
36520 BEGIN
|
||
|
36530 ENEW(NEWREF, REF1SIZE);
|
||
|
36540 WITH NEWREF^ DO BEGIN
|
||
|
36550 (*-02() FIRSTWORD := SORTSHIFT * ORD(REF1); ()-02*)
|
||
|
36560 (*+02() PCOUNT:=0; SORT:=REF1; ()+02*)
|
||
|
36570 (*+01() SECONDWORD := 0; ()+01*)
|
||
|
36580 ANCESTOR := NEWREF;
|
||
|
36590 PVALUE := HIGHPCOUNT;
|
||
|
36600 OFFSET := REF1SIZE-SZINT;
|
||
|
36610 VALUE := INTUNDEF
|
||
|
36620 END
|
||
|
36630 END
|
||
|
36640 (*-01()
|
||
|
36650 ELSE IF ORD(TEMPLATE)=SZLONG THEN
|
||
|
36660 BEGIN
|
||
|
36670 ENEW(NEWREF, REF2SIZE);
|
||
|
36680 WITH NEWREF^ DO BEGIN
|
||
|
36690 (*-02() FIRSTWORD := SORTSHIFT * ORD(REF2); ()-02*)
|
||
|
36700 (*+02() PCOUNT:=0; SORT:=REF2; ()+02*)
|
||
|
36710 ANCESTOR := NEWREF;
|
||
|
36720 PVALUE := HIGHPCOUNT;
|
||
|
36730 OFFSET := REF2SIZE-SZINT;
|
||
|
36740 LONGVALUE := LONGUNDEF
|
||
|
36750 END
|
||
|
36760 END
|
||
|
36770 ()-01*)
|
||
|
36780 ELSE
|
||
|
36790 BEGIN
|
||
|
36800 ENEW(NEWREF, REFNSIZE);
|
||
|
36810 WITH NEWREF^ DO
|
||
|
36820 BEGIN
|
||
|
36830 (*-02() FIRSTWORD := SORTSHIFT * ORD(REFN); ()-02*)
|
||
|
36840 (*+02() PCOUNT:=0; SORT:=REFN; ()+02*)
|
||
|
36850 (*+01() SECONDWORD := 0; ()+01*)
|
||
|
36860 IF ORD(TEMPLATE)=0 THEN PVALUE := UNDEFIN
|
||
|
36870 ELSE
|
||
|
36880 BEGIN
|
||
|
36890 PVALUE := CRSTRUCT(TEMPLATE);
|
||
|
36900 FPINC(PVALUE^);
|
||
|
36910 ANCESTOR := NEWREF;
|
||
|
36920 OFFSET := STRUCTCONST;
|
||
|
36930 END;
|
||
|
36940 END
|
||
|
36950 END;
|
||
|
36960 NEWREF^.OSCOPE := 3;
|
||
|
36970 HEAPSTR := NEWREF;
|
||
|
36980 END;
|
||
|
36990 (**)
|
||
|
37000 (**)
|
||
|
37010 FUNCTION GENSTR(TEMPLATE: DPOINT; LOCRG: DEPTHRANGE): OBJECTP;
|
||
|
37020 (*PLEAPGEN*)
|
||
|
37030 VAR NEWREF: OBJECTP;
|
||
|
37040 BEGIN
|
||
|
37050 NEWREF := HEAPSTR(TEMPLATE);
|
||
|
37060 NEWREF^.OSCOPE := SCOPE+LOCRG;
|
||
|
37070 GENSTR := NEWREF;
|
||
|
37080 END;
|
||
|
37090 (**)
|
||
|
37100 (**)
|
||
|
37110 (*-02() BEGIN END ; ()-02*)
|
||
|
37120 (*+01()
|
||
|
37130 BEGIN (*OF MAIN PROGRAM*)
|
||
|
37140 END (*OF EVERYTHING*).
|
||
|
37150 ()+01*)
|