megaparsec-9.2.1: Monadic parser combinators
Copyright © 2015–present Megaparsec contributors
License FreeBSD
Maintainer Mark Karpov <markkarpov92@gmail.com>
Stability experimental
Portability portable
Safe Haskell Safe
Language Haskell2010

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, 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"