perm filename RECAUX.HDR[NEW,AIL] blob sn#408221 filedate 1979-01-08 generic text, type T, neo UTF8
DEFINE RCLASS "<>" =<RECORD!CLASS>;
DEFINE RPTR "<>" = <RECORD!POINTER>;
DEFINE RANY "<>" = <RECORD!POINTER(ANY!CLASS)>;
DEFINE RNULL "<>" = <NULL!RECORD>;

REQUIRE "SYS:RECORD.DEF" SOURCE!FILE;

EXTERNAL INTEGER PROCEDURE RECLEN(RPTR(ANY!CLASS) R);
EXTERNAL INTEGER PROCEDURE RECTYPE(RPTR(ANY!CLASS) R);
EXTERNAL RPTR($CLASS) SIMPLE PROCEDURE $RECTYPE(RPTR(ANY!CLASS) R);
EXTERNAL INTEGER PROCEDURE FLDTYPE(RPTR(ANY!CLASS) R;INTEGER IX);
EXTERNAL STRING SIMPLE PROCEDURE CVRCS(RPTR($CLASS) RC);
EXTERNAL STRING SIMPLE PROCEDURE CVRTS(INTEGER RT);
EXTERNAL INTEGER PROCEDURE FLDREF(RPTR(ANY!CLASS) R;STRING ID);
EXTERNAL RPTR(ANY!CLASS) PROCEDURE BLDNRC(INTEGER RT);
EXTERNAL RPTR(ANY!CLASS) PROCEDURE CHKREC(RPTR(ANY!CLASS)R;INTEGER T);
EXTERNAL RPTR($CLASS) PROCEDURE CLSFND(STRING ID);
EXTERNAL RPTR(ANY!CLASS) PROCEDURE CPYREC(RPTR(ANY!CLASS) R1,R2(NULL!RECORD));

EXTERNAL RECORD!CLASS CELL(RECORD!POINTER(ANY!CLASS) CAR,CDR);
EXTERNAL RECORD!CLASS RLIST(INTEGER LEN;RPTR(CELL) FIRST,LAST);
EXTERNAL RPTR(CELL) PROCEDURE CONS(RPTR(ANY!CLASS) A,D);
EXTERNAL RPTR(CELL) PROCEDURE APPEND(RPTR(CELL) L1, L2);
EXTERNAL RPTR(CELL) PROCEDURE LIST2(RPTR(ANY!CLASS) C1,C2);
EXTERNAL RPTR(ANY!CLASS) RECURSIVE PROCEDURE SECOPY(RPTR(ANY!CLASS) C);
EXTERNAL BOOLEAN PROCEDURE IN!CL(RPTR(ANY!CLASS) C;RPTR(CELL) L);
EXTERNAL RPTR(ANY!CLASS) PROCEDURE LLOP(REFERENCE RPTR(CELL) C);
EXTERNAL RPTR(CELL) PROCEDURE CL!LEN(RPTR(CELL) C);
EXTERNAL RPTR(ANY!CLASS) PROCEDURE CONSON(RPTR(ANY!CLASS) X;REFERENCE RPTR(CELL) C);

EXTERNAL PROCEDURE RLADD(RPTR(RLIST) RL;RPTR(ANY!CLASS) REC;INTEGER N);
EXTERNAL INTEGER PROCEDURE RLREM(RPTR(RLIST) RL;RPTR(ANY!CLASS) REC;
							INTEGER HOWMANY(1));
EXTERNAL RPTR(ANY!CLASS) PROCEDURE RLNREM(RPTR(RLIST) RL;INTEGER N);
EXTERNAL INTEGER PROCEDURE RLINX(RPTR(RLIST) RL;RPTR(ANY!CLASS) REC);
EXTERNAL RPTR(ANY!CLASS) PROCEDURE RLNTH(RPTR(RLIST) RL;INTEGER N);
EXTERNAL RPTR(RLIST) PROCEDURE RLCOPY(RPTR(RLIST) RL,RL2(NULL!RECORD));
EXTERNAL MATCHING RECURSIVE PROCEDURE
		MAPRLIST(RPTR(RLIST) RL;REFERENCE RPTR(ANY!CLASS) R);

REQUIRE "RECAUX.REL" LOAD!MODULE;