internal override void Walk(NodeWalker walker, int depth, bool wrap)
{
if (wrap)
{
walker("(", Value, depth);
depth += 1;
}
Left.Walk(walker, depth + 1, Priority < Left.Priority);
walker(" ");
walker(Operator, Value, depth);
walker(" ");
Right.Walk(walker, depth + 1, Priority <= Right.Priority);
if (wrap)
walker(")");
}