Parser combinators for Clojure(Script).
Parsesso | Parsec1,2,3 | Kern4 | Parsatron5 |
---|---|---|---|
result | return | return | always |
fail | fail | fail | never |
fail-unexpected | unexpected | unexpected | |
expecting | <?> , label | <?> , expect | |
bind | >>= | >>= | bind |
bind-let | do | bind | let->> |
after | >> | >> | >> , nxt |
value | fmap | <$> | |
maybe | try | <:> | attempt |
look-ahead | lookAhead | look-ahead | lookahead |
not-followed-by | notFollowedBy | not-followed-by | |
many0 | many | many | many |
many1 | many1 | many1 | many1 |
skip0 | skipMany | skip-many | |
skip1 | skipMany1 | skip-many1 | |
token | token , satisfy | satisfy | token |
token-not | |||
word | tokens , string | token* | string |
any-token | anyToken ,anyChar | any-char | any-char |
eof | eof | eof | eof |
group | <*> | <*> | |
choice | <|> , choice | <|> | choice |
option | option , optional | option , optional | |
between | between | between | between |
times | count | times | times |
many-till | manyTill | many-till | |
sep0 | sepBy | sep-by | |
sep1 | sepBy1 | sep-by1 | |
sep0-end | endBy | end-by | |
sep1-end | endBy1 | end-by1 | |
sep0-opt | sepEndBy | sep-end-by | |
sep1-opt | sepEndBy1 | sep-end-by1 | |
chain0-left | chainl | chainl | |
chain1-left | chainl1 | chainl1 | |
chain0-right | chainr | chainr | |
chain1-right | chainr1 | chainr1 | |
get-state | getParserState ... | input, pos, user state | |
set-state | setParserState ... | input, pos, user state | |
update-state | updateParserState ... | user state | |
trace | parserTrace , parserTraced | ||
char/is | char , oneOf | sym* , one-of* | char |
char/is-not | noneOf | none-of* | |
char/regex | |||
char/upper? | upper | upper (unicode) | |
char/lower? | lower | lower (unicode) | |
char/letter? | letter | letter (unicode) | letter (unicode) |
char/number? | digit | digit (unicode) | digit (unicode) |
char/letter-or-number? | alphaNum | alpha-num (unicode) | |
char/white? | space | white-space (unicode) | |
char/newline | endOfLine | new-line* | |
char/str* | <+> |
See some benchmarks here.
Can you improve this documentation? These fine people already did:
Sergey Trofimov & seriogaEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close