Crate parsell [−] [src]
Parsell: an LL(1) streaming parser combinator library for Rust
The goal of this library is to provide parser combinators that:
- are optimized for LL(1) grammars,
- support streaming input,
- do as little buffering or copying as possible, and
- do as little dynamic method dispatch as possible.
It is based on:
- Monadic Parsing in Haskell by G. Hutton and E. Meijer, JFP 8(4) pp. 437-444,
- Nom, eating data byte by byte by G. Couprie.
Modules
impls |
Provide implementations of parser traits. |
Enums
MaybeParseResult |
The result of a parse. |
ParseResult |
The result of a parse. |
Constants
CHARACTER |
A committed parser that reads one character. |
TOKEN |
A committed parser that reads one token. |
Traits
Boxable |
A trait for boxable parsers. |
Committed |
A trait for committed parsers. |
Consumer |
A trait for consumers of data, typically buffers. |
Factory |
A trait for factories. |
Function |
A trait for one-argument functions. |
Parser |
A trait for stateless parsers. |
Stateful |
A trait for stateful parsers. |
Uncommitted |
A trait for uncommitted parsers. |
Functions
character |
An uncommitted parser that reads one character. |
token |
An uncommitted parser that reads one token. |