public void SelectTo(object obj, string expr, JsonPathResultAccumulator output)
{
if (obj == null)
throw new ArgumentNullException("obj");
if (output == null)
throw new ArgumentNullException("output");
var i = new Interpreter(output, ValueSystem, ScriptEvaluator);
expr = Normalize(expr);
if (expr.Length >= 1 && expr[0] == '$') // ^\$:?
expr = expr.Substring(expr.Length >= 2 && expr[1] == ';' ? 2 : 1);
i.Trace(expr, obj, "$");
}