From 26653bc01c3ed47983d1c618eef03ff5a73672bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Tom=C3=A1s?= Date: Sat, 12 Oct 2024 04:31:28 -0300 Subject: Error out on (many (optional x)) --- notes.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'notes.md') diff --git a/notes.md b/notes.md index 03ea43e..717613a 100644 --- a/notes.md +++ b/notes.md @@ -24,3 +24,10 @@ This will give control to the one-of block to call the next parsing step. # lazy binding ## Problem If defining a parser that surrounds another, the inner parser must know about what the delimiter parser is attempting to parse, specially after the inner parser. + +## Solution +Implement lazy binding. This sweeps the next parser across the input until it finds where it first parses, then takes the distance from the current input and calls the current parser with a limit on how much input to parse equal to said difference. + +# TODO +* Change the parser entry so that it takes streams as input. This will make it easier to interact with other packages. +* Change literal parser into a macro that chains unit parsers. This will take advantage of the BF feature in one-of block. -- cgit v1.2.3