DIRECTORY
IO,
ConcreteSyntaxDef,
OneCasabaParser,
FS,
SiroccoParserDef USING[],
ThreeC4Support,
WartDef;
SiroccoParserImpl: CEDAR PROGRAM IMPORTS IO, ConcreteSyntaxDef, OneCasabaParser, FS, ThreeC4Support, WartDef EXPORTS SiroccoParserDef=
BEGIN
OPEN IO, ConcreteSyntaxDef, OneCasabaParser, FS, ThreeC4Support, WartDef;
ParseTable: OneCasabaParser.ParserTable ← NIL;
ParseOneStream: PUBLIC PROC[from: IO.STREAM, debugFlags: CARDINAL, debuggingTextTo: IO.STREAM] RETURNS[REF ANY] =
BEGIN
RETURN[ThreeC4Support.ParseOneStream[from, ParseTable, SetUpLinks, 84, debugFlags, debuggingTextTo]]
END;
SetUpLinks: PROC[prodLinkArray: SeeProdLinkArray, tknLinkArray: TokenLinkArray] =
BEGIN
WartLinkProc[prodLinkArray, tknLinkArray];
ConcreteSyntaxLinkProc[prodLinkArray, tknLinkArray];
END;
obtain parser table
BEGIN
tableStream: IO.STREAM ← FS.StreamOpen["SiroccoParser.kipperedParseTables"];
ParseTable ← OneCasabaParser.BuildParserTableFromKipperedStream[tableStream];
IO.Close[tableStream];
END;
END..