aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-01-31 22:28:48 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-02-01 10:22:56 +0100
commitafc4a3fe1618239017e15cabc664dd70abc1d75b (patch)
tree6f086d71b24a230fe7f656a9780536808b56644b /src/lib.rs
parentcc4bacf33c98e9bd186a2a3da7335577df879a9d (diff)
downloadsylt-afc4a3fe1618239017e15cabc664dd70abc1d75b.tar.gz
add assignment ops
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 42f24bd..453d6ce 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -325,6 +325,26 @@ a() <=> 4
test_file!(scoping, "tests/scoping.tdy");
test_file!(for_, "tests/for.tdy");
+
+ test_multiple!(
+ op_assign,
+ add: "a := 1\na += 1\na <=> 2",
+ sub: "a := 2\na -= 1\na <=> 1",
+ mul: "a := 2\na *= 2\na <=> 4",
+ div: "a := 2\na /= 2\na <=> 1",
+ cluster: "
+blob A { a: int }
+a := A()
+a.a = 0
+a.a += 1
+a.a <=> 1
+a.a *= 2
+a.a <=> 2
+a.a /= 2
+a.a <=> 1
+a.a -= 1
+a.a <=> 0"
+ );
}
#[derive(Clone)]
@@ -431,6 +451,7 @@ pub enum Op {
Pop,
PopUpvalue,
+ Copy,
Constant(Value),
Get(String),