module Taskell.Utility.Parser where import ClassyPrelude import Data.Attoparsec.Text only :: Parser a -> Parser a only :: Parser a -> Parser a only Parser a p = Parser a p Parser a -> Parser Text () -> Parser a forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a <* Parser Text () forall t. Chunk t => Parser t () endOfInput lexeme :: Parser a -> Parser a lexeme :: Parser a -> Parser a lexeme Parser a p = Parser Text () skipSpace Parser Text () -> Parser a -> Parser a forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b *> Parser a p Parser a -> Parser Text () -> Parser a forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a <* Parser Text () skipSpace line :: Parser Text line :: Parser Text line = ((Char -> Bool) -> Parser Text takeTill Char -> Bool isEndOfLine Parser Text -> Parser Text () -> Parser Text forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a <* Parser Text () endOfLine) Parser Text -> Parser Text -> Parser Text forall (f :: * -> *) a. Alternative f => f a -> f a -> f a <|> Parser Text takeText word :: Parser Text word :: Parser Text word = Parser Text -> Parser Text forall a. Parser a -> Parser a lexeme (Parser Text -> Parser Text) -> Parser Text -> Parser Text forall a b. (a -> b) -> a -> b $ [Char] -> Text forall seq. IsSequence seq => [Element seq] -> seq pack ([Char] -> Text) -> Parser Text [Char] -> Parser Text forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Parser Text Char -> Parser Text [Char] forall (f :: * -> *) a. Alternative f => f a -> f [a] many1 Parser Text Char letter