Class JSONWriter
java.lang.Object
com.oracle.js.parser.ir.visitor.NodeVisitor<LexicalContext>
com.oracle.truffle.js.parser.internal.ir.debug.JSONWriter
This IR writer produces a JSON string that represents AST as a JSON string.
-
Field Summary
Fields inherited from class com.oracle.js.parser.ir.visitor.NodeVisitor
lc -
Method Summary
Modifier and TypeMethodDescriptionbooleanenterAccessNode(AccessNode accessNode) Callback for entering an AccessNodebooleanenterBinaryNode(BinaryNode binaryNode) Callback for entering a BinaryNodebooleanenterBlock(Block block) Callback for entering a BlockbooleanenterBlockStatement(BlockStatement blockStatement) Callback for entering a BlockStatementbooleanenterBreakNode(BreakNode breakNode) Callback for entering a BreakNodebooleanenterCallNode(CallNode callNode) Callback for entering a CallNodebooleanenterCaseNode(CaseNode caseNode) Callback for entering a CaseNodebooleanenterCatchNode(CatchNode catchNode) Callback for entering a CatchNodebooleanenterClassNode(ClassNode classNode) Callback for entering a ClassNodebooleanenterContinueNode(ContinueNode continueNode) Callback for entering a ContinueNodebooleanenterDebuggerNode(DebuggerNode debuggerNode) Callback for entering a DebuggerNodeprotected booleanenterDefault(Node node) Override this method to do a double inheritance pattern, e.g.booleanenterEmptyNode(EmptyNode emptyNode) Callback for entering an EmptyNodebooleanenterExpressionStatement(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 IfNodebooleanenterIndexNode(IndexNode indexNode) Callback for entering an IndexNodebooleanenterJoinPredecessorExpression(JoinPredecessorExpression joinPredecessorExpression) Callback for entering aJoinPredecessorExpression.booleanenterLabelNode(LabelNode labelNode) Callback for entering a LabelNodebooleanenterLiteralNode(LiteralNode literalNode) Callback for entering a LiteralNodebooleanenterObjectNode(ObjectNode objectNode) Callback for entering an ObjectNodebooleanenterPropertyNode(PropertyNode propertyNode) Callback for entering a PropertyNodebooleanenterReturnNode(ReturnNode returnNode) Callback for entering a ReturnNodebooleanenterSwitchNode(SwitchNode switchNode) Callback for entering a SwitchNodebooleanenterTemplateLiteralNode(TemplateLiteralNode templateLiteralNode) Callback for entering a TemplateLiteralNodebooleanenterTernaryNode(TernaryNode ternaryNode) Callback for entering a TernaryNodebooleanenterThrowNode(ThrowNode throwNode) 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 WithNodeprotected NodeleaveDefault(Node node) Override this method to do a double inheritance pattern, e.g.static Stringparse(ScriptEnvironment env, String code, String name, boolean includeLoc) Returns AST as JSON compatible string.Methods inherited from class com.oracle.js.parser.ir.visitor.NodeVisitor
enterBlockExpression, enterClassElement, enterErrorNode, enterExportNode, enterExportSpecifierNode, enterFromNode, enterImportClauseNode, enterImportNode, enterImportSpecifierNode, enterNamedExportsNode, enterNamedImportsNode, enterNameSpaceImportNode, enterParameterNode, getLexicalContext, leaveAccessNode, leaveBinaryNode, leaveBlock, leaveBlockExpression, leaveBlockStatement, leaveBreakNode, leaveCallNode, leaveCaseNode, leaveCatchNode, leaveClassElement, leaveClassNode, leaveContinueNode, leaveDebuggerNode, leaveEmptyNode, leaveErrorNode, leaveExportNode, leaveExportSpecifierNode, leaveExpressionStatement, leaveForNode, leaveFromNode, 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
-
Method Details
-
parse
Returns AST as JSON compatible string.- Parameters:
env- environmentcode- code to be parsedname- name of the code source (used for location)includeLoc- tells whether to include location information for nodes or not- Returns:
- JSON string representation of AST of the supplied code
-
enterJoinPredecessorExpression
Description copied from class:NodeVisitorCallback for entering aJoinPredecessorExpression.- Overrides:
enterJoinPredecessorExpressionin classNodeVisitor<LexicalContext>- Parameters:
joinPredecessorExpression- the join predecessor expression- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
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:
-
leaveDefault
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:
leaveDefaultin classNodeVisitor<LexicalContext>- Parameters:
node- the node to visit- Returns:
- the node
- See Also:
-
enterAccessNode
Description copied from class:NodeVisitorCallback for entering an AccessNode- Overrides:
enterAccessNodein classNodeVisitor<LexicalContext>- Parameters:
accessNode- 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
-
enterBinaryNode
Description copied from class:NodeVisitorCallback for entering a BinaryNode- Overrides:
enterBinaryNodein classNodeVisitor<LexicalContext>- Parameters:
binaryNode- the node- Returns:
- processed node
-
enterBreakNode
Description copied from class:NodeVisitorCallback for entering a BreakNode- Overrides:
enterBreakNodein classNodeVisitor<LexicalContext>- Parameters:
breakNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterCallNode
Description copied from class:NodeVisitorCallback for entering a CallNode- Overrides:
enterCallNodein classNodeVisitor<LexicalContext>- Parameters:
callNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterCaseNode
Description copied from class:NodeVisitorCallback for entering a CaseNode- Overrides:
enterCaseNodein classNodeVisitor<LexicalContext>- Parameters:
caseNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterCatchNode
Description copied from class:NodeVisitorCallback for entering a CatchNode- Overrides:
enterCatchNodein classNodeVisitor<LexicalContext>- Parameters:
catchNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterContinueNode
Description copied from class:NodeVisitorCallback for entering a ContinueNode- Overrides:
enterContinueNodein classNodeVisitor<LexicalContext>- Parameters:
continueNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterDebuggerNode
Description copied from class:NodeVisitorCallback for entering a DebuggerNode- Overrides:
enterDebuggerNodein classNodeVisitor<LexicalContext>- Parameters:
debuggerNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterEmptyNode
Description copied from class:NodeVisitorCallback for entering an EmptyNode- Overrides:
enterEmptyNodein classNodeVisitor<LexicalContext>- Parameters:
emptyNode- 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
-
enterBlockStatement
Description copied from class:NodeVisitorCallback for entering a BlockStatement- Overrides:
enterBlockStatementin classNodeVisitor<LexicalContext>- Parameters:
blockStatement- 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
-
enterClassNode
Description copied from class:NodeVisitorCallback for entering a ClassNode- Overrides:
enterClassNodein classNodeVisitor<LexicalContext>- Parameters:
classNode- the node- 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
-
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
-
enterIndexNode
Description copied from class:NodeVisitorCallback for entering an IndexNode- Overrides:
enterIndexNodein classNodeVisitor<LexicalContext>- Parameters:
indexNode- 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:
labelNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterLiteralNode
Description copied from class:NodeVisitorCallback for entering a LiteralNode- Overrides:
enterLiteralNodein classNodeVisitor<LexicalContext>- Parameters:
literalNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterObjectNode
Description copied from class:NodeVisitorCallback for entering an ObjectNode- Overrides:
enterObjectNodein classNodeVisitor<LexicalContext>- Parameters:
objectNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterPropertyNode
Description copied from class:NodeVisitorCallback for entering a PropertyNode- Overrides:
enterPropertyNodein classNodeVisitor<LexicalContext>- Parameters:
propertyNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-
enterReturnNode
Description copied from class:NodeVisitorCallback for entering a ReturnNode- Overrides:
enterReturnNodein classNodeVisitor<LexicalContext>- Parameters:
returnNode- 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
-
enterTernaryNode
Description copied from class:NodeVisitorCallback for entering a TernaryNode- Overrides:
enterTernaryNodein classNodeVisitor<LexicalContext>- Parameters:
ternaryNode- 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:
throwNode- 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
-
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
-
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
-
enterTemplateLiteralNode
Description copied from class:NodeVisitorCallback for entering a TemplateLiteralNode- Overrides:
enterTemplateLiteralNodein classNodeVisitor<LexicalContext>- Parameters:
templateLiteralNode- the node- Returns:
- true if traversal should continue and node children be traversed, false otherwise
-