Fixed Ostap::expr interface to comply the spec

This commit is contained in:
Dmitry Boulytchev 2020-10-04 17:58:26 +03:00
parent 52281261c4
commit 0c38e4b1df
8 changed files with 8 additions and 8 deletions

View file

@ -6,7 +6,7 @@ local a = token ("a"),
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 ({[Left, {add, sub}], [Left, {mul, div}]}, a) (id);
exp = expr ({[Left, {add, sub}], [Left, {mul, div}]}, a);
printf ("%s\n", parseString (exp |> bypass (eof), "a").string);
printf ("%s\n", parseString (exp |> bypass (eof), "a+a").string);

View file

@ -13,7 +13,7 @@ local a = token ("a"),
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 ({[Left, {add, sub}], [Left, {mul, div}]}, a) (id),
exp = expr ({[Left, {add, sub}], [Left, {mul, div}]}, a),
i;
printf ("%s\n", parseString (exp |> bypass (eof), gen (5)).string)

View file

@ -6,7 +6,7 @@ local a = token ("a"),
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 ({[Right, {add, sub}], [Left, {mul, div}]}, a) (id);
exp = expr ({[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

@ -8,7 +8,7 @@ local a = token ("a"),
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) (id);
exp = expr ({[Nona, singleton (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

@ -8,7 +8,7 @@ local a = token ("a"),
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) (id);
exp = expr ({[Nona, singleton (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

@ -8,7 +8,7 @@ local a = token ("a") @ lift(fun (a) {if a then "a" else "b" fi}),
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) (id);
exp = expr ({[Nona, singleton (eq)], [Right, {add, sub}], [Left, {mul, div}]}, a);
fun unpack (x, y) {
case x of