mirror of
https://github.com/zaphar/abortable_parser.git
synced 2025-07-21 20:29:49 -04:00
MAINT: Update and flesh out docs.
This commit is contained in:
parent
d9de070873
commit
de0c03398c
@ -1,12 +1,12 @@
|
||||
[package]
|
||||
name = "abortable-parser"
|
||||
name = "abortable_parser"
|
||||
version = "0.1.0"
|
||||
authors = ["Jeremy Wall <jeremy@marzhillstudios.com>"]
|
||||
description = "A parser combinator library with an emphasis on error handling"
|
||||
repository = "https://github.com/zaphar/abortable_parser"
|
||||
documentation = "https://docs.rs/crate/abortable-parser"
|
||||
documentation = "https://docs.rs/crate/abortable_parser"
|
||||
readme = "README.md"
|
||||
license = "Apache-2.0"
|
||||
keywords = ["parsing"]
|
||||
keywords = ["parsing", "combinator"]
|
||||
|
||||
[dependencies]
|
||||
|
@ -1,3 +1,4 @@
|
||||
# Abortable Parser
|
||||
[](https://travis-ci.org/zaphar/abortable_parser)
|
||||
|
||||
A parser combinator library in rust with an emphasis on error handling. Heavily inspired by [nom](https://github.com/Geal/nom) in it's approach to macro composition.
|
@ -558,7 +558,7 @@ macro_rules! optional {
|
||||
}};
|
||||
}
|
||||
|
||||
/// Runs a single matcher repeating 0 or mre times and returns a possibly empty
|
||||
/// Runs a single matcher repeating 0 or more times and returns a possibly empty
|
||||
/// vector of the parsed results.
|
||||
///
|
||||
/// ```
|
||||
@ -618,6 +618,24 @@ macro_rules! repeat {
|
||||
};
|
||||
}
|
||||
|
||||
/// Parses separated list of items.
|
||||
///
|
||||
/// ```
|
||||
/// # #[macro_use] extern crate abortable_parser;
|
||||
/// use abortable_parser::iter;
|
||||
/// # use abortable_parser::{Result, Offsetable};
|
||||
/// # fn main() {
|
||||
/// let input_str = "foo,foo";
|
||||
/// let iter = iter::SliceIter::new(input_str.as_bytes());
|
||||
/// let result = separated!(iter, text_token!(","), text_token!("foo"));
|
||||
/// # assert!(result.is_complete());
|
||||
/// if let Result::Complete(_, o) = result {
|
||||
/// assert_eq!(2, o.len());
|
||||
/// assert_eq!("foo", o[0]);
|
||||
/// assert_eq!("foo", o[1]);
|
||||
/// }
|
||||
/// # }
|
||||
/// ```
|
||||
#[macro_export]
|
||||
macro_rules! separated {
|
||||
($i:expr, $sep_rule:ident!( $( $sep_args:tt )* ), $item_rule:ident!( $( $item_args:tt )* ) ) => {{
|
||||
@ -709,7 +727,8 @@ macro_rules! text_token {
|
||||
}};
|
||||
}
|
||||
|
||||
/// Consumes an input until it reaches the term combinator matches.
|
||||
/// Consumes an input until it reaches a term that the contained rule matches.
|
||||
/// It does not consume the subrule.
|
||||
///
|
||||
/// If the term never matches then returns incomplete.
|
||||
/// ```
|
||||
|
10
src/lib.rs
10
src/lib.rs
@ -12,13 +12,13 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! An opinionated parser combinator library with a focus on fully abortable parsing and error handling.
|
||||
//! An opinionated parser combinator library with a focus on fully abortable parsing and
|
||||
//! easy error handling.
|
||||
//!
|
||||
//! The approach to macro composition is heavily inspired by nom. However we emphasize error
|
||||
//! handling as a first class citizen. abortable_parser has the concept of an unrecoverable
|
||||
//! parsing error as distinct from a general failure to match.
|
||||
//! The approach to macro composition is heavily inspired by nom. It focuses on a simple
|
||||
//! API for combinators, and easy error handling.
|
||||
//!
|
||||
//! We have a numner of macros that assist in the gneration or handling of each type
|
||||
//! We have a number of macros that assist in the gneration or handling of each type
|
||||
//! of error.
|
||||
//!
|
||||
//! # Simple parsing of a url.
|
||||
|
Loading…
x
Reference in New Issue
Block a user