-- File PackTreeOps.Mesa -- Last modified by Lewis on 30-Dec-80 10:42:04 DIRECTORY SymTabDefs USING [HTIndex], Tree: FROM "PackTree" USING [Index, Link, Map, NodeName, Scan, Test]; TreeOps: DEFINITIONS = BEGIN -- tree construction interface Initialize, Finalize: PROC; PushTree: PROC [v: Tree.Link]; PopTree: PROC RETURNS [Tree.Link]; InsertTree: PROC [Tree.Link, CARDINAL]; -- insert v below top CARD. elements ExtractTree: PROC [CARDINAL] RETURNS [Tree.Link]; MakeNode: PROC [name: Tree.NodeName, count: INTEGER] RETURNS [Tree.Link]; MakeList: PROC [size: INTEGER] RETURNS [Tree.Link]; PushNode: PROC [name: Tree.NodeName, count: INTEGER]; PushList, PushProperList: PROC [size: INTEGER]; PushHash: PROC [hti: SymTabDefs.HTIndex]; SetInfo: PROC [info: UNSPECIFIED]; SetAttr: PROC [attr: [1..3], value: BOOLEAN]; -- tree deallocation FreeNode: PROC [node: Tree.Index]; FreeTree: PROC [t: Tree.Link] RETURNS [Tree.Link]; -- tree attributes GetNode: PROC [t: Tree.Link] RETURNS [Tree.Index]; Shared: PROC [t: Tree.Link] RETURNS [BOOLEAN]; SetShared: PROC [t: Tree.Link, shared: BOOLEAN]; TestTree: PROC [t: Tree.Link, name: Tree.NodeName] RETURNS [BOOLEAN]; -- tree manipulation UpdateTree: PROC [root: Tree.Link, map: Tree.Map] RETURNS [v: Tree.Link]; -- list testing ListLength: PROC [t: Tree.Link] RETURNS [CARDINAL]; ListHead: PROC [t: Tree.Link] RETURNS [Tree.Link]; ListTail: PROC [t: Tree.Link] RETURNS [Tree.Link]; -- list manipulation ScanList: PROC [root: Tree.Link, action: Tree.Scan]; SearchList: PROC [root: Tree.Link, test: Tree.Test]; ReverseScanList: PROC [root: Tree.Link, action: Tree.Scan]; UpdateList: PROC [root: Tree.Link, map: Tree.Map] RETURNS [Tree.Link]; ReverseUpdateList: PROC [root: Tree.Link, map: Tree.Map] RETURNS [Tree.Link]; END.