perm filename EROOT.2[EAL,HE]2 blob
sn#704712 filedate 1983-03-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 {$NOMAIN Main program part of the Editor routines }
C00004 00003 { External routines which we help to call: }
C00006 00004 { Level 1, the lowest level cotree }
C00007 00005 { Level 2. These are oft-used auxilliary routines. }
C00009 00006 { Level 3. These are all the routines called by Edit, editStmnt, }
C00012 00007 { Level 4, the highest level. This is Edit, editStmnt and addStmnt. }
C00013 ENDMK
C⊗;
{$NOMAIN Main program part of the Editor routines }
{ This module doesn't really contain any code (yet) but is just used }
{ to contain the inter-overlay calling routines for those overlays }
{ which need to call overlays in the same cotree. }
{ Note that all the pointer types are faked; this doesn't make any }
{ difference since they all take up the same space. }
type
byte = 0..255; (* doesn't really belong here, but... *)
ascii = char;
scalar = real;
{ Define all the pointer types here }
vectorp = ↑integer;
transp = ↑integer;
statementp = ↑integer;
nodep = ↑integer;
pdbp = ↑integer;
{ External routines which we help to call: }
(* From ARITH2 *)
function taxis (t: transp): vectorp; external;
function tmagn (t: transp): scalar; external;
(* From EPUTST *)
procedure putstmnt(s: statementp; indent, plevel: integer); external;
(* From IFLUSH *)
procedure flushLevel(dLev: integer); external;
procedure flushKids(p: pdbp; zapit: boolean); external;
procedure unwind(p: pdbp; eLev: integer); external;
(* From EEXPAR *)
function exprParse: nodep; external;
(* From EPAR3D *)
procedure reParse(st: statementp); external;
(* Routines used to call in overlays *)
procedure ePutGet; external;
procedure eAux2cGet; external;
procedure ePs1Get; external;
procedure ePs2Get; external;
procedure ePs3Get; external;
procedure ePar3aGet; external;
procedure ePar3bGet; external;
procedure ePar3cGet; external;
procedure ePar3dGet; external;
procedure ePar3eGet; external;
procedure ePar3fGet; external;
procedure eDbgGet; external;
{ Level 1, the lowest level cotree }
function eptaxis (t: transp): vectorp; external;
function eptaxis ;
begin eptaxis := taxis(t); ePutGet; end;
function eptmagn (t: transp): scalar; external;
function eptmagn ;
begin eptmagn := tmagn(t); ePutGet; end;
{ Level 2. These are oft-used auxilliary routines. }
procedure e2cputstmnt(s: statementp; indent, plevel: integer); external;
procedure e2cputstmnt;
begin putStmnt(s,indent,plevel); eAux2cGet; end;
procedure ep1putstmnt(s: statementp; indent, plevel: integer); external;
procedure ep1putstmnt;
begin putStmnt(s,indent,plevel); ePs1Get; end;
procedure ep2putstmnt(s: statementp; indent, plevel: integer); external;
procedure ep2putstmnt;
begin putStmnt(s,indent,plevel); ePs2Get; end;
procedure ep3putstmnt(s: statementp; indent, plevel: integer); external;
procedure ep3putstmnt;
begin putStmnt(s,indent,plevel); ePs3Get; end;
{ Level 3. These are all the routines called by Edit, editStmnt, }
{ and addStmnt. }
function e3aExprParse: nodep; external;
function e3aExprParse;
begin e3aExprParse := exprParse; ePar3aGet; end;
function e3bExprParse: nodep; external;
function e3bExprParse;
begin e3bExprParse := exprParse; ePar3bGet; end;
function e3cExprParse: nodep; external;
function e3cExprParse;
begin e3cExprParse := exprParse; ePar3cGet; end;
procedure e3cReParse(st: statementp); external;
procedure e3cReParse;
begin reParse(st); ePar3cGet end;
function e3dExprParse: nodep; external;
function e3dExprParse;
begin e3dExprParse := exprParse; ePar3dGet; end;
function e3eExprParse: nodep; external;
function e3eExprParse;
begin e3eExprParse := exprParse; ePar3eGet; end;
function e3fExprParse: nodep; external;
function e3fExprParse;
begin e3fExprParse := exprParse; ePar3fGet; end;
procedure edbFlLevel(dLev: integer); external; (* These should really be in CALLER *)
procedure edbFlLevel;
begin flushLevel(dLev); eDbgGet end;
procedure edbFlKids(p: pdbp; zapit: boolean); external;
procedure edbFlKids;
begin flushKids(p,zapit); eDbgGet end;
procedure edbUnwind(p: pdbp; eLev: integer); external;
procedure edbUnwind;
begin unwind(p,eLev); eDbgGet end;
{ Level 4, the highest level. This is Edit, editStmnt and addStmnt. }
{ (not much here...) }