-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parallel Parsing Processes -- @package parsek @version 1.0.1.2 module Text.ParserCombinators.Class -- | Parser class class (Monad p, Alternative p) => IsParser p where type family SymbolOf p satisfy :: IsParser p => (SymbolOf p -> Bool) -> p (SymbolOf p) look :: IsParser p => p [SymbolOf p] label :: IsParser p => String -> p a -> p a (<<|>) :: IsParser p => p a -> p a -> p a -- | Label a parser () :: IsParser p => p a -> String -> p a char :: (IsParser p, Show (SymbolOf p), Eq (SymbolOf p)) => SymbolOf p -> p (SymbolOf p) noneOf :: (IsParser p, (~) * (SymbolOf p) Char) => [Char] -> p Char oneOf :: (IsParser p, (~) * (SymbolOf p) Char) => [Char] -> p Char spaces :: (IsParser p, (~) * (SymbolOf p) Char) => p () space :: (IsParser p, (~) * (SymbolOf p) Char) => p Char newline :: (IsParser p, (~) * (SymbolOf p) Char) => p Char tab :: (IsParser p, (~) * (SymbolOf p) Char) => p Char upper :: (IsParser p, (~) * (SymbolOf p) Char) => p Char lower :: (IsParser p, (~) * (SymbolOf p) Char) => p Char alphaNum :: (IsParser p, (~) * (SymbolOf p) Char) => p Char letter :: (IsParser p, (~) * (SymbolOf p) Char) => p Char digit :: (IsParser p, (~) * (SymbolOf p) Char) => p Char hexDigit :: (IsParser p, (~) * (SymbolOf p) Char) => p Char octDigit :: (IsParser p, (~) * (SymbolOf p) Char) => p Char anySymbol :: IsParser p => p (SymbolOf p) string :: (IsParser p, SymbolOf p ~ Char) => String -> p String choice :: Alternative f => [f a] -> f a option :: Alternative f => a -> f a -> f a between :: Applicative m => m x -> m y -> m a -> m a -- | Greedy repetition: match as many occurences as possible of the -- argument. manyGreedy :: IsParser m => m a -> m [a] skipMany1 :: Alternative f => f a -> f () skipMany :: Alternative f => f a -> f () sepBy :: Alternative f => f a -> f a1 -> f [a] sepBy1 :: Alternative f => f a -> f a1 -> f [a] count :: Applicative m => Int -> m a -> m [a] chainr :: (Monad f, Alternative f) => f a -> f (a -> a -> a) -> a -> f a chainl :: (Monad f, Alternative f) => f a -> f (a -> a -> a) -> a -> f a chainr1 :: (Monad m, Alternative m) => m t -> m (t -> t -> t) -> m t chainl1 :: (Monad m, Alternative m) => m b -> m (b -> b -> b) -> m b munch :: IsParser m => (SymbolOf m -> Bool) -> m [SymbolOf m] munch1 :: IsParser m => (SymbolOf m -> Bool) -> m [SymbolOf m] endOfFile :: (IsParser p, MonadPlus p) => p () -- | This module provides the Parsek library developed by Koen -- Claessen in his functional pearl article Parallel Parsing -- Processes, Journal of Functional Programming, 14(6), 741–757, -- 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 module Text.ParserCombinators.Parsek data Parser s a -- | An intersection (nesting) of things currently expected type Expect s = [(String, Maybe s)] type ParseMethod s a r = P s a -> [s] -> ParseResult s r type ParseResult s r = Either (Err s) r mapErrR :: (s -> s') -> ParseResult s r -> ParseResult s' r parseFromFile :: Parser Char a -> ParseMethod Char a r -> FilePath -> IO (ParseResult Char r) parse :: Parser s a -> ParseMethod s a r -> [s] -> ParseResult s r shortestResult :: ParseMethod s a a longestResult :: ParseMethod s a a longestResults :: ParseMethod s a [a] allResults :: ParseMethod s a [a] allResultsStaged :: ParseMethod s a [[a]] completeResults :: ParseMethod s a [a] shortestResultWithLeftover :: ParseMethod s a (a, [s]) longestResultWithLeftover :: ParseMethod s a (a, [s]) longestResultsWithLeftover :: ParseMethod s a ([a], Maybe [s]) allResultsWithLeftover :: ParseMethod s a [(a, [s])] instance IsParser (Parser s) instance Alternative (Parser s) instance Applicative (Parser s) instance MonadPlus (Parser s) instance Monad (Parser s) instance Functor (Parser s) module Text.ParserCombinators.Parsek.Position data SourcePos Loc :: !FilePath -> !Int -> !Int -> SourcePos sourceName :: SourcePos -> !FilePath sourceLine :: SourcePos -> !Int sourceCol :: SourcePos -> !Int EOF :: SourcePos data Parser a getPosition :: Parser SourcePos parse :: FilePath -> Parser a -> (forall s. ParseMethod s a r) -> String -> ParseResult SourcePos r parseFromFile :: Parser a -> (forall s. ParseMethod s a r) -> FilePath -> IO (ParseResult SourcePos r) maybePosToPos :: Maybe SourcePos -> SourcePos anyChar :: IsParser p => p (SymbolOf p) instance Ord SourcePos instance Eq SourcePos instance Alternative Parser instance Applicative Parser instance Monad Parser instance Functor Parser instance MonadPlus Parser instance Show SourcePos instance IsParser Parser