More Ostap tests

This commit is contained in:
Dmitry Boulytchev 2020-01-22 22:30:34 +03:00
parent 9163747ff3
commit ff197744f6
3 changed files with 45 additions and 4 deletions

View file

@ -0,0 +1,2 @@
Parsing "aaa" with many ... Succ ({"a", "a", "a"})
Parsing "ab" with bad_alter ... Succ ("ab")

View file

@ -0,0 +1,19 @@
import Ostap;
import List;
import Fun;
fun many (a) {
memo (
fun (k) {
empty @ lift({})
| many (a) |> fun (as) {a @ fun (x) {as +++ singleton (x)}} $ k
}
)
}
local a = token ("a"), b = token ("b");
local bad_alter = a | a |> fun (x) {b @ fun (y) {x ++ y}};
initOstap ();
printf ("Parsing ""aaa"" with many ... %s\n", parseString (many (a) |> bypass (eof), "aaa").string);
printf ("Parsing ""ab"" with bad_alter ... %s\n", parseString (bad_alter |> bypass (eof), "ab").string)