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;