From 7c3687b65b16a90a5e5d73cdb2dd6e9a70bb15c0 Mon Sep 17 00:00:00 2001 From: danyaberezun Date: Fri, 1 Mar 2024 13:49:06 +0200 Subject: [PATCH] add let-in as experimental sintax sugar over case --- regression/orig/test112.log | 11 +++++++++++ regression/test112.input | 0 regression/test112.lama | 16 ++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 regression/orig/test112.log create mode 100644 regression/test112.input create mode 100644 regression/test112.lama diff --git a/regression/orig/test112.log b/regression/orig/test112.log new file mode 100644 index 000000000..a59fc9571 --- /dev/null +++ b/regression/orig/test112.log @@ -0,0 +1,11 @@ +1 +2 +5 +6 +7 +8 +5 +6 +7 +8 +3 diff --git a/regression/test112.input b/regression/test112.input new file mode 100644 index 000000000..e69de29bb diff --git a/regression/test112.lama b/regression/test112.lama new file mode 100644 index 000000000..f965c637f --- /dev/null +++ b/regression/test112.lama @@ -0,0 +1,16 @@ +-- let A (x,y) be A(5,6) in write(x); write(y) ni; +-- case A(5,6) of A(x,y) -> write(x); write(y) esac; +-- let A (x,y) be A(5,6) in .... +-- let A (x,y) be A(5,6) <----- void then ; + +fun f (x) { + write(x) +} + +f(let x = A(1,2) in x[0]); +f(let x = A(1,2) in x[1]); + +let A (x,y) = A(5,6) in let B(z,e) = B(7,8) in write(x); write(y); write(z); write(e); +let A (x,y) = A(5,6) in (let B(z,e) = B(7,8) in write(x); write(y); write(z); write(e)); + +let x = (let x = C(1,2) in x[1]) + (let x = C(1,2) in x[0]) in write(x)