cpphs 1.9 → 1.10
raw patch · 71 files changed
+94/−13136 lines, 71 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Language.Preprocessor.Cpphs: cpp2hask :: String -> String
+ Language.Preprocessor.Cpphs: hashline :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: haskline :: Posn -> String
- Language.Preprocessor.Cpphs: BoolOptions :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> BoolOptions
+ Language.Preprocessor.Cpphs: BoolOptions :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> BoolOptions
Files
- CHANGELOG +5/−0
- Language/Preprocessor/Cpphs/CppIfdef.hs +7/−3
- Language/Preprocessor/Cpphs/Options.hs +5/−1
- Language/Preprocessor/Cpphs/Position.hs +25/−7
- Makefile +1/−1
- README +3/−2
- cpphs.cabal +2/−2
- cpphs.hs +5/−5
- docs/cpphs/Language-Preprocessor-Cpphs-CppIfdef.html +0/−226
- docs/cpphs/Language-Preprocessor-Cpphs-HashDefine.html +0/−691
- docs/cpphs/Language-Preprocessor-Cpphs-MacroPass.html +0/−315
- docs/cpphs/Language-Preprocessor-Cpphs-Options.html +0/−679
- docs/cpphs/Language-Preprocessor-Cpphs-Position.html +0/−631
- docs/cpphs/Language-Preprocessor-Cpphs-ReadFirst.html +0/−216
- docs/cpphs/Language-Preprocessor-Cpphs-RunCpphs.html +0/−114
- docs/cpphs/Language-Preprocessor-Cpphs-SymTab.html +0/−432
- docs/cpphs/Language-Preprocessor-Cpphs-Tokenise.html +0/−508
- docs/cpphs/Language-Preprocessor-Cpphs.html +0/−888
- docs/cpphs/Language-Preprocessor-Unlit.html +0/−154
- docs/cpphs/Language/Preprocessor/Cpphs.html +0/−28
- docs/cpphs/Language/Preprocessor/Cpphs/CppIfdef.html +0/−271
- docs/cpphs/Language/Preprocessor/Cpphs/HashDefine.html +0/−111
- docs/cpphs/Language/Preprocessor/Cpphs/MacroPass.html +0/−133
- docs/cpphs/Language/Preprocessor/Cpphs/Options.html +0/−150
- docs/cpphs/Language/Preprocessor/Cpphs/Position.html +0/−84
- docs/cpphs/Language/Preprocessor/Cpphs/ReadFirst.html +0/−57
- docs/cpphs/Language/Preprocessor/Cpphs/RunCpphs.html +0/−32
- docs/cpphs/Language/Preprocessor/Cpphs/SymTab.html +0/−90
- docs/cpphs/Language/Preprocessor/Cpphs/Tokenise.html +0/−275
- docs/cpphs/Language/Preprocessor/Unlit.html +0/−74
- docs/cpphs/Main.html +0/−360
- docs/cpphs/Text-ParserCombinators-HuttonMeijer.html +0/−1563
- docs/cpphs/Text/ParserCombinators/HuttonMeijer.html +0/−222
- docs/cpphs/cpphs.html +0/−113
- docs/cpphs/doc-index-43.html +0/−146
- docs/cpphs/doc-index-A.html +0/−188
- docs/cpphs/doc-index-B.html +0/−180
- docs/cpphs/doc-index-C.html +0/−264
- docs/cpphs/doc-index-D.html +0/−216
- docs/cpphs/doc-index-E.html +0/−170
- docs/cpphs/doc-index-F.html +0/−154
- docs/cpphs/doc-index-H.html +0/−146
- docs/cpphs/doc-index-I.html +0/−230
- docs/cpphs/doc-index-J.html +0/−146
- docs/cpphs/doc-index-L.html +0/−234
- docs/cpphs/doc-index-M.html +0/−190
- docs/cpphs/doc-index-N.html +0/−194
- docs/cpphs/doc-index-O.html +0/−172
- docs/cpphs/doc-index-P.html +0/−240
- docs/cpphs/doc-index-R.html +0/−172
- docs/cpphs/doc-index-S.html +0/−246
- docs/cpphs/doc-index-T.html +0/−178
- docs/cpphs/doc-index-U.html +0/−154
- docs/cpphs/doc-index-V.html +0/−146
- docs/cpphs/doc-index-W.html +0/−156
- docs/cpphs/doc-index.html +0/−132
- docs/cpphs/haddock.css +0/−260
- docs/cpphs/haddock.js +0/−15
- docs/cpphs/haskell_icon.gif binary
- docs/cpphs/index.html +0/−255
- docs/cpphs/minus.gif binary
- docs/cpphs/plus.gif binary
- docs/index.html +21/−11
- tests/delete-me +0/−6
- tests/expect49 +5/−0
- tests/expect50 +9/−0
- tests/linepragma +5/−0
- tests/runtests +1/−0
- tests/tmp-cpp +0/−48
- tests/tmp-cpphs +0/−45
- tests/wrongline2 +0/−4
CHANGELOG view
@@ -1,3 +1,8 @@+Version 1.10+-----------+ * New command-line option: "--linepragma"+ It converts #line droppings into {-# LINE #-}.+ Version 1.9 ----------- * Bugfix for #undef.
Language/Preprocessor/Cpphs/CppIfdef.hs view
@@ -21,7 +21,7 @@ import Language.Preprocessor.Cpphs.SymTab import Text.ParserCombinators.HuttonMeijer import Language.Preprocessor.Cpphs.Position (Posn,newfile,newline,newlines- ,cppline,newpos)+ ,cppline,cpp2hask,newpos) import Language.Preprocessor.Cpphs.ReadFirst (readFirst) import Language.Preprocessor.Cpphs.Tokenise (linesCpp,reslash) import Language.Preprocessor.Cpphs.Options (BoolOptions(..))@@ -103,11 +103,15 @@ else skipn syms False Keep xs "error" -> error (l++"\nin "++show p) "line" | all isDigit sym- -> (if locations options then ((p,l):) else id) $+ -> (if locations options && hashline options then ((p,l):)+ else if locations options then ((p,cpp2hask l):)+ else id) $ cpp (newpos (read sym) (un rest) p) syms path options Keep xs n | all isDigit n- -> (if locations options then ((p,l):) else id) $+ -> (if locations options && hashline options then ((p,l):)+ else if locations options then ((p,cpp2hask l):)+ else id) $ cpp (newpos (read n) (un (tail ws)) p) syms path options Keep xs | otherwise
Language/Preprocessor/Cpphs/Options.hs view
@@ -43,6 +43,7 @@ data BoolOptions = BoolOptions { macros :: Bool -- ^ Leave \#define and \#undef in output of ifdef? , locations :: Bool -- ^ Place #line droppings in output?+ , hashline :: Bool -- ^ Write #line or {-# LINE #-} ? , pragma :: Bool -- ^ Keep #pragma in final output? , stripEol :: Bool -- ^ Remove C eol (\/\/) comments everywhere? , stripC89 :: Bool -- ^ Remove C inline (\/**\/) comments everywhere?@@ -56,7 +57,7 @@ -- | Default settings of boolean options. defaultBoolOptions :: BoolOptions defaultBoolOptions = BoolOptions { macros = True, locations = True- , pragma = False+ , hashline = True, pragma = False , stripEol = False, stripC89 = False , lang = True, ansi = False , layout = False, literate = False@@ -67,6 +68,7 @@ data RawOption = NoMacro | NoLine+ | LinePragma | Pragma | Text | Strip@@ -83,6 +85,7 @@ flags :: [(String, RawOption)] flags = [ ("--nomacro", NoMacro) , ("--noline", NoLine)+ , ("--linepragma", LinePragma) , ("--pragma", Pragma) , ("--text", Text) , ("--strip", Strip)@@ -114,6 +117,7 @@ BoolOptions { macros = not (NoMacro `elem` opts) , locations = not (NoLine `elem` opts)+ , hashline = not (LinePragma `elem` opts) , pragma = Pragma `elem` opts , stripEol = StripEol`elem` opts , stripC89 = StripEol`elem` opts || Strip `elem` opts
Language/Preprocessor/Cpphs/Position.hs view
@@ -15,10 +15,12 @@ ( Posn(..) , newfile , addcol, newline, tab, newlines, newpos- , cppline+ , cppline, haskline, cpp2hask , filename, lineno, directory ) where +import List (isPrefixOf)+ -- | Source positions contain a filename, line, column, and an -- inclusion point, which is itself another source position, -- recursively.@@ -34,31 +36,38 @@ Just p -> showString "\n used by " . shows p ) --- | Constructor+-- | Constructor. Argument is filename. newfile :: String -> Posn newfile name = Pn name 1 1 Nothing --- | Updates+-- | Increment column number by given quantity. addcol :: Int -> Posn -> Posn addcol n (Pn f r c i) = Pn f r (c+n) i -newline, tab :: Posn -> Posn+-- | Increment row number, reset column to 1.+newline :: Posn -> Posn --newline (Pn f r _ i) = Pn f (r+1) 1 i newline (Pn f r _ i) = let r' = r+1 in r' `seq` Pn f r' 1 i++-- | Increment column number, tab stops are every 8 chars.+tab :: Posn -> Posn tab (Pn f r c i) = Pn f r (((c`div`8)+1)*8) i +-- | Increment row number by given quantity. newlines :: Int -> Posn -> Posn newlines n (Pn f r _ i) = Pn f (r+n) 1 i +-- | Update position with a new row, and possible filename. newpos :: Int -> Maybe String -> Posn -> Posn newpos r Nothing (Pn f _ c i) = Pn f r c i newpos r (Just ('"':f)) (Pn _ _ c i) = Pn (init f) r c i newpos r (Just f) (Pn _ _ c i) = Pn f r c i --- | Projections-+-- | Project the line number. lineno :: Posn -> Int+-- | Project the filename. filename :: Posn -> String+-- | Project the directory of the filename. directory :: Posn -> FilePath lineno (Pn _ r _ _) = r@@ -66,10 +75,19 @@ directory (Pn f _ _ _) = dirname f --- | cpp-style printing+-- | cpp-style printing of file position cppline :: Posn -> String cppline (Pn f r _ _) = "#line "++show r++" "++show f +-- | haskell-style printing of file position+haskline :: Posn -> String+haskline (Pn f r _ _) = "{-# LINE "++show r++" "++show f++" #-}"++-- | Conversion from a cpp-style "#line" to haskell-style pragma.+cpp2hask :: String -> String+cpp2hask line | "#line" `isPrefixOf` line = "{-# LINE "+ ++unwords (tail (words line))+ ++" #-}" -- | Strip non-directory suffix from file name (analogous to the shell -- command of the same name).
Makefile view
@@ -1,5 +1,5 @@ LIBRARY = cpphs-VERSION = 1.9+VERSION = 1.10 DIRS = Language/Preprocessor/Cpphs \ Text/ParserCombinators
README view
@@ -16,7 +16,8 @@ cpphs [filename | -Dsym | -Dsym=val | -Ipath]+ [-Ofile] [ --include=file ]* [ --nomacro | --noline | --nowarn | --strip | --strip-eol |- --pragma | --text | --hashes | --layout | --unlit ]*+ --pragma | --text | --hashes | --layout | --unlit |+ --linepragma ]* [ --cpp compatopts ] For fuller details, see docs/index.html@@ -29,7 +30,7 @@ COPYRIGHT ----------Copyright (c) 2004-2009 Malcolm Wallace (Malcolm.Wallace@cs.york.ac.uk)+Copyright (c) 2004-2010 Malcolm Wallace (Malcolm.Wallace@cs.york.ac.uk) except for Text.ParserCombinators.HuttonMeijer (Copyright (c) 1995 Graham Hutton and Erik Meijer).
cpphs.cabal view
@@ -1,6 +1,6 @@ Name: cpphs-Version: 1.9-Copyright: 2004-2009, Malcolm Wallace+Version: 1.10+Copyright: 2004-2010, Malcolm Wallace Build-Depends: base < 6, haskell98 License: LGPL License-File: LICENCE-LGPL
cpphs.hs view
@@ -19,7 +19,7 @@ import List ( isPrefixOf ) version :: String-version = "1.9"+version = "1.10" main :: IO () main = do@@ -32,10 +32,10 @@ exitWith ExitSuccess) when ("--help" `elem` args) (do putStrLn ("Usage: "++prog- ++" [file ...] [ -Dsym | -Dsym=val | -Ipath ]* [-Ofile]\n"- ++"\t\t[--nomacro] [--noline] [--pragma] [--text]\n"- ++"\t\t[--strip] [--strip-eol] [--hashes] [--layout] [--unlit]\n"- ++"\t\t[ --cpp std-cpp-options ] [--include=filename]")+ ++" [file ...] [ -Dsym | -Dsym=val | -Ipath ]* [-Ofile]\n"+ ++"\t\t[--nomacro] [--noline] [--linepragma] [--pragma] [--text]\n"+ ++"\t\t[--strip] [--strip-eol] [--hashes] [--layout] [--unlit]\n"+ ++"\t\t[ --cpp std-cpp-options ] [--include=filename]") exitWith ExitSuccess) let parsedArgs = parseOptions args
− docs/cpphs/Language-Preprocessor-Cpphs-CppIfdef.html
@@ -1,226 +0,0 @@-<!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.Preprocessor.Cpphs.CppIfdef</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/CppIfdef.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.Preprocessor.Cpphs.CppIfdef</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->Perform a cpp.first-pass, gathering #define's and evaluating #ifdef's.- and #include's.-</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%3AcppIfdef"->cppIfdef</A-> :: FilePath -> [(String, String)] -> [String] -> <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-> -> String -> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, 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%3AcppIfdef"-></A-><B->cppIfdef</B-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/CppIfdef.html#cppIfdef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="arg"->:: FilePath</TD-><TD CLASS="rdoc"->File for error reports-</TD-></TR-><TR-><TD CLASS="arg"->-> [(String, String)]</TD-><TD CLASS="rdoc"->Pre-defined symbols and their values-</TD-></TR-><TR-><TD CLASS="arg"->-> [String]</TD-><TD CLASS="rdoc"->Search path for #includes-</TD-></TR-><TR-><TD CLASS="arg"->-> <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="rdoc"->Options controlling output style-</TD-></TR-><TR-><TD CLASS="arg"->-> String</TD-><TD CLASS="rdoc"->The input file content-</TD-></TR-><TR-><TD CLASS="arg"->-> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)]</TD-><TD CLASS="rdoc"->The file after processing (in lines)-</TD-></TR-><TR-><TD CLASS="ndoc" COLSPAN="2"->Run a first pass of cpp, evaluating #ifdef's and processing #include's,- whilst taking account of #define's and #undef's as we encounter them.-</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/cpphs/Language-Preprocessor-Cpphs-HashDefine.html
@@ -1,691 +0,0 @@-<!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.Preprocessor.Cpphs.HashDefine</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/HashDefine.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.Preprocessor.Cpphs.HashDefine</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->What structures are declared in a #define.-</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"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AHashDefine"->HashDefine</A-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->= <A HREF="#v%3ALineDrop"->LineDrop</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aname"->name</A-> :: String</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3APragma"->Pragma</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aname"->name</A-> :: String</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ASymbolReplacement"->SymbolReplacement</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aname"->name</A-> :: String</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Areplacement"->replacement</A-> :: String</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alinebreaks"->linebreaks</A-> :: Int</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AMacroExpansion"->MacroExpansion</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aname"->name</A-> :: String</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aarguments"->arguments</A-> :: [String]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aexpansion"->expansion</A-> :: [(<A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AArgOrText"->ArgOrText</A->, String)]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alinebreaks"->linebreaks</A-> :: Int</TD-></TR-></TABLE->}</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AArgOrText"->ArgOrText</A-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->= <A HREF="#v%3AArg"->Arg</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AText"->Text</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AStr"->Str</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AexpandMacro"->expandMacro</A-> :: <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-> -> [String] -> Bool -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseHashDefine"->parseHashDefine</A-> :: Bool -> [String] -> Maybe <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></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"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AHashDefine"-></A-><B->HashDefine</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/HashDefine.html#HashDefine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ALineDrop"-></A-><B->LineDrop</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Aname"-></A-><B->name</B-> :: String</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3APragma"-></A-><B->Pragma</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Aname"-></A-><B->name</B-> :: String</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ASymbolReplacement"-></A-><B->SymbolReplacement</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Aname"-></A-><B->name</B-> :: String</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Areplacement"-></A-><B->replacement</B-> :: String</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alinebreaks"-></A-><B->linebreaks</B-> :: Int</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AMacroExpansion"-></A-><B->MacroExpansion</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Aname"-></A-><B->name</B-> :: String</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aarguments"-></A-><B->arguments</B-> :: [String]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aexpansion"-></A-><B->expansion</B-> :: [(<A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AArgOrText"->ArgOrText</A->, String)]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alinebreaks"-></A-><B->linebreaks</B-> :: Int</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HashDefine')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:HashDefine" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Eq <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TD-></TR-><TR-><TD CLASS="decl"->Show <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AArgOrText"-></A-><B->ArgOrText</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/HashDefine.html#ArgOrText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Macro expansion text is divided into sections, each of which is classified- as one of three kinds: a formal argument (Arg), plain text (Text),- or a stringised formal argument (Str).-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AArg"-></A-><B->Arg</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AText"-></A-><B->Text</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AStr"-></A-><B->Str</B-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArgOrText')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:ArgOrText" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Eq <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AArgOrText"->ArgOrText</A-></TD-></TR-><TR-><TD CLASS="decl"->Show <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AArgOrText"->ArgOrText</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AexpandMacro"-></A-><B->expandMacro</B-> :: <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-> -> [String] -> Bool -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/HashDefine.html#expandMacro"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Expand an instance of a macro.- Precondition: got a match on the macro name.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHashDefine"-></A-><B->parseHashDefine</B-> :: Bool -> [String] -> Maybe <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/HashDefine.html#parseHashDefine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parse a #define, or #undef, ignoring other # directives-</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/cpphs/Language-Preprocessor-Cpphs-MacroPass.html
@@ -1,315 +0,0 @@-<!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.Preprocessor.Cpphs.MacroPass</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/MacroPass.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.Preprocessor.Cpphs.MacroPass</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->Perform a cpp.second-pass, accumulating #define's and #undef's,- whilst doing symbol replacement and macro expansion.-</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%3AmacroPass"->macroPass</A-> :: [(String, String)] -> <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-> -> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)] -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ApreDefine"->preDefine</A-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-> -> [(String, String)] -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdefineMacro"->defineMacro</A-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-> -> String -> (String, <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A->)</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%3AmacroPass"-></A-><B->macroPass</B-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/MacroPass.html#macroPass"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="arg"->:: [(String, String)]</TD-><TD CLASS="rdoc"->Pre-defined symbols and their values-</TD-></TR-><TR-><TD CLASS="arg"->-> <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="rdoc"->Options that alter processing style-</TD-></TR-><TR-><TD CLASS="arg"->-> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)]</TD-><TD CLASS="rdoc"->The input file content-</TD-></TR-><TR-><TD CLASS="arg"->-> String</TD-><TD CLASS="rdoc"->The file after processing-</TD-></TR-><TR-><TD CLASS="ndoc" COLSPAN="2"->Walk through the document, replacing calls of macros with the expanded RHS.-</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApreDefine"-></A-><B->preDefine</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-> -> [(String, String)] -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/MacroPass.html#preDefine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Turn command-line definitions (from <TT->-D</TT->) into <TT-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TT->s.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefineMacro"-></A-><B->defineMacro</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-> -> String -> (String, <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A->)</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/MacroPass.html#defineMacro"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Turn a string representing a macro definition into a <TT-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A-></TT->.-</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/cpphs/Language-Preprocessor-Cpphs-Options.html
@@ -1,679 +0,0 @@-<!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.Preprocessor.Cpphs.Options</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/Options.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.Preprocessor.Cpphs.Options</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->This module deals with Cpphs options and parsing them-</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"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ACpphsOptions"->CpphsOptions</A-> = <A HREF="#v%3ACpphsOptions"->CpphsOptions</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Ainfiles"->infiles</A-> :: [FilePath]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aoutfiles"->outfiles</A-> :: [FilePath]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Adefines"->defines</A-> :: [(String, String)]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aincludes"->includes</A-> :: [String]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3ApreInclude"->preInclude</A-> :: [FilePath]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aboolopts"->boolopts</A-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ABoolOptions"->BoolOptions</A-> = <A HREF="#v%3ABoolOptions"->BoolOptions</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Amacros"->macros</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alocations"->locations</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Apragma"->pragma</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AstripEol"->stripEol</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AstripC89"->stripC89</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alang"->lang</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aansi"->ansi</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alayout"->layout</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aliterate"->literate</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Awarnings"->warnings</A-> :: Bool</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseOptions"->parseOptions</A-> :: [String] -> Either String <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdefaultCpphsOptions"->defaultCpphsOptions</A-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdefaultBoolOptions"->defaultBoolOptions</A-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-></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"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ACpphsOptions"-></A-><B->CpphsOptions</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Options.html#CpphsOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Cpphs options structure.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ACpphsOptions"-></A-><B->CpphsOptions</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Ainfiles"-></A-><B->infiles</B-> :: [FilePath]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aoutfiles"-></A-><B->outfiles</B-> :: [FilePath]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Adefines"-></A-><B->defines</B-> :: [(String, String)]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aincludes"-></A-><B->includes</B-> :: [String]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ApreInclude"-></A-><B->preInclude</B-> :: [FilePath]</TD-><TD CLASS="rdoc"->Files to #include before anything else-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aboolopts"-></A-><B->boolopts</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ABoolOptions"-></A-><B->BoolOptions</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Options.html#BoolOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Options representable as Booleans.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ABoolOptions"-></A-><B->BoolOptions</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Amacros"-></A-><B->macros</B-> :: Bool</TD-><TD CLASS="rdoc"->Leave #define and #undef in output of ifdef?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alocations"-></A-><B->locations</B-> :: Bool</TD-><TD CLASS="rdoc"->Place #line droppings in output?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Apragma"-></A-><B->pragma</B-> :: Bool</TD-><TD CLASS="rdoc"->Keep #pragma in final output?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AstripEol"-></A-><B->stripEol</B-> :: Bool</TD-><TD CLASS="rdoc"->Remove C eol (//) comments everywhere?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AstripC89"-></A-><B->stripC89</B-> :: Bool</TD-><TD CLASS="rdoc"->Remove C inline (/**/) comments everywhere?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alang"-></A-><B->lang</B-> :: Bool</TD-><TD CLASS="rdoc"->Lex input as Haskell code?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aansi"-></A-><B->ansi</B-> :: Bool</TD-><TD CLASS="rdoc"->Permit stringise # and catenate ## operators?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alayout"-></A-><B->layout</B-> :: Bool</TD-><TD CLASS="rdoc"->Retain newlines in macro expansions?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aliterate"-></A-><B->literate</B-> :: Bool</TD-><TD CLASS="rdoc"->Remove literate markup?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Awarnings"-></A-><B->warnings</B-> :: Bool</TD-><TD CLASS="rdoc"->Issue warnings?-</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseOptions"-></A-><B->parseOptions</B-> :: [String] -> Either String <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Options.html#parseOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parse all command-line options.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefaultCpphsOptions"-></A-><B->defaultCpphsOptions</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Options.html#defaultCpphsOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Default options.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefaultBoolOptions"-></A-><B->defaultBoolOptions</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Options.html#defaultBoolOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Default settings of boolean options.-</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/cpphs/Language-Preprocessor-Cpphs-Position.html
@@ -1,631 +0,0 @@-<!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.Preprocessor.Cpphs.Position</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/Position.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.Preprocessor.Cpphs.Position</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->Simple file position information, with recursive inclusion points.-</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"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3APosn"->Posn</A-> = <A HREF="#v%3APn"->Pn</A-> String !Int !Int (Maybe <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anewfile"->newfile</A-> :: String -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aaddcol"->addcol</A-> :: Int -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anewline"->newline</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atab"->tab</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anewlines"->newlines</A-> :: Int -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anewpos"->newpos</A-> :: Int -> Maybe String -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Acppline"->cppline</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Afilename"->filename</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Alineno"->lineno</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> Int</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adirectory"->directory</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> FilePath</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"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3APosn"-></A-><B->Posn</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#Posn"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Source positions contain a filename, line, column, and an- inclusion point, which is itself another source position,- recursively.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3APn"-></A-><B->Pn</B-> String !Int !Int (Maybe <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->)</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Posn')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Posn" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Eq <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-><TR-><TD CLASS="decl"->Show <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anewfile"-></A-><B->newfile</B-> :: String -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#newfile"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Constructor-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aaddcol"-></A-><B->addcol</B-> :: Int -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#addcol"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Updates-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anewline"-></A-><B->newline</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#newline"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atab"-></A-><B->tab</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#tab"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anewlines"-></A-><B->newlines</B-> :: Int -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#newlines"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anewpos"-></A-><B->newpos</B-> :: Int -> Maybe String -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#newpos"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acppline"-></A-><B->cppline</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#cppline"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->cpp-style printing-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Afilename"-></A-><B->filename</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#filename"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Alineno"-></A-><B->lineno</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> Int</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#lineno"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Projections-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adirectory"-></A-><B->directory</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> FilePath</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Position.html#directory"->Source</A-></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/cpphs/Language-Preprocessor-Cpphs-ReadFirst.html
@@ -1,216 +0,0 @@-<!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.Preprocessor.Cpphs.ReadFirst</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/ReadFirst.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.Preprocessor.Cpphs.ReadFirst</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->Read the first file that matches in a list of search paths.-</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%3AreadFirst"->readFirst</A-> :: String -> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> [String] -> Bool -> IO (FilePath, 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%3AreadFirst"-></A-><B->readFirst</B-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/ReadFirst.html#readFirst"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="arg"->:: String</TD-><TD CLASS="rdoc"->filename-</TD-></TR-><TR-><TD CLASS="arg"->-> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-></TD-><TD CLASS="rdoc"->inclusion point-</TD-></TR-><TR-><TD CLASS="arg"->-> [String]</TD-><TD CLASS="rdoc"->search path-</TD-></TR-><TR-><TD CLASS="arg"->-> Bool</TD-><TD CLASS="rdoc"->report warnings?-</TD-></TR-><TR-><TD CLASS="arg"->-> IO (FilePath, String)</TD-><TD CLASS="rdoc"->discovered filepath, and file contents-</TD-></TR-><TR-><TD CLASS="ndoc" COLSPAN="2"->Attempt to read the given file from any location within the search path.- The first location found is returned, together with the file content.- (The directory of the calling file is always searched first, then- the current directory, finally any specified search path.)-</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/cpphs/Language-Preprocessor-Cpphs-RunCpphs.html
@@ -1,114 +0,0 @@-<!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.Preprocessor.Cpphs.RunCpphs</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/RunCpphs.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.Preprocessor.Cpphs.RunCpphs</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="s15"-></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%3ArunCpphs"-></A-><B->runCpphs</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-> -> FilePath -> String -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/RunCpphs.html#runCpphs"->Source</A-></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/cpphs/Language-Preprocessor-Cpphs-SymTab.html
@@ -1,432 +0,0 @@-<!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.Preprocessor.Cpphs.SymTab</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.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.Preprocessor.Cpphs.SymTab</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->Stable</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->Symbol Table, based on index trees using a hash on the key.- Keys are always Strings. Stored values can be any type.-</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"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ASymTab"->SymTab</A-> v = <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3AIndTree"->IndTree</A-> [(String, v)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AemptyST"->emptyST</A-> :: <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AinsertST"->insertST</A-> :: (String, v) -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdeleteST"->deleteST</A-> :: String -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AlookupST"->lookupST</A-> :: String -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> Maybe v</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdefinedST"->definedST</A-> :: String -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> Bool</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AIndTree"->IndTree</A-> t</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"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ASymTab"-></A-><B->SymTab</B-> v = <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3AIndTree"->IndTree</A-> [(String, v)]</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#SymTab"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Symbol Table. Stored values are polymorphic, but the keys are- always strings.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AemptyST"-></A-><B->emptyST</B-> :: <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#emptyST"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinsertST"-></A-><B->insertST</B-> :: (String, v) -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#insertST"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdeleteST"-></A-><B->deleteST</B-> :: String -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#deleteST"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlookupST"-></A-><B->lookupST</B-> :: String -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> Maybe v</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#lookupST"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefinedST"-></A-><B->definedST</B-> :: String -> <A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->SymTab</A-> v -> Bool</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#definedST"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AIndTree"-></A-><B->IndTree</B-> t</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/SymTab.html#IndTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Index Trees (storing indexes at nodes).-</TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IndTree')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:IndTree" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Show t => Show (<A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3AIndTree"->IndTree</A-> t)</TD-></TR-></TABLE-></DIV-></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/cpphs/Language-Preprocessor-Cpphs-Tokenise.html
@@ -1,508 +0,0 @@-<!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.Preprocessor.Cpphs.Tokenise</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.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.Preprocessor.Cpphs.Tokenise</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->The purpose of this module is to lex a source file (language- unspecified) into tokens such that cpp can recognise a replaceable- symbol or macro-use, and do the right thing.-</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%3AlinesCpp"->linesCpp</A-> :: String -> [String]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Areslash"->reslash</A-> :: String -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atokenise"->tokenise</A-> :: Bool -> Bool -> Bool -> Bool -> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)] -> [<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AWordStyle"->WordStyle</A-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->= <A HREF="#v%3AIdent"->Ident</A-> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> String</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AOther"->Other</A-> String</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ACmd"->Cmd</A-> (Maybe <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A->)</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdeWordStyle"->deWordStyle</A-> :: <A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A-> -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseMacroCall"->parseMacroCall</A-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> [<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->] -> Maybe ([[<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->]], [<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->])</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%3AlinesCpp"-></A-><B->linesCpp</B-> :: String -> [String]</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.html#linesCpp"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->linesCpp is, broadly speaking, Prelude.lines, except that- on a line beginning with a #, line continuation characters are- recognised. In a line continuation, the newline character is- preserved, but the backslash is not.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Areslash"-></A-><B->reslash</B-> :: String -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.html#reslash"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Put back the line-continuation characters.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atokenise"-></A-><B->tokenise</B-> :: Bool -> Bool -> Bool -> Bool -> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)] -> [<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->]</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.html#tokenise"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->tokenise is, broadly-speaking, Prelude.words, except that:- * the input is already divided into lines- * each word-like <A HREF="token.html"->token</A-> is categorised as one of {Ident,Other,Cmd}- * #define's are parsed and returned out-of-band using the Cmd variant- * All whitespace is preserved intact as tokens.- * C-comments are converted to white-space (depending on first param)- * Parens and commas are tokens in their own right.- * Any cpp line continuations are respected.- No errors can be raised.- The inverse of tokenise is (concatMap deWordStyle).-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AWordStyle"-></A-><B->WordStyle</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.html#WordStyle"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Each token is classified as one of Ident, Other, or Cmd:- * Ident is a word that could potentially match a macro name.- * Cmd is a complete cpp directive (#define etc).- * Other is anything else.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AIdent"-></A-><B->Ident</B-> <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> String</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AOther"-></A-><B->Other</B-> String</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ACmd"-></A-><B->Cmd</B-> (Maybe <A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->HashDefine</A->)</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:WordStyle')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:WordStyle" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Eq <A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A-></TD-></TR-><TR-><TD CLASS="decl"->Show <A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdeWordStyle"-></A-><B->deWordStyle</B-> :: <A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A-> -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.html#deWordStyle"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseMacroCall"-></A-><B->parseMacroCall</B-> :: <A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A-> -> [<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->] -> Maybe ([[<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->]], [<A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->WordStyle</A->])</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs/Tokenise.html#parseMacroCall"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parse a possible macro call, returning argument list and remaining input-</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/cpphs/Language-Preprocessor-Cpphs.html
@@ -1,888 +0,0 @@-<!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.Preprocessor.Cpphs</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Cpphs.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.Preprocessor.Cpphs</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->All</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></TD-></TR-></TABLE-></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"->Include the interface that is exported-</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%3ArunCpphs"->runCpphs</A-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->CpphsOptions</A-> -> FilePath -> String -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcppIfdef"->cppIfdef</A-> :: FilePath -> [(String, String)] -> [String] -> <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-> -> String -> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmacroPass"->macroPass</A-> :: [(String, String)] -> <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-> -> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)] -> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ACpphsOptions"->CpphsOptions</A-> = <A HREF="#v%3ACpphsOptions"->CpphsOptions</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Ainfiles"->infiles</A-> :: [FilePath]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aoutfiles"->outfiles</A-> :: [FilePath]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Adefines"->defines</A-> :: [(String, String)]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aincludes"->includes</A-> :: [String]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3ApreInclude"->preInclude</A-> :: [FilePath]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aboolopts"->boolopts</A-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ABoolOptions"->BoolOptions</A-> = <A HREF="#v%3ABoolOptions"->BoolOptions</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Amacros"->macros</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alocations"->locations</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Apragma"->pragma</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AstripEol"->stripEol</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AstripC89"->stripC89</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alang"->lang</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aansi"->ansi</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Alayout"->layout</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aliterate"->literate</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Awarnings"->warnings</A-> :: Bool</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseOptions"->parseOptions</A-> :: [String] -> Either String <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdefaultCpphsOptions"->defaultCpphsOptions</A-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdefaultBoolOptions"->defaultBoolOptions</A-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-></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%3ArunCpphs"-></A-><B->runCpphs</B-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->CpphsOptions</A-> -> FilePath -> String -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#runCpphs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcppIfdef"-></A-><B->cppIfdef</B-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#cppIfdef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="arg"->:: FilePath</TD-><TD CLASS="rdoc"->File for error reports-</TD-></TR-><TR-><TD CLASS="arg"->-> [(String, String)]</TD-><TD CLASS="rdoc"->Pre-defined symbols and their values-</TD-></TR-><TR-><TD CLASS="arg"->-> [String]</TD-><TD CLASS="rdoc"->Search path for #includes-</TD-></TR-><TR-><TD CLASS="arg"->-> <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="rdoc"->Options controlling output style-</TD-></TR-><TR-><TD CLASS="arg"->-> String</TD-><TD CLASS="rdoc"->The input file content-</TD-></TR-><TR-><TD CLASS="arg"->-> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)]</TD-><TD CLASS="rdoc"->The file after processing (in lines)-</TD-></TR-><TR-><TD CLASS="ndoc" COLSPAN="2"->Run a first pass of cpp, evaluating #ifdef's and processing #include's,- whilst taking account of #define's and #undef's as we encounter them.-</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmacroPass"-></A-><B->macroPass</B-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#macroPass"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="arg"->:: [(String, String)]</TD-><TD CLASS="rdoc"->Pre-defined symbols and their values-</TD-></TR-><TR-><TD CLASS="arg"->-> <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="rdoc"->Options that alter processing style-</TD-></TR-><TR-><TD CLASS="arg"->-> [(<A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Posn</A->, String)]</TD-><TD CLASS="rdoc"->The input file content-</TD-></TR-><TR-><TD CLASS="arg"->-> String</TD-><TD CLASS="rdoc"->The file after processing-</TD-></TR-><TR-><TD CLASS="ndoc" COLSPAN="2"->Walk through the document, replacing calls of macros with the expanded RHS.-</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ACpphsOptions"-></A-><B->CpphsOptions</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#CpphsOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Cpphs options structure.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ACpphsOptions"-></A-><B->CpphsOptions</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Ainfiles"-></A-><B->infiles</B-> :: [FilePath]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aoutfiles"-></A-><B->outfiles</B-> :: [FilePath]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Adefines"-></A-><B->defines</B-> :: [(String, String)]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aincludes"-></A-><B->includes</B-> :: [String]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ApreInclude"-></A-><B->preInclude</B-> :: [FilePath]</TD-><TD CLASS="rdoc"->Files to #include before anything else-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aboolopts"-></A-><B->boolopts</B-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ABoolOptions"-></A-><B->BoolOptions</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#BoolOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Options representable as Booleans.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ABoolOptions"-></A-><B->BoolOptions</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Amacros"-></A-><B->macros</B-> :: Bool</TD-><TD CLASS="rdoc"->Leave #define and #undef in output of ifdef?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alocations"-></A-><B->locations</B-> :: Bool</TD-><TD CLASS="rdoc"->Place #line droppings in output?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Apragma"-></A-><B->pragma</B-> :: Bool</TD-><TD CLASS="rdoc"->Keep #pragma in final output?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AstripEol"-></A-><B->stripEol</B-> :: Bool</TD-><TD CLASS="rdoc"->Remove C eol (//) comments everywhere?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AstripC89"-></A-><B->stripC89</B-> :: Bool</TD-><TD CLASS="rdoc"->Remove C inline (/**/) comments everywhere?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alang"-></A-><B->lang</B-> :: Bool</TD-><TD CLASS="rdoc"->Lex input as Haskell code?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aansi"-></A-><B->ansi</B-> :: Bool</TD-><TD CLASS="rdoc"->Permit stringise # and catenate ## operators?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Alayout"-></A-><B->layout</B-> :: Bool</TD-><TD CLASS="rdoc"->Retain newlines in macro expansions?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Aliterate"-></A-><B->literate</B-> :: Bool</TD-><TD CLASS="rdoc"->Remove literate markup?-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Awarnings"-></A-><B->warnings</B-> :: Bool</TD-><TD CLASS="rdoc"->Issue warnings?-</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseOptions"-></A-><B->parseOptions</B-> :: [String] -> Either String <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#parseOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parse all command-line options.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefaultCpphsOptions"-></A-><B->defaultCpphsOptions</B-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->CpphsOptions</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#defaultCpphsOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Default options.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefaultBoolOptions"-></A-><B->defaultBoolOptions</B-> :: <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->BoolOptions</A-></TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Cpphs.html#defaultBoolOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Default settings of boolean options.-</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/cpphs/Language-Preprocessor-Unlit.html
@@ -1,154 +0,0 @@-<!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.Preprocessor.Unlit</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Language/Preprocessor/Unlit.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.Preprocessor.Unlit</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"->Part of this code is from <A HREF="Report on the Programming Language Haskell.html"->Report on the Programming Language Haskell</A->,- version 1.2, appendix C.-</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%3Aunlit"->unlit</A-> :: FilePath -> String -> 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%3Aunlit"-></A-><B->unlit</B-> :: FilePath -> String -> String</TD-><TD CLASS="declbut"-><A HREF="Language/Preprocessor/Unlit.html#unlit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><TT-><A HREF="Language-Preprocessor-Unlit.html#v%3Aunlit"->unlit</A-></TT-> takes a filename (for error reports), and transforms the- given string, to eliminate the literate comments from the program text.-</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/cpphs/Language/Preprocessor/Cpphs.html
@@ -1,28 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : Language.Preprocessor.Cpphs</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2000-2006 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>--</font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- Include the interface that is exported</font>-<a name="(line12)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line13)"></a>-<a name="(line14)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs-<a name="(line15)"></a> <font color=Cyan>(</font> runCpphs<font color=Cyan>,</font> cppIfdef<font color=Cyan>,</font> macroPass<font color=Cyan>,</font> CpphsOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> BoolOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line16)"></a> <font color=Cyan>,</font> parseOptions<font color=Cyan>,</font> defaultCpphsOptions<font color=Cyan>,</font> defaultBoolOptions-<a name="(line17)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line18)"></a>-<a name="(line19)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>CppIfdef<font color=Cyan>(</font>cppIfdef<font color=Cyan>)</font>-<a name="(line20)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>MacroPass<font color=Cyan>(</font>macroPass<font color=Cyan>)</font>-<a name="(line21)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>RunCpphs<font color=Cyan>(</font>runCpphs<font color=Cyan>)</font>-<a name="(line22)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Options-<a name="(line23)"></a> <font color=Cyan>(</font>CpphsOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> BoolOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> parseOptions-<a name="(line24)"></a> <font color=Cyan>,</font>defaultCpphsOptions<font color=Cyan>,</font>defaultBoolOptions<font color=Cyan>)</font>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/CppIfdef.html
@@ -1,271 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : CppIfdef</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 1999-2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>-- </font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- Perform a cpp.first-pass, gathering \#define's and evaluating \#ifdef's.</font>-<a name="(line12)"></a><font color=Blue>-- and \#include's.</font>-<a name="(line13)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line14)"></a>-<a name="(line15)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>CppIfdef-<a name="(line16)"></a> <font color=Cyan>(</font> cppIfdef <font color=Blue>-- :: FilePath -> [(String,String)] -> [String] -> Options</font>-<a name="(line17)"></a> <font color=Blue>-- -> String -> [(Posn,String)]</font>-<a name="(line18)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line19)"></a>-<a name="(line20)"></a>-<a name="(line21)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>SymTab-<a name="(line22)"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>ParserCombinators<font color=Cyan>.</font>HuttonMeijer-<a name="(line23)"></a><font color=Blue>-- import HashDefine</font>-<a name="(line24)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Position <font color=Cyan>(</font>Posn<font color=Cyan>,</font>newfile<font color=Cyan>,</font>newline<font color=Cyan>,</font>newlines-<a name="(line25)"></a> <font color=Cyan>,</font>cppline<font color=Cyan>,</font>newpos<font color=Cyan>)</font>-<a name="(line26)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>ReadFirst <font color=Cyan>(</font>readFirst<font color=Cyan>)</font>-<a name="(line27)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Tokenise <font color=Cyan>(</font>linesCpp<font color=Cyan>,</font>reslash<font color=Cyan>)</font>-<a name="(line28)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Options <font color=Cyan>(</font>BoolOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line29)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>HashDefine<font color=Cyan>(</font>HashDefine<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font>parseHashDefine-<a name="(line30)"></a> <font color=Cyan>,</font>expandMacro<font color=Cyan>)</font>-<a name="(line31)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>MacroPass <font color=Cyan>(</font>preDefine<font color=Cyan>,</font>defineMacro<font color=Cyan>)</font>-<a name="(line32)"></a><font color=Green><u>import</u></font> Char <font color=Cyan>(</font>isDigit<font color=Cyan>)</font>-<a name="(line33)"></a><font color=Green><u>import</u></font> Numeric <font color=Cyan>(</font>readHex<font color=Cyan>,</font>readOct<font color=Cyan>,</font>readDec<font color=Cyan>)</font>-<a name="(line34)"></a><font color=Green><u>import</u></font> System<font color=Cyan>.</font>IO<font color=Cyan>.</font>Unsafe <font color=Cyan>(</font>unsafePerformIO<font color=Cyan>)</font>-<a name="(line35)"></a><font color=Green><u>import</u></font> IO <font color=Cyan>(</font>hPutStrLn<font color=Cyan>,</font>stderr<font color=Cyan>)</font>-<a name="(line36)"></a>-<a name="(line37)"></a>-<a name="(line38)"></a><a name="cppIfdef"></a><font color=Blue>-- | Run a first pass of cpp, evaluating \#ifdef's and processing \#include's,</font>-<a name="(line39)"></a><font color=Blue>-- whilst taking account of \#define's and \#undef's as we encounter them.</font>-<a name="(line40)"></a>cppIfdef <font color=Red>::</font> FilePath <font color=Blue>-- ^ File for error reports</font>-<a name="(line41)"></a> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Blue>-- ^ Pre-defined symbols and their values</font>-<a name="(line42)"></a> <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Blue>-- ^ Search path for \#includes</font>-<a name="(line43)"></a> <font color=Red>-></font> BoolOptions <font color=Blue>-- ^ Options controlling output style</font>-<a name="(line44)"></a> <font color=Red>-></font> String <font color=Blue>-- ^ The input file content</font>-<a name="(line45)"></a> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Blue>-- ^ The file after processing (in lines)</font>-<a name="(line46)"></a>cppIfdef fp syms search options <font color=Red>=</font>-<a name="(line47)"></a> cpp posn defs search options Keep <font color=Cyan>.</font> <font color=Cyan>(</font>cppline posn<font color=Red><b>:</b></font><font color=Cyan>)</font> <font color=Cyan>.</font> linesCpp-<a name="(line48)"></a> <font color=Green><u>where</u></font>-<a name="(line49)"></a> posn <font color=Red>=</font> newfile fp-<a name="(line50)"></a> defs <font color=Red>=</font> preDefine options syms-<a name="(line51)"></a><font color=Blue>-- Previous versions had a very simple symbol table mapping strings</font>-<a name="(line52)"></a><font color=Blue>-- to strings. Now the #ifdef pass uses a more elaborate table, in</font>-<a name="(line53)"></a><font color=Blue>-- particular to deal with parameterised macros in conditionals.</font>-<a name="(line54)"></a>-<a name="(line55)"></a>-<a name="(line56)"></a><a name="KeepState"></a><font color=Blue>-- | Internal state for whether lines are being kept or dropped.</font>-<a name="(line57)"></a><a name="KeepState"></a><font color=Blue>-- In @Drop n b@, @n@ is the depth of nesting, @b@ is whether</font>-<a name="(line58)"></a><a name="KeepState"></a><font color=Blue>-- we have already succeeded in keeping some lines in a chain of</font>-<a name="(line59)"></a><a name="KeepState"></a><font color=Blue>-- @elif@'s</font>-<a name="(line60)"></a><a name="KeepState"></a><font color=Green><u>data</u></font> KeepState <font color=Red>=</font> Keep <font color=Red>|</font> Drop Int Bool-<a name="(line61)"></a>-<a name="(line62)"></a><a name="cpp"></a><font color=Blue>-- | Return just the list of lines that the real cpp would decide to keep.</font>-<a name="(line63)"></a>cpp <font color=Red>::</font> Posn <font color=Red>-></font> SymTab HashDefine <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> BoolOptions <font color=Red>-></font> KeepState-<a name="(line64)"></a> <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line65)"></a>cpp <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> [] <font color=Red>=</font> []-<a name="(line66)"></a>-<a name="(line67)"></a>cpp p syms path options Keep <font color=Cyan>(</font>l<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'#'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line68)"></a> <font color=Green><u>let</u></font> ws <font color=Red>=</font> words x-<a name="(line69)"></a> cmd <font color=Red>=</font> head ws-<a name="(line70)"></a> line <font color=Red>=</font> tail ws-<a name="(line71)"></a> sym <font color=Red>=</font> head <font color=Cyan>(</font>tail ws<font color=Cyan>)</font>-<a name="(line72)"></a> rest <font color=Red>=</font> tail <font color=Cyan>(</font>tail ws<font color=Cyan>)</font>-<a name="(line73)"></a> def <font color=Red>=</font> defineMacro options <font color=Cyan>(</font>sym<font color=Cyan>++</font><font color=Magenta>" "</font><font color=Cyan>++</font> maybe <font color=Magenta>"1"</font> id <font color=Cyan>(</font>un rest<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line74)"></a> un v <font color=Red>=</font> <font color=Green><u>if</u></font> null v <font color=Green><u>then</u></font> Nothing <font color=Green><u>else</u></font> Just <font color=Cyan>(</font>unwords v<font color=Cyan>)</font>-<a name="(line75)"></a> keepIf p <font color=Red>=</font> <font color=Green><u>if</u></font> p <font color=Green><u>then</u></font> Keep <font color=Green><u>else</u></font> <font color=Cyan>(</font>Drop <font color=Magenta>1</font> False<font color=Cyan>)</font>-<a name="(line76)"></a> skipn syms' retain ud xs' <font color=Red>=</font>-<a name="(line77)"></a> <font color=Green><u>let</u></font> n <font color=Red>=</font> <font color=Magenta>1</font> <font color=Cyan>+</font> length <font color=Cyan>(</font>filter <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'\n'</font><font color=Cyan>)</font> l<font color=Cyan>)</font> <font color=Green><u>in</u></font>-<a name="(line78)"></a> <font color=Cyan>(</font><font color=Green><u>if</u></font> macros options <font color=Cyan>&&</font> retain <font color=Green><u>then</u></font> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>reslash l<font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Cyan>)</font>-<a name="(line79)"></a> <font color=Green><u>else</u></font> <font color=Cyan>(</font>replicate n <font color=Cyan>(</font>p<font color=Cyan>,</font><font color=Magenta>""</font><font color=Cyan>)</font> <font color=Cyan>++</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>$</font>-<a name="(line80)"></a> cpp <font color=Cyan>(</font>newlines n p<font color=Cyan>)</font> syms' path options ud xs'-<a name="(line81)"></a> <font color=Green><u>in</u></font> <font color=Green><u>case</u></font> cmd <font color=Green><u>of</u></font>-<a name="(line82)"></a> <font color=Magenta>"define"</font> <font color=Red>-></font> skipn <font color=Cyan>(</font>insertST def syms<font color=Cyan>)</font> True Keep xs-<a name="(line83)"></a> <font color=Magenta>"undef"</font> <font color=Red>-></font> skipn <font color=Cyan>(</font>deleteST sym syms<font color=Cyan>)</font> True Keep xs-<a name="(line84)"></a> <font color=Magenta>"ifndef"</font> <font color=Red>-></font> skipn syms False <font color=Cyan>(</font>keepIf <font color=Cyan>(</font>not <font color=Cyan>(</font>definedST sym syms<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> xs-<a name="(line85)"></a> <font color=Magenta>"ifdef"</font> <font color=Red>-></font> skipn syms False <font color=Cyan>(</font>keepIf <font color=Cyan>(</font>definedST sym syms<font color=Cyan>)</font><font color=Cyan>)</font> xs-<a name="(line86)"></a> <font color=Magenta>"if"</font> <font color=Red>-></font> skipn syms False-<a name="(line87)"></a> <font color=Cyan>(</font>keepIf <font color=Cyan>(</font>gatherDefined p syms <font color=Cyan>(</font>unwords line<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> xs-<a name="(line88)"></a> <font color=Magenta>"else"</font> <font color=Red>-></font> skipn syms False <font color=Cyan>(</font>Drop <font color=Magenta>1</font> False<font color=Cyan>)</font> xs-<a name="(line89)"></a> <font color=Magenta>"elif"</font> <font color=Red>-></font> skipn syms False <font color=Cyan>(</font>Drop <font color=Magenta>1</font> True<font color=Cyan>)</font> xs-<a name="(line90)"></a> <font color=Magenta>"endif"</font> <font color=Red>-></font> skipn syms False Keep xs-<a name="(line91)"></a> <font color=Magenta>"pragma"</font> <font color=Red>-></font> skipn syms True Keep xs-<a name="(line92)"></a> <font color=Cyan>(</font><font color=Magenta>'!'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>-></font> skipn syms False Keep xs <font color=Blue>-- \#!runhs scripts</font>-<a name="(line93)"></a> <font color=Magenta>"include"</font><font color=Red>-></font> <font color=Green><u>let</u></font> <font color=Cyan>(</font>inc<font color=Cyan>,</font>content<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line94)"></a> unsafePerformIO <font color=Cyan>(</font>readFirst <font color=Cyan>(</font>file syms <font color=Cyan>(</font>unwords line<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line95)"></a> p path-<a name="(line96)"></a> <font color=Cyan>(</font>warnings options<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line97)"></a> <font color=Green><u>in</u></font>-<a name="(line98)"></a> cpp p syms path options Keep <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"#line 1 "</font><font color=Cyan>++</font>show inc<font color=Cyan>)</font>-<a name="(line99)"></a> <font color=Red><b>:</b></font> linesCpp content-<a name="(line100)"></a> <font color=Cyan>++</font> cppline <font color=Cyan>(</font>newline p<font color=Cyan>)</font><font color=Red><b>:</b></font> xs<font color=Cyan>)</font>-<a name="(line101)"></a> <font color=Magenta>"warning"</font><font color=Red>-></font> <font color=Green><u>if</u></font> warnings options <font color=Green><u>then</u></font> unsafePerformIO <font color=Cyan>$</font> <font color=Green><u>do</u></font>-<a name="(line102)"></a> hPutStrLn stderr <font color=Cyan>(</font>l<font color=Cyan>++</font><font color=Magenta>"\nin "</font><font color=Cyan>++</font>show p<font color=Cyan>)</font>-<a name="(line103)"></a> return <font color=Cyan>$</font> skipn syms False Keep xs-<a name="(line104)"></a> <font color=Green><u>else</u></font> skipn syms False Keep xs-<a name="(line105)"></a> <font color=Magenta>"error"</font> <font color=Red>-></font> error <font color=Cyan>(</font>l<font color=Cyan>++</font><font color=Magenta>"\nin "</font><font color=Cyan>++</font>show p<font color=Cyan>)</font>-<a name="(line106)"></a> <font color=Magenta>"line"</font> <font color=Red>|</font> all isDigit sym-<a name="(line107)"></a> <font color=Red>-></font> <font color=Cyan>(</font><font color=Green><u>if</u></font> locations options <font color=Green><u>then</u></font> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l<font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Cyan>)</font> <font color=Green><u>else</u></font> id<font color=Cyan>)</font> <font color=Cyan>$</font>-<a name="(line108)"></a> cpp <font color=Cyan>(</font>newpos <font color=Cyan>(</font>read sym<font color=Cyan>)</font> <font color=Cyan>(</font>un rest<font color=Cyan>)</font> p<font color=Cyan>)</font>-<a name="(line109)"></a> syms path options Keep xs-<a name="(line110)"></a> n <font color=Red>|</font> all isDigit n-<a name="(line111)"></a> <font color=Red>-></font> <font color=Cyan>(</font><font color=Green><u>if</u></font> locations options <font color=Green><u>then</u></font> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l<font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Cyan>)</font> <font color=Green><u>else</u></font> id<font color=Cyan>)</font> <font color=Cyan>$</font>-<a name="(line112)"></a> cpp <font color=Cyan>(</font>newpos <font color=Cyan>(</font>read n<font color=Cyan>)</font> <font color=Cyan>(</font>un <font color=Cyan>(</font>tail ws<font color=Cyan>)</font><font color=Cyan>)</font> p<font color=Cyan>)</font>-<a name="(line113)"></a> syms path options Keep xs-<a name="(line114)"></a> <font color=Red>|</font> otherwise-<a name="(line115)"></a> <font color=Red>-></font> <font color=Green><u>if</u></font> warnings options <font color=Green><u>then</u></font> unsafePerformIO <font color=Cyan>$</font> <font color=Green><u>do</u></font>-<a name="(line116)"></a> hPutStrLn stderr <font color=Cyan>(</font><font color=Magenta>"Warning: unknown directive #"</font><font color=Cyan>++</font>n-<a name="(line117)"></a> <font color=Cyan>++</font><font color=Magenta>"\nin "</font><font color=Cyan>++</font>show p<font color=Cyan>)</font>-<a name="(line118)"></a> return <font color=Cyan>$</font>-<a name="(line119)"></a> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l<font color=Cyan>)</font><font color=Red><b>:</b></font> cpp <font color=Cyan>(</font>newline p<font color=Cyan>)</font> syms path options Keep xs<font color=Cyan>)</font>-<a name="(line120)"></a> <font color=Green><u>else</u></font>-<a name="(line121)"></a> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l<font color=Cyan>)</font><font color=Red><b>:</b></font> cpp <font color=Cyan>(</font>newline p<font color=Cyan>)</font> syms path options Keep xs<font color=Cyan>)</font>-<a name="(line122)"></a>-<a name="(line123)"></a>cpp p syms path options <font color=Cyan>(</font>Drop n b<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'#'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line124)"></a> <font color=Green><u>let</u></font> ws <font color=Red>=</font> words x-<a name="(line125)"></a> cmd <font color=Red>=</font> head ws-<a name="(line126)"></a> delse <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>1</font> <font color=Cyan>&&</font> b <font color=Red>=</font> Drop <font color=Magenta>1</font> b-<a name="(line127)"></a> <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>1</font> <font color=Red>=</font> Keep-<a name="(line128)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> Drop n b-<a name="(line129)"></a> dend <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>1</font> <font color=Red>=</font> Keep-<a name="(line130)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> Drop <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> b-<a name="(line131)"></a> delif s <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>1</font> <font color=Cyan>&&</font> not b <font color=Cyan>&&</font> gatherDefined p syms s-<a name="(line132)"></a> <font color=Red>=</font> Keep-<a name="(line133)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> Drop n b-<a name="(line134)"></a> skipn ud xs' <font color=Red>=</font>-<a name="(line135)"></a> <font color=Green><u>let</u></font> n' <font color=Red>=</font> <font color=Magenta>1</font> <font color=Cyan>+</font> length <font color=Cyan>(</font>filter <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'\n'</font><font color=Cyan>)</font> x<font color=Cyan>)</font> <font color=Green><u>in</u></font>-<a name="(line136)"></a> replicate n' <font color=Cyan>(</font>p<font color=Cyan>,</font><font color=Magenta>""</font><font color=Cyan>)</font>-<a name="(line137)"></a> <font color=Cyan>++</font> cpp <font color=Cyan>(</font>newlines n' p<font color=Cyan>)</font> syms path options ud xs'-<a name="(line138)"></a> <font color=Green><u>in</u></font>-<a name="(line139)"></a> <font color=Green><u>if</u></font> cmd <font color=Cyan>==</font> <font color=Magenta>"ifndef"</font> <font color=Cyan>||</font>-<a name="(line140)"></a> cmd <font color=Cyan>==</font> <font color=Magenta>"if"</font> <font color=Cyan>||</font>-<a name="(line141)"></a> cmd <font color=Cyan>==</font> <font color=Magenta>"ifdef"</font> <font color=Green><u>then</u></font> skipn <font color=Cyan>(</font>Drop <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> b<font color=Cyan>)</font> xs-<a name="(line142)"></a> <font color=Green><u>else</u></font> <font color=Green><u>if</u></font> cmd <font color=Cyan>==</font> <font color=Magenta>"elif"</font> <font color=Green><u>then</u></font> skipn <font color=Cyan>(</font>delif <font color=Cyan>(</font>unwords <font color=Cyan>(</font>tail ws<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> xs-<a name="(line143)"></a> <font color=Green><u>else</u></font> <font color=Green><u>if</u></font> cmd <font color=Cyan>==</font> <font color=Magenta>"else"</font> <font color=Green><u>then</u></font> skipn delse xs-<a name="(line144)"></a> <font color=Green><u>else</u></font> <font color=Green><u>if</u></font> cmd <font color=Cyan>==</font> <font color=Magenta>"endif"</font> <font color=Green><u>then</u></font> skipn dend xs-<a name="(line145)"></a> <font color=Green><u>else</u></font> skipn <font color=Cyan>(</font>Drop n b<font color=Cyan>)</font> xs-<a name="(line146)"></a> <font color=Blue>-- define, undef, include, error, warning, pragma, line</font>-<a name="(line147)"></a>-<a name="(line148)"></a>cpp p syms path options Keep <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line149)"></a> <font color=Green><u>let</u></font> p' <font color=Red>=</font> newline p <font color=Green><u>in</u></font> seq p' <font color=Cyan>$</font>-<a name="(line150)"></a> <font color=Cyan>(</font>p<font color=Cyan>,</font>x<font color=Cyan>)</font><font color=Red><b>:</b></font> cpp p' syms path options Keep xs-<a name="(line151)"></a>cpp p syms path options d<font color=Red>@</font><font color=Cyan>(</font>Drop <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line152)"></a> <font color=Green><u>let</u></font> p' <font color=Red>=</font> newline p <font color=Green><u>in</u></font> seq p' <font color=Cyan>$</font>-<a name="(line153)"></a> <font color=Cyan>(</font>p<font color=Cyan>,</font><font color=Magenta>""</font><font color=Cyan>)</font><font color=Red><b>:</b></font> cpp p' syms path options d xs-<a name="(line154)"></a>-<a name="(line155)"></a>-<a name="(line156)"></a><a name="gatherDefined"></a><font color=Blue>----</font>-<a name="(line157)"></a>gatherDefined <font color=Red>::</font> Posn <font color=Red>-></font> SymTab HashDefine <font color=Red>-></font> String <font color=Red>-></font> Bool-<a name="(line158)"></a>gatherDefined p st inp <font color=Red>=</font>-<a name="(line159)"></a> <font color=Green><u>case</u></font> papply <font color=Cyan>(</font>parseBoolExp st<font color=Cyan>)</font> inp <font color=Green><u>of</u></font>-<a name="(line160)"></a> [] <font color=Red>-></font> error <font color=Cyan>(</font><font color=Magenta>"Cannot parse #if directive in file "</font><font color=Cyan>++</font>show p<font color=Cyan>)</font>-<a name="(line161)"></a> <font color=Red>[</font><font color=Cyan>(</font>b<font color=Cyan>,</font><font color=Green><u>_</u></font><font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-></font> b-<a name="(line162)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font> error <font color=Cyan>(</font><font color=Magenta>"Ambiguous parse for #if directive in file "</font><font color=Cyan>++</font>show p<font color=Cyan>)</font>-<a name="(line163)"></a>-<a name="(line164)"></a><a name="parseBoolExp"></a>parseBoolExp <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> Parser Bool-<a name="(line165)"></a>parseBoolExp st <font color=Red>=</font>-<a name="(line166)"></a> <font color=Green><u>do</u></font> a <font color=Red><-</font> parseExp1 st-<a name="(line167)"></a> skip <font color=Cyan>(</font>string <font color=Magenta>"||"</font><font color=Cyan>)</font>-<a name="(line168)"></a> b <font color=Red><-</font> first <font color=Cyan>(</font>skip <font color=Cyan>(</font>parseBoolExp st<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line169)"></a> return <font color=Cyan>(</font>a <font color=Cyan>||</font> b<font color=Cyan>)</font>-<a name="(line170)"></a> <font color=Cyan>+++</font>-<a name="(line171)"></a> parseExp1 st-<a name="(line172)"></a>-<a name="(line173)"></a><a name="parseExp1"></a>parseExp1 <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> Parser Bool-<a name="(line174)"></a>parseExp1 st <font color=Red>=</font>-<a name="(line175)"></a> <font color=Green><u>do</u></font> a <font color=Red><-</font> parseExp0 st-<a name="(line176)"></a> skip <font color=Cyan>(</font>string <font color=Magenta>"&&"</font><font color=Cyan>)</font>-<a name="(line177)"></a> b <font color=Red><-</font> first <font color=Cyan>(</font>skip <font color=Cyan>(</font>parseExp1 st<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line178)"></a> return <font color=Cyan>(</font>a <font color=Cyan>&&</font> b<font color=Cyan>)</font>-<a name="(line179)"></a> <font color=Cyan>+++</font>-<a name="(line180)"></a> parseExp0 st-<a name="(line181)"></a>-<a name="(line182)"></a><a name="parseExp0"></a>parseExp0 <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> Parser Bool-<a name="(line183)"></a>parseExp0 st <font color=Red>=</font>-<a name="(line184)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>string <font color=Magenta>"defined"</font><font color=Cyan>)</font>-<a name="(line185)"></a> sym <font color=Red><-</font> parens parseSym-<a name="(line186)"></a> return <font color=Cyan>(</font>definedST sym st<font color=Cyan>)</font>-<a name="(line187)"></a> <font color=Cyan>+++</font>-<a name="(line188)"></a> <font color=Green><u>do</u></font> parens <font color=Cyan>(</font>parseBoolExp st<font color=Cyan>)</font>-<a name="(line189)"></a> <font color=Cyan>+++</font>-<a name="(line190)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>char <font color=Magenta>'!'</font><font color=Cyan>)</font>-<a name="(line191)"></a> a <font color=Red><-</font> parseExp0 st-<a name="(line192)"></a> return <font color=Cyan>(</font>not a<font color=Cyan>)</font>-<a name="(line193)"></a> <font color=Cyan>+++</font>-<a name="(line194)"></a> <font color=Green><u>do</u></font> sym1 <font color=Red><-</font> parseSymOrCall st-<a name="(line195)"></a> op <font color=Red><-</font> parseOp st-<a name="(line196)"></a> sym2 <font color=Red><-</font> parseSymOrCall st-<a name="(line197)"></a> return <font color=Cyan>(</font>op <font color=Cyan>(</font>safeRead sym1<font color=Cyan>)</font> <font color=Cyan>(</font>safeRead sym2<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line198)"></a> <font color=Cyan>+++</font>-<a name="(line199)"></a> <font color=Green><u>do</u></font> sym <font color=Red><-</font> parseSymOrCall st-<a name="(line200)"></a> <font color=Green><u>case</u></font> safeRead sym <font color=Green><u>of</u></font>-<a name="(line201)"></a> <font color=Magenta>0</font> <font color=Red>-></font> return False-<a name="(line202)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font> return True-<a name="(line203)"></a> <font color=Green><u>where</u></font>-<a name="(line204)"></a> safeRead s <font color=Red>=</font>-<a name="(line205)"></a> <font color=Green><u>case</u></font> s <font color=Green><u>of</u></font>-<a name="(line206)"></a> <font color=Magenta>'0'</font><font color=Red><b>:</b></font><font color=Magenta>'x'</font><font color=Red><b>:</b></font>s' <font color=Red>-></font> number readHex s'-<a name="(line207)"></a> <font color=Magenta>'0'</font><font color=Red><b>:</b></font><font color=Magenta>'o'</font><font color=Red><b>:</b></font>s' <font color=Red>-></font> number readOct s'-<a name="(line208)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font> number readDec s-<a name="(line209)"></a> number rd s <font color=Red>=</font>-<a name="(line210)"></a> <font color=Green><u>case</u></font> rd s <font color=Green><u>of</u></font>-<a name="(line211)"></a> [] <font color=Red>-></font> <font color=Magenta>0</font> <font color=Red>::</font> Integer-<a name="(line212)"></a> <font color=Cyan>(</font><font color=Cyan>(</font>n<font color=Cyan>,</font><font color=Green><u>_</u></font><font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>-></font> n <font color=Red>::</font> Integer-<a name="(line213)"></a>-<a name="(line214)"></a><a name="parseOp"></a>parseOp <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> Parser <font color=Cyan>(</font>Integer <font color=Red>-></font> Integer <font color=Red>-></font> Bool<font color=Cyan>)</font>-<a name="(line215)"></a>parseOp <font color=Green><u>_</u></font> <font color=Red>=</font>-<a name="(line216)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>string <font color=Magenta>">="</font><font color=Cyan>)</font>-<a name="(line217)"></a> return <font color=Cyan>(</font><font color=Cyan>>=</font><font color=Cyan>)</font>-<a name="(line218)"></a> <font color=Cyan>+++</font>-<a name="(line219)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>char <font color=Magenta>'>'</font><font color=Cyan>)</font>-<a name="(line220)"></a> return <font color=Cyan>(</font><font color=Cyan>></font><font color=Cyan>)</font>-<a name="(line221)"></a> <font color=Cyan>+++</font>-<a name="(line222)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>string <font color=Magenta>"<="</font><font color=Cyan>)</font>-<a name="(line223)"></a> return <font color=Cyan>(</font><font color=Cyan><=</font><font color=Cyan>)</font>-<a name="(line224)"></a> <font color=Cyan>+++</font>-<a name="(line225)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>char <font color=Magenta>'<'</font><font color=Cyan>)</font>-<a name="(line226)"></a> return <font color=Cyan>(</font><font color=Cyan><</font><font color=Cyan>)</font>-<a name="(line227)"></a> <font color=Cyan>+++</font>-<a name="(line228)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>string <font color=Magenta>"=="</font><font color=Cyan>)</font>-<a name="(line229)"></a> return <font color=Cyan>(</font><font color=Cyan>==</font><font color=Cyan>)</font>-<a name="(line230)"></a> <font color=Cyan>+++</font>-<a name="(line231)"></a> <font color=Green><u>do</u></font> skip <font color=Cyan>(</font>string <font color=Magenta>"!="</font><font color=Cyan>)</font>-<a name="(line232)"></a> return <font color=Cyan>(</font><font color=Cyan>/=</font><font color=Cyan>)</font>-<a name="(line233)"></a>-<a name="(line234)"></a><a name="parseSymOrCall"></a>parseSymOrCall <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> Parser String-<a name="(line235)"></a>parseSymOrCall st <font color=Red>=</font>-<a name="(line236)"></a> <font color=Green><u>do</u></font> sym <font color=Red><-</font> skip parseSym-<a name="(line237)"></a> args <font color=Red><-</font> parens <font color=Cyan>(</font>parseSymOrCall st <font color=Cyan>`sepby`</font> skip <font color=Cyan>(</font>char <font color=Magenta>','</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line238)"></a> return <font color=Cyan>(</font>convert sym args<font color=Cyan>)</font>-<a name="(line239)"></a> <font color=Cyan>+++</font>-<a name="(line240)"></a> <font color=Green><u>do</u></font> sym <font color=Red><-</font> skip parseSym-<a name="(line241)"></a> return <font color=Cyan>(</font>convert sym []<font color=Cyan>)</font>-<a name="(line242)"></a> <font color=Green><u>where</u></font>-<a name="(line243)"></a> convert sym args <font color=Red>=</font>-<a name="(line244)"></a> <font color=Green><u>case</u></font> lookupST sym st <font color=Green><u>of</u></font>-<a name="(line245)"></a> Nothing <font color=Red>-></font> sym-<a name="(line246)"></a> Just <font color=Cyan>(</font>a<font color=Red>@</font>SymbolReplacement<font color=Cyan>{</font><font color=Cyan>}</font><font color=Cyan>)</font> <font color=Red>-></font> recursivelyExpand st <font color=Cyan>(</font>replacement a<font color=Cyan>)</font>-<a name="(line247)"></a> Just <font color=Cyan>(</font>a<font color=Red>@</font>MacroExpansion<font color=Cyan>{</font><font color=Cyan>}</font><font color=Cyan>)</font> <font color=Red>-></font> expandMacro a args False-<a name="(line248)"></a>-<a name="(line249)"></a><a name="recursivelyExpand"></a>recursivelyExpand <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> String <font color=Red>-></font> String-<a name="(line250)"></a>recursivelyExpand st inp <font color=Red>=</font>-<a name="(line251)"></a> <font color=Green><u>case</u></font> papply <font color=Cyan>(</font>parseSymOrCall st<font color=Cyan>)</font> inp <font color=Green><u>of</u></font>-<a name="(line252)"></a> <font color=Red>[</font><font color=Cyan>(</font>b<font color=Cyan>,</font><font color=Green><u>_</u></font><font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-></font> b-<a name="(line253)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font> inp-<a name="(line254)"></a>-<a name="(line255)"></a><a name="parseSym"></a>parseSym <font color=Red>::</font> Parser String-<a name="(line256)"></a>parseSym <font color=Red>=</font> many1 <font color=Cyan>(</font>alphanum<font color=Cyan>+++</font>char <font color=Magenta>'\''</font><font color=Cyan>+++</font>char <font color=Magenta>'`'</font><font color=Cyan>)</font>-<a name="(line257)"></a>-<a name="(line258)"></a><a name="parens"></a>parens p <font color=Red>=</font> bracket <font color=Cyan>(</font>skip <font color=Cyan>(</font>char <font color=Magenta>'('</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>(</font>skip p<font color=Cyan>)</font> <font color=Cyan>(</font>skip <font color=Cyan>(</font>char <font color=Magenta>')'</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line259)"></a>-<a name="(line260)"></a><a name="file"></a><font color=Blue>-- | Determine filename in \#include</font>-<a name="(line261)"></a>file <font color=Red>::</font> SymTab HashDefine <font color=Red>-></font> String <font color=Red>-></font> String-<a name="(line262)"></a>file st name <font color=Red>=</font>-<a name="(line263)"></a> <font color=Green><u>case</u></font> name <font color=Green><u>of</u></font>-<a name="(line264)"></a> <font color=Cyan>(</font><font color=Magenta>'"'</font><font color=Red><b>:</b></font>ns<font color=Cyan>)</font> <font color=Red>-></font> init ns-<a name="(line265)"></a> <font color=Cyan>(</font><font color=Magenta>'<'</font><font color=Red><b>:</b></font>ns<font color=Cyan>)</font> <font color=Red>-></font> init ns-<a name="(line266)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font> <font color=Green><u>let</u></font> ex <font color=Red>=</font> recursivelyExpand st name <font color=Green><u>in</u></font>-<a name="(line267)"></a> <font color=Green><u>if</u></font> ex <font color=Cyan>==</font> name <font color=Green><u>then</u></font> name <font color=Green><u>else</u></font> file st ex-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/HashDefine.html
@@ -1,111 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : HashDefine</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>--</font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- What structures are declared in a \#define.</font>-<a name="(line12)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line13)"></a> -<a name="(line14)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>HashDefine-<a name="(line15)"></a> <font color=Cyan>(</font> HashDefine<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line16)"></a> <font color=Cyan>,</font> ArgOrText<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line17)"></a> <font color=Cyan>,</font> expandMacro-<a name="(line18)"></a> <font color=Cyan>,</font> parseHashDefine-<a name="(line19)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line20)"></a>-<a name="(line21)"></a><font color=Green><u>import</u></font> Char <font color=Cyan>(</font>isSpace<font color=Cyan>)</font>-<a name="(line22)"></a><font color=Green><u>import</u></font> List <font color=Cyan>(</font>intersperse<font color=Cyan>)</font>-<a name="(line23)"></a>-<a name="(line24)"></a><a name="HashDefine"></a><font color=Green><u>data</u></font> HashDefine-<a name="(line25)"></a> <font color=Red>=</font> LineDrop-<a name="(line26)"></a> <font color=Cyan>{</font> name <font color=Red>::</font> String <font color=Cyan>}</font>-<a name="(line27)"></a> <font color=Red>|</font> Pragma-<a name="(line28)"></a> <font color=Cyan>{</font> name <font color=Red>::</font> String <font color=Cyan>}</font>-<a name="(line29)"></a> <font color=Red>|</font> SymbolReplacement-<a name="(line30)"></a> <font color=Cyan>{</font> name <font color=Red>::</font> String-<a name="(line31)"></a> <font color=Cyan>,</font> replacement <font color=Red>::</font> String-<a name="(line32)"></a> <font color=Cyan>,</font> linebreaks <font color=Red>::</font> Int-<a name="(line33)"></a> <font color=Cyan>}</font>-<a name="(line34)"></a> <font color=Red>|</font> MacroExpansion-<a name="(line35)"></a> <font color=Cyan>{</font> name <font color=Red>::</font> String-<a name="(line36)"></a> <font color=Cyan>,</font> arguments <font color=Red>::</font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="(line37)"></a> <font color=Cyan>,</font> expansion <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>ArgOrText<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line38)"></a> <font color=Cyan>,</font> linebreaks <font color=Red>::</font> Int-<a name="(line39)"></a> <font color=Cyan>}</font>-<a name="(line40)"></a> <font color=Green><u>deriving</u></font> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font>-<a name="(line41)"></a>-<a name="(line42)"></a><a name="symbolReplacement"></a><font color=Blue>-- | 'smart' constructor to avoid warnings from ghc (undefined fields)</font>-<a name="(line43)"></a>symbolReplacement <font color=Red>::</font> HashDefine-<a name="(line44)"></a>symbolReplacement <font color=Red>=</font>-<a name="(line45)"></a> SymbolReplacement-<a name="(line46)"></a> <font color=Cyan>{</font> name<font color=Red>=</font>undefined<font color=Cyan>,</font> replacement<font color=Red>=</font>undefined<font color=Cyan>,</font> linebreaks<font color=Red>=</font>undefined <font color=Cyan>}</font>-<a name="(line47)"></a>-<a name="(line48)"></a><a name="ArgOrText"></a><font color=Blue>-- | Macro expansion text is divided into sections, each of which is classified</font>-<a name="(line49)"></a><a name="ArgOrText"></a><font color=Blue>-- as one of three kinds: a formal argument (Arg), plain text (Text),</font>-<a name="(line50)"></a><a name="ArgOrText"></a><font color=Blue>-- or a stringised formal argument (Str).</font>-<a name="(line51)"></a><a name="ArgOrText"></a><font color=Green><u>data</u></font> ArgOrText <font color=Red>=</font> Arg <font color=Red>|</font> Text <font color=Red>|</font> Str <font color=Green><u>deriving</u></font> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font>-<a name="(line52)"></a>-<a name="(line53)"></a><a name="expandMacro"></a><font color=Blue>-- | Expand an instance of a macro.</font>-<a name="(line54)"></a><font color=Blue>-- Precondition: got a match on the macro name.</font>-<a name="(line55)"></a>expandMacro <font color=Red>::</font> HashDefine <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> Bool <font color=Red>-></font> String-<a name="(line56)"></a>expandMacro macro parameters layout <font color=Red>=</font>-<a name="(line57)"></a> <font color=Green><u>let</u></font> env <font color=Red>=</font> zip <font color=Cyan>(</font>arguments macro<font color=Cyan>)</font> parameters-<a name="(line58)"></a> replace <font color=Cyan>(</font>Arg<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> maybe <font color=Cyan>(</font>error <font color=Magenta>"formal param"</font><font color=Cyan>)</font> id <font color=Cyan>(</font>lookup s env<font color=Cyan>)</font>-<a name="(line59)"></a> replace <font color=Cyan>(</font>Str<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> maybe <font color=Cyan>(</font>error <font color=Magenta>"formal param"</font><font color=Cyan>)</font> str <font color=Cyan>(</font>lookup s env<font color=Cyan>)</font>-<a name="(line60)"></a> replace <font color=Cyan>(</font>Text<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>if</u></font> layout <font color=Green><u>then</u></font> s <font color=Green><u>else</u></font> filter <font color=Cyan>(</font><font color=Cyan>/=</font><font color=Magenta>'\n'</font><font color=Cyan>)</font> s-<a name="(line61)"></a> str s <font color=Red>=</font> <font color=Magenta>'"'</font><font color=Red><b>:</b></font>s<font color=Cyan>++</font><font color=Magenta>"\""</font>-<a name="(line62)"></a> <font color=Green><u>in</u></font>-<a name="(line63)"></a> concatMap replace <font color=Cyan>(</font>expansion macro<font color=Cyan>)</font>-<a name="(line64)"></a>-<a name="(line65)"></a><a name="parseHashDefine"></a><font color=Blue>-- | Parse a \#define, or \#undef, ignoring other \# directives</font>-<a name="(line66)"></a>parseHashDefine <font color=Red>::</font> Bool <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> Maybe HashDefine-<a name="(line67)"></a>parseHashDefine ansi def <font color=Red>=</font> <font color=Cyan>(</font>command <font color=Cyan>.</font> skip<font color=Cyan>)</font> def-<a name="(line68)"></a> <font color=Green><u>where</u></font>-<a name="(line69)"></a> skip xss<font color=Red>@</font><font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> all isSpace x <font color=Red>=</font> skip xs-<a name="(line70)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> xss-<a name="(line71)"></a> skip [] <font color=Red>=</font> []-<a name="(line72)"></a> command <font color=Cyan>(</font><font color=Magenta>"line"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font>LineDrop <font color=Cyan>(</font><font color=Magenta>"#line"</font><font color=Cyan>++</font>concat xs<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line73)"></a> command <font color=Cyan>(</font><font color=Magenta>"pragma"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font>Pragma <font color=Cyan>(</font><font color=Magenta>"#pragma"</font><font color=Cyan>++</font>concat xs<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line74)"></a> command <font color=Cyan>(</font><font color=Magenta>"define"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font><font color=Cyan>(</font><font color=Cyan>(</font>define <font color=Cyan>.</font> skip<font color=Cyan>)</font> xs<font color=Cyan>)</font> <font color=Cyan>{</font> linebreaks<font color=Red>=</font>count def <font color=Cyan>}</font><font color=Cyan>)</font>-<a name="(line75)"></a> command <font color=Cyan>(</font><font color=Magenta>"undef"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font><font color=Cyan>(</font><font color=Cyan>(</font>undef <font color=Cyan>.</font> skip<font color=Cyan>)</font> xs<font color=Cyan>)</font> <font color=Cyan>{</font> linebreaks<font color=Red>=</font>count def <font color=Cyan>}</font><font color=Cyan>)</font>-<a name="(line76)"></a> command <font color=Green><u>_</u></font> <font color=Red>=</font> Nothing-<a name="(line77)"></a> undef <font color=Cyan>(</font>sym<font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> symbolReplacement <font color=Cyan>{</font> name<font color=Red>=</font>sym<font color=Cyan>,</font> replacement<font color=Red>=</font>sym <font color=Cyan>}</font>-<a name="(line78)"></a> define <font color=Cyan>(</font>sym<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>case</u></font> <font color=Blue>{-skip-}</font> xs <font color=Green><u>of</u></font>-<a name="(line79)"></a> <font color=Cyan>(</font><font color=Magenta>"("</font><font color=Red><b>:</b></font>ys<font color=Cyan>)</font> <font color=Red>-></font> <font color=Cyan>(</font>macroHead sym [] <font color=Cyan>.</font> skip<font color=Cyan>)</font> ys-<a name="(line80)"></a> ys <font color=Red>-></font> symbolReplacement-<a name="(line81)"></a> <font color=Cyan>{</font> name<font color=Red>=</font>sym-<a name="(line82)"></a> <font color=Cyan>,</font> replacement <font color=Red>=</font> concatMap snd-<a name="(line83)"></a> <font color=Cyan>(</font>classifyRhs [] <font color=Cyan>(</font>chop <font color=Cyan>(</font>skip ys<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>}</font>-<a name="(line84)"></a> macroHead sym args <font color=Cyan>(</font><font color=Magenta>","</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font>macroHead sym args <font color=Cyan>.</font> skip<font color=Cyan>)</font> xs-<a name="(line85)"></a> macroHead sym args <font color=Cyan>(</font><font color=Magenta>")"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> MacroExpansion-<a name="(line86)"></a> <font color=Cyan>{</font> name <font color=Red>=</font>sym <font color=Cyan>,</font> arguments <font color=Red>=</font> reverse args-<a name="(line87)"></a> <font color=Cyan>,</font> expansion <font color=Red>=</font> classifyRhs args <font color=Cyan>(</font>skip xs<font color=Cyan>)</font>-<a name="(line88)"></a> <font color=Cyan>,</font> linebreaks <font color=Red>=</font> undefined <font color=Cyan>}</font>-<a name="(line89)"></a> macroHead sym args <font color=Cyan>(</font>var<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font>macroHead sym <font color=Cyan>(</font>var<font color=Red><b>:</b></font>args<font color=Cyan>)</font> <font color=Cyan>.</font> skip<font color=Cyan>)</font> xs-<a name="(line90)"></a> macroHead sym args [] <font color=Red>=</font> error <font color=Cyan>(</font><font color=Magenta>"incomplete macro definition:\n"</font>-<a name="(line91)"></a> <font color=Cyan>++</font><font color=Magenta>" #define "</font><font color=Cyan>++</font>sym<font color=Cyan>++</font><font color=Magenta>"("</font>-<a name="(line92)"></a> <font color=Cyan>++</font>concat <font color=Cyan>(</font>intersperse <font color=Magenta>","</font> args<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line93)"></a> classifyRhs args <font color=Cyan>(</font><font color=Magenta>"#"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line94)"></a> <font color=Red>|</font> ansi <font color=Cyan>&&</font>-<a name="(line95)"></a> x <font color=Cyan>`elem`</font> args <font color=Red>=</font> <font color=Cyan>(</font>Str<font color=Cyan>,</font>x<font color=Cyan>)</font><font color=Red><b>:</b></font> classifyRhs args xs-<a name="(line96)"></a> classifyRhs args <font color=Cyan>(</font><font color=Magenta>"##"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line97)"></a> <font color=Red>|</font> ansi <font color=Red>=</font> classifyRhs args xs-<a name="(line98)"></a> classifyRhs args <font color=Cyan>(</font>s<font color=Red><b>:</b></font><font color=Magenta>"##"</font><font color=Red><b>:</b></font>s'<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line99)"></a> <font color=Red>|</font> ansi <font color=Cyan>&&</font> all isSpace s <font color=Cyan>&&</font> all isSpace s'-<a name="(line100)"></a> <font color=Red>=</font> classifyRhs args xs-<a name="(line101)"></a> classifyRhs args <font color=Cyan>(</font>word<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line102)"></a> <font color=Red>|</font> word <font color=Cyan>`elem`</font> args <font color=Red>=</font> <font color=Cyan>(</font>Arg<font color=Cyan>,</font>word<font color=Cyan>)</font><font color=Red><b>:</b></font> classifyRhs args xs-<a name="(line103)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> <font color=Cyan>(</font>Text<font color=Cyan>,</font>word<font color=Cyan>)</font><font color=Red><b>:</b></font> classifyRhs args xs-<a name="(line104)"></a> classifyRhs <font color=Green><u>_</u></font> [] <font color=Red>=</font> []-<a name="(line105)"></a> count <font color=Red>=</font> length <font color=Cyan>.</font> filter <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'\n'</font><font color=Cyan>)</font> <font color=Cyan>.</font> concat-<a name="(line106)"></a> chop <font color=Red>=</font> reverse <font color=Cyan>.</font> dropWhile <font color=Cyan>(</font>all isSpace<font color=Cyan>)</font> <font color=Cyan>.</font> reverse-<a name="(line107)"></a>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/MacroPass.html
@@ -1,133 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : MacroPass</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>--</font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- Perform a cpp.second-pass, accumulating \#define's and \#undef's,</font>-<a name="(line12)"></a><font color=Blue>-- whilst doing symbol replacement and macro expansion.</font>-<a name="(line13)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line14)"></a>-<a name="(line15)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>MacroPass-<a name="(line16)"></a> <font color=Cyan>(</font> macroPass-<a name="(line17)"></a> <font color=Cyan>,</font> preDefine-<a name="(line18)"></a> <font color=Cyan>,</font> defineMacro-<a name="(line19)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line20)"></a>-<a name="(line21)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>HashDefine <font color=Cyan>(</font>HashDefine<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> expandMacro<font color=Cyan>)</font>-<a name="(line22)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Tokenise <font color=Cyan>(</font>tokenise<font color=Cyan>,</font> WordStyle<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line23)"></a> <font color=Cyan>,</font> parseMacroCall<font color=Cyan>)</font>-<a name="(line24)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>SymTab <font color=Cyan>(</font>SymTab<font color=Cyan>,</font> lookupST<font color=Cyan>,</font> insertST-<a name="(line25)"></a> <font color=Cyan>,</font> emptyST<font color=Cyan>)</font>-<a name="(line26)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Position <font color=Cyan>(</font>Posn<font color=Cyan>,</font> newfile<font color=Cyan>,</font> filename<font color=Cyan>,</font> lineno<font color=Cyan>)</font>-<a name="(line27)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Options <font color=Cyan>(</font>BoolOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line28)"></a><font color=Green><u>import</u></font> System<font color=Cyan>.</font>IO<font color=Cyan>.</font>Unsafe <font color=Cyan>(</font>unsafePerformIO<font color=Cyan>)</font>-<a name="(line29)"></a><font color=Green><u>import</u></font> Time <font color=Cyan>(</font>getClockTime<font color=Cyan>,</font> toCalendarTime<font color=Cyan>,</font> formatCalendarTime<font color=Cyan>)</font>-<a name="(line30)"></a><font color=Green><u>import</u></font> Locale <font color=Cyan>(</font>defaultTimeLocale<font color=Cyan>)</font>-<a name="(line31)"></a>-<a name="(line32)"></a><a name="noPos"></a>noPos <font color=Red>::</font> Posn-<a name="(line33)"></a>noPos <font color=Red>=</font> newfile <font color=Magenta>"preDefined"</font>-<a name="(line34)"></a>-<a name="(line35)"></a><a name="macroPass"></a><font color=Blue>-- | Walk through the document, replacing calls of macros with the expanded RHS.</font>-<a name="(line36)"></a>macroPass <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Blue>-- ^ Pre-defined symbols and their values</font>-<a name="(line37)"></a> <font color=Red>-></font> BoolOptions <font color=Blue>-- ^ Options that alter processing style</font>-<a name="(line38)"></a> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Blue>-- ^ The input file content</font>-<a name="(line39)"></a> <font color=Red>-></font> String <font color=Blue>-- ^ The file after processing</font>-<a name="(line40)"></a>macroPass syms options <font color=Red>=</font>-<a name="(line41)"></a> safetail <font color=Blue>-- to remove extra "\n" inserted below</font>-<a name="(line42)"></a> <font color=Cyan>.</font> concat-<a name="(line43)"></a> <font color=Cyan>.</font> macroProcess <font color=Cyan>(</font>pragma options<font color=Cyan>)</font> <font color=Cyan>(</font>layout options<font color=Cyan>)</font> <font color=Cyan>(</font>lang options<font color=Cyan>)</font>-<a name="(line44)"></a> <font color=Cyan>(</font>preDefine options syms<font color=Cyan>)</font>-<a name="(line45)"></a> <font color=Cyan>.</font> tokenise <font color=Cyan>(</font>stripEol options<font color=Cyan>)</font> <font color=Cyan>(</font>stripC89 options<font color=Cyan>)</font>-<a name="(line46)"></a> <font color=Cyan>(</font>ansi options<font color=Cyan>)</font> <font color=Cyan>(</font>lang options<font color=Cyan>)</font>-<a name="(line47)"></a> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>(</font>noPos<font color=Cyan>,</font><font color=Magenta>""</font><font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Cyan>)</font> <font color=Blue>-- ensure recognition of "\n#" at start of file</font>-<a name="(line48)"></a> <font color=Green><u>where</u></font>-<a name="(line49)"></a> safetail [] <font color=Red>=</font> []-<a name="(line50)"></a> safetail <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> xs-<a name="(line51)"></a>-<a name="(line52)"></a>-<a name="(line53)"></a><a name="preDefine"></a><font color=Blue>-- | Turn command-line definitions (from @-D@) into 'HashDefine's.</font>-<a name="(line54)"></a>preDefine <font color=Red>::</font> BoolOptions <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-></font> SymTab HashDefine-<a name="(line55)"></a>preDefine options defines <font color=Red>=</font>-<a name="(line56)"></a> foldr <font color=Cyan>(</font>insertST <font color=Cyan>.</font> defineMacro options <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Red>\</font> <font color=Cyan>(</font>s<font color=Cyan>,</font>d<font color=Cyan>)</font><font color=Red>-></font> s<font color=Cyan>++</font><font color=Magenta>" "</font><font color=Cyan>++</font>d<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line57)"></a> emptyST defines-<a name="(line58)"></a>-<a name="(line59)"></a><a name="defineMacro"></a><font color=Blue>-- | Turn a string representing a macro definition into a 'HashDefine'.</font>-<a name="(line60)"></a>defineMacro <font color=Red>::</font> BoolOptions <font color=Red>-></font> String <font color=Red>-></font> <font color=Cyan>(</font>String<font color=Cyan>,</font>HashDefine<font color=Cyan>)</font>-<a name="(line61)"></a>defineMacro opts s <font color=Red>=</font>-<a name="(line62)"></a> <font color=Green><u>let</u></font> <font color=Cyan>(</font>Cmd <font color=Cyan>(</font>Just hd<font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> tokenise True True <font color=Cyan>(</font>ansi opts<font color=Cyan>)</font> <font color=Cyan>(</font>lang opts<font color=Cyan>)</font>-<a name="(line63)"></a> <font color=Red>[</font><font color=Cyan>(</font>noPos<font color=Cyan>,</font><font color=Magenta>"\n#define "</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><font color=Red>]</font>-<a name="(line64)"></a> <font color=Green><u>in</u></font> <font color=Cyan>(</font>name hd<font color=Cyan>,</font> hd<font color=Cyan>)</font>-<a name="(line65)"></a>-<a name="(line66)"></a>-<a name="(line67)"></a><a name="macroProcess"></a><font color=Blue>-- | Trundle through the document, one word at a time, using the WordStyle</font>-<a name="(line68)"></a><font color=Blue>-- classification introduced by 'tokenise' to decide whether to expand a</font>-<a name="(line69)"></a><font color=Blue>-- word or macro. Encountering a \#define or \#undef causes that symbol to</font>-<a name="(line70)"></a><font color=Blue>-- be overwritten in the symbol table. Any other remaining cpp directives</font>-<a name="(line71)"></a><font color=Blue>-- are discarded and replaced with blanks, except for \#line markers.</font>-<a name="(line72)"></a><font color=Blue>-- All valid identifiers are checked for the presence of a definition</font>-<a name="(line73)"></a><font color=Blue>-- of that name in the symbol table, and if so, expanded appropriately.</font>-<a name="(line74)"></a><font color=Blue>-- (Bool arguments are: keep pragmas? retain layout? haskell language?)</font>-<a name="(line75)"></a>macroProcess <font color=Red>::</font> Bool <font color=Red>-></font> Bool <font color=Red>-></font> Bool <font color=Red>-></font> SymTab HashDefine <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font>-<a name="(line76)"></a> <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="(line77)"></a>macroProcess <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> [] <font color=Red>=</font> []-<a name="(line78)"></a>macroProcess p y l st <font color=Cyan>(</font>Other x<font color=Red><b>:</b></font> ws<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> macroProcess p y l st ws-<a name="(line79)"></a>macroProcess p y l st <font color=Cyan>(</font>Cmd Nothing<font color=Red><b>:</b></font> ws<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\n"</font><font color=Red><b>:</b></font> macroProcess p y l st ws-<a name="(line80)"></a>macroProcess p y l st <font color=Cyan>(</font>Cmd <font color=Cyan>(</font>Just <font color=Cyan>(</font>LineDrop x<font color=Cyan>)</font><font color=Cyan>)</font><font color=Red><b>:</b></font> ws<font color=Cyan>)</font>-<a name="(line81)"></a> <font color=Red>=</font> <font color=Magenta>"\n"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>macroProcess p y l st ws-<a name="(line82)"></a>macroProcess pragma y l st <font color=Cyan>(</font>Cmd <font color=Cyan>(</font>Just <font color=Cyan>(</font>Pragma x<font color=Cyan>)</font><font color=Cyan>)</font><font color=Red><b>:</b></font> ws<font color=Cyan>)</font>-<a name="(line83)"></a> <font color=Red>|</font> pragma <font color=Red>=</font> <font color=Magenta>"\n"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>macroProcess pragma y l st ws-<a name="(line84)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> <font color=Magenta>"\n"</font><font color=Red><b>:</b></font> macroProcess pragma y l st ws-<a name="(line85)"></a>macroProcess p layout lang st <font color=Cyan>(</font>Cmd <font color=Cyan>(</font>Just hd<font color=Cyan>)</font><font color=Red><b>:</b></font> ws<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line86)"></a> <font color=Green><u>let</u></font> n <font color=Red>=</font> <font color=Magenta>1</font> <font color=Cyan>+</font> linebreaks hd <font color=Green><u>in</u></font>-<a name="(line87)"></a> replicate n <font color=Magenta>"\n"</font> <font color=Cyan>++</font>macroProcess p layout lang <font color=Cyan>(</font>insertST <font color=Cyan>(</font>name hd<font color=Cyan>,</font> hd<font color=Cyan>)</font> st<font color=Cyan>)</font> ws-<a name="(line88)"></a>macroProcess pr layout lang st <font color=Cyan>(</font>Ident p x<font color=Red><b>:</b></font> ws<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line89)"></a> <font color=Green><u>case</u></font> x <font color=Green><u>of</u></font>-<a name="(line90)"></a> <font color=Magenta>"__FILE__"</font> <font color=Red>-></font> show <font color=Cyan>(</font>filename p<font color=Cyan>)</font><font color=Red><b>:</b></font> macroProcess pr layout lang st ws-<a name="(line91)"></a> <font color=Magenta>"__LINE__"</font> <font color=Red>-></font> show <font color=Cyan>(</font>lineno p<font color=Cyan>)</font><font color=Red><b>:</b></font> macroProcess pr layout lang st ws-<a name="(line92)"></a> <font color=Magenta>"__DATE__"</font> <font color=Red>-></font> formatCalendarTime defaultTimeLocale <font color=Magenta>"\"%d %b %Y\""</font>-<a name="(line93)"></a> <font color=Cyan>(</font>unsafePerformIO <font color=Cyan>(</font>getClockTime<font color=Cyan>>>=</font>toCalendarTime<font color=Cyan>)</font><font color=Cyan>)</font><font color=Red><b>:</b></font>-<a name="(line94)"></a> macroProcess pr layout lang st ws-<a name="(line95)"></a> <font color=Magenta>"__TIME__"</font> <font color=Red>-></font> formatCalendarTime defaultTimeLocale <font color=Magenta>"\"%H:%M:%S\""</font>-<a name="(line96)"></a> <font color=Cyan>(</font>unsafePerformIO <font color=Cyan>(</font>getClockTime<font color=Cyan>>>=</font>toCalendarTime<font color=Cyan>)</font><font color=Cyan>)</font><font color=Red><b>:</b></font>-<a name="(line97)"></a> macroProcess pr layout lang st ws-<a name="(line98)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font>-<a name="(line99)"></a> <font color=Green><u>case</u></font> lookupST x st <font color=Green><u>of</u></font>-<a name="(line100)"></a> Nothing <font color=Red>-></font> x<font color=Red><b>:</b></font> macroProcess pr layout lang st ws-<a name="(line101)"></a> Just hd <font color=Red>-></font>-<a name="(line102)"></a> <font color=Green><u>case</u></font> hd <font color=Green><u>of</u></font>-<a name="(line103)"></a> SymbolReplacement <font color=Cyan>{</font>replacement<font color=Red>=</font>r<font color=Cyan>}</font> <font color=Red>-></font>-<a name="(line104)"></a> <font color=Green><u>let</u></font> r' <font color=Red>=</font> <font color=Green><u>if</u></font> layout <font color=Green><u>then</u></font> r <font color=Green><u>else</u></font> filter <font color=Cyan>(</font><font color=Cyan>/=</font><font color=Magenta>'\n'</font><font color=Cyan>)</font> r <font color=Green><u>in</u></font>-<a name="(line105)"></a> <font color=Blue>-- one-level expansion only:</font>-<a name="(line106)"></a> <font color=Blue>-- r' : macroProcess layout st ws</font>-<a name="(line107)"></a> <font color=Blue>-- multi-level expansion:</font>-<a name="(line108)"></a> macroProcess pr layout lang st-<a name="(line109)"></a> <font color=Cyan>(</font>tokenise True True False lang <font color=Red>[</font><font color=Cyan>(</font>p<font color=Cyan>,</font>r'<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line110)"></a> <font color=Cyan>++</font> ws<font color=Cyan>)</font>-<a name="(line111)"></a> MacroExpansion <font color=Cyan>{</font><font color=Cyan>}</font> <font color=Red>-></font>-<a name="(line112)"></a> <font color=Green><u>case</u></font> parseMacroCall p ws <font color=Green><u>of</u></font>-<a name="(line113)"></a> Nothing <font color=Red>-></font> x<font color=Red><b>:</b></font> macroProcess pr layout lang st ws-<a name="(line114)"></a> Just <font color=Cyan>(</font>args<font color=Cyan>,</font>ws'<font color=Cyan>)</font> <font color=Red>-></font>-<a name="(line115)"></a> <font color=Green><u>if</u></font> length args <font color=Cyan>/=</font> length <font color=Cyan>(</font>arguments hd<font color=Cyan>)</font> <font color=Green><u>then</u></font>-<a name="(line116)"></a> x<font color=Red><b>:</b></font> macroProcess pr layout lang st ws-<a name="(line117)"></a> <font color=Green><u>else</u></font> <font color=Green><u>let</u></font> args' <font color=Red>=</font> map <font color=Cyan>(</font>concat-<a name="(line118)"></a> <font color=Cyan>.</font> macroProcess pr layout-<a name="(line119)"></a> lang st<font color=Cyan>)</font>-<a name="(line120)"></a> args <font color=Green><u>in</u></font>-<a name="(line121)"></a> <font color=Blue>-- one-level expansion only:</font>-<a name="(line122)"></a> <font color=Blue>-- expandMacro hd args' layout:</font>-<a name="(line123)"></a> <font color=Blue>-- macroProcess layout st ws'</font>-<a name="(line124)"></a> <font color=Blue>-- multi-level expansion:</font>-<a name="(line125)"></a> macroProcess pr layout lang st-<a name="(line126)"></a> <font color=Cyan>(</font>tokenise True True False lang-<a name="(line127)"></a> <font color=Red>[</font><font color=Cyan>(</font>p<font color=Cyan>,</font>expandMacro hd args' layout<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line128)"></a> <font color=Cyan>++</font> ws'<font color=Cyan>)</font>-<a name="(line129)"></a>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/Options.html
@@ -1,150 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : Options</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2006 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>--</font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- This module deals with Cpphs options and parsing them</font>-<a name="(line12)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line13)"></a>-<a name="(line14)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Options-<a name="(line15)"></a> <font color=Cyan>(</font> CpphsOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line16)"></a> <font color=Cyan>,</font> BoolOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line17)"></a> <font color=Cyan>,</font> parseOptions-<a name="(line18)"></a> <font color=Cyan>,</font> defaultCpphsOptions-<a name="(line19)"></a> <font color=Cyan>,</font> defaultBoolOptions-<a name="(line20)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line21)"></a>-<a name="(line22)"></a><font color=Green><u>import</u></font> Maybe-<a name="(line23)"></a><font color=Green><u>import</u></font> List <font color=Cyan>(</font>isPrefixOf<font color=Cyan>)</font>-<a name="(line24)"></a>-<a name="(line25)"></a><a name="CpphsOptions"></a><font color=Blue>-- | Cpphs options structure.</font>-<a name="(line26)"></a><a name="CpphsOptions"></a><font color=Green><u>data</u></font> CpphsOptions <font color=Red>=</font> CpphsOptions -<a name="(line27)"></a> <font color=Cyan>{</font> infiles <font color=Red>::</font> <font color=Red>[</font>FilePath<font color=Red>]</font>-<a name="(line28)"></a> <font color=Cyan>,</font> outfiles <font color=Red>::</font> <font color=Red>[</font>FilePath<font color=Red>]</font>-<a name="(line29)"></a> <font color=Cyan>,</font> defines <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line30)"></a> <font color=Cyan>,</font> includes <font color=Red>::</font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="(line31)"></a> <font color=Cyan>,</font> preInclude<font color=Red>::</font> <font color=Red>[</font>FilePath<font color=Red>]</font> <font color=Blue>-- ^ Files to #include before anything else</font>-<a name="(line32)"></a> <font color=Cyan>,</font> boolopts <font color=Red>::</font> BoolOptions-<a name="(line33)"></a> <font color=Cyan>}</font>-<a name="(line34)"></a>-<a name="(line35)"></a><a name="defaultCpphsOptions"></a><font color=Blue>-- | Default options.</font>-<a name="(line36)"></a>defaultCpphsOptions <font color=Red>::</font> CpphsOptions-<a name="(line37)"></a>defaultCpphsOptions <font color=Red>=</font> CpphsOptions <font color=Cyan>{</font> infiles <font color=Red>=</font> []<font color=Cyan>,</font> outfiles <font color=Red>=</font> []-<a name="(line38)"></a> <font color=Cyan>,</font> defines <font color=Red>=</font> []<font color=Cyan>,</font> includes <font color=Red>=</font> []-<a name="(line39)"></a> <font color=Cyan>,</font> preInclude <font color=Red>=</font> []-<a name="(line40)"></a> <font color=Cyan>,</font> boolopts <font color=Red>=</font> defaultBoolOptions <font color=Cyan>}</font>-<a name="(line41)"></a>-<a name="(line42)"></a><a name="BoolOptions"></a><font color=Blue>-- | Options representable as Booleans.</font>-<a name="(line43)"></a><a name="BoolOptions"></a><font color=Green><u>data</u></font> BoolOptions <font color=Red>=</font> BoolOptions-<a name="(line44)"></a> <font color=Cyan>{</font> macros <font color=Red>::</font> Bool <font color=Blue>-- ^ Leave \#define and \#undef in output of ifdef?</font>-<a name="(line45)"></a> <font color=Cyan>,</font> locations <font color=Red>::</font> Bool <font color=Blue>-- ^ Place #line droppings in output?</font>-<a name="(line46)"></a> <font color=Cyan>,</font> pragma <font color=Red>::</font> Bool <font color=Blue>-- ^ Keep #pragma in final output?</font>-<a name="(line47)"></a> <font color=Cyan>,</font> stripEol <font color=Red>::</font> Bool <font color=Blue>-- ^ Remove C eol (\/\/) comments everywhere?</font>-<a name="(line48)"></a> <font color=Cyan>,</font> stripC89 <font color=Red>::</font> Bool <font color=Blue>-- ^ Remove C inline (\/**\/) comments everywhere?</font>-<a name="(line49)"></a> <font color=Cyan>,</font> lang <font color=Red>::</font> Bool <font color=Blue>-- ^ Lex input as Haskell code?</font>-<a name="(line50)"></a> <font color=Cyan>,</font> ansi <font color=Red>::</font> Bool <font color=Blue>-- ^ Permit stringise \# and catenate \#\# operators?</font>-<a name="(line51)"></a> <font color=Cyan>,</font> layout <font color=Red>::</font> Bool <font color=Blue>-- ^ Retain newlines in macro expansions?</font>-<a name="(line52)"></a> <font color=Cyan>,</font> literate <font color=Red>::</font> Bool <font color=Blue>-- ^ Remove literate markup?</font>-<a name="(line53)"></a> <font color=Cyan>,</font> warnings <font color=Red>::</font> Bool <font color=Blue>-- ^ Issue warnings?</font>-<a name="(line54)"></a> <font color=Cyan>}</font>-<a name="(line55)"></a>-<a name="(line56)"></a><a name="defaultBoolOptions"></a><font color=Blue>-- | Default settings of boolean options.</font>-<a name="(line57)"></a>defaultBoolOptions <font color=Red>::</font> BoolOptions-<a name="(line58)"></a>defaultBoolOptions <font color=Red>=</font> BoolOptions <font color=Cyan>{</font> macros <font color=Red>=</font> True<font color=Cyan>,</font> locations <font color=Red>=</font> True-<a name="(line59)"></a> <font color=Cyan>,</font> pragma <font color=Red>=</font> False-<a name="(line60)"></a> <font color=Cyan>,</font> stripEol <font color=Red>=</font> False<font color=Cyan>,</font> stripC89 <font color=Red>=</font> False-<a name="(line61)"></a> <font color=Cyan>,</font> lang <font color=Red>=</font> True<font color=Cyan>,</font> ansi <font color=Red>=</font> False-<a name="(line62)"></a> <font color=Cyan>,</font> layout <font color=Red>=</font> False<font color=Cyan>,</font> literate <font color=Red>=</font> False-<a name="(line63)"></a> <font color=Cyan>,</font> warnings <font color=Red>=</font> True <font color=Cyan>}</font>-<a name="(line64)"></a>-<a name="(line65)"></a><a name="RawOption"></a><font color=Blue>-- | Raw command-line options. This is an internal intermediate data</font>-<a name="(line66)"></a><a name="RawOption"></a><font color=Blue>-- structure, used during option parsing only.</font>-<a name="(line67)"></a><a name="RawOption"></a><font color=Green><u>data</u></font> RawOption-<a name="(line68)"></a> <font color=Red>=</font> NoMacro-<a name="(line69)"></a> <font color=Red>|</font> NoLine-<a name="(line70)"></a> <font color=Red>|</font> Pragma-<a name="(line71)"></a> <font color=Red>|</font> Text-<a name="(line72)"></a> <font color=Red>|</font> Strip-<a name="(line73)"></a> <font color=Red>|</font> StripEol-<a name="(line74)"></a> <font color=Red>|</font> Ansi-<a name="(line75)"></a> <font color=Red>|</font> Layout-<a name="(line76)"></a> <font color=Red>|</font> Unlit-<a name="(line77)"></a> <font color=Red>|</font> SuppressWarnings-<a name="(line78)"></a> <font color=Red>|</font> Macro <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font>-<a name="(line79)"></a> <font color=Red>|</font> Path String-<a name="(line80)"></a> <font color=Red>|</font> PreInclude FilePath-<a name="(line81)"></a> <font color=Green><u>deriving</u></font> <font color=Cyan>(</font>Eq<font color=Cyan>,</font> Show<font color=Cyan>)</font>-<a name="(line82)"></a>-<a name="(line83)"></a><a name="flags"></a>flags <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>String<font color=Cyan>,</font> RawOption<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line84)"></a>flags <font color=Red>=</font> <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"--nomacro"</font><font color=Cyan>,</font> NoMacro<font color=Cyan>)</font>-<a name="(line85)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--noline"</font><font color=Cyan>,</font> NoLine<font color=Cyan>)</font>-<a name="(line86)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--pragma"</font><font color=Cyan>,</font> Pragma<font color=Cyan>)</font>-<a name="(line87)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--text"</font><font color=Cyan>,</font> Text<font color=Cyan>)</font>-<a name="(line88)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--strip"</font><font color=Cyan>,</font> Strip<font color=Cyan>)</font>-<a name="(line89)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--strip-eol"</font><font color=Cyan>,</font> StripEol<font color=Cyan>)</font>-<a name="(line90)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--hashes"</font><font color=Cyan>,</font> Ansi<font color=Cyan>)</font>-<a name="(line91)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--layout"</font><font color=Cyan>,</font> Layout<font color=Cyan>)</font>-<a name="(line92)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--unlit"</font><font color=Cyan>,</font> Unlit<font color=Cyan>)</font>-<a name="(line93)"></a> <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"--nowarn"</font><font color=Cyan>,</font> SuppressWarnings<font color=Cyan>)</font>-<a name="(line94)"></a> <font color=Red>]</font>-<a name="(line95)"></a>-<a name="(line96)"></a><a name="rawOption"></a><font color=Blue>-- | Parse a single raw command-line option. Parse failure is indicated by</font>-<a name="(line97)"></a><font color=Blue>-- result Nothing.</font>-<a name="(line98)"></a>rawOption <font color=Red>::</font> String <font color=Red>-></font> Maybe RawOption-<a name="(line99)"></a>rawOption x <font color=Red>|</font> isJust a <font color=Red>=</font> a-<a name="(line100)"></a> <font color=Green><u>where</u></font> a <font color=Red>=</font> lookup x flags-<a name="(line101)"></a>rawOption <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'D'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>$</font> Macro <font color=Cyan>(</font>s<font color=Cyan>,</font> <font color=Green><u>if</u></font> null d <font color=Green><u>then</u></font> <font color=Magenta>"1"</font> <font color=Green><u>else</u></font> tail d<font color=Cyan>)</font>-<a name="(line102)"></a> <font color=Green><u>where</u></font> <font color=Cyan>(</font>s<font color=Cyan>,</font>d<font color=Cyan>)</font> <font color=Red>=</font> break <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'='</font><font color=Cyan>)</font> xs-<a name="(line103)"></a>rawOption <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'I'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>$</font> Path <font color=Cyan>$</font> trailing <font color=Magenta>"/\\"</font> xs-<a name="(line104)"></a>rawOption xs <font color=Red>|</font> <font color=Magenta>"--include="</font><font color=Cyan>`isPrefixOf`</font>xs-<a name="(line105)"></a> <font color=Red>=</font> Just <font color=Cyan>$</font> PreInclude <font color=Cyan>(</font>drop <font color=Magenta>10</font> xs<font color=Cyan>)</font>-<a name="(line106)"></a>rawOption <font color=Green><u>_</u></font> <font color=Red>=</font> Nothing-<a name="(line107)"></a>-<a name="(line108)"></a><a name="trailing"></a>trailing <font color=Red>::</font> <font color=Cyan>(</font>Eq a<font color=Cyan>)</font> <font color=Red>=></font> <font color=Red>[</font>a<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font>a<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font>a<font color=Red>]</font>-<a name="(line109)"></a>trailing xs <font color=Red>=</font> reverse <font color=Cyan>.</font> dropWhile <font color=Cyan>(</font><font color=Cyan>`elem`</font>xs<font color=Cyan>)</font> <font color=Cyan>.</font> reverse-<a name="(line110)"></a>-<a name="(line111)"></a><a name="boolOpts"></a><font color=Blue>-- | Convert a list of RawOption to a BoolOptions structure.</font>-<a name="(line112)"></a>boolOpts <font color=Red>::</font> <font color=Red>[</font>RawOption<font color=Red>]</font> <font color=Red>-></font> BoolOptions-<a name="(line113)"></a>boolOpts opts <font color=Red>=</font>-<a name="(line114)"></a> BoolOptions-<a name="(line115)"></a> <font color=Cyan>{</font> macros <font color=Red>=</font> not <font color=Cyan>(</font>NoMacro <font color=Cyan>`elem`</font> opts<font color=Cyan>)</font>-<a name="(line116)"></a> <font color=Cyan>,</font> locations <font color=Red>=</font> not <font color=Cyan>(</font>NoLine <font color=Cyan>`elem`</font> opts<font color=Cyan>)</font>-<a name="(line117)"></a> <font color=Cyan>,</font> pragma <font color=Red>=</font> Pragma <font color=Cyan>`elem`</font> opts-<a name="(line118)"></a> <font color=Cyan>,</font> stripEol <font color=Red>=</font> StripEol<font color=Cyan>`elem`</font> opts-<a name="(line119)"></a> <font color=Cyan>,</font> stripC89 <font color=Red>=</font> StripEol<font color=Cyan>`elem`</font> opts <font color=Cyan>||</font> Strip <font color=Cyan>`elem`</font> opts-<a name="(line120)"></a> <font color=Cyan>,</font> lang <font color=Red>=</font> not <font color=Cyan>(</font>Text <font color=Cyan>`elem`</font> opts<font color=Cyan>)</font>-<a name="(line121)"></a> <font color=Cyan>,</font> ansi <font color=Red>=</font> Ansi <font color=Cyan>`elem`</font> opts-<a name="(line122)"></a> <font color=Cyan>,</font> layout <font color=Red>=</font> Layout <font color=Cyan>`elem`</font> opts-<a name="(line123)"></a> <font color=Cyan>,</font> literate <font color=Red>=</font> Unlit <font color=Cyan>`elem`</font> opts-<a name="(line124)"></a> <font color=Cyan>,</font> warnings <font color=Red>=</font> not <font color=Cyan>(</font>SuppressWarnings <font color=Cyan>`elem`</font> opts<font color=Cyan>)</font>-<a name="(line125)"></a> <font color=Cyan>}</font>-<a name="(line126)"></a>-<a name="(line127)"></a><a name="parseOptions"></a><font color=Blue>-- | Parse all command-line options.</font>-<a name="(line128)"></a>parseOptions <font color=Red>::</font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> Either String CpphsOptions-<a name="(line129)"></a>parseOptions xs <font color=Red>=</font> f <font color=Cyan>(</font>[]<font color=Cyan>,</font> []<font color=Cyan>,</font> []<font color=Cyan>)</font> xs-<a name="(line130)"></a> <font color=Green><u>where</u></font>-<a name="(line131)"></a> f <font color=Cyan>(</font>opts<font color=Cyan>,</font> ins<font color=Cyan>,</font> outs<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'O'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> f <font color=Cyan>(</font>opts<font color=Cyan>,</font> ins<font color=Cyan>,</font> x<font color=Red><b>:</b></font>outs<font color=Cyan>)</font> xs-<a name="(line132)"></a> f <font color=Cyan>(</font>opts<font color=Cyan>,</font> ins<font color=Cyan>,</font> outs<font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>case</u></font> rawOption x <font color=Green><u>of</u></font>-<a name="(line133)"></a> Nothing <font color=Red>-></font> Left x-<a name="(line134)"></a> Just a <font color=Red>-></font> f <font color=Cyan>(</font>a<font color=Red><b>:</b></font>opts<font color=Cyan>,</font> ins<font color=Cyan>,</font> outs<font color=Cyan>)</font> xs-<a name="(line135)"></a> f <font color=Cyan>(</font>opts<font color=Cyan>,</font> ins<font color=Cyan>,</font> outs<font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> f <font color=Cyan>(</font>opts<font color=Cyan>,</font> normalise x<font color=Red><b>:</b></font>ins<font color=Cyan>,</font> outs<font color=Cyan>)</font> xs-<a name="(line136)"></a> f <font color=Cyan>(</font>opts<font color=Cyan>,</font> ins<font color=Cyan>,</font> outs<font color=Cyan>)</font> [] <font color=Red>=</font>-<a name="(line137)"></a> Right CpphsOptions <font color=Cyan>{</font> infiles <font color=Red>=</font> reverse ins-<a name="(line138)"></a> <font color=Cyan>,</font> outfiles <font color=Red>=</font> reverse outs-<a name="(line139)"></a> <font color=Cyan>,</font> defines <font color=Red>=</font> <font color=Red>[</font> x <font color=Red>|</font> Macro x <font color=Red><-</font> reverse opts <font color=Red>]</font>-<a name="(line140)"></a> <font color=Cyan>,</font> includes <font color=Red>=</font> <font color=Red>[</font> x <font color=Red>|</font> Path x <font color=Red><-</font> reverse opts <font color=Red>]</font>-<a name="(line141)"></a> <font color=Cyan>,</font> preInclude<font color=Red>=</font><font color=Red>[</font> x <font color=Red>|</font> PreInclude x <font color=Red><-</font> reverse opts <font color=Red>]</font>-<a name="(line142)"></a> <font color=Cyan>,</font> boolopts <font color=Red>=</font> boolOpts opts-<a name="(line143)"></a> <font color=Cyan>}</font>-<a name="(line144)"></a> normalise <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>filepath<font color=Cyan>)</font> <font color=Red>=</font> normalise <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>filepath<font color=Cyan>)</font>-<a name="(line145)"></a> normalise <font color=Cyan>(</font>x<font color=Red><b>:</b></font>filepath<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font>normalise filepath-<a name="(line146)"></a> normalise [] <font color=Red>=</font> []-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/Position.html
@@ -1,84 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : Position</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2000-2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>--</font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- Simple file position information, with recursive inclusion points.</font>-<a name="(line12)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line13)"></a>-<a name="(line14)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Position-<a name="(line15)"></a> <font color=Cyan>(</font> Posn<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line16)"></a> <font color=Cyan>,</font> newfile-<a name="(line17)"></a> <font color=Cyan>,</font> addcol<font color=Cyan>,</font> newline<font color=Cyan>,</font> tab<font color=Cyan>,</font> newlines<font color=Cyan>,</font> newpos-<a name="(line18)"></a> <font color=Cyan>,</font> cppline-<a name="(line19)"></a> <font color=Cyan>,</font> filename<font color=Cyan>,</font> lineno<font color=Cyan>,</font> directory-<a name="(line20)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line21)"></a>-<a name="(line22)"></a><a name="Posn"></a><font color=Blue>-- | Source positions contain a filename, line, column, and an</font>-<a name="(line23)"></a><a name="Posn"></a><font color=Blue>-- inclusion point, which is itself another source position,</font>-<a name="(line24)"></a><a name="Posn"></a><font color=Blue>-- recursively.</font>-<a name="(line25)"></a><a name="Posn"></a><font color=Green><u>data</u></font> Posn <font color=Red>=</font> Pn String <font color=Cyan>!</font>Int <font color=Cyan>!</font>Int <font color=Cyan>(</font>Maybe Posn<font color=Cyan>)</font>-<a name="(line26)"></a> <font color=Green><u>deriving</u></font> <font color=Cyan>(</font>Eq<font color=Cyan>)</font>-<a name="(line27)"></a>-<a name="(line28)"></a><font color=Green><u>instance</u></font> Show Posn <font color=Green><u>where</u></font>-<a name="(line29)"></a> showsPrec <font color=Green><u>_</u></font> <font color=Cyan>(</font>Pn f l c i<font color=Cyan>)</font> <font color=Red>=</font> showString f <font color=Cyan>.</font>-<a name="(line30)"></a> showString <font color=Magenta>" at line "</font> <font color=Cyan>.</font> shows l <font color=Cyan>.</font>-<a name="(line31)"></a> showString <font color=Magenta>" col "</font> <font color=Cyan>.</font> shows c <font color=Cyan>.</font>-<a name="(line32)"></a> <font color=Cyan>(</font> <font color=Green><u>case</u></font> i <font color=Green><u>of</u></font>-<a name="(line33)"></a> Nothing <font color=Red>-></font> id-<a name="(line34)"></a> Just p <font color=Red>-></font> showString <font color=Magenta>"\n used by "</font> <font color=Cyan>.</font>-<a name="(line35)"></a> shows p <font color=Cyan>)</font>-<a name="(line36)"></a>-<a name="(line37)"></a><a name="newfile"></a><font color=Blue>-- | Constructor</font>-<a name="(line38)"></a>newfile <font color=Red>::</font> String <font color=Red>-></font> Posn-<a name="(line39)"></a>newfile name <font color=Red>=</font> Pn name <font color=Magenta>1</font> <font color=Magenta>1</font> Nothing-<a name="(line40)"></a>-<a name="(line41)"></a><a name="addcol"></a><font color=Blue>-- | Updates</font>-<a name="(line42)"></a>addcol <font color=Red>::</font> Int <font color=Red>-></font> Posn <font color=Red>-></font> Posn-<a name="(line43)"></a>addcol n <font color=Cyan>(</font>Pn f r c i<font color=Cyan>)</font> <font color=Red>=</font> Pn f r <font color=Cyan>(</font>c<font color=Cyan>+</font>n<font color=Cyan>)</font> i-<a name="(line44)"></a>-<a name="(line45)"></a><a name="newline"></a>newline<font color=Cyan>,</font> tab <font color=Red>::</font> Posn <font color=Red>-></font> Posn-<a name="(line46)"></a><font color=Blue>--newline (Pn f r _ i) = Pn f (r+1) 1 i</font>-<a name="(line47)"></a>newline <font color=Cyan>(</font>Pn f r <font color=Green><u>_</u></font> i<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>let</u></font> r' <font color=Red>=</font> r<font color=Cyan>+</font><font color=Magenta>1</font> <font color=Green><u>in</u></font> r' <font color=Cyan>`seq`</font> Pn f r' <font color=Magenta>1</font> i-<a name="(line48)"></a><a name="tab"></a>tab <font color=Cyan>(</font>Pn f r c i<font color=Cyan>)</font> <font color=Red>=</font> Pn f r <font color=Cyan>(</font><font color=Cyan>(</font><font color=Cyan>(</font>c<font color=Cyan>`div`</font><font color=Magenta>8</font><font color=Cyan>)</font><font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font><font color=Cyan>*</font><font color=Magenta>8</font><font color=Cyan>)</font> i-<a name="(line49)"></a>-<a name="(line50)"></a><a name="newlines"></a>newlines <font color=Red>::</font> Int <font color=Red>-></font> Posn <font color=Red>-></font> Posn-<a name="(line51)"></a>newlines n <font color=Cyan>(</font>Pn f r <font color=Green><u>_</u></font> i<font color=Cyan>)</font> <font color=Red>=</font> Pn f <font color=Cyan>(</font>r<font color=Cyan>+</font>n<font color=Cyan>)</font> <font color=Magenta>1</font> i-<a name="(line52)"></a>-<a name="(line53)"></a><a name="newpos"></a>newpos <font color=Red>::</font> Int <font color=Red>-></font> Maybe String <font color=Red>-></font> Posn <font color=Red>-></font> Posn-<a name="(line54)"></a>newpos r Nothing <font color=Cyan>(</font>Pn f <font color=Green><u>_</u></font> c i<font color=Cyan>)</font> <font color=Red>=</font> Pn f r c i-<a name="(line55)"></a>newpos r <font color=Cyan>(</font>Just <font color=Cyan>(</font><font color=Magenta>'"'</font><font color=Red><b>:</b></font>f<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>(</font>Pn <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> c i<font color=Cyan>)</font> <font color=Red>=</font> Pn <font color=Cyan>(</font>init f<font color=Cyan>)</font> r c i-<a name="(line56)"></a>newpos r <font color=Cyan>(</font>Just f<font color=Cyan>)</font> <font color=Cyan>(</font>Pn <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> c i<font color=Cyan>)</font> <font color=Red>=</font> Pn f r c i-<a name="(line57)"></a>-<a name="(line58)"></a><font color=Blue>-- | Projections</font>-<a name="(line59)"></a>-<a name="(line60)"></a><a name="lineno"></a>lineno <font color=Red>::</font> Posn <font color=Red>-></font> Int-<a name="(line61)"></a><a name="filename"></a>filename <font color=Red>::</font> Posn <font color=Red>-></font> String-<a name="(line62)"></a><a name="directory"></a>directory <font color=Red>::</font> Posn <font color=Red>-></font> FilePath-<a name="(line63)"></a>-<a name="(line64)"></a>lineno <font color=Cyan>(</font>Pn <font color=Green><u>_</u></font> r <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> r-<a name="(line65)"></a>filename <font color=Cyan>(</font>Pn f <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> f-<a name="(line66)"></a>directory <font color=Cyan>(</font>Pn f <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> dirname f-<a name="(line67)"></a>-<a name="(line68)"></a>-<a name="(line69)"></a><a name="cppline"></a><font color=Blue>-- | cpp-style printing</font>-<a name="(line70)"></a>cppline <font color=Red>::</font> Posn <font color=Red>-></font> String-<a name="(line71)"></a>cppline <font color=Cyan>(</font>Pn f r <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"#line "</font><font color=Cyan>++</font>show r<font color=Cyan>++</font><font color=Magenta>" "</font><font color=Cyan>++</font>show f-<a name="(line72)"></a>-<a name="(line73)"></a> -<a name="(line74)"></a><a name="dirname"></a><font color=Blue>-- | Strip non-directory suffix from file name (analogous to the shell</font>-<a name="(line75)"></a><font color=Blue>-- command of the same name).</font>-<a name="(line76)"></a>dirname <font color=Red>::</font> String <font color=Red>-></font> String-<a name="(line77)"></a>dirname <font color=Red>=</font> reverse <font color=Cyan>.</font> safetail <font color=Cyan>.</font> dropWhile <font color=Cyan>(</font>not<font color=Cyan>.</font><font color=Cyan>(</font><font color=Cyan>`elem`</font><font color=Magenta>"\\/"</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>.</font> reverse-<a name="(line78)"></a> <font color=Green><u>where</u></font> safetail [] <font color=Red>=</font> []-<a name="(line79)"></a> safetail <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>x<font color=Cyan>)</font> <font color=Red>=</font> x-<a name="(line80)"></a>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/ReadFirst.html
@@ -1,57 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : ReadFirst</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>-- </font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- Read the first file that matches in a list of search paths.</font>-<a name="(line12)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line13)"></a>-<a name="(line14)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>ReadFirst-<a name="(line15)"></a> <font color=Cyan>(</font> readFirst-<a name="(line16)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line17)"></a>-<a name="(line18)"></a><font color=Green><u>import</u></font> IO <font color=Cyan>(</font>hPutStrLn<font color=Cyan>,</font> stderr<font color=Cyan>)</font>-<a name="(line19)"></a><font color=Green><u>import</u></font> Directory <font color=Cyan>(</font>doesFileExist<font color=Cyan>)</font>-<a name="(line20)"></a><font color=Green><u>import</u></font> List <font color=Cyan>(</font>intersperse<font color=Cyan>)</font>-<a name="(line21)"></a><font color=Green><u>import</u></font> Monad <font color=Cyan>(</font>when<font color=Cyan>)</font>-<a name="(line22)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Position <font color=Cyan>(</font>Posn<font color=Cyan>,</font>directory<font color=Cyan>)</font>-<a name="(line23)"></a>-<a name="(line24)"></a><a name="readFirst"></a><font color=Blue>-- | Attempt to read the given file from any location within the search path.</font>-<a name="(line25)"></a><font color=Blue>-- The first location found is returned, together with the file content.</font>-<a name="(line26)"></a><font color=Blue>-- (The directory of the calling file is always searched first, then</font>-<a name="(line27)"></a><font color=Blue>-- the current directory, finally any specified search path.)</font>-<a name="(line28)"></a>readFirst <font color=Red>::</font> String <font color=Blue>-- ^ filename</font>-<a name="(line29)"></a> <font color=Red>-></font> Posn <font color=Blue>-- ^ inclusion point</font>-<a name="(line30)"></a> <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Blue>-- ^ search path</font>-<a name="(line31)"></a> <font color=Red>-></font> Bool <font color=Blue>-- ^ report warnings?</font>-<a name="(line32)"></a> <font color=Red>-></font> IO <font color=Cyan>(</font> FilePath-<a name="(line33)"></a> <font color=Cyan>,</font> String-<a name="(line34)"></a> <font color=Cyan>)</font> <font color=Blue>-- ^ discovered filepath, and file contents</font>-<a name="(line35)"></a>-<a name="(line36)"></a>readFirst name demand path warn <font color=Red>=</font>-<a name="(line37)"></a> try <font color=Cyan>(</font>cons dd <font color=Cyan>(</font><font color=Magenta>"."</font><font color=Red><b>:</b></font>path<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line38)"></a> <font color=Green><u>where</u></font>-<a name="(line39)"></a> dd <font color=Red>=</font> directory demand-<a name="(line40)"></a> cons x xs <font color=Red>=</font> <font color=Green><u>if</u></font> null x <font color=Green><u>then</u></font> xs <font color=Green><u>else</u></font> x<font color=Red><b>:</b></font>xs-<a name="(line41)"></a> try [] <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line42)"></a> when warn <font color=Cyan>$</font>-<a name="(line43)"></a> hPutStrLn stderr <font color=Cyan>(</font><font color=Magenta>"Warning: Can't find file \""</font><font color=Cyan>++</font>name-<a name="(line44)"></a> <font color=Cyan>++</font><font color=Magenta>"\" in directories\n\t"</font>-<a name="(line45)"></a> <font color=Cyan>++</font>concat <font color=Cyan>(</font>intersperse <font color=Magenta>"\n\t"</font> <font color=Cyan>(</font>cons dd <font color=Cyan>(</font><font color=Magenta>"."</font><font color=Red><b>:</b></font>path<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line46)"></a> <font color=Cyan>++</font><font color=Magenta>"\n Asked for by: "</font><font color=Cyan>++</font>show demand<font color=Cyan>)</font>-<a name="(line47)"></a> return <font color=Cyan>(</font><font color=Magenta>"missing file: "</font><font color=Cyan>++</font>name<font color=Cyan>,</font><font color=Magenta>""</font><font color=Cyan>)</font>-<a name="(line48)"></a> try <font color=Cyan>(</font>p<font color=Red><b>:</b></font>ps<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line49)"></a> <font color=Green><u>let</u></font> file <font color=Red>=</font> p<font color=Cyan>++</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>name-<a name="(line50)"></a> ok <font color=Red><-</font> doesFileExist file-<a name="(line51)"></a> <font color=Green><u>if</u></font> not ok <font color=Green><u>then</u></font> try ps-<a name="(line52)"></a> <font color=Green><u>else</u></font> <font color=Green><u>do</u></font> content <font color=Red><-</font> readFile file-<a name="(line53)"></a> return <font color=Cyan>(</font>file<font color=Cyan>,</font>content<font color=Cyan>)</font>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/RunCpphs.html
@@ -1,32 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>{--<a name="(line2)"></a>-- The main program for cpphs, a simple C pre-processor written in Haskell.-<a name="(line3)"></a>-<a name="(line4)"></a>-- Copyright (c) 2004 Malcolm Wallace-<a name="(line5)"></a>-- This file is GPL, although the libraries it uses are either standard-<a name="(line6)"></a>-- Haskell'98 or distributed under the LGPL.-<a name="(line7)"></a>-}</font>-<a name="(line8)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>RunCpphs <font color=Cyan>(</font> runCpphs <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line9)"></a>-<a name="(line10)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>CppIfdef <font color=Cyan>(</font>cppIfdef<font color=Cyan>)</font>-<a name="(line11)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>MacroPass<font color=Cyan>(</font>macroPass<font color=Cyan>)</font>-<a name="(line12)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Options <font color=Cyan>(</font>CpphsOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> BoolOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line13)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Unlit <font color=Green><u>as</u></font> Unlit <font color=Cyan>(</font>unlit<font color=Cyan>)</font>-<a name="(line14)"></a>-<a name="(line15)"></a>-<a name="(line16)"></a><a name="runCpphs"></a>runCpphs <font color=Red>::</font> CpphsOptions <font color=Red>-></font> FilePath <font color=Red>-></font> String <font color=Red>-></font> String-<a name="(line17)"></a>runCpphs options filename input <font color=Red>=</font>-<a name="(line18)"></a> <font color=Green><u>let</u></font> bools <font color=Red>=</font> boolopts options-<a name="(line19)"></a> preInc <font color=Red>=</font> concatMap <font color=Cyan>(</font><font color=Red>\</font>f<font color=Red>-></font><font color=Magenta>"#include \""</font><font color=Cyan>++</font>f<font color=Cyan>++</font><font color=Magenta>"\"\n"</font><font color=Cyan>)</font> <font color=Cyan>(</font>preInclude options<font color=Cyan>)</font>-<a name="(line20)"></a><font color=Blue>-- ++ "#line 1\n"</font>-<a name="(line21)"></a>-<a name="(line22)"></a> pass1 <font color=Red>=</font> cppIfdef filename <font color=Cyan>(</font>defines options<font color=Cyan>)</font> <font color=Cyan>(</font>includes options<font color=Cyan>)</font> bools-<a name="(line23)"></a> <font color=Cyan>(</font>preInc<font color=Cyan>++</font>input<font color=Cyan>)</font>-<a name="(line24)"></a> pass2 <font color=Red>=</font> macroPass <font color=Cyan>(</font>defines options<font color=Cyan>)</font> bools pass1-<a name="(line25)"></a> result<font color=Red>=</font> <font color=Green><u>if</u></font> not <font color=Cyan>(</font>macros bools<font color=Cyan>)</font> <font color=Green><u>then</u></font> unlines <font color=Cyan>(</font>map snd pass1<font color=Cyan>)</font> <font color=Green><u>else</u></font> pass2-<a name="(line26)"></a> pass3 <font color=Red>=</font> <font color=Green><u>if</u></font> literate bools <font color=Green><u>then</u></font> Unlit<font color=Cyan>.</font>unlit filename <font color=Green><u>else</u></font> id-<a name="(line27)"></a>-<a name="(line28)"></a> <font color=Green><u>in</u></font> pass3 result-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/SymTab.html
@@ -1,90 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : SymTab</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2000-2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>-- </font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : Stable</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- Symbol Table, based on index trees using a hash on the key.</font>-<a name="(line12)"></a><font color=Blue>-- Keys are always Strings. Stored values can be any type.</font>-<a name="(line13)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line14)"></a>-<a name="(line15)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>SymTab-<a name="(line16)"></a> <font color=Cyan>(</font> SymTab-<a name="(line17)"></a> <font color=Cyan>,</font> emptyST-<a name="(line18)"></a> <font color=Cyan>,</font> insertST-<a name="(line19)"></a> <font color=Cyan>,</font> deleteST-<a name="(line20)"></a> <font color=Cyan>,</font> lookupST-<a name="(line21)"></a> <font color=Cyan>,</font> definedST-<a name="(line22)"></a> <font color=Cyan>,</font> IndTree-<a name="(line23)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line24)"></a>-<a name="(line25)"></a><a name="SymTab"></a><font color=Blue>-- | Symbol Table. Stored values are polymorphic, but the keys are</font>-<a name="(line26)"></a><a name="SymTab"></a><font color=Blue>-- always strings.</font>-<a name="(line27)"></a><a name="SymTab"></a><font color=Green><u>type</u></font> SymTab v <font color=Red>=</font> IndTree <font color=Red>[</font><font color=Cyan>(</font>String<font color=Cyan>,</font>v<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line28)"></a>-<a name="(line29)"></a><a name="emptyST"></a>emptyST <font color=Red>::</font> SymTab v-<a name="(line30)"></a><a name="insertST"></a>insertST <font color=Red>::</font> <font color=Cyan>(</font>String<font color=Cyan>,</font>v<font color=Cyan>)</font> <font color=Red>-></font> SymTab v <font color=Red>-></font> SymTab v-<a name="(line31)"></a><a name="deleteST"></a>deleteST <font color=Red>::</font> String <font color=Red>-></font> SymTab v <font color=Red>-></font> SymTab v-<a name="(line32)"></a><a name="lookupST"></a>lookupST <font color=Red>::</font> String <font color=Red>-></font> SymTab v <font color=Red>-></font> Maybe v-<a name="(line33)"></a><a name="definedST"></a>definedST <font color=Red>::</font> String <font color=Red>-></font> SymTab v <font color=Red>-></font> Bool-<a name="(line34)"></a>-<a name="(line35)"></a>emptyST <font color=Red>=</font> itgen maxHash []-<a name="(line36)"></a>insertST <font color=Cyan>(</font>s<font color=Cyan>,</font>v<font color=Cyan>)</font> ss <font color=Red>=</font> itiap <font color=Cyan>(</font>hash s<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Cyan>(</font>s<font color=Cyan>,</font>v<font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Cyan>)</font> ss id-<a name="(line37)"></a>deleteST s ss <font color=Red>=</font> itiap <font color=Cyan>(</font>hash s<font color=Cyan>)</font> <font color=Cyan>(</font>filter <font color=Cyan>(</font><font color=Cyan>(</font><font color=Cyan>/=</font>s<font color=Cyan>)</font><font color=Cyan>.</font>fst<font color=Cyan>)</font><font color=Cyan>)</font> ss id-<a name="(line38)"></a>lookupST s ss <font color=Red>=</font> <font color=Green><u>let</u></font> vs <font color=Red>=</font> filter <font color=Cyan>(</font><font color=Cyan>(</font><font color=Cyan>==</font>s<font color=Cyan>)</font><font color=Cyan>.</font>fst<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Cyan>(</font>itind <font color=Cyan>(</font>hash s<font color=Cyan>)</font><font color=Cyan>)</font> ss<font color=Cyan>)</font>-<a name="(line39)"></a> <font color=Green><u>in</u></font> <font color=Green><u>if</u></font> null vs <font color=Green><u>then</u></font> Nothing-<a name="(line40)"></a> <font color=Green><u>else</u></font> <font color=Cyan>(</font>Just <font color=Cyan>.</font> snd <font color=Cyan>.</font> head<font color=Cyan>)</font> vs-<a name="(line41)"></a>definedST s ss <font color=Red>=</font> <font color=Green><u>let</u></font> vs <font color=Red>=</font> filter <font color=Cyan>(</font><font color=Cyan>(</font><font color=Cyan>==</font>s<font color=Cyan>)</font><font color=Cyan>.</font>fst<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Cyan>(</font>itind <font color=Cyan>(</font>hash s<font color=Cyan>)</font><font color=Cyan>)</font> ss<font color=Cyan>)</font>-<a name="(line42)"></a> <font color=Green><u>in</u></font> <font color=Cyan>(</font>not <font color=Cyan>.</font> null<font color=Cyan>)</font> vs-<a name="(line43)"></a>-<a name="(line44)"></a>-<a name="(line45)"></a><font color=Blue>----</font>-<a name="(line46)"></a><font color=Blue>-- | Index Trees (storing indexes at nodes).</font>-<a name="(line47)"></a>-<a name="(line48)"></a><a name="IndTree"></a><font color=Green><u>data</u></font> IndTree t <font color=Red>=</font> Leaf t <font color=Red>|</font> Fork Int <font color=Cyan>(</font>IndTree t<font color=Cyan>)</font> <font color=Cyan>(</font>IndTree t<font color=Cyan>)</font>-<a name="(line49)"></a> <font color=Green><u>deriving</u></font> Show-<a name="(line50)"></a>-<a name="(line51)"></a><a name="itgen"></a>itgen <font color=Red>::</font> Int <font color=Red>-></font> a <font color=Red>-></font> IndTree a-<a name="(line52)"></a>itgen <font color=Magenta>1</font> x <font color=Red>=</font> Leaf x-<a name="(line53)"></a>itgen n x <font color=Red>=</font>-<a name="(line54)"></a> <font color=Green><u>let</u></font> n' <font color=Red>=</font> n <font color=Cyan>`div`</font> <font color=Magenta>2</font>-<a name="(line55)"></a> <font color=Green><u>in</u></font> Fork n' <font color=Cyan>(</font>itgen n' x<font color=Cyan>)</font> <font color=Cyan>(</font>itgen <font color=Cyan>(</font>n<font color=Blue>-</font>n'<font color=Cyan>)</font> x<font color=Cyan>)</font>-<a name="(line56)"></a>-<a name="(line57)"></a><a name="itiap"></a>itiap <font color=Red>::</font> <font color=Blue>--Eval a =></font>-<a name="(line58)"></a> Int <font color=Red>-></font> <font color=Cyan>(</font>a<font color=Red>-></font>a<font color=Cyan>)</font> <font color=Red>-></font> IndTree a <font color=Red>-></font> <font color=Cyan>(</font>IndTree a <font color=Red>-></font> b<font color=Cyan>)</font> <font color=Red>-></font> b-<a name="(line59)"></a>itiap <font color=Green><u>_</u></font> f <font color=Cyan>(</font>Leaf x<font color=Cyan>)</font> k <font color=Red>=</font> <font color=Green><u>let</u></font> fx <font color=Red>=</font> f x <font color=Green><u>in</u></font> <font color=Blue>{-seq fx-}</font> <font color=Cyan>(</font>k <font color=Cyan>(</font>Leaf fx<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line60)"></a>itiap i f <font color=Cyan>(</font>Fork n lt rt<font color=Cyan>)</font> k <font color=Red>=</font>-<a name="(line61)"></a> <font color=Green><u>if</u></font> i<font color=Cyan><</font>n <font color=Green><u>then</u></font>-<a name="(line62)"></a> itiap i f lt <font color=Cyan>$</font> <font color=Red>\</font>lt' <font color=Red>-></font> k <font color=Cyan>(</font>Fork n lt' rt<font color=Cyan>)</font>-<a name="(line63)"></a> <font color=Green><u>else</u></font> itiap <font color=Cyan>(</font>i<font color=Blue>-</font>n<font color=Cyan>)</font> f rt <font color=Cyan>$</font> <font color=Red>\</font>rt' <font color=Red>-></font> k <font color=Cyan>(</font>Fork n lt rt'<font color=Cyan>)</font>-<a name="(line64)"></a>-<a name="(line65)"></a><a name="itind"></a>itind <font color=Red>::</font> Int <font color=Red>-></font> IndTree a <font color=Red>-></font> a -<a name="(line66)"></a>itind <font color=Green><u>_</u></font> <font color=Cyan>(</font>Leaf x<font color=Cyan>)</font> <font color=Red>=</font> x-<a name="(line67)"></a>itind i <font color=Cyan>(</font>Fork n lt rt<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>if</u></font> i<font color=Cyan><</font>n <font color=Green><u>then</u></font> itind i lt <font color=Green><u>else</u></font> itind <font color=Cyan>(</font>i<font color=Blue>-</font>n<font color=Cyan>)</font> rt-<a name="(line68)"></a>-<a name="(line69)"></a>-<a name="(line70)"></a><font color=Blue>----</font>-<a name="(line71)"></a><font color=Blue>-- Hash values</font>-<a name="(line72)"></a>-<a name="(line73)"></a><a name="maxHash"></a>maxHash <font color=Red>::</font> Int <font color=Blue>-- should be prime</font>-<a name="(line74)"></a>maxHash <font color=Red>=</font> <font color=Magenta>101</font>-<a name="(line75)"></a>-<a name="(line76)"></a><a name="Hashable"></a><font color=Green><u>class</u></font> Hashable a <font color=Green><u>where</u></font>-<a name="(line77)"></a> hashWithMax <font color=Red>::</font> Int <font color=Red>-></font> a <font color=Red>-></font> Int-<a name="(line78)"></a> hash <font color=Red>::</font> a <font color=Red>-></font> Int-<a name="(line79)"></a> hash <font color=Red>=</font> hashWithMax maxHash-<a name="(line80)"></a>-<a name="(line81)"></a><font color=Green><u>instance</u></font> Enum a <font color=Red>=></font> Hashable <font color=Red>[</font>a<font color=Red>]</font> <font color=Green><u>where</u></font>-<a name="(line82)"></a> hashWithMax m <font color=Red>=</font> h <font color=Magenta>0</font>-<a name="(line83)"></a> <font color=Green><u>where</u></font> h a [] <font color=Red>=</font> a-<a name="(line84)"></a> h a <font color=Cyan>(</font>c<font color=Red><b>:</b></font>cs<font color=Cyan>)</font> <font color=Red>=</font> h <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>17</font><font color=Cyan>*</font><font color=Cyan>(</font>fromEnum c<font color=Cyan>)</font><font color=Cyan>+</font><font color=Magenta>19</font><font color=Cyan>*</font>a<font color=Cyan>)</font><font color=Cyan>`rem`</font>m<font color=Cyan>)</font> cs-<a name="(line85)"></a>-<a name="(line86)"></a><font color=Blue>----</font>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Cpphs/Tokenise.html
@@ -1,275 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : Tokenise</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : 2004 Malcolm Wallace</font>-<a name="(line5)"></a><font color=Blue>-- Licence : LGPL</font>-<a name="(line6)"></a><font color=Blue>--</font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : experimental</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- The purpose of this module is to lex a source file (language</font>-<a name="(line12)"></a><font color=Blue>-- unspecified) into tokens such that cpp can recognise a replaceable</font>-<a name="(line13)"></a><font color=Blue>-- symbol or macro-use, and do the right thing.</font>-<a name="(line14)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line15)"></a>-<a name="(line16)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Tokenise-<a name="(line17)"></a> <font color=Cyan>(</font> linesCpp-<a name="(line18)"></a> <font color=Cyan>,</font> reslash-<a name="(line19)"></a> <font color=Cyan>,</font> tokenise-<a name="(line20)"></a> <font color=Cyan>,</font> WordStyle<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="(line21)"></a> <font color=Cyan>,</font> deWordStyle-<a name="(line22)"></a> <font color=Cyan>,</font> parseMacroCall-<a name="(line23)"></a> <font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line24)"></a>-<a name="(line25)"></a><font color=Green><u>import</u></font> Char-<a name="(line26)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>HashDefine-<a name="(line27)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs<font color=Cyan>.</font>Position-<a name="(line28)"></a>-<a name="(line29)"></a><a name="Mode"></a><font color=Blue>-- | A Mode value describes whether to tokenise a la Haskell, or a la Cpp.</font>-<a name="(line30)"></a><a name="Mode"></a><font color=Blue>-- The main difference is that in Cpp mode we should recognise line</font>-<a name="(line31)"></a><a name="Mode"></a><font color=Blue>-- continuation characters.</font>-<a name="(line32)"></a><a name="Mode"></a><font color=Green><u>data</u></font> Mode <font color=Red>=</font> Haskell <font color=Red>|</font> Cpp-<a name="(line33)"></a>-<a name="(line34)"></a><a name="linesCpp"></a><font color=Blue>-- | linesCpp is, broadly speaking, Prelude.lines, except that</font>-<a name="(line35)"></a><font color=Blue>-- on a line beginning with a \#, line continuation characters are</font>-<a name="(line36)"></a><font color=Blue>-- recognised. In a line continuation, the newline character is</font>-<a name="(line37)"></a><font color=Blue>-- preserved, but the backslash is not.</font>-<a name="(line38)"></a>linesCpp <font color=Red>::</font> String <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="(line39)"></a>linesCpp [] <font color=Red>=</font> []-<a name="(line40)"></a>linesCpp <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> x<font color=Cyan>==</font><font color=Magenta>'#'</font> <font color=Red>=</font> tok Cpp <font color=Red>[</font><font color=Magenta>'#'</font><font color=Red>]</font> xs-<a name="(line41)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> tok Haskell [] <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line42)"></a> <font color=Green><u>where</u></font>-<a name="(line43)"></a> tok Cpp acc <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>ys<font color=Cyan>)</font> <font color=Red>=</font> tok Cpp <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font> ys-<a name="(line44)"></a> tok <font color=Green><u>_</u></font> acc <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Magenta>'#'</font><font color=Red><b>:</b></font>ys<font color=Cyan>)</font> <font color=Red>=</font> reverse acc<font color=Red><b>:</b></font> tok Cpp <font color=Red>[</font><font color=Magenta>'#'</font><font color=Red>]</font> ys-<a name="(line45)"></a> tok <font color=Green><u>_</u></font> acc <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>ys<font color=Cyan>)</font> <font color=Red>=</font> reverse acc<font color=Red><b>:</b></font> tok Haskell [] ys-<a name="(line46)"></a> tok <font color=Green><u>_</u></font> acc [] <font color=Red>=</font> reverse acc<font color=Red><b>:</b></font> []-<a name="(line47)"></a> tok mode acc <font color=Cyan>(</font>y<font color=Red><b>:</b></font>ys<font color=Cyan>)</font> <font color=Red>=</font> tok mode <font color=Cyan>(</font>y<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> ys-<a name="(line48)"></a>-<a name="(line49)"></a><a name="reslash"></a><font color=Blue>-- | Put back the line-continuation characters.</font>-<a name="(line50)"></a>reslash <font color=Red>::</font> String <font color=Red>-></font> String-<a name="(line51)"></a>reslash <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'\\'</font><font color=Red><b>:</b></font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>reslash xs-<a name="(line52)"></a>reslash <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> reslash xs-<a name="(line53)"></a>reslash [] <font color=Red>=</font> []-<a name="(line54)"></a>-<a name="(line55)"></a><a name="SubMode"></a><font color=Blue>----</font>-<a name="(line56)"></a><a name="SubMode"></a><font color=Blue>-- | Submodes are required to deal correctly with nesting of lexical</font>-<a name="(line57)"></a><a name="SubMode"></a><font color=Blue>-- structures.</font>-<a name="(line58)"></a><a name="SubMode"></a><font color=Green><u>data</u></font> SubMode <font color=Red>=</font> Any <font color=Red>|</font> Pred <font color=Cyan>(</font>Char<font color=Red>-></font>Bool<font color=Cyan>)</font> <font color=Cyan>(</font>Posn<font color=Red>-></font>String<font color=Red>-></font>WordStyle<font color=Cyan>)</font>-<a name="(line59)"></a> <font color=Red>|</font> String Char <font color=Red>|</font> LineComment <font color=Red>|</font> NestComment Int-<a name="(line60)"></a> <font color=Red>|</font> CComment <font color=Red>|</font> CLineComment-<a name="(line61)"></a>-<a name="(line62)"></a><a name="WordStyle"></a><font color=Blue>-- | Each token is classified as one of Ident, Other, or Cmd:</font>-<a name="(line63)"></a><a name="WordStyle"></a><font color=Blue>-- * Ident is a word that could potentially match a macro name.</font>-<a name="(line64)"></a><a name="WordStyle"></a><font color=Blue>-- * Cmd is a complete cpp directive (\#define etc).</font>-<a name="(line65)"></a><a name="WordStyle"></a><font color=Blue>-- * Other is anything else.</font>-<a name="(line66)"></a><a name="WordStyle"></a><font color=Green><u>data</u></font> WordStyle <font color=Red>=</font> Ident Posn String <font color=Red>|</font> Other String <font color=Red>|</font> Cmd <font color=Cyan>(</font>Maybe HashDefine<font color=Cyan>)</font>-<a name="(line67)"></a> <font color=Green><u>deriving</u></font> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font>-<a name="(line68)"></a><a name="other"></a>other <font color=Red>::</font> Posn <font color=Red>-></font> String <font color=Red>-></font> WordStyle-<a name="(line69)"></a>other <font color=Green><u>_</u></font> s <font color=Red>=</font> Other s-<a name="(line70)"></a>-<a name="(line71)"></a><a name="deWordStyle"></a>deWordStyle <font color=Red>::</font> WordStyle <font color=Red>-></font> String-<a name="(line72)"></a>deWordStyle <font color=Cyan>(</font>Ident <font color=Green><u>_</u></font> i<font color=Cyan>)</font> <font color=Red>=</font> i-<a name="(line73)"></a>deWordStyle <font color=Cyan>(</font>Other i<font color=Cyan>)</font> <font color=Red>=</font> i-<a name="(line74)"></a>deWordStyle <font color=Cyan>(</font>Cmd <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\n"</font>-<a name="(line75)"></a>-<a name="(line76)"></a><a name="tokenise"></a><font color=Blue>-- | tokenise is, broadly-speaking, Prelude.words, except that:</font>-<a name="(line77)"></a><font color=Blue>-- * the input is already divided into lines</font>-<a name="(line78)"></a><font color=Blue>-- * each word-like "token" is categorised as one of {Ident,Other,Cmd}</font>-<a name="(line79)"></a><font color=Blue>-- * \#define's are parsed and returned out-of-band using the Cmd variant</font>-<a name="(line80)"></a><font color=Blue>-- * All whitespace is preserved intact as tokens.</font>-<a name="(line81)"></a><font color=Blue>-- * C-comments are converted to white-space (depending on first param)</font>-<a name="(line82)"></a><font color=Blue>-- * Parens and commas are tokens in their own right.</font>-<a name="(line83)"></a><font color=Blue>-- * Any cpp line continuations are respected.</font>-<a name="(line84)"></a><font color=Blue>-- No errors can be raised.</font>-<a name="(line85)"></a><font color=Blue>-- The inverse of tokenise is (concatMap deWordStyle).</font>-<a name="(line86)"></a>tokenise <font color=Red>::</font> Bool <font color=Red>-></font> Bool <font color=Red>-></font> Bool <font color=Red>-></font> Bool <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font>-<a name="(line87)"></a>tokenise <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> [] <font color=Red>=</font> []-<a name="(line88)"></a>tokenise stripEol stripComments ansi lang <font color=Cyan>(</font><font color=Cyan>(</font>pos<font color=Cyan>,</font>str<font color=Cyan>)</font><font color=Red><b>:</b></font>pos_strs<font color=Cyan>)</font> <font color=Red>=</font>-<a name="(line89)"></a> <font color=Cyan>(</font><font color=Green><u>if</u></font> lang <font color=Green><u>then</u></font> haskell <font color=Green><u>else</u></font> plaintext<font color=Cyan>)</font> Any [] pos pos_strs str-<a name="(line90)"></a> <font color=Green><u>where</u></font>-<a name="(line91)"></a> <font color=Blue>-- rules to lex Haskell</font>-<a name="(line92)"></a> haskell <font color=Red>::</font> SubMode <font color=Red>-></font> String <font color=Red>-></font> Posn <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line93)"></a> <font color=Red>-></font> String <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font>-<a name="(line94)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Magenta>'#'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font> <font color=Blue>-- emit "\n" $</font>-<a name="(line95)"></a> cpp Any haskell [] [] p ls xs-<a name="(line96)"></a> <font color=Blue>-- warning: non-maximal munch on comment</font>-<a name="(line97)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line98)"></a> haskell LineComment <font color=Magenta>"--"</font> p ls xs-<a name="(line99)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'{'</font><font color=Red><b>:</b></font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line100)"></a> haskell <font color=Cyan>(</font>NestComment <font color=Magenta>0</font><font color=Cyan>)</font> <font color=Magenta>"-{"</font> p ls xs-<a name="(line101)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'*'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line102)"></a> <font color=Red>|</font> stripComments <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line103)"></a> haskell CComment <font color=Magenta>" "</font> p ls xs-<a name="(line104)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line105)"></a> <font color=Red>|</font> stripEol <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line106)"></a> haskell CLineComment <font color=Magenta>" "</font> p ls xs-<a name="(line107)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'"'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line108)"></a> haskell <font color=Cyan>(</font>String <font color=Magenta>'"'</font><font color=Cyan>)</font> <font color=Red>[</font><font color=Magenta>'"'</font><font color=Red>]</font> p ls xs-<a name="(line109)"></a> haskell Any acc p ls <font color=Cyan>(</font><font color=Magenta>'\''</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line110)"></a> haskell <font color=Cyan>(</font>String <font color=Magenta>'\''</font><font color=Cyan>)</font> <font color=Magenta>"'"</font> p ls xs-<a name="(line111)"></a> haskell Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> single x <font color=Red>=</font> emit acc <font color=Cyan>$</font> emit <font color=Red>[</font>x<font color=Red>]</font> <font color=Cyan>$</font>-<a name="(line112)"></a> haskell Any [] p ls xs-<a name="(line113)"></a> haskell Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> space x <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line114)"></a> haskell <font color=Cyan>(</font>Pred space other<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font>-<a name="(line115)"></a> p ls xs-<a name="(line116)"></a> haskell Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> symbol x <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line117)"></a> haskell <font color=Cyan>(</font>Pred symbol other<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font>-<a name="(line118)"></a> p ls xs-<a name="(line119)"></a> <font color=Blue>-- haskell Any [] p ls (x:xs) | ident0 x = id $</font>-<a name="(line120)"></a> haskell Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> ident0 x <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line121)"></a> haskell <font color=Cyan>(</font>Pred ident1 Ident<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font>-<a name="(line122)"></a> p ls xs-<a name="(line123)"></a> haskell Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> haskell Any <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line124)"></a>-<a name="(line125)"></a> haskell pre<font color=Red>@</font><font color=Cyan>(</font>Pred pred ws<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line126)"></a> <font color=Red>|</font> pred x <font color=Red>=</font> haskell pre <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line127)"></a> haskell <font color=Cyan>(</font>Pred <font color=Green><u>_</u></font> ws<font color=Cyan>)</font> acc p ls xs <font color=Red>=</font> ws p <font color=Cyan>(</font>reverse acc<font color=Cyan>)</font><font color=Red><b>:</b></font>-<a name="(line128)"></a> haskell Any [] p ls xs-<a name="(line129)"></a> haskell <font color=Cyan>(</font>String c<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line130)"></a> <font color=Red>|</font> x<font color=Cyan>==</font><font color=Magenta>'\\'</font> <font color=Red>=</font> haskell <font color=Cyan>(</font>String c<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line131)"></a> <font color=Red>|</font> x<font color=Cyan>==</font>c <font color=Red>=</font> haskell <font color=Cyan>(</font>String c<font color=Cyan>)</font> <font color=Cyan>(</font>c<font color=Red><b>:</b></font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line132)"></a> haskell <font color=Cyan>(</font>String c<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line133)"></a> <font color=Red>|</font> x<font color=Cyan>==</font>c <font color=Red>=</font> emit <font color=Cyan>(</font>c<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> <font color=Cyan>$</font> haskell Any [] p ls xs-<a name="(line134)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> haskell <font color=Cyan>(</font>String c<font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line135)"></a> haskell LineComment acc p ls xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font> haskell Any [] p ls xs-<a name="(line136)"></a> haskell LineComment acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> haskell LineComment <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line137)"></a> haskell <font color=Cyan>(</font>NestComment n<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font><font color=Magenta>'{'</font><font color=Red><b>:</b></font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line138)"></a> <font color=Red>=</font> haskell <font color=Cyan>(</font>NestComment <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line139)"></a> <font color=Cyan>(</font><font color=Magenta>"-{"</font><font color=Cyan>++</font>acc<font color=Cyan>)</font> p ls xs-<a name="(line140)"></a> haskell <font color=Cyan>(</font>NestComment <font color=Magenta>0</font><font color=Cyan>)</font> acc p ls <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'}'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line141)"></a> <font color=Red>=</font> emit <font color=Cyan>(</font><font color=Magenta>"}-"</font><font color=Cyan>++</font>acc<font color=Cyan>)</font> <font color=Cyan>$</font> haskell Any [] p ls xs-<a name="(line142)"></a> haskell <font color=Cyan>(</font>NestComment n<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'}'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line143)"></a> <font color=Red>=</font> haskell <font color=Cyan>(</font>NestComment <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line144)"></a> <font color=Cyan>(</font><font color=Magenta>"}-"</font><font color=Cyan>++</font>acc<font color=Cyan>)</font> p ls xs-<a name="(line145)"></a> haskell <font color=Cyan>(</font>NestComment n<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> haskell <font color=Cyan>(</font>NestComment n<font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font>-<a name="(line146)"></a> p ls xs-<a name="(line147)"></a> haskell CComment acc p ls <font color=Cyan>(</font><font color=Magenta>'*'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit <font color=Cyan>(</font><font color=Magenta>" "</font><font color=Cyan>++</font>acc<font color=Cyan>)</font> <font color=Cyan>$</font>-<a name="(line148)"></a> haskell Any [] p ls xs-<a name="(line149)"></a> haskell CComment acc p ls <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> haskell CComment <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line150)"></a> haskell CLineComment acc p ls xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font><font color=Red>=</font> emit acc <font color=Cyan>$</font> haskell Any [] p ls xs-<a name="(line151)"></a> haskell CLineComment acc p ls <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> haskell CLineComment <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font>-<a name="(line152)"></a> p ls xs-<a name="(line153)"></a> haskell mode acc <font color=Green><u>_</u></font> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l<font color=Cyan>)</font><font color=Red><b>:</b></font>ls<font color=Cyan>)</font> [] <font color=Red>=</font> haskell mode acc p ls <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>l<font color=Cyan>)</font>-<a name="(line154)"></a> haskell <font color=Green><u>_</u></font> acc <font color=Green><u>_</u></font> [] [] <font color=Red>=</font> emit acc <font color=Cyan>$</font> []-<a name="(line155)"></a>-<a name="(line156)"></a> <font color=Blue>-- rules to lex Cpp</font>-<a name="(line157)"></a> cpp <font color=Red>::</font> SubMode <font color=Red>-></font> <font color=Cyan>(</font>SubMode <font color=Red>-></font> String <font color=Red>-></font> Posn <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line158)"></a> <font color=Red>-></font> String <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font><font color=Cyan>)</font>-<a name="(line159)"></a> <font color=Red>-></font> String <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> Posn <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line160)"></a> <font color=Red>-></font> String <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font>-<a name="(line161)"></a> cpp mode next word line pos remaining input <font color=Red>=</font>-<a name="(line162)"></a> lexcpp mode word line remaining input-<a name="(line163)"></a> <font color=Green><u>where</u></font>-<a name="(line164)"></a> lexcpp Any w l ls <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'*'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp <font color=Cyan>(</font>NestComment <font color=Magenta>0</font><font color=Cyan>)</font> <font color=Magenta>""</font> <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line165)"></a> lexcpp Any w l ls <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp LineComment <font color=Magenta>" "</font> <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line166)"></a> lexcpp Any w l <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l'<font color=Cyan>)</font><font color=Red><b>:</b></font>ls<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>[]<font color=Cyan>)</font> <font color=Red>=</font> cpp Any next [] <font color=Cyan>(</font><font color=Magenta>"\n"</font><font color=Red><b>:</b></font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> p ls l'-<a name="(line167)"></a> lexcpp Any w l ls <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font><font color=Magenta>"\n"</font><font color=Red><b>:</b></font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line168)"></a> lexcpp Any w l ls xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> Cmd <font color=Cyan>(</font>parseHashDefine ansi-<a name="(line169)"></a> <font color=Cyan>(</font>reverse <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font><font color=Red><b>:</b></font>-<a name="(line170)"></a> next Any [] pos ls xs-<a name="(line171)"></a> <font color=Blue>-- lexcpp Any w l ls ('"':xs) = lexcpp (String '"') ['"'] (w*/*l) ls xs</font>-<a name="(line172)"></a> <font color=Blue>-- lexcpp Any w l ls ('\'':xs) = lexcpp (String '\'') "'" (w*/*l) ls xs</font>-<a name="(line173)"></a> lexcpp Any w l ls <font color=Cyan>(</font><font color=Magenta>'"'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font><font color=Magenta>"\""</font><font color=Red><b>:</b></font><font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font><font color=Cyan>)</font> ls xs-<a name="(line174)"></a> lexcpp Any w l ls <font color=Cyan>(</font><font color=Magenta>'\''</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font><font color=Magenta>"'"</font><font color=Red><b>:</b></font> <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font><font color=Cyan>)</font> ls xs-<a name="(line175)"></a> lexcpp Any [] l ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line176)"></a> <font color=Red>|</font> ident0 x <font color=Red>=</font> lexcpp <font color=Cyan>(</font>Pred ident1 Ident<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font> l ls xs-<a name="(line177)"></a> <font color=Blue>-- lexcpp Any w l ls (x:xs) | ident0 x = lexcpp (Pred ident1 Ident) [x] (w*/*l) ls xs</font>-<a name="(line178)"></a> lexcpp Any w l ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line179)"></a> <font color=Red>|</font> single x <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font><font color=Red>[</font>x<font color=Red>]</font><font color=Red><b>:</b></font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line180)"></a> <font color=Red>|</font> space x <font color=Red>=</font> lexcpp <font color=Cyan>(</font>Pred space other<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font> <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line181)"></a> <font color=Red>|</font> symbol x <font color=Red>=</font> lexcpp <font color=Cyan>(</font>Pred symbol other<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font> <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line182)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> lexcpp Any <font color=Cyan>(</font>x<font color=Red><b>:</b></font>w<font color=Cyan>)</font> l ls xs-<a name="(line183)"></a> lexcpp pre<font color=Red>@</font><font color=Cyan>(</font>Pred pred <font color=Green><u>_</u></font><font color=Cyan>)</font> w l ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line184)"></a> <font color=Red>|</font> pred x <font color=Red>=</font> lexcpp pre <font color=Cyan>(</font>x<font color=Red><b>:</b></font>w<font color=Cyan>)</font> l ls xs-<a name="(line185)"></a> lexcpp <font color=Cyan>(</font>Pred <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> w l ls xs <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line186)"></a> lexcpp <font color=Cyan>(</font>String c<font color=Cyan>)</font> w l ls <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line187)"></a> <font color=Red>|</font> x<font color=Cyan>==</font><font color=Magenta>'\\'</font> <font color=Red>=</font> lexcpp <font color=Cyan>(</font>String c<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>w<font color=Cyan>)</font> l ls xs-<a name="(line188)"></a> <font color=Red>|</font> x<font color=Cyan>==</font>c <font color=Red>=</font> lexcpp <font color=Cyan>(</font>String c<font color=Cyan>)</font> <font color=Cyan>(</font>c<font color=Red><b>:</b></font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>w<font color=Cyan>)</font> l ls xs-<a name="(line189)"></a> lexcpp <font color=Cyan>(</font>String c<font color=Cyan>)</font> w l ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line190)"></a> <font color=Red>|</font> x<font color=Cyan>==</font>c <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font><font color=Cyan>(</font>c<font color=Red><b>:</b></font>w<font color=Cyan>)</font><font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line191)"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> lexcpp <font color=Cyan>(</font>String c<font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>w<font color=Cyan>)</font> l ls xs-<a name="(line192)"></a> lexcpp LineComment w l <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l'<font color=Cyan>)</font><font color=Red><b>:</b></font>ls<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>[]<font color=Cyan>)</font>-<a name="(line193)"></a> <font color=Red>=</font> cpp LineComment next [] <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>w<font color=Cyan>)</font><font color=Cyan>*/*</font>l<font color=Cyan>)</font> pos ls l'-<a name="(line194)"></a> lexcpp LineComment w l ls <font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line195)"></a> <font color=Red>=</font> lexcpp LineComment [] <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>w<font color=Cyan>)</font><font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line196)"></a> lexcpp LineComment w l ls xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> lexcpp Any w l ls xs-<a name="(line197)"></a> lexcpp LineComment w l ls <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp LineComment <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>w<font color=Cyan>)</font> l ls xs-<a name="(line198)"></a> lexcpp <font color=Cyan>(</font>NestComment <font color=Green><u>_</u></font><font color=Cyan>)</font> w l ls <font color=Cyan>(</font><font color=Magenta>'*'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line199)"></a> <font color=Red>=</font> lexcpp Any [] <font color=Cyan>(</font>w<font color=Cyan>*/*</font>l<font color=Cyan>)</font> ls xs-<a name="(line200)"></a> lexcpp <font color=Cyan>(</font>NestComment n<font color=Cyan>)</font> w l ls <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> lexcpp <font color=Cyan>(</font>NestComment n<font color=Cyan>)</font> <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>w<font color=Cyan>)</font> l-<a name="(line201)"></a> ls xs-<a name="(line202)"></a> lexcpp mode w l <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l'<font color=Cyan>)</font><font color=Red><b>:</b></font>ls<font color=Cyan>)</font> [] <font color=Red>=</font> cpp mode next w l p ls <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>l'<font color=Cyan>)</font>-<a name="(line203)"></a> lexcpp <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> [] [] <font color=Red>=</font> []-<a name="(line204)"></a>-<a name="(line205)"></a> <font color=Blue>-- rules to lex non-Haskell, non-cpp text</font>-<a name="(line206)"></a> plaintext <font color=Red>::</font> SubMode <font color=Red>-></font> String <font color=Red>-></font> Posn <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>Posn<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>-<a name="(line207)"></a> <font color=Red>-></font> String <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font>-<a name="(line208)"></a> plaintext Any acc p ls <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Magenta>'#'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit acc <font color=Cyan>$</font> <font color=Blue>-- emit "\n" $</font>-<a name="(line209)"></a> cpp Any plaintext [] [] p ls xs-<a name="(line210)"></a> plaintext Any acc p ls <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'*'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line211)"></a> <font color=Red>|</font> stripComments <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line212)"></a> plaintext CComment <font color=Magenta>" "</font> p ls xs-<a name="(line213)"></a> plaintext Any acc p ls <font color=Cyan>(</font><font color=Magenta>'/'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line214)"></a> <font color=Red>|</font> stripEol <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line215)"></a> plaintext CLineComment <font color=Magenta>" "</font> p ls xs-<a name="(line216)"></a> plaintext Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> single x <font color=Red>=</font> emit acc <font color=Cyan>$</font> emit <font color=Red>[</font>x<font color=Red>]</font> <font color=Cyan>$</font>-<a name="(line217)"></a> plaintext Any [] p ls xs-<a name="(line218)"></a> plaintext Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> space x <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line219)"></a> plaintext <font color=Cyan>(</font>Pred space other<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font>-<a name="(line220)"></a> p ls xs-<a name="(line221)"></a> plaintext Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> ident0 x <font color=Red>=</font> emit acc <font color=Cyan>$</font>-<a name="(line222)"></a> plaintext <font color=Cyan>(</font>Pred ident1 Ident<font color=Cyan>)</font> <font color=Red>[</font>x<font color=Red>]</font>-<a name="(line223)"></a> p ls xs-<a name="(line224)"></a> plaintext Any acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> plaintext Any <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line225)"></a> plaintext pre<font color=Red>@</font><font color=Cyan>(</font>Pred pred ws<font color=Cyan>)</font> acc p ls <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font>-<a name="(line226)"></a> <font color=Red>|</font> pred x <font color=Red>=</font> plaintext pre <font color=Cyan>(</font>x<font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line227)"></a> plaintext <font color=Cyan>(</font>Pred <font color=Green><u>_</u></font> ws<font color=Cyan>)</font> acc p ls xs <font color=Red>=</font> ws p <font color=Cyan>(</font>reverse acc<font color=Cyan>)</font><font color=Red><b>:</b></font>-<a name="(line228)"></a> plaintext Any [] p ls xs-<a name="(line229)"></a> plaintext CComment acc p ls <font color=Cyan>(</font><font color=Magenta>'*'</font><font color=Red><b>:</b></font><font color=Magenta>'/'</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> emit <font color=Cyan>(</font><font color=Magenta>" "</font><font color=Cyan>++</font>acc<font color=Cyan>)</font> <font color=Cyan>$</font>-<a name="(line230)"></a> plaintext Any [] p ls xs-<a name="(line231)"></a> plaintext CComment acc p ls <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> plaintext CComment <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font> p ls xs-<a name="(line232)"></a> plaintext CLineComment acc p ls xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font>-<a name="(line233)"></a> <font color=Red>=</font> emit acc <font color=Cyan>$</font> plaintext Any [] p ls xs-<a name="(line234)"></a> plaintext CLineComment acc p ls <font color=Cyan>(</font><font color=Green><u>_</u></font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font><font color=Red>=</font> plaintext CLineComment <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>acc<font color=Cyan>)</font>-<a name="(line235)"></a> p ls xs-<a name="(line236)"></a> plaintext mode acc <font color=Green><u>_</u></font> <font color=Cyan>(</font><font color=Cyan>(</font>p<font color=Cyan>,</font>l<font color=Cyan>)</font><font color=Red><b>:</b></font>ls<font color=Cyan>)</font> [] <font color=Red>=</font> plaintext mode acc p ls <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>l<font color=Cyan>)</font>-<a name="(line237)"></a> plaintext <font color=Green><u>_</u></font> acc <font color=Green><u>_</u></font> [] [] <font color=Red>=</font> emit acc <font color=Cyan>$</font> []-<a name="(line238)"></a>-<a name="(line239)"></a> <font color=Blue>-- predicates for lexing Haskell.</font>-<a name="(line240)"></a> ident0 x <font color=Red>=</font> isAlpha x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>"_`"</font>-<a name="(line241)"></a> ident1 x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>"'_`"</font>-<a name="(line242)"></a> symbol x <font color=Red>=</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":!#$%&*+./<=>?@\\^|-~"</font>-<a name="(line243)"></a> single x <font color=Red>=</font> x <font color=Cyan>`elem`</font> <font color=Magenta>"(),[];{}"</font>-<a name="(line244)"></a> space x <font color=Red>=</font> x <font color=Cyan>`elem`</font> <font color=Magenta>" \t"</font>-<a name="(line245)"></a> <font color=Blue>-- emit a token (if there is one) from the accumulator</font>-<a name="(line246)"></a> emit <font color=Magenta>""</font> <font color=Red>=</font> id-<a name="(line247)"></a> emit xs <font color=Red>=</font> <font color=Cyan>(</font>Other <font color=Cyan>(</font>reverse xs<font color=Cyan>)</font><font color=Red><b>:</b></font><font color=Cyan>)</font>-<a name="(line248)"></a> <font color=Blue>-- add a reversed word to the accumulator</font>-<a name="(line249)"></a> <font color=Magenta>""</font> <font color=Cyan>*/*</font> l <font color=Red>=</font> l-<a name="(line250)"></a> w <font color=Cyan>*/*</font> l <font color=Red>=</font> reverse w <font color=Red><b>:</b></font> l-<a name="(line251)"></a> <font color=Blue>-- help out broken Haskell compilers which need balanced numbers of C</font>-<a name="(line252)"></a> <font color=Blue>-- comments in order to do import chasing :-) -----> */*</font>-<a name="(line253)"></a>-<a name="(line254)"></a>-<a name="(line255)"></a><a name="parseMacroCall"></a><font color=Blue>-- | Parse a possible macro call, returning argument list and remaining input</font>-<a name="(line256)"></a>parseMacroCall <font color=Red>::</font> Posn <font color=Red>-></font> <font color=Red>[</font>WordStyle<font color=Red>]</font> <font color=Red>-></font> Maybe <font color=Cyan>(</font><font color=Red>[</font><font color=Red>[</font>WordStyle<font color=Red>]</font><font color=Red>]</font><font color=Cyan>,</font><font color=Red>[</font>WordStyle<font color=Red>]</font><font color=Cyan>)</font>-<a name="(line257)"></a>parseMacroCall p <font color=Red>=</font> call <font color=Cyan>.</font> skip-<a name="(line258)"></a> <font color=Green><u>where</u></font>-<a name="(line259)"></a> skip <font color=Cyan>(</font>Other x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> all isSpace x <font color=Red>=</font> skip xs-<a name="(line260)"></a> skip xss <font color=Red>=</font> xss-<a name="(line261)"></a> call <font color=Cyan>(</font>Other <font color=Magenta>"("</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font>args <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font> [] [] <font color=Cyan>.</font> skip<font color=Cyan>)</font> xs-<a name="(line262)"></a> call <font color=Green><u>_</u></font> <font color=Red>=</font> Nothing-<a name="(line263)"></a> args <font color=Magenta>0</font> w acc <font color=Cyan>(</font> Other <font color=Magenta>")"</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font>reverse <font color=Cyan>(</font>addone w acc<font color=Cyan>)</font><font color=Cyan>,</font> xs<font color=Cyan>)</font>-<a name="(line264)"></a> args <font color=Magenta>0</font> w acc <font color=Cyan>(</font> Other <font color=Magenta>","</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> args <font color=Magenta>0</font> [] <font color=Cyan>(</font>addone w acc<font color=Cyan>)</font> <font color=Cyan>(</font>skip xs<font color=Cyan>)</font>-<a name="(line265)"></a> args n w acc <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Other <font color=Magenta>"("</font><font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> args <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>w<font color=Cyan>)</font> acc xs-<a name="(line266)"></a> args n w acc <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Other <font color=Magenta>")"</font><font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> args <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>w<font color=Cyan>)</font> acc xs-<a name="(line267)"></a> args n w acc <font color=Cyan>(</font> Ident <font color=Green><u>_</u></font> v <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> args n <font color=Cyan>(</font>Ident p v<font color=Red><b>:</b></font>w<font color=Cyan>)</font> acc xs-<a name="(line268)"></a> args n w acc <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Other <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> args n <font color=Cyan>(</font>x<font color=Red><b>:</b></font>w<font color=Cyan>)</font> acc xs-<a name="(line269)"></a> args <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Red>=</font> Nothing-<a name="(line270)"></a> addone w acc <font color=Red>=</font> reverse <font color=Cyan>(</font>skip w<font color=Cyan>)</font><font color=Red><b>:</b></font> acc-<a name="(line271)"></a>-</pre>-</html>
− docs/cpphs/Language/Preprocessor/Unlit.html
@@ -1,74 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-- | Part of this code is from "Report on the Programming Language Haskell",</font>-<a name="(line2)"></a><font color=Blue>-- version 1.2, appendix C.</font>-<a name="(line3)"></a><font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Unlit <font color=Cyan>(</font>unlit<font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line4)"></a>-<a name="(line5)"></a><font color=Green><u>import</u></font> Char-<a name="(line6)"></a>-<a name="(line7)"></a><a name="Classified"></a><font color=Green><u>data</u></font> Classified <font color=Red>=</font> Program String <font color=Red>|</font> Blank <font color=Red>|</font> Comment-<a name="(line8)"></a> <font color=Red>|</font> Include Int String <font color=Red>|</font> Pre String-<a name="(line9)"></a>-<a name="(line10)"></a><a name="classify"></a>classify <font color=Red>::</font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font>Classified<font color=Red>]</font>-<a name="(line11)"></a>classify [] <font color=Red>=</font> []-<a name="(line12)"></a>classify <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> x <font color=Cyan>==</font> <font color=Magenta>"begin{code}"</font> <font color=Red>=</font> Blank <font color=Red><b>:</b></font> allProg xs-<a name="(line13)"></a> <font color=Green><u>where</u></font> allProg [] <font color=Red>=</font> [] <font color=Blue>-- Should give an error message,</font>-<a name="(line14)"></a> <font color=Blue>-- but I have no good position information.</font>-<a name="(line15)"></a> allProg <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'\\'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> x <font color=Cyan>==</font> <font color=Magenta>"end{code}"</font> <font color=Red>=</font> Blank <font color=Red><b>:</b></font> classify xs-<a name="(line16)"></a> allProg <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Program x<font color=Red><b>:</b></font>allProg xs-<a name="(line17)"></a>classify <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'>'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Program <font color=Cyan>(</font><font color=Magenta>' '</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font> <font color=Red><b>:</b></font> classify xs-<a name="(line18)"></a>classify <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'#'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Green><u>case</u></font> words x <font color=Green><u>of</u></font>-<a name="(line19)"></a> <font color=Cyan>(</font>line<font color=Red><b>:</b></font>rest<font color=Cyan>)</font> <font color=Red>|</font> all isDigit line-<a name="(line20)"></a> <font color=Red>-></font> Include <font color=Cyan>(</font>read line<font color=Cyan>)</font> <font color=Cyan>(</font>unwords rest<font color=Cyan>)</font>-<a name="(line21)"></a> <font color=Green><u>_</u></font> <font color=Red>-></font> Pre x-<a name="(line22)"></a> <font color=Cyan>)</font> <font color=Red><b>:</b></font> classify xs-<a name="(line23)"></a>classify <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> all isSpace x <font color=Red>=</font> Blank<font color=Red><b>:</b></font>classify xs-<a name="(line24)"></a>classify <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> Comment<font color=Red><b>:</b></font>classify xs-<a name="(line25)"></a>-<a name="(line26)"></a><a name="unclassify"></a>unclassify <font color=Red>::</font> Classified <font color=Red>-></font> String-<a name="(line27)"></a>unclassify <font color=Cyan>(</font>Program s<font color=Cyan>)</font> <font color=Red>=</font> s-<a name="(line28)"></a>unclassify <font color=Cyan>(</font>Pre s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'#'</font><font color=Red><b>:</b></font>s-<a name="(line29)"></a>unclassify <font color=Cyan>(</font>Include i f<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'#'</font><font color=Red><b>:</b></font><font color=Magenta>' '</font><font color=Red><b>:</b></font>show i <font color=Cyan>++</font> <font color=Magenta>' '</font><font color=Red><b>:</b></font>f-<a name="(line30)"></a>unclassify Blank <font color=Red>=</font> <font color=Magenta>""</font>-<a name="(line31)"></a>unclassify Comment <font color=Red>=</font> <font color=Magenta>""</font>-<a name="(line32)"></a>-<a name="(line33)"></a><a name="unlit"></a><font color=Blue>-- | 'unlit' takes a filename (for error reports), and transforms the</font>-<a name="(line34)"></a><font color=Blue>-- given string, to eliminate the literate comments from the program text.</font>-<a name="(line35)"></a>unlit <font color=Red>::</font> FilePath <font color=Red>-></font> String <font color=Red>-></font> String-<a name="(line36)"></a>unlit file lhs <font color=Red>=</font> <font color=Cyan>(</font>unlines-<a name="(line37)"></a> <font color=Cyan>.</font> map unclassify-<a name="(line38)"></a> <font color=Cyan>.</font> adjacent file <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font> Blank-<a name="(line39)"></a> <font color=Cyan>.</font> classify<font color=Cyan>)</font> <font color=Cyan>(</font>inlines lhs<font color=Cyan>)</font>-<a name="(line40)"></a>-<a name="(line41)"></a><a name="adjacent"></a>adjacent <font color=Red>::</font> FilePath <font color=Red>-></font> Int <font color=Red>-></font> Classified <font color=Red>-></font> <font color=Red>[</font>Classified<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font>Classified<font color=Red>]</font>-<a name="(line42)"></a>adjacent file <font color=Magenta>0</font> <font color=Green><u>_</u></font> <font color=Cyan>(</font>x <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x <font color=Red><b>:</b></font> adjacent file <font color=Magenta>1</font> x xs <font color=Blue>-- force evaluation of line number</font>-<a name="(line43)"></a>adjacent file n y<font color=Red>@</font><font color=Cyan>(</font>Program <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red>@</font>Comment <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> error <font color=Cyan>(</font>message file n <font color=Magenta>"program"</font> <font color=Magenta>"comment"</font><font color=Cyan>)</font>-<a name="(line44)"></a>adjacent file n y<font color=Red>@</font><font color=Cyan>(</font>Program <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Include i f<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent f i y xs-<a name="(line45)"></a>adjacent file n y<font color=Red>@</font><font color=Cyan>(</font>Program <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Pre <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent file <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> y xs-<a name="(line46)"></a>adjacent file n y<font color=Red>@</font>Comment <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Program <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> error <font color=Cyan>(</font>message file n <font color=Magenta>"comment"</font> <font color=Magenta>"program"</font><font color=Cyan>)</font>-<a name="(line47)"></a>adjacent file n y<font color=Red>@</font>Comment <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Include i f<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent f i y xs-<a name="(line48)"></a>adjacent file n y<font color=Red>@</font>Comment <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Pre <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent file <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> y xs-<a name="(line49)"></a>adjacent file n y<font color=Red>@</font>Blank <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Include i f<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent f i y xs-<a name="(line50)"></a>adjacent file n y<font color=Red>@</font>Blank <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font>Pre <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent file <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> y xs-<a name="(line51)"></a>adjacent file n <font color=Green><u>_</u></font> <font color=Cyan>(</font>x<font color=Red>@</font>next <font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> x<font color=Red><b>:</b></font> adjacent file <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> x xs-<a name="(line52)"></a>adjacent file n <font color=Green><u>_</u></font> [] <font color=Red>=</font> []-<a name="(line53)"></a>-<a name="(line54)"></a><a name="message"></a>message <font color=Red>::</font> String <font color=Red>-></font> Int <font color=Red>-></font> String <font color=Red>-></font> String <font color=Red>-></font> String-<a name="(line55)"></a>message <font color=Magenta>"\"\""</font> n p c <font color=Red>=</font> <font color=Magenta>"Line "</font><font color=Cyan>++</font>show n<font color=Cyan>++</font><font color=Magenta>": "</font><font color=Cyan>++</font>p<font color=Cyan>++</font> <font color=Magenta>" line before "</font><font color=Cyan>++</font>c<font color=Cyan>++</font><font color=Magenta>" line.\n"</font>-<a name="(line56)"></a>message [] n p c <font color=Red>=</font> <font color=Magenta>"Line "</font><font color=Cyan>++</font>show n<font color=Cyan>++</font><font color=Magenta>": "</font><font color=Cyan>++</font>p<font color=Cyan>++</font> <font color=Magenta>" line before "</font><font color=Cyan>++</font>c<font color=Cyan>++</font><font color=Magenta>" line.\n"</font>-<a name="(line57)"></a>message file n p c <font color=Red>=</font> <font color=Magenta>"In file "</font> <font color=Cyan>++</font> file <font color=Cyan>++</font> <font color=Magenta>" at line "</font><font color=Cyan>++</font>show n<font color=Cyan>++</font><font color=Magenta>": "</font><font color=Cyan>++</font>p<font color=Cyan>++</font> <font color=Magenta>" line before "</font><font color=Cyan>++</font>c<font color=Cyan>++</font><font color=Magenta>" line.\n"</font>-<a name="(line58)"></a>-<a name="(line59)"></a>-<a name="(line60)"></a><a name="inlines"></a><font color=Blue>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</font>-<a name="(line61)"></a><font color=Blue>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</font>-<a name="(line62)"></a>inlines <font color=Red>::</font> String <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="(line63)"></a>inlines s <font color=Red>=</font> lines' s id-<a name="(line64)"></a> <font color=Green><u>where</u></font>-<a name="(line65)"></a> lines' [] acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>-<a name="(line66)"></a> lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><font color=Red><b>:</b></font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc [] <font color=Red><b>:</b></font> lines' s id <font color=Blue>-- DOS</font>-<a name="(line67)"></a> lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><font color=Red><b>:</b></font>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc [] <font color=Red><b>:</b></font> lines' s id <font color=Blue>-- MacOS</font>-<a name="(line68)"></a> lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Red><b>:</b></font>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc [] <font color=Red><b>:</b></font> lines' s id <font color=Blue>-- Unix</font>-<a name="(line69)"></a> lines' <font color=Cyan>(</font>c<font color=Red><b>:</b></font>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<font color=Red><b>:</b></font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line70)"></a>-</pre>-</html>
− docs/cpphs/Main.html
@@ -1,360 +0,0 @@-<!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->Main</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Main.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"->Main</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="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%3Aversion"->version</A-> :: String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amain"->main</A-> :: IO ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aexecute"->execute</A-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-> -> Maybe FilePath -> Maybe FilePath -> IO ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AConvertArgs"->ConvertArgs</A-> = <A HREF="#v%3AConvertArgs"->ConvertArgs</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Atraditional"->traditional</A->, <A HREF="#v%3Astrip"->strip</A-> :: Bool</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Ainfile"->infile</A->, <A HREF="#v%3Aoutfile"->outfile</A-> :: String</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AconvertArgs"->convertArgs</A-> :: [String] -> [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%3Aversion"-></A-><B->version</B-> :: String</TD-><TD CLASS="declbut"-><A HREF="Main.html#version"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amain"-></A-><B->main</B-> :: IO ()</TD-><TD CLASS="declbut"-><A HREF="Main.html#main"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aexecute"-></A-><B->execute</B-> :: <A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->CpphsOptions</A-> -> Maybe FilePath -> Maybe FilePath -> IO ()</TD-><TD CLASS="declbut"-><A HREF="Main.html#execute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Execute the preprocessor.- If the filepath is Nothing then default to stdout/stdin as appropriate.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AConvertArgs"-></A-><B->ConvertArgs</B-> </TD-><TD CLASS="declbut"-><A HREF="Main.html#ConvertArgs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->Convert commandline options to remain compatible with cpp.- Based on a shell script cpphs.compat-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AConvertArgs"-></A-><B->ConvertArgs</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Atraditional"-></A-><B->traditional</B->, <A NAME="v%3Astrip"-></A-><B->strip</B-> :: Bool</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Ainfile"-></A-><B->infile</B->, <A NAME="v%3Aoutfile"-></A-><B->outfile</B-> :: String</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AconvertArgs"-></A-><B->convertArgs</B-> :: [String] -> [String]</TD-><TD CLASS="declbut"-><A HREF="Main.html#convertArgs"->Source</A-></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/cpphs/Text-ParserCombinators-HuttonMeijer.html
@@ -1,1563 +0,0 @@-<!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->Text.ParserCombinators.HuttonMeijer</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"->cpphs</TD-><TD CLASS="topbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.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"->Text.ParserCombinators.HuttonMeijer</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"-><P->Copyright : Graham Hutton (University of Nottingham), Erik Meijer (University of Utrecht)-</P-><P->Maintainer : Malcolm Wallace <A HREF="Malcolm.Wallace@cs.york.ac.uk"->Malcolm.Wallace@cs.york.ac.uk</A->- Stability : Stable- Portability : All-</P-><P->A LIBRARY OF MONADIC PARSER COMBINATORS-</P-><P->29th July 1996-</P-><P->Graham Hutton Erik Meijer- University of Nottingham University of Utrecht-</P-><P->This Haskell script defines a library of parser combinators, and is- taken from sections 1-6 of our article <A HREF="Monadic Parser Combinators.html"->Monadic Parser Combinators</A->.- Some changes to the library have been made in the move from Gofer- to Haskell:-</P-><UL-><LI-> Do notation is used in place of monad comprehension notation;-</LI-><LI-> The parser datatype is defined using <A HREF="newtype.html"->newtype</A->, to avoid the overhead- of tagging and untagging parsers with the P constructor.-</LI-></UL-></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"-><SPAN CLASS="keyword"->newtype</SPAN-> <A HREF="#t%3AParser"->Parser</A-> a = <A HREF="#v%3AP"->P</A-> ([Token] -> [(a, [Token])])</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aitem"->item</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Token</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Afirst"->first</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Apapply"->papply</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> [Token] -> [(a, [Token])]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2B%2B%2B"->(+++)</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asat"->sat</A-> :: (Token -> Bool) -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Token</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amany"->many</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amany1"->many1</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asepby"->sepby</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asepby1"->sepby1</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achainl"->chainl</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achainl1"->chainl1</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achainr"->chainr</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achainr1"->chainr1</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aops"->ops</A-> :: [(<A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a, b)] -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Abracket"->bracket</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> c -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achar"->char</A-> :: Char -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adigit"->digit</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Alower"->lower</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aupper"->upper</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aletter"->letter</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aalphanum"->alphanum</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Astring"->string</A-> :: String -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aident"->ident</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anat"->nat</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aint"->int</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aspaces"->spaces</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Acomment"->comment</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ajunk"->junk</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Askip"->skip</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atoken"->token</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anatural"->natural</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ainteger"->integer</A-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asymbol"->symbol</A-> :: String -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aidentifier"->identifier</A-> :: [String] -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> 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"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3AParser"-></A-><B->Parser</B-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#Parser"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->The parser monad-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AP"-></A-><B->P</B-> ([Token] -> [(a, [Token])])</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Parser')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Parser" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Functor <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-></TD-></TR-><TR-><TD CLASS="decl"->Monad <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-></TD-></TR-><TR-><TD CLASS="decl"->MonadPlus <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aitem"-></A-><B->item</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Token</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#item"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Afirst"-></A-><B->first</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#first"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Apapply"-></A-><B->papply</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> [Token] -> [(a, [Token])]</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#papply"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%2B%2B%2B"-></A-><B->(+++)</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#%2B%2B%2B"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asat"-></A-><B->sat</B-> :: (Token -> Bool) -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Token</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#sat"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amany"-></A-><B->many</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#many"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amany1"-></A-><B->many1</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#many1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asepby"-></A-><B->sepby</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#sepby"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asepby1"-></A-><B->sepby1</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#sepby1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achainl"-></A-><B->chainl</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#chainl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achainl1"-></A-><B->chainl1</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#chainl1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achainr"-></A-><B->chainr</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#chainr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achainr1"-></A-><B->chainr1</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> (a -> a -> a) -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#chainr1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aops"-></A-><B->ops</B-> :: [(<A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a, b)] -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#ops"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Abracket"-></A-><B->bracket</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> c -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> b</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#bracket"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achar"-></A-><B->char</B-> :: Char -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#char"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adigit"-></A-><B->digit</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#digit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Alower"-></A-><B->lower</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#lower"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aupper"-></A-><B->upper</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#upper"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aletter"-></A-><B->letter</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#letter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aalphanum"-></A-><B->alphanum</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Char</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#alphanum"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Astring"-></A-><B->string</B-> :: String -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#string"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aident"-></A-><B->ident</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#ident"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anat"-></A-><B->nat</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#nat"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aint"-></A-><B->int</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#int"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aspaces"-></A-><B->spaces</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> ()</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#spaces"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acomment"-></A-><B->comment</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> ()</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#comment"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ajunk"-></A-><B->junk</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> ()</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#junk"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Askip"-></A-><B->skip</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#skip"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atoken"-></A-><B->token</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> a</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#token"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anatural"-></A-><B->natural</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#natural"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ainteger"-></A-><B->integer</B-> :: <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> Int</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#integer"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asymbol"-></A-><B->symbol</B-> :: String -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#symbol"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aidentifier"-></A-><B->identifier</B-> :: [String] -> <A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Parser</A-> String</TD-><TD CLASS="declbut"-><A HREF="Text/ParserCombinators/HuttonMeijer.html#identifier"->Source</A-></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/cpphs/Text/ParserCombinators/HuttonMeijer.html
@@ -1,222 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line2)"></a><font color=Blue>-- |</font>-<a name="(line3)"></a><font color=Blue>-- Module : ParseLib</font>-<a name="(line4)"></a><font color=Blue>-- Copyright : ...</font>-<a name="(line5)"></a><font color=Blue>-- Copyright : Graham Hutton (University of Nottingham), Erik Meijer (University of Utrecht)</font>-<a name="(line6)"></a><font color=Blue>-- </font>-<a name="(line7)"></a><font color=Blue>-- Maintainer : Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk></font>-<a name="(line8)"></a><font color=Blue>-- Stability : Stable</font>-<a name="(line9)"></a><font color=Blue>-- Portability : All</font>-<a name="(line10)"></a><font color=Blue>--</font>-<a name="(line11)"></a><font color=Blue>-- A LIBRARY OF MONADIC PARSER COMBINATORS</font>-<a name="(line12)"></a><font color=Blue>-- </font>-<a name="(line13)"></a><font color=Blue>-- 29th July 1996</font>-<a name="(line14)"></a><font color=Blue>-- </font>-<a name="(line15)"></a><font color=Blue>-- Graham Hutton Erik Meijer</font>-<a name="(line16)"></a><font color=Blue>-- University of Nottingham University of Utrecht</font>-<a name="(line17)"></a><font color=Blue>-- </font>-<a name="(line18)"></a><font color=Blue>-- This Haskell script defines a library of parser combinators, and is</font>-<a name="(line19)"></a><font color=Blue>-- taken from sections 1-6 of our article "Monadic Parser Combinators".</font>-<a name="(line20)"></a><font color=Blue>-- Some changes to the library have been made in the move from Gofer</font>-<a name="(line21)"></a><font color=Blue>-- to Haskell:</font>-<a name="(line22)"></a><font color=Blue>-- </font>-<a name="(line23)"></a><font color=Blue>-- * Do notation is used in place of monad comprehension notation;</font>-<a name="(line24)"></a><font color=Blue>-- </font>-<a name="(line25)"></a><font color=Blue>-- * The parser datatype is defined using "newtype", to avoid the overhead</font>-<a name="(line26)"></a><font color=Blue>-- of tagging and untagging parsers with the P constructor.</font>-<a name="(line27)"></a><font color=Blue>-----------------------------------------------------------------------------</font>-<a name="(line28)"></a>-<a name="(line29)"></a>-<a name="(line30)"></a><font color=Green><u>module</u></font> Text<font color=Cyan>.</font>ParserCombinators<font color=Cyan>.</font>HuttonMeijer-<a name="(line31)"></a> <font color=Cyan>(</font>Parser<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> item<font color=Cyan>,</font> first<font color=Cyan>,</font> papply<font color=Cyan>,</font> <font color=Cyan>(</font><font color=Cyan>+++</font><font color=Cyan>)</font><font color=Cyan>,</font> sat<font color=Cyan>,</font> <font color=Blue>{-tok,-}</font> many<font color=Cyan>,</font> many1<font color=Cyan>,</font>-<a name="(line32)"></a> sepby<font color=Cyan>,</font> sepby1<font color=Cyan>,</font> chainl<font color=Cyan>,</font>-<a name="(line33)"></a> chainl1<font color=Cyan>,</font> chainr<font color=Cyan>,</font> chainr1<font color=Cyan>,</font> ops<font color=Cyan>,</font> bracket<font color=Cyan>,</font> char<font color=Cyan>,</font> digit<font color=Cyan>,</font> lower<font color=Cyan>,</font> upper<font color=Cyan>,</font>-<a name="(line34)"></a> letter<font color=Cyan>,</font> alphanum<font color=Cyan>,</font> string<font color=Cyan>,</font> ident<font color=Cyan>,</font> nat<font color=Cyan>,</font> int<font color=Cyan>,</font> spaces<font color=Cyan>,</font> comment<font color=Cyan>,</font> junk<font color=Cyan>,</font>-<a name="(line35)"></a> skip<font color=Cyan>,</font> token<font color=Cyan>,</font> natural<font color=Cyan>,</font> integer<font color=Cyan>,</font> symbol<font color=Cyan>,</font> identifier<font color=Cyan>)</font> <font color=Green><u>where</u></font>-<a name="(line36)"></a>-<a name="(line37)"></a><font color=Green><u>import</u></font> Char-<a name="(line38)"></a><font color=Green><u>import</u></font> Monad-<a name="(line39)"></a>-<a name="(line40)"></a><font color=Green><u>infixr</u></font> <font color=Magenta>5</font> <font color=Cyan>+++</font>-<a name="(line41)"></a>-<a name="(line42)"></a><a name="Token"></a><font color=Green><u>type</u></font> Token <font color=Red>=</font> Char-<a name="(line43)"></a>-<a name="(line44)"></a><font color=Blue>---------------------------------------------------------</font>-<a name="(line45)"></a><font color=Blue>-- | The parser monad</font>-<a name="(line46)"></a>-<a name="(line47)"></a><a name="Parser"></a><font color=Green><u>newtype</u></font> Parser a <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>[</font>Token<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>a<font color=Cyan>,</font><font color=Red>[</font>Token<font color=Red>]</font><font color=Cyan>)</font><font color=Red>]</font><font color=Cyan>)</font>-<a name="(line48)"></a>-<a name="(line49)"></a><font color=Green><u>instance</u></font> Functor Parser <font color=Green><u>where</u></font>-<a name="(line50)"></a> <font color=Blue>-- map :: (a -> b) -> (Parser a -> Parser b)</font>-<a name="(line51)"></a> fmap f <font color=Cyan>(</font>P p<font color=Cyan>)</font> <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font>inp <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>f v<font color=Cyan>,</font> out<font color=Cyan>)</font> <font color=Red>|</font> <font color=Cyan>(</font>v<font color=Cyan>,</font>out<font color=Cyan>)</font> <font color=Red><-</font> p inp<font color=Red>]</font><font color=Cyan>)</font>-<a name="(line52)"></a>-<a name="(line53)"></a><font color=Green><u>instance</u></font> Monad Parser <font color=Green><u>where</u></font>-<a name="(line54)"></a> <font color=Blue>-- return :: a -> Parser a</font>-<a name="(line55)"></a> return v <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font>inp <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>v<font color=Cyan>,</font>inp<font color=Cyan>)</font><font color=Red>]</font><font color=Cyan>)</font>-<a name="(line56)"></a>-<a name="(line57)"></a> <font color=Blue>-- >>= :: Parser a -> (a -> Parser b) -> Parser b</font>-<a name="(line58)"></a> <font color=Cyan>(</font>P p<font color=Cyan>)</font> <font color=Cyan>>>=</font> f <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font>inp <font color=Red>-></font> concat <font color=Red>[</font>papply <font color=Cyan>(</font>f v<font color=Cyan>)</font> out <font color=Red>|</font> <font color=Cyan>(</font>v<font color=Cyan>,</font>out<font color=Cyan>)</font> <font color=Red><-</font> p inp<font color=Red>]</font><font color=Cyan>)</font>-<a name="(line59)"></a>-<a name="(line60)"></a> <font color=Blue>-- fail :: String -> Parser a</font>-<a name="(line61)"></a> fail <font color=Green><u>_</u></font> <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font><font color=Green><u>_</u></font> <font color=Red>-></font> []<font color=Cyan>)</font>-<a name="(line62)"></a>-<a name="(line63)"></a><font color=Green><u>instance</u></font> MonadPlus Parser <font color=Green><u>where</u></font>-<a name="(line64)"></a> <font color=Blue>-- mzero :: Parser a</font>-<a name="(line65)"></a> mzero <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font><font color=Green><u>_</u></font> <font color=Red>-></font> []<font color=Cyan>)</font>-<a name="(line66)"></a>-<a name="(line67)"></a> <font color=Blue>-- mplus :: Parser a -> Parser a -> Parser a</font>-<a name="(line68)"></a> <font color=Cyan>(</font>P p<font color=Cyan>)</font> <font color=Cyan>`mplus`</font> <font color=Cyan>(</font>P q<font color=Cyan>)</font> <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font>inp <font color=Red>-></font> <font color=Cyan>(</font>p inp <font color=Cyan>++</font> q inp<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line69)"></a>-<a name="(line70)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line71)"></a><font color=Blue>-- * Other primitive parser combinators</font>-<a name="(line72)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line73)"></a>-<a name="(line74)"></a><a name="item"></a>item <font color=Red>::</font> Parser Token-<a name="(line75)"></a>item <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font>inp <font color=Red>-></font> <font color=Green><u>case</u></font> inp <font color=Green><u>of</u></font>-<a name="(line76)"></a> [] <font color=Red>-></font> []-<a name="(line77)"></a> <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>x<font color=Cyan>,</font>xs<font color=Cyan>)</font><font color=Red>]</font><font color=Cyan>)</font>-<a name="(line78)"></a>-<a name="(line79)"></a><a name="first"></a>first <font color=Red>::</font> Parser a <font color=Red>-></font> Parser a-<a name="(line80)"></a>first <font color=Cyan>(</font>P p<font color=Cyan>)</font> <font color=Red>=</font> P <font color=Cyan>(</font><font color=Red>\</font>inp <font color=Red>-></font> <font color=Green><u>case</u></font> p inp <font color=Green><u>of</u></font>-<a name="(line81)"></a> [] <font color=Red>-></font> []-<a name="(line82)"></a> <font color=Cyan>(</font>x<font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>-></font> <font color=Red>[</font>x<font color=Red>]</font><font color=Cyan>)</font>-<a name="(line83)"></a>-<a name="(line84)"></a><a name="papply"></a>papply <font color=Red>::</font> Parser a <font color=Red>-></font> <font color=Red>[</font>Token<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font><font color=Cyan>(</font>a<font color=Cyan>,</font><font color=Red>[</font>Token<font color=Red>]</font><font color=Cyan>)</font><font color=Red>]</font>-<a name="(line85)"></a>papply <font color=Cyan>(</font>P p<font color=Cyan>)</font> inp <font color=Red>=</font> p inp-<a name="(line86)"></a>-<a name="(line87)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line88)"></a><font color=Blue>-- * Derived combinators</font>-<a name="(line89)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line90)"></a>-<a name="(line91)"></a><a name="+++"></a><font color=Cyan>(</font><font color=Cyan>+++</font><font color=Cyan>)</font> <font color=Red>::</font> Parser a <font color=Red>-></font> Parser a <font color=Red>-></font> Parser a-<a name="(line92)"></a><a name="p"></a>p <font color=Cyan>+++</font> q <font color=Red>=</font> first <font color=Cyan>(</font>p <font color=Cyan>`mplus`</font> q<font color=Cyan>)</font>-<a name="(line93)"></a>-<a name="(line94)"></a><a name="sat"></a>sat <font color=Red>::</font> <font color=Cyan>(</font>Token <font color=Red>-></font> Bool<font color=Cyan>)</font> <font color=Red>-></font> Parser Token-<a name="(line95)"></a>sat p <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> item<font color=Cyan>;</font> <font color=Green><u>if</u></font> p x <font color=Green><u>then</u></font> return x <font color=Green><u>else</u></font> mzero<font color=Cyan>}</font>-<a name="(line96)"></a>-<a name="(line97)"></a><font color=Blue>--tok :: Token -> Parser Token</font>-<a name="(line98)"></a><font color=Blue>--tok t = do {x <- item; if t==snd x then return t else mzero}</font>-<a name="(line99)"></a>-<a name="(line100)"></a><a name="many"></a>many <font color=Red>::</font> Parser a <font color=Red>-></font> Parser <font color=Red>[</font>a<font color=Red>]</font>-<a name="(line101)"></a>many p <font color=Red>=</font> many1 p <font color=Cyan>+++</font> return []-<a name="(line102)"></a><font color=Blue>--many p = force (many1 p +++ return [])</font>-<a name="(line103)"></a>-<a name="(line104)"></a><a name="many1"></a>many1 <font color=Red>::</font> Parser a <font color=Red>-></font> Parser <font color=Red>[</font>a<font color=Red>]</font>-<a name="(line105)"></a>many1 p <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> p<font color=Cyan>;</font> xs <font color=Red><-</font> many p<font color=Cyan>;</font> return <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font><font color=Cyan>}</font>-<a name="(line106)"></a>-<a name="(line107)"></a><a name="sepby"></a>sepby <font color=Red>::</font> Parser a <font color=Red>-></font> Parser b <font color=Red>-></font> Parser <font color=Red>[</font>a<font color=Red>]</font>-<a name="(line108)"></a><a name="sepby"></a>p <font color=Cyan>`sepby`</font> sep <font color=Red>=</font> <font color=Cyan>(</font>p <font color=Cyan>`sepby1`</font> sep<font color=Cyan>)</font> <font color=Cyan>+++</font> return []-<a name="(line109)"></a>-<a name="(line110)"></a><a name="sepby1"></a>sepby1 <font color=Red>::</font> Parser a <font color=Red>-></font> Parser b <font color=Red>-></font> Parser <font color=Red>[</font>a<font color=Red>]</font>-<a name="(line111)"></a><a name="sepby1"></a>p <font color=Cyan>`sepby1`</font> sep <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> p<font color=Cyan>;</font> xs <font color=Red><-</font> many <font color=Cyan>(</font><font color=Green><u>do</u></font> <font color=Cyan>{</font>sep<font color=Cyan>;</font> p<font color=Cyan>}</font><font color=Cyan>)</font><font color=Cyan>;</font> return <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font><font color=Cyan>}</font>-<a name="(line112)"></a>-<a name="(line113)"></a><a name="chainl"></a>chainl <font color=Red>::</font> Parser a <font color=Red>-></font> Parser <font color=Cyan>(</font>a <font color=Red>-></font> a <font color=Red>-></font> a<font color=Cyan>)</font> <font color=Red>-></font> a <font color=Red>-></font> Parser a-<a name="(line114)"></a>chainl p op v <font color=Red>=</font> <font color=Cyan>(</font>p <font color=Cyan>`chainl1`</font> op<font color=Cyan>)</font> <font color=Cyan>+++</font> return v-<a name="(line115)"></a>-<a name="(line116)"></a><a name="chainl1"></a>chainl1 <font color=Red>::</font> Parser a <font color=Red>-></font> Parser <font color=Cyan>(</font>a <font color=Red>-></font> a <font color=Red>-></font> a<font color=Cyan>)</font> <font color=Red>-></font> Parser a-<a name="(line117)"></a><a name="chainl1"></a>p <font color=Cyan>`chainl1`</font> op <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> p<font color=Cyan>;</font> rest x<font color=Cyan>}</font>-<a name="(line118)"></a> <font color=Green><u>where</u></font>-<a name="(line119)"></a> rest x <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>f <font color=Red><-</font> op<font color=Cyan>;</font> y <font color=Red><-</font> p<font color=Cyan>;</font> rest <font color=Cyan>(</font>f x y<font color=Cyan>)</font><font color=Cyan>}</font>-<a name="(line120)"></a> <font color=Cyan>+++</font> return x-<a name="(line121)"></a>-<a name="(line122)"></a><a name="chainr"></a>chainr <font color=Red>::</font> Parser a <font color=Red>-></font> Parser <font color=Cyan>(</font>a <font color=Red>-></font> a <font color=Red>-></font> a<font color=Cyan>)</font> <font color=Red>-></font> a <font color=Red>-></font> Parser a-<a name="(line123)"></a>chainr p op v <font color=Red>=</font> <font color=Cyan>(</font>p <font color=Cyan>`chainr1`</font> op<font color=Cyan>)</font> <font color=Cyan>+++</font> return v-<a name="(line124)"></a>-<a name="(line125)"></a><a name="chainr1"></a>chainr1 <font color=Red>::</font> Parser a <font color=Red>-></font> Parser <font color=Cyan>(</font>a <font color=Red>-></font> a <font color=Red>-></font> a<font color=Cyan>)</font> <font color=Red>-></font> Parser a-<a name="(line126)"></a><a name="chainr1"></a>p <font color=Cyan>`chainr1`</font> op <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> p<font color=Cyan>;</font> rest x<font color=Cyan>}</font>-<a name="(line127)"></a> <font color=Green><u>where</u></font>-<a name="(line128)"></a> rest x <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>f <font color=Red><-</font> op<font color=Cyan>;</font> y <font color=Red><-</font> p <font color=Cyan>`chainr1`</font> op<font color=Cyan>;</font> return <font color=Cyan>(</font>f x y<font color=Cyan>)</font><font color=Cyan>}</font>-<a name="(line129)"></a> <font color=Cyan>+++</font> return x-<a name="(line130)"></a>-<a name="(line131)"></a><a name="ops"></a>ops <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>Parser a<font color=Cyan>,</font> b<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-></font> Parser b-<a name="(line132)"></a>ops xs <font color=Red>=</font> foldr1 <font color=Cyan>(</font><font color=Cyan>+++</font><font color=Cyan>)</font> <font color=Red>[</font><font color=Green><u>do</u></font> <font color=Cyan>{</font>p<font color=Cyan>;</font> return op<font color=Cyan>}</font> <font color=Red>|</font> <font color=Cyan>(</font>p<font color=Cyan>,</font>op<font color=Cyan>)</font> <font color=Red><-</font> xs<font color=Red>]</font>-<a name="(line133)"></a>-<a name="(line134)"></a><a name="bracket"></a>bracket <font color=Red>::</font> Parser a <font color=Red>-></font> Parser b <font color=Red>-></font> Parser c <font color=Red>-></font> Parser b-<a name="(line135)"></a>bracket open p close <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>open<font color=Cyan>;</font> x <font color=Red><-</font> p<font color=Cyan>;</font> close<font color=Cyan>;</font> return x<font color=Cyan>}</font>-<a name="(line136)"></a>-<a name="(line137)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line138)"></a><font color=Blue>-- * Useful parsers</font>-<a name="(line139)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line140)"></a>-<a name="(line141)"></a><a name="char"></a>char <font color=Red>::</font> Char <font color=Red>-></font> Parser Char-<a name="(line142)"></a>char x <font color=Red>=</font> sat <font color=Cyan>(</font><font color=Red>\</font>y <font color=Red>-></font> x <font color=Cyan>==</font> y<font color=Cyan>)</font>-<a name="(line143)"></a>-<a name="(line144)"></a><a name="digit"></a>digit <font color=Red>::</font> Parser Char-<a name="(line145)"></a>digit <font color=Red>=</font> sat isDigit-<a name="(line146)"></a>-<a name="(line147)"></a><a name="lower"></a>lower <font color=Red>::</font> Parser Char-<a name="(line148)"></a>lower <font color=Red>=</font> sat isLower-<a name="(line149)"></a>-<a name="(line150)"></a><a name="upper"></a>upper <font color=Red>::</font> Parser Char-<a name="(line151)"></a>upper <font color=Red>=</font> sat isUpper-<a name="(line152)"></a>-<a name="(line153)"></a><a name="letter"></a>letter <font color=Red>::</font> Parser Char-<a name="(line154)"></a>letter <font color=Red>=</font> sat isAlpha-<a name="(line155)"></a>-<a name="(line156)"></a><a name="alphanum"></a>alphanum <font color=Red>::</font> Parser Char-<a name="(line157)"></a>alphanum <font color=Red>=</font> sat isAlphaNum <font color=Cyan>+++</font> char <font color=Magenta>'_'</font>-<a name="(line158)"></a>-<a name="(line159)"></a><a name="string"></a>string <font color=Red>::</font> String <font color=Red>-></font> Parser String-<a name="(line160)"></a>string <font color=Magenta>""</font> <font color=Red>=</font> return <font color=Magenta>""</font>-<a name="(line161)"></a>string <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>char x<font color=Cyan>;</font> string xs<font color=Cyan>;</font> return <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font><font color=Cyan>}</font>-<a name="(line162)"></a>-<a name="(line163)"></a><a name="ident"></a>ident <font color=Red>::</font> Parser String-<a name="(line164)"></a>ident <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> lower<font color=Cyan>;</font> xs <font color=Red><-</font> many alphanum<font color=Cyan>;</font> return <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font><font color=Cyan>}</font>-<a name="(line165)"></a>-<a name="(line166)"></a><a name="nat"></a>nat <font color=Red>::</font> Parser Int-<a name="(line167)"></a>nat <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> digit<font color=Cyan>;</font> return <font color=Cyan>(</font>fromEnum x <font color=Blue>-</font> fromEnum <font color=Magenta>'0'</font><font color=Cyan>)</font><font color=Cyan>}</font> <font color=Cyan>`chainl1`</font> return op-<a name="(line168)"></a> <font color=Green><u>where</u></font>-<a name="(line169)"></a> m <font color=Cyan>`op`</font> n <font color=Red>=</font> <font color=Magenta>10</font><font color=Cyan>*</font>m <font color=Cyan>+</font> n-<a name="(line170)"></a>-<a name="(line171)"></a><a name="int"></a>int <font color=Red>::</font> Parser Int-<a name="(line172)"></a>int <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>char <font color=Magenta>'-'</font><font color=Cyan>;</font> n <font color=Red><-</font> nat<font color=Cyan>;</font> return <font color=Cyan>(</font><font color=Blue>-</font>n<font color=Cyan>)</font><font color=Cyan>}</font> <font color=Cyan>+++</font> nat-<a name="(line173)"></a>-<a name="(line174)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line175)"></a><font color=Blue>-- * Lexical combinators</font>-<a name="(line176)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line177)"></a>-<a name="(line178)"></a><a name="spaces"></a>spaces <font color=Red>::</font> Parser ()-<a name="(line179)"></a>spaces <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>many1 <font color=Cyan>(</font>sat isSpace<font color=Cyan>)</font><font color=Cyan>;</font> return ()<font color=Cyan>}</font>-<a name="(line180)"></a>-<a name="(line181)"></a><a name="comment"></a>comment <font color=Red>::</font> Parser ()-<a name="(line182)"></a><font color=Blue>--comment = do {string "--"; many (sat (\x -> x /= '\n')); return ()}</font>-<a name="(line183)"></a><font color=Blue>--comment = do </font>-<a name="(line184)"></a><font color=Blue>-- _ <- string "--"</font>-<a name="(line185)"></a><font color=Blue>-- _ <- many (sat (\x -> x /= '\n'))</font>-<a name="(line186)"></a><font color=Blue>-- return ()</font>-<a name="(line187)"></a>comment <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line188)"></a> bracket <font color=Cyan>(</font>string <font color=Magenta>"/*"</font><font color=Cyan>)</font> <font color=Cyan>(</font>many item<font color=Cyan>)</font> <font color=Cyan>(</font>string <font color=Magenta>"*/"</font><font color=Cyan>)</font>-<a name="(line189)"></a> return ()-<a name="(line190)"></a>-<a name="(line191)"></a><a name="junk"></a>junk <font color=Red>::</font> Parser ()-<a name="(line192)"></a>junk <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>many <font color=Cyan>(</font>spaces <font color=Cyan>+++</font> comment<font color=Cyan>)</font><font color=Cyan>;</font> return ()<font color=Cyan>}</font>-<a name="(line193)"></a>-<a name="(line194)"></a><a name="skip"></a>skip <font color=Red>::</font> Parser a <font color=Red>-></font> Parser a-<a name="(line195)"></a>skip p <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>junk<font color=Cyan>;</font> p<font color=Cyan>}</font>-<a name="(line196)"></a>-<a name="(line197)"></a><a name="token"></a>token <font color=Red>::</font> Parser a <font color=Red>-></font> Parser a-<a name="(line198)"></a>token p <font color=Red>=</font> <font color=Green><u>do</u></font> <font color=Cyan>{</font>v <font color=Red><-</font> p<font color=Cyan>;</font> junk<font color=Cyan>;</font> return v<font color=Cyan>}</font>-<a name="(line199)"></a>-<a name="(line200)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line201)"></a><font color=Blue>-- * Token parsers</font>-<a name="(line202)"></a><font color=Blue>-- ------------------------------------------------------------</font>-<a name="(line203)"></a>-<a name="(line204)"></a><a name="natural"></a>natural <font color=Red>::</font> Parser Int-<a name="(line205)"></a>natural <font color=Red>=</font> token nat-<a name="(line206)"></a>-<a name="(line207)"></a><a name="integer"></a>integer <font color=Red>::</font> Parser Int-<a name="(line208)"></a>integer <font color=Red>=</font> token int-<a name="(line209)"></a>-<a name="(line210)"></a><a name="symbol"></a>symbol <font color=Red>::</font> String <font color=Red>-></font> Parser String-<a name="(line211)"></a>symbol xs <font color=Red>=</font> token <font color=Cyan>(</font>string xs<font color=Cyan>)</font>-<a name="(line212)"></a>-<a name="(line213)"></a><a name="identifier"></a>identifier <font color=Red>::</font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> Parser String-<a name="(line214)"></a>identifier ks <font color=Red>=</font> token <font color=Cyan>(</font><font color=Green><u>do</u></font> <font color=Cyan>{</font>x <font color=Red><-</font> ident<font color=Cyan>;</font>-<a name="(line215)"></a> <font color=Green><u>if</u></font> not <font color=Cyan>(</font>elem x ks<font color=Cyan>)</font> <font color=Green><u>then</u></font> return x-<a name="(line216)"></a> <font color=Green><u>else</u></font> return mzero<font color=Cyan>}</font><font color=Cyan>)</font>-<a name="(line217)"></a>-<a name="(line218)"></a><font color=Blue>------------------------------------------------------------------------------</font>-</pre>-</html>
− docs/cpphs/cpphs.html
@@ -1,113 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">-<html>-<pre><a name="(line1)"></a><font color=Blue>{--<a name="(line2)"></a>-- The main program wrapper for cpphs, a simple C pre-processor-<a name="(line3)"></a>-- written in Haskell.-<a name="(line4)"></a>-<a name="(line5)"></a>-- Author: Malcolm Wallace, 2004-<a name="(line6)"></a>-- This file is licensed under the GPL. Note however, that all other-<a name="(line7)"></a>-- modules used by it are either distributed under the LGPL, or are Haskell'98.-<a name="(line8)"></a>---<a name="(line9)"></a>-- Thus, when compiled as a standalone executable, this program will fall-<a name="(line10)"></a>-- under the GPL.-<a name="(line11)"></a>-}</font>-<a name="(line12)"></a><font color=Green><u>module</u></font> Main <font color=Green><u>where</u></font>-<a name="(line13)"></a>-<a name="(line14)"></a><font color=Green><u>import</u></font> System <font color=Cyan>(</font> getArgs<font color=Cyan>,</font> getProgName<font color=Cyan>,</font> exitWith<font color=Cyan>,</font> ExitCode<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font> <font color=Cyan>)</font>-<a name="(line15)"></a><font color=Green><u>import</u></font> Maybe-<a name="(line16)"></a><font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Preprocessor<font color=Cyan>.</font>Cpphs <font color=Cyan>(</font> runCpphs<font color=Cyan>,</font> CpphsOptions<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> parseOptions <font color=Cyan>)</font>-<a name="(line17)"></a><font color=Green><u>import</u></font> IO <font color=Cyan>(</font> stdout<font color=Cyan>,</font> IOMode<font color=Cyan>(</font>WriteMode<font color=Cyan>)</font><font color=Cyan>,</font> openFile<font color=Cyan>,</font> hPutStr<font color=Cyan>,</font> hFlush<font color=Cyan>,</font> hClose <font color=Cyan>)</font>-<a name="(line18)"></a><font color=Green><u>import</u></font> Monad <font color=Cyan>(</font> when <font color=Cyan>)</font>-<a name="(line19)"></a><font color=Green><u>import</u></font> List <font color=Cyan>(</font> isPrefixOf <font color=Cyan>)</font>-<a name="(line20)"></a>-<a name="(line21)"></a><a name="version"></a>version <font color=Red>::</font> String-<a name="(line22)"></a>version <font color=Red>=</font> <font color=Magenta>"1.6"</font>-<a name="(line23)"></a>-<a name="(line24)"></a><a name="main"></a>main <font color=Red>::</font> IO ()-<a name="(line25)"></a>main <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line26)"></a> args <font color=Red><-</font> getArgs-<a name="(line27)"></a> args <font color=Red><-</font> return <font color=Cyan>$</font> <font color=Green><u>if</u></font> <font color=Magenta>"--cpp"</font> <font color=Cyan>`elem`</font> args <font color=Green><u>then</u></font> convertArgs args <font color=Green><u>else</u></font> args-<a name="(line28)"></a> -<a name="(line29)"></a> prog <font color=Red><-</font> getProgName-<a name="(line30)"></a> when <font color=Cyan>(</font><font color=Magenta>"--version"</font> <font color=Cyan>`elem`</font> args<font color=Cyan>)</font>-<a name="(line31)"></a> <font color=Cyan>(</font><font color=Green><u>do</u></font> putStrLn <font color=Cyan>(</font>prog<font color=Cyan>++</font><font color=Magenta>" "</font><font color=Cyan>++</font>version<font color=Cyan>)</font>-<a name="(line32)"></a> exitWith ExitSuccess<font color=Cyan>)</font>-<a name="(line33)"></a> when <font color=Cyan>(</font><font color=Magenta>"--help"</font> <font color=Cyan>`elem`</font> args<font color=Cyan>)</font>-<a name="(line34)"></a> <font color=Cyan>(</font><font color=Green><u>do</u></font> putStrLn <font color=Cyan>(</font><font color=Magenta>"Usage: "</font><font color=Cyan>++</font>prog-<a name="(line35)"></a> <font color=Cyan>++</font><font color=Magenta>" [file ...] [ -Dsym | -Dsym=val | -Ipath ]* [-Ofile]\n"</font>-<a name="(line36)"></a> <font color=Cyan>++</font><font color=Magenta>"\t\t[--nomacro] [--noline] [--pragma] [--text]\n"</font>-<a name="(line37)"></a> <font color=Cyan>++</font><font color=Magenta>"\t\t[--strip] [--strip-eol] [--hashes] [--layout] [--unlit]\n"</font>-<a name="(line38)"></a> <font color=Cyan>++</font><font color=Magenta>"\t\t[ --cpp std-cpp-options ] [--include=filename]"</font><font color=Cyan>)</font>-<a name="(line39)"></a> exitWith ExitSuccess<font color=Cyan>)</font>-<a name="(line40)"></a>-<a name="(line41)"></a> <font color=Green><u>let</u></font> parsedArgs <font color=Red>=</font> parseOptions args-<a name="(line42)"></a> options <font color=Red>=</font> fromRight parsedArgs-<a name="(line43)"></a> ins <font color=Red>=</font> infiles options-<a name="(line44)"></a> outs <font color=Red>=</font> outfiles options-<a name="(line45)"></a> out <font color=Red>=</font> listToMaybe outs-<a name="(line46)"></a> -<a name="(line47)"></a> when <font color=Cyan>(</font>isLeft parsedArgs<font color=Cyan>)</font>-<a name="(line48)"></a> <font color=Cyan>(</font><font color=Green><u>do</u></font> putStrLn <font color=Cyan>$</font> <font color=Magenta>"Unknown option "</font><font color=Cyan>++</font>fromLeft parsedArgs-<a name="(line49)"></a> <font color=Cyan>++</font><font color=Magenta>", for valid options try "</font><font color=Cyan>++</font>prog<font color=Cyan>++</font><font color=Magenta>" --help\n"</font>-<a name="(line50)"></a> exitWith <font color=Cyan>(</font>ExitFailure <font color=Magenta>1</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line51)"></a> when <font color=Cyan>(</font>length outs <font color=Cyan>></font> <font color=Magenta>1</font><font color=Cyan>)</font>-<a name="(line52)"></a> <font color=Cyan>(</font><font color=Green><u>do</u></font> putStrLn <font color=Cyan>$</font> <font color=Magenta>"At most one output file (-O) can be specified"</font>-<a name="(line53)"></a> exitWith <font color=Cyan>(</font>ExitFailure <font color=Magenta>2</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line54)"></a> <font color=Green><u>if</u></font> null ins <font color=Green><u>then</u></font> execute options out Nothing-<a name="(line55)"></a> <font color=Green><u>else</u></font> mapM_ <font color=Cyan>(</font>execute options out<font color=Cyan>)</font> <font color=Cyan>(</font>map Just ins<font color=Cyan>)</font>-<a name="(line56)"></a>-<a name="(line57)"></a><a name="execute"></a><font color=Blue>-- | Execute the preprocessor.</font>-<a name="(line58)"></a><font color=Blue>-- If the filepath is Nothing then default to stdout\/stdin as appropriate.</font>-<a name="(line59)"></a>execute <font color=Red>::</font> CpphsOptions <font color=Red>-></font> Maybe FilePath <font color=Red>-></font> Maybe FilePath <font color=Red>-></font> IO ()-<a name="(line60)"></a>execute opts ofile infile <font color=Red>=</font>-<a name="(line61)"></a> <font color=Green><u>let</u></font> <font color=Cyan>(</font>filename<font color=Cyan>,</font> readIt<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>case</u></font> infile <font color=Green><u>of</u></font>-<a name="(line62)"></a> Just x <font color=Red>-></font> <font color=Cyan>(</font>x<font color=Cyan>,</font> readFile x<font color=Cyan>)</font>-<a name="(line63)"></a> Nothing <font color=Red>-></font> <font color=Cyan>(</font><font color=Magenta>"stdin"</font><font color=Cyan>,</font> getContents<font color=Cyan>)</font>-<a name="(line64)"></a> output Nothing x <font color=Red>=</font> <font color=Green><u>do</u></font> putStr x<font color=Cyan>;</font> hFlush stdout-<a name="(line65)"></a> output <font color=Cyan>(</font>Just f<font color=Cyan>)</font> x <font color=Red>=</font> writeFile f x-<a name="(line66)"></a> <font color=Green><u>in</u></font> <font color=Green><u>do</u></font> contents <font color=Red><-</font> readIt-<a name="(line67)"></a> output ofile <font color=Cyan>(</font>runCpphs opts filename contents<font color=Cyan>)</font>-<a name="(line68)"></a>-<a name="(line69)"></a><a name="isLeft"></a>isLeft <font color=Cyan>(</font>Left <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> True-<a name="(line70)"></a>isLeft <font color=Green><u>_</u></font> <font color=Red>=</font> False-<a name="(line71)"></a>-<a name="(line72)"></a><a name="fromLeft"></a>fromLeft <font color=Cyan>(</font>Left x<font color=Cyan>)</font> <font color=Red>=</font> x-<a name="(line73)"></a><a name="fromRight"></a>fromRight <font color=Cyan>(</font>Right x<font color=Cyan>)</font> <font color=Red>=</font> x-<a name="(line74)"></a>-<a name="(line75)"></a><a name="ConvertArgs"></a><font color=Blue>-- | Convert commandline options to remain compatible with cpp.</font>-<a name="(line76)"></a><a name="ConvertArgs"></a><font color=Blue>-- Based on a shell script cpphs.compat</font>-<a name="(line77)"></a><a name="ConvertArgs"></a><font color=Green><u>data</u></font> ConvertArgs <font color=Red>=</font> ConvertArgs <font color=Cyan>{</font> traditional<font color=Cyan>,</font> strip <font color=Red>::</font> Bool-<a name="(line78)"></a> <font color=Cyan>,</font> infile<font color=Cyan>,</font> outfile <font color=Red>::</font> String <font color=Cyan>}</font>-<a name="(line79)"></a>-<a name="(line80)"></a><a name="convertArgs"></a>convertArgs <font color=Red>::</font> <font color=Red>[</font>String<font color=Red>]</font> <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="(line81)"></a>convertArgs xs <font color=Red>=</font> f <font color=Cyan>(</font>ConvertArgs False True <font color=Magenta>"-"</font> <font color=Magenta>"-"</font><font color=Cyan>)</font> xs-<a name="(line82)"></a> <font color=Green><u>where</u></font>-<a name="(line83)"></a> flg <font color=Red>=</font> <font color=Magenta>"DUI"</font>-<a name="(line84)"></a> -<a name="(line85)"></a> f e <font color=Cyan>(</font><font color=Red>[</font><font color=Magenta>'-'</font><font color=Cyan>,</font>r<font color=Red>]</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> r <font color=Cyan>`elem`</font> flg <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>r<font color=Red><b>:</b></font>x<font color=Cyan>)</font> <font color=Red><b>:</b></font> f e xs-<a name="(line86)"></a> f e <font color=Cyan>(</font>x<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>r<font color=Red><b>:</b></font><font color=Green><u>_</u></font><font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> r <font color=Cyan>`elem`</font> flg <font color=Red>=</font> x <font color=Red><b>:</b></font> f e xs-<a name="(line87)"></a> f e <font color=Cyan>(</font><font color=Magenta>"-o"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'O'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font> <font color=Red><b>:</b></font> f e xs-<a name="(line88)"></a> f e <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'o'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font><font color=Magenta>'O'</font><font color=Red><b>:</b></font>drop <font color=Magenta>2</font> x<font color=Cyan>)</font> <font color=Red><b>:</b></font> f e xs-<a name="(line89)"></a> f e <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"ansi"</font> <font color=Cyan>`isPrefixOf`</font> x <font color=Red>=</font> f e<font color=Cyan>{</font>traditional<font color=Red>=</font>False<font color=Cyan>}</font> xs-<a name="(line90)"></a> <font color=Red>|</font> <font color=Magenta>"traditional"</font> <font color=Cyan>`isPrefixOf`</font> x <font color=Red>=</font> f e<font color=Cyan>{</font>traditional<font color=Red>=</font>True<font color=Cyan>}</font> xs-<a name="(line91)"></a> <font color=Red>|</font> <font color=Magenta>"std"</font> <font color=Cyan>`isPrefixOf`</font> x <font color=Red>=</font> f e xs <font color=Blue>-- ignore language spec</font>-<a name="(line92)"></a> f e <font color=Cyan>(</font><font color=Magenta>"-x"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> f e xs <font color=Blue>-- ignore language spec</font>-<a name="(line93)"></a> f e <font color=Cyan>(</font><font color=Magenta>"-include"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"--include="</font><font color=Cyan>++</font>x<font color=Cyan>)</font> <font color=Red><b>:</b></font> f e xs-<a name="(line94)"></a> f e <font color=Cyan>(</font><font color=Magenta>"-P"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"--noline"</font> <font color=Red><b>:</b></font> f e xs-<a name="(line95)"></a> f e <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>|</font> x <font color=Cyan>==</font> <font color=Magenta>"-C"</font> <font color=Cyan>||</font> x <font color=Cyan>==</font> <font color=Magenta>"-CC"</font> <font color=Red>=</font> f e<font color=Cyan>{</font>strip<font color=Red>=</font>False<font color=Cyan>}</font> xs-<a name="(line96)"></a> f e <font color=Cyan>(</font><font color=Magenta>"-A"</font><font color=Red><b>:</b></font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> f e xs <font color=Blue>-- strip assertions</font>-<a name="(line97)"></a> f e <font color=Cyan>(</font><font color=Magenta>"--help"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"--help"</font> <font color=Red><b>:</b></font> f e xs-<a name="(line98)"></a> f e <font color=Cyan>(</font><font color=Magenta>"--version"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"--version"</font> <font color=Red><b>:</b></font> f e xs-<a name="(line99)"></a> f e <font color=Cyan>(</font><font color=Magenta>"-version"</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"--version"</font> <font color=Red><b>:</b></font> f e xs-<a name="(line100)"></a> f e <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'-'</font><font color=Red><b>:</b></font>x<font color=Cyan>)</font><font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> f e xs <font color=Blue>-- strip all other flags</font>-<a name="(line101)"></a> f e <font color=Cyan>(</font>x<font color=Red><b>:</b></font>xs<font color=Cyan>)</font> <font color=Red>=</font> f <font color=Cyan>(</font><font color=Green><u>if</u></font> infile e <font color=Cyan>==</font> <font color=Magenta>"-"</font> <font color=Green><u>then</u></font> e<font color=Cyan>{</font>infile<font color=Red>=</font>x<font color=Cyan>}</font> <font color=Green><u>else</u></font> e<font color=Cyan>{</font>outfile<font color=Red>=</font>x<font color=Cyan>}</font><font color=Cyan>)</font> xs-<a name="(line102)"></a> -<a name="(line103)"></a> f e [] <font color=Red>=</font> <font color=Red>[</font><font color=Magenta>"--hashes"</font> <font color=Red>|</font> not <font color=Cyan>(</font>traditional e<font color=Cyan>)</font><font color=Red>]</font> <font color=Cyan>++</font>-<a name="(line104)"></a> <font color=Red>[</font><font color=Magenta>"--strip"</font> <font color=Red>|</font> traditional e <font color=Cyan>&&</font> strip e<font color=Red>]</font> <font color=Cyan>++</font>-<a name="(line105)"></a> <font color=Red>[</font><font color=Magenta>"--strip-eol"</font> <font color=Red>|</font> not <font color=Cyan>(</font>traditional e<font color=Cyan>)</font> <font color=Cyan>&&</font> strip e<font color=Red>]</font> <font color=Cyan>++</font>-<a name="(line106)"></a> <font color=Red>[</font>infile e<font color=Red>]</font> <font color=Cyan>++</font>-<a name="(line107)"></a> <font color=Red>[</font><font color=Magenta>"-O"</font> <font color=Cyan>++</font> outfile e <font color=Red>|</font> outfile e <font color=Cyan>/=</font> <font color=Magenta>"-"</font><font color=Red>]</font>-<a name="(line108)"></a>-<a name="(line109)"></a>-</pre>-</html>
− docs/cpphs/doc-index-43.html
@@ -1,146 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (+)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->+++</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3A%2B%2B%2B"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-A.html
@@ -1,188 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (A)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Arg</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3AArg"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->ArgOrText</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AArgOrText"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->addcol</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Aaddcol"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->alphanum</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aalphanum"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->ansi</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Aansi"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Aansi"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->arguments</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3Aarguments"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-B.html
@@ -1,180 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (B)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry" COLSPAN="2"->BoolOptions</TD-></TR-><TR-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ABoolOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#t%3ABoolOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3ABoolOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3ABoolOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->boolopts</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Aboolopts"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Aboolopts"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->bracket</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Abracket"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-C.html
@@ -1,264 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (C)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Cmd</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3ACmd"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry" COLSPAN="2"->ConvertArgs</TD-></TR-><TR-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#t%3AConvertArgs"->Main</A-></TD-></TR-><TR-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3AConvertArgs"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry" COLSPAN="2"->CpphsOptions</TD-></TR-><TR-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#t%3ACpphsOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#t%3ACpphsOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3ACpphsOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3ACpphsOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->chainl</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Achainl"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->chainl1</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Achainl1"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->chainr</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Achainr"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->chainr1</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Achainr1"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->char</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Achar"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->comment</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Acomment"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->convertArgs</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3AconvertArgs"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry"->cppIfdef</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-CppIfdef.html#v%3AcppIfdef"->Language.Preprocessor.Cpphs.CppIfdef</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AcppIfdef"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->cppline</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Acppline"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-D.html
@@ -1,216 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (D)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->deWordStyle</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3AdeWordStyle"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->defaultBoolOptions</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3AdefaultBoolOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AdefaultBoolOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->defaultCpphsOptions</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3AdefaultCpphsOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AdefaultCpphsOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->defineMacro</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-MacroPass.html#v%3AdefineMacro"->Language.Preprocessor.Cpphs.MacroPass</A-></TD-></TR-><TR-><TD CLASS="indexentry"->definedST</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#v%3AdefinedST"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->defines</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Adefines"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Adefines"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->deleteST</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#v%3AdeleteST"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->digit</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Adigit"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->directory</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Adirectory"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-E.html
@@ -1,170 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (E)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->emptyST</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#v%3AemptyST"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->execute</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Aexecute"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry"->expandMacro</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3AexpandMacro"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->expansion</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3Aexpansion"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-F.html
@@ -1,154 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (F)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->filename</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Afilename"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->first</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Afirst"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-H.html
@@ -1,146 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (H)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->HashDefine</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#t%3AHashDefine"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-I.html
@@ -1,230 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (I)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Ident</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3AIdent"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->IndTree</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3AIndTree"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->ident</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aident"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->identifier</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aidentifier"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->includes</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Aincludes"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Aincludes"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->infile</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Ainfile"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry"->infiles</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Ainfiles"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Ainfiles"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->insertST</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#v%3AinsertST"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->int</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aint"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->integer</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Ainteger"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->item</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aitem"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-J.html
@@ -1,146 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (J)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->junk</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Ajunk"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-L.html
@@ -1,234 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (L)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->LineDrop</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3ALineDrop"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->lang</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Alang"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Alang"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->layout</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Alayout"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Alayout"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->letter</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aletter"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->linebreaks</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3Alinebreaks"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->lineno</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Alineno"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->linesCpp</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3AlinesCpp"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->literate</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Aliterate"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Aliterate"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->locations</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Alocations"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Alocations"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->lookupST</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#v%3AlookupST"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->lower</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Alower"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-M.html
@@ -1,190 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (M)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->MacroExpansion</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3AMacroExpansion"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->macroPass</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-MacroPass.html#v%3AmacroPass"->Language.Preprocessor.Cpphs.MacroPass</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AmacroPass"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->macros</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Amacros"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Amacros"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->main</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Amain"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry"->many</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Amany"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->many1</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Amany1"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-N.html
@@ -1,194 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (N)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->name</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3Aname"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->nat</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Anat"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->natural</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Anatural"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->newfile</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Anewfile"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->newline</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Anewline"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->newlines</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Anewlines"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->newpos</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Anewpos"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-O.html
@@ -1,172 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (O)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Other</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3AOther"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->ops</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aops"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->outfile</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Aoutfile"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry"->outfiles</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Aoutfiles"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Aoutfiles"->Language.Preprocessor.Cpphs</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-P.html
@@ -1,240 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (P)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->P</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3AP"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->Parser</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#t%3AParser"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->Pn</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3APn"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->Posn</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#t%3APosn"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->Pragma</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3APragma"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->papply</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Apapply"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->parseHashDefine</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3AparseHashDefine"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->parseMacroCall</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3AparseMacroCall"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->parseOptions</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3AparseOptions"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AparseOptions"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->pragma</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Apragma"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Apragma"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->preDefine</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-MacroPass.html#v%3ApreDefine"->Language.Preprocessor.Cpphs.MacroPass</A-></TD-></TR-><TR-><TD CLASS="indexentry"->preInclude</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3ApreInclude"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3ApreInclude"->Language.Preprocessor.Cpphs</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-R.html
@@ -1,172 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (R)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->readFirst</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-ReadFirst.html#v%3AreadFirst"->Language.Preprocessor.Cpphs.ReadFirst</A-></TD-></TR-><TR-><TD CLASS="indexentry"->replacement</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3Areplacement"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->reslash</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3Areslash"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->runCpphs</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-RunCpphs.html#v%3ArunCpphs"->Language.Preprocessor.Cpphs.RunCpphs</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3ArunCpphs"->Language.Preprocessor.Cpphs</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-S.html
@@ -1,246 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (S)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Str</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3AStr"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->SymTab</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html#t%3ASymTab"->Language.Preprocessor.Cpphs.SymTab</A-></TD-></TR-><TR-><TD CLASS="indexentry"->SymbolReplacement</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3ASymbolReplacement"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->sat</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Asat"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->sepby</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Asepby"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->sepby1</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Asepby1"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->skip</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Askip"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->spaces</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aspaces"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->string</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Astring"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->strip</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Astrip"->Main</A-></TD-></TR-><TR-><TD CLASS="indexentry"->stripC89</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3AstripC89"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AstripC89"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->stripEol</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3AstripEol"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3AstripEol"->Language.Preprocessor.Cpphs</A-></TD-></TR-><TR-><TD CLASS="indexentry"->symbol</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Asymbol"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-T.html
@@ -1,178 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (T)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Text</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html#v%3AText"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-></TR-><TR-><TD CLASS="indexentry"->tab</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Position.html#v%3Atab"->Language.Preprocessor.Cpphs.Position</A-></TD-></TR-><TR-><TD CLASS="indexentry"->token</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Atoken"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-><TR-><TD CLASS="indexentry"->tokenise</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#v%3Atokenise"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->traditional</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Atraditional"->Main</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-U.html
@@ -1,154 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (U)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->unlit</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Unlit.html#v%3Aunlit"->Language.Preprocessor.Unlit</A-></TD-></TR-><TR-><TD CLASS="indexentry"->upper</TD-><TD CLASS="indexlinks"-><A HREF="Text-ParserCombinators-HuttonMeijer.html#v%3Aupper"->Text.ParserCombinators.HuttonMeijer</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-V.html
@@ -1,146 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (V)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->version</TD-><TD CLASS="indexlinks"-><A HREF="Main.html#v%3Aversion"->Main</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index-W.html
@@ -1,156 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (W)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->WordStyle</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html#t%3AWordStyle"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-></TR-><TR-><TD CLASS="indexentry"->warnings</TD-><TD CLASS="indexlinks"-><A HREF="Language-Preprocessor-Cpphs-Options.html#v%3Awarnings"->Language.Preprocessor.Cpphs.Options</A->, <A HREF="Language-Preprocessor-Cpphs.html#v%3Awarnings"->Language.Preprocessor.Cpphs</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/doc-index.html
@@ -1,132 +0,0 @@-<!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->cpphs (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></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"->cpphs</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="section1"->Index</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-D.html"->D</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-H.html"->H</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-J.html"->J</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-U.html"->U</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-W.html"->W</A-></TD-><TD-><A HREF="doc-index-43.html"->+</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/cpphs/haddock.css
@@ -1,260 +0,0 @@-/* -------- Global things --------- */--BODY { - background-color: #ffffff;- color: #000000;- font-family: sans-serif;- } --A:link { color: #0000e0; text-decoration: none }-A:visited { color: #0000a0; text-decoration: none }-A:hover { background-color: #e0e0ff; text-decoration: none }--TABLE.vanilla {- width: 100%;- border-width: 0px;- /* I can't seem to specify cellspacing or cellpadding properly using CSS... */-}--TABLE.vanilla2 {- border-width: 0px;-}--/* <TT> font is a little too small in MSIE */-TT { font-size: 100%; }-PRE { font-size: 100%; }--LI P { margin: 0pt } --TD {- border-width: 0px;-}--TABLE.narrow {- border-width: 0px;-}--TD.s8 { height: 8px; }-TD.s15 { height: 15px; }--SPAN.keyword { text-decoration: underline; }--/* Resize the buttom image to match the text size */-IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }--/* --------- Contents page ---------- */--DIV.node {- padding-left: 3em;-}--DIV.cnode {- padding-left: 1.75em;-}--SPAN.pkg {- position: absolute;- left: 50em;-}--/* --------- Documentation elements ---------- */--TD.children {- padding-left: 25px;- }--TD.synopsis {- padding: 2px;- background-color: #f0f0f0;- font-family: monospace- }--TD.decl { - padding: 2px;- background-color: #f0f0f0; - font-family: monospace;- vertical-align: top;- }--TD.topdecl {- padding: 2px;- background-color: #f0f0f0;- font-family: monospace;- vertical-align: top;-}--TABLE.declbar {- border-spacing: 0px;- }--TD.declname {- width: 100%;- }--TD.declbut {- padding-left: 5px;- padding-right: 5px;- border-left-width: 1px;- border-left-color: #000099;- border-left-style: solid;- white-space: nowrap;- font-size: small;- }--/* - arg is just like decl, except that wrapping is not allowed. It is- used for function and constructor arguments which have a text box- to the right, where if wrapping is allowed the text box squashes up- the declaration by wrapping it.-*/-TD.arg { - padding: 2px;- background-color: #f0f0f0; - font-family: monospace;- vertical-align: top;- white-space: nowrap;- }--TD.recfield { padding-left: 20px }--TD.doc { - padding-top: 2px;- padding-left: 10px;- }--TD.ndoc { - padding: 2px;- }--TD.rdoc { - padding: 2px;- padding-left: 10px;- width: 100%;- }--TD.body { - padding-left: 10px- }--TD.pkg {- width: 100%;- padding-left: 10px-}--TD.indexentry {- vertical-align: top;- padding-right: 10px- }--TD.indexannot {- vertical-align: top;- padding-left: 20px;- white-space: nowrap- }--TD.indexlinks {- width: 100%- }--/* ------- Section Headings ------- */--TD.section1 {- padding-top: 15px;- font-weight: bold;- font-size: 150%- }--TD.section2 {- padding-top: 10px;- font-weight: bold;- font-size: 130%- }--TD.section3 {- padding-top: 5px;- font-weight: bold;- font-size: 110%- }--TD.section4 {- font-weight: bold;- font-size: 100%- }--/* -------------- The title bar at the top of the page */--TD.infohead {- color: #ffffff;- font-weight: bold;- padding-right: 10px;- text-align: left;-}--TD.infoval {- color: #ffffff;- padding-right: 10px;- text-align: left;-}--TD.topbar {- background-color: #000099;- padding: 5px;-}--TD.title {- color: #ffffff;- padding-left: 10px;- width: 100%- }--TD.topbut {- padding-left: 5px;- padding-right: 5px;- border-left-width: 1px;- border-left-color: #ffffff;- border-left-style: solid;- white-space: nowrap;- }--TD.topbut A:link {- color: #ffffff- }--TD.topbut A:visited {- color: #ffff00- }--TD.topbut A:hover {- background-color: #6060ff;- }--TD.topbut:hover {- background-color: #6060ff- }--TD.modulebar { - background-color: #0077dd;- padding: 5px;- border-top-width: 1px;- border-top-color: #ffffff;- border-top-style: solid;- }--/* --------- The page footer --------- */--TD.botbar {- background-color: #000099;- color: #ffffff;- padding: 5px- }-TD.botbar A:link {- color: #ffffff;- text-decoration: underline- }-TD.botbar A:visited {- color: #ffff00- }-TD.botbar A:hover {- background-color: #6060ff- }-
− docs/cpphs/haddock.js
@@ -1,15 +0,0 @@-// Haddock JavaScript utilities-function toggle(button,id)-{- var n = document.getElementById(id).style;- if (n.display == "none")- {- button.src = "minus.gif";- n.display = "block";- }- else- {- button.src = "plus.gif";- n.display = "none";- }-}
− docs/cpphs/haskell_icon.gif
binary file changed (911 → absent bytes)
− docs/cpphs/index.html
@@ -1,255 +0,0 @@-<!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->cpphs</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"->cpphs</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="section1"->Modules</TD-></TR-><TR-><TD-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"-><TR-><TD STYLE="width: 50em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"->Language</TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"-><TR-><TD STYLE="width: 48em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"->Preprocessor</TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"-><TR-><TD STYLE="width: 46em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"-><A HREF="Language-Preprocessor-Cpphs.html"->Language.Preprocessor.Cpphs</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-CppIfdef.html"->Language.Preprocessor.Cpphs.CppIfdef</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-HashDefine.html"->Language.Preprocessor.Cpphs.HashDefine</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-MacroPass.html"->Language.Preprocessor.Cpphs.MacroPass</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-Options.html"->Language.Preprocessor.Cpphs.Options</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-Position.html"->Language.Preprocessor.Cpphs.Position</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-ReadFirst.html"->Language.Preprocessor.Cpphs.ReadFirst</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-RunCpphs.html"->Language.Preprocessor.Cpphs.RunCpphs</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-SymTab.html"->Language.Preprocessor.Cpphs.SymTab</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Language-Preprocessor-Cpphs-Tokenise.html"->Language.Preprocessor.Cpphs.Tokenise</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Language-Preprocessor-Unlit.html"->Language.Preprocessor.Unlit</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 50em"-><A HREF="Main.html"->Main</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="width: 50em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"->Text</TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"-><TR-><TD STYLE="width: 48em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"->ParserCombinators</TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Text-ParserCombinators-HuttonMeijer.html"->Text.ParserCombinators.HuttonMeijer</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></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/cpphs/minus.gif
binary file changed (56 → absent bytes)
− docs/cpphs/plus.gif
binary file changed (59 → absent bytes)
docs/index.html view
@@ -101,7 +101,9 @@ <tt>#include</tt>'d, cpphs inserts <tt>#line</tt> directives for the same reason. Numbering should be correct even in the presence of line continuations. If you don't want <tt>#line</tt> directives in-the final output, use the <tt>--noline</tt> option.+the final output, use the <tt>--noline</tt> option, or if you would+prefer them in <tt>{-# LINE #-}</tt> Haskell pragma format, use the+<tt>--linepragma</tt> option. <p> Any syntax error in a cpp directive gives a warning message to stderr.@@ -114,7 +116,7 @@ <center><pre> Usage: cpphs [ filename | -Dsym | -Dsym=val | -Ipath ]+ [-Ofile] [--include=file]*- [--nomacro] [--noline] [--nowarn] [--pragma]+ [--nomacro] [--noline] [--linepragma] [--nowarn] [--pragma] [--strip] [--strip-eol] [--text] [--hashes] [--layout] [--unlit] [ --cpp compatopts ]@@ -152,6 +154,8 @@ <td>only process #ifdef's and #include's, do not expand macros</td></tr> <tr><td>--noline</td> <td>remove #line droppings from the output</td></tr>+<tr><td>--linepragma</td>+ <td>convert #line droppings into {-# LINE #-} format</td></tr> <tr><td>--nowarn</td> <td>suppress messages from missing #include files, or #warning</td></tr> <tr><td>--pragma</td>@@ -194,16 +198,13 @@ <b>Current stable version:</b> <p>-cpphs-1.9, release date 2009.09.07<br>+cpphs-1.10, release date 2010.01.30<br> By HTTP:-<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.9.tar.gz">.tar.gz</a>,-<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.9.zip">.zip</a>.-<a href="http://www.haskell.org/fedora/">Fedora package</a>,-<a href="http://packages.gentoo.org/packages/?category=dev-haskell;name=cpphs">Gentoo package</a>,-<a href="http://www.freshports.org/devel/hs-cpphs/">FreeBSD port</a>,-<a href="http://www.openbsd.org/cgi-bin/cvsweb/ports/devel/cpphs/">OpenBSD port</a>.+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.10.tar.gz">.tar.gz</a>,+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.10.zip">.zip</a>,+<a href="http://hackage.haskell.org/package/cpphs">Hackage</a>. <ul>-<li> Bugfix for #undef.+<li> New command-line flag: --linepragma </ul> <p>@@ -227,6 +228,15 @@ <b>Older versions:</b> <p>+cpphs-1.9, release date 2009.09.07<br>+By HTTP:+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.9.tar.gz">.tar.gz</a>,+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.9.zip">.zip</a>.+<ul>+<li> Bugfix for #undef.+</ul>++<p> cpphs-1.8, release date 2009.08.06<br> By HTTP: <a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.8.tar.gz">.tar.gz</a>,@@ -555,7 +565,7 @@ Malcolm.Wallace@cs.york.ac.uk</a> </ul> -<p><b>Copyright:</b> © 2004-2009 Malcolm Wallace,+<p><b>Copyright:</b> © 2004-2010 Malcolm Wallace, except for ParseLib (Copyright © 1995 Graham Hutton and Erik Meijer) <p><b>License:</b> The library modules in cpphs are distributed under
− tests/delete-me
@@ -1,6 +0,0 @@-#line 1 "parens"-----yes
+ tests/expect49 view
@@ -0,0 +1,5 @@+#line 1 "undef.hs"++wibble 3++this is FOO
+ tests/expect50 view
@@ -0,0 +1,9 @@+{-# LINE 1 "linepragma" #-}+{-# LINE 1 "./inclusion" #-}+hello world, this is an inclusion++{-# LINE 2 "linepragma" #-}+{-# LINE 2 "linepragma" #-}++{-# LINE 3 "linepragma" #-}+
+ tests/linepragma view
@@ -0,0 +1,5 @@+#include "inclusion"+#line 2 "linepragma"++#line 3 "linepragma"+
tests/runtests view
@@ -67,4 +67,5 @@ runtest "$CPPHS --unlit endcode-a" expect47 runtest "$CPPHS --unlit endcode-b" expect48 runtest "$CPPHS undef.hs" expect49+runtest "$CPPHS --linepragma linepragma" expect50 exit $FAIL
− tests/tmp-cpp
@@ -1,48 +0,0 @@-# 1 "igloo2"-# 1 "<built-in>"-# 1 "<command line>"-# 1 "igloo2"--------bar-1---foo-----baz-1---foo-----quux-1 ## 1-----bar---wibble-1 ## 1-----bar---
− tests/tmp-cpphs
@@ -1,45 +0,0 @@-#line 1 "igloo2"--------bar-1---foo-----baz-1-----bar---quux-1 ## 1-----bar---wibble-1 ## 1-----bar---
− tests/wrongline2
@@ -1,4 +0,0 @@-#define whereami __LINE__-whereami -#line 20 "foo"-__LINE__