module Precis.HsSrc.Datatypes
(
TextRep
, StrName
, MacroExpandedSrcFile(..)
, ModuleParseError(..)
, moduleParseErrorMsg
, ExportItem(..)
, exportItemName
, InstanceDecl(..)
, instanceDeclName
, DatatypeDecl(..)
, datatypeDeclName
, TypeSigDecl(..)
, typeSigDeclName
) where
type TextRep = String
type StrName = String
data MacroExpandedSrcFile = MacroExpandedSrcFile
{ source_file_name :: String
, expanded_source :: String
}
data ModuleParseError = ERR_MODULE_FILE_MISSING String
| ERR_MODULE_FILE_PARSE String
deriving (Eq,Show)
moduleParseErrorMsg :: ModuleParseError -> String
moduleParseErrorMsg (ERR_MODULE_FILE_MISSING s) =
"*** Error: missing file - " ++ s
moduleParseErrorMsg (ERR_MODULE_FILE_PARSE s) =
"*** Error: parse error - " ++ s
data ExportItem = ModuleExport StrName
| DataOrClass StrName TextRep
| Variable StrName
deriving (Eq,Show)
exportItemName :: ExportItem -> StrName
exportItemName (ModuleExport s) = s
exportItemName (DataOrClass s _) = s
exportItemName (Variable s) = s
data InstanceDecl = InstanceDecl
{ class_name :: StrName
, type_rep :: TextRep
, full_rep :: TextRep
}
deriving (Eq,Show)
instanceDeclName :: InstanceDecl -> StrName
instanceDeclName = class_name
data DatatypeDecl = DatatypeDecl
{ datatype_name :: StrName
, datatype_rep :: TextRep
}
deriving (Eq,Show)
datatypeDeclName :: DatatypeDecl -> StrName
datatypeDeclName = datatype_name
data TypeSigDecl = TypeSigDecl
{ type_decl_name :: StrName
, type_signature :: TextRep
}
deriving (Eq,Show)
typeSigDeclName :: TypeSigDecl -> StrName
typeSigDeclName = type_decl_name