summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2021-01-18 18:48:14 +1100
committerJed Barber <jjbarber@y7mail.com>2021-01-18 18:48:14 +1100
commit901c7e61278f16dc5c08cbebf74c2a816cd4b4b6 (patch)
treeb391d3f78cd138dfc0a59fda3b5f14485d7d79e5
parentd588551014dfdc248c8ea97a95e987da254b9931 (diff)
Separate_By and Separate_End_By now ignore Separator and Ender combinator results
-rw-r--r--src/packrat-parsers.adb6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/packrat-parsers.adb b/src/packrat-parsers.adb
index 7f7f7f1..ed0f3d3 100644
--- a/src/packrat-parsers.adb
+++ b/src/packrat-parsers.adb
@@ -1047,7 +1047,8 @@ package body Packrat.Parsers is
return Combinator_Result
is
function Not_Empty_Item is new Not_Empty (Item);
- function Sep_Seq is new Sequence_2 (Separator, Not_Empty_Item);
+ function Ignore_Sep is new Ignore (Separator);
+ function Sep_Seq is new Sequence_2 (Ignore_Sep, Not_Empty_Item);
function Many_Sep_Seq is new Many
(Sep_Seq, (if Minimum = 0 then Minimum else Minimum - 1));
function Full_Seq is new Sequence_2 (Not_Empty_Item, Many_Sep_Seq);
@@ -1075,8 +1076,9 @@ package body Packrat.Parsers is
(Context : in out Parser_Context)
return Combinator_Result
is
+ function Ignore_Ender is new Ignore (Ender);
function Sep_By is new Separate_By (Item, Separator, Minimum);
- function End_Seq is new Sequence_2 (Sep_By, Ender);
+ function End_Seq is new Sequence_2 (Sep_By, Ignore_Ender);
begin
return End_Seq (Input, Context, Start);
end Actual;