perm filename EADD2.2[EAL,HE]2 blob
sn#704729 filedate 1983-04-04 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 {$NOMAIN Editor: aux routines for addStmnt }
C00005 00003 procedure addst2 (nextLinep: cursorpp sp: statementp) external
C00009 ENDMK
C⊗;
{$NOMAIN Editor: aux routines for addStmnt }
%include eedit.hdr;
{ Externally defined routines from elsewhere: }
(* XX From EEXTRA XX *)
procedure setUpNewStmnt(sp: statementp; ind: integer); external;
procedure waitParse(sp: statementp); external;
procedure wristParse(sp: statementp); external;
procedure armmagicParse(sp: statementp); external;
(* From EAUX1B *)
function checkArg(n: nodep; d: datatypes): nodep; external;
(* From EAUX1C *)
procedure errPrnt; external;
function evalOrder(what,last: nodep; pcons: boolean): nodep; external;
procedure relExpr(n: nodep); external;
(* From ETOKEN *)
procedure dimCheck(n,d: nodep); external;
(* From EPUTST *)
procedure putstmnt(s: statementp; indent, plevel: integer); external;
(* From EEXPAR *)
function exprParse: nodep; external;
procedure getArgs(opn: nodep); external;
(* From EPAR3A *)
procedure forParse(st: statementp); external;
procedure affixParse(st: statementp); external;
procedure assignParse(st: statementp); external;
procedure unfixParse(st: statementp); external;
procedure enableParse(st: statementp); external;
(* From EPAR3F *)
procedure moveParse(st: statementp; bp: boolean); external;
procedure stopParse(st: statementp); external;
(* From PP *)
procedure ppLine; external;
procedure ppOutNow; external;
procedure ppChar(ch: ascii); external;
procedure pp5(ch: c5str; length: integer); external;
procedure pp10(ch: cstring; length: integer); external;
procedure pp10L(ch: cstring; length: integer); external;
procedure pp20(ch: c20str; length: integer); external;
procedure pp20L(ch: c20str; length: integer); external;
procedure addst2 (nextLinep: cursorpp; sp: statementp); external;
procedure addst2 ;
var b: boolean;
begin
with curToken, sp↑ do
case stmnt of
pausetype: begin
ptime := checkArg(exprParse,svaltype);
dimCheck(ptime,timedim↑.dim); (* right dimension? *)
exprs := evalOrder(ptime,nil,true);
end;
printtype,
prompttype,
aborttype,
saytype: begin
pnode↑.arg2 := nil;
getArgs(pnode); (* pretend we just saw a queryop *)
plist := pnode↑.arg2; (* store away pointer to print list *)
if plist <> nil then
begin
exprs := evalOrder(plist,nil,false);
setUpNewStmnt(sp,nextLinep↑.ind);
end;
debugLev := 0; (* for abort *)
end;
assigntype: begin (* shouldn't get here *)
backUp := true;
assignParse(sp);
end;
signaltype,
waittype: waitParse(sp);
enabletype,
disabletype: begin
enableParse(sp);
end;
affixtype: begin
fieldNum := 1;
affixParse(sp);
setUpNewStmnt(sp,nextLinep↑.ind);
end;
unfixtype: begin
unfixParse(sp);
end;
movetype,
opentype,
closetype,
centertype,
floattype,
operatetype: begin
clauses := nil;
moveParse(sp,true);
end;
setbasetype,
stoptype: begin
stopParse(sp);
end;
retrytype: begin
(* *** need to check in the body of an error handler *** *)
(* *** also need to set .olevel *** *)
end;
wristtype: begin
wristParse(sp);
end;
armmagictype: begin
armmagicParse(sp);
end;
(* *** for now we're ignoring: requiretype, definetype & dimdeftype *** *)
otherwise {do nothing};
end;
end;