<<>> <> <> <> DIRECTORY IntToIntTab, IO, Rope, Scheme, TextNode; SchemePrettyRead: CEDAR DEFINITIONS = BEGIN OPEN Scheme; ROPE: TYPE ~ Rope.ROPE; Commented: TYPE ~ REF CommentedRep; CommentedRep: TYPE ~ RECORD [ prefix, postfix: Vector--of Comment, CommentNode, or Linebreaks--, nonComment: Any ]; Comment: TYPE ~ ROPE; CommentNode: TYPE ~ TextNode.Ref; <> <> Linebreaks: TYPE ~ REF LinebreaksRep; LinebreaksRep: TYPE ~ RECORD [num: INT]; emptyVector: Vector; VectorAsList: TYPE ~ REF VectorAsListRep; VectorAsListRep: TYPE ~ RECORD [list: Pair]; FakeAtom: TYPE ~ ROPE; SourceFilter: TYPE ~ PACKED ARRAY SourceKind OF BOOL; SourceKind: TYPE ~ {compound, comment, eof, other}; noSource: SourceFilter ~ ALL[FALSE]; allButOther: SourceFilter ~ [compound: TRUE, comment: TRUE, eof: TRUE, other: FALSE]; FormToSource: TYPE ~ IntToIntTab.Table; <> Read: PROC [from: Port, stackBase: INT, posnsToNote: SourceFilter ¬ allButOther, interrupt: REF BOOL ¬ NIL, addTo: FormToSource ¬ NIL, deltaIndex: INT ¬ 0] RETURNS [form, nonCommented: Any, posns: FormToSource, maxStack: INT]; <> <> <> <> <> TiogaRead: PROC [start: TextNode.Location, stackBase: INT, posnsToNote: SourceFilter ¬ allButOther, interrupt: REF BOOL ¬ NIL, addTo: FormToSource ¬ NIL, deltaIndex: INT ¬ 0] RETURNS [form, nonCommented: Any, posns: FormToSource, maxStack: INT, next: TextNode.Location, nextIndex: INT]; <> Warning: SIGNAL [message: ROPE]; InfoPrint: PROC [to: IO.STREAM, form: Any]; AffixVector: PROC [to: Any, v: Vector--of Comment, CommentNode, or Linebreaks--] RETURNS [Any]; <> END.