Portability | portable |
---|---|
Stability | provisional |
Maintainer | simons@cryp.to |
Safe Haskell | Safe-Infered |
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.
- caseChar :: Char -> CharParser st Char
- caseString :: String -> CharParser st ()
- manyN :: Int -> GenParser a b c -> GenParser a b [c]
- manyNtoM :: Int -> Int -> GenParser a b c -> GenParser a b [c]
- parsec2read :: Parser a -> String -> [(a, String)]
- alpha :: CharParser st Char
- bit :: CharParser st Char
- character :: CharParser st Char
- cr :: CharParser st Char
- lf :: CharParser st Char
- crlf :: CharParser st String
- ctl :: CharParser st Char
- dquote :: CharParser st Char
- hexdig :: CharParser st Char
- htab :: CharParser st Char
- lwsp :: CharParser st String
- octet :: CharParser st Char
- sp :: CharParser st Char
- vchar :: CharParser st Char
- wsp :: CharParser st Char
- quoted_pair :: CharParser st String
- quoted_string :: CharParser st String
Parser Combinators
caseString :: String -> CharParser st ()Source
Case-insensitive variant of Parsec's string
function.
manyNtoM :: Int -> Int -> GenParser a b c -> GenParser a b [c]Source
Match a parser at least n
times, but no more than m
times.
parsec2read :: Parser a -> String -> [(a, String)]Source
Primitive Parsers
alpha :: CharParser st CharSource
Match any character of the alphabet.
bit :: CharParser st CharSource
Match either "1" or "0".
character :: CharParser st CharSource
Match any 7-bit US-ASCII character except for NUL (ASCII value 0, that is).
cr :: CharParser st CharSource
Match the carriage return character \r
.
lf :: CharParser st CharSource
Match returns the linefeed character \n
.
crlf :: CharParser st StringSource
Match the Internet newline \r\n
.
ctl :: CharParser st CharSource
Match any US-ASCII control character. That is any character with a decimal value in the range of [0..31,127].
dquote :: CharParser st CharSource
Match the double quote character ""
".
hexdig :: CharParser st CharSource
Match any character that is valid in a hexadecimal number; ['0'..'9'] and ['A'..'F','a'..'f'] that is.
htab :: CharParser st CharSource
Match the tab ("\t
") character.
lwsp :: CharParser st StringSource
octet :: CharParser st CharSource
Match any character.
sp :: CharParser st CharSource
Match the space.
vchar :: CharParser st CharSource
Match any printable ASCII character. (The "v" stands for "visible".) That is any character in the decimal range of [33..126].
Useful additions
quoted_pair :: CharParser st StringSource
Match a "quoted pair". Any characters (excluding CR and LF) may be quoted.
quoted_string :: CharParser st StringSource
Match a quoted string. The specials "\
" and
""
" must be escaped inside a quoted string; CR and
LF are not allowed at all.