megaparsec-9.5.0: Monadic parser combinators
Copyright© 2015–present Megaparsec contributors
LicenseFreeBSD
MaintainerMark Karpov <markkarpov92@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Text.Megaparsec.Byte

Description

Commonly used binary parsers.

Since: 6.0.0

Synopsis

Simple parsers

newline :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a newline byte.

crlf :: forall e s m. (MonadParsec e s m, Token s ~ Word8) => m (Tokens s) Source #

Parse a carriage return character followed by a newline character. Return the sequence of characters parsed.

eol :: forall e s m. (MonadParsec e s m, Token s ~ Word8) => m (Tokens s) Source #

Parse a CRLF (see crlf) or LF (see newline) end of line. Return the sequence of characters parsed.

tab :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a tab character.

space :: (MonadParsec e s m, Token s ~ Word8) => m () Source #

Skip zero or more white space characters.

See also: skipMany and spaceChar.

hspace :: (MonadParsec e s m, Token s ~ Word8) => m () Source #

Like space, but does not accept newlines and carriage returns.

Since: 9.0.0

space1 :: (MonadParsec e s m, Token s ~ Word8) => m () Source #

Skip one or more white space characters.

See also: skipSome and spaceChar.

hspace1 :: (MonadParsec e s m, Token s ~ Word8) => m () Source #

Like space1, but does not accept newlines and carriage returns.

Since: 9.0.0

Categories of characters

controlChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a control character.

spaceChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a space character, and the control characters: tab, newline, carriage return, form feed, and vertical tab.

upperChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse an upper-case character.

lowerChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a lower-case alphabetic character.

letterChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse an alphabetic character: lower-case or upper-case.

alphaNumChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse an alphabetic or digit characters.

printChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a printable character: letter, number, mark, punctuation, symbol or space.

digitChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse an ASCII digit, i.e between “0” and “9”.

binDigitChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a binary digit, i.e. “0” or “1”.

Since: 7.0.0

octDigitChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse an octal digit, i.e. between “0” and “7”.

hexDigitChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a hexadecimal digit, i.e. between “0” and “9”, or “a” and “f”, or “A” and “F”.

asciiChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s) Source #

Parse a character from the first 128 characters of the Unicode character set, corresponding to the ASCII character set.

Single byte

char :: (MonadParsec e s m, Token s ~ Word8) => Token s -> m (Token s) Source #

A type-constrained version of single.

newline = char 10

char' :: (MonadParsec e s m, Token s ~ Word8) => Token s -> m (Token s) Source #

The same as char but case-insensitive. This parser returns the actually parsed character preserving its case.

>>> parseTest (char' 101) "E"
69 -- 'E'
>>> parseTest (char' 101) "G"
1:1:
unexpected 'G'
expecting 'E' or 'e'

Sequence of bytes

string :: MonadParsec e s m => Tokens s -> m (Tokens s) Source #

A synonym for chunk.

string' :: (MonadParsec e s m, FoldCase (Tokens s)) => Tokens s -> m (Tokens s) Source #

The same as string, but case-insensitive. On success returns string cased as the parsed input.

>>> parseTest (string' "foobar") "foObAr"
"foObAr"