Cabal-2.2.0.1: A framework for packaging Haskell software

Copyright(c) Edward Kmett 2011
LicenseBSD3
Maintainerekmett@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Distribution.Compat.CharParsing

Contents

Description

Parsers for character streams

Originally in parsers package.

Synopsis

Combinators

oneOf :: CharParsing m => [Char] -> m Char #

oneOf cs succeeds if the current character is in the supplied list of characters cs. Returns the parsed character. See also satisfy.

  vowel  = oneOf "aeiou"

noneOf :: CharParsing m => [Char] -> m Char #

As the dual of oneOf, noneOf cs succeeds if the current character is not in the supplied list of characters cs. Returns the parsed character.

 consonant = noneOf "aeiou"

spaces :: CharParsing m => m () #

Skips zero or more white space characters. See also skipMany.

space :: CharParsing m => m Char #

Parses a white space character (any character which satisfies isSpace) Returns the parsed character.

newline :: CharParsing m => m Char #

Parses a newline character ('\n'). Returns a newline character.

tab :: CharParsing m => m Char #

Parses a tab character ('\t'). Returns a tab character.

upper :: CharParsing m => m Char #

Parses an upper case letter. Returns the parsed character.

lower :: CharParsing m => m Char #

Parses a lower case character. Returns the parsed character.

alphaNum :: CharParsing m => m Char #

Parses a letter or digit. Returns the parsed character.

letter :: CharParsing m => m Char #

Parses a letter (an upper case or lower case character). Returns the parsed character.

digit :: CharParsing m => m Char #

Parses a digit. Returns the parsed character.

hexDigit :: CharParsing m => m Char #

Parses a hexadecimal digit (a digit or a letter between 'a' and 'f' or 'A' and 'F'). Returns the parsed character.

octDigit :: CharParsing m => m Char #

Parses an octal digit (a character between '0' and '7'). Returns the parsed character.

Class

class Parsing m => CharParsing m where #

Additional functionality needed to parse character streams.

Minimal complete definition

satisfy

Methods

satisfy :: (Char -> Bool) -> m Char #

Parse a single character of the input, with UTF-8 decoding

char :: Char -> m Char #

char c parses a single character c. Returns the parsed character (i.e. c).

e.g.

semiColon = char ';'

notChar :: Char -> m Char #

notChar c parses any single character other than c. Returns the parsed character.

anyChar :: m Char #

This parser succeeds for any character. Returns the parsed character.

string :: String -> m String #

string s parses a sequence of characters given by s. Returns the parsed string (i.e. s).

 divOrMod    =   string "div"
             <|> string "mod"

text :: Text -> m Text #

text t parses a sequence of characters determined by the text t Returns the parsed text fragment (i.e. t).

Using OverloadedStrings:

 divOrMod    =   text "div"
             <|> text "mod"
Instances
CharParsing ParsecParser # 
Instance details
(CharParsing m, MonadPlus m) => CharParsing (IdentityT m) # 
Instance details
(CharParsing m, MonadPlus m) => CharParsing (StateT s m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> StateT s m Char #

char :: Char -> StateT s m Char #

notChar :: Char -> StateT s m Char #

anyChar :: StateT s m Char #

string :: String -> StateT s m String #

text :: Text -> StateT s m Text #

(CharParsing m, MonadPlus m) => CharParsing (StateT s m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> StateT s m Char #

char :: Char -> StateT s m Char #

notChar :: Char -> StateT s m Char #

anyChar :: StateT s m Char #

string :: String -> StateT s m String #

text :: Text -> StateT s m Text #

(CharParsing m, MonadPlus m, Monoid w) => CharParsing (WriterT w m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> WriterT w m Char #

char :: Char -> WriterT w m Char #

notChar :: Char -> WriterT w m Char #

anyChar :: WriterT w m Char #

string :: String -> WriterT w m String #

text :: Text -> WriterT w m Text #

(CharParsing m, MonadPlus m, Monoid w) => CharParsing (WriterT w m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> WriterT w m Char #

char :: Char -> WriterT w m Char #

notChar :: Char -> WriterT w m Char #

anyChar :: WriterT w m Char #

string :: String -> WriterT w m String #

text :: Text -> WriterT w m Text #

t ~ Char => CharParsing (Parser r t) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> Parser r t Char #

char :: Char -> Parser r t Char #

notChar :: Char -> Parser r t Char #

anyChar :: Parser r t Char #

string :: String -> Parser r t String #

text :: Text -> Parser r t Text #

(CharParsing m, MonadPlus m) => CharParsing (ReaderT e m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> ReaderT e m Char #

char :: Char -> ReaderT e m Char #

notChar :: Char -> ReaderT e m Char #

anyChar :: ReaderT e m Char #

string :: String -> ReaderT e m String #

text :: Text -> ReaderT e m Text #

Stream s m Char => CharParsing (ParsecT s u m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> ParsecT s u m Char #

char :: Char -> ParsecT s u m Char #

notChar :: Char -> ParsecT s u m Char #

anyChar :: ParsecT s u m Char #

string :: String -> ParsecT s u m String #

text :: Text -> ParsecT s u m Text #

(CharParsing m, MonadPlus m, Monoid w) => CharParsing (RWST r w s m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> RWST r w s m Char #

char :: Char -> RWST r w s m Char #

notChar :: Char -> RWST r w s m Char #

anyChar :: RWST r w s m Char #

string :: String -> RWST r w s m String #

text :: Text -> RWST r w s m Text #

(CharParsing m, MonadPlus m, Monoid w) => CharParsing (RWST r w s m) # 
Instance details

Methods

satisfy :: (Char -> Bool) -> RWST r w s m Char #

char :: Char -> RWST r w s m Char #

notChar :: Char -> RWST r w s m Char #

anyChar :: RWST r w s m Char #

string :: String -> RWST r w s m String #

text :: Text -> RWST r w s m Text #

Cabal additions

integral :: (CharParsing m, Integral a) => m a #

munch1 :: CharParsing m => (Char -> Bool) -> m String #

Greedily munch characters while predicate holds. Require at least one character.

munch :: CharParsing m => (Char -> Bool) -> m String #

Greedely munch characters while predicate holds. Always succeeds.