perm filename PROOT.2[EAL,HE] blob
sn#674770 filedate 1982-09-27 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 {$NOMAIN "Root" part of the parser }
C00008 00003 (* Routines to take care of inter-overlay calling *)
C00015 ENDMK
Cā;
{$NOMAIN "Root" part of the parser }
{ This contains routines necessary for inter-overlay calls }
{ for routines inside PARSE. For example, when POV1 calls PEXPR. }
%include palhdr.pas;
{ Externally defined routines from elsewhere: }
(* From PEXPR *)
function exprParse: nodep; external;
procedure getargs(opn: nodep); external;
(* From PCLAUS *)
function thencode(evp: boolean): statementp; external;
function clauseParse(absSeen: boolean): nodep; external;
(* From PCMON *)
function cmonParse(st: statementp; deferred: boolean): boolean; external;
(* From PMAIN *)
function stmntParse: statementp; external;
(* Routines used only to call in overlays *)
procedure pBlGet; external;
procedure pOv1Get; external;
procedure pOv2Get; external;
procedure pOv3Get; external;
procedure pClauseGet; external;
procedure pCmonGet; external;
procedure pMoveGet; external;
(* Routines to take care of inter-overlay calling *)
function blStmntParse: statementp; external;
function blStmntParse;
begin
blStmntParse := stmntParse; { Call the parser; may swap out PBLOCK }
pBlGet; { Make sure PBLOCK is there to return to }
end;
function clStmntParse: statementp; external;
function clStmntParse;
begin clStmntParse := stmntParse; pClauseGet; end;
function cmStmntParse: statementp; external;
function cmStmntParse;
begin cmStmntParse := stmntParse; pCmonGet; end;
function ov1StmntParse: statementp; external;
function ov1StmntParse;
begin ov1StmntParse := stmntParse; pov1Get; end;
function blExprParse: nodep; external;
function blExprParse;
begin blExprParse := exprParse; pBlGet; end;
function clExprParse: nodep; external;
function clExprParse;
begin clExprParse := exprParse; pClauseGet; end;
function cmExprParse: nodep; external;
function cmExprParse;
begin cmExprParse := exprParse; pCmonGet; end;
function mvExprParse: nodep; external;
function mvExprParse;
begin mvExprParse := exprParse; pMoveGet; end;
function ov1ExprParse: nodep; external;
function ov1ExprParse;
begin ov1ExprParse := exprParse; pov1Get; end;
function ov2ExprParse: nodep; external;
function ov2ExprParse;
begin ov2ExprParse := exprParse; pov2Get; end;
procedure ov2GetArgs(opn: nodep); external;
procedure ov2GetArgs;
begin getArgs(opn); pov2Get end;
function ov3ExprParse: nodep; external;
function ov3ExprParse;
begin ov3ExprParse := exprParse; pov3Get; end;
function cmClauseParse(absSeen: boolean): nodep; external;
function cmClauseParse;
begin cmClauseParse := clauseParse(absSeen); pCmonGet; end;
function mvThencode(evp: boolean): statementp; external;
function mvThencode;
begin mvThencode := thencode(evp); pMoveGet; end;
function mvClauseParse(absSeen: boolean): nodep; external;
function mvClauseParse;
begin mvClauseParse := clauseParse(absSeen); pMoveGet; end;
function mvCmonParse(st: statementp; deferred: boolean): boolean; external;
function mvCmonParse;
begin mvCmonParse := cmonParse(st,deferred); pMoveGet; end;