packages feed

HaXml 1.20.1 → 1.20.2

raw patch · 14 files changed

+202/−144 lines, 14 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Text.XML.HaXml.TypeMapping: instance (HTypeable a) => HTypeable (Maybe a)
- Text.XML.HaXml.TypeMapping: instance (HTypeable a) => HTypeable [a]
- Text.XML.HaXml.Types: instance (Eq i) => Eq (Content i)
- Text.XML.HaXml.Types: instance (Eq i) => Eq (Document i)
- Text.XML.HaXml.Types: instance (Eq i) => Eq (Element i)
- Text.XML.HaXml.Types: instance (Eq i) => Eq (ExtParsedEnt i)
- Text.XML.HaXml.Verbatim: instance (Verbatim a) => Verbatim [a]
- Text.XML.HaXml.XmlContent: instance (XmlContent a) => XmlContent (Maybe a)
- Text.XML.HaXml.XmlContent: instance (XmlContent a) => XmlContent [a]
- Text.XML.HaXml.XmlContent.Haskell: instance (XmlContent a) => XmlContent (Maybe a)
- Text.XML.HaXml.XmlContent.Haskell: instance (XmlContent a) => XmlContent [a]
- Text.XML.HaXml.XmlContent.Parser: instance (Eq a) => Eq (Defaultable a)
- Text.XML.HaXml.XmlContent.Parser: instance (Eq a) => Eq (List1 a)
- Text.XML.HaXml.XmlContent.Parser: instance (HTypeable a) => HTypeable (List1 a)
- Text.XML.HaXml.XmlContent.Parser: instance (Show a) => Show (Defaultable a)
- Text.XML.HaXml.XmlContent.Parser: instance (Show a) => Show (List1 a)
- Text.XML.HaXml.XmlContent.Parser: instance (XmlContent a) => XmlContent (List1 a)
+ Text.XML.HaXml.TypeMapping: instance HTypeable a => HTypeable (Maybe a)
+ Text.XML.HaXml.TypeMapping: instance HTypeable a => HTypeable [a]
+ Text.XML.HaXml.Types: instance Eq i => Eq (Content i)
+ Text.XML.HaXml.Types: instance Eq i => Eq (Document i)
+ Text.XML.HaXml.Types: instance Eq i => Eq (Element i)
+ Text.XML.HaXml.Types: instance Eq i => Eq (ExtParsedEnt i)
+ Text.XML.HaXml.Verbatim: instance Verbatim a => Verbatim [a]
+ Text.XML.HaXml.XmlContent: instance XmlContent a => XmlContent (Maybe a)
+ Text.XML.HaXml.XmlContent: instance XmlContent a => XmlContent [a]
+ Text.XML.HaXml.XmlContent.Haskell: instance XmlContent a => XmlContent (Maybe a)
+ Text.XML.HaXml.XmlContent.Haskell: instance XmlContent a => XmlContent [a]
+ Text.XML.HaXml.XmlContent.Parser: instance Eq a => Eq (Defaultable a)
+ Text.XML.HaXml.XmlContent.Parser: instance Eq a => Eq (List1 a)
+ Text.XML.HaXml.XmlContent.Parser: instance HTypeable a => HTypeable (List1 a)
+ Text.XML.HaXml.XmlContent.Parser: instance Show a => Show (Defaultable a)
+ Text.XML.HaXml.XmlContent.Parser: instance Show a => Show (List1 a)
+ Text.XML.HaXml.XmlContent.Parser: instance XmlContent a => XmlContent (List1 a)
- Text.XML.HaXml.ShowXmlLazy: showXmlLazy :: (XmlContent a) => Bool -> a -> String
+ Text.XML.HaXml.ShowXmlLazy: showXmlLazy :: XmlContent a => Bool -> a -> String
- Text.XML.HaXml.TypeMapping: toHType :: (HTypeable a) => a -> HType
+ Text.XML.HaXml.TypeMapping: toHType :: HTypeable a => a -> HType
- Text.XML.HaXml.Verbatim: verbatim :: (Verbatim a) => a -> String
+ Text.XML.HaXml.Verbatim: verbatim :: Verbatim a => a -> String
- Text.XML.HaXml.XmlContent: fReadXml :: (XmlContent a) => FilePath -> IO a
+ Text.XML.HaXml.XmlContent: fReadXml :: XmlContent a => FilePath -> IO a
- Text.XML.HaXml.XmlContent: fWriteXml :: (XmlContent a) => FilePath -> a -> IO ()
+ Text.XML.HaXml.XmlContent: fWriteXml :: XmlContent a => FilePath -> a -> IO ()
- Text.XML.HaXml.XmlContent: fpsHPutXml :: (XmlContent a) => Handle -> Bool -> a -> IO ()
+ Text.XML.HaXml.XmlContent: fpsHPutXml :: XmlContent a => Handle -> Bool -> a -> IO ()
- Text.XML.HaXml.XmlContent: fpsShowXml :: (XmlContent a) => Bool -> a -> ByteString
+ Text.XML.HaXml.XmlContent: fpsShowXml :: XmlContent a => Bool -> a -> ByteString
- Text.XML.HaXml.XmlContent: fpsWriteXml :: (XmlContent a) => FilePath -> a -> IO ()
+ Text.XML.HaXml.XmlContent: fpsWriteXml :: XmlContent a => FilePath -> a -> IO ()
- Text.XML.HaXml.XmlContent: fromXml :: (XmlContent a) => Document Posn -> Either String a
+ Text.XML.HaXml.XmlContent: fromXml :: XmlContent a => Document Posn -> Either String a
- Text.XML.HaXml.XmlContent: hGetXml :: (XmlContent a) => Handle -> IO a
+ Text.XML.HaXml.XmlContent: hGetXml :: XmlContent a => Handle -> IO a
- Text.XML.HaXml.XmlContent: hPutXml :: (XmlContent a) => Handle -> Bool -> a -> IO ()
+ Text.XML.HaXml.XmlContent: hPutXml :: XmlContent a => Handle -> Bool -> a -> IO ()
- Text.XML.HaXml.XmlContent: readXml :: (XmlContent a) => String -> Either String a
+ Text.XML.HaXml.XmlContent: readXml :: XmlContent a => String -> Either String a
- Text.XML.HaXml.XmlContent: showXml :: (XmlContent a) => Bool -> a -> String
+ Text.XML.HaXml.XmlContent: showXml :: XmlContent a => Bool -> a -> String
- Text.XML.HaXml.XmlContent: toXml :: (XmlContent a) => Bool -> a -> Document ()
+ Text.XML.HaXml.XmlContent: toXml :: XmlContent a => Bool -> a -> Document ()
- Text.XML.HaXml.XmlContent.Haskell: fReadXml :: (XmlContent a) => FilePath -> IO a
+ Text.XML.HaXml.XmlContent.Haskell: fReadXml :: XmlContent a => FilePath -> IO a
- Text.XML.HaXml.XmlContent.Haskell: fWriteXml :: (XmlContent a) => FilePath -> a -> IO ()
+ Text.XML.HaXml.XmlContent.Haskell: fWriteXml :: XmlContent a => FilePath -> a -> IO ()
- Text.XML.HaXml.XmlContent.Haskell: fpsHPutXml :: (XmlContent a) => Handle -> Bool -> a -> IO ()
+ Text.XML.HaXml.XmlContent.Haskell: fpsHPutXml :: XmlContent a => Handle -> Bool -> a -> IO ()
- Text.XML.HaXml.XmlContent.Haskell: fpsShowXml :: (XmlContent a) => Bool -> a -> ByteString
+ Text.XML.HaXml.XmlContent.Haskell: fpsShowXml :: XmlContent a => Bool -> a -> ByteString
- Text.XML.HaXml.XmlContent.Haskell: fpsWriteXml :: (XmlContent a) => FilePath -> a -> IO ()
+ Text.XML.HaXml.XmlContent.Haskell: fpsWriteXml :: XmlContent a => FilePath -> a -> IO ()
- Text.XML.HaXml.XmlContent.Haskell: fromXml :: (XmlContent a) => Document Posn -> Either String a
+ Text.XML.HaXml.XmlContent.Haskell: fromXml :: XmlContent a => Document Posn -> Either String a
- Text.XML.HaXml.XmlContent.Haskell: hGetXml :: (XmlContent a) => Handle -> IO a
+ Text.XML.HaXml.XmlContent.Haskell: hGetXml :: XmlContent a => Handle -> IO a
- Text.XML.HaXml.XmlContent.Haskell: hPutXml :: (XmlContent a) => Handle -> Bool -> a -> IO ()
+ Text.XML.HaXml.XmlContent.Haskell: hPutXml :: XmlContent a => Handle -> Bool -> a -> IO ()
- Text.XML.HaXml.XmlContent.Haskell: readXml :: (XmlContent a) => String -> Either String a
+ Text.XML.HaXml.XmlContent.Haskell: readXml :: XmlContent a => String -> Either String a
- Text.XML.HaXml.XmlContent.Haskell: showXml :: (XmlContent a) => Bool -> a -> String
+ Text.XML.HaXml.XmlContent.Haskell: showXml :: XmlContent a => Bool -> a -> String
- Text.XML.HaXml.XmlContent.Haskell: toXml :: (XmlContent a) => Bool -> a -> Document ()
+ Text.XML.HaXml.XmlContent.Haskell: toXml :: XmlContent a => Bool -> a -> Document ()
- Text.XML.HaXml.XmlContent.Parser: attributes :: (XmlAttributes a) => Element Posn -> XMLParser a
+ Text.XML.HaXml.XmlContent.Parser: attributes :: XmlAttributes a => Element Posn -> XMLParser a
- Text.XML.HaXml.XmlContent.Parser: attval :: (Read a) => Element i -> a
+ Text.XML.HaXml.XmlContent.Parser: attval :: Read a => Element i -> a
- Text.XML.HaXml.XmlContent.Parser: choice :: (XmlContent a) => (a -> b) -> XMLParser b -> XMLParser b
+ Text.XML.HaXml.XmlContent.Parser: choice :: XmlContent a => (a -> b) -> XMLParser b -> XMLParser b
- Text.XML.HaXml.XmlContent.Parser: class (HTypeable a) => XmlContent a
+ Text.XML.HaXml.XmlContent.Parser: class HTypeable a => XmlContent a
- Text.XML.HaXml.XmlContent.Parser: definite :: (XmlContent a) => XMLParser a -> String -> String -> XMLParser a
+ Text.XML.HaXml.XmlContent.Parser: definite :: XmlContent a => XMLParser a -> String -> String -> XMLParser a
- Text.XML.HaXml.XmlContent.Parser: fromAttrToTyp :: (XmlAttrType a) => String -> Attribute -> Maybe a
+ Text.XML.HaXml.XmlContent.Parser: fromAttrToTyp :: XmlAttrType a => String -> Attribute -> Maybe a
- Text.XML.HaXml.XmlContent.Parser: fromAttrs :: (XmlAttributes a) => [Attribute] -> a
+ Text.XML.HaXml.XmlContent.Parser: fromAttrs :: XmlAttributes a => [Attribute] -> a
- Text.XML.HaXml.XmlContent.Parser: mkElem :: (XmlContent a) => a -> [Content ()] -> Content ()
+ Text.XML.HaXml.XmlContent.Parser: mkElem :: XmlContent a => a -> [Content ()] -> Content ()
- Text.XML.HaXml.XmlContent.Parser: parseContents :: (XmlContent a) => XMLParser a
+ Text.XML.HaXml.XmlContent.Parser: parseContents :: XmlContent a => XMLParser a
- Text.XML.HaXml.XmlContent.Parser: toAttrFrTyp :: (XmlAttrType a) => String -> a -> Maybe Attribute
+ Text.XML.HaXml.XmlContent.Parser: toAttrFrTyp :: XmlAttrType a => String -> a -> Maybe Attribute
- Text.XML.HaXml.XmlContent.Parser: toAttrs :: (XmlAttributes a) => a -> [Attribute]
+ Text.XML.HaXml.XmlContent.Parser: toAttrs :: XmlAttributes a => a -> [Attribute]
- Text.XML.HaXml.XmlContent.Parser: toContents :: (XmlContent a) => a -> [Content ()]
+ Text.XML.HaXml.XmlContent.Parser: toContents :: XmlContent a => a -> [Content ()]
- Text.XML.HaXml.XmlContent.Parser: xFromChar :: (XmlContent a) => Char -> a
+ Text.XML.HaXml.XmlContent.Parser: xFromChar :: XmlContent a => Char -> a
- Text.XML.HaXml.XmlContent.Parser: xToChar :: (XmlContent a) => a -> Char
+ Text.XML.HaXml.XmlContent.Parser: xToChar :: XmlContent a => a -> Char

