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