diff --git a/schala-lang/src/eval.rs b/schala-lang/src/eval.rs index 71d2c97..a0a418e 100644 --- a/schala-lang/src/eval.rs +++ b/schala-lang/src/eval.rs @@ -427,6 +427,12 @@ impl<'a> State<'a> { ("&", &[Lit(Nat(l)), Lit(Nat(r))]) => Lit(Nat(l & r)), ("|", &[Lit(Nat(l)), Lit(Nat(r))]) => Lit(Nat(l | r)), + ("==", &[Lit(Nat(l)), Lit(Nat(r))]) => Lit(Bool(l == r)), + ("==", &[Lit(Int(l)), Lit(Int(r))]) => Lit(Bool(l == r)), + ("==", &[Lit(Float(l)), Lit(Float(r))]) => Lit(Bool(l == r)), + ("==", &[Lit(Bool(l)), Lit(Bool(r))]) => Lit(Bool(l == r)), + ("==", &[Lit(StringLit(ref l)), Lit(StringLit(ref r))]) => Lit(Bool(l == r)), + /* prefix ops */ ("!", &[Lit(Bool(true))]) => Lit(Bool(false)), ("!", &[Lit(Bool(false))]) => Lit(Bool(true)),