<> <> DIRECTORY IO USING[STREAM, TokenKind], OneCasabaParser USING[ParserTable], Rope USING[ROPE]; ThreeC4Support: CEDAR DEFINITIONS = BEGIN SeeProdLinkArray: TYPE = REF SeeProdLinkArrayBody; SeeProdLinkArrayBody: TYPE = RECORD[links: SEQUENCE nProds: CARDINAL OF PROC[nodes: LIST OF REF ANY, position: INT, length: INT] RETURNS[LIST OF REF ANY]]; TokenLinkArray: TYPE = REF TokenLinkArrayBody; TokenLinkArrayBody: TYPE = ARRAY IO.TokenKind OF PROC[text: Rope.ROPE, firstCharPosition: INT] RETURNS[REF ANY]; ParseOneStream: PROC[from: IO.STREAM, table: OneCasabaParser.ParserTable, setUpLinks: PROC[SeeProdLinkArray, TokenLinkArray], nProductions: INT, debugFlags: CARDINAL, debuggingTextTo: IO.STREAM] RETURNS[REF ANY]; -- debug control flags ShowParseSteps: CARDINAL = 1; ShowFunctionGraphs: CARDINAL = 2; -- these signals are used for error reporting GetSourceInfo: SIGNAL RETURNS[sourcePosition, sourceLength: INT]; GetReportStream: SIGNAL RETURNS[IO.STREAM]; END..