public ChimpyObject Run(Context context, ChimpyException e) { if(localName != null) context.SetLocal(localName, e.GetRuntimeObject()); return handler.Eval(context); }
public override ChimpyObject Call(ChimpyObject receiver, ChimpyObject [] arguments) { if(delegatedMethodCall != null) return delegatedMethodCall(receiver,arguments); Context context = new Context(receiver); if(parameters.Length != arguments.Length) throw new ArgumentError(name,parameters.Length,arguments.Length); for (int i=0;i<parameters.Length;i++) { context.SetLocal(parameters[i],arguments[i]); } return body.Eval(context); }
public override ChimpyObject Eval(Context context) { ChimpyObject value = expression.Eval(context); context.SetLocal(name,value); return value; }