module Fun.Tree where data Tree = Tree [Program] deriving Show data Program = Program [Block] deriving Show data Block = Block FunctionBlock -- | Block DataBlock ... deriving Show data FunctionBlock = FunctionBlock FunctionDeclaration [FunctionDefinition] deriving Show data Visibility = PublicVisibility | PrivateVisibility deriving Show data FunctionDeclaration = FunctionDeclaration String Visibility [String] [String] deriving Show data FunctionDefinition = FunctionDefinition FunctionPattern FunctionBody deriving Show data FunctionPattern = FunctionPattern [FunctionPatternElement] deriving Show data FunctionPatternElement = FunctionPatternParameter String | FunctionPatternString String | FunctionPatternNumber Integer | Wildcard deriving Show data FunctionBody = FunctionBody [FunctionBodyElement] deriving Show data FunctionBodyElement = Statement String | FunctionBodyIdentifier String | FunctionBodyParameter String | FunctionBodyString String | FunctionBodyNumber Integer deriving Show