| Copyright | (c) Edward Kmett 2011-2014 |
|---|---|
| License | BSD3 |
| Maintainer | ekmett@gmail.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Text.Trifecta.Parser
Description
- newtype Parser a = Parser {}
- manyAccum :: (a -> [a] -> [a]) -> Parser a -> Parser [a]
- data Step a
- feed :: Reducer t Rope => t -> Step r -> Step r
- starve :: Step a -> Result a
- stepParser :: Parser a -> Delta -> ByteString -> Step a
- stepResult :: Rope -> Result a -> Step a
- stepIt :: It Rope a -> Step a
- parseFromFile :: MonadIO m => Parser a -> String -> m (Maybe a)
- parseFromFileEx :: MonadIO m => Parser a -> String -> m (Result a)
- parseString :: Parser a -> Delta -> String -> Result a
- parseByteString :: Parser a -> Delta -> ByteString -> Result a
- parseTest :: (MonadIO m, Show a) => Parser a -> String -> m ()
Documentation
Constructors
| Parser | |
Feeding a parser more more input
stepParser :: Parser a -> Delta -> ByteString -> Step a Source
stepResult :: Rope -> Result a -> Step a Source
Parsing
parseFromFile :: MonadIO m => Parser a -> String -> m (Maybe a) Source
parseFromFile p filePath runs a parser p on the
input read from filePath using readFile. All diagnostic messages
emitted over the course of the parse attempt are shown to the user on the console.
main = do
result <- parseFromFile numbers "digits.txt"
case result of
Nothing -> return ()
Just a -> print $ sum aparseFromFileEx :: MonadIO m => Parser a -> String -> m (Result a) Source
parseFromFileEx p filePath runs a parser p on the
input read from filePath using readFile. Returns all diagnostic messages
emitted over the course of the parse and the answer if the parse was successful.
main = do
result <- parseFromFileEx (many number) "digits.txt"
case result of
Failure xs -> displayLn xs
Success a -> print (sum a)
parseByteString :: Parser a -> Delta -> ByteString -> Result a Source
parseByteString p delta i runs a parser p on i.