Exemplo n.º 1
0
        public static JsNode FixParenthesis(this JsNode node)
        {
            var visitor = new JsParensFixingVisitor();

            node.AcceptVisitor(visitor);
            return(node);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
        /// <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);
                }
            }
        }