private SObject ExecuteVar(ScriptStatement statement) { var exp = statement.Code; var identifier = exp.Remove(0, "var ".Length).Trim(); var data = Undefined; if (identifier.Contains("=")) { var assignment = identifier.Remove(0, identifier.IndexOf("=") + 1).Trim(); identifier = identifier.Remove(identifier.IndexOf("=")).Trim(); data = SObject.Unbox(ExecuteStatement(new ScriptStatement(assignment))); } if (!IsValidIdentifier(identifier)) { return(ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MESSAGE_SYNTAX_MISSING_VAR_NAME)); } var variable = new SVariable(identifier, data); Context.AddVariable(variable); return(variable); }
private SObject ExecuteVar(ScriptStatement statement) { var exp = statement.Code; var identifier = exp.Remove(0, "var ".Length).Trim(); var data = Undefined; if (identifier.Contains("=")) { var assignment = identifier.Remove(0, identifier.IndexOf("=", StringComparison.Ordinal) + 1).Trim(); identifier = identifier.Remove(identifier.IndexOf("=", StringComparison.Ordinal)).Trim(); data = SObject.Unbox(ExecuteStatement(new ScriptStatement(assignment))); } if (!IsValidIdentifier(identifier)) { return(ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MessageSyntaxMissingVarName)); } var variable = new SVariable(identifier, data); Context.AddVariable(variable); return(variable); }
/// <summary> /// Adds a variable to the context. /// </summary> internal void AddVariable(SVariable variable) { if (_variables.ContainsKey(variable.Identifier)) { _variables[variable.Identifier] = variable; } else { _variables.Add(variable.Identifier, variable); } }