From 554d2ab14921c48d628b0ffa86cc7492836477ac Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Fri, 11 Jan 2019 14:23:49 +1100 Subject: Restructured Lexer combinators to use record return type --- src/packrat-lexer-combinators.ads | 152 ++++++++++++++------------------------ 1 file changed, 57 insertions(+), 95 deletions(-) (limited to 'src/packrat-lexer-combinators.ads') diff --git a/src/packrat-lexer-combinators.ads b/src/packrat-lexer-combinators.ads index b346b0a..b690a63 100644 --- a/src/packrat-lexer-combinators.ads +++ b/src/packrat-lexer-combinators.ads @@ -7,59 +7,45 @@ package Packrat.Lexer.Combinators is generic Params : in Combinator_Array; function Sequence - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic with function Param - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; Number : in Positive; function Count - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic with function Param - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; Minimum : in Natural := 0; function Many - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic with function Param - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; with function Test (Item : in Element) return Boolean; Minimum : in Natural := 0; function Many_Until - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; @@ -69,11 +55,9 @@ package Packrat.Lexer.Combinators is (Item : in Element) return Boolean; function Satisfy - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic with function Test @@ -83,20 +67,16 @@ package Packrat.Lexer.Combinators is (From : in Element) return Element; function Satisfy_With - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic Item : in Element; function Match - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic Item : in Element; @@ -104,51 +84,41 @@ package Packrat.Lexer.Combinators is (From : in Element) return Element; function Match_With - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic Items : in Element_Array; function Multimatch - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic Number : in Positive := 1; function Take - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic with function Test (Item : in Element) return Boolean; function Take_While - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic with function Test (Item : in Element) return Boolean; function Take_Until - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; @@ -156,36 +126,28 @@ package Packrat.Lexer.Combinators is generic EOL_Item : in Element; function Line_Start - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic EOL_Item : in Element; function Line_End - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; function Input_Start - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; generic EOF_Item : in Element; function Input_End - (Input : in Element_Array; - Start : in Positive; - Length : out Natural; - Value : out Element_Array) - return Result; + (Input : in Element_Array; + Start : in Positive) + return Combinator_Result; end Packrat.Lexer.Combinators; -- cgit