mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-06 14:58:50 +00:00
19 lines
No EOL
478 B
Text
19 lines
No EOL
478 B
Text
import Ostap;
|
|
import List;
|
|
import Fun;
|
|
|
|
fun many (a) {
|
|
memo (
|
|
eta (
|
|
empty @ lift({})
|
|
| many (a) |> fun (as) {a @ fun (x) {as +++ {x}}}
|
|
)
|
|
)
|
|
}
|
|
|
|
var a = token ("a"), b = token ("b");
|
|
var bad_alter = a | a |> fun (x) {b @ fun (y) {x ++ y}};
|
|
|
|
--logOn ();
|
|
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) |