-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A build-system library and driver
--
-- Soon to appear.
@package cake
@version 1.0.0
-- | This module provides the Parsek library developed by Koen
-- Claessen in his functional pearl article Parallel Parsing
-- Processes, Journal of Functional Programming, 14(6), 741757,
-- Cambridge University Press, 2004:
--
-- http://www.cs.chalmers.se/~koen/pubs/entry-jfp04-parser.html
--
-- http://www.cs.chalmers.se/Cs/Grundutb/Kurser/afp/
--
--
-- http://www.cs.chalmers.se/Cs/Grundutb/Kurser/afp/code/week3/Parsek.hs
--
-- Copyright (C) 2003 Koen Claessen
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or (at
-- your option) any later version.
--
-- This program is distributed in the hope that it will be useful, but
-- WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-- 02110-1301 USA.
--
-- PureFP.Parsers.Stream
module Parsek
data Parser s a
type Expect = [String]
type Unexpect = [String]
satisfy :: Show s => (s -> Bool) -> Parser s s
look :: Parser s [s]
succeeds :: Parser s a -> Parser s (Maybe a)
string :: (Eq s, Show s) => [s] -> Parser s [s]
char :: (Eq t, Show t) => t -> Parser t t
noneOf :: (Eq a, Show a) => [a] -> Parser a a
oneOf :: (Eq a, Show a) => [a] -> Parser a a
spaces :: Parser Char ()
space :: Parser Char Char
newline :: Parser Char Char
tab :: Parser Char Char
upper :: Parser Char Char
lower :: Parser Char Char
alphaNum :: Parser Char Char
letter :: Parser Char Char
digit :: Parser Char Char
hexDigit :: Parser Char Char
octDigit :: Parser Char Char
anyChar :: Parser s s
anySymbol :: Parser s s
munch :: (s -> Bool) -> Parser s [s]
munch1 :: Show s => (s -> Bool) -> Parser s [s]
label :: Parser s a -> String -> Parser s a
(>) :: Parser s a -> String -> Parser s a
pzero :: Parser s a
(<|>) :: Parser s a -> Parser s a -> Parser s a
(<<|>) :: Parser s a -> Parser s a -> Parser s a
try :: Parser s a -> Parser s a
choice :: [Parser s a] -> Parser s a
option :: a -> Parser s a -> Parser s a
optional :: Parser s a -> Parser s ()
between :: Parser s open -> Parser s close -> Parser s a -> Parser s a
count :: Int -> Parser s a -> Parser s [a]
chainl1 :: Parser s a -> Parser s (a -> a -> a) -> Parser s a
chainl :: Parser s a -> Parser s (a -> a -> a) -> a -> Parser s a
chainr1 :: Parser s a -> Parser s (a -> a -> a) -> Parser s a
chainr :: Parser s a -> Parser s (a -> a -> a) -> a -> Parser s a
skipMany1 :: Parser s a -> Parser s ()
skipMany :: Parser s a -> Parser s ()
many1 :: Parser s a -> Parser s [a]
many :: Parser s a -> Parser s [a]
sepBy1 :: Parser s a -> Parser s sep -> Parser s [a]
sepBy :: Parser s a -> Parser s sep -> Parser s [a]
type ParseMethod s a e r = P s a -> [s] -> ParseResult e r
type ParseResult e r = Either (e, Expect, Unexpect) r
parseFromFile :: Parser Char a -> ParseMethod Char a e r -> FilePath -> IO (ParseResult e r)
parse :: Parser s a -> ParseMethod s a e r -> [s] -> ParseResult e r
shortestResult :: ParseMethod s a (Maybe s) a
longestResult :: ParseMethod s a (Maybe s) a
longestResults :: ParseMethod s a (Maybe s) [a]
allResults :: ParseMethod s a (Maybe s) [a]
allResultsStaged :: ParseMethod s a (Maybe s) [[a]]
completeResults :: ParseMethod s a (Maybe s) [a]
shortestResultWithLeftover :: ParseMethod s a (Maybe s) (a, [s])
longestResultWithLeftover :: ParseMethod s a (Maybe s) (a, [s])
longestResultsWithLeftover :: ParseMethod s a (Maybe s) ([a], Maybe [s])
allResultsWithLeftover :: ParseMethod s a (Maybe s) [(a, [s])]
completeResultsWithLine :: ParseMethod Char a Int [a]
instance MonadPlus (Parser s)
instance Monad (Parser s)
instance Functor (Parser s)
module Cake.Core
-- | Rules map names of files to actions building them.
type Rule = P (Act ())
type P = Parser Char
-- | Primitve for rule construction. The given action must produce files
-- matched by the pattern.
(==>) :: P x -> (x -> Act a) -> Rule
data Act a
-- | Run an action in the context of a set of rules.
cake :: Rule -> Act () -> IO ()
-- | Try to build a file using known rules; then mark it as used.
need :: FilePath -> Act ()
needs :: [FilePath] -> Act ()
-- | List directory contents by extension
list :: FilePath -> [Char] -> Act [String]
produce :: FilePath -> Act () -> Act ()
-- | Produce a file, using the given action.
produces :: [FilePath] -> Act () -> Act ()
-- | Run the action in only in a clobbered state
cut :: Act () -> Act ()
independently :: [Act a] -> Act ()
debug :: String -> Act ()
-- | Answer a question using the action given.
distill :: Question -> Act Answer -> Act Answer
-- | Return a stamp (hash) for a file
fileStamp :: FilePath -> Act Answer
-- | Run the argument in a clean context, and do not clobber the state even
-- if the argument does that. To use when the construction of the
-- argument actually does not depend on the previous questions asked, and
-- the constructed thing is atomic for the environment.
shielded :: Act a -> Act a
-- | Mark that a file is used. Do not chase dependencies on this file
-- though. (To be used eg. if a command uses an optional file).
use :: FilePath -> Act Answer
-- | Produce a file, using with the given action. BUT: no problem to
-- produce the same file multiple times.
updates :: [FilePath] -> Act () -> Act ()
data Question
FileContents :: FilePath -> Question
Listing :: FilePath -> String -> Question
Custom :: [String] -> Question
data Answer
Stamp :: (Maybe MD5Digest) -> Answer
Text :: [String] -> Answer
Failed :: Failure -> Answer
data Failure
CakeError :: String -> Failure
Panic :: Failure
ProcessError :: ExitCode -> Failure
-- | Is used within a monadic computation to begin exception processing.
throwError :: MonadError e m => forall a. e -> m a
instance Eq Status
instance Ord Status
instance Functor Act
instance Applicative Act
instance Monad Act
instance MonadIO Act
instance MonadState State Act
instance MonadWriter Written Act
instance MonadReader Context Act
instance MonadError Failure Act
instance Alternative P
instance Applicative P
instance Error Failure
instance Show Question
instance Binary Answer
instance Eq Answer
instance Show Answer
instance Binary Failure
instance Binary ExitCode
instance Eq Failure
instance Show Failure
instance Binary Question
instance Eq Question
instance Ord Question
module Cake.Process
processIO :: FilePath -> [String] -> Maybe FilePath -> Maybe FilePath -> Act ()
system :: [String] -> Act ()
module Cake.Actions
copy :: FilePath -> FilePath -> Act ()
mkdir :: FilePath -> Act ()
touch :: FilePath -> Act ()
readFile :: FilePath -> Act String
_pdflatex :: String -> Act ()
_bibtex :: String -> Act ()
pandoc :: [Char] -> [Char] -> [String] -> Act ()
graphviz :: String -> [Char] -> [Char] -> [String] -> Act ()
-- | Argument of a latex macro
argsOf :: [Char] -> [[Char]] -> [[Char]]
-- | Find the bib files used in a tex file
getBibFiles :: String -> Act Answer
(++?) :: Eq a => [a] -> [a] -> [a]
dropSpaces :: [Char] -> [Char]
includedTex :: FilePath -> Act [[Char]]
includedLhs :: FilePath -> Act [[Char]]
chaseDeps :: Monad m => (a -> m [a]) -> a -> m ()
pdflatexBibtex :: [Char] -> Act ()
_lhs2TeX :: String -> String -> Act ()
lhs2tex :: [Char] -> Act ()
module Cake.Rules
extension :: String -> P (String, String)
anyExtension :: [String] -> P (String, String)
simple :: String -> [Char] -> (String -> [Char] -> Act ()) -> Rule
tex_markdown_standalone :: Rule
pdf_tex :: Rule
tex_lhs :: Rule
allRules :: Parser Char (Act ())
module Cake.Marxup
ghcMake :: FilePath -> Act ()
marxup :: FilePath -> Act ()
mpost :: String -> Act ()
remove :: String -> Act ()
pdf_marxup :: FilePath -> Act ()
module Cake