local -> var; scope reformatted; singleton is killed finally

This commit is contained in:
Dmitry Boulytchev 2021-01-31 22:25:31 +03:00
parent 5ae88f820d
commit 216e716251
11067 changed files with 12168 additions and 12173 deletions

View file

@ -1,6 +1,6 @@
import Collection;
local s = emptySet (compare), i;
var s = emptySet (compare), i;
for i := 0, i < 100, i := i+1
do
@ -33,8 +33,8 @@ od;
printf ("List set: %s\n", internalOf (listSet ({1, 2, 3, 4, 5}, compare)).string);
{
local u = union (listSet ({1, 2, 3, 4, 5}, compare), listSet ({11, 22, 33, 44, 55}, compare)), u1;
(
var u = union (listSet ({1, 2, 3, 4, 5}, compare), listSet ({11, 22, 33, 44, 55}, compare)), u1;
validateColl (u);
@ -46,5 +46,5 @@ printf ("List set: %s\n", internalOf (listSet ({1, 2, 3, 4, 5}, compare)).string
printf ("Set difference: %s\n", internalOf (u1).string);
printf ("Elements: %s\n", elements (u1).string)
}
)

View file

@ -1,8 +1,8 @@
import Matcher;
local m = initMatcher (" -- asdasdakm ,m.,msd .,m.,asd\n \n\n abc");
var m = initMatcher (" -- asdasdakm ,m.,msd .,m.,asd\n \n\n abc");
local
var
lident = createRegexp ("[a-z][a-zA-Z_]*", "lowercase identifier"),
uident = createRegexp ("[A-Z][a-zA-Z_]*", "uppercase identifier"),
ws = createRegexp ("\\([ \t\n]\\|--[^\n]*\n\\)*", "whitespace"),
@ -53,7 +53,7 @@ infixr || after |> (l, r) {
}
}
local expr = lid @ fun (s) {Lid (s)} || const @ fun (s) {Dec (s)},
var expr = lid @ fun (s) {Lid (s)} || const @ fun (s) {Dec (s)},
assn = lid |> fun (id) {token (":=") |> fun (s) {expr @ fun (e) {Assn (id, e)}}};
printf ("%s\n", case assn (initMatcher ("x:=3")) of Fail (err) -> err | Succ (s, _) -> s.string esac)

View file

@ -1,6 +1,6 @@
import Collection;
local s = emptyMap (compare), i;
var s = emptyMap (compare), i;
for i := 0, i < 100, i := i+1
do

View file

@ -4,7 +4,7 @@ fun f (x, y) {
fun () {x+y}
}
local t = emptyMemo (),
var t = emptyMemo (),
a = lookupMemo (t, "abc"),
b = lookupMemo (t, [1, 2, 3, 4, "abc"]),
c = lookupMemo (t, f (5, 6));

View file

@ -1,6 +1,6 @@
import Collection;
local a = {1, 2, 3}, b = {1, 2, 3}, t = emptyHashTab (16, hash, compare);
var a = {1, 2, 3}, b = {1, 2, 3}, t = emptyHashTab (16, hash, compare);
t := addHashTab (t, a, 100);
printf ("HashTab internal structure: %s\n", internalOf (t).string);

View file

@ -1,6 +1,6 @@
import Fun;
local fact = fix (fun (self) {fun (n) {if n <= 1 then 1 else n * self (n-1) fi}});
var fact = fix (fun (self) {fun (n) {if n <= 1 then 1 else n * self (n-1) fi}});
printf ("%d\n", fact (3));
printf ("%d\n", fact (5));

View file

@ -1,7 +1,7 @@
import Ostap;
import Matcher;
local a = token ("a"), acc;
var a = token ("a"), acc;
printf ("Parsing a*| against ""aa""... %s\n", parseString (rep0 (a) |> fun (x) {eof @ lift (x)}, "aa").string);
printf ("Parsing a+| against ""aa""... %s\n", parseString (rep (a) |> fun (x) {eof @ lift (x)}, "aa").string);

View file

@ -6,13 +6,13 @@ fun many (a) {
memo (
eta (
empty @ lift({})
| many (a) |> fun (as) {a @ fun (x) {as +++ singleton (x)}}
| many (a) |> fun (as) {a @ fun (x) {as +++ {x}}}
)
)
}
local a = token ("a"), b = token ("b");
local bad_alter = a | a |> fun (x) {b @ fun (y) {x ++ y}};
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);

View file

@ -1,7 +1,7 @@
import Ostap;
import Fun;
local a = token ("a"),
var a = token ("a"),
add = [token ("+"), fun (l, _, r) {Add (l, r)}],
sub = [token ("-"), fun (l, _, r) {Sub (l, r)}],
mul = [token ("*"), fun (l, _, r) {Mul (l, r)}],

