- Add
unsafe_take_cstruct_exact
andunsafe_take_cstruct_ne
parsers. PARSER.parse
function now takes?pos
parameter and returnspos
along with the parsed value. This allows creating pull based parsers.- Expose
Promise
module.
- Fix
take_while
- Overhaul parser implementation - use functor based implementation. Introduce,
Make_buffered_input
,Make_unbuffered_input
andMake
functors. - Remove
reparse-unix
package - Remove base dependency
- Facilitate IO promise monads such as
Lwt
andAsync
- Add package
reparse-lwt
which definesLwt_stream.t
as one of the input sources. - Add package 'reparse-lwt-unix' which defines
Lwt_unix.file_descr
andLwt_io.input_channel
as parser input sources.
This release has backwards incompatible changes.
- Infix functions are now available in
Parser
module itself. - Add support for let operators -
let+
,let*
,and+
andand*
. bind
andmap
function are now labelled followingbase
library dependency convention.- Items in
all_unit
are nowunit t
rather than_ t
following monad combinator convention inbase
library dependency. pure
is now deprecated. Usereturn
instead. This is to stay consistent with monad conventions inbase
library dependency.>|=
is deprecated. Use>>|
instead. This is to stay consistent with monad conventions inbase
library dependency.- Removed
map4
function. - Add support for
ppx_let
. - Deprecate
Parser
module. UseReparse
instead.
- Rewrite the whole package to use exceptions rather than
result
type - Adds many more parsing combinators
- Adds comprehensive unit tests
- Adds comprehensive documentation, host documentation and add links in repo home page
- Adds abstraction for input source
- Provides unix file source and string input source
- Adds separate package
reparse-unix
for unix file input - Adds calc.ml and json.ml in examples.
- Remove Result and underlying monad
- Remove sexplib0, bigstringaf
- Prune basic parsers
- Add string_if parser.
- Add sexp_of_error.
- First release.