Class TranslatorNodeVisitor<T extends LexicalContext, R>

java.lang.Object
com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor<T,R>
Type Parameters:
T - lexical context class used by this visitor
R - return type
Direct Known Subclasses:
JavaScriptTranslator

public abstract class TranslatorNodeVisitor<T extends LexicalContext, R> extends Object
Visitor used to navigate the IR.
  • Field Details

  • Constructor Details

    • TranslatorNodeVisitor

      public TranslatorNodeVisitor(T lc)
      Constructor
      Parameters:
      lc - a custom lexical context
  • Method Details

    • getLexicalContext

      public final T getLexicalContext()
      Get the lexical context of this node visitor
      Returns:
      lexical context
    • enterDefault

      protected R enterDefault(Node node)
      Override this method to do a double inheritance pattern, e.g. avoid using
       if (x instanceof NodeTypeA) {
          ...
       } else if (x instanceof NodeTypeB) {
          ...
       } else {
          ...
       }
       
      Use a NodeVisitor instead, and this method contents forms the else case.
      Parameters:
      node - the node to visit
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterAccessNode

      public R enterAccessNode(AccessNode accessNode)
      Callback for entering an AccessNode
      Parameters:
      accessNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterBlock

      public R enterBlock(Block block)
      Callback for entering a Block
      Parameters:
      block - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterBinaryNode

      public R enterBinaryNode(BinaryNode binaryNode)
      Callback for entering a BinaryNode
      Parameters:
      binaryNode - the node
      Returns:
      processed node
    • enterBreakNode

      public R enterBreakNode(BreakNode breakNode)
      Callback for entering a BreakNode
      Parameters:
      breakNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterCallNode

      public R enterCallNode(CallNode callNode)
      Callback for entering a CallNode
      Parameters:
      callNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterCaseNode

      public R enterCaseNode(CaseNode caseNode)
      Callback for entering a CaseNode
      Parameters:
      caseNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterCatchNode

      public R enterCatchNode(CatchNode catchNode)
      Callback for entering a CatchNode
      Parameters:
      catchNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterContinueNode

      public R enterContinueNode(ContinueNode continueNode)
      Callback for entering a ContinueNode
      Parameters:
      continueNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterDebuggerNode

      public R enterDebuggerNode(DebuggerNode debuggerNode)
      Callback for entering a DebuggerNode
      Parameters:
      debuggerNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterEmptyNode

      public R enterEmptyNode(EmptyNode emptyNode)
      Callback for entering an EmptyNode
      Parameters:
      emptyNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterErrorNode

      public R enterErrorNode(ErrorNode errorNode)
      Callback for entering an ErrorNode
      Parameters:
      errorNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterNamedExportsNode

      public R enterNamedExportsNode(NamedExportsNode exportClauseNode)
    • enterExportNode

      public R enterExportNode(ExportNode exportNode)
    • enterExportSpecifierNode

      public R enterExportSpecifierNode(ExportSpecifierNode exportSpecifierNode)
    • enterExpressionStatement

      public R enterExpressionStatement(ExpressionStatement expressionStatement)
      Callback for entering an ExpressionStatement
      Parameters:
      expressionStatement - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterBlockStatement

      public R enterBlockStatement(BlockStatement blockStatement)
      Callback for entering a BlockStatement
      Parameters:
      blockStatement - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterForNode

      public R enterForNode(ForNode forNode)
      Callback for entering a ForNode
      Parameters:
      forNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterFunctionNode

      public R enterFunctionNode(FunctionNode functionNode)
      Callback for entering a FunctionNode
      Parameters:
      functionNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterIdentNode

      public R enterIdentNode(IdentNode identNode)
      Callback for entering an IdentNode
      Parameters:
      identNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterIfNode

      public R enterIfNode(IfNode ifNode)
      Callback for entering an IfNode
      Parameters:
      ifNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterImportClauseNode

      public R enterImportClauseNode(ImportClauseNode importClauseNode)
    • enterImportNode

      public R enterImportNode(ImportNode importNode)
    • enterImportSpecifierNode

      public R enterImportSpecifierNode(ImportSpecifierNode importSpecifierNode)
    • enterIndexNode

      public R enterIndexNode(IndexNode indexNode)
      Callback for entering an IndexNode
      Parameters:
      indexNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterLabelNode

      public R enterLabelNode(LabelNode labelNode)
      Callback for entering a LabelNode
      Parameters:
      labelNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterLiteralNode

      public R enterLiteralNode(LiteralNode<?> literalNode)
      Callback for entering a LiteralNode
      Parameters:
      literalNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterNameSpaceImportNode

      public R enterNameSpaceImportNode(NameSpaceImportNode nameSpaceImportNode)
    • enterNamedImportsNode

      public R enterNamedImportsNode(NamedImportsNode namedImportsNode)
    • enterObjectNode

      public R enterObjectNode(ObjectNode objectNode)
      Callback for entering an ObjectNode
      Parameters:
      objectNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterPropertyNode

      public R enterPropertyNode(PropertyNode propertyNode)
      Callback for entering a PropertyNode
      Parameters:
      propertyNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterReturnNode

      public R enterReturnNode(ReturnNode returnNode)
      Callback for entering a ReturnNode
      Parameters:
      returnNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterSwitchNode

      public R enterSwitchNode(SwitchNode switchNode)
      Callback for entering a SwitchNode
      Parameters:
      switchNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterTernaryNode

      public R enterTernaryNode(TernaryNode ternaryNode)
      Callback for entering a TernaryNode
      Parameters:
      ternaryNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterThrowNode

      public R enterThrowNode(ThrowNode throwNode)
      Callback for entering a ThrowNode
      Parameters:
      throwNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterTryNode

      public R enterTryNode(TryNode tryNode)
      Callback for entering a TryNode
      Parameters:
      tryNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterUnaryNode

      public R enterUnaryNode(UnaryNode unaryNode)
      Callback for entering a UnaryNode
      Parameters:
      unaryNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterJoinPredecessorExpression

      public R enterJoinPredecessorExpression(JoinPredecessorExpression expr)
      Callback for entering a JoinPredecessorExpression.
      Parameters:
      expr - the join predecessor expression
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterVarNode

      public R enterVarNode(VarNode varNode)
      Callback for entering a VarNode
      Parameters:
      varNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterWhileNode

      public R enterWhileNode(WhileNode whileNode)
      Callback for entering a WhileNode
      Parameters:
      whileNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterWithNode

      public R enterWithNode(WithNode withNode)
      Callback for entering a WithNode
      Parameters:
      withNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterClassNode

      public R enterClassNode(ClassNode classNode)
      Callback for entering a ClassNode
      Parameters:
      classNode - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterBlockExpression

      public R enterBlockExpression(BlockExpression blockExpression)
      Callback for entering a BlockExpression
      Parameters:
      blockExpression - the node
      Returns:
      true if traversal should continue and node children be traversed, false otherwise
    • enterParameterNode

      public R enterParameterNode(ParameterNode paramNode)
      Callback for entering a ParameterNode
      Parameters:
      paramNode - the node
    • enterTemplateLiteralNode

      public R enterTemplateLiteralNode(TemplateLiteralNode templateLiteralNode)
      Callback for entering a TemplateLiteralNode
      Parameters:
      templateLiteralNode - the node
    • enterClassElement

      public R enterClassElement(ClassElement element)
      Callback for entering a ClassElement
      Parameters:
      element - the node