Private
Public Access
Checks for bad names
This commit is contained in:
1 parent
e0ff2ab464
commit
227580563e
1 file changed
+16
+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
|
||||||
|
|||||||
Reference in new issue
Block a user