Copyright | (c) Edward Kmett 2011-2014 |
---|---|
License | BSD3 |
Maintainer | ekmett@gmail.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
- 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
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 a
parseFromFileEx :: 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
.