Pom Versions Save

PEG parser combinators using operator overloading without macros.

v3.4

2 months ago
  • Remove extra type parameter of utf8::end(), skip() and list()
  • Add 'trace' feature to be used in 'name'd parsers. (#63)
  • Amend RangeArgument such that repeat accepts RangeToInclusive and RangeInclusive (#64)
  • Add any() combinator

v3.1.0

3 years ago

Expose the method field in Parser to allow custom combinators

v3.0.3

4 years ago

Input symbol's trait bounds change Copy to Clone.

v3.0.0

5 years ago
  • 3.0 is based on 1.0 and changed:
pub struct Parser<'a, I, O> {
    method: Box<Fn(&mut Input<I>) -> Result<O> + 'a>,
}

to

pub struct Parser<'a, I, O> {
    method: Box<Fn(&'a [I], usize) -> Result<(O, usize)> + 'a>,
}

This is like 2.0 version, but avoids potential issue such as #23.

  • Toolchain switched to Rust 2018 stable channel.

v2.0.0

6 years ago
  • Add p.expect(_), mark parser as expected, abort early when failed in ordered choice.

v1.1.0

6 years ago
  • Add p.expect(_), mark parser as expected, abort early when failed in ordered choice.

v2.0.0-beta

7 years ago
  • Add p.many(range), like p.repeat(range) but return slice instead of vector.
  • Add p.cache(), can be used to remember parser output result in case of potential backtracking.

v1.0.0

7 years ago
  • Remove range() function, one_of() and none_of() can accept range literal as well.
  • Performance improvement.

v2.0.0-alpha

7 years ago
  • Greatly improved performance.
  • Parser as trait, Combinator as wrapper struct.
  • Apply zero-copy strategy.

v0.9.0

7 years ago
  • Can build on Rust stable 1.15.0.
  • p.repeat(n) repeat p exactly n times.
  • Implement Display and Error for pom::Error.

Thanks for Jeremy Fitzhardinge's contribution.