module Language.Abs where -- Haskell module generated by the BNF converter newtype Ident = Ident String deriving (Eq,Ord,Show,Read) newtype VerIdent = VerIdent String deriving (Eq,Ord,Show,Read) newtype RouteIdent = RouteIdent String deriving (Eq,Ord,Show,Read) data Specification = Spec Name Version Modules [EnumType] [StructType] [Resource] deriving (Eq,Ord,Show,Read) data Name = Nm Ident deriving (Eq,Ord,Show,Read) data Version = Ver VerIdent deriving (Eq,Ord,Show,Read) data Modules = EmptyMods | Mods [Ident] deriving (Eq,Ord,Show,Read) data EnumType = DefEnum Ident [EnumVal] deriving (Eq,Ord,Show,Read) data StructType = DefStr Ident [Field] deriving (Eq,Ord,Show,Read) data Resource = Res Ident RouteIdent Mode deriving (Eq,Ord,Show,Read) data Mode = ReadOnly | Write deriving (Eq,Ord,Show,Read) data Field = FDef [Annotation] Ident FType deriving (Eq,Ord,Show,Read) data FType = FString | FInt | FLong | FDouble | FDefined Ident | FList FType deriving (Eq,Ord,Show,Read) data Annotation = Ann Ident deriving (Eq,Ord,Show,Read) data EnumVal = EnVal Ident deriving (Eq,Ord,Show,Read)