/// <summary>Evaluates an expression.</summary> public EvaluateResponse Evaluate(EvaluateArgs args) { if (args.context == "clipboard") { return new EvaluateResponse() { result = ClipboardEvaluation[args.expression] } } ; string[] path = args.expression.Split('.'); // Get the first variable. IDebugVariable current = Variables.FirstOrDefault(v => v.IsRoot && v.Name == path[0]); if (current == null) { return(EvaluateResponse.Empty); } // Get the rest of the path. for (int i = 1; i < path.Length; i++) { current = current.Resolver.GetChildren(this, current).FirstOrDefault(v => v.Name == path[i]); if (current == null) { return(EvaluateResponse.Empty); } } return(current.Resolver.GetEvaluation(this, current)); }
protected virtual void OnExpressionEvaluated(EvaluateArgs args) { ExpressionEvaluatedHandler temp = ExpressionEvaluated; if (temp != null) { temp(this, args); } }