andre-dietrich / parser-combinators / Combine.Char

This module contains Char-specific Parsers.

Avoid using this module if performance is a concern. You can achieve everything that you can do with this module by using Combine.regex, Combine.string or Combine.primitive and, in general, those will be much faster.

Parsers

satisfy : (Char -> Basics.Bool) -> Combine.Parser s Char

Parse a character matching the predicate.

parse (satisfy ((==) 'a')) "a" ==
-- Ok 'a'

parse (satisfy ((==) 'a')) "b" ==
-- Err ["could not satisfy predicate"]

char : Char -> Combine.Parser s Char

Parse an exact character match.

parse (char 'a') "a" ==
-- Ok 'a'

parse (char 'a') "b" ==
-- Err ["expected 'a'"]

anyChar : Combine.Parser s Char

Parse any character.

parse anyChar "a" ==
-- Ok 'a'

parse anyChar "" ==
-- Err ["expected any character"]

oneOf : List Char -> Combine.Parser s Char

Parse a character from the given list.

parse (oneOf ['a', 'b']) "a" ==
-- Ok 'a'

parse (oneOf ['a', 'b']) "c" ==
-- Err ["expected one of ['a','b']"]

noneOf : List Char -> Combine.Parser s Char

Parse a character that is not in the given list.

parse (noneOf ['a', 'b']) "c" ==
-- Ok 'c'

parse (noneOf ['a', 'b']) "a" ==
-- Err ["expected none of ['a','b']"]

space : Combine.Parser s Char

Parse a space character.

tab : Combine.Parser s Char

Parse a \t character.

newline : Combine.Parser s Char

Parse a \n character.

crlf : Combine.Parser s Char

Parse a \r\n sequence, returning a \n character.

eol : Combine.Parser s Char

Parse an end of line character or sequence, returning a \n character.

lower : Combine.Parser s Char

Parse any lowercase character.

upper : Combine.Parser s Char

Parse any uppercase character.

digit : Combine.Parser s Char

Parse any base 10 digit.

octDigit : Combine.Parser s Char

Parse any base 8 digit.

hexDigit : Combine.Parser s Char

Parse any base 16 digit.