-- file PGS1.Mesa -- last modified by Satterthwaite, July 14, 1980 2:52 PM DIRECTORY ParseTable: FROM "PGSParseTable" USING [ ActionEntry, Handle, Production, ProductionInfo, Symbol, TSymbol]; PGS1: DEFINITIONS = BEGIN OPEN ParseTable; Token: TYPE = RECORD [ class: TSymbol, -- the token class value: UNSPECIFIED, index: CARDINAL]; -- source line index -- implemented by PGSControl Atom: PROC RETURNS [Token]; ResetScanIndex: PROC [CARDINAL]; ScanInit: PROC [ParseTable.Handle]; ScanReset: PROC [pErrors:CARDINAL] RETURNS [nTokens, nErrors: CARDINAL]; AssignDescriptors: PROC [ qd: DESCRIPTOR FOR ARRAY OF ActionEntry, vd: DESCRIPTOR FOR ARRAY OF UNSPECIFIED, ld: DESCRIPTOR FOR ARRAY OF CARDINAL, pp: POINTER TO ARRAY Production OF ProductionInfo]; ProcessQueue: PROC [qI, top: CARDINAL]; TokenValue: PROC [TSymbol] RETURNS [UNSPECIFIED]; -- implemented by PGSparse Parse: PROC [ParseTable.Handle] RETURNS [complete: BOOLEAN, nTokens, nErrors: CARDINAL]; ParserID: PROC RETURNS [STRING]; InputLoc: PROC RETURNS [CARDINAL]; -- implemented by PGScon outeol: PROC [n:CARDINAL]; outchar: PROC [c:CHARACTER, n:INTEGER]; outstring: PROC [string:STRING]; outtab: PROC; outnum: PROC[val:INTEGER, cols:CARDINAL]; resetoutstream: PROC; ErrorContext: PROC [STRING,CARDINAL]; locateindex: PROC [index:CARDINAL] RETURNS [CARDINAL]; AllocateSegment: PROC [nwords:CARDINAL] RETURNS [POINTER]; FreeSegment: PROC[base:POINTER]; AllocateHeapNode: PROC [nwords:CARDINAL] RETURNS [POINTER]; FreeHeapNode: PROC [base:POINTER]; -- the global frames Scanner, Parser: PROGRAM; END.