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. |
Structs
| InState |
A parser that knows its current state. |
Enums
| ParseResult |
The result of parsing |
Constants
| CHARACTER |
A committed parser that reads one character. |
Traits
| Boxable |
A trait for boxable parsers. |
| Committed |
A trait for committed parsers. |
| CommittedInfer |
A trait for committed parsers which can infer their output type from their input types. |
| Consumer |
A trait for consumers of data, typically buffers. |
| Downcast |
A trait for subtyping where conversion downwards is possible (e.g. |
| Factory |
A trait for factories. |
| Function |
A trait for one-argument functions. |
| HasOutput |
A trait for parsers which can infer their output type from their input types. |
| Parser |
A trait for stateless parsers. |
| PeekableIterator | |
| Stateful |
A trait for stateful parsers. |
| StatefulInfer |
A trait for stateful parsers which can infer their output type from their input types. |
| StatefulStr |
A trait for stateful string parsers. |
| StaticMarker |
A marker trait for static data. |
| ToStatic |
A trait for data which can be saved to and restored from long-lived state. |
| Uncommitted |
A trait for uncommitted parsers. |
| UncommittedInfer |
A trait for uncommitted parsers which can infer their output type from their input types. |
| UncommittedStr |
A trait for uncommitted string parsers. |
| Upcast |
A trait for subtyping |
| VariantFunction |
A trait for functions that can compute their inputs from their outputs |
Functions
| character |
An uncommitted parser that reads one character. |
| character_map |
An uncommitted parser that reads one character and applies a function to it. |
| character_map_ref |
An uncommitted parser that reads one character by reference and applies a function to it. |
| character_ref |
An uncommitted parser that reads one character by reference. |
| emit |
A committed parser that reads zero characters. |