cmathml3-0.1: Data/ContentMathML3/XNodeOrd.hs
module Data.ContentMathML3.XNodeOrd
where
import Text.XML.HXT.DOM.TypeDefs
import Text.XML.HXT.DOM.QualifiedName
import Data.Data
import Data.Tree.NTree.TypeDefs
instance Ord XNode where
(XText v1) `compare` (XText v2) = v1 `compare` v2
(XText _) `compare` _ = LT
_ `compare` (XText _) = GT
(XBlob v1) `compare` (XBlob v2) = v1 `compare` v2
(XBlob _) `compare` _ = LT
_ `compare` (XBlob _) = GT
(XCharRef v1) `compare` (XCharRef v2) = v1 `compare` v2
(XCharRef _) `compare` _ = LT
_ `compare` (XCharRef _) = GT
(XEntityRef v1) `compare` (XEntityRef v2) = v1 `compare` v2
(XEntityRef _) `compare` _ = LT
_ `compare` (XEntityRef _) = GT
(XCmt v1) `compare` (XCmt v2) = v1 `compare` v2
(XCmt _) `compare` _ = LT
_ `compare` (XCmt _) = GT
(XCdata v1) `compare` (XCdata v2) = v1 `compare` v2
(XCdata _) `compare` _ = LT
_ `compare` (XCdata _) = GT
(XPi qn1 t1) `compare` (XPi qn2 t2) =
let c1 = qn1 `compare` qn2
in
case c1
of
EQ -> t1 `compare` t2
_ -> c1
(XPi _ _) `compare` _ = LT
_ `compare` (XPi _ _) = GT
(XTag qn1 t1) `compare` (XTag qn2 t2) =
let c1 = qn1 `compare` qn2
in
case c1
of
EQ -> t1 `compare` t2
_ -> c1
(XTag _ _) `compare` _ = LT
_ `compare` (XTag _ _) = GT
(XDTD qn1 t1) `compare` (XDTD qn2 t2) =
let c1 = qn1 `compare` qn2
in
case c1
of
EQ -> t1 `compare` t2
_ -> c1
(XDTD _ _) `compare` _ = LT
_ `compare` (XDTD _ _) = GT
(XAttr v1) `compare` (XAttr v2) = v1 `compare` v2
(XAttr _) `compare` _ = LT
_ `compare` (XAttr _) = GT
(XError qn1 t1) `compare` (XError qn2 t2) =
let c1 = qn1 `compare` qn2
in
case c1
of
EQ -> t1 `compare` t2
_ -> c1
instance Ord QName where
q1 `compare` q2 =
let
c1 = (localPart q1) `compare` (localPart q2)
c2 = (namePrefix q1) `compare` (namePrefix q2)
c3 = (namespaceUri q1) `compare` (namespaceUri q2)
in
case c1 of
EQ ->
case c2 of
EQ -> c3
_ -> c2
_ -> c1
instance Data XNode where
gfoldl k z (XText a) = z XText `k` a
gfoldl k z (XBlob a) = z XBlob `k` a
gfoldl k z (XCharRef a) = z XCharRef `k` a
gfoldl k z (XEntityRef a) = z XEntityRef `k` a
gfoldl k z (XCmt a) = z XCmt `k` a
gfoldl k z (XCdata a) = z XCdata `k` a
gfoldl k z (XPi a b) = z XPi `k` a `k` b
gfoldl k z (XTag a b) = z XTag `k` a `k` b
gfoldl k z (XDTD a b) = z XDTD `k` a `k` b
gfoldl k z (XAttr a) = z XAttr `k` a
gfoldl k z (XError a b) = z XError `k` a `k` b
gunfold k z c = case constrIndex c of
1 -> k (z XText)
2 -> k (z XBlob)
3 -> k (z XCharRef)
4 -> k (z XEntityRef)
5 -> k (z XCmt)
6 -> k (z XCdata)
7 -> k (k (z XPi))
8 -> k (k (z XTag))
9 -> k (k (z XDTD))
10 -> k (z XAttr)
11 -> k (k (z XError))
toConstr (XText _) = con_XText
toConstr (XBlob _) = con_XBlob
toConstr (XCharRef _) = con_XCharRef
toConstr (XEntityRef _) = con_XEntityRef
toConstr (XCmt _) = con_XCmt
toConstr (XCdata _) = con_XCdata
toConstr (XPi _ _) = con_XPi
toConstr (XTag _ _) = con_XTag
toConstr (XDTD _ _) = con_XDTD
toConstr (XAttr _) = con_XAttr
toConstr (XError _ _) = con_XError
dataTypeOf _ = ty_XNode
con_XText = mkConstr ty_XNode "XText" [] Prefix
con_XBlob = mkConstr ty_XNode "XBlob" [] Prefix
con_XCharRef = mkConstr ty_XNode "XCharRef" [] Prefix
con_XEntityRef = mkConstr ty_XNode "XEntityRef" [] Prefix
con_XCmt = mkConstr ty_XNode "XCmt" [] Prefix
con_XCdata = mkConstr ty_XNode "XCdata" [] Prefix
con_XPi = mkConstr ty_XNode "XPi" [] Prefix
con_XTag = mkConstr ty_XNode "XTag" [] Prefix
con_XDTD = mkConstr ty_XNode "XDTD" [] Prefix
con_XAttr = mkConstr ty_XNode "XAttr" [] Prefix
con_XError = mkConstr ty_XNode "XError" [] Prefix
ty_XNode = mkDataType "Text.XML.HXT.DOM.TypeDefs.XNode" [con_XText, con_XBlob, con_XCharRef, con_XEntityRef, con_XCmt, con_XCdata, con_XPi,
con_XTag, con_XDTD, con_XAttr, con_XError]
instance Data n => Data (NTree n) where
gfoldl k z (NTree a b) = z NTree `k` a `k` b
gunfold k z c = case constrIndex c of
1 -> k (k (z NTree))
toConstr (NTree _ _) = con_NTree
dataTypeOf _ = ty_NTree
con_NTree = mkConstr ty_NTree "NTree" [] Prefix
ty_NTree = mkDataType "Data.Tree.NTree.TypeDefs.NTree" [con_NTree]
instance Data DTDElem where
gfoldl k z v = z v
gunfold k z c = case constrIndex c of
1 -> z DOCTYPE
2 -> z ELEMENT
3 -> z CONTENT
4 -> z ATTLIST
5 -> z ENTITY
6 -> z PENTITY
7 -> z NOTATION
8 -> z CONDSECT
9 -> z NAME
10 -> z PEREF
toConstr DOCTYPE = con_DOCTYPE
toConstr ELEMENT = con_ELEMENT
toConstr CONTENT = con_CONTENT
toConstr ATTLIST = con_ATTLIST
toConstr ENTITY = con_ENTITY
toConstr PENTITY = con_PENTITY
toConstr NOTATION = con_NOTATION
toConstr CONDSECT = con_CONDSECT
toConstr NAME = con_NAME
toConstr PEREF = con_PEREF
dataTypeOf _ = ty_DTDElem
con_DOCTYPE = mkConstr ty_DTDElem "DOCTYPE" [] Prefix
con_ELEMENT = mkConstr ty_DTDElem "ELEMENT" [] Prefix
con_CONTENT = mkConstr ty_DTDElem "CONTENT" [] Prefix
con_ATTLIST = mkConstr ty_DTDElem "ATTLIST" [] Prefix
con_ENTITY = mkConstr ty_DTDElem "ENTITY" [] Prefix
con_PENTITY = mkConstr ty_DTDElem "PENTITY" [] Prefix
con_NOTATION = mkConstr ty_DTDElem "NOTATION" [] Prefix
con_CONDSECT = mkConstr ty_DTDElem "CONDSECT" [] Prefix
con_NAME = mkConstr ty_DTDElem "NAME" [] Prefix
con_PEREF = mkConstr ty_DTDElem "PEREF" [] Prefix
ty_DTDElem = mkDataType "Text.XML.HXT.DOM.TypeDefs.DTDElem" [con_DOCTYPE, con_ELEMENT, con_CONTENT, con_ATTLIST, con_ENTITY, con_PENTITY, con_NOTATION, con_CONDSECT, con_NAME, con_PEREF]
instance Data QName where
gfoldl k z v = z mkQName `k` (localPart v) `k` (namePrefix v) `k` (namespaceUri v)
gunfold k z c = case constrIndex c of
1 -> k (k (k (z mkQName)))
toConstr v = con_QName
dataTypeOf _ = ty_QName
con_QName = mkConstr ty_QName "QName" [] Prefix
ty_QName = mkDataType "Text.XML.HXT.DOM.TypeDefs.QName" [con_QName]