From 227580563e4e5ece16c7a28fde6ee5d252f3b151 Mon Sep 17 00:00:00 2001 From: Lukasz Baldyga Date: Fri, 27 Nov 2020 15:35:23 +0000 Subject: [PATCH] Checks for bad names --- .../Verbs/Value/DeclareVariable.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/DeclareVariable.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/DeclareVariable.cs index d32104d..673d0ae 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/DeclareVariable.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/DeclareVariable.cs @@ -8,6 +8,21 @@ namespace Advanced_Software_Engineering.Verbs.Value { private IValue value; private string name; + //Common characters that people might try + private char[] illegalCharacters = "1234567890!?/+- \"'@#~;:><,.`¬|[]{}\\£$%^&*()".ToCharArray(); + + /// + /// Checks if the name provided is valid + /// + /// The name of the variable + /// True if the name is valid, otherwise false + private bool CheckName(string name) { + foreach(char character in illegalCharacters) { + if (name.Contains(character.ToString())) return false; + } + return true; + } + public DeclareVariable(Drawer drawer, string type, string assignment) { this.drawer = drawer; @@ -23,6 +38,7 @@ namespace Advanced_Software_Engineering.Verbs.Value { List assignmentList = SettingsAndHelperFunctions.StripStringArray(assignment.Split("="[0])); name = assignmentList[0]; if (drawer.CheckVariableExists(name)) throw new Exception("Declaration failed. " + name + " has been declared before"); + if (!CheckName(name)) throw new Exception("Name not allowed"); value = ValueFactory.CreateValue(assignmentList[1], type); } else { //boolean here