module Language.Slice.Syntax.AST ( IncludeDelimiters(..) , SliceType(..) , SliceDecl(..) , FieldDecl(..) , MethodDecl(..) , MethodOrFieldDecl(..) ) where data IncludeDelimiters = AngleBrackets | Quotes deriving (Show, Read, Eq) data SliceType = STVoid | STBool | STByte | STShort | STInt | STLong | STFloat | STDouble | STString | STUserDefined String | STUserDefinedPrx String deriving (Show, Read, Eq) data SliceExpr = SliceStr String | SliceInt Int | SliceDouble Double deriving (Show, Read, Eq) data SliceDecl = ModuleDecl String [SliceDecl] | IncludeDecl IncludeDelimiters String | EnumDecl String [String] | StructDecl String [FieldDecl] | ClassDecl String (Maybe String) [MethodOrFieldDecl] | InterfaceDecl String [String] [MethodDecl] | SequenceDecl SliceType String | DictionaryDecl SliceType SliceType String | ExceptionDecl String [String] [FieldDecl] | ConstDecl SliceType String SliceExpr deriving (Show, Read, Eq) data FieldDecl = FieldDecl SliceType String deriving (Show, Read, Eq) data MethodDecl = MethodDecl SliceType String [FieldDecl] [String] deriving (Show, Read, Eq) data MethodOrFieldDecl = MDecl MethodDecl | FDecl FieldDecl deriving (Show, Read, Eq)