View file

@ -8,7 +8,7 @@ fun gen (depth) {
fi
}
local a = token ("a"),
var a = token ("a"),
add = [token ("+"), fun (l, _, r) {Add (l, r)}],
sub = [token ("-"), fun (l, _, r) {Sub (l, r)}],
mul = [token ("*"), fun (l, _, r) {Mul (l, r)}],

View file

@ -1,7 +1,7 @@
import Ostap;
import Fun;
local a = token ("a"),
var a = token ("a"),
add = [token ("+"), fun (l, _, r) {Add (l, r)}],
sub = [token ("-"), fun (l, _, r) {Sub (l, r)}],
mul = [token ("*"), fun (l, _, r) {Mul (l, r)}],

View file

@ -2,13 +2,13 @@ import Ostap;
import Fun;
import List;
local a = token ("a"),
var a = token ("a"),
eq = [token ("="), fun (l, _, r) {Eq (l, r)}],
add = [token ("+"), fun (l, _, r) {Add (l, r)}],
sub = [token ("-"), fun (l, _, r) {Sub (l, r)}],
mul = [token ("*"), fun (l, _, r) {Mul (l, r)}],
div = [token ("/"), fun (l, _, r) {Div (l, r)}],
exp = expr ({[Nona, singleton (eq)], [Right, {add, sub}], [Left, {mul, div}]}, a);
exp = expr ({[Nona, {eq}], [Right, {add, sub}], [Left, {mul, div}]}, a);
printf ("%s\n", parseString (exp |> bypass (eof), "a+a-a").string);
printf ("%s\n", parseString (exp |> bypass (eof), "a*a/a*a").string);

View file

@ -2,13 +2,13 @@ import Ostap;
import Fun;
import List;
local a = token ("a"),
var a = token ("a"),
eq = [token ("="), fun (l, _, r) {Eq (l, r)}],
add = [token ("+"), fun (l, _, r) {Add (l, r)}],
sub = [token ("-"), fun (l, _, r) {Sub (l, r)}],
mul = [token ("*"), fun (l, _, r) {Mul (l, r)}],
div = [token ("/"), fun (l, _, r) {Div (l, r)}],
exp = expr ({[Nona, singleton (eq)], [Right, {add, sub}], [Left, {mul, div}]}, a);
exp = expr ({[Nona, {eq}], [Right, {add, sub}], [Left, {mul, div}]}, a);
printf ("%s\n", parseString (exp |> bypass (eof), "a=a").string);
printf ("%s\n", parseString (exp |> bypass (eof), "a*a=a*a").string);

View file

