public override object Execute(Func <object>[] args) { var result = args[0](); ScopeManager.Add(ReturnVarName, result); return(result); }
public override object Execute(Func <object>[] args) { var arg1 = args[0](); if (arg1 is string varName) { var varValue = args[1](); ScopeManager.Add(varName, varValue); return(null); } throw new InvalidOperationException($"Expected 1st arg to be an identifier but it was '{arg1}'"); }
private void InitialiseLocals(string[] parameters, object[] arguments) { var vars = new Dictionary <string, object>(); for (var i = 0; i < parameters.Length; i++) { vars.Add(parameters[i], arguments[i]); } ScopeManager.EnterScope(); foreach (var variable in vars) { ScopeManager.Add(variable.Key, variable.Value); } }