Class PrintVisitor
java.lang.Object
com.oracle.js.parser.ir.visitor.NodeVisitor<LexicalContext>
com.oracle.truffle.js.parser.internal.ir.debug.PrintVisitor
Print out the AST as human readable source code. This works both on lowered and unlowered ASTs
see the flags --print-parse and --print-lower-parse
-
Field Summary
Fields inherited from class NodeVisitor
lc -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.PrintVisitor(boolean printLineNumbers, boolean printTypes) Constructor.PrintVisitor(Node root) Constructor.PrintVisitor(Node root, boolean printLineNumbers, boolean printTypes) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanenterBinaryNode(BinaryNode binaryNode) Callback for entering a BinaryNodebooleanenterBlock(Block block) Callback for entering a BlockbooleanenterBlockStatement(BlockStatement statement) Callback for entering a BlockStatementbooleanenterBreakNode(BreakNode node) Callback for entering a BreakNodebooleanCallback for entering a ContinueNodebooleanenterDefault(Node node) Override this method to do a double inheritance pattern, e.g.booleanenterExpressionStatement(ExpressionStatement expressionStatement) Callback for entering an ExpressionStatementbooleanenterForNode(ForNode forNode) Callback for entering a ForNodebooleanenterFunctionNode(FunctionNode functionNode) Callback for entering a FunctionNodebooleanenterIdentNode(IdentNode identNode) Callback for entering an IdentNodebooleanenterIfNode(IfNode ifNode) Callback for entering an IfNodebooleanCallback for entering aJoinPredecessorExpression.booleanenterLabelNode(LabelNode labeledNode) Callback for entering a LabelNodebooleanenterSwitchNode(SwitchNode switchNode) Callback for entering a SwitchNodebooleanenterThrowNode(ThrowNode node) Callback for entering a ThrowNodebooleanenterTryNode(TryNode tryNode) Callback for entering a TryNodebooleanenterUnaryNode(UnaryNode unaryNode) Callback for entering a UnaryNodebooleanenterVarNode(VarNode varNode) Callback for entering a VarNodebooleanenterWhileNode(WhileNode whileNode) Callback for entering a WhileNodebooleanenterWithNode(WithNode withNode) Callback for entering a WithNodetoString()Methods inherited from class NodeVisitor
enterAccessNode, enterBlockExpression, enterCallNode, enterCaseNode, enterCatchNode, enterClassElement, enterClassNode, enterDebuggerNode, enterEmptyNode, enterErrorNode, enterExportNode, enterExportSpecifierNode, enterImportClauseNode, enterImportNode, enterImportSpecifierNode, enterIndexNode, enterLiteralNode, enterNamedExportsNode, enterNamedImportsNode, enterNameSpaceImportNode, enterObjectNode, enterParameterNode, enterPropertyNode, enterReturnNode, enterTemplateLiteralNode, enterTernaryNode, getLexicalContext, leaveAccessNode, leaveBinaryNode, leaveBlock, leaveBlockExpression, leaveBlockStatement, leaveBreakNode, leaveCallNode, leaveCaseNode, leaveCatchNode, leaveClassElement, leaveClassNode, leaveContinueNode, leaveDebuggerNode, leaveDefault, leaveEmptyNode, leaveErrorNode, leaveExportNode, leaveExportSpecifierNode, leaveExpressionStatement, leaveForNode, leaveFunctionNode, leaveIdentNode, leaveIfNode, leaveImportClauseNode, leaveImportNode, leaveImportSpecifierNode, leaveIndexNode, leaveJoinPredecessorExpression, leaveLabelNode, leaveLiteralNode, leaveNamedExportsNode, leaveNamedImportsNode, leaveNameSpaceImportNode, leaveObjectNode, leaveParameterNode, leavePropertyNode, leaveReturnNode, leaveSwitchNode, leaveTemplateLiteralNode, leaveTernaryNode, leaveThrowNode, leaveTryNode, leaveUnaryNode, leaveVarNode, leaveWhileNode, leaveWithNode
-
Constructor Details
-
PrintVisitor
public PrintVisitor()Constructor. -
PrintVisitor
public PrintVisitor(boolean printLineNumbers, boolean printTypes) Constructor.- Parameters:
printLineNumbers- should line number nodes be included in the output?printTypes- should we print optimistic and inferred types?
-
PrintVisitor
Constructor.- Parameters:
root- a node from which to start printing code
-
PrintVisitor
Constructor.- Parameters:
root- a node from which to start printing codeprintLineNumbers- should line numbers nodes be included in the output?printTypes- should we print optimistic and inferred types?
-
-
Method Details
-
toString
-
enterDefault
Description copied from class:NodeVisitorOverride this method to do a double inheritance pattern, e.g. avoid usingif (x instanceof NodeTypeA) { ... } else if (x instanceof NodeTypeB) { ... } else { ... }Use a NodeVisitor instead, and this method contents forms the else case.- Overrides:
enterDefaultin classNodeVisitor<LexicalContext>- Parameters:
node- the node to visit- Returns:
- true if traversal should continue and node children be traversed, false otherwise
- See Also:
-
enterContinueNode
Description copied from class:NodeVisitorCallback for entering a ContinueNode- Overrides:
enterContinueNodein classNodeVisitor<LexicalContext>- Parameters:
node- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterBreakNode
Description copied from class:NodeVisitorCallback for entering a BreakNode- Overrides:
enterBreakNodein classNodeVisitor<LexicalContext>- Parameters:
node- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterThrowNode
Description copied from class:NodeVisitorCallback for entering a ThrowNode- Overrides:
enterThrowNodein classNodeVisitor<LexicalContext>- Parameters:
node- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterBlock
Description copied from class:NodeVisitorCallback for entering a Block- Overrides:
enterBlockin classNodeVisitor<LexicalContext>- Parameters:
block- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterBlockStatement
Description copied from class:NodeVisitorCallback for entering a BlockStatement- Overrides:
enterBlockStatementin classNodeVisitor<LexicalContext>- Parameters:
statement- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterBinaryNode
Description copied from class:NodeVisitorCallback for entering a BinaryNode- Overrides:
enterBinaryNodein classNodeVisitor<LexicalContext>- Parameters:
binaryNode- the node- Returns:
- processed node
-
enterJoinPredecessorExpression
Description copied from class:NodeVisitorCallback for entering aJoinPredecessorExpression.- Overrides:
enterJoinPredecessorExpressionin classNodeVisitor<LexicalContext>- Parameters:
expr- the join predecessor expression- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterIdentNode
Description copied from class:NodeVisitorCallback for entering an IdentNode- Overrides:
enterIdentNodein classNodeVisitor<LexicalContext>- Parameters:
identNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterUnaryNode
Description copied from class:NodeVisitorCallback for entering a UnaryNode- Overrides:
enterUnaryNodein classNodeVisitor<LexicalContext>- Parameters:
unaryNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterExpressionStatement
Description copied from class:NodeVisitorCallback for entering an ExpressionStatement- Overrides:
enterExpressionStatementin classNodeVisitor<LexicalContext>- Parameters:
expressionStatement- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterForNode
Description copied from class:NodeVisitorCallback for entering a ForNode- Overrides:
enterForNodein classNodeVisitor<LexicalContext>- Parameters:
forNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterFunctionNode
Description copied from class:NodeVisitorCallback for entering a FunctionNode- Overrides:
enterFunctionNodein classNodeVisitor<LexicalContext>- Parameters:
functionNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterIfNode
Description copied from class:NodeVisitorCallback for entering an IfNode- Overrides:
enterIfNodein classNodeVisitor<LexicalContext>- Parameters:
ifNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterLabelNode
Description copied from class:NodeVisitorCallback for entering a LabelNode- Overrides:
enterLabelNodein classNodeVisitor<LexicalContext>- Parameters:
labeledNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterSwitchNode
Description copied from class:NodeVisitorCallback for entering a SwitchNode- Overrides:
enterSwitchNodein classNodeVisitor<LexicalContext>- Parameters:
switchNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterTryNode
Description copied from class:NodeVisitorCallback for entering a TryNode- Overrides:
enterTryNodein classNodeVisitor<LexicalContext>- Parameters:
tryNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterVarNode
Description copied from class:NodeVisitorCallback for entering a VarNode- Overrides:
enterVarNodein classNodeVisitor<LexicalContext>- Parameters:
varNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterWhileNode
Description copied from class:NodeVisitorCallback for entering a WhileNode- Overrides:
enterWhileNodein classNodeVisitor<LexicalContext>- Parameters:
whileNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterWithNode
Description copied from class:NodeVisitorCallback for entering a WithNode- Overrides:
enterWithNodein classNodeVisitor<LexicalContext>- Parameters:
withNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-