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 |
phrase_from_stream(:Grammar,
+Stream)codes (default) or chars.
See also
stream_to_lazy_codes/2
and stream_to_lazy_chars/2.reposition property (see stream_property/2).current_input(In), phrase_from_stream(Grammar,In). I wonder if we can push back to stdin