From 78305d22b3a22bdda412e46e9e6728da96eb843e Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Sun, 8 Mar 2020 00:57:25 +0300 Subject: [PATCH] Cosmetics in stdlib/spec --- lama-spec.pdf | Bin 243925 -> 244033 bytes spec/06.standard_library.tex | 3 ++- src/version.ml | 2 +- stdlib/Matcher.lama | 2 +- stdlib/Ostap.lama | 13 ++++++------- tutorial/Expressions.lama | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lama-spec.pdf b/lama-spec.pdf index 4578a8b31dd613761792c661e8719bb1668ff249..372dbaef12eaeaac95ea4703264099f68547f150 100644 GIT binary patch delta 10313 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 Q;MrNZ;Hju2m8IbS2RX0ulK=n! delta 10205 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 0 + if (n := regexpMatch (r[0], buf, pos)) >= 0 then Succ (substring (buf, pos, n), shift (n)) else Fail (sprintf ("%s expected", r[1]), line, col) fi diff --git a/stdlib/Ostap.lama b/stdlib/Ostap.lama index db0c38e9c..845b14b35 100644 --- a/stdlib/Ostap.lama +++ b/stdlib/Ostap.lama @@ -64,11 +64,10 @@ public fun memo (f) { } public fun token (x) { - fun (k) { - fun (s) { - k $ matchString (s, x) - } - } + case x of + #string -> fun (k) {fun (s) {k $ matchString (s, x)}} + | _ -> fun (k) {fun (s) {k $ matchRegexp (s, x)}} + esac } public fun eof (k) { @@ -130,8 +129,8 @@ public fun bypass (f) { public fun opt (a) {empty @ lift (None) | a @ fun (x) {Some (x)}} public fun rep0 (a) { - --memo - (empty @ lift({}) | a |> fun (x) {rep0 (a) @ fun (as) {x : as}}) + memo + (empty @ lift({}) | a |> fun (x) {rep0 (a) @ fun (as) {x : as}}) } public fun rep (a) { diff --git a/tutorial/Expressions.lama b/tutorial/Expressions.lama index 78c75f2de..6fb4a8040 100644 --- a/tutorial/Expressions.lama +++ b/tutorial/Expressions.lama @@ -2,8 +2,8 @@ printf ("if, case, for, while, repeat etc. are all expressions.\n"); printf ("Case-expression: %s\n", case A (1, 2, 3) of A (x, y, z) -> z esac.string); -printf ("If-expression: %s\n", if true then 2 else 3 fi + - if false then 6 else 7 fi.string); +printf ("If-expression: %s\n", (if true then 2 else 3 fi + + if false then 6 else 7 fi).string); printf ("Scope-expression: %s\n", {local i, s = 0; for i := 0, i < 10, i := i + 1 do