packages feed

hscolour 1.12 → 1.13

raw patch · 37 files changed

+882/−362 lines, 37 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Language.Haskell.HsColour: ICSS :: Output
+ Language.Haskell.HsColour.ANSI: Italic :: Highlight
+ Language.Haskell.HsColour.ColourHighlight: Italic :: Highlight
+ Language.Haskell.HsColour.InlineCSS: hscolour :: ColourPrefs -> Bool -> Bool -> String -> String -> String
+ Language.Haskell.HsColour.Options: ICSS :: Output
+ Language.Haskell.HsColour.Output: ICSS :: Output

Files

.hscolour view
@@ -2,7 +2,7 @@   { keyword  = [Underscore,Foreground Green]   , keyglyph = [Foreground Red]   , layout   = [Foreground Cyan]-  , comment  = [Foreground Blue]+  , comment  = [Foreground Blue,Italic]   , conid    = [Normal]   , varid    = [Normal]   , conop    = [Bold,Foreground Red]
HsColour.hs view
@@ -10,7 +10,7 @@ import List  (intersperse) import Debug.Trace -version = "1.11"+version = "1.13"  optionTable :: [(String,Option)] optionTable = [ ("help",    Help)@@ -18,6 +18,7 @@               , ("print-css", Information)               , ("html",   Format HTML)               , ("css",    Format CSS)+              , ("icss",   Format ICSS)               , ("tty",    Format TTY)               , ("latex",  Format LaTeX)               , ("mirc",   Format MIRC)
Language/Haskell/HsColour.hs view
@@ -15,11 +15,12 @@                                   hscolour) where  import Language.Haskell.HsColour.Colourise (ColourPrefs(..))-import qualified Language.Haskell.HsColour.TTY   as TTY-import qualified Language.Haskell.HsColour.HTML  as HTML-import qualified Language.Haskell.HsColour.CSS   as CSS-import qualified Language.Haskell.HsColour.LaTeX as LaTeX-import qualified Language.Haskell.HsColour.MIRC  as MIRC+import qualified Language.Haskell.HsColour.TTY        as TTY+import qualified Language.Haskell.HsColour.HTML       as HTML+import qualified Language.Haskell.HsColour.CSS        as CSS+import qualified Language.Haskell.HsColour.InlineCSS  as ICSS+import qualified Language.Haskell.HsColour.LaTeX      as LaTeX+import qualified Language.Haskell.HsColour.MIRC       as MIRC import Data.List(mapAccumL, isPrefixOf)  import Data.Maybe import Language.Haskell.HsColour.Output@@ -52,11 +53,12 @@           -> String      -- ^ Title for output.           -> String      -- ^ Haskell source code.           -> String      -- ^ Coloured Haskell source code.-hscolour' TTY   pref _      _       _   = TTY.hscolour pref-hscolour' MIRC  pref _      _       _   = MIRC.hscolour pref-hscolour' LaTeX pref _      partial _   = LaTeX.hscolour pref partial-hscolour' HTML  pref anchor partial top = HTML.hscolour pref anchor partial top-hscolour' CSS   _    anchor partial top = CSS.hscolour anchor partial top+hscolour' TTY   pref _    _       _   = TTY.hscolour   pref+hscolour' MIRC  pref _    _       _   = MIRC.hscolour  pref+hscolour' LaTeX pref _    partial _   = LaTeX.hscolour pref      partial+hscolour' HTML  pref anch partial top = HTML.hscolour  pref anch partial top+hscolour' CSS   _    anch partial top = CSS.hscolour        anch partial top+hscolour' ICSS  pref anch partial top = ICSS.hscolour  pref anch partial top  -- | Separating literate files into code\/comment chunks. data Lit = Code {unL :: String} | Lit {unL :: String} deriving (Show)
Language/Haskell/HsColour/ANSI.hs view
@@ -66,6 +66,7 @@   fromEnum Concealed    = 8   fromEnum (Foreground c) = 30 + fromEnum c   fromEnum (Background c) = 40 + fromEnum c+  fromEnum Italic       = 2  -- | Make the given string appear with all of the listed highlights highlight :: [Highlight] -> String -> String
Language/Haskell/HsColour/ColourHighlight.hs view
@@ -7,7 +7,7 @@ data Colour = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White   deriving (Eq,Show,Read,Enum) --- | Types of highlighting supported by ANSI codes.+-- | Types of highlighting supported by ANSI codes (and some extra styles). data Highlight =     Normal   | Bold@@ -18,5 +18,7 @@   | Concealed   | Foreground Colour   | Background Colour+  -- Above are ANSI-only.  Below are extra styles.+  | Italic   deriving (Eq,Show,Read) 
Language/Haskell/HsColour/Colourise.hs view
@@ -24,7 +24,7 @@   { keyword  = [Foreground Green,Underscore]   , keyglyph = [Foreground Red]   , layout   = [Foreground Cyan]-  , comment  = [Foreground Blue]+  , comment  = [Foreground Blue, Italic]   , conid    = [Normal]   , varid    = [Normal]   , conop    = [Foreground Red,Bold]
Language/Haskell/HsColour/HTML.hs view
@@ -73,6 +73,7 @@ font Concealed      s = s font (Foreground c) s = "<font color="++show c++">"++s++"</font>" font (Background c) s = "<font bgcolor="++show c++">"++s++"</font>"+font Italic         s = "<i>"++s++"</i>"  escape ('<':cs) = "&lt;"++escape cs escape ('>':cs) = "&gt;"++escape cs
+ Language/Haskell/HsColour/InlineCSS.hs view
@@ -0,0 +1,80 @@+-- | Formats Haskell source code as HTML with inline CSS.+module Language.Haskell.HsColour.InlineCSS (hscolour) where++import Language.Haskell.HsColour.Anchors+import Language.Haskell.HsColour.Classify as Classify+import Language.Haskell.HsColour.Colourise+import Language.Haskell.HsColour.HTML (renderAnchors, renderComment,+                                       renderNewLinesAnchors, escape)++-- | Formats Haskell source code as a complete HTML document with inline styling+hscolour :: ColourPrefs	-- ^ Preferences for styling.+         -> Bool   -- ^ Whether to include anchors.+         -> Bool   -- ^ Whether output should be partial+                   --   (= no document headers will be included.)+         -> String -- ^ Title for HTML page.+         -> String -- ^ Haskell source code.+         -> String -- ^ An HTML document containing the coloured +                   --   Haskell source code.+hscolour prefs anchor partial title =+  (if partial then id else top'n'tail title)+  . pre+  . (if anchor +        then renderNewLinesAnchors+             . concatMap (renderAnchors (renderToken prefs))+             . insertAnchors+        else concatMap (renderToken prefs))+  . tokenise++top'n'tail :: String -> String -> String+top'n'tail title  = (cssPrefix title ++) . (++cssSuffix)++pre :: String -> String+pre =   ("<pre style=\"font-family:Consolas, Monaco, Monospace;\">"++)+      . (++"</pre>")++renderToken :: ColourPrefs -> (TokenType,String) -> String+renderToken prefs (cls,text) =+  stylise (colourise prefs cls) $+  if cls == Comment then renderComment text else escape text++stylise :: [Highlight] -> String -> String+stylise hs s = "<span style=\"" ++ concatMap style hs ++ "\">" ++s++ "</span>"++cssPrefix title = unlines+    ["<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"+    ,"<html>"+    ,"<head>"+    ,"<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->"+    ,"<title>"++title++"</title>"+    ,"</head>"+    ,"<body style=\"background-color: #131313; color: #ffffff;\">"+    ]+    +cssSuffix = unlines+    ["</body>"+    ,"</html>"+    ]++style :: Highlight -> String+style Normal         = ""+style Bold           = "font-weight: bold;"+style Dim            = "font-weight: lighter;"+style Underscore     = "text-decoration: underline;"+style Blink          = "text-decoration:  blink;"+style ReverseVideo   = ""+style Concealed      = "text-decoration:  line-through;"+style (Foreground c) = "color: "++csscolour c++";"+style (Background c) = "background-colour: "++csscolour c++";"+style Italic         = "font-style: italic;"++csscolour :: Colour -> String+csscolour Black   = "#000000"+csscolour Red     = "#ff0000"+csscolour Green   = "#00ff00"+csscolour Yellow  = "#ffff00"+csscolour Blue    = "#0000ff"+csscolour Magenta = "#ff00ff"+csscolour Cyan    = "#00ffff"+csscolour White   = "#ffffff"+
Language/Haskell/HsColour/LaTeX.hs view
@@ -74,6 +74,7 @@ latexHighlight Concealed      = ("\\conceal{", "}") latexHighlight (Foreground c) = ("\\textcolor{"++ latexColour c ++"}{", "}") latexHighlight (Background c) = ("\\colorbox{"++ latexColour c ++"}{", "}")+latexHighlight Italic         = ("{\\it{}", "}")  -- | Translate a 'Colour' into a LaTeX colour name. latexColour :: Colour -> String
Language/Haskell/HsColour/Output.hs view
@@ -5,5 +5,6 @@             | LaTeX -- ^ TeX macros             | HTML  -- ^ HTML with font tags             | CSS   -- ^ HTML with CSS.+            | ICSS  -- ^ HTML with inline CSS.             | MIRC  -- ^ mIRC chat clients   deriving (Eq,Show)
Makefile view
@@ -1,5 +1,5 @@ LIBRARY	= hscolour-VERSION	= 1.12+VERSION	= 1.13  DIRS	= Language/Haskell/HsColour @@ -12,6 +12,7 @@ 	  Language/Haskell/HsColour/ColourHighlight.hs \ 	  Language/Haskell/HsColour/Colourise.hs \ 	  Language/Haskell/HsColour/HTML.hs \+	  Language/Haskell/HsColour/InlineCSS.hs \ 	  Language/Haskell/HsColour/LaTeX.hs \ 	  Language/Haskell/HsColour/TTY.hs \ 	  Language/Haskell/HsColour/MIRC.hs \
README view
@@ -10,21 +10,22 @@  Usage:     HsColour [-Ofile]-             [ -tty | -html | -css | -latex | -mirc ]+             [ -tty | -html | -css | -icss | -latex | -mirc ]              [ -lit | -lit-tex | -anchor  | -partial ]              [ -nolit          | -noanchor| -nopartial ]              [file.hs]  The program can colourise a Haskell source file for either terminal output (option -tty), or HTML 3.2 output with font tags (option -html),-or HTML 4.01 output with CSS (option -css), or LaTeX output (option--latex), or IRC chat client (option -mirc).  The default is for terminal-output, which uses standard ANSI screen codes for the colours.+or HTML 4.01 output with CSS (option -css), or XHTML 1.0 output with+inline styling (option -icss) or LaTeX output (option -latex), or IRC+chat client (option -mirc).  The default is for terminal output, which+uses standard ANSI screen codes for the colours.  If no file argument is given, it reads standard input.  Output is written to the file specified by the -O option, or by default, stdout. -HsColour can add named anchors in HTML or CSS (option -anchor) to+HsColour can add named anchors in HTML or CSS or ICSS (option -anchor) to top-level definitions in the source file (functions, datatypes, classes).  This enables you to make links to a specific location in the generated file with the standard "file.html#anchor" notation.@@ -64,6 +65,7 @@     | Concealed     | Foreground Colour     | Background Colour+    | Italic  For CSS output, it is sufficient to edit the hscolour.css file, also in the distribution.
docs/hscolour/Language-Haskell-HsColour-ANSI.html view
@@ -190,6 +190,12 @@ >Colour</A ></TD ></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AItalic"+>Italic</A+></TD+></TR ></TABLE ></TD ></TR@@ -413,7 +419,7 @@ ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc"->Types of highlighting supported by ANSI codes.+>Types of highlighting supported by ANSI codes (and some extra styles). </TD ></TR ><TR@@ -513,6 +519,16 @@ >Background</B > <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour" >Colour</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AItalic"+></A+><B+>Italic</B ></TD ><TD CLASS="rdoc" ></TD
docs/hscolour/Language-Haskell-HsColour-ColourHighlight.html view
@@ -221,6 +221,12 @@ >Colour</A ></TD ></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AItalic"+>Italic</A+></TD+></TR ></TABLE ></TD ></TR@@ -429,7 +435,7 @@ ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc"->Types of highlighting supported by ANSI codes.+>Types of highlighting supported by ANSI codes (and some extra styles). </TD ></TR ><TR@@ -529,6 +535,16 @@ >Background</B > <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour" >Colour</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AItalic"+></A+><B+>Italic</B ></TD ><TD CLASS="rdoc" ></TD
+ docs/hscolour/Language-Haskell-HsColour-InlineCSS.html view
@@ -0,0 +1,200 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Language.Haskell.HsColour.InlineCSS</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>hscolour</TD+><TD CLASS="topbut"+><A HREF="Language/Haskell/HsColour/InlineCSS.html"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Language.Haskell.HsColour.InlineCSS</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Formats Haskell source code as HTML with inline CSS.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Ahscolour"+>hscolour</A+> :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"+>ColourPrefs</A+> -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="topdecl"+><TABLE CLASS="declbar"+><TR+><TD CLASS="declname"+><A NAME="v%3Ahscolour"+></A+><B+>hscolour</B+></TD+><TD CLASS="declbut"+><A HREF="Language/Haskell/HsColour/InlineCSS.html#hscolour"+>Source</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="arg"+>:: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"+>ColourPrefs</A+></TD+><TD CLASS="rdoc"+>Preferences for styling.+</TD+></TR+><TR+><TD CLASS="arg"+>-&gt; Bool</TD+><TD CLASS="rdoc"+>Whether to include anchors.+</TD+></TR+><TR+><TD CLASS="arg"+>-&gt; Bool</TD+><TD CLASS="rdoc"+>Whether output should be partial+   (= no document headers will be included.)+</TD+></TR+><TR+><TD CLASS="arg"+>-&gt; String</TD+><TD CLASS="rdoc"+>Title for HTML page.+</TD+></TR+><TR+><TD CLASS="arg"+>-&gt; String</TD+><TD CLASS="rdoc"+>Haskell source code.+</TD+></TR+><TR+><TD CLASS="arg"+>-&gt; String</TD+><TD CLASS="rdoc"+>An HTML document containing the coloured +   Haskell source code.+</TD+></TR+><TR+><TD CLASS="ndoc" COLSPAN="2"+>Formats Haskell source code as a complete HTML document with inline styling+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.8</TD+></TR+></TABLE+></BODY+></HTML+>
docs/hscolour/Language-Haskell-HsColour-Options.html view
@@ -199,6 +199,12 @@ ></TR ><TR ><TD CLASS="decl"+>| <A HREF="#v%3AICSS"+>ICSS</A+></TD+></TR+><TR+><TD CLASS="decl" >| <A HREF="#v%3AMIRC" >MIRC</A ></TD@@ -510,6 +516,17 @@ ></TD ><TD CLASS="rdoc" >HTML with CSS.+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AICSS"+></A+><B+>ICSS</B+></TD+><TD CLASS="rdoc"+>HTML with inline CSS. </TD ></TR ><TR
docs/hscolour/Language-Haskell-HsColour-Output.html view
@@ -117,6 +117,12 @@ ></TR ><TR ><TD CLASS="decl"+>| <A HREF="#v%3AICSS"+>ICSS</A+></TD+></TR+><TR+><TD CLASS="decl" >| <A HREF="#v%3AMIRC" >MIRC</A ></TD@@ -219,6 +225,17 @@ ></TD ><TD CLASS="rdoc" >HTML with CSS.+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AICSS"+></A+><B+>ICSS</B+></TD+><TD CLASS="rdoc"+>HTML with inline CSS. </TD ></TR ><TR
docs/hscolour/Language-Haskell-HsColour.html view
@@ -146,6 +146,12 @@ ></TR ><TR ><TD CLASS="decl"+>| <A HREF="#v%3AICSS"+>ICSS</A+></TD+></TR+><TR+><TD CLASS="decl" >| <A HREF="#v%3AMIRC" >MIRC</A ></TD@@ -316,6 +322,17 @@ ></TD ><TD CLASS="rdoc" >HTML with CSS.+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AICSS"+></A+><B+>ICSS</B+></TD+><TD CLASS="rdoc"+>HTML with inline CSS. </TD ></TR ><TR
docs/hscolour/Language/Haskell/HsColour.html view
@@ -5,102 +5,104 @@ <title>Language/Haskell/HsColour.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | This is a library which colourises Haskell code.</font>-<a name="line-2"></a><font color=Blue>--   It currently has five output formats:</font>-<a name="line-3"></a><font color=Blue>--</font>-<a name="line-4"></a><font color=Blue>-- * ANSI terminal codes</font>-<a name="line-5"></a><font color=Blue>--</font>-<a name="line-6"></a><font color=Blue>-- * LaTeX macros</font>-<a name="line-7"></a><font color=Blue>--</font>-<a name="line-8"></a><font color=Blue>-- * HTML with font tags</font>-<a name="line-9"></a><font color=Blue>--</font>-<a name="line-10"></a><font color=Blue>-- * HTML with CSS.</font>-<a name="line-11"></a><font color=Blue>--</font>-<a name="line-12"></a><font color=Blue>-- * mIRC chat client colour codes.</font>-<a name="line-13"></a><font color=Blue>--</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | This is a library which colourises Haskell code.</i></font>+<a name="line-2"></a><font color=Blue><i>--   It currently has five output formats:</i></font>+<a name="line-3"></a><font color=Blue><i>--</i></font>+<a name="line-4"></a><font color=Blue><i>-- * ANSI terminal codes</i></font>+<a name="line-5"></a><font color=Blue><i>--</i></font>+<a name="line-6"></a><font color=Blue><i>-- * LaTeX macros</i></font>+<a name="line-7"></a><font color=Blue><i>--</i></font>+<a name="line-8"></a><font color=Blue><i>-- * HTML with font tags</i></font>+<a name="line-9"></a><font color=Blue><i>--</i></font>+<a name="line-10"></a><font color=Blue><i>-- * HTML with CSS.</i></font>+<a name="line-11"></a><font color=Blue><i>--</i></font>+<a name="line-12"></a><font color=Blue><i>-- * mIRC chat client colour codes.</i></font>+<a name="line-13"></a><font color=Blue><i>--</i></font> <a name="line-14"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour <font color=Cyan>(</font>Output<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> <a name="line-15"></a>                                  hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-16"></a> <a name="line-17"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <font color=Cyan>(</font>ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-18"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY   <u><font color=Green>as</font></u> TTY-<a name="line-19"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML  <u><font color=Green>as</font></u> HTML-<a name="line-20"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS   <u><font color=Green>as</font></u> CSS-<a name="line-21"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX <u><font color=Green>as</font></u> LaTeX-<a name="line-22"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>MIRC  <u><font color=Green>as</font></u> MIRC-<a name="line-23"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>List<font color=Cyan>(</font>mapAccumL<font color=Cyan>,</font> isPrefixOf<font color=Cyan>)</font> -<a name="line-24"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Maybe-<a name="line-25"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output-<a name="line-26"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Options <font color=Cyan>(</font>Literate<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-27"></a><u><font color=Green>import</font></u> Debug<font color=Cyan>.</font>Trace-<a name="line-28"></a>-<a name="line-29"></a><a name="hscolour"></a><font color=Blue>-- | Colourise Haskell source code with the given output format.</font>-<a name="line-30"></a>hscolour <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>-<a name="line-31"></a>         <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them).</font>-<a name="line-32"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-33"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output document is partial or complete.</font>-<a name="line-34"></a>         <font color=Red>-&gt;</font> Literate    <font color=Blue>-- ^ Whether input document is literate haskell or not</font>-<a name="line-35"></a>         <font color=Red>-&gt;</font> String	<font color=Blue>-- ^ Title for output.</font>-<a name="line-36"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-37"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>-<a name="line-38"></a>hscolour output pref anchor partial literate title <font color=Red>=</font>-<a name="line-39"></a>  <u><font color=Green>case</font></u> literate <u><font color=Green>of</font></u>-<a name="line-40"></a>    NoLit <font color=Red>-&gt;</font> hscolour' output pref anchor partial title-<a name="line-41"></a>    Bird  <font color=Red>-&gt;</font> literateHandler <font color=Cyan>(</font>map lhsClassify<font color=Cyan>)</font>-<a name="line-42"></a>    TeX   <font color=Red>-&gt;</font> literateHandler <font color=Cyan>(</font>snd <font color=Cyan>.</font> mapAccumL decideTypeOfLine False<font color=Cyan>)</font>-<a name="line-43"></a>  <u><font color=Green>where</font></u>-<a name="line-44"></a>    literateHandler f <font color=Red>=</font> concatMap chunk <font color=Cyan>.</font> joinL <font color=Cyan>.</font> f <font color=Cyan>.</font> inlines-<a name="line-45"></a>    chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font>     <font color=Red>=</font> c-<a name="line-46"></a>    chunk <font color=Cyan>(</font>Code c<font color=Cyan>)</font>    <font color=Red>=</font> hscolour' output pref anchor True title c-<a name="line-47"></a>-<a name="line-48"></a><a name="hscolour'"></a>hscolour' <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>-<a name="line-49"></a>          <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them).</font>-<a name="line-50"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-51"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output document is partial or complete.</font>-<a name="line-52"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Title for output.</font>-<a name="line-53"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-54"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>-<a name="line-55"></a>hscolour' TTY   pref <u><font color=Green>_</font></u>      <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour pref-<a name="line-56"></a>hscolour' MIRC  pref <u><font color=Green>_</font></u>      <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> MIRC<font color=Cyan>.</font>hscolour pref-<a name="line-57"></a>hscolour' LaTeX pref <u><font color=Green>_</font></u>      partial <u><font color=Green>_</font></u>   <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref partial-<a name="line-58"></a>hscolour' HTML  pref anchor partial top <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour pref anchor partial top-<a name="line-59"></a>hscolour' CSS   <u><font color=Green>_</font></u>    anchor partial top <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour anchor partial top-<a name="line-60"></a>-<a name="line-61"></a><a name="Lit"></a><font color=Blue>-- | Separating literate files into code\/comment chunks.</font>-<a name="line-62"></a><a name="Lit"></a><u><font color=Green>data</font></u> Lit <font color=Red>=</font> Code <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <font color=Red>|</font> Lit <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Show<font color=Cyan>)</font>-<a name="line-63"></a>-<a name="line-64"></a><a name="inlines"></a><font color=Blue>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</font>-<a name="line-65"></a><font color=Blue>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</font>-<a name="line-66"></a><font color=Blue>-- And retains the trailing '\n' character in each resultant string.</font>-<a name="line-67"></a>inlines <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="line-68"></a>inlines s <font color=Red>=</font> lines' s id-<a name="line-69"></a>  <u><font color=Green>where</font></u>-<a name="line-70"></a>  lines' []             acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>-<a name="line-71"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><b><font color=Red>:</font></b><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- DOS</font>-<a name="line-72"></a><font color=Blue>--lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS</font>-<a name="line-73"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font>       acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- Unix</font>-<a name="line-74"></a>  lines' <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>          acc <font color=Red>=</font> lines' s <font color=Cyan>(</font>acc <font color=Cyan>.</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-75"></a>-<a name="line-76"></a><a name="lhsClassify"></a><font color=Blue>-- Note, I just pass the &gt; symbol to the colouriser, which assumes that</font>-<a name="line-77"></a><font color=Blue>-- it's token based and not parse-based!!!</font>-<a name="line-78"></a>lhsClassify <font color=Red>::</font> String <font color=Red>-&gt;</font> Lit-<a name="line-79"></a>lhsClassify <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>  <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-80"></a>lhsClassify xs        <font color=Red>=</font> Lit  xs-<a name="line-81"></a>-<a name="line-82"></a><a name="decideTypeOfLine"></a><font color=Blue>-- texstyle is a bool indicating whether we are currently inside a code block</font>-<a name="line-83"></a>decideTypeOfLine texStyle current_line -<a name="line-84"></a> <font color=Red>|</font> isPrefix <font color=Magenta>"\\begin{code}"</font> <font color=Red>=</font> codeLine-<a name="line-85"></a> <font color=Red>|</font> texStyle <font color=Red>=</font> <u><font color=Green>if</font></u> not is_end <u><font color=Green>then</font></u> codeLine <u><font color=Green>else</font></u> <font color=Cyan>(</font>False<font color=Cyan>,</font> Code <font color=Cyan>(</font>current_line <font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-86"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> <font color=Cyan>(</font>False<font color=Cyan>,</font> Lit current_line<font color=Cyan>)</font>-<a name="line-87"></a>     <u><font color=Green>where</font></u> isPrefix <font color=Red>=</font> flip isPrefixOf current_line -<a name="line-88"></a>           codeLine <font color=Red>=</font> <font color=Cyan>(</font>True<font color=Cyan>,</font> Code <font color=Cyan>(</font>current_line<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-89"></a>           is_end <font color=Red>=</font> isPrefix <font color=Magenta>"\\end{code}"</font>-<a name="line-90"></a>-<a name="line-91"></a><a name="joinL"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Lit<font color=Red>]</font>-<a name="line-92"></a>joinL []                  <font color=Red>=</font> []-<a name="line-93"></a>joinL <font color=Cyan>(</font>Code c<b><font color=Red>:</font></b>Code c2<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Code <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-94"></a>joinL <font color=Cyan>(</font>Lit c <b><font color=Red>:</font></b>Lit c2 <b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Lit  <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-95"></a>joinL <font color=Cyan>(</font>any<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>            <font color=Red>=</font> any<b><font color=Red>:</font></b> joinL xs-<a name="line-96"></a>+<a name="line-18"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY        <u><font color=Green>as</font></u> TTY+<a name="line-19"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML       <u><font color=Green>as</font></u> HTML+<a name="line-20"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS        <u><font color=Green>as</font></u> CSS+<a name="line-21"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS  <u><font color=Green>as</font></u> ICSS+<a name="line-22"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX      <u><font color=Green>as</font></u> LaTeX+<a name="line-23"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>MIRC       <u><font color=Green>as</font></u> MIRC+<a name="line-24"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>List<font color=Cyan>(</font>mapAccumL<font color=Cyan>,</font> isPrefixOf<font color=Cyan>)</font> +<a name="line-25"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Maybe+<a name="line-26"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output+<a name="line-27"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Options <font color=Cyan>(</font>Literate<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-28"></a><u><font color=Green>import</font></u> Debug<font color=Cyan>.</font>Trace+<a name="line-29"></a>+<a name="line-30"></a><a name="hscolour"></a><font color=Blue><i>-- | Colourise Haskell source code with the given output format.</i></font>+<a name="line-31"></a>hscolour <font color=Red>::</font> Output      <font color=Blue><i>-- ^ Output format.</i></font>+<a name="line-32"></a>         <font color=Red>-&gt;</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences (for formats that support them).</i></font>+<a name="line-33"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-34"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output document is partial or complete.</i></font>+<a name="line-35"></a>         <font color=Red>-&gt;</font> Literate    <font color=Blue><i>-- ^ Whether input document is literate haskell or not</i></font>+<a name="line-36"></a>         <font color=Red>-&gt;</font> String	<font color=Blue><i>-- ^ Title for output.</i></font>+<a name="line-37"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-38"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>+<a name="line-39"></a>hscolour output pref anchor partial literate title <font color=Red>=</font>+<a name="line-40"></a>  <u><font color=Green>case</font></u> literate <u><font color=Green>of</font></u>+<a name="line-41"></a>    NoLit <font color=Red>-&gt;</font> hscolour' output pref anchor partial title+<a name="line-42"></a>    Bird  <font color=Red>-&gt;</font> literateHandler <font color=Cyan>(</font>map lhsClassify<font color=Cyan>)</font>+<a name="line-43"></a>    TeX   <font color=Red>-&gt;</font> literateHandler <font color=Cyan>(</font>snd <font color=Cyan>.</font> mapAccumL decideTypeOfLine False<font color=Cyan>)</font>+<a name="line-44"></a>  <u><font color=Green>where</font></u>+<a name="line-45"></a>    literateHandler f <font color=Red>=</font> concatMap chunk <font color=Cyan>.</font> joinL <font color=Cyan>.</font> f <font color=Cyan>.</font> inlines+<a name="line-46"></a>    chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font>     <font color=Red>=</font> c+<a name="line-47"></a>    chunk <font color=Cyan>(</font>Code c<font color=Cyan>)</font>    <font color=Red>=</font> hscolour' output pref anchor True title c+<a name="line-48"></a>+<a name="line-49"></a><a name="hscolour'"></a>hscolour' <font color=Red>::</font> Output      <font color=Blue><i>-- ^ Output format.</i></font>+<a name="line-50"></a>          <font color=Red>-&gt;</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences (for formats that support them).</i></font>+<a name="line-51"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-52"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output document is partial or complete.</i></font>+<a name="line-53"></a>          <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Title for output.</i></font>+<a name="line-54"></a>          <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-55"></a>          <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>+<a name="line-56"></a>hscolour' TTY   pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour   pref+<a name="line-57"></a>hscolour' MIRC  pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> MIRC<font color=Cyan>.</font>hscolour  pref+<a name="line-58"></a>hscolour' LaTeX pref <u><font color=Green>_</font></u>    partial <u><font color=Green>_</font></u>   <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref      partial+<a name="line-59"></a>hscolour' HTML  pref anch partial top <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour  pref anch partial top+<a name="line-60"></a>hscolour' CSS   <u><font color=Green>_</font></u>    anch partial top <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour        anch partial top+<a name="line-61"></a>hscolour' ICSS  pref anch partial top <font color=Red>=</font> ICSS<font color=Cyan>.</font>hscolour  pref anch partial top+<a name="line-62"></a>+<a name="line-63"></a><a name="Lit"></a><font color=Blue><i>-- | Separating literate files into code\/comment chunks.</i></font>+<a name="line-64"></a><a name="Lit"></a><u><font color=Green>data</font></u> Lit <font color=Red>=</font> Code <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <font color=Red>|</font> Lit <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Show<font color=Cyan>)</font>+<a name="line-65"></a>+<a name="line-66"></a><a name="inlines"></a><font color=Blue><i>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</i></font>+<a name="line-67"></a><font color=Blue><i>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</i></font>+<a name="line-68"></a><font color=Blue><i>-- And retains the trailing '\n' character in each resultant string.</i></font>+<a name="line-69"></a>inlines <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>+<a name="line-70"></a>inlines s <font color=Red>=</font> lines' s id+<a name="line-71"></a>  <u><font color=Green>where</font></u>+<a name="line-72"></a>  lines' []             acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>+<a name="line-73"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><b><font color=Red>:</font></b><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue><i>-- DOS</i></font>+<a name="line-74"></a><font color=Blue><i>--lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS</i></font>+<a name="line-75"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font>       acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue><i>-- Unix</i></font>+<a name="line-76"></a>  lines' <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>          acc <font color=Red>=</font> lines' s <font color=Cyan>(</font>acc <font color=Cyan>.</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-77"></a>+<a name="line-78"></a><a name="lhsClassify"></a><font color=Blue><i>-- Note, I just pass the &gt; symbol to the colouriser, which assumes that</i></font>+<a name="line-79"></a><font color=Blue><i>-- it's token based and not parse-based!!!</i></font>+<a name="line-80"></a>lhsClassify <font color=Red>::</font> String <font color=Red>-&gt;</font> Lit+<a name="line-81"></a>lhsClassify <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>  <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>+<a name="line-82"></a>lhsClassify xs        <font color=Red>=</font> Lit  xs+<a name="line-83"></a>+<a name="line-84"></a><a name="decideTypeOfLine"></a><font color=Blue><i>-- texstyle is a bool indicating whether we are currently inside a code block</i></font>+<a name="line-85"></a>decideTypeOfLine texStyle current_line +<a name="line-86"></a> <font color=Red>|</font> isPrefix <font color=Magenta>"\\begin{code}"</font> <font color=Red>=</font> codeLine+<a name="line-87"></a> <font color=Red>|</font> texStyle <font color=Red>=</font> <u><font color=Green>if</font></u> not is_end <u><font color=Green>then</font></u> codeLine <u><font color=Green>else</font></u> <font color=Cyan>(</font>False<font color=Cyan>,</font> Code <font color=Cyan>(</font>current_line <font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-88"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> <font color=Cyan>(</font>False<font color=Cyan>,</font> Lit current_line<font color=Cyan>)</font>+<a name="line-89"></a>     <u><font color=Green>where</font></u> isPrefix <font color=Red>=</font> flip isPrefixOf current_line +<a name="line-90"></a>           codeLine <font color=Red>=</font> <font color=Cyan>(</font>True<font color=Cyan>,</font> Code <font color=Cyan>(</font>current_line<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-91"></a>           is_end <font color=Red>=</font> isPrefix <font color=Magenta>"\\end{code}"</font>+<a name="line-92"></a>+<a name="line-93"></a><a name="joinL"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Lit<font color=Red>]</font>+<a name="line-94"></a>joinL []                  <font color=Red>=</font> []+<a name="line-95"></a>joinL <font color=Cyan>(</font>Code c<b><font color=Red>:</font></b>Code c2<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Code <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>+<a name="line-96"></a>joinL <font color=Cyan>(</font>Lit c <b><font color=Red>:</font></b>Lit c2 <b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Lit  <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>+<a name="line-97"></a>joinL <font color=Cyan>(</font>any<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>            <font color=Red>=</font> any<b><font color=Red>:</font></b> joinL xs+<a name="line-98"></a> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/ANSI.html view
@@ -5,7 +5,7 @@ <title>Language/Haskell/HsColour/ANSI.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | Partially taken from Hugs AnsiScreen.hs library:</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Partially taken from Hugs AnsiScreen.hs library:</i></font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ANSI <a name="line-3"></a>  <font color=Cyan>(</font> highlightOn <a name="line-4"></a>  <font color=Cyan>,</font> highlightOff@@ -27,15 +27,15 @@ <a name="line-20"></a><u><font color=Green>import</font></u> Char <font color=Cyan>(</font>isDigit<font color=Cyan>)</font> <a name="line-21"></a> <a name="line-22"></a>-<a name="line-23"></a><font color=Blue>-- Basic screen control codes:</font>+<a name="line-23"></a><font color=Blue><i>-- Basic screen control codes:</i></font> <a name="line-24"></a> <a name="line-25"></a><a name="Pos"></a><u><font color=Green>type</font></u> Pos           <font color=Red>=</font> <font color=Cyan>(</font>Int<font color=Cyan>,</font>Int<font color=Cyan>)</font> <a name="line-26"></a> <a name="line-27"></a><a name="at"></a>at        <font color=Red>::</font> Pos <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String-<a name="line-28"></a><a name="goto"></a><font color=Blue>-- | Move the screen cursor to the given position.</font>+<a name="line-28"></a><a name="goto"></a><font color=Blue><i>-- | Move the screen cursor to the given position.</i></font> <a name="line-29"></a>goto      <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String <a name="line-30"></a><a name="home"></a>home      <font color=Red>::</font> String-<a name="line-31"></a><a name="cls"></a><font color=Blue>-- | Clear the screen.</font>+<a name="line-31"></a><a name="cls"></a><font color=Blue><i>-- | Clear the screen.</i></font> <a name="line-32"></a>cls       <font color=Red>::</font> String <a name="line-33"></a> <a name="line-34"></a>at <font color=Cyan>(</font>x<font color=Cyan>,</font>y<font color=Cyan>)</font> s  <font color=Red>=</font> goto x y <font color=Cyan>++</font> s@@ -52,16 +52,16 @@ <a name="line-45"></a><a name="clearline"></a>clearline   <font color=Red>=</font> <font color=Magenta>"\ESC[2K"</font> <a name="line-46"></a><a name="clearDown"></a>clearDown   <font color=Red>=</font> <font color=Magenta>"\ESC[J"</font> <a name="line-47"></a><a name="clearUp"></a>clearUp     <font color=Red>=</font> <font color=Magenta>"\ESC[1J"</font>-<a name="line-48"></a><font color=Blue>-- Choose whichever of the following lines is suitable for your system:</font>-<a name="line-49"></a>cls         <font color=Red>=</font> <font color=Magenta>"\ESC[2J"</font>     <font color=Blue>-- for PC with ANSI.SYS</font>-<a name="line-50"></a><font color=Blue>--cls         = "\^L"         -- for Sun window</font>+<a name="line-48"></a><font color=Blue><i>-- Choose whichever of the following lines is suitable for your system:</i></font>+<a name="line-49"></a>cls         <font color=Red>=</font> <font color=Magenta>"\ESC[2J"</font>     <font color=Blue><i>-- for PC with ANSI.SYS</i></font>+<a name="line-50"></a><font color=Blue><i>--cls         = "\^L"         -- for Sun window</i></font> <a name="line-51"></a> <a name="line-52"></a><a name="savePosition"></a>savePosition    <font color=Red>=</font> <font color=Magenta>"\ESC7"</font> <a name="line-53"></a><a name="restorePosition"></a>restorePosition <font color=Red>=</font> <font color=Magenta>"\ESC8"</font> <a name="line-54"></a> <a name="line-55"></a>-<a name="line-56"></a><font color=Blue>-- data Colour    -- imported from ColourHighlight</font>-<a name="line-57"></a><font color=Blue>-- data Highlight -- imported from ColourHighlight</font>+<a name="line-56"></a><font color=Blue><i>-- data Colour    -- imported from ColourHighlight</i></font>+<a name="line-57"></a><font color=Blue><i>-- data Highlight -- imported from ColourHighlight</i></font> <a name="line-58"></a> <a name="line-59"></a><u><font color=Green>instance</font></u> Enum Highlight <u><font color=Green>where</font></u> <a name="line-60"></a>  fromEnum Normal       <font color=Red>=</font> <font color=Magenta>0</font>@@ -73,34 +73,35 @@ <a name="line-66"></a>  fromEnum Concealed    <font color=Red>=</font> <font color=Magenta>8</font> <a name="line-67"></a>  fromEnum <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>30</font> <font color=Cyan>+</font> fromEnum c <a name="line-68"></a>  fromEnum <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>40</font> <font color=Cyan>+</font> fromEnum c-<a name="line-69"></a>-<a name="line-70"></a><a name="highlight"></a><font color=Blue>-- | Make the given string appear with all of the listed highlights</font>-<a name="line-71"></a>highlight <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String-<a name="line-72"></a>highlight attrs s <font color=Red>=</font> highlightOn attrs <font color=Cyan>++</font> s <font color=Cyan>++</font> highlightOff-<a name="line-73"></a>-<a name="line-74"></a><a name="highlightOn"></a>highlightOn []     <font color=Red>=</font> highlightOn <font color=Red>[</font>Normal<font color=Red>]</font>-<a name="line-75"></a>highlightOn attrs  <font color=Red>=</font> <font color=Magenta>"\ESC["</font>-<a name="line-76"></a>                     <font color=Cyan>++</font> concat <font color=Cyan>(</font>intersperse <font color=Magenta>";"</font> <font color=Cyan>(</font>map <font color=Cyan>(</font>show<font color=Cyan>.</font>fromEnum<font color=Cyan>)</font> attrs<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-77"></a>                     <font color=Cyan>++</font><font color=Magenta>"m"</font>-<a name="line-78"></a><a name="highlightOff"></a>highlightOff <font color=Red>=</font> <font color=Magenta>"\ESC[0m"</font>-<a name="line-79"></a>+<a name="line-69"></a>  fromEnum Italic       <font color=Red>=</font> <font color=Magenta>2</font>+<a name="line-70"></a>+<a name="line-71"></a><a name="highlight"></a><font color=Blue><i>-- | Make the given string appear with all of the listed highlights</i></font>+<a name="line-72"></a>highlight <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String+<a name="line-73"></a>highlight attrs s <font color=Red>=</font> highlightOn attrs <font color=Cyan>++</font> s <font color=Cyan>++</font> highlightOff+<a name="line-74"></a>+<a name="line-75"></a><a name="highlightOn"></a>highlightOn []     <font color=Red>=</font> highlightOn <font color=Red>[</font>Normal<font color=Red>]</font>+<a name="line-76"></a>highlightOn attrs  <font color=Red>=</font> <font color=Magenta>"\ESC["</font>+<a name="line-77"></a>                     <font color=Cyan>++</font> concat <font color=Cyan>(</font>intersperse <font color=Magenta>";"</font> <font color=Cyan>(</font>map <font color=Cyan>(</font>show<font color=Cyan>.</font>fromEnum<font color=Cyan>)</font> attrs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-78"></a>                     <font color=Cyan>++</font><font color=Magenta>"m"</font>+<a name="line-79"></a><a name="highlightOff"></a>highlightOff <font color=Red>=</font> <font color=Magenta>"\ESC[0m"</font> <a name="line-80"></a>-<a name="line-81"></a><a name="colourCycle"></a><font color=Blue>-- | An infinite supply of colours.</font>-<a name="line-82"></a>colourCycle <font color=Red>::</font> <font color=Red>[</font>Colour<font color=Red>]</font>-<a name="line-83"></a>colourCycle <font color=Red>=</font> cycle <font color=Red>[</font>Red<font color=Cyan>,</font>Blue<font color=Cyan>,</font>Magenta<font color=Cyan>,</font>Green<font color=Cyan>,</font>Cyan<font color=Red>]</font>-<a name="line-84"></a>+<a name="line-81"></a>+<a name="line-82"></a><a name="colourCycle"></a><font color=Blue><i>-- | An infinite supply of colours.</i></font>+<a name="line-83"></a>colourCycle <font color=Red>::</font> <font color=Red>[</font>Colour<font color=Red>]</font>+<a name="line-84"></a>colourCycle <font color=Red>=</font> cycle <font color=Red>[</font>Red<font color=Cyan>,</font>Blue<font color=Cyan>,</font>Magenta<font color=Cyan>,</font>Green<font color=Cyan>,</font>Cyan<font color=Red>]</font> <a name="line-85"></a>-<a name="line-86"></a><a name="enableScrollRegion"></a><font color=Blue>-- | Scrolling</font>-<a name="line-87"></a>enableScrollRegion <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String-<a name="line-88"></a>enableScrollRegion start end <font color=Red>=</font> <font color=Magenta>"\ESC["</font><font color=Cyan>++</font>show start<font color=Cyan>++</font><font color=Magenta>';'</font><b><font color=Red>:</font></b>show end<font color=Cyan>++</font><font color=Magenta>"r"</font>-<a name="line-89"></a>-<a name="line-90"></a><a name="scrollDown"></a>scrollDown  <font color=Red>=</font> <font color=Magenta>"\ESCD"</font>-<a name="line-91"></a><a name="scrollUp"></a>scrollUp    <font color=Red>=</font> <font color=Magenta>"\ESCM"</font>-<a name="line-92"></a>-<a name="line-93"></a><a name="lineWrap"></a><font color=Blue>-- Line-wrapping mode</font>-<a name="line-94"></a>lineWrap True  <font color=Red>=</font> <font color=Magenta>"\ESC[7h"</font>-<a name="line-95"></a>lineWrap False <font color=Red>=</font> <font color=Magenta>"\ESC[7l"</font>-<a name="line-96"></a>+<a name="line-86"></a>+<a name="line-87"></a><a name="enableScrollRegion"></a><font color=Blue><i>-- | Scrolling</i></font>+<a name="line-88"></a>enableScrollRegion <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String+<a name="line-89"></a>enableScrollRegion start end <font color=Red>=</font> <font color=Magenta>"\ESC["</font><font color=Cyan>++</font>show start<font color=Cyan>++</font><font color=Magenta>';'</font><b><font color=Red>:</font></b>show end<font color=Cyan>++</font><font color=Magenta>"r"</font>+<a name="line-90"></a>+<a name="line-91"></a><a name="scrollDown"></a>scrollDown  <font color=Red>=</font> <font color=Magenta>"\ESCD"</font>+<a name="line-92"></a><a name="scrollUp"></a>scrollUp    <font color=Red>=</font> <font color=Magenta>"\ESCM"</font>+<a name="line-93"></a>+<a name="line-94"></a><a name="lineWrap"></a><font color=Blue><i>-- Line-wrapping mode</i></font>+<a name="line-95"></a>lineWrap True  <font color=Red>=</font> <font color=Magenta>"\ESC[7h"</font>+<a name="line-96"></a>lineWrap False <font color=Red>=</font> <font color=Magenta>"\ESC[7l"</font>+<a name="line-97"></a> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/Anchors.html view
@@ -13,57 +13,57 @@ <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>General <a name="line-7"></a><u><font color=Green>import</font></u> List <a name="line-8"></a>-<a name="line-9"></a><font color=Blue>-- This is an attempt to find the first defining occurrence of an</font>-<a name="line-10"></a><font color=Blue>-- identifier (function, datatype, class) in a Haskell source file.</font>-<a name="line-11"></a><font color=Blue>-- Rather than parse the module properly, we try to get by with just</font>-<a name="line-12"></a><font color=Blue>-- a finite state automaton.  Keeping a record of identifiers we</font>-<a name="line-13"></a><font color=Blue>-- have already seen, we look at the beginning of every line to see</font>-<a name="line-14"></a><font color=Blue>-- if it starts with the right tokens to introduce a defn.  If so,</font>-<a name="line-15"></a><font color=Blue>-- we look a little bit further until we can be certain.  Then plonk</font>-<a name="line-16"></a><font color=Blue>-- (or not) an anchor at the beginning of the line.</font>+<a name="line-9"></a><font color=Blue><i>-- This is an attempt to find the first defining occurrence of an</i></font>+<a name="line-10"></a><font color=Blue><i>-- identifier (function, datatype, class) in a Haskell source file.</i></font>+<a name="line-11"></a><font color=Blue><i>-- Rather than parse the module properly, we try to get by with just</i></font>+<a name="line-12"></a><font color=Blue><i>-- a finite state automaton.  Keeping a record of identifiers we</i></font>+<a name="line-13"></a><font color=Blue><i>-- have already seen, we look at the beginning of every line to see</i></font>+<a name="line-14"></a><font color=Blue><i>-- if it starts with the right tokens to introduce a defn.  If so,</i></font>+<a name="line-15"></a><font color=Blue><i>-- we look a little bit further until we can be certain.  Then plonk</i></font>+<a name="line-16"></a><font color=Blue><i>-- (or not) an anchor at the beginning of the line.</i></font> <a name="line-17"></a> <a name="line-18"></a><a name="Anchor"></a><u><font color=Green>type</font></u> Anchor <font color=Red>=</font> String <a name="line-19"></a>-<a name="line-20"></a><a name="insertAnchors"></a><font color=Blue>-- | 'insertAnchors' places an anchor marker in the token stream before the</font>-<a name="line-21"></a><font color=Blue>--   first defining occurrence of any identifier.  Here, /before/ means</font>-<a name="line-22"></a><font color=Blue>--   immediately preceding its type signature, or preceding a (haddock)</font>-<a name="line-23"></a><font color=Blue>--   comment that comes immediately before the type signature, or failing</font>-<a name="line-24"></a><font color=Blue>--   either of those, before the first equation.</font>+<a name="line-20"></a><a name="insertAnchors"></a><font color=Blue><i>-- | 'insertAnchors' places an anchor marker in the token stream before the</i></font>+<a name="line-21"></a><font color=Blue><i>--   first defining occurrence of any identifier.  Here, /before/ means</i></font>+<a name="line-22"></a><font color=Blue><i>--   immediately preceding its type signature, or preceding a (haddock)</i></font>+<a name="line-23"></a><font color=Blue><i>--   comment that comes immediately before the type signature, or failing</i></font>+<a name="line-24"></a><font color=Blue><i>--   either of those, before the first equation.</i></font> <a name="line-25"></a>insertAnchors <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Either Anchor <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <a name="line-26"></a>insertAnchors <font color=Red>=</font> anchor emptyST <a name="line-27"></a>-<a name="line-28"></a><a name="anchor"></a><font color=Blue>-- looks at first token in the left-most position of each line</font>-<a name="line-29"></a><font color=Blue>-- precondition: have just seen a newline token.</font>+<a name="line-28"></a><a name="anchor"></a><font color=Blue><i>-- looks at first token in the left-most position of each line</i></font>+<a name="line-29"></a><font color=Blue><i>-- precondition: have just seen a newline token.</i></font> <a name="line-30"></a>anchor st s <font color=Red>=</font> <u><font color=Green>case</font></u> identifier st s <u><font color=Green>of</font></u> <a name="line-31"></a>                Nothing <font color=Red>-&gt;</font> emit st s <a name="line-32"></a>                Just v  <font color=Red>-&gt;</font> Left v<b><font color=Red>:</font></b> emit <font color=Cyan>(</font>insertST v st<font color=Cyan>)</font> s <a name="line-33"></a>-<a name="line-34"></a><a name="emit"></a><font color=Blue>-- emit passes stuff through until the next newline has been encountered,</font>-<a name="line-35"></a><font color=Blue>-- then jumps back into the anchor function</font>-<a name="line-36"></a><font color=Blue>-- pre-condition: newlines are explicitly single tokens</font>+<a name="line-34"></a><a name="emit"></a><font color=Blue><i>-- emit passes stuff through until the next newline has been encountered,</i></font>+<a name="line-35"></a><font color=Blue><i>-- then jumps back into the anchor function</i></font>+<a name="line-36"></a><font color=Blue><i>-- pre-condition: newlines are explicitly single tokens</i></font> <a name="line-37"></a>emit st <font color=Cyan>(</font>t<font color=Red>@</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Right t<b><font color=Red>:</font></b> anchor st stream <a name="line-38"></a>emit st <font color=Cyan>(</font>t<b><font color=Red>:</font></b>stream<font color=Cyan>)</font>              <font color=Red>=</font> Right t<b><font color=Red>:</font></b> emit st stream <a name="line-39"></a>emit <u><font color=Green>_</font></u>  []                      <font color=Red>=</font> [] <a name="line-40"></a>-<a name="line-41"></a><a name="identifier"></a><font color=Blue>-- Given that we are at the beginning of a line, determine whether there</font>-<a name="line-42"></a><font color=Blue>-- is an identifier defined here, and if so, return it.</font>-<a name="line-43"></a><font color=Blue>-- precondition: have just seen a newline token.</font>+<a name="line-41"></a><a name="identifier"></a><font color=Blue><i>-- Given that we are at the beginning of a line, determine whether there</i></font>+<a name="line-42"></a><font color=Blue><i>-- is an identifier defined here, and if so, return it.</i></font>+<a name="line-43"></a><font color=Blue><i>-- precondition: have just seen a newline token.</i></font> <a name="line-44"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>kind<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>|</font> kind<font color=Cyan>`elem`</font><font color=Red>[</font>Varid<font color=Cyan>,</font>Definition<font color=Red>]</font> <font color=Red>=</font> <a name="line-45"></a>    <u><font color=Green>case</font></u> skip stream <u><font color=Green>of</font></u> <a name="line-46"></a>        <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>|</font> not <font color=Cyan>(</font>v<font color=Cyan>`inST`</font>st<font color=Cyan>)</font> <font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font>-<a name="line-47"></a>        notVarop  <font color=Blue>--  | typesig stream  -&gt; Nothing    -- not a defn</font>-<a name="line-48"></a>                      <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing    <font color=Blue>-- already defined</font>+<a name="line-47"></a>        notVarop  <font color=Blue><i>--  | typesig stream  -&gt; Nothing    -- not a defn</i></font>+<a name="line-48"></a>                      <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing    <font color=Blue><i>-- already defined</i></font> <a name="line-49"></a>                      <font color=Red>|</font> otherwise       <font color=Red>-&gt;</font> Just v <a name="line-50"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> <a name="line-51"></a>    <u><font color=Green>case</font></u> stream <u><font color=Green>of</font></u> <a name="line-52"></a>      <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>-<a name="line-53"></a>                  <font color=Blue>--  | typesig stream  -&gt; Nothing</font>+<a name="line-53"></a>                  <font color=Blue><i>--  | typesig stream  -&gt; Nothing</i></font> <a name="line-54"></a>	              <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing <a name="line-55"></a>	              <font color=Red>|</font> otherwise	<font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font> <a name="line-56"></a>      notVarop <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> skip <font color=Cyan>(</font>munchParens stream<font color=Cyan>)</font> <u><font color=Green>of</font></u> <a name="line-57"></a>          <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>|</font> not <font color=Cyan>(</font>v<font color=Cyan>`inST`</font>st<font color=Cyan>)</font> <font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font> <a name="line-58"></a>          <u><font color=Green>_</font></u>             <font color=Red>-&gt;</font> Nothing-<a name="line-59"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"foreign"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Nothing <font color=Blue>-- not yet implemented</font>+<a name="line-59"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"foreign"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Nothing <font color=Blue><i>-- not yet implemented</i></font> <a name="line-60"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"data"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> getConid stream <a name="line-61"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"newtype"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> getConid stream <a name="line-62"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"type"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> getConid stream@@ -71,7 +71,7 @@ <a name="line-64"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Space<font color=Cyan>,</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> identifier st stream <a name="line-65"></a>identifier st stream <font color=Red>=</font> Nothing <a name="line-66"></a>-<a name="line-67"></a><a name="typesig"></a><font color=Blue>-- Is this really a type signature?  (no longer used)</font>+<a name="line-67"></a><a name="typesig"></a><font color=Blue><i>-- Is this really a type signature?  (no longer used)</i></font> <a name="line-68"></a>typesig <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-&gt;</font> Bool <a name="line-69"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"::"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>   <font color=Red>=</font> True <a name="line-70"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Varid<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> typesig stream@@ -81,25 +81,25 @@ <a name="line-74"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>  <font color=Red>=</font> typesig stream <a name="line-75"></a>typesig <u><font color=Green>_</font></u>                     <font color=Red>=</font> False <a name="line-76"></a>-<a name="line-77"></a><a name="munchParens"></a><font color=Blue>-- throw away everything from opening paren to matching close</font>-<a name="line-78"></a>munchParens <font color=Red>=</font>  munch <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font>	<font color=Blue>-- already seen open paren</font>+<a name="line-77"></a><a name="munchParens"></a><font color=Blue><i>-- throw away everything from opening paren to matching close</i></font>+<a name="line-78"></a>munchParens <font color=Red>=</font>  munch <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font>	<font color=Blue><i>-- already seen open paren</i></font> <a name="line-79"></a>  <u><font color=Green>where</font></u> munch <font color=Magenta>0</font> <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> rest-<a name="line-80"></a>        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> rest+<a name="line-80"></a>        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Blue><i>-</i></font><font color=Magenta>1</font><font color=Cyan>)</font> rest <a name="line-81"></a>        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> rest <a name="line-82"></a>        munch n <font color=Cyan>(</font><u><font color=Green>_</font></u><b><font color=Red>:</font></b>rest<font color=Cyan>)</font>            <font color=Red>=</font> munch n rest-<a name="line-83"></a>        munch <u><font color=Green>_</font></u> []                  <font color=Red>=</font> []	<font color=Blue>-- source is ill-formed</font>+<a name="line-83"></a>        munch <u><font color=Green>_</font></u> []                  <font color=Red>=</font> []	<font color=Blue><i>-- source is ill-formed</i></font> <a name="line-84"></a>-<a name="line-85"></a><a name="fix"></a><font color=Blue>-- ensure anchor name is correct for a Varop</font>+<a name="line-85"></a><a name="fix"></a><font color=Blue><i>-- ensure anchor name is correct for a Varop</i></font> <a name="line-86"></a>fix <font color=Cyan>(</font><font color=Magenta>'`'</font><b><font color=Red>:</font></b>v<font color=Cyan>)</font> <font color=Red>=</font> dropLast <font color=Magenta>'`'</font> v <a name="line-87"></a>fix v       <font color=Red>=</font> v <a name="line-88"></a>-<a name="line-89"></a><a name="skip"></a><font color=Blue>-- look past whitespace and comments to next "real" token</font>+<a name="line-89"></a><a name="skip"></a><font color=Blue><i>-- look past whitespace and comments to next "real" token</i></font> <a name="line-90"></a>skip <font color=Cyan>(</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>   <font color=Red>=</font> skip stream <a name="line-91"></a>skip <font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> skip stream <a name="line-92"></a>skip stream               <font color=Red>=</font> stream <a name="line-93"></a>-<a name="line-94"></a><a name="getConid"></a><font color=Blue>-- skip possible context up to and including "=&gt;", returning next Conid token</font>-<a name="line-95"></a><font color=Blue>-- (this function is highly partial - relies on source being parse-correct)</font>+<a name="line-94"></a><a name="getConid"></a><font color=Blue><i>-- skip possible context up to and including "=&gt;", returning next Conid token</i></font>+<a name="line-95"></a><font color=Blue><i>-- (this function is highly partial - relies on source being parse-correct)</i></font> <a name="line-96"></a>getConid stream <font color=Red>=</font> <a name="line-97"></a>    <u><font color=Green>case</font></u> skip stream <u><font color=Green>of</font></u> <a name="line-98"></a>        <font color=Cyan>(</font><font color=Cyan>(</font>Conid<font color=Cyan>,</font>c<font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> context rest <u><font color=Green>of</font></u>@@ -117,17 +117,17 @@ <a name="line-110"></a>                                   v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"(...) no =&gt;"</font><font color=Cyan>)</font> <a name="line-111"></a>        v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"no Conid or (...)"</font><font color=Cyan>)</font> <a name="line-112"></a>    <u><font color=Green>where</font></u> debug   <u><font color=Green>_</font></u>   <u><font color=Green>_</font></u> <font color=Red>=</font> Nothing-<a name="line-113"></a>       <font color=Blue>-- debug (s:t) c = error ("HsColour: getConid failed: "++show s</font>-<a name="line-114"></a>       <font color=Blue>--                       ++"\n  in the context of: "++c)</font>+<a name="line-113"></a>       <font color=Blue><i>-- debug (s:t) c = error ("HsColour: getConid failed: "++show s</i></font>+<a name="line-114"></a>       <font color=Blue><i>--                       ++"\n  in the context of: "++c)</i></font> <a name="line-115"></a>-<a name="line-116"></a><a name="context"></a><font color=Blue>-- jump past possible class context</font>+<a name="line-116"></a><a name="context"></a><font color=Blue><i>-- jump past possible class context</i></font> <a name="line-117"></a>context stream<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"="</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> stream <a name="line-118"></a>context stream<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"=&gt;"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> stream <a name="line-119"></a>context <font color=Cyan>(</font><u><font color=Green>_</font></u><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> context stream <a name="line-120"></a>context [] <font color=Red>=</font> [] <a name="line-121"></a>-<a name="line-122"></a><a name="ST"></a><font color=Blue>-- simple implementation of a string lookup table.</font>-<a name="line-123"></a><a name="ST"></a><font color=Blue>-- replace this with something more sophisticated if needed.</font>+<a name="line-122"></a><a name="ST"></a><font color=Blue><i>-- simple implementation of a string lookup table.</i></font>+<a name="line-123"></a><a name="ST"></a><font color=Blue><i>-- replace this with something more sophisticated if needed.</i></font> <a name="line-124"></a><a name="ST"></a><u><font color=Green>type</font></u> ST <font color=Red>=</font> <font color=Red>[</font>String<font color=Red>]</font> <a name="line-125"></a> <a name="line-126"></a><a name="emptyST"></a>emptyST <font color=Red>::</font> ST
docs/hscolour/Language/Haskell/HsColour/CSS.html view
@@ -5,7 +5,7 @@ <title>Language/Haskell/HsColour/CSS.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code as HTML with CSS.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code as HTML with CSS.</i></font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors@@ -13,14 +13,14 @@ <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML <font color=Cyan>(</font>renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> <a name="line-7"></a>                                       renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font> <a name="line-8"></a>-<a name="line-9"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete HTML document with CSS.</font>-<a name="line-10"></a>hscolour <font color=Red>::</font> Bool   <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-11"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether output should be partial</font>-<a name="line-12"></a>                   <font color=Blue>--   (= no stylesheet link will be included.)</font>-<a name="line-13"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Title for HTML page.</font>-<a name="line-14"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>-<a name="line-16"></a>                   <font color=Blue>--   Haskell source code.</font>+<a name="line-9"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code as a complete HTML document with CSS.</i></font>+<a name="line-10"></a>hscolour <font color=Red>::</font> Bool   <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-11"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue><i>-- ^ Whether output should be partial</i></font>+<a name="line-12"></a>                   <font color=Blue><i>--   (= no stylesheet link will be included.)</i></font>+<a name="line-13"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Title for HTML page.</i></font>+<a name="line-14"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ An HTML document containing the coloured </i></font>+<a name="line-16"></a>                   <font color=Blue><i>--   Haskell source code.</i></font> <a name="line-17"></a>hscolour anchor partial title <font color=Red>=</font> <a name="line-18"></a>  <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font> <a name="line-19"></a>  <font color=Cyan>.</font> pre
docs/hscolour/Language/Haskell/HsColour/Classify.html view
@@ -13,44 +13,44 @@ <a name="line-6"></a><u><font color=Green>import</font></u> Char <a name="line-7"></a><u><font color=Green>import</font></u> List <a name="line-8"></a>-<a name="line-9"></a><a name="tokenise"></a><font color=Blue>-- | Lex Haskell source code into an annotated token stream, without</font>-<a name="line-10"></a><font color=Blue>--   discarding any characters or layout.</font>+<a name="line-9"></a><a name="tokenise"></a><font color=Blue><i>-- | Lex Haskell source code into an annotated token stream, without</i></font>+<a name="line-10"></a><font color=Blue><i>--   discarding any characters or layout.</i></font> <a name="line-11"></a>tokenise <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <a name="line-12"></a>tokenise str <font color=Red>=</font>  <a name="line-13"></a>    <u><font color=Green>let</font></u> chunks <font color=Red>=</font> glue <font color=Cyan>.</font> chunk <font color=Cyan>$</font> str  <a name="line-14"></a>        newline <font color=Red>=</font> True <b><font color=Red>:</font></b> <font color=Cyan>(</font>map <font color=Cyan>(</font><font color=Magenta>"\n"</font> <font color=Cyan>`isPrefixOf`</font><font color=Cyan>)</font> chunks<font color=Cyan>)</font> <a name="line-15"></a>    <u><font color=Green>in</font></u> map <font color=Cyan>(</font><font color=Red>\</font><font color=Cyan>(</font>s<font color=Cyan>,</font>n<font color=Cyan>)</font><font color=Red>-&gt;</font> <font color=Cyan>(</font>classify s n<font color=Cyan>,</font>s<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>(</font>zip chunks newline<font color=Cyan>)</font> <a name="line-16"></a>-<a name="line-17"></a><a name="chunk"></a><font color=Blue>-- Basic Haskell lexing, except we keep whitespace.</font>+<a name="line-17"></a><a name="chunk"></a><font color=Blue><i>-- Basic Haskell lexing, except we keep whitespace.</i></font> <a name="line-18"></a>chunk <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font> <a name="line-19"></a>chunk []    <font color=Red>=</font> []-<a name="line-20"></a>chunk <font color=Cyan>(</font><font color=Magenta>'\r'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> chunk s <font color=Blue>-- get rid of DOS newline stuff</font>+<a name="line-20"></a>chunk <font color=Cyan>(</font><font color=Magenta>'\r'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> chunk s <font color=Blue><i>-- get rid of DOS newline stuff</i></font> <a name="line-21"></a>chunk <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\n"</font><b><font color=Red>:</font></b> chunk s <a name="line-22"></a>chunk <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>|</font> isLinearSpace c <a name="line-23"></a>            <font color=Red>=</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font><b><font color=Red>:</font></b> chunk rest <u><font color=Green>where</font></u> <font color=Cyan>(</font>ss<font color=Cyan>,</font>rest<font color=Cyan>)</font> <font color=Red>=</font> span isLinearSpace s <a name="line-24"></a>chunk <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> <u><font color=Green>let</font></u> <font color=Cyan>(</font>com<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Magenta>0</font> s <a name="line-25"></a>                    <u><font color=Green>in</font></u> <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>com<font color=Cyan>)</font> <b><font color=Red>:</font></b> chunk s' <a name="line-26"></a>chunk s <font color=Red>=</font> <u><font color=Green>case</font></u> Prelude<font color=Cyan>.</font>lex s <u><font color=Green>of</font></u>-<a name="line-27"></a>              []             <font color=Red>-&gt;</font> <font color=Red>[</font>head s<font color=Red>]</font><b><font color=Red>:</font></b> chunk <font color=Cyan>(</font>tail s<font color=Cyan>)</font> <font color=Blue>-- e.g. inside comment</font>+<a name="line-27"></a>              []             <font color=Red>-&gt;</font> <font color=Red>[</font>head s<font color=Red>]</font><b><font color=Red>:</font></b> chunk <font color=Cyan>(</font>tail s<font color=Cyan>)</font> <font color=Blue><i>-- e.g. inside comment</i></font> <a name="line-28"></a>              <font color=Cyan>(</font><font color=Cyan>(</font>tok<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font><font color=Cyan>,</font>rest<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <a name="line-29"></a>                  <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> tok <font color=Red>-&gt;</font> <font color=Cyan>(</font>tok<font color=Cyan>++</font>com<font color=Cyan>)</font><b><font color=Red>:</font></b> chunk s' <a name="line-30"></a>                                       <u><font color=Green>where</font></u> <font color=Cyan>(</font>com<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> eolcomment rest <a name="line-31"></a>              <font color=Cyan>(</font><font color=Cyan>(</font>tok<font color=Cyan>,</font>rest<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>-&gt;</font> tok<b><font color=Red>:</font></b> chunk rest <a name="line-32"></a>-<a name="line-33"></a><a name="isLinearSpace"></a>isLinearSpace c <font color=Red>=</font> c <font color=Cyan>`elem`</font> <font color=Magenta>" \t\f"</font> <font color=Blue>-- " \t\xa0"</font>+<a name="line-33"></a><a name="isLinearSpace"></a>isLinearSpace c <font color=Red>=</font> c <font color=Cyan>`elem`</font> <font color=Magenta>" \t\f"</font> <font color=Blue><i>-- " \t\xa0"</i></font> <a name="line-34"></a>-<a name="line-35"></a><a name="glue"></a><font color=Blue>-- Glue sequences of tokens into more useful blobs</font>-<a name="line-36"></a><font color=Blue>--glue (q:".":n:rest) | Char.isUpper (head q)	-- qualified names</font>-<a name="line-37"></a><font color=Blue>--                    = glue ((q++"."++n): rest)</font>-<a name="line-38"></a>glue <font color=Cyan>(</font><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font>				<font color=Blue>-- `varid` -&gt; varop</font>+<a name="line-35"></a><a name="glue"></a><font color=Blue><i>-- Glue sequences of tokens into more useful blobs</i></font>+<a name="line-36"></a><font color=Blue><i>--glue (q:".":n:rest) | Char.isUpper (head q)	-- qualified names</i></font>+<a name="line-37"></a><font color=Blue><i>--                    = glue ((q++"."++n): rest)</i></font>+<a name="line-38"></a>glue <font color=Cyan>(</font><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font>				<font color=Blue><i>-- `varid` -&gt; varop</i></font> <a name="line-39"></a>  <u><font color=Green>case</font></u> glue rest <u><font color=Green>of</font></u> <a name="line-40"></a>    <font color=Cyan>(</font>qn<b><font color=Red>:</font></b><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Magenta>"`"</font><font color=Cyan>++</font>qn<font color=Cyan>++</font><font color=Magenta>"`"</font><font color=Cyan>)</font><b><font color=Red>:</font></b> glue rest <a name="line-41"></a>    <u><font color=Green>_</font></u>             <font color=Red>-&gt;</font> <font color=Magenta>"`"</font><b><font color=Red>:</font></b> glue rest-<a name="line-42"></a>glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s <font color=Cyan>&amp;&amp;</font> length s <font color=Cyan>&gt;=</font><font color=Magenta>2</font>	<font color=Blue>-- eol comment</font>+<a name="line-42"></a>glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s <font color=Cyan>&amp;&amp;</font> length s <font color=Cyan>&gt;=</font><font color=Magenta>2</font>	<font color=Blue><i>-- eol comment</i></font> <a name="line-43"></a>                  <font color=Red>=</font> <font color=Cyan>(</font>s<font color=Cyan>++</font>concat c<font color=Cyan>)</font><b><font color=Red>:</font></b> glue rest <a name="line-44"></a>                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>c<font color=Cyan>,</font>rest<font color=Cyan>)</font> <font color=Red>=</font> break <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Cyan>`elem`</font><font color=Cyan>)</font> ss-<a name="line-45"></a><font color=Blue>--glue ("{":"-":ss)  = ("{-"++c): glue rest	-- nested comment</font>-<a name="line-46"></a><font color=Blue>--                  where (c,rest) = nestcomment 0 ss</font>+<a name="line-45"></a><font color=Blue><i>--glue ("{":"-":ss)  = ("{-"++c): glue rest	-- nested comment</i></font>+<a name="line-46"></a><font color=Blue><i>--                  where (c,rest) = nestcomment 0 ss</i></font> <a name="line-47"></a>glue <font color=Cyan>(</font><font color=Magenta>"("</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <u><font color=Green>case</font></u> rest <u><font color=Green>of</font></u> <a name="line-48"></a>                <font color=Magenta>")"</font><b><font color=Red>:</font></b>rest <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Magenta>"("</font> <font color=Cyan>++</font> concat tuple <font color=Cyan>++</font> <font color=Magenta>")"</font><font color=Cyan>)</font> <b><font color=Red>:</font></b> glue rest <a name="line-49"></a>                <u><font color=Green>_</font></u>         <font color=Red>-&gt;</font> <font color=Magenta>"("</font> <b><font color=Red>:</font></b> glue ss@@ -61,12 +61,12 @@ <a name="line-54"></a>glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>=</font> s<b><font color=Red>:</font></b> glue ss <a name="line-55"></a>glue []           <font color=Red>=</font> [] <a name="line-56"></a>-<a name="line-57"></a><a name="nestcomment"></a><font color=Blue>-- Deal with comments.</font>+<a name="line-57"></a><a name="nestcomment"></a><font color=Blue><i>-- Deal with comments.</i></font> <a name="line-58"></a>nestcomment <font color=Red>::</font> Int <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font> <a name="line-59"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>&gt;=</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"{-"</font><font color=Cyan>++</font>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font> <a name="line-60"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> ss <a name="line-61"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>&gt;</font><font color=Magenta>0</font>  <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"-}"</font><font color=Cyan>++</font>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font>-<a name="line-62"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> ss+<a name="line-62"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Blue><i>-</i></font><font color=Magenta>1</font><font color=Cyan>)</font> ss <a name="line-63"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"-}"</font><font color=Cyan>,</font>ss<font color=Cyan>)</font> <a name="line-64"></a>nestcomment n <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> n<font color=Cyan>&gt;=</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font>s<b><font color=Red>:</font></b>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font> <a name="line-65"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment n ss@@ -78,7 +78,7 @@ <a name="line-71"></a>eolcomment <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>      <font color=Red>=</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>,</font> s'<font color=Cyan>)</font> <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> eolcomment s <a name="line-72"></a>eolcomment []         <font color=Red>=</font> <font color=Cyan>(</font>[]<font color=Cyan>,</font>[]<font color=Cyan>)</font> <a name="line-73"></a>-<a name="line-74"></a><a name="TokenType"></a><font color=Blue>-- | Classification of tokens as lexical entities</font>+<a name="line-74"></a><a name="TokenType"></a><font color=Blue><i>-- | Classification of tokens as lexical entities</i></font> <a name="line-75"></a><a name="TokenType"></a><u><font color=Green>data</font></u> TokenType <font color=Red>=</font> <a name="line-76"></a>  Space <font color=Red>|</font> Keyword <font color=Red>|</font> Keyglyph <font color=Red>|</font> Layout <font color=Red>|</font> Comment <font color=Red>|</font> Conid <font color=Red>|</font> Varid <font color=Red>|</font> <a name="line-77"></a>  Conop <font color=Red>|</font> Varop   <font color=Red>|</font> String   <font color=Red>|</font> Char   <font color=Red>|</font> Number  <font color=Red>|</font> Cpp   <font color=Red>|</font> Error <font color=Red>|</font>@@ -90,7 +90,7 @@ <a name="line-83"></a>    <font color=Red>|</font> isSpace h              <font color=Red>=</font> Space <a name="line-84"></a>    <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s          <font color=Red>=</font> Comment <a name="line-85"></a>    <font color=Red>|</font> <font color=Magenta>"--"</font> <font color=Cyan>`isPrefixOf`</font> s-<a name="line-86"></a>      <font color=Cyan>&amp;&amp;</font> any isSpace s       <font color=Red>=</font> Comment		<font color=Blue>-- not fully correct</font>+<a name="line-86"></a>      <font color=Cyan>&amp;&amp;</font> any isSpace s       <font color=Red>=</font> Comment		<font color=Blue><i>-- not fully correct</i></font> <a name="line-87"></a>    <font color=Red>|</font> <font color=Magenta>"{-"</font> <font color=Cyan>`isPrefixOf`</font> s    <font color=Red>=</font> Comment <a name="line-88"></a>    <font color=Red>|</font> s <font color=Cyan>`elem`</font> keywords      <font color=Red>=</font> Keyword <a name="line-89"></a>    <font color=Red>|</font> s <font color=Cyan>`elem`</font> keyglyphs     <font color=Red>=</font> Keyglyph@@ -114,7 +114,7 @@ <a name="line-107"></a>isTupleTail <u><font color=Green>_</font></u> <font color=Red>=</font> False <a name="line-108"></a> <a name="line-109"></a>-<a name="line-110"></a><a name="keywords"></a><font color=Blue>-- Haskell keywords</font>+<a name="line-110"></a><a name="keywords"></a><font color=Blue><i>-- Haskell keywords</i></font> <a name="line-111"></a>keywords <font color=Red>=</font> <a name="line-112"></a>  <font color=Red>[</font><font color=Magenta>"case"</font><font color=Cyan>,</font><font color=Magenta>"class"</font><font color=Cyan>,</font><font color=Magenta>"data"</font><font color=Cyan>,</font><font color=Magenta>"default"</font><font color=Cyan>,</font><font color=Magenta>"deriving"</font><font color=Cyan>,</font><font color=Magenta>"do"</font><font color=Cyan>,</font><font color=Magenta>"else"</font><font color=Cyan>,</font><font color=Magenta>"forall"</font> <a name="line-113"></a>  <font color=Cyan>,</font><font color=Magenta>"if"</font><font color=Cyan>,</font><font color=Magenta>"import"</font><font color=Cyan>,</font><font color=Magenta>"in"</font><font color=Cyan>,</font><font color=Magenta>"infix"</font><font color=Cyan>,</font><font color=Magenta>"infixl"</font><font color=Cyan>,</font><font color=Magenta>"infixr"</font><font color=Cyan>,</font><font color=Magenta>"instance"</font><font color=Cyan>,</font><font color=Magenta>"let"</font><font color=Cyan>,</font><font color=Magenta>"module"</font>
docs/hscolour/Language/Haskell/HsColour/ColourHighlight.html view
@@ -10,11 +10,11 @@ <a name="line-3"></a>  <font color=Cyan>,</font> Highlight<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font> <a name="line-4"></a>  <font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-5"></a>-<a name="line-6"></a><a name="Colour"></a><font color=Blue>-- | Colours supported by ANSI codes.</font>+<a name="line-6"></a><a name="Colour"></a><font color=Blue><i>-- | Colours supported by ANSI codes.</i></font> <a name="line-7"></a><a name="Colour"></a><u><font color=Green>data</font></u> Colour <font color=Red>=</font> Black <font color=Red>|</font> Red <font color=Red>|</font> Green <font color=Red>|</font> Yellow <font color=Red>|</font> Blue <font color=Red>|</font> Magenta <font color=Red>|</font> Cyan <font color=Red>|</font> White <a name="line-8"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>,</font>Enum<font color=Cyan>)</font> <a name="line-9"></a>-<a name="line-10"></a><a name="Highlight"></a><font color=Blue>-- | Types of highlighting supported by ANSI codes.</font>+<a name="line-10"></a><a name="Highlight"></a><font color=Blue><i>-- | Types of highlighting supported by ANSI codes (and some extra styles).</i></font> <a name="line-11"></a><a name="Highlight"></a><u><font color=Green>data</font></u> Highlight <font color=Red>=</font> <a name="line-12"></a>    Normal <a name="line-13"></a>  <font color=Red>|</font> Bold@@ -25,8 +25,10 @@ <a name="line-18"></a>  <font color=Red>|</font> Concealed <a name="line-19"></a>  <font color=Red>|</font> Foreground Colour <a name="line-20"></a>  <font color=Red>|</font> Background Colour-<a name="line-21"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font>-<a name="line-22"></a>+<a name="line-21"></a>  <font color=Blue><i>-- Above are ANSI-only.  Below are extra styles.</i></font>+<a name="line-22"></a>  <font color=Red>|</font> Italic+<a name="line-23"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font>+<a name="line-24"></a> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/Colourise.html view
@@ -19,7 +19,7 @@ <a name="line-12"></a><u><font color=Green>import</font></u> System <font color=Cyan>(</font>getEnv<font color=Cyan>)</font> <a name="line-13"></a><u><font color=Green>import</font></u> List <a name="line-14"></a>-<a name="line-15"></a><a name="ColourPrefs"></a><font color=Blue>-- | Colour preferences.</font>+<a name="line-15"></a><a name="ColourPrefs"></a><font color=Blue><i>-- | Colour preferences.</i></font> <a name="line-16"></a><a name="ColourPrefs"></a><u><font color=Green>data</font></u> ColourPrefs <font color=Red>=</font> ColourPrefs <a name="line-17"></a>  <font color=Cyan>{</font> keyword<font color=Cyan>,</font> keyglyph<font color=Cyan>,</font> layout<font color=Cyan>,</font> comment <a name="line-18"></a>  <font color=Cyan>,</font> conid<font color=Cyan>,</font> varid<font color=Cyan>,</font> conop<font color=Cyan>,</font> varop@@ -31,7 +31,7 @@ <a name="line-24"></a>  <font color=Cyan>{</font> keyword  <font color=Red>=</font> <font color=Red>[</font>Foreground Green<font color=Cyan>,</font>Underscore<font color=Red>]</font> <a name="line-25"></a>  <font color=Cyan>,</font> keyglyph <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Red>]</font> <a name="line-26"></a>  <font color=Cyan>,</font> layout   <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>-<a name="line-27"></a>  <font color=Cyan>,</font> comment  <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Red>]</font>+<a name="line-27"></a>  <font color=Cyan>,</font> comment  <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Cyan>,</font> Italic<font color=Red>]</font> <a name="line-28"></a>  <font color=Cyan>,</font> conid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font> <a name="line-29"></a>  <font color=Cyan>,</font> varid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font> <a name="line-30"></a>  <font color=Cyan>,</font> conop    <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Cyan>,</font>Bold<font color=Red>]</font>@@ -45,7 +45,7 @@ <a name="line-38"></a>  <font color=Cyan>,</font> definition <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Red>]</font> <a name="line-39"></a>  <font color=Cyan>}</font> <a name="line-40"></a>-<a name="line-41"></a><a name="parseColourPrefs"></a><font color=Blue>-- NOTE, should we give a warning message on a failed reading?</font>+<a name="line-41"></a><a name="parseColourPrefs"></a><font color=Blue><i>-- NOTE, should we give a warning message on a failed reading?</i></font> <a name="line-42"></a>parseColourPrefs <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> IO ColourPrefs <a name="line-43"></a>parseColourPrefs file x <font color=Red>=</font> <a name="line-44"></a>    <u><font color=Green>case</font></u> reads x <u><font color=Green>of</font></u>@@ -54,8 +54,8 @@ <a name="line-47"></a>                                  <font color=Cyan>++</font><font color=Magenta>": reverting to defaults"</font><font color=Cyan>)</font> <a name="line-48"></a>                return defaultColourPrefs <a name="line-49"></a>-<a name="line-50"></a><a name="readColourPrefs"></a><font color=Blue>-- | Read colour preferences from .hscolour file in the current directory, or failing that,</font>-<a name="line-51"></a><font color=Blue>--   from \$HOME\/.hscolour, and failing that, returns a default set of prefs.</font>+<a name="line-50"></a><a name="readColourPrefs"></a><font color=Blue><i>-- | Read colour preferences from .hscolour file in the current directory, or failing that,</i></font>+<a name="line-51"></a><font color=Blue><i>--   from \$HOME\/.hscolour, and failing that, returns a default set of prefs.</i></font> <a name="line-52"></a>readColourPrefs <font color=Red>::</font> IO ColourPrefs <a name="line-53"></a>readColourPrefs <font color=Red>=</font> catch <a name="line-54"></a>  <font color=Cyan>(</font><u><font color=Green>do</font></u> val <font color=Red>&lt;-</font> readFile <font color=Magenta>".hscolour"</font>@@ -66,7 +66,7 @@ <a name="line-59"></a>        parseColourPrefs <font color=Cyan>(</font>home<font color=Cyan>++</font><font color=Magenta>"/.hscolour"</font><font color=Cyan>)</font> val<font color=Cyan>)</font> <a name="line-60"></a>    <font color=Cyan>(</font><font color=Red>\</font><u><font color=Green>_</font></u><font color=Red>-&gt;</font> return defaultColourPrefs<font color=Cyan>)</font><font color=Cyan>)</font> <a name="line-61"></a>-<a name="line-62"></a><a name="colourise"></a><font color=Blue>-- | Convert token classification to colour highlights.</font>+<a name="line-62"></a><a name="colourise"></a><font color=Blue><i>-- | Convert token classification to colour highlights.</i></font> <a name="line-63"></a>colourise <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> TokenType <font color=Red>-&gt;</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <a name="line-64"></a>colourise pref Space    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font> <a name="line-65"></a>colourise pref Comment  <font color=Red>=</font> comment pref
docs/hscolour/Language/Haskell/HsColour/HTML.html view
@@ -5,10 +5,10 @@ <title>Language/Haskell/HsColour/HTML.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using HTML with font tags.</i></font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML  <a name="line-3"></a>    <font color=Cyan>(</font>hscolour<font color=Cyan>,</font> -<a name="line-4"></a>     <font color=Blue>-- * Internals</font>+<a name="line-4"></a>     <font color=Blue><i>-- * Internals</i></font> <a name="line-5"></a>     renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-6"></a> <a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors@@ -18,13 +18,13 @@ <a name="line-11"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font> <a name="line-12"></a> <a name="line-13"></a>-<a name="line-14"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>-<a name="line-15"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>-<a name="line-16"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-17"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output should be partial.</font>-<a name="line-18"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Title for webpage output.</font>-<a name="line-19"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-20"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>+<a name="line-14"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code using HTML with font tags.</i></font>+<a name="line-15"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>+<a name="line-16"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-17"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output should be partial.</i></font>+<a name="line-18"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Title for webpage output.</i></font>+<a name="line-19"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-20"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font> <a name="line-21"></a>hscolour pref anchor partial title <font color=Red>=</font>  <a name="line-22"></a>    <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font> <a name="line-23"></a>    <font color=Cyan>.</font> pre@@ -49,13 +49,13 @@ <a name="line-42"></a>renderAnchors <u><font color=Green>_</font></u>      <font color=Cyan>(</font>Left v<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\""</font><font color=Cyan>++</font>v<font color=Cyan>++</font><font color=Magenta>"\"&gt;&lt;/a&gt;"</font> <a name="line-43"></a>renderAnchors render <font color=Cyan>(</font>Right r<font color=Cyan>)</font> <font color=Red>=</font> render r <a name="line-44"></a>-<a name="line-45"></a><a name="renderComment"></a><font color=Blue>-- if there are <a href="http://links/">http://links/</a> in a comment, turn them into</font>-<a name="line-46"></a><font color=Blue>-- hyperlinks</font>+<a name="line-45"></a><a name="renderComment"></a><font color=Blue><i>-- if there are <a href="http://links/">http://links/</a> in a comment, turn them into</i></font>+<a name="line-46"></a><font color=Blue><i>-- hyperlinks</i></font> <a name="line-47"></a>renderComment <font color=Red>::</font> String <font color=Red>-&gt;</font> String <a name="line-48"></a>renderComment xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'h'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'p'</font><b><font color=Red>:</font></b><font color=Magenta>':'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> <a name="line-49"></a>        renderLink a <font color=Cyan>++</font> renderComment b <a name="line-50"></a>    <u><font color=Green>where</font></u>-<a name="line-51"></a>        <font color=Blue>-- see <a href="http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters">http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</a></font>+<a name="line-51"></a>        <font color=Blue><i>-- see <a href="http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters">http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</a></i></font> <a name="line-52"></a>        isUrlChar x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":/?#[]@!$&amp;'()*+,;=-._~%"</font> <a name="line-53"></a>        <font color=Cyan>(</font>a<font color=Cyan>,</font>b<font color=Cyan>)</font> <font color=Red>=</font> span isUrlChar xs <a name="line-54"></a>        renderLink link <font color=Red>=</font> <font color=Magenta>"&lt;a href=\""</font> <font color=Cyan>++</font> link <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font> escape link <font color=Cyan>++</font> <font color=Magenta>"&lt;/a&gt;"</font>@@ -67,7 +67,7 @@ <a name="line-60"></a>renderNewLinesAnchors <font color=Red>=</font> unlines <font color=Cyan>.</font> map render <font color=Cyan>.</font> zip <font color=Red>[</font><font color=Magenta>1</font><font color=Red>..</font><font color=Red>]</font> <font color=Cyan>.</font> lines <a name="line-61"></a>    <u><font color=Green>where</font></u> render <font color=Cyan>(</font>line<font color=Cyan>,</font> s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\"line-"</font> <font color=Cyan>++</font> show line <font color=Cyan>++</font> <font color=Magenta>"\"&gt;&lt;/a&gt;"</font> <font color=Cyan>++</font> s <a name="line-62"></a>-<a name="line-63"></a><a name="fontify"></a><font color=Blue>-- Html stuff</font>+<a name="line-63"></a><a name="fontify"></a><font color=Blue><i>-- Html stuff</i></font> <a name="line-64"></a>fontify [] s     <font color=Red>=</font> s <a name="line-65"></a>fontify <font color=Cyan>(</font>h<b><font color=Red>:</font></b>hs<font color=Cyan>)</font> s <font color=Red>=</font> font h <font color=Cyan>(</font>fontify hs s<font color=Cyan>)</font> <a name="line-66"></a>@@ -80,23 +80,24 @@ <a name="line-73"></a>font Concealed      s <font color=Red>=</font> s <a name="line-74"></a>font <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"&lt;font color="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>"&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/font&gt;"</font> <a name="line-75"></a>font <font color=Cyan>(</font>Background c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"&lt;font bgcolor="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>"&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/font&gt;"</font>-<a name="line-76"></a>-<a name="line-77"></a><a name="escape"></a>escape <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;lt;"</font><font color=Cyan>++</font>escape cs-<a name="line-78"></a>escape <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;gt;"</font><font color=Cyan>++</font>escape cs-<a name="line-79"></a>escape <font color=Cyan>(</font><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;amp;"</font><font color=Cyan>++</font>escape cs-<a name="line-80"></a>escape <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font>   <font color=Red>=</font> c<b><font color=Red>:</font></b> escape cs-<a name="line-81"></a>escape []       <font color=Red>=</font> []-<a name="line-82"></a>-<a name="line-83"></a><a name="htmlHeader"></a>htmlHeader title <font color=Red>=</font> unlines-<a name="line-84"></a>  <font color=Red>[</font> <font color=Magenta>"&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"&gt;"</font>-<a name="line-85"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;html&gt;"</font>-<a name="line-86"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;head&gt;"</font>-<a name="line-87"></a>  <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>-<a name="line-88"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>-<a name="line-89"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;/head&gt;"</font>-<a name="line-90"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;body&gt;"</font>-<a name="line-91"></a>  <font color=Red>]</font>-<a name="line-92"></a><a name="htmlClose"></a>htmlClose  <font color=Red>=</font> <font color=Magenta>"\n&lt;/body&gt;\n&lt;/html&gt;"</font>+<a name="line-76"></a>font Italic         s <font color=Red>=</font> <font color=Magenta>"&lt;i&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/i&gt;"</font>+<a name="line-77"></a>+<a name="line-78"></a><a name="escape"></a>escape <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;lt;"</font><font color=Cyan>++</font>escape cs+<a name="line-79"></a>escape <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;gt;"</font><font color=Cyan>++</font>escape cs+<a name="line-80"></a>escape <font color=Cyan>(</font><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;amp;"</font><font color=Cyan>++</font>escape cs+<a name="line-81"></a>escape <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font>   <font color=Red>=</font> c<b><font color=Red>:</font></b> escape cs+<a name="line-82"></a>escape []       <font color=Red>=</font> []+<a name="line-83"></a>+<a name="line-84"></a><a name="htmlHeader"></a>htmlHeader title <font color=Red>=</font> unlines+<a name="line-85"></a>  <font color=Red>[</font> <font color=Magenta>"&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"&gt;"</font>+<a name="line-86"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;html&gt;"</font>+<a name="line-87"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;head&gt;"</font>+<a name="line-88"></a>  <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>+<a name="line-89"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>+<a name="line-90"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;/head&gt;"</font>+<a name="line-91"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;body&gt;"</font>+<a name="line-92"></a>  <font color=Red>]</font>+<a name="line-93"></a><a name="htmlClose"></a>htmlClose  <font color=Red>=</font> <font color=Magenta>"\n&lt;/body&gt;\n&lt;/html&gt;"</font> </pre> </body> </html>
+ docs/hscolour/Language/Haskell/HsColour/InlineCSS.html view
@@ -0,0 +1,90 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">+<html>+<head>+<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->+<title>Language/Haskell/HsColour/InlineCSS.hs</title>+</head>+<body>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code as HTML with inline CSS.</i></font>+<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>+<a name="line-3"></a>+<a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors+<a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify+<a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise+<a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML <font color=Cyan>(</font>renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font>+<a name="line-8"></a>                                       renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font>+<a name="line-9"></a>+<a name="line-10"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code as a complete HTML document with inline styling</i></font>+<a name="line-11"></a>hscolour <font color=Red>::</font> ColourPrefs	<font color=Blue><i>-- ^ Preferences for styling.</i></font>+<a name="line-12"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-13"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue><i>-- ^ Whether output should be partial</i></font>+<a name="line-14"></a>                   <font color=Blue><i>--   (= no document headers will be included.)</i></font>+<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Title for HTML page.</i></font>+<a name="line-16"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-17"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ An HTML document containing the coloured </i></font>+<a name="line-18"></a>                   <font color=Blue><i>--   Haskell source code.</i></font>+<a name="line-19"></a>hscolour prefs anchor partial title <font color=Red>=</font>+<a name="line-20"></a>  <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font>+<a name="line-21"></a>  <font color=Cyan>.</font> pre+<a name="line-22"></a>  <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor +<a name="line-23"></a>        <u><font color=Green>then</font></u> renderNewLinesAnchors+<a name="line-24"></a>             <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-25"></a>             <font color=Cyan>.</font> insertAnchors+<a name="line-26"></a>        <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-27"></a>  <font color=Cyan>.</font> tokenise+<a name="line-28"></a>+<a name="line-29"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String+<a name="line-30"></a>top'n'tail title  <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>cssSuffix<font color=Cyan>)</font>+<a name="line-31"></a>+<a name="line-32"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String+<a name="line-33"></a>pre <font color=Red>=</font>   <font color=Cyan>(</font><font color=Magenta>"&lt;pre style=\"font-family:Consolas, Monaco, Monospace;\"&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font>+<a name="line-34"></a>      <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>+<a name="line-35"></a>+<a name="line-36"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String+<a name="line-37"></a>renderToken prefs <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font>+<a name="line-38"></a>  stylise <font color=Cyan>(</font>colourise prefs cls<font color=Cyan>)</font> <font color=Cyan>$</font>+<a name="line-39"></a>  <u><font color=Green>if</font></u> cls <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment text <u><font color=Green>else</font></u> escape text+<a name="line-40"></a>+<a name="line-41"></a><a name="stylise"></a>stylise <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String+<a name="line-42"></a>stylise hs s <font color=Red>=</font> <font color=Magenta>"&lt;span style=\""</font> <font color=Cyan>++</font> concatMap style hs <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font>s<font color=Cyan>++</font> <font color=Magenta>"&lt;/span&gt;"</font>+<a name="line-43"></a>+<a name="line-44"></a><a name="cssPrefix"></a>cssPrefix title <font color=Red>=</font> unlines+<a name="line-45"></a>    <font color=Red>[</font><font color=Magenta>"&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"&gt;"</font>+<a name="line-46"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;html&gt;"</font>+<a name="line-47"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;head&gt;"</font>+<a name="line-48"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>+<a name="line-49"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>+<a name="line-50"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/head&gt;"</font>+<a name="line-51"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;body style=\"background-color: #131313; color: #ffffff;\"&gt;"</font>+<a name="line-52"></a>    <font color=Red>]</font>+<a name="line-53"></a>    +<a name="line-54"></a><a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines+<a name="line-55"></a>    <font color=Red>[</font><font color=Magenta>"&lt;/body&gt;"</font>+<a name="line-56"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/html&gt;"</font>+<a name="line-57"></a>    <font color=Red>]</font>+<a name="line-58"></a>+<a name="line-59"></a><a name="style"></a>style <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> String+<a name="line-60"></a>style Normal         <font color=Red>=</font> <font color=Magenta>""</font>+<a name="line-61"></a>style Bold           <font color=Red>=</font> <font color=Magenta>"font-weight: bold;"</font>+<a name="line-62"></a>style Dim            <font color=Red>=</font> <font color=Magenta>"font-weight: lighter;"</font>+<a name="line-63"></a>style Underscore     <font color=Red>=</font> <font color=Magenta>"text-decoration: underline;"</font>+<a name="line-64"></a>style Blink          <font color=Red>=</font> <font color=Magenta>"text-decoration:  blink;"</font>+<a name="line-65"></a>style ReverseVideo   <font color=Red>=</font> <font color=Magenta>""</font>+<a name="line-66"></a>style Concealed      <font color=Red>=</font> <font color=Magenta>"text-decoration:  line-through;"</font>+<a name="line-67"></a>style <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"color: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>+<a name="line-68"></a>style <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"background-colour: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>+<a name="line-69"></a>style Italic         <font color=Red>=</font> <font color=Magenta>"font-style: italic;"</font>+<a name="line-70"></a>+<a name="line-71"></a><a name="csscolour"></a>csscolour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String+<a name="line-72"></a>csscolour Black   <font color=Red>=</font> <font color=Magenta>"#000000"</font>+<a name="line-73"></a>csscolour Red     <font color=Red>=</font> <font color=Magenta>"#ff0000"</font>+<a name="line-74"></a>csscolour Green   <font color=Red>=</font> <font color=Magenta>"#00ff00"</font>+<a name="line-75"></a>csscolour Yellow  <font color=Red>=</font> <font color=Magenta>"#ffff00"</font>+<a name="line-76"></a>csscolour Blue    <font color=Red>=</font> <font color=Magenta>"#0000ff"</font>+<a name="line-77"></a>csscolour Magenta <font color=Red>=</font> <font color=Magenta>"#ff00ff"</font>+<a name="line-78"></a>csscolour Cyan    <font color=Red>=</font> <font color=Magenta>"#00ffff"</font>+<a name="line-79"></a>csscolour White   <font color=Red>=</font> <font color=Magenta>"#ffffff"</font>+<a name="line-80"></a>+</pre>+</body>+</html>
docs/hscolour/Language/Haskell/HsColour/LaTeX.html view
@@ -5,19 +5,19 @@ <title>Language/Haskell/HsColour/LaTeX.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using LaTeX macros.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using LaTeX macros.</i></font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>General <a name="line-7"></a>-<a name="line-8"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete LaTeX document.</font>-<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>-<a name="line-10"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output should be partial (= no prologue).</font>-<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-12"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ A LaTeX document\/fragment containing the coloured </font>-<a name="line-13"></a>                        <font color=Blue>--   Haskell source code.</font>+<a name="line-8"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code as a complete LaTeX document.</i></font>+<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>+<a name="line-10"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output should be partial (= no prologue).</i></font>+<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-12"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ A LaTeX document\/fragment containing the coloured </i></font>+<a name="line-13"></a>                        <font color=Blue><i>--   Haskell source code.</i></font> <a name="line-14"></a>hscolour pref partial <font color=Red>=</font> <a name="line-15"></a>  <font color=Cyan>(</font> <u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail<font color=Cyan>)</font> <a name="line-16"></a>  <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font>@@ -26,8 +26,8 @@ <a name="line-19"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <a name="line-20"></a>top'n'tail  <font color=Red>=</font> <font color=Cyan>(</font>latexPrefix<font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>latexSuffix<font color=Cyan>)</font> <a name="line-21"></a>-<a name="line-22"></a><a name="renderToken"></a><font color=Blue>-- | Wrap each lexeme in the appropriate LaTeX macro.</font>-<a name="line-23"></a><font color=Blue>--   TODO: filter dangerous characters like "{}_$"</font>+<a name="line-22"></a><a name="renderToken"></a><font color=Blue><i>-- | Wrap each lexeme in the appropriate LaTeX macro.</i></font>+<a name="line-23"></a><font color=Blue><i>--   TODO: filter dangerous characters like "{}_$"</i></font> <a name="line-24"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String <a name="line-25"></a>renderToken pref <font color=Cyan>(</font>Space<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font> filterSpace text <a name="line-26"></a>renderToken pref <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font>   <font color=Red>=</font>@@ -38,7 +38,7 @@ <a name="line-31"></a>      <font color=Cyan>(</font>pre<font color=Cyan>,</font> post<font color=Cyan>)</font> <font color=Red>=</font> unzip <font color=Cyan>$</font> map latexHighlight style <a name="line-32"></a>  <u><font color=Green>in</font></u> concat pre <font color=Cyan>++</font> filterSpecial symb <font color=Cyan>++</font> concat post <a name="line-33"></a>-<a name="line-34"></a><a name="filterSpace"></a><font color=Blue>-- | Filter white space characters.</font>+<a name="line-34"></a><a name="filterSpace"></a><font color=Blue><i>-- | Filter white space characters.</i></font> <a name="line-35"></a>filterSpace <font color=Red>::</font> String <a name="line-36"></a>            <font color=Red>-&gt;</font> String <a name="line-37"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>@@ -47,10 +47,10 @@ <a name="line-40"></a>filterSpace <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>    <font color=Red>=</font> c<b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font> <a name="line-41"></a>filterSpace []        <font color=Red>=</font> [] <a name="line-42"></a>-<a name="line-43"></a><a name="filterSpecial"></a><font color=Blue>-- | Filters the characters "#$%&amp;~_^\{}" which are special</font>-<a name="line-44"></a><font color=Blue>--   in LaTeX.</font>-<a name="line-45"></a>filterSpecial <font color=Red>::</font> String  <font color=Blue>-- ^ The string to filter. </font>-<a name="line-46"></a>              <font color=Red>-&gt;</font> String  <font color=Blue>-- ^ The LaTeX-safe string.</font>+<a name="line-43"></a><a name="filterSpecial"></a><font color=Blue><i>-- | Filters the characters "#$%&amp;~_^\{}" which are special</i></font>+<a name="line-44"></a><font color=Blue><i>--   in LaTeX.</i></font>+<a name="line-45"></a>filterSpecial <font color=Red>::</font> String  <font color=Blue><i>-- ^ The string to filter. </i></font>+<a name="line-46"></a>              <font color=Red>-&gt;</font> String  <font color=Blue><i>-- ^ The LaTeX-safe string.</i></font> <a name="line-47"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'#'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'#'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font> <a name="line-48"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'$'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'$'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font> <a name="line-49"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'%'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'%'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>@@ -70,7 +70,7 @@ <a name="line-63"></a>filterSpecial []        <font color=Red>=</font> [] <a name="line-64"></a> <a name="line-65"></a>-<a name="line-66"></a><a name="latexHighlight"></a><font color=Blue>-- | Constructs the appropriate LaTeX macro for the given style.</font>+<a name="line-66"></a><a name="latexHighlight"></a><font color=Blue><i>-- | Constructs the appropriate LaTeX macro for the given style.</i></font> <a name="line-67"></a>latexHighlight <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font> String<font color=Cyan>)</font> <a name="line-68"></a>latexHighlight Normal         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\rm{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-69"></a>latexHighlight Bold           <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\bf{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>@@ -81,39 +81,40 @@ <a name="line-74"></a>latexHighlight Concealed      <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\conceal{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-75"></a>latexHighlight <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\textcolor{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-76"></a>latexHighlight <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\colorbox{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>-<a name="line-77"></a>-<a name="line-78"></a><a name="latexColour"></a><font color=Blue>-- | Translate a 'Colour' into a LaTeX colour name.</font>-<a name="line-79"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String-<a name="line-80"></a>latexColour Black   <font color=Red>=</font> <font color=Magenta>"black"</font>-<a name="line-81"></a>latexColour Red     <font color=Red>=</font> <font color=Magenta>"red"</font>-<a name="line-82"></a>latexColour Green   <font color=Red>=</font> <font color=Magenta>"green"</font>-<a name="line-83"></a>latexColour Yellow  <font color=Red>=</font> <font color=Magenta>"yellow"</font>-<a name="line-84"></a>latexColour Blue    <font color=Red>=</font> <font color=Magenta>"blue"</font>-<a name="line-85"></a>latexColour Magenta <font color=Red>=</font> <font color=Magenta>"magenta"</font>-<a name="line-86"></a>latexColour Cyan    <font color=Red>=</font> <font color=Magenta>"cyan"</font>-<a name="line-87"></a>latexColour White   <font color=Red>=</font> <font color=Magenta>"white"</font>-<a name="line-88"></a>-<a name="line-89"></a><a name="latexPrefix"></a><font color=Blue>-- | Generic LaTeX document preamble.</font>-<a name="line-90"></a>latexPrefix <font color=Red>=</font> unlines-<a name="line-91"></a>    <font color=Red>[</font><font color=Magenta>"\\documentclass[a4paper, 12pt]{article}"</font>-<a name="line-92"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage[usenames]{color}"</font>-<a name="line-93"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage{hyperref}"</font>-<a name="line-94"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\spaceb}"</font>-<a name="line-95"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\tabb}"</font>-<a name="line-96"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\spaceb}[1ex]{~}"</font>-<a name="line-97"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\tabb}[4ex]{~}"</font>-<a name="line-98"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"</font>-<a name="line-99"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hstab}{\\usebox{\\tabb}}"</font>-<a name="line-100"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\conceal}[1]{}"</font>-<a name="line-101"></a>    <font color=Cyan>,</font><font color=Magenta>"\\begin{document}"</font>-<a name="line-102"></a>    <font color=Cyan>,</font><font color=Magenta>"\\noindent"</font>-<a name="line-103"></a>    <font color=Red>]</font>-<a name="line-104"></a>-<a name="line-105"></a><a name="latexSuffix"></a><font color=Blue>-- | Generic LaTeX document postamble.</font>-<a name="line-106"></a>latexSuffix <font color=Red>=</font> unlines-<a name="line-107"></a>    <font color=Red>[</font><font color=Magenta>""</font>-<a name="line-108"></a>    <font color=Cyan>,</font><font color=Magenta>"\\end{document}"</font>-<a name="line-109"></a>    <font color=Red>]</font>+<a name="line-77"></a>latexHighlight Italic         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\it{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>+<a name="line-78"></a>+<a name="line-79"></a><a name="latexColour"></a><font color=Blue><i>-- | Translate a 'Colour' into a LaTeX colour name.</i></font>+<a name="line-80"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String+<a name="line-81"></a>latexColour Black   <font color=Red>=</font> <font color=Magenta>"black"</font>+<a name="line-82"></a>latexColour Red     <font color=Red>=</font> <font color=Magenta>"red"</font>+<a name="line-83"></a>latexColour Green   <font color=Red>=</font> <font color=Magenta>"green"</font>+<a name="line-84"></a>latexColour Yellow  <font color=Red>=</font> <font color=Magenta>"yellow"</font>+<a name="line-85"></a>latexColour Blue    <font color=Red>=</font> <font color=Magenta>"blue"</font>+<a name="line-86"></a>latexColour Magenta <font color=Red>=</font> <font color=Magenta>"magenta"</font>+<a name="line-87"></a>latexColour Cyan    <font color=Red>=</font> <font color=Magenta>"cyan"</font>+<a name="line-88"></a>latexColour White   <font color=Red>=</font> <font color=Magenta>"white"</font>+<a name="line-89"></a>+<a name="line-90"></a><a name="latexPrefix"></a><font color=Blue><i>-- | Generic LaTeX document preamble.</i></font>+<a name="line-91"></a>latexPrefix <font color=Red>=</font> unlines+<a name="line-92"></a>    <font color=Red>[</font><font color=Magenta>"\\documentclass[a4paper, 12pt]{article}"</font>+<a name="line-93"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage[usenames]{color}"</font>+<a name="line-94"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage{hyperref}"</font>+<a name="line-95"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\spaceb}"</font>+<a name="line-96"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\tabb}"</font>+<a name="line-97"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\spaceb}[1ex]{~}"</font>+<a name="line-98"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\tabb}[4ex]{~}"</font>+<a name="line-99"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"</font>+<a name="line-100"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hstab}{\\usebox{\\tabb}}"</font>+<a name="line-101"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\conceal}[1]{}"</font>+<a name="line-102"></a>    <font color=Cyan>,</font><font color=Magenta>"\\begin{document}"</font>+<a name="line-103"></a>    <font color=Cyan>,</font><font color=Magenta>"\\noindent"</font>+<a name="line-104"></a>    <font color=Red>]</font>+<a name="line-105"></a>+<a name="line-106"></a><a name="latexSuffix"></a><font color=Blue><i>-- | Generic LaTeX document postamble.</i></font>+<a name="line-107"></a>latexSuffix <font color=Red>=</font> unlines+<a name="line-108"></a>    <font color=Red>[</font><font color=Magenta>""</font>+<a name="line-109"></a>    <font color=Cyan>,</font><font color=Magenta>"\\end{document}"</font>+<a name="line-110"></a>    <font color=Red>]</font> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/MIRC.html view
@@ -5,8 +5,8 @@ <title>Language/Haskell/HsColour/MIRC.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using mIRC codes.</font>-<a name="line-2"></a><font color=Blue>--   (see http:\/\/irssi.org\/documentation\/formats)</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using mIRC codes.</i></font>+<a name="line-2"></a><font color=Blue><i>--   (see http:\/\/irssi.org\/documentation\/formats)</i></font> <a name="line-3"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>MIRC <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-4"></a> <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify@@ -15,17 +15,17 @@ <a name="line-8"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font> <a name="line-9"></a> <a name="line-10"></a>-<a name="line-11"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code using mIRC codes.</font>-<a name="line-12"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>-<a name="line-13"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-14"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>+<a name="line-11"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code using mIRC codes.</i></font>+<a name="line-12"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>+<a name="line-13"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-14"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font> <a name="line-15"></a>hscolour pref <font color=Red>=</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise <a name="line-16"></a> <a name="line-17"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String <a name="line-18"></a>renderToken pref <font color=Cyan>(</font>t<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> fontify <font color=Cyan>(</font>colourise pref t<font color=Cyan>)</font> s <a name="line-19"></a> <a name="line-20"></a>-<a name="line-21"></a><a name="fontify"></a><font color=Blue>-- mIRC stuff</font>+<a name="line-21"></a><a name="fontify"></a><font color=Blue><i>-- mIRC stuff</i></font> <a name="line-22"></a>fontify hs <font color=Red>=</font> <a name="line-23"></a>    mircColours <font color=Cyan>(</font>joinColours hs<font color=Cyan>)</font> <a name="line-24"></a>    <font color=Cyan>.</font> highlight <font color=Cyan>(</font>filter <font color=Cyan>(</font><font color=Cyan>`elem`</font><font color=Red>[</font>Normal<font color=Cyan>,</font>Bold<font color=Cyan>,</font>Underscore<font color=Cyan>,</font>ReverseVideo<font color=Red>]</font><font color=Cyan>)</font> hs<font color=Cyan>)</font>@@ -38,7 +38,7 @@ <a name="line-31"></a>    font Underscore     s <font color=Red>=</font> <font color=Magenta>'\^_'</font><b><font color=Red>:</font></b>s<font color=Cyan>++</font><font color=Magenta>"\^_"</font> <a name="line-32"></a>    font ReverseVideo   s <font color=Red>=</font> <font color=Magenta>'\^V'</font><b><font color=Red>:</font></b>s<font color=Cyan>++</font><font color=Magenta>"\^V"</font> <a name="line-33"></a>-<a name="line-34"></a><a name="MircColour"></a><font color=Blue>-- mIRC combines colour codes in a non-modular way</font>+<a name="line-34"></a><a name="MircColour"></a><font color=Blue><i>-- mIRC combines colour codes in a non-modular way</i></font> <a name="line-35"></a><a name="MircColour"></a><u><font color=Green>data</font></u> MircColour <font color=Red>=</font> Mirc <font color=Cyan>{</font> fg<font color=Red>::</font>Colour<font color=Cyan>,</font> dim<font color=Red>::</font>Bool<font color=Cyan>,</font> bg<font color=Red>::</font>Maybe Colour<font color=Cyan>,</font> blink<font color=Red>::</font>Bool<font color=Cyan>}</font> <a name="line-36"></a> <a name="line-37"></a><a name="joinColours"></a>joinColours <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> MircColour
docs/hscolour/Language/Haskell/HsColour/Options.html view
@@ -13,17 +13,17 @@ <a name="line-6"></a> <a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output <a name="line-8"></a>-<a name="line-9"></a><a name="Option"></a><font color=Blue>-- | Command-line options</font>+<a name="line-9"></a><a name="Option"></a><font color=Blue><i>-- | Command-line options</i></font> <a name="line-10"></a><a name="Option"></a><u><font color=Green>data</font></u> Option <font color=Red>=</font>-<a name="line-11"></a>    Help		<font color=Blue>-- ^ print usage message</font>-<a name="line-12"></a>  <font color=Red>|</font> Version		<font color=Blue>-- ^ report version</font>-<a name="line-13"></a>  <font color=Red>|</font> Information		<font color=Blue>-- ^ report auxiliary information, e.g. CSS defaults</font>-<a name="line-14"></a>  <font color=Red>|</font> Format Output	<font color=Blue>-- ^ what type of output to produce</font>-<a name="line-15"></a>  <font color=Red>|</font> LHS Literate	<font color=Blue>-- ^ literate input (i.e. multiple embedded fragments)</font>-<a name="line-16"></a>  <font color=Red>|</font> Anchors Bool	<font color=Blue>-- ^ whether to add anchors</font>-<a name="line-17"></a>  <font color=Red>|</font> Partial Bool	<font color=Blue>-- ^ whether to produce a full document or partial</font>-<a name="line-18"></a>  <font color=Red>|</font> Input FilePath	<font color=Blue>-- ^ input source file</font>-<a name="line-19"></a>  <font color=Red>|</font> Output FilePath	<font color=Blue>-- ^ output source file</font>+<a name="line-11"></a>    Help		<font color=Blue><i>-- ^ print usage message</i></font>+<a name="line-12"></a>  <font color=Red>|</font> Version		<font color=Blue><i>-- ^ report version</i></font>+<a name="line-13"></a>  <font color=Red>|</font> Information		<font color=Blue><i>-- ^ report auxiliary information, e.g. CSS defaults</i></font>+<a name="line-14"></a>  <font color=Red>|</font> Format Output	<font color=Blue><i>-- ^ what type of output to produce</i></font>+<a name="line-15"></a>  <font color=Red>|</font> LHS Literate	<font color=Blue><i>-- ^ literate input (i.e. multiple embedded fragments)</i></font>+<a name="line-16"></a>  <font color=Red>|</font> Anchors Bool	<font color=Blue><i>-- ^ whether to add anchors</i></font>+<a name="line-17"></a>  <font color=Red>|</font> Partial Bool	<font color=Blue><i>-- ^ whether to produce a full document or partial</i></font>+<a name="line-18"></a>  <font color=Red>|</font> Input FilePath	<font color=Blue><i>-- ^ input source file</i></font>+<a name="line-19"></a>  <font color=Red>|</font> Output FilePath	<font color=Blue><i>-- ^ output source file</i></font> <a name="line-20"></a>  <u><font color=Green>deriving</font></u> Eq <a name="line-21"></a> <a name="line-22"></a><a name="Literate"></a><u><font color=Green>data</font></u> Literate <font color=Red>=</font> NoLit <font color=Red>|</font> Bird <font color=Red>|</font> TeX <u><font color=Green>deriving</font></u> Eq
docs/hscolour/Language/Haskell/HsColour/Output.html view
@@ -7,13 +7,14 @@ <body> <pre><a name="line-1"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output <u><font color=Green>where</font></u> <a name="line-2"></a>-<a name="line-3"></a><a name="Output"></a><font color=Blue>-- | The supported output formats.</font>-<a name="line-4"></a><a name="Output"></a><u><font color=Green>data</font></u> Output <font color=Red>=</font> TTY   <font color=Blue>-- ^ ANSI terminal codes</font>-<a name="line-5"></a>            <font color=Red>|</font> LaTeX <font color=Blue>-- ^ TeX macros</font>-<a name="line-6"></a>            <font color=Red>|</font> HTML  <font color=Blue>-- ^ HTML with font tags</font>-<a name="line-7"></a>            <font color=Red>|</font> CSS   <font color=Blue>-- ^ HTML with CSS.</font>-<a name="line-8"></a>            <font color=Red>|</font> MIRC  <font color=Blue>-- ^ mIRC chat clients</font>-<a name="line-9"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font>+<a name="line-3"></a><a name="Output"></a><font color=Blue><i>-- | The supported output formats.</i></font>+<a name="line-4"></a><a name="Output"></a><u><font color=Green>data</font></u> Output <font color=Red>=</font> TTY   <font color=Blue><i>-- ^ ANSI terminal codes</i></font>+<a name="line-5"></a>            <font color=Red>|</font> LaTeX <font color=Blue><i>-- ^ TeX macros</i></font>+<a name="line-6"></a>            <font color=Red>|</font> HTML  <font color=Blue><i>-- ^ HTML with font tags</i></font>+<a name="line-7"></a>            <font color=Red>|</font> CSS   <font color=Blue><i>-- ^ HTML with CSS.</i></font>+<a name="line-8"></a>            <font color=Red>|</font> ICSS  <font color=Blue><i>-- ^ HTML with inline CSS.</i></font>+<a name="line-9"></a>            <font color=Red>|</font> MIRC  <font color=Blue><i>-- ^ mIRC chat clients</i></font>+<a name="line-10"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/TTY.html view
@@ -5,17 +5,17 @@ <title>Language/Haskell/HsColour/TTY.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue>-- | Highlights Haskell code with ANSI terminal codes.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Highlights Haskell code with ANSI terminal codes.</i></font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ANSI <u><font color=Green>as</font></u> ANSI <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <a name="line-7"></a>-<a name="line-8"></a><a name="hscolour"></a><font color=Blue>-- | Highlights Haskell code with ANSI terminal codes.</font>-<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>-<a name="line-10"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>+<a name="line-8"></a><a name="hscolour"></a><font color=Blue><i>-- | Highlights Haskell code with ANSI terminal codes.</i></font>+<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>+<a name="line-10"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font> <a name="line-12"></a>hscolour pref <font color=Red>=</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise <a name="line-13"></a> <a name="line-14"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
docs/hscolour/doc-index-H.html view
@@ -219,13 +219,21 @@ ><TD CLASS="indexannot" >4 (Function)</TD ><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-InlineCSS.html#v%3Ahscolour"+>Language.Haskell.HsColour.InlineCSS</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>5 (Function)</TD+><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-LaTeX.html#v%3Ahscolour" >Language.Haskell.HsColour.LaTeX</A ></TD ></TR ><TR ><TD CLASS="indexannot"->5 (Function)</TD+>6 (Function)</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-MIRC.html#v%3Ahscolour" >Language.Haskell.HsColour.MIRC</A@@ -233,7 +241,7 @@ ></TR ><TR ><TD CLASS="indexannot"->6 (Function)</TD+>7 (Function)</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-TTY.html#v%3Ahscolour" >Language.Haskell.HsColour.TTY</A
docs/hscolour/doc-index-I.html view
@@ -135,6 +135,18 @@ ><TABLE CELLPADDING="0" CELLSPACING="5" ><TR ><TD CLASS="indexentry"+>ICSS</TD+><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-Output.html#v%3AICSS"+>Language.Haskell.HsColour.Output</A+>, <A HREF="Language-Haskell-HsColour-Options.html#v%3AICSS"+>Language.Haskell.HsColour.Options</A+>, <A HREF="Language-Haskell-HsColour.html#v%3AICSS"+>Language.Haskell.HsColour</A+></TD+></TR+><TR+><TD CLASS="indexentry" >Information</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Options.html#v%3AInformation"@@ -147,6 +159,16 @@ ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Options.html#v%3AInput" >Language.Haskell.HsColour.Options</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Italic</TD+><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AItalic"+>Language.Haskell.HsColour.ColourHighlight</A+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AItalic"+>Language.Haskell.HsColour.ANSI</A ></TD ></TR ><TR
docs/hscolour/index.html view
@@ -159,6 +159,16 @@ ></TR ><TR ><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Language-Haskell-HsColour-InlineCSS.html"+>Language.Haskell.HsColour.InlineCSS</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 44em" ><A HREF="Language-Haskell-HsColour-LaTeX.html" >Language.Haskell.HsColour.LaTeX</A ></TD
hscolour.cabal view
@@ -1,5 +1,5 @@ Name: hscolour-Version: 1.12+Version: 1.13 Copyright: 2003-2009 Malcolm Wallace, University of York; 2006 Bjorn Bringert Maintainer: Malcolm Wallace Author: Malcolm Wallace@@ -11,28 +11,30 @@ Synopsis: Colourise Haskell code. Description:   hscolour is a small Haskell script to colourise Haskell code. It currently-  has five output formats: +  has six output formats:    ANSI terminal codes,   HTML 3.2 with <font> tags,   HTML 4.01 with CSS,+  XHTML 1.0 with inline CSS styling,   LaTeX,   and mIRC chat codes. Category: Language Exposed-Modules: -  Language.Haskell.HsColour,-  Language.Haskell.HsColour.ANSI,-  Language.Haskell.HsColour.Anchors,-  Language.Haskell.HsColour.Classify,-  Language.Haskell.HsColour.ColourHighlight,-  Language.Haskell.HsColour.Colourise,-  Language.Haskell.HsColour.TTY,-  Language.Haskell.HsColour.HTML,-  Language.Haskell.HsColour.LaTeX,-  Language.Haskell.HsColour.General,-  Language.Haskell.HsColour.MIRC,+  Language.Haskell.HsColour+  Language.Haskell.HsColour.ANSI+  Language.Haskell.HsColour.Anchors   Language.Haskell.HsColour.CSS-  Language.Haskell.HsColour.Output+  Language.Haskell.HsColour.Classify+  Language.Haskell.HsColour.ColourHighlight+  Language.Haskell.HsColour.Colourise+  Language.Haskell.HsColour.General+  Language.Haskell.HsColour.HTML+  Language.Haskell.HsColour.InlineCSS+  Language.Haskell.HsColour.LaTeX+  Language.Haskell.HsColour.MIRC   Language.Haskell.HsColour.Options+  Language.Haskell.HsColour.Output+  Language.Haskell.HsColour.TTY data-files: hscolour.css --ghc-options: -O -W Build-Type: Simple
index.html view
@@ -10,8 +10,9 @@  <p> <b>hscolour</b> is a small Haskell script to colourise Haskell code.-It currently has five output formats: ANSI terminal codes, HTML 3.2 with-&lt;font&gt; tags, HTML 4.01 with CSS, LaTeX, and mIRC chat client codes.+It currently has six output formats: ANSI terminal codes, HTML 3.2 with+&lt;font&gt; tags, HTML 4.01 with CSS, XHTML 1.0 with inline CSS styling,+LaTeX, and mIRC chat client codes.  <h2>Example</h2> <p>@@ -35,10 +36,10 @@ <li> Download a tarfile package from:      <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/">      ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/</a>-     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.tar.gz">-     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.tar.gz</a>-     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.zip">-     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.zip</a>+     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.tar.gz">+     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.tar.gz</a>+     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.zip">+     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.zip</a> <li> Or use the <a href="http://darcs.net/">darcs</a> repository at<br>        <tt>darcs get http://www.cs.york.ac.uk/fp/darcs/hscolour</tt> <li> Sources and history are browsable on-line through@@ -56,6 +57,7 @@ <li><tt>ghc --make HsColour</tt> <li><tt>runhugs HsColour</tt> <li><tt>runhaskell Setup.hs configure/build/install</tt>+<li><tt>cabal install hscolour</tt> </ul>  <h2>Use</h2>@@ -64,7 +66,7 @@ <li><pre> HsColour [ -help | -version | -print-css ]          [ -oOUTPUT ]-         [ -tty | -html | -css | -latex | -mirc ]+         [ -tty | -html | -css | -icss | -latex | -mirc ]          [ -lit | -lit-tex | -nolit ]          [ -anchor | -noanchor | -partial | -nopartial ]          [file.hs]</pre>@@ -72,8 +74,9 @@ <p> You can colourise a Haskell source file for either ANSI terminal codes (option -tty), or HTML 3.2 with font tags (option -html), or HTML 4.01-output with CSS (option -css), or for LaTeX (option -latex), or for IRC-(option -mirc).  The default is for terminal output.+output with CSS (option -css), or for XHTML 1.0 with inline CSS styling+(option -icss), or for LaTeX (option -latex), or for IRC (option -mirc).+The default is for terminal output. <p> If no file argument is given, it reads standard input.  Output is written to file OUTPUT (option -o), defaulting to stdout.@@ -100,11 +103,11 @@  <h2>Configuration of colours</h2> <p>-If you use either -html, -tty, -mirc, or -latex, you can configure the+If you use any of -html, -tty, -icss, -mirc, or -latex, you can configure the colours for different lexical entities by editing a configuration file called <tt>.hscolour</tt> in the current directory. (An <a href=".hscolour">example</a> is included in the distribution.)-For CSS output, it is sufficient to edit the+For (non-inline) CSS output, it is sufficient to edit the <a href="hscolour.css"><tt>hscolour.css</tt></a> file, also in the distribution.  (An alternative choice is supplied as <a href="emacs.css"><tt>emacs.css</tt></a>.) The <tt>-print-css</tt> option@@ -134,6 +137,7 @@     <font color=Red>|</font> Concealed     <font color=Red>|</font> Foreground Colour     <font color=Red>|</font> Background Colour+    <font color=Red>|</font> Italic </pre>  <p>@@ -169,7 +173,7 @@  <p> <h2>Copyright and licence</h2>-<b>hscolour</b> is &copy; Malcolm Wallace 2003-2008.  It is distributed+<b>hscolour</b> is &copy; Malcolm Wallace 2003-2009.  It is distributed under the Gnu GPL, which can be found in the file <a href="LICENCE-GPL">LICENCE-GPL</a>. @@ -193,6 +197,7 @@ <h2>History</h2> <p> <dl>+<dt>1.13</dt><dd> added the new -icss output format, and italic highlights</dd> <dt>1.12</dt><dd> changed the CSS class names to avoid clashes with other                   web tools</dd> <dt>1.11</dt><dd> new literate input option -lit-tex</dd>@@ -214,7 +219,7 @@ </dl>  <p>-This page last modified: 2nd Feb 2009<br>+This page last modified: 6th May 2009<br> Malcolm Wallace<br>  </td></tr></table>