Recent versions of this library do not use repositioning but use non-backtrackable assignment to materialize the stream. Should work on any stream. You do run out of memory if the grammar does not commit.
Did you know ... | Search Documentation: |
Predicate phrase_from_stream/2 |
reposition
property (see stream_property/2).current_input(In)
, phrase_from_stream(Grammar,In)
. I wonder if we can push back to stdin