module FPPrac.Trees.RoseTree
( RoseTree(..)
, showTree
, showTreeList
, exampleTree
) where
import EventLoop.Output.Single (outSingle)
import EventLoop.Output
import EventLoop.CommonTypes
import FPPrac.Trees.GeneralTree
data RoseTree = RoseNode String [RoseTree]
deriving (Show, Eq)
instance GeneralizeTree RoseTree where
generalizeTree (RoseNode str children) = GeneralTreeBox content children'WithLines
where
content = [GeneralNode (0,0,0) 10, GeneralNodeText (0,0,0) str]
children'WithLines = zip (repeat line) (map generalizeTree children)
line = GeneralLine (0,0,0)
exampleTree = RoseNode "z"
[ RoseNode "aaa"
[ RoseNode "bbb"
[ RoseNode "ccc" [],
RoseNode "ddd" []
],
RoseNode ""
[RoseNode "fff" [],
RoseNode "ggg" [],
RoseNode "hhh" []
],
RoseNode "iii"
[RoseNode "" []
]
],
RoseNode "kkk"
[RoseNode "lll" [],
RoseNode "mmm"
[RoseNode "nnn"
[RoseNode "q" [],
RoseNode "r" []
],
RoseNode "ooo" [],
RoseNode "ppp" []
]
]
]