public final class JSONWriter extends NodeVisitor<LexicalContext>
lc| Modifier and Type | Method and Description |
|---|---|
boolean |
enterAccessNode(AccessNode accessNode)
Callback for entering an AccessNode
|
boolean |
enterBinaryNode(BinaryNode binaryNode)
Callback for entering a BinaryNode
|
boolean |
enterBlock(Block block)
Callback for entering a Block
|
boolean |
enterBlockStatement(BlockStatement blockStatement)
Callback for entering a BlockStatement
|
boolean |
enterBreakNode(BreakNode breakNode)
Callback for entering a BreakNode
|
boolean |
enterCallNode(CallNode callNode)
Callback for entering a CallNode
|
boolean |
enterCaseNode(CaseNode caseNode)
Callback for entering a CaseNode
|
boolean |
enterCatchNode(CatchNode catchNode)
Callback for entering a CatchNode
|
boolean |
enterClassNode(ClassNode classNode)
Callback for entering a ClassNode
|
boolean |
enterContinueNode(ContinueNode continueNode)
Callback for entering a ContinueNode
|
boolean |
enterDebuggerNode(DebuggerNode debuggerNode)
Callback for entering a DebuggerNode
|
protected boolean |
enterDefault(Node node)
Override this method to do a double inheritance pattern, e.g.
|
boolean |
enterEmptyNode(EmptyNode emptyNode)
Callback for entering an EmptyNode
|
boolean |
enterExpressionStatement(ExpressionStatement expressionStatement)
Callback for entering an ExpressionStatement
|
boolean |
enterForNode(ForNode forNode)
Callback for entering a ForNode
|
boolean |
enterFunctionNode(FunctionNode functionNode)
Callback for entering a FunctionNode
|
boolean |
enterIdentNode(IdentNode identNode)
Callback for entering an IdentNode
|
boolean |
enterIfNode(IfNode ifNode)
Callback for entering an IfNode
|
boolean |
enterIndexNode(IndexNode indexNode)
Callback for entering an IndexNode
|
boolean |
enterJoinPredecessorExpression(JoinPredecessorExpression joinPredecessorExpression)
Callback for entering a
JoinPredecessorExpression. |
boolean |
enterLabelNode(LabelNode labelNode)
Callback for entering a LabelNode
|
boolean |
enterLiteralNode(LiteralNode literalNode)
Callback for entering a LiteralNode
|
boolean |
enterObjectNode(ObjectNode objectNode)
Callback for entering an ObjectNode
|
boolean |
enterPropertyNode(PropertyNode propertyNode)
Callback for entering a PropertyNode
|
boolean |
enterReturnNode(ReturnNode returnNode)
Callback for entering a ReturnNode
|
boolean |
enterSwitchNode(SwitchNode switchNode)
Callback for entering a SwitchNode
|
boolean |
enterTemplateLiteralNode(TemplateLiteralNode templateLiteralNode)
Callback for entering a TemplateLiteralNode
|
boolean |
enterTernaryNode(TernaryNode ternaryNode)
Callback for entering a TernaryNode
|
boolean |
enterThrowNode(ThrowNode throwNode)
Callback for entering a ThrowNode
|
boolean |
enterTryNode(TryNode tryNode)
Callback for entering a TryNode
|
boolean |
enterUnaryNode(UnaryNode unaryNode)
Callback for entering a UnaryNode
|
boolean |
enterVarNode(VarNode varNode)
Callback for entering a VarNode
|
boolean |
enterWhileNode(WhileNode whileNode)
Callback for entering a WhileNode
|
boolean |
enterWithNode(WithNode withNode)
Callback for entering a WithNode
|
protected Node |
leaveDefault(Node node)
Override this method to do a double inheritance pattern, e.g.
|
static String |
parse(ScriptEnvironment env,
String code,
String name,
boolean includeLoc)
Returns AST as JSON compatible string.
|
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, leaveWithNodepublic static String parse(ScriptEnvironment env, String code, String name, boolean includeLoc)
env - environmentcode - code to be parsedname - name of the code source (used for location)includeLoc - tells whether to include location information for nodes or notpublic boolean enterJoinPredecessorExpression(JoinPredecessorExpression joinPredecessorExpression)
NodeVisitorJoinPredecessorExpression.enterJoinPredecessorExpression in class NodeVisitor<LexicalContext>joinPredecessorExpression - the join predecessor expressionprotected boolean enterDefault(Node node)
NodeVisitor
if (x instanceof NodeTypeA) {
...
} else if (x instanceof NodeTypeB) {
...
} else {
...
}
Use a NodeVisitor instead, and this method contents forms the else case.enterDefault in class NodeVisitor<LexicalContext>node - the node to visitNodeVisitor.leaveDefault(Node)protected Node leaveDefault(Node node)
NodeVisitor
if (x instanceof NodeTypeA) {
...
} else if (x instanceof NodeTypeB) {
...
} else {
...
}
Use a NodeVisitor instead, and this method contents forms the else case.leaveDefault in class NodeVisitor<LexicalContext>node - the node to visitNodeVisitor.enterDefault(Node)public boolean enterAccessNode(AccessNode accessNode)
NodeVisitorenterAccessNode in class NodeVisitor<LexicalContext>accessNode - the nodepublic boolean enterBlock(Block block)
NodeVisitorenterBlock in class NodeVisitor<LexicalContext>block - the nodepublic boolean enterBinaryNode(BinaryNode binaryNode)
NodeVisitorenterBinaryNode in class NodeVisitor<LexicalContext>binaryNode - the nodepublic boolean enterBreakNode(BreakNode breakNode)
NodeVisitorenterBreakNode in class NodeVisitor<LexicalContext>breakNode - the nodepublic boolean enterCallNode(CallNode callNode)
NodeVisitorenterCallNode in class NodeVisitor<LexicalContext>callNode - the nodepublic boolean enterCaseNode(CaseNode caseNode)
NodeVisitorenterCaseNode in class NodeVisitor<LexicalContext>caseNode - the nodepublic boolean enterCatchNode(CatchNode catchNode)
NodeVisitorenterCatchNode in class NodeVisitor<LexicalContext>catchNode - the nodepublic boolean enterContinueNode(ContinueNode continueNode)
NodeVisitorenterContinueNode in class NodeVisitor<LexicalContext>continueNode - the nodepublic boolean enterDebuggerNode(DebuggerNode debuggerNode)
NodeVisitorenterDebuggerNode in class NodeVisitor<LexicalContext>debuggerNode - the nodepublic boolean enterEmptyNode(EmptyNode emptyNode)
NodeVisitorenterEmptyNode in class NodeVisitor<LexicalContext>emptyNode - the nodepublic boolean enterExpressionStatement(ExpressionStatement expressionStatement)
NodeVisitorenterExpressionStatement in class NodeVisitor<LexicalContext>expressionStatement - the nodepublic boolean enterBlockStatement(BlockStatement blockStatement)
NodeVisitorenterBlockStatement in class NodeVisitor<LexicalContext>blockStatement - the nodepublic boolean enterForNode(ForNode forNode)
NodeVisitorenterForNode in class NodeVisitor<LexicalContext>forNode - the nodepublic boolean enterFunctionNode(FunctionNode functionNode)
NodeVisitorenterFunctionNode in class NodeVisitor<LexicalContext>functionNode - the nodepublic boolean enterClassNode(ClassNode classNode)
NodeVisitorenterClassNode in class NodeVisitor<LexicalContext>classNode - the nodepublic boolean enterIdentNode(IdentNode identNode)
NodeVisitorenterIdentNode in class NodeVisitor<LexicalContext>identNode - the nodepublic boolean enterIfNode(IfNode ifNode)
NodeVisitorenterIfNode in class NodeVisitor<LexicalContext>ifNode - the nodepublic boolean enterIndexNode(IndexNode indexNode)
NodeVisitorenterIndexNode in class NodeVisitor<LexicalContext>indexNode - the nodepublic boolean enterLabelNode(LabelNode labelNode)
NodeVisitorenterLabelNode in class NodeVisitor<LexicalContext>labelNode - the nodepublic boolean enterLiteralNode(LiteralNode literalNode)
NodeVisitorenterLiteralNode in class NodeVisitor<LexicalContext>literalNode - the nodepublic boolean enterObjectNode(ObjectNode objectNode)
NodeVisitorenterObjectNode in class NodeVisitor<LexicalContext>objectNode - the nodepublic boolean enterPropertyNode(PropertyNode propertyNode)
NodeVisitorenterPropertyNode in class NodeVisitor<LexicalContext>propertyNode - the nodepublic boolean enterReturnNode(ReturnNode returnNode)
NodeVisitorenterReturnNode in class NodeVisitor<LexicalContext>returnNode - the nodepublic boolean enterSwitchNode(SwitchNode switchNode)
NodeVisitorenterSwitchNode in class NodeVisitor<LexicalContext>switchNode - the nodepublic boolean enterTernaryNode(TernaryNode ternaryNode)
NodeVisitorenterTernaryNode in class NodeVisitor<LexicalContext>ternaryNode - the nodepublic boolean enterThrowNode(ThrowNode throwNode)
NodeVisitorenterThrowNode in class NodeVisitor<LexicalContext>throwNode - the nodepublic boolean enterTryNode(TryNode tryNode)
NodeVisitorenterTryNode in class NodeVisitor<LexicalContext>tryNode - the nodepublic boolean enterUnaryNode(UnaryNode unaryNode)
NodeVisitorenterUnaryNode in class NodeVisitor<LexicalContext>unaryNode - the nodepublic boolean enterVarNode(VarNode varNode)
NodeVisitorenterVarNode in class NodeVisitor<LexicalContext>varNode - the nodepublic boolean enterWhileNode(WhileNode whileNode)
NodeVisitorenterWhileNode in class NodeVisitor<LexicalContext>whileNode - the nodepublic boolean enterWithNode(WithNode withNode)
NodeVisitorenterWithNode in class NodeVisitor<LexicalContext>withNode - the nodepublic boolean enterTemplateLiteralNode(TemplateLiteralNode templateLiteralNode)
NodeVisitorenterTemplateLiteralNode in class NodeVisitor<LexicalContext>templateLiteralNode - the node