inhabitedtype / angstrom

Parser combinators built for speed and memory efficiency
Other
637 stars 74 forks source link

consume: Add required consume argument to parse functions #196

Closed seliopou closed 4 years ago

seliopou commented 4 years ago

For oneshot parse functions, require that the caller specify whether the parser should consume all of the provided input or just a prefix.

Most parsers are written so that they can consume the prefix of a string. This combined with the use of backtracking can cause unexpected parse results where only part of the input was consumed. This is one of many reasons to avoid backtracking.

In any case, making the behavior explicit in the call will hopefully demistify some of these results.

seliopou commented 4 years ago

Closes #183.

seliopou commented 4 years ago

The build is failing on OCaml 4.05.0 due to a timeout when running the following command:

+ opam install --with-test angstrom-async angstrom-lwt-unix

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[angstrom-async.0.13.0] no changes from file:///repo
[angstrom-lwt-unix.0.13.0] no changes from file:///repo

[ERROR] Sorry, resolution of the request timed out.
        Try to specify a simpler request, use a different solver, or increase the allowed time by setting OPAMSOLVERTIMEOUT to a bigger value (currently, it is set to 60.0 seconds).
'unset TESTS; OPAMYES=1 export OPAMYES; set -uex; opam install --with-test angstrom-async angstrom-lwt-unix && opam exec -- make examples' exited 60. Terminating with 60

The command "bash -ex ./.travis-docker.sh" exited with 60.

Done. Your build exited with 1.