public static JsNode FixParenthesis(this JsNode node) { var visitor = new JsParensFixingVisitor(); node.AcceptVisitor(visitor); return(node); }
public static string FormatScript(this JsNode node, bool niceMode = false, string indent = "\t", bool isDebugString = false) { node.FixParenthesis(); var visitor = new JsFormattingVisitor(niceMode, indent); node.AcceptVisitor(visitor); return(isDebugString ? visitor.ToString() : visitor.GetParameterlessResult()); }
public static ParametrizedCode FormatParametrizedScript(this JsNode node, bool niceMode = false, string indent = "\t") { node.FixParenthesis(); var visitor = new JsFormattingVisitor(niceMode, indent); node.AcceptVisitor(visitor); return(visitor.GetResult(JsParensFixingVisitor.GetOperatorPrecedence(node as JsExpression))); }
/// <summary> /// Applies the <paramref name="visitor"/> to all nodes in this collection. /// </summary> public void AcceptVisitor(IJsNodeVisitor visitor) { JsNode next; for (JsNode cur = node.FirstChild; cur != null; cur = next) { Debug.Assert(cur.Parent == node); // Remember next before yielding cur. // This allows removing/replacing nodes while iterating through the list. next = cur.NextSibling; if (cur.Role == role) { cur.AcceptVisitor(visitor); } } }