Class NodeTraversal

java.lang.Object
com.google.javascript.jscomp.NodeTraversal

public class NodeTraversal extends Object
NodeTraversal allows an iteration through the nodes in the parse tree, and facilitates the optimizations on the parse tree.
  • Field Details

    • NODE_TRAVERSAL_ERROR

      public static final DiagnosticType NODE_TRAVERSAL_ERROR
  • Constructor Details

    • NodeTraversal

      public NodeTraversal(AbstractCompiler compiler, NodeTraversal.Callback cb)
      Creates a node traversal using the specified callback interface.
    • NodeTraversal

      public NodeTraversal(AbstractCompiler compiler, NodeTraversal.Callback cb, com.google.javascript.jscomp.ScopeCreator scopeCreator)
      Creates a node traversal using the specified callback interface and the scope creator.
  • Method Details

    • traverse

      public void traverse(Node root)
      Traverses a parse tree recursively.
    • traverseRoots

      public void traverseRoots(Node... roots)
    • traverseRoots

      public void traverseRoots(List<Node> roots)
    • traverseInnerNode

      protected void traverseInnerNode(Node node, Node parent, Scope refinedScope)
      Traverses an inner node recursively with a refined scope. An inner node may be any node with a non null parent (i.e. all nodes except the root).
      Parameters:
      node - the node to traverse
      parent - the node's parent, it may not be null
      refinedScope - the refined scope of the scope currently at the top of the scope stack or in trivial cases that very scope or null
    • getCompiler

      public Compiler getCompiler()
      Gets the compiler.
    • getLineNumber

      public int getLineNumber()
      Gets the current line number, or zero if it cannot be determined. The line number is retrieved lazily as a running time optimization.
    • getSourceName

      public String getSourceName()
      Gets the current input source name.
      Returns:
      A string that may be empty, but not null
    • getInput

      public CompilerInput getInput()
      Gets the current input source.
    • getModule

      public JSModule getModule()
      Gets the current input module.
    • getCurrentNode

      public Node getCurrentNode()
      Returns the node currently being traversed.
    • traverse

      public static void traverse(AbstractCompiler compiler, Node root, NodeTraversal.Callback cb)
      Traverses a node recursively.
    • traverseRoots

      public static void traverseRoots(AbstractCompiler compiler, List<Node> roots, NodeTraversal.Callback cb)
      Traverses a list of node trees.
    • traverseRoots

      public static void traverseRoots(AbstractCompiler compiler, NodeTraversal.Callback cb, Node... roots)
    • getEnclosingFunction

      public Node getEnclosingFunction()
      Examines the functions stack for the last instance of a function node.
    • getScope

      public Scope getScope()
      Gets the current scope.
    • getControlFlowGraph

      public com.google.javascript.jscomp.ControlFlowGraph<Node> getControlFlowGraph()
      Gets the control flow graph for the current JS scope.
    • getScopeRoot

      public Node getScopeRoot()
      Returns the current scope's root.
    • hasScope

      public boolean hasScope()
    • report

      public void report(Node n, DiagnosticType diagnosticType, String... arguments)
      Reports a diagnostic (error or warning)
    • makeError

      public JSError makeError(Node n, CheckLevel level, DiagnosticType type, String... arguments)
      Creates a JSError during NodeTraversal.
      Parameters:
      n - Determines the line and char position within the source file name
      type - The DiagnosticType
      arguments - Arguments to be incorporated into the message
    • makeError

      public JSError makeError(Node n, DiagnosticType type, String... arguments)
      Creates a JSError during NodeTraversal.
      Parameters:
      n - Determines the line and char position within the source file name
      type - The DiagnosticType
      arguments - Arguments to be incorporated into the message