@ -2,13 +2,13 @@ import Ostap;
import Fun;
import List;
local a = token ("a") @ lift(fun (a) {if a then "a" else "b" fi}),
var a = token ("a") @ lift(fun (a) {if a then "a" else "b" fi}),
eq = [token ("="), fun (l, _, r) {fun (a) {Eq (l (a), r (a))}}],
add = [token ("+"), fun (l, _, r) {fun (a) {Add (l (a), r (a))}}],
sub = [token ("-"), fun (l, _, r) {fun (a) {Sub (l (a), r (a))}}],
mul = [token ("*"), fun (l, _, r) {fun (a) {Mul (l (a), r (a))}}],
div = [token ("/"), fun (l, _, r) {fun (a) {Div (l (a), r (a))}}],
exp = expr ({[Nona, singleton (eq)], [Right, {add, sub}], [Left, {mul, div}]}, a);
exp = expr ({[Nona, {eq}], [Right, {add, sub}], [Left, {mul, div}]}, a);
fun unpack (x, y) {
case x of

View file

@ -1,4 +1,4 @@
local x = lazy (for local i; i := 0, i<10, i := i + 1 do printf ("Lazy body: %d\n", i) od; 100);
var x = lazy (for var i; i := 0, i<10, i := i + 1 do printf ("Lazy body: %d\n", i) od; 100);
printf ("First force: %d\n", force (x));
printf ("Second force: %d\n", force (x))

View file

@ -12,7 +12,7 @@ fun not (x) {
}
fun test (a, b) {
local f = normalize (a =?= b);
var f = normalize (a =?= b);
printf ("%s =?= %s = %d\n", a.string, b.string, f);
printf ("symmetricity: %s\n", if normalize (b =?= a) == not (f) then "ok" else "fail" fi)
@ -37,8 +37,8 @@ test ([1, 2, 3], S (1, 2, 3));
test ("abc", [1, 2, 3]);
test (1, [1, 2, 3]);
{
local a = [1], b = [1];
(
var a = [1], b = [1];
a [0] := a;
b [0] := b;
@ -62,4 +62,4 @@ test (1, [1, 2, 3]);
b[0] := a;
printf ("%d\n", a =?= b)
}
)

View file

@ -9,7 +9,7 @@ fun insert (tree, value) {
esac
}
local i, tree = Empty;
var i, tree = Empty;
for i := 0, i <= 10, i := i+1 do
printf ("%s\n", tree.string);

View file

@ -1,5 +1,5 @@
fun collect_ints_acc (v, tail) {
local i;
var i;
case v of
a@#val -> Cons (a, tail)

View file

@ -1,4 +1,4 @@
local lists = [
var lists = [
{},
{1, 2, 3, 4},
{1 : {}, {2, 3}, {4, {5, 6}}},

View file

@ -7,8 +7,8 @@ printf ("Cloning string: %s\n", clone ("abc"));
printf ("Cloning array: %s\n", clone ([1, 2, 3, 4, 5]).string);
printf ("Cloning sexp: %s\n", clone (A (1, 2, 3, 4, 5)).string);
{
local c = f (5, 6), cc = clone (c);
(
var c = f (5, 6), cc = clone (c);
printf ("Cloning closure: address %s, %d, %d\n", if cc[0] == c[0] then "ok" else "fail" fi, c[1], c[2])
}
)

View file

@ -1,4 +1,4 @@
local i;
var i;
printf ("Number of commands-line arguments: %d\n", sysargs.length);

View file

@ -4,7 +4,7 @@ fun pure(v) {
empty @ lift(v)
}
local parse =
var parse =
token(".") |> fun(e1) {
token(".") |> fun(e2) {
pure(Dot(e1, e2)) }};

View file

@ -1,4 +1,4 @@
local sq = syntax (e1=token ["a"] e2=token ["b"] {Seq (e1, e2)}),
var sq = syntax (e1=token ["a"] e2=token ["b"] {Seq (e1, e2)}),
al = syntax (e=(token ["a"] | token ["b"]) {Alt (e)}),
rp = syntax (e=token ["a"]* {Rep (e)});

View file

@ -1,4 +1,4 @@
local sq = syntax (e1=token ["a"] e2=token ["b"] {Seq (e1, e2)}),
var sq = syntax (e1=token ["a"] e2=token ["b"] {Seq (e1, e2)}),
al = syntax (e=(token ["a"] | token ["b"]) {Alt (e)}),
rp = syntax (e=token ["a"]* {Rep (e)});

View file

@ -6,7 +6,7 @@ import Fun;
import Data;
fun genCyclicArrays (n, eq, cross) {
local f = ref (true);
var f = ref (true);
fun genrec (n, stacka, stackb, depth) {
fun peek (k, stack) {
@ -24,14 +24,14 @@ fun genCyclicArrays (n, eq, cross) {
x -> [x, clone (x)]
esac
else
local a = split (n, random (n+1)),
var a = split (n, random (n+1)),
b = mapArray (id, a),
index = initArray (random (a.length + 1), fun (_) {random (a.length)});
fun shared (i) {
local found = false;
var found = false;
for local j=0;, j < index.length && 1 - found, j := j + 1
for var j=0;, j < index.length && 1 - found, j := j + 1
do
found := i == index[j]
od;
@ -39,7 +39,7 @@ fun genCyclicArrays (n, eq, cross) {
found
}
for local i=0;, i < a.length, i := i + 1
for var i=0;, i < a.length, i := i + 1
do
if shared (i)
then
@ -89,7 +89,7 @@ fun not (x) {0 - x}
disableGC ();
for local i=0;, i<25, i:=i+1
for var i=0;, i<25, i:=i+1
do
case genCyclicArrays (1000, true, false) of
[a, b] ->
@ -98,7 +98,7 @@ do
esac
od;
for local i=0;, i<25, i:=i+1
for var i=0;, i<25, i:=i+1
do
case genCyclicArrays (1000, true, true) of
[a, b] ->
@ -107,19 +107,19 @@ do
esac
od;
for local i=0;, i<25, i:=i+1
for var i=0;, i<25, i:=i+1
do
case genCyclicArrays (1000, false, false) of
[a, b] -> local x = normalize (a =?= b);
[a, b] -> var x = normalize (a =?= b);
printf ("%d\n", x != 0);
printf ("%d\n", not (x) == normalize (b =?= a))
esac
od;
for local i=0;, i<25, i:=i+1
for var i=0;, i<25, i:=i+1
do
case genCyclicArrays (1000, false, true) of
[a, b] -> local x = normalize (a =?= b);
[a, b] -> var x = normalize (a =?= b);
printf ("%d\n", x != 0);
printf ("%d\n", not (x) == normalize (b =?= a))
esac