mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-05 22:38:44 +00:00
16 lines
716 B
Text
16 lines
716 B
Text
import Ostap;
|
|
import Fun;
|
|
import List;
|
|
|
|
local 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) (id);
|
|
|
|
printf ("%s\n", parseString (exp |> bypass (eof), "a=a").string);
|
|
printf ("%s\n", parseString (exp |> bypass (eof), "a*a=a*a").string);
|
|
printf ("%s\n", parseString (exp |> bypass (eof), "a*a+a/a-a*a=a*a-a").string);
|
|
printf ("%s\n", parseString (exp |> bypass (eof), "a=a=a+a").string)
|