1///|
2pub let 
Parser[Char]
digit
:
type Parser[A] (Input) -> (A, Input) raise ParseError
Parser
[
Char
Char
] =
(f : (Char) -> Bool, label~ : String) -> Parser[Char]
satisfy
(
(Char) -> Bool
Char::is_ascii_digit
,
String
label
="digit")
3 4///| 5pub let
Parser[Char]
space
:
type Parser[A] (Input) -> (A, Input) raise ParseError
Parser
[
Char
Char
] =
(f : (Char) -> Bool, label~ : String) -> Parser[Char]
satisfy
(
(Char) -> Bool
Char::is_ascii_whitespace
,
String
label
="space")
6 7///| 8pub let
Parser[Char]
alphabetic
:
type Parser[A] (Input) -> (A, Input) raise ParseError
Parser
[
Char
Char
] =
(f : (Char) -> Bool, label~ : String) -> Parser[Char]
satisfy
(
9
(Char) -> Bool

Checks if the value is an ASCII alphabetic character:

  • U+0041 'A' ..= U+005A 'Z'
  • U+0061 'a' ..= U+007A 'z'
Char::is_ascii_alphabetic
,
10
String
label
="alphabetic",
11) 12 13///| 14pub let
Parser[Char]
any
:
type Parser[A] (Input) -> (A, Input) raise ParseError
Parser
[
Char
Char
] =
(f : (Char) -> Bool, label~ : String) -> Parser[Char]
satisfy
(_ => true,
String
label
="any character")
15 16///| 17pub let
Parser[Char]
space1
:
type Parser[A] (Input) -> (A, Input) raise ParseError
Parser
[
Char
Char
] =
Parser[Char]
space
.
(x : Parser[Char], f : Parser[(Char, Char) -> Char]) -> Parser[Char]
foldl1
(
(x : (Char, Char) -> Char) -> Parser[(Char, Char) -> Char]
pure
((_,
Char
y
) =>
Char
y
)).
(x : Parser[Char], msg : String) -> Parser[Char]
label
("space1")
18 19///| 20pub let
Parser[Char]
spaces
:
type Parser[A] (Input) -> (A, Input) raise ParseError
Parser
[
Char
Char
] = (
Parser[Char]
space1
(x : Parser[Char], y : Parser[Char]) -> Parser[Char]
|
(x : Char) -> Parser[Char]
pure
(' ')).
(x : Parser[Char], msg : String) -> Parser[Char]
label
("spaces")
21