Parser combinator library for TypeScript.
number
- Tries to match a given number
string
- Tries to match a given string
regex
- Tries to match a given regex
whitespace
- Tries to match one or more whitespaces (regex:
/[\r\n\t\f\v ]+/
)
- Tries to match one or more whitespaces (regex:
word
- Tries to match one or more words (regex:
/[a-zA-Z0-9_]+/
)
- Tries to match one or more words (regex:
endOfInput
- Checks if there is nothing left to parse otherwise it fails
endOfLine
- Tries to match an end of line (either
\r\n
,\r
or\n
)
- Tries to match an end of line (either
lazy
- Takes a function that just returns a parser (a thunk). This defers the evaluation of the given parser. Useful for writing recursive parsers.
failure
- Always returns a failing parser with the given
errorMessage
. Typically used inside a contextual parser.
- Always returns a failing parser with the given
sequenceOf
- Accepts multiple parsers, which must all match successfully in the given order otherwise it fails.
many
- Accepts a single parser, which may match zero or infinite times.
many1
- Accepts a single parser, which must match at least once or infinite times otherwise it fails.
separatedBy
- Tries to match a given
value
separated by a givenseparator
- Only captures the
value
- Tries to match a given
anyOf
- Tries to match all
parsers
and returns the first successful one.
- Tries to match all
optional
- The given
parser
may or may not match. This combinator can not fail.
- The given
between
- Tries to match a given
inner
surrounded by a givenouterLeft
andouterRight
. TheouterRight
parser is optional and defaults toouterLeft
.
- Tries to match a given
everythingUntil
- Tries to match everything until (
value
) the separator.
- Tries to match everything until (