RosettaCodeData/Task/Visualize-a-tree/Lingo/visualize-a-tree-1.lingo

26 lines
493 B
Plaintext

-- parent script "TreeItem"
-- (minimal implementation with direct property access)
property name
property children
on new (me, itemName)
me.name = itemName
me.children = []
return me
end
on addChild (me, child)
me.children.add(child)
end
-- print a tree
on printTree (me, treeItem, indent)
if voidP(treeItem) then treeItem = me
if voidP(indent) then indent = ""
put indent&treeItem.name
repeat with c in treeItem.children
me.printTree(c, indent&" ")
end repeat
end