Checks for bad names

This commit is contained in:
Lukasz Baldyga committed 2020-11-27 15:35:23 +00:00
1 parent e0ff2ab464
commit 227580563e
1 file changed
+16
@@ -8,6 +8,21 @@ namespace Advanced_Software_Engineering.Verbs.Value {
private IValue value; private IValue value;
private string name; private string name;
//Common characters that people might try
private char[] illegalCharacters = "1234567890!?/+- \"'@#~;:><,.`¬|[]{}\\£$%^&*()".ToCharArray();
/// <summary>
/// Checks if the name provided is valid
/// </summary>
/// <param name="name">The name of the variable</param>
/// <returns>True if the name is valid, otherwise false</returns>
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) { public DeclareVariable(Drawer drawer, string type, string assignment) {
this.drawer = drawer; this.drawer = drawer;
@@ -23,6 +38,7 @@ namespace Advanced_Software_Engineering.Verbs.Value {
List<string> assignmentList = SettingsAndHelperFunctions.StripStringArray(assignment.Split("="[0])); List<string> assignmentList = SettingsAndHelperFunctions.StripStringArray(assignment.Split("="[0]));
name = assignmentList[0]; name = assignmentList[0];
if (drawer.CheckVariableExists(name)) throw new Exception("Declaration failed. " + name + " has been declared before"); 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); value = ValueFactory.CreateValue(assignmentList[1], type);
} else { } else {
//boolean here //boolean here