<<>> <> <> <> <<>> DIRECTORY CrankTypes USING [Attributes, Tree], IO USING [STREAM], MPTree USING [AttrId, Link, NodeName], Rope USING [ROPE], UnparserBuffer USING [BreakCondition]; CrankIO: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE = Rope.ROPE; <> ParseRope: PROC [rope: ROPE] RETURNS [MPTree.Link]; <> ParseFile: PROC [fileName: ROPE] RETURNS [MPTree.Link]; <> DecodeAttr: PROC [name: MPTree.NodeName, attrBits: PACKED ARRAY MPTree.AttrId OF BOOL] RETURNS [CrankTypes.Attributes]; <> AddAttributeNodes: PROC [tree: CrankTypes.Tree] RETURNS [CrankTypes.Tree]; <> <> MakeOutputName: PROC [inputName: ROPE, ext: ROPE] RETURNS [ROPE]; RopeFromTree: PROC [tree: CrankTypes.Tree] RETURNS [ROPE]; RopeFromNodeName: PROC [nodeName: MPTree.NodeName] RETURNS [ROPE]; WriteTree: PROC [tree: CrankTypes.Tree, fileName: ROPE, sourceName: ROPE ¬ NIL, skipAttributes: LIST OF ATOM ¬ NIL] RETURNS [fullFName: ROPE]; WriteSTree: PROC [tree: CrankTypes.Tree, fileName: ROPE, breakCondition: UnparserBuffer.BreakCondition ¬ united, sourceName: ROPE ¬ NIL, skipAttributes: LIST OF ATOM ¬ NIL] RETURNS [fullFName: ROPE]; PutTree: PROC [stream: IO.STREAM, tree: CrankTypes.Tree, structure: BOOL ¬ FALSE, breakCondition: UnparserBuffer.BreakCondition ¬ united, sourceFrom: ROPE ¬ NIL, skipAttributes: LIST OF ATOM ¬ NIL]; END.