module Language.Elna.Types ( Type(..) , addressByteSize , booleanType , intType ) where import Data.Text (Text) import Data.Word (Word32) import Language.Elna.Location (showArrayType) addressByteSize :: Int addressByteSize = 4 data Type = PrimitiveType Text Int | ArrayType Word32 Type deriving Eq instance Show Type where show (PrimitiveType typeName _) = show typeName show (ArrayType elementCount typeName) = showArrayType elementCount typeName intType :: Type intType = PrimitiveType "int" 4 booleanType :: Type booleanType = PrimitiveType "boolean" 1