76 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			76 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*)
 |