hsemail-2.2.2: Parsec parsers for the Internet Message format (e-mail)

Copyright | (c) 2007-2019 Peter Simons
License | BSD3
Maintainer | simons@cryp.to
Stability | provisional
Portability | portable
Safe Haskell | Safe-Inferred
Language | Haskell2010

Text.Parsec.Rfc2234

Description

This module provides parsers for the grammar defined in RFC2234, "Augmented BNF for Syntax Specifications: ABNF", http://www.faqs.org/rfcs/rfc2234.html. The terminal called `char` in the RFC is called `character` here to avoid conflicts with Parsec's `char` function.

Synopsis

- caseChar :: Stream s m Char => Char -> ParsecT s u m Char
- caseString :: Stream s m Char => String -> ParsecT s u m ()
- manyN :: Int -> ParsecT s u m a -> ParsecT s u m [a]
- manyNtoM :: Int -> Int -> ParsecT s u m a -> ParsecT s u m [a]
- alpha :: Stream s m Char => ParsecT s u m Char
- bit :: Stream s m Char => ParsecT s u m Char
- character :: Stream s m Char => ParsecT s u m Char
- cr :: Stream s m Char => ParsecT s u m Char
- lf :: Stream s m Char => ParsecT s u m Char
- crlf :: Stream s m Char => ParsecT s u m String
- ctl :: Stream s m Char => ParsecT s u m Char
- dquote :: Stream s m Char => ParsecT s u m Char
- hexdig :: Stream s m Char => ParsecT s u m Char
- htab :: Stream s m Char => ParsecT s u m Char
- lwsp :: Stream s m Char => ParsecT s u m String
- octet :: Stream s m Char => ParsecT s u m Char
- sp :: Stream s m Char => ParsecT s u m Char
- vchar :: Stream s m Char => ParsecT s u m Char
- wsp :: Stream s m Char => ParsecT s u m Char
- quoted_pair :: Stream s m Char => ParsecT s u m String
- quoted_string :: Stream s m Char => ParsecT s u m String

# Documentation

caseChar :: Stream s m Char => Char -> ParsecT s u m Char Source #

Case-insensitive variant of Parsec's `char` function.

caseString :: Stream s m Char => String -> ParsecT s u m () Source #

Case-insensitive variant of Parsec's `string` function.

manyN :: Int -> ParsecT s u m a -> ParsecT s u m [a] Source #

Match a parser at least `n` times.

manyNtoM :: Int -> Int -> ParsecT s u m a -> ParsecT s u m [a] Source #

Match a parser at least `n` times, but no more than `m` times.

alpha :: Stream s m Char => ParsecT s u m Char Source #

Match any character of the alphabet.

bit :: Stream s m Char => ParsecT s u m Char Source #

Match either "1" or "0".

character :: Stream s m Char => ParsecT s u m Char Source #

Match any 7-bit US-ASCII character except for NUL (ASCII value 0, that is).

cr :: Stream s m Char => ParsecT s u m Char Source #

Match the carriage return character `\r`.

lf :: Stream s m Char => ParsecT s u m Char Source #

Match returns the linefeed character `\n`.

crlf :: Stream s m Char => ParsecT s u m String Source #

Match the Internet newline `\r\n`.

ctl :: Stream s m Char => ParsecT s u m Char Source #

Match any US-ASCII control character. That is any character with a decimal value in the range of [0..31,127].

dquote :: Stream s m Char => ParsecT s u m Char Source #

Match the double quote character "`"`".

hexdig :: Stream s m Char => ParsecT s u m Char Source #

Match any character that is valid in a hexadecimal number; ['0'..'9'] and ['A'..'F','a'..'f'] that is.

htab :: Stream s m Char => ParsecT s u m Char Source #

Match the tab ("`\t`") character.

lwsp :: Stream s m Char => ParsecT s u m String Source #

Match "linear white-space". That is any number of consecutive `wsp`, optionally followed by a `crlf` and (at least) one more `wsp`.

octet :: Stream s m Char => ParsecT s u m Char Source #

Match any character.

sp :: Stream s m Char => ParsecT s u m Char Source #

Match the space.

vchar :: Stream s m Char => ParsecT s u m Char Source #

Match any printable ASCII character. (The "v" stands for "visible".) That is any character in the decimal range of [33..126].

wsp :: Stream s m Char => ParsecT s u m Char Source #

Match either `sp` or `htab`.

quoted_pair :: Stream s m Char => ParsecT s u m String Source #

Match a "quoted pair". Any characters (excluding CR and LF) may be quoted.

quoted_string :: Stream s m Char => ParsecT s u m String Source #

Match a quoted string. The specials "`\`" and "`"`" must be escaped inside a quoted string; CR and LF are not allowed at all.