public static bool NeedsParens(AstNode expression, bool outerHasNoArguments)
        {
            var visitor = new NewParensVisitor(outerHasNoArguments);

            expression.Accept(visitor);
            return(visitor.m_needsParens);
        }
예제 #2
0
 public static void Apply(AstNode node)
 {
     if (node != null)
     {
         node.Accept(s_instance);
     }
 }
예제 #3
0
        /// <summary>
        /// For the given binding node, return a collection of individual lookup
        /// nodes that represent the names being referenced.
        /// </summary>
        /// <param name="node">binding node</param>
        /// <returns>collection of Lookup nodes</returns>
        public static IList <Lookup> References(AstNode node)
        {
            var visitor = new BindingsVisitor();

            if (node != null)
            {
                node.Accept(visitor);
            }

            return(visitor.m_lookups);
        }
예제 #4
0
        /// <summary>
        /// For the given binding node, return a collection of individual INameDeclaration
        /// nodes that represent the names being declared for this binding element.
        /// </summary>
        /// <param name="node">binding node</param>
        /// <returns>collection of INameDeclaration nodes</returns>
        public static IList <BindingIdentifier> Bindings(AstNode node)
        {
            var visitor = new BindingsVisitor();

            if (node != null)
            {
                node.Accept(visitor);
            }

            return(visitor.m_bindings);
        }
        public static bool Apply(TextWriter writer, AstNode node, CodeSettings settings)
        {
            if (node != null)
            {
                var visitor = new JSONOutputVisitor(writer, settings);
                node.Accept(visitor);
                return(visitor.IsValid);
            }

            return(false);
        }
예제 #6
0
        public bool IsSafe(AstNode node)
        {
            // assume it is unless preven otherwise
            m_isSafe = true;

            if (node != null)
            {
                node.Accept(this);
            }

            return(m_isSafe);
        }
        public bool Query(AstNode node)
        {
            // requires by default unless a node explicitly says it doesn't need one
            DoesRequire = node != null;

            if (node != null)
            {
                node.Accept(this);
            }

            return(DoesRequire);
        }