From 35bc68cfb6a99f39261d5e781942902d0c121cb0 Mon Sep 17 00:00:00 2001 From: Lukasz Baldyga Date: Wed, 25 Nov 2020 02:00:39 +0000 Subject: [PATCH] Added some verbs --- .../Verbs/Value/ValueContainer.cs | 28 +++++++++++++++++++ .../Verbs/Value/ValueFactory.cs | 23 +++++++++++++-- .../{BytesValue.cs => VariableValue.cs} | 9 ++++-- .../Verbs/VerbFactory.cs | 5 ++++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueContainer.cs rename Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/{BytesValue.cs => VariableValue.cs} (75%) diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueContainer.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueContainer.cs new file mode 100644 index 0000000..b5dcf8d --- /dev/null +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueContainer.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Advanced_Software_Engineering.Verbs.Value { + class ValueContainer { + + Dictionary variables = new Dictionary(); + + public ValueContainer() { + + } + + public void SetVariable(string variableName, IValue iValue) { + if (variables.ContainsKey(variableName)) ; + } + + public void DeclareVariable(string variableName, IValue iValue) { + + } + + public void DeclareAndSetVariable(string variableName, IValue iValue) { + + } + } +} diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs index 7cea167..203378d 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs @@ -1,11 +1,30 @@ -using System; +using Advanced_Software_Engineering.Verbs.Value.ValueTypes; +using System; namespace Advanced_Software_Engineering.Verbs.Value { class ValueFactory { + /// + /// Creates a constant Value to be used later during execution + /// + /// Text representation of the value + /// What type the value should be + /// + public IValue CreateValue(string value, string type) { + switch (type) { + case "int": + return new IntValue(ValueHelper.ConvertToInt(value)); - ValueFactory(string value, Type TypeHint = null) { + case "double": + return new DoubleValue(ValueHelper.ConvertToDouble(value)); + default: + throw new Exception("Unknown expected type: " + type.ToString()); + + } } + + + } } diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/BytesValue.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/VariableValue.cs similarity index 75% rename from Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/BytesValue.cs rename to Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/VariableValue.cs index 5ed180e..91cbd2c 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/BytesValue.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueTypes/VariableValue.cs @@ -1,9 +1,14 @@ using System; +using System.Collections.Generic; using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; namespace Advanced_Software_Engineering.Verbs.Value.ValueTypes { + class VariableValue : IValue { - internal class BytesValue : IValue { + static Dictionary variables = new Dictionary(); public string GetDescription() { throw new NotImplementedException(); @@ -29,4 +34,4 @@ namespace Advanced_Software_Engineering.Verbs.Value.ValueTypes { throw new NotImplementedException(); } } -} \ No newline at end of file +} diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs index 256073f..7ad946c 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs @@ -202,6 +202,11 @@ namespace Advanced_Software_Engineering { ); } else throw new Exception(command + " has an incorrect number of parameters"); + case "int": + if (parameterLength == 1) { + return new Verb + } else throw new Exception("ints need to be initialised"); + default: throw new Exception("Unknown command"); }