mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-06 06:48:48 +00:00
Fixed Ostap::expr interface to comply the spec
This commit is contained in:
parent
52281261c4
commit
0c38e4b1df
8 changed files with 8 additions and 8 deletions
|
|
@ -1 +1 @@
|
|||
let version = "Version 1.00, 2f640fdc6, Wed Sep 23 01:39:38 2020 +0300"
|
||||
let version = "Version 1.00, 52281261c, Wed Sep 30 21:21:57 2020 +0300"
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ public fun expr (ops, opnd) {
|
|||
esac
|
||||
}
|
||||
|
||||
inner (ops)
|
||||
inner (ops) (id)
|
||||
}
|
||||
|
||||
initOstap ()
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue