From 4c736914d42ab7ab059feff07a0ff1c329ad6b0a Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Mon, 21 Sep 2020 23:46:13 +0300 Subject: [PATCH] Fix for https://github.com/JetBrains-Research/Lama/issues/10 --- regression/orig/test107.log | 1 + regression/test107.input | 1 + regression/test107.lama | 7 +++++++ src/Language.ml | 17 ++++++++++------- src/version.ml | 2 +- 5 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 regression/orig/test107.log create mode 100644 regression/test107.input create mode 100644 regression/test107.lama diff --git a/regression/orig/test107.log b/regression/orig/test107.log new file mode 100644 index 000000000..d14b46a2c --- /dev/null +++ b/regression/orig/test107.log @@ -0,0 +1 @@ +> 0 diff --git a/regression/test107.input b/regression/test107.input new file mode 100644 index 000000000..7ed6ff82d --- /dev/null +++ b/regression/test107.input @@ -0,0 +1 @@ +5 diff --git a/regression/test107.lama b/regression/test107.lama new file mode 100644 index 000000000..9af8ae459 --- /dev/null +++ b/regression/test107.lama @@ -0,0 +1,7 @@ +local n = read (); + +case 0 of + 0 -> 0 + 0 + 0 +esac; + +write (0) \ No newline at end of file diff --git a/src/Language.ml b/src/Language.ml index c8a1c2a47..9cbbbbf18 100644 --- a/src/Language.ml +++ b/src/Language.ml @@ -587,12 +587,15 @@ module Expr = let sem s = (fun x atr y -> ignore atr (Call (Var s, [x; y]))), (fun _ -> Val, Val) let sem_init s = fun x atr y -> - ignore atr ( - match s with - | ":" -> Sexp ("cons", [x; y]) - | ":=" -> Assign (x, y) - | _ -> Binop (s, x, y) - ) + let p x y = + match s with + | ":" -> Sexp ("cons", [x; y]) + | ":=" -> Assign (x, y) + | _ -> Binop (s, x, y) + in + match x with + Ignore x -> Ignore (p x y) + | _ -> ignore atr (p x y) (* ======= *) @@ -624,7 +627,7 @@ module Expr = )] ) in - ostap (inner[0][id][atr]) + ostap (inner[0][id][atr]) let atr' = atr let not_a_reference s = new Reason.t (Msg.make "not a reference" [||] (Msg.Locator.Point s#coord)) diff --git a/src/version.ml b/src/version.ml index 4b24cd42c..3d9a2aff6 100644 --- a/src/version.ml +++ b/src/version.ml @@ -1 +1 @@ -let version = "Version 1.00, 09eb6aa18, Sat Sep 12 21:05:25 2020 +0300" +let version = "Version 1.00, d06d9a250, Mon Sep 21 21:30:08 2020 +0300"