Files

HaXml.cabal view
@@ -1,5 +1,5 @@ name:		HaXml-version:	1.20.1+version:	1.20.2 license:	LGPL license-file:	COPYRIGHT author:		Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk>@@ -62,47 +62,54 @@   else     build-depends: base < 2 || >= 3, bytestring   extensions: CPP, ExistentialQuantification-  cpp-options: -DVERSION=1.20.1+  cpp-options: -DMYVERSION="1.20.2"   nhc98-options: -K10M  Executable Canonicalise   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: Canonicalise.hs  Executable CanonicaliseLazy   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: CanonicaliseLazy.hs  Executable Xtract   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: Xtract.hs  Executable XtractLazy   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: XtractLazy.hs  Executable Validate   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: Validate.hs  Executable MkOneOf   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: MkOneOf.hs  Executable DtdToHaskell   GHC-Options: -Wall   Extensions:  CPP   Hs-Source-Dirs: src/tools, src+  cpp-options: -DMYVERSION="1.20.2"   Main-Is: DtdToHaskell.hs
Makefile view
@@ -1,5 +1,5 @@ SOFTWARE = HaXml-VERSION  = 1.20.1+VERSION  = 1.20.2  #CPP      = cpp -traditional CPP     = cpphs --text --noline	# useful e.g. on MacOS X@@ -90,7 +90,7 @@ 		do mkdir -p docs/HaXml/src/$$dir; \ 		done 	for file in $(SRCS); \-		do $(CPP) -D__NHC__=120 $$file >$$file.uncpp.hs; \+		do $(CPP) -D__NHC__=120 -DMYVERSION="\"$(VERSION)\"" $$file >$$file.uncpp.hs; \ 		   HsColour -anchor -html $$file >docs/HaXml/`dirname $$file`/`basename $$file .hs`.html; \ 		done 	haddock --html --title=HaXml --odir=docs/HaXml \
configure view
@@ -2,7 +2,7 @@ #       configure -- prepare to compile/install the HaXml package #       author:   Malcolm.Wallace@cs.york.ac.uk, August 2002 -VERSION="1.20.1"+VERSION="1.20.2"  if [ -f obj/prefix ] then INSTALLDIR=`cat obj/prefix`
docs/HaXml/src/Text/XML/HaXml.html view
@@ -1,40 +1,41 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html>-<pre><a name="line-1"></a><font color=Magenta><em>#</em></font>define dummy	<font color=Blue>-- just to ensure cpp gets called on this file</font>-<a name="line-2"></a><font color=Blue>-- | This is just a convenient way of bunching the XML combinators</font>-<a name="line-3"></a><font color=Blue>--   together with some other things you are likely to want at the</font>-<a name="line-4"></a><font color=Blue>--   same time.</font>-<a name="line-5"></a><font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml-<a name="line-6"></a>  <font color=Cyan>(</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types-<a name="line-7"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Combinators-<a name="line-8"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Parse-<a name="line-9"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Pretty-<a name="line-10"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Generate-<a name="line-11"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Parse-<a name="line-12"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Validate-<a name="line-13"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Wrappers-<a name="line-14"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Verbatim-<a name="line-15"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Escape-<a name="line-16"></a>  <font color=Cyan>,</font> render-<a name="line-17"></a>  <font color=Cyan>,</font> version-<a name="line-18"></a>  <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="line-19"></a>-<a name="line-20"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types-<a name="line-21"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Combinators-<a name="line-22"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Parse       <font color=Cyan>(</font>xmlParse<font color=Cyan>,</font>dtdParse<font color=Cyan>)</font>-<a name="line-23"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Pretty      <font color=Cyan>(</font>element<font color=Cyan>)</font>-<a name="line-24"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Generate-<a name="line-25"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Parse  <font color=Cyan>(</font>htmlParse<font color=Cyan>)</font>-<a name="line-26"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Validate    <font color=Cyan>(</font>validate<font color=Cyan>)</font>-<a name="line-27"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Wrappers    <font color=Cyan>(</font>fix2Args<font color=Cyan>,</font>processXmlWith<font color=Cyan>)</font>-<a name="line-28"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Verbatim-<a name="line-29"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Escape-<a name="line-30"></a>-<a name="line-31"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>PrettyPrint<font color=Cyan>.</font>HughesPJ  <font color=Cyan>(</font>render<font color=Cyan>)</font>-<a name="line-32"></a>-<a name="line-33"></a><a name="version"></a><font color=Blue>-- | The version of the library.</font>-<a name="line-34"></a><font color=Blue>version</font> <font color=Red>::</font> String-<a name="line-35"></a><font color=Blue>version</font>  <font color=Red>=</font> <font color=Magenta>"VERSION"</font>-<a name="line-36"></a>		<font color=Blue>-- expect cpp to fill in value</font>+<pre><a name="line-1"></a><font color=Blue>{-# LANGUAGE CPP #-}</font>+<a name="line-2"></a><font color=Magenta><em>#define dummy	-- just to ensure cpp gets called on this file</em></font>+<a name="line-3"></a><font color=Blue>-- | This is just a convenient way of bunching the XML combinators</font>+<a name="line-4"></a><font color=Blue>--   together with some other things you are likely to want at the</font>+<a name="line-5"></a><font color=Blue>--   same time.</font>+<a name="line-6"></a><font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml+<a name="line-7"></a>  <font color=Cyan>(</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types+<a name="line-8"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Combinators+<a name="line-9"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Parse+<a name="line-10"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Pretty+<a name="line-11"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Generate+<a name="line-12"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Parse+<a name="line-13"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Validate+<a name="line-14"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Wrappers+<a name="line-15"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Verbatim+<a name="line-16"></a>  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Escape+<a name="line-17"></a>  <font color=Cyan>,</font> render+<a name="line-18"></a>  <font color=Cyan>,</font> version+<a name="line-19"></a>  <font color=Cyan>)</font> <font color=Green><u>where</u></font>+<a name="line-20"></a>+<a name="line-21"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types+<a name="line-22"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Combinators+<a name="line-23"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Parse       <font color=Cyan>(</font>xmlParse<font color=Cyan>,</font>dtdParse<font color=Cyan>)</font>+<a name="line-24"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Pretty      <font color=Cyan>(</font>element<font color=Cyan>)</font>+<a name="line-25"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Generate+<a name="line-26"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Parse  <font color=Cyan>(</font>htmlParse<font color=Cyan>)</font>+<a name="line-27"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Validate    <font color=Cyan>(</font>validate<font color=Cyan>)</font>+<a name="line-28"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Wrappers    <font color=Cyan>(</font>fix2Args<font color=Cyan>,</font>processXmlWith<font color=Cyan>)</font>+<a name="line-29"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Verbatim+<a name="line-30"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Escape+<a name="line-31"></a>+<a name="line-32"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>PrettyPrint<font color=Cyan>.</font>HughesPJ  <font color=Cyan>(</font>render<font color=Cyan>)</font>+<a name="line-33"></a>+<a name="line-34"></a><a name="version"></a><font color=Blue>-- | The version of the library.</font>+<a name="line-35"></a><font color=Blue>version</font> <font color=Red>::</font> String+<a name="line-36"></a><font color=Blue>version</font>  <font color=Red>=</font> MYVERSION+<a name="line-37"></a>		<font color=Blue>-- expect cpp to fill in value</font> </pre> </html>
docs/HaXml/src/Text/XML/HaXml/Wrappers.html view
@@ -1,76 +1,85 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html>-<pre><a name="line-1"></a><font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Wrappers-<a name="line-2"></a>  <font color=Cyan>(</font> fix2Args-<a name="line-3"></a>  <font color=Cyan>,</font> processXmlWith-<a name="line-4"></a>  <font color=Cyan>,</font> onContent-<a name="line-5"></a>  <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="line-6"></a>-<a name="line-7"></a><font color=Blue>-- imports required for processXmlWith and fix2Args</font>-<a name="line-8"></a><font color=Green><u>import</u></font> Prelude hiding <font color=Cyan>(</font>filter<font color=Cyan>)</font>-<a name="line-9"></a><font color=Green><u>import</u></font> System-<a name="line-10"></a><font color=Green><u>import</u></font> IO-<a name="line-11"></a><font color=Green><u>import</u></font> List <font color=Cyan>(</font>isSuffixOf<font color=Cyan>)</font>-<a name="line-12"></a>-<a name="line-13"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types       <font color=Cyan>(</font>Document<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font>Content<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-14"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Combinators <font color=Cyan>(</font>CFilter<font color=Cyan>)</font>-<a name="line-15"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Posn        <font color=Cyan>(</font>Posn<font color=Cyan>,</font>posInNewCxt<font color=Cyan>)</font>-<a name="line-16"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Parse       <font color=Cyan>(</font>xmlParse<font color=Cyan>)</font>-<a name="line-17"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Parse  <font color=Cyan>(</font>htmlParse<font color=Cyan>)</font>-<a name="line-18"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Pretty <font color=Green><u>as</u></font> PP<font color=Cyan>(</font>document<font color=Cyan>)</font>-<a name="line-19"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>PrettyPrint<font color=Cyan>.</font>HughesPJ  <font color=Cyan>(</font>render<font color=Cyan>)</font>-<a name="line-20"></a>-<a name="line-21"></a>-<a name="line-22"></a><a name="fix2Args"></a><font color=Blue>-- | This useful auxiliary checks the commandline arguments for two</font>-<a name="line-23"></a><font color=Blue>--   filenames, the input and output file respectively.  If either</font>-<a name="line-24"></a><font color=Blue>--   is missing, it is replaced by '-', which can be interpreted by the</font>-<a name="line-25"></a><font color=Blue>--   caller as stdin and\/or stdout.</font>-<a name="line-26"></a><font color=Blue>fix2Args</font> <font color=Red>::</font> IO <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font>-<a name="line-27"></a><font color=Blue>fix2Args</font> <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="line-28"></a>  args <font color=Red>&lt;-</font> getArgs-<a name="line-29"></a>  <font color=Green><u>case</u></font> length args <font color=Green><u>of</u></font>-<a name="line-30"></a>    <font color=Magenta>0</font> <font color=Red>-&gt;</font> return <font color=Cyan>(</font><font color=Magenta>"-"</font><font color=Cyan>,</font>     <font color=Magenta>"-"</font><font color=Cyan>)</font>-<a name="line-31"></a>    <font color=Magenta>1</font> <font color=Red>-&gt;</font> return <font color=Cyan>(</font>args<font color=Cyan>!!</font><font color=Magenta>0</font><font color=Cyan>,</font> <font color=Magenta>"-"</font><font color=Cyan>)</font>-<a name="line-32"></a>    <font color=Magenta>2</font> <font color=Red>-&gt;</font> return <font color=Cyan>(</font>args<font color=Cyan>!!</font><font color=Magenta>0</font><font color=Cyan>,</font> args<font color=Cyan>!!</font><font color=Magenta>1</font><font color=Cyan>)</font>-<a name="line-33"></a>    <font color=Green><u>_</u></font> <font color=Red>-&gt;</font> <font color=Green><u>do</u></font> prog <font color=Red>&lt;-</font> getProgName-<a name="line-34"></a>            putStrLn <font color=Cyan>(</font><font color=Magenta>"Usage: "</font><font color=Cyan>++</font>prog<font color=Cyan>++</font><font color=Magenta>" [infile] [outfile]"</font><font color=Cyan>)</font>-<a name="line-35"></a>            exitFailure-<a name="line-36"></a>-<a name="line-37"></a>-<a name="line-38"></a><a name="processXmlWith"></a><font color=Blue>-- | The wrapper @processXmlWith@ returns an IO () computation</font>-<a name="line-39"></a><font color=Blue>--   that collects the filenames (or stdin\/stdout) to use when</font>-<a name="line-40"></a><font color=Blue>--   reading\/writing XML documents.  Its CFilter argument</font>-<a name="line-41"></a><font color=Blue>--   is applied to transform the XML document from the input and</font>-<a name="line-42"></a><font color=Blue>--   write it to the output.  No DTD is attached to the output.</font>-<a name="line-43"></a><font color=Blue>--</font>-<a name="line-44"></a><font color=Blue>--   If the input filename ends with .html or .htm, it is parsed using</font>-<a name="line-45"></a><font color=Blue>--   the error-correcting HTML parser rather than the strict XML parser.</font>-<a name="line-46"></a><font color=Blue>processXmlWith</font> <font color=Red>::</font> CFilter Posn <font color=Red>-&gt;</font> IO ()-<a name="line-47"></a><font color=Blue>processXmlWith</font> f <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="line-48"></a>  <font color=Cyan>(</font>inf<font color=Cyan>,</font>outf<font color=Cyan>)</font> <font color=Red>&lt;-</font> fix2Args-<a name="line-49"></a>  input      <font color=Red>&lt;-</font> <font color=Green><u>if</u></font> inf<font color=Cyan>==</font><font color=Magenta>"-"</font> <font color=Green><u>then</u></font> getContents <font color=Green><u>else</u></font> readFile inf-<a name="line-50"></a>  o          <font color=Red>&lt;-</font> <font color=Green><u>if</u></font> outf<font color=Cyan>==</font><font color=Magenta>"-"</font> <font color=Green><u>then</u></font> return stdout <font color=Green><u>else</u></font> openFile outf WriteMode-<a name="line-51"></a>  parse      <font color=Red>&lt;-</font> <font color=Green><u>if</u></font> <font color=Magenta>".html"</font> <font color=Cyan>`isSuffixOf`</font> inf <font color=Cyan>||</font> <font color=Magenta>".htm"</font> <font color=Cyan>`isSuffixOf`</font> inf-<a name="line-52"></a>                <font color=Green><u>then</u></font> return <font color=Cyan>(</font>htmlParse inf<font color=Cyan>)</font>-<a name="line-53"></a>                <font color=Green><u>else</u></font> return <font color=Cyan>(</font>xmlParse inf<font color=Cyan>)</font>-<a name="line-54"></a>  <font color=Cyan>(</font> hPutStrLn o <font color=Cyan>.</font> render <font color=Cyan>.</font> PP<font color=Cyan>.</font>document <font color=Cyan>.</font> onContent inf f <font color=Cyan>.</font> parse <font color=Cyan>)</font> input-<a name="line-55"></a>  hFlush o-<a name="line-56"></a>-<a name="line-57"></a>  <font color=Green><u>where</u></font>-<a name="line-58"></a>    onContent <font color=Red>::</font> FilePath <font color=Red>-&gt;</font> <font color=Cyan>(</font>CFilter Posn<font color=Cyan>)</font> <font color=Red>-&gt;</font> Document Posn <font color=Red>-&gt;</font> Document Posn-<a name="line-59"></a>    onContent file filter <font color=Cyan>(</font>Document p s e m<font color=Cyan>)</font> <font color=Red>=</font>-<a name="line-60"></a>        <font color=Green><u>case</u></font> filter <font color=Cyan>(</font>CElem e <font color=Cyan>(</font>posInNewCxt file Nothing<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Green><u>of</u></font>-<a name="line-61"></a>            <font color=Red>[</font>CElem e' <font color=Green><u>_</u></font><font color=Red>]</font> <font color=Red>-&gt;</font> Document p s e' m-<a name="line-62"></a>            []           <font color=Red>-&gt;</font> error <font color=Magenta>"produced no output"</font>-<a name="line-63"></a>            <font color=Green><u>_</u></font>            <font color=Red>-&gt;</font> error <font color=Magenta>"produced more than one output"</font>-<a name="line-64"></a>-<a name="line-65"></a><a name="onContent"></a><font color=Blue>-- | The wrapper @onContent@ simply applies a given content filter to a</font>-<a name="line-66"></a><font color=Blue>--   document.  Ambiguous or empty results raise an error exception.</font>-<a name="line-67"></a><font color=Blue>onContent</font> <font color=Red>::</font> CFilter i <font color=Red>-&gt;</font> Document i <font color=Red>-&gt;</font> Document i-<a name="line-68"></a><font color=Blue>onContent</font> filter <font color=Cyan>(</font>Document p s e m<font color=Cyan>)</font> <font color=Red>=</font>-<a name="line-69"></a>    <font color=Green><u>case</u></font> filter <font color=Cyan>(</font>CElem e undefined<font color=Cyan>)</font> <font color=Green><u>of</u></font>-<a name="line-70"></a>      <font color=Red>[</font>CElem e' <font color=Green><u>_</u></font><font color=Red>]</font> <font color=Red>-&gt;</font> Document p s e' m-<a name="line-71"></a>      []           <font color=Red>-&gt;</font> error <font color=Magenta>"onContent: produced no output"</font>-<a name="line-72"></a>      <font color=Green><u>_</u></font>            <font color=Red>-&gt;</font> error <font color=Magenta>"onContent: produced more than one output"</font>+<pre><a name="line-1"></a><font color=Blue>{-# LANGUAGE CPP #-}</font>+<a name="line-2"></a><font color=Magenta><em>#define dummy		-- just to ensure that cpp gets called on this file</em></font>+<a name="line-3"></a><font color=Green><u>module</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Wrappers+<a name="line-4"></a>  <font color=Cyan>(</font> fix2Args+<a name="line-5"></a>  <font color=Cyan>,</font> processXmlWith+<a name="line-6"></a>  <font color=Cyan>,</font> onContent+<a name="line-7"></a>  <font color=Cyan>)</font> <font color=Green><u>where</u></font>+<a name="line-8"></a>+<a name="line-9"></a><font color=Blue>-- imports required for processXmlWith and fix2Args</font>+<a name="line-10"></a><font color=Green><u>import</u></font> Prelude hiding <font color=Cyan>(</font>filter<font color=Cyan>)</font>+<a name="line-11"></a><font color=Green><u>import</u></font> System+<a name="line-12"></a><font color=Green><u>import</u></font> IO+<a name="line-13"></a><font color=Green><u>import</u></font> List <font color=Cyan>(</font>isSuffixOf<font color=Cyan>)</font>+<a name="line-14"></a><font color=Green><u>import</u></font> Control<font color=Cyan>.</font>Monad <font color=Cyan>(</font>when<font color=Cyan>)</font>+<a name="line-15"></a>+<a name="line-16"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types       <font color=Cyan>(</font>Document<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font>Content<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-17"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Combinators <font color=Cyan>(</font>CFilter<font color=Cyan>)</font>+<a name="line-18"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Posn        <font color=Cyan>(</font>Posn<font color=Cyan>,</font>posInNewCxt<font color=Cyan>)</font>+<a name="line-19"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Parse       <font color=Cyan>(</font>xmlParse<font color=Cyan>)</font>+<a name="line-20"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Html<font color=Cyan>.</font>Parse  <font color=Cyan>(</font>htmlParse<font color=Cyan>)</font>+<a name="line-21"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Pretty <font color=Green><u>as</u></font> PP<font color=Cyan>(</font>document<font color=Cyan>)</font>+<a name="line-22"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>PrettyPrint<font color=Cyan>.</font>HughesPJ  <font color=Cyan>(</font>render<font color=Cyan>)</font>+<a name="line-23"></a>+<a name="line-24"></a>+<a name="line-25"></a><a name="fix2Args"></a><font color=Blue>-- | This useful auxiliary checks the commandline arguments for two</font>+<a name="line-26"></a><font color=Blue>--   filenames, the input and output file respectively.  If either</font>+<a name="line-27"></a><font color=Blue>--   is missing, it is replaced by '-', which can be interpreted by the</font>+<a name="line-28"></a><font color=Blue>--   caller as stdin and\/or stdout.</font>+<a name="line-29"></a><font color=Blue>fix2Args</font> <font color=Red>::</font> IO <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font>+<a name="line-30"></a><font color=Blue>fix2Args</font> <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="line-31"></a>  args <font color=Red>&lt;-</font> getArgs+<a name="line-32"></a>  when <font color=Cyan>(</font><font color=Magenta>"--version"</font> <font color=Cyan>`elem`</font> args<font color=Cyan>)</font> <font color=Cyan>$</font> <font color=Green><u>do</u></font>+<a name="line-33"></a>      putStrLn <font color=Cyan>$</font> <font color=Magenta>"part of HaXml-"</font><font color=Cyan>++</font>MYVERSION+<a name="line-34"></a>      exitWith ExitSuccess+<a name="line-35"></a>  when <font color=Cyan>(</font><font color=Magenta>"--help"</font> <font color=Cyan>`elem`</font> args<font color=Cyan>)</font> <font color=Cyan>$</font> <font color=Green><u>do</u></font>+<a name="line-36"></a>      putStrLn <font color=Cyan>$</font> <font color=Magenta>"See http://haskell.org/HaXml"</font>+<a name="line-37"></a>      exitWith ExitSuccess+<a name="line-38"></a>  <font color=Green><u>case</u></font> length args <font color=Green><u>of</u></font>+<a name="line-39"></a>    <font color=Magenta>0</font> <font color=Red>-&gt;</font> return <font color=Cyan>(</font><font color=Magenta>"-"</font><font color=Cyan>,</font>     <font color=Magenta>"-"</font><font color=Cyan>)</font>+<a name="line-40"></a>    <font color=Magenta>1</font> <font color=Red>-&gt;</font> return <font color=Cyan>(</font>args<font color=Cyan>!!</font><font color=Magenta>0</font><font color=Cyan>,</font> <font color=Magenta>"-"</font><font color=Cyan>)</font>+<a name="line-41"></a>    <font color=Magenta>2</font> <font color=Red>-&gt;</font> return <font color=Cyan>(</font>args<font color=Cyan>!!</font><font color=Magenta>0</font><font color=Cyan>,</font> args<font color=Cyan>!!</font><font color=Magenta>1</font><font color=Cyan>)</font>+<a name="line-42"></a>    <font color=Green><u>_</u></font> <font color=Red>-&gt;</font> <font color=Green><u>do</u></font> prog <font color=Red>&lt;-</font> getProgName+<a name="line-43"></a>            putStrLn <font color=Cyan>(</font><font color=Magenta>"Usage: "</font><font color=Cyan>++</font>prog<font color=Cyan>++</font><font color=Magenta>" [infile] [outfile]"</font><font color=Cyan>)</font>+<a name="line-44"></a>            exitFailure+<a name="line-45"></a>+<a name="line-46"></a>+<a name="line-47"></a><a name="processXmlWith"></a><font color=Blue>-- | The wrapper @processXmlWith@ returns an IO () computation</font>+<a name="line-48"></a><font color=Blue>--   that collects the filenames (or stdin\/stdout) to use when</font>+<a name="line-49"></a><font color=Blue>--   reading\/writing XML documents.  Its CFilter argument</font>+<a name="line-50"></a><font color=Blue>--   is applied to transform the XML document from the input and</font>+<a name="line-51"></a><font color=Blue>--   write it to the output.  No DTD is attached to the output.</font>+<a name="line-52"></a><font color=Blue>--</font>+<a name="line-53"></a><font color=Blue>--   If the input filename ends with .html or .htm, it is parsed using</font>+<a name="line-54"></a><font color=Blue>--   the error-correcting HTML parser rather than the strict XML parser.</font>+<a name="line-55"></a><font color=Blue>processXmlWith</font> <font color=Red>::</font> CFilter Posn <font color=Red>-&gt;</font> IO ()+<a name="line-56"></a><font color=Blue>processXmlWith</font> f <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="line-57"></a>  <font color=Cyan>(</font>inf<font color=Cyan>,</font>outf<font color=Cyan>)</font> <font color=Red>&lt;-</font> fix2Args+<a name="line-58"></a>  input      <font color=Red>&lt;-</font> <font color=Green><u>if</u></font> inf<font color=Cyan>==</font><font color=Magenta>"-"</font> <font color=Green><u>then</u></font> getContents <font color=Green><u>else</u></font> readFile inf+<a name="line-59"></a>  o          <font color=Red>&lt;-</font> <font color=Green><u>if</u></font> outf<font color=Cyan>==</font><font color=Magenta>"-"</font> <font color=Green><u>then</u></font> return stdout <font color=Green><u>else</u></font> openFile outf WriteMode+<a name="line-60"></a>  parse      <font color=Red>&lt;-</font> <font color=Green><u>if</u></font> <font color=Magenta>".html"</font> <font color=Cyan>`isSuffixOf`</font> inf <font color=Cyan>||</font> <font color=Magenta>".htm"</font> <font color=Cyan>`isSuffixOf`</font> inf+<a name="line-61"></a>                <font color=Green><u>then</u></font> return <font color=Cyan>(</font>htmlParse inf<font color=Cyan>)</font>+<a name="line-62"></a>                <font color=Green><u>else</u></font> return <font color=Cyan>(</font>xmlParse inf<font color=Cyan>)</font>+<a name="line-63"></a>  <font color=Cyan>(</font> hPutStrLn o <font color=Cyan>.</font> render <font color=Cyan>.</font> PP<font color=Cyan>.</font>document <font color=Cyan>.</font> onContent inf f <font color=Cyan>.</font> parse <font color=Cyan>)</font> input+<a name="line-64"></a>  hFlush o+<a name="line-65"></a>+<a name="line-66"></a>  <font color=Green><u>where</u></font>+<a name="line-67"></a>    onContent <font color=Red>::</font> FilePath <font color=Red>-&gt;</font> <font color=Cyan>(</font>CFilter Posn<font color=Cyan>)</font> <font color=Red>-&gt;</font> Document Posn <font color=Red>-&gt;</font> Document Posn+<a name="line-68"></a>    onContent file filter <font color=Cyan>(</font>Document p s e m<font color=Cyan>)</font> <font color=Red>=</font>+<a name="line-69"></a>        <font color=Green><u>case</u></font> filter <font color=Cyan>(</font>CElem e <font color=Cyan>(</font>posInNewCxt file Nothing<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Green><u>of</u></font>+<a name="line-70"></a>            <font color=Red>[</font>CElem e' <font color=Green><u>_</u></font><font color=Red>]</font> <font color=Red>-&gt;</font> Document p s e' m+<a name="line-71"></a>            []           <font color=Red>-&gt;</font> error <font color=Magenta>"produced no output"</font>+<a name="line-72"></a>            <font color=Green><u>_</u></font>            <font color=Red>-&gt;</font> error <font color=Magenta>"produced more than one output"</font>+<a name="line-73"></a>+<a name="line-74"></a><a name="onContent"></a><font color=Blue>-- | The wrapper @onContent@ simply applies a given content filter to a</font>+<a name="line-75"></a><font color=Blue>--   document.  Ambiguous or empty results raise an error exception.</font>+<a name="line-76"></a><font color=Blue>onContent</font> <font color=Red>::</font> CFilter i <font color=Red>-&gt;</font> Document i <font color=Red>-&gt;</font> Document i+<a name="line-77"></a><font color=Blue>onContent</font> filter <font color=Cyan>(</font>Document p s e m<font color=Cyan>)</font> <font color=Red>=</font>+<a name="line-78"></a>    <font color=Green><u>case</u></font> filter <font color=Cyan>(</font>CElem e undefined<font color=Cyan>)</font> <font color=Green><u>of</u></font>+<a name="line-79"></a>      <font color=Red>[</font>CElem e' <font color=Green><u>_</u></font><font color=Red>]</font> <font color=Red>-&gt;</font> Document p s e' m+<a name="line-80"></a>      []           <font color=Red>-&gt;</font> error <font color=Magenta>"onContent: produced no output"</font>+<a name="line-81"></a>      <font color=Green><u>_</u></font>            <font color=Red>-&gt;</font> error <font color=Magenta>"onContent: produced more than one output"</font> </pre> </html>
docs/changelog.html view
@@ -13,12 +13,6 @@ </center> <hr> -<h3>Changes in 1.20.1</h3>-<p>-<ul>-<li> Fixes a stack-overflow in code generated by DtdToHaskell.-</ul>- <h3>Changes in 1.20</h3> <p> <ul>@@ -26,6 +20,8 @@ <li> Fixes a runtime-crash bug in Xtract. <li> Fiddles with the pretty-printing to make it more correct on mixed      text and references (e.g. character escapes).+<li> 1.20.1 fixes a stack-overflow in code generated by DtdToHaskell.+<li> 1.20.2 adds a --version and --help argument to all executables. </ul>  <h3>Changes in 1.19</h3>
docs/index.html view
@@ -131,11 +131,11 @@ <center><h3><a name="download">Downloads</a></h3></center> <p> <b>Latest version:</b><br>-HaXml-1.20.1, release date 2010.01.13<br>+HaXml-1.20.2, release date 2010.01.14<br> From <a href="http://hackage.haskell.org/package/HaXml">Hackage</a><br> By HTTP:-<a href="HaXml-1.20.1.tar.gz">.tar.gz</a>,-<a href="HaXml-1.20.1.zip">.zip</a>.+<a href="HaXml-1.20.2.tar.gz">.tar.gz</a>,+<a href="HaXml-1.20.2.zip">.zip</a>. <br> By FTP:  <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/">@@ -158,10 +158,14 @@ Then, for more recent compilers, use the standard Cabal method of installation: <pre>-    cabal install HaXml-1.20.1+    cabal install HaXml </pre> or <pre>+    cabal install HaXml-1.20.2+</pre>+or+<pre>     runhaskell Setup.hs configure [--prefix=...] [--buildwith=...]     runhaskell Setup.hs build     runhaskell Setup.hs install@@ -192,6 +196,7 @@ <center><h3><a name="news">Recent news</a></h3></center>  <p>+Version 1.20.2 adds --version and --help arguments to all executables.<br> Version 1.20.1 fixes a small bug in DtdToHaskell.<br> Version 1.20 is the new stable version.<br> 
src/Makefile view
@@ -1,5 +1,5 @@ SOFTWARE = HaXml-VERSION = 1.20.1+VERSION = 1.20.2  LIBSRCS = \ 	Text/XML/HaXml.hs Text/XML/HaXml/Combinators.hs Text/XML/HaXml/Lex.hs \
src/Text/XML/HaXml.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} #define dummy	-- just to ensure cpp gets called on this file -- | This is just a convenient way of bunching the XML combinators --   together with some other things you are likely to want at the@@ -32,5 +33,5 @@  -- | The version of the library. version :: String-version  = "VERSION"+version  = MYVERSION 		-- expect cpp to fill in value
src/Text/XML/HaXml/Wrappers.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+#define dummy		-- just to ensure that cpp gets called on this file module Text.XML.HaXml.Wrappers   ( fix2Args   , processXmlWith@@ -9,6 +11,7 @@ import System import IO import List (isSuffixOf)+import Control.Monad (when)  import Text.XML.HaXml.Types       (Document(..),Content(..)) import Text.XML.HaXml.Combinators (CFilter)@@ -26,6 +29,12 @@ fix2Args :: IO (String,String) fix2Args = do   args <- getArgs+  when ("--version" `elem` args) $ do+      putStrLn $ "part of HaXml-"++MYVERSION+      exitWith ExitSuccess+  when ("--help" `elem` args) $ do+      putStrLn $ "See http://haskell.org/HaXml"+      exitWith ExitSuccess   case length args of     0 -> return ("-",     "-")     1 -> return (args!!0, "-")
src/tools/DtdToHaskell.hs view
@@ -9,8 +9,10 @@ import System import IO import List (nub,takeWhile,dropWhile)+import Control.Monad  --import Text.XML.HaXml.Wrappers   (fix2Args)+import Text.XML.HaXml            (version) import Text.XML.HaXml.Types      (DocTypeDecl(..)) import Text.XML.HaXml.Parse      (dtdParse) import Text.XML.HaXml.DtdToHaskell.TypeDef  (TypeDef,ppTypeDef,mangle)@@ -22,6 +24,12 @@ fix2Args :: IO (String,String) fix2Args = do   args <- getArgs+  when ("--version" `elem` args) $ do+      putStrLn $ "part of HaXml-"++version+      exitWith ExitSuccess+  when ("--help" `elem` args) $ do+      putStrLn $ "See http://haskell.org/HaXml"+      exitWith ExitSuccess   case length args of     0 -> return ("-",     "-")     1 -> return (args!!0, "-")
src/tools/MkOneOf.hs view
@@ -1,13 +1,21 @@ module Main where  import Prelude hiding (max)-import System (getArgs)+import System (getArgs,exitWith,ExitCode(..)) import Char   (isDigit) import IO     (hFlush,stdout)+import Control.Monad  (when)+import Text.XML.HaXml (version)  main  :: IO () main = do     args <- getArgs+    when ("--version" `elem` args) $ do+        putStrLn $ "part of HaXml-"++version+        exitWith ExitSuccess+    when ("--help" `elem` args) $ do+        putStrLn $ "See http://haskell.org/HaXml"+        exitWith ExitSuccess     case length args of       1 -> do n <- saferead (head args)               putStrLn ("module Text.XML.HaXml."++constructor 1 n++" where\n")
src/tools/Xtract.hs view
@@ -6,7 +6,9 @@ import IO import Char         (toLower) import List         (isSuffixOf)+import Control.Monad(when) +import Text.XML.HaXml               (version) import Text.XML.HaXml.Types import Text.XML.HaXml.Posn          (posInNewCxt) import Text.XML.HaXml.Parse         (xmlParse)@@ -22,13 +24,18 @@ escape = xmlEscapeContent stdXmlEscaper  main :: IO ()-main =-  getArgs >>= \args->-  if length args < 1 then-    putStrLn "Usage: Xtract [-n] <pattern> [xmlfile ...]" >>-    exitWith (ExitFailure 1)-  else-    let (pattern,files,esc) =+main = do+  args <- getArgs+  when ("--version" `elem` args) $ do+      putStrLn $ "part of HaXml-"++version+      exitWith ExitSuccess+  when ("--help" `elem` args) $ do+      putStrLn $ "See http://haskell.org/HaXml"+      exitWith ExitSuccess+  when (length args < 1) $ do+      putStrLn "Usage: Xtract [-n] <pattern> [xmlfile ...]"+      exitWith (ExitFailure 1)+  let (pattern,files,esc) =           case args of ("-n":pat:files) -> (pat,files, (:[]))                        (pat:"-n":files) -> (pat,files, (:[]))                        (pat:files)      -> (pat,files, escape.(:[]))@@ -38,11 +45,10 @@ --                           return ((if isHTML x --                                    then htmlParse x else xmlParse x) c)) --                  files-    in --  findcontents >>= \cs-> --  ( hPutStrLn stdout . render . vcat --  . map (vcat . map content . selection . docContent)) cs-    mapM_ (\x-> do c <- (if x=="-" then getContents else readFile x)+  mapM_ (\x->   do c <- (if x=="-" then getContents else readFile x)                    ( if isHTML x then                           hPutStrLn stdout . render . htmlprint                           . xtract (map toLower) pattern
src/tools/XtractLazy.hs view
@@ -6,7 +6,9 @@ import IO import Char         (toLower) import List         (isSuffixOf)+import Control.Monad(when) +import Text.XML.HaXml               (version) import Text.XML.HaXml.Types import Text.XML.HaXml.Posn          (posInNewCxt,Posn) import Text.XML.HaXml.ParseLazy     (xmlParse)@@ -21,13 +23,20 @@ escape = xmlEscapeContent stdXmlEscaper  main :: IO ()-main =-  getArgs >>= \args->-  if length args < 1 then-    putStrLn "Usage: Xtract [-n] <pattern> [xmlfile ...]" >>-    exitWith (ExitFailure 1)-  else-    let (pattern,files,esc) =+main = do+  args <- getArgs+  when ("--version" `elem` args) $ do+      putStrLn $ "part of HaXml-"++version+      exitWith ExitSuccess+  when ("--help" `elem` args) $ do+      putStrLn $ "See http://haskell.org/HaXml"+      exitWith ExitSuccess++  when (length args < 1) $ do+      putStrLn "Usage: Xtract [-n] <pattern> [xmlfile ...]"+      exitWith (ExitFailure 1)++  let (pattern,files,esc) =           case args of ("-n":pat:files) -> (pat,files, (:[]))                        (pat:"-n":files) -> (pat,files, (:[]))                        (pat:files)      -> (pat,files, escape.(:[]))@@ -37,11 +46,10 @@ --                           return ((if isHTML x --                                    then htmlParse x else xmlParse x) c)) --                  files-    in --  findcontents >>= \cs-> --  ( hPutStrLn stdout . render . vcat --  . map (vcat . map content . selection . getElem)) cs-    mapM_ (\x-> do c <- (if x=="-" then getContents else readFile x)+  mapM_ (\x->   do c <- (if x=="-" then getContents else readFile x)                    ( if isHTML x then                           hPutStrLn stdout . render . htmlprint                           . xtract (map toLower) pattern