<> <> DIRECTORY IO, Rope, TextNode, TiogaFileOps; TiogaStreamsExtras: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; <> FullCreateInput: PROC [from: TextNode.Ref, commentHandling: FullCommentHandling _ [FALSE[]], levelPrefix: ROPE _ NIL] RETURNS [in: IO.STREAM]; <> <> <> FullCommentHandling: TYPE = RECORD [variant: SELECT see: BOOL FROM FALSE => [], TRUE => [prefix, suffix: ROPE _ NIL], ENDCASE]; <> FullCreateOutput: PROC [to: TiogaFileOps.Ref, breakAtNewline: BOOL _ FALSE, levelPrefix, defaultFormat: ROPE _ NIL, flexilevel: BOOL _ FALSE, spacesPerTab, normalNestIndent, minFmtIndent: INT _ 0, maxFmtIndent: INT _ -1, commentHandling: FullCommentHandling _ [FALSE[]] ] RETURNS [out: IO.STREAM]; <> <> <> <0; nothing else is white.>> <> <0 AND maxFmtIndent> <= minFmtIndent, THEN each node whose amount of leading white space exceeds it parent's by N is created with format defaultFormat-N if N IN [minFmtIndent..maxFmtIndent], otherwise with format defaultFormat-M and a postfix property (M IN {minFmtIndent, maxFmtIndent}); normalNestIndent is indentation of children relative to parent.>> <> END.