From 7f16f31967516400bf8824489311332b627a1e3d Mon Sep 17 00:00:00 2001 From: Lukasz Baldyga Date: Sun, 29 Nov 2020 09:49:13 +0000 Subject: [PATCH] Added better expressions --- .../Verbs/Value/ValueTypes/ExpressionValue.cs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/ExpressionValue.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/ExpressionValue.cs index fed0145..2085d9f 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/ExpressionValue.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/ExpressionValue.cs @@ -25,6 +25,36 @@ namespace Advanced_Software_Engineering.Verbs.Value { if (operation > 3 && operation < 0) throw new Exception("Bad operation"); } + public ExpressionValue(Drawer drawer, IValue variable1, IValue variable2, string operation) { + switch(operation) { + case "+": + this.operation = ADD; + break; + + case "-": + this.operation = SUBTRACT; + break; + + case "*": + this.operation = MULTIPLY; + break; + + case "/": + this.operation = DIVIDE; + break; + + default: + throw new Exception("Undefined operation"); + } + + this.variable1 = variable1; + this.variable2 = variable2; + + + //Check for bad input + if (this.operation > 3 && this.operation < 0) throw new Exception("Bad operation"); + } + private IValue Evaluate() { if (evaluated) return evaluatedValue;