Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
combine 
(Previously parser-combinators)
An implementation of parser combinators for Rust, inspired by the Haskell library Parsec. As in Parsec the parsers are LL(1) by default but they can opt-in to arbitrary lookahed using the try combinator.
A parser combinators is, broadly speaking, a function which takes several parsers as arguments and returns a new parser, created by combining those parsers. For instance, the many parser takes one parser, p, as input and returns a new parser which applies p zero or more times.
The library is mostly stable but a few parts of the internals may still change. If you end up trying it I welcome any feedback from your experience with it.
##Example
extern crate combine;
use ;
use letter;
let result = many.parse;
assert_eq!;
More examples can be found in the examples and benches folders.
Links
Extra
There is an additional crate which has parsers to lex and parse programming languages in combine-language.
Breaking changes
Here is a list containing most of the breaking changes in older versions of combine (parser-combinators).
1.0.0-beta.2
Info<T>andError<T>has had their signatures changed toInfo<T, R>andError<T, R>.Infohas a new variant which is specified byRand defines the type for range errors.ParseError<T: Positioner>has been changed toParseError<S: Stream>(S is the stream type of the parser).- If you were using
ParseResultfrom primitives you should no longer specify the item type of the stream.
0.7.0
Stream::unconschanged its signature to allow it to return errors. ReturnError::end_of_input()instead of()if you implementedStream.
0.6.0
- Addition of
Parser::parse_lazy, should not break anything but I can't say for certain.
0.5.0
any_char->any,uncons_char->uncons- Introduction of the
Positionertrait which needs to be implemented on an custom token types. satisfyis moved to thecombinatorsmodule and made generic, might cause type inference issues.
0.4.0
any_charis no longer a free function but returns a parser when called as all parser functions (and its calledanyafter 0.5.0)Cowis replaced byInfoin the error messages.
0.3.2 / 0.3.0
- Added variant to
Errorwhich can hold any kind of::std::error::Error choice_vecandchoice_sliceis replaced by justchoice
0.2.6
- Iterators cannot directly be used as streams but must be wrapped using
from_iterfunction
If you have trouble updating to a newer version feel free to open an issue and I can take a look.