|
Text.XML.HaXml.DtdToHaskell.TypeDef |
|
|
|
Contents |
- Internal representation of types
- Pretty-print a TypeDef
- Name mangling
|
|
Description |
Defines an internal representation of Haskell data/newtype definitions
that correspond to the XML DTD types, and provides pretty-printers to
convert these types into the Doc type of Text.PrettyPrint.HughesPJ. |
|
Synopsis |
|
|
|
|
Internal representation of types |
|
data TypeDef |
|
|
type Constructors = [(Name, [StructType])] |
|
type AttrFields = [(Name, StructType)] |
|
data StructType |
|
|
Pretty-print a TypeDef |
|
ppTypeDef :: TypeDef -> Doc |
|
ppHName :: Name -> Doc |
Pretty print Haskell name. |
|
ppXName :: Name -> Doc |
Pretty print XML name. |
|
ppAName :: Name -> Doc |
Pretty print Haskell attributes name. |
|
Name mangling |
|
data Name |
Need to keep both the XML and Haskell versions of a name. | Constructors | Name | | xName :: String | original XML name | hName :: String | mangled Haskell name |
|
|
|
|
name :: String -> Name |
Make a name valid in both XML and Haskell. |
|
name_ :: String -> Name |
Append an underscore to the Haskell version of the name. |
|
name_a :: String -> String -> Name |
Prefix an attribute enumeration type name with its containing element
name. |
|
name_ac :: String -> String -> String -> Name |
Prefix an attribute enumeration constructor with its element-tag name,
and its enumeration type name. |
|
name_f :: String -> String -> Name |
Prefix a field name with its enclosing element name. |
|
mangle :: String -> String |
Convert an XML name to a Haskell conid. |
|
manglef :: String -> String |
Convert an XML name to a Haskell varid. |
|
Produced by Haddock version 0.4 |