From 063cdc92e3819743fe92f9bfe437e4b24571db9b Mon Sep 17 00:00:00 2001 From: Maxwell Jeffress Date: Sun, 21 Sep 2025 08:12:10 +1000 Subject: [PATCH] Re-add not instruction I accidentally deleted --- src/main.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 19fc99a..189d829 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1895,6 +1895,38 @@ Literal exec(vector in, bool executingFunction) { setVal(varRef.varName, final); } break; + + /* + not instruction + Negates a boolean + */ + case Instructions::Not: + if (l.args.size() < 2) { + error("Could not find all arguments required for Not inbuilt"); + } + { + Literal boolean; + Direct varRef; + + if (holds_alternative(l.args[0])) { + if (holds_alternative(get(l.args[0]).val)) { + boolean.val = !get(get(l.args[0]).val); + } else { + error("First argument of not must be a boolean literal"); + } + } else { + error("First argument of not must be a boolean literal"); + } + + if (holds_alternative(l.args[1])) { + varRef = get(l.args[1]); + } else { + error("Second argument of not must be a direct reference"); + } + + setVal(varRef.varName, boolean); + } + break; /* jump instruction Jumps to the line reference provided.