perm filename PINIT.2[EAL,HE] blob
sn#674771 filedate 1982-09-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 {$NOMAIN Parser Initialization routine }
C00003 00003 (* parser initialization routine: initParser *)
C00006 ENDMK
C⊗;
{$NOMAIN Parser Initialization routine }
%include palhdr.pas;
{ Externally defined routines from elsewhere: }
(* From ALLOC *)
function newNode: nodep; external;
function newToken: tokenp; external;
function newIdent: identp; external;
function newStrng: strngp; external;
function newVaridef: varidefp; external;
(* From PAUX1 *)
function hash(ch: ascii): integer; external;
(* From PINIT1 *)
procedure initReswords; external;
(* From PINIT2 *)
procedure init1Idents; external;
(* From PINIT3 *)
procedure init2Idents; external;
(* parser initialization routine: initParser *)
procedure initParser; external;
procedure initParser;
var i: integer;
begin
macrodepth := 0;
expandmacros := true;
filedepth := 0; (* use tty for input *)
curchar := 1;
maxchar := -1;
curline := 0;
curpage := 1;
sysVars := nil;
unVars := nil;
eofError := false;
backup := false;
curToken.next := nil;
curBlock := nil;
outerBlock := nil;
curVariable := nil;
curProc := nil;
curMotion := nil;
curCmon := nil;
curErrhandler := nil;
newDeclarations := nil;
flushcomments := true;
inCoblock := false;
endOk := 0;
coendOk := 0;
dimCheck := true;
initReswords;
init1Idents; (* This is split into 2 parts *)
init2Idents;
pnode := newNode;
with pnode↑ do
begin (* used to get print lists for print, prompt & abort statements *)
ntype := exprnode;
op := queryop;
end;
end;