summaryrefslogtreecommitdiff
path: root/test/rat_tests-parsers.ads
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2020-12-12 12:49:01 +1100
committerJed Barber <jjbarber@y7mail.com>2020-12-12 12:49:01 +1100
commit2adeae8eb1bc8437b392bed07f1858363f95ab8a (patch)
tree13611fd2ca660ef2592e1b948d57bfc0762c91d2 /test/rat_tests-parsers.ads
parent192172cfc44220975b34295d38c5213b08de5191 (diff)
More bugfixes and Parser unit tests
Diffstat (limited to 'test/rat_tests-parsers.ads')
-rw-r--r--test/rat_tests-parsers.ads30
1 files changed, 29 insertions, 1 deletions
diff --git a/test/rat_tests-parsers.ads b/test/rat_tests-parsers.ads
index a70f41e..2b71f86 100644
--- a/test/rat_tests-parsers.ads
+++ b/test/rat_tests-parsers.ads
@@ -19,9 +19,15 @@ private with
package Rat_Tests.Parsers is
+ function Sequence_Check return Test_Result;
+ function Sequence_2_Check return Test_Result;
+ function Choice_Check return Test_Result;
+ function Choice_2_Check return Test_Result;
function Count_Check return Test_Result;
function Many_Nomin_Check return Test_Result;
function Many_Min_Check return Test_Result;
+ function Followed_By_Check return Test_Result;
+ function Not_Followed_By_Check return Test_Result;
function Many_Until_Nomin_Check return Test_Result;
function Many_Until_Min_Check return Test_Result;
@@ -39,9 +45,15 @@ package Rat_Tests.Parsers is
function Not_Empty_Check return Test_Result;
Combinator_Tests : Test_Array :=
- ((+"Count", Count_Check'Access),
+ ((+"Sequence", Sequence_Check'Access),
+ (+"Sequence_2", Sequence_2_Check'Access),
+ (+"Choice", Choice_Check'Access),
+ (+"Choice_2", Choice_2_Check'Access),
+ (+"Count", Count_Check'Access),
(+"Many No Minimum", Many_Nomin_Check'Access),
(+"Many With Minimum", Many_Min_Check'Access),
+ (+"Followed_By", Followed_By_Check'Access),
+ (+"Not_Followed_By", Not_Followed_By_Check'Access),
(+"Many_Until No Minimum", Many_Until_Nomin_Check'Access),
(+"Many_Until With Minimum", Many_Until_Min_Check'Access),
(+"Satisfy", Satisfy_Check'Access),
@@ -75,6 +87,22 @@ private
+ function Match_AB is new Pone.Parsers.Multimatch ("ab");
+ function Match_CDE is new Pone.Parsers.Multimatch ("cde");
+ function Match_FG is new Pone.Parsers.Multimatch ("fg");
+ function Seq_ABCDEFG is new Pone.Parsers.Sequence
+ ((Match_AB'Access, Match_CDE'Access, Match_FG'Access));
+
+ function Match_C is new Pone.Parsers.Match ('c');
+ function Many_C is new Pone.Parsers.Many (Match_C, 1);
+ function Match_CC is new Pone.Parsers.Multimatch ("cc");
+ function Match_CCCDE is new Pone.Parsers.Multimatch ("cccde");
+ function Choose_CCCDE is new Pone.Parsers.Choice
+ ((Many_C'Access, Match_CC'Access, Match_CCCDE'Access));
+
+
+
+
function Alphanum_Switch
(Char : in Character)
return Character;