module AbsSciDbAFL where
newtype ResAnd = ResAnd String
deriving (Eq, Ord, Show, Read)
newtype ResArray = ResArray String
deriving (Eq, Ord, Show, Read)
newtype ResAs = ResAs String
deriving (Eq, Ord, Show, Read)
newtype ResAsc = ResAsc String
deriving (Eq, Ord, Show, Read)
newtype ResCompression = ResCompression String
deriving (Eq, Ord, Show, Read)
newtype ResCreate = ResCreate String
deriving (Eq, Ord, Show, Read)
newtype ResDefault = ResDefault String
deriving (Eq, Ord, Show, Read)
newtype ResDesc = ResDesc String
deriving (Eq, Ord, Show, Read)
newtype ResFalse = ResFalse String
deriving (Eq, Ord, Show, Read)
newtype ResNot = ResNot String
deriving (Eq, Ord, Show, Read)
newtype ResNull = ResNull String
deriving (Eq, Ord, Show, Read)
newtype ResOr = ResOr String
deriving (Eq, Ord, Show, Read)
newtype ResTemp = ResTemp String
deriving (Eq, Ord, Show, Read)
newtype ResTrue = ResTrue String
deriving (Eq, Ord, Show, Read)
newtype ADouble = ADouble String
deriving (Eq, Ord, Show, Read)
newtype AString = AString String
deriving (Eq, Ord, Show, Read)
newtype Id = Id String
deriving (Eq, Ord, Show, Read)
data Exp
= Eor Exp ResOr Exp
| Eand Exp ResAnd Exp
| Eeq Exp Exp
| Ene Exp Exp
| Elt Exp Exp
| Egt Exp Exp
| Ele Exp Exp
| Ege Exp Exp
| EAdd Exp Exp
| ESub Exp Exp
| EMul Exp Exp
| EDiv Exp Exp
| EMod Exp Exp
| ENeg Exp
| EFunc Id [Exp]
| EVersion Id Integer
| EArrayVar Id Id
| EOption Id Exp
| EAsId Exp ResAs Id
| EAsc Exp ResAsc
| EDesc Exp ResDesc
| EVar Id
| EScheme Schema
| EString AString
| EFalse ResFalse
| ETrue ResTrue
| ENull ResNull
| EInt Integer
| EDouble ADouble
| EWildcard
| EDefault
deriving (Eq, Ord, Show, Read)
data AFL = Queries [Query]
deriving (Eq, Ord, Show, Read)
data Query
= QueryNil
| QueryExp Exp
| QueryArray ResCreate ResArray Id Schema
| QueryTemp ResCreate ResTemp ResArray Id Schema
deriving (Eq, Ord, Show, Read)
data Schema = Scheme [Attribute] Dimensions
deriving (Eq, Ord, Show, Read)
data Attribute
= Attrib Id Id NullableOption DefaultOption CompressionOption
deriving (Eq, Ord, Show, Read)
data NullableOption
= NullabeOff | NullableOn ResNull | NullableNot ResNot ResNull
deriving (Eq, Ord, Show, Read)
data DefaultOption = DefaultOff | DefaultOn ResDefault Exp
deriving (Eq, Ord, Show, Read)
data CompressionOption
= CompressionOff | CompressionOn ResCompression AString
deriving (Eq, Ord, Show, Read)
data Dimensions
= Dim Dimension
| DimSemicolon Dimension Dimensions
| DimComma Dimension Dimensions
deriving (Eq, Ord, Show, Read)
data Dimension
= DimId Id
| DimLoHi Id Exp Exp
| DimLoHiOverlap Id Exp Exp Exp
| DimAll Id Exp Exp Exp Exp
| DimDeprecated Id Exp Exp Exp Exp
deriving (Eq, Ord, Show, Read)