/// <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));
        }
Exemplo n.º 2
0
        protected virtual void OnExpressionEvaluated(EvaluateArgs args)
        {
            ExpressionEvaluatedHandler temp = ExpressionEvaluated;

            if (temp != null)
            {
                temp(this, args);
            }
        }