public class InstanceVariableFinder extends AbstractNodeVisitor
Node node = getNodeFromSomewhere();
InstanceVariableFinder finder = new InstanceVariableFinder();
node.accept(finder);
System.out.println("found: " + finder.getFoundVariables);
Constructor and Description |
---|
InstanceVariableFinder() |
Modifier and Type | Method and Description |
---|---|
static java.util.Set<java.lang.String> |
findVariables(Node node)
Walk a node and its children looking for instance variables using a new
InstanceVariableFinder.
|
java.util.Set<java.lang.String> |
getFoundVariables()
Return the Set of all instance variables found during walking.
|
java.lang.Object |
visitClassNode(ClassNode iVisited)
ClassNode creates a new scope and self, so do not search for ivars.
|
java.lang.Object |
visitInstAsgnNode(InstAsgnNode iVisited)
Add the name of the instance variable being assigned to our set of
instance variable names and continue to walk child nodes.
|
java.lang.Object |
visitInstVarNode(InstVarNode iVisited)
Add the name of the instance variable being retrieved to our set of
instance variable names and continue to walk child nodes.
|
java.lang.Object |
visitModuleNode(ModuleNode iVisited)
ModuleNode creates a new scope and self, so do not search for ivars.
|
java.lang.Object |
visitPostExeNode(PostExeNode iVisited)
PostExeNode can't appear in methods, so do not search for ivars.
|
java.lang.Object |
visitPreExeNode(PreExeNode iVisited)
PreExeNode can't appear in methods, so do not search for ivars.
|
visitAliasNode, visitAndNode, visitArgsCatNode, visitArgsNode, visitArgsPushNode, visitArrayNode, visitAttrAssignNode, visitBackRefNode, visitBeginNode, visitBignumNode, visitBlockArg18Node, visitBlockArgNode, visitBlockNode, visitBlockPassNode, visitBreakNode, visitCallNode, visitCaseNode, visitClassVarAsgnNode, visitClassVarDeclNode, visitClassVarNode, visitColon2Node, visitColon3Node, visitConstDeclNode, visitConstNode, visitDAsgnNode, visitDefinedNode, visitDefnNode, visitDefsNode, visitDotNode, visitDRegxNode, visitDStrNode, visitDSymbolNode, visitDVarNode, visitDXStrNode, visitEncodingNode, visitEnsureNode, visitEvStrNode, visitFalseNode, visitFCallNode, visitFixnumNode, visitFlipNode, visitFloatNode, visitForNode, visitGlobalAsgnNode, visitGlobalVarNode, visitHashNode, visitIfNode, visitIterNode, visitKeywordArgNode, visitKeywordRestArgNode, visitLambdaNode, visitListNode, visitLiteralNode, visitLocalAsgnNode, visitLocalVarNode, visitMatch2Node, visitMatch3Node, visitMatchNode, visitMultipleAsgnNode, visitMultipleAsgnNode, visitNewlineNode, visitNextNode, visitNilNode, visitNotNode, visitNthRefNode, visitOpAsgnAndNode, visitOpAsgnNode, visitOpAsgnOrNode, visitOpElementAsgnNode, visitOptArgNode, visitOrNode, visitRedoNode, visitRegexpNode, visitRescueBodyNode, visitRescueNode, visitRestArgNode, visitRetryNode, visitReturnNode, visitRootNode, visitSClassNode, visitSelfNode, visitSplatNode, visitStrNode, visitSuperNode, visitSValueNode, visitSymbolNode, visitToAryNode, visitTrueNode, visitUndefNode, visitUntilNode, visitVAliasNode, visitVCallNode, visitWhenNode, visitWhileNode, visitXStrNode, visitYieldNode, visitZArrayNode, visitZSuperNode
public static java.util.Set<java.lang.String> findVariables(Node node)
node
- the node to walkpublic java.util.Set<java.lang.String> getFoundVariables()
getFoundVariables
in class AbstractNodeVisitor
public java.lang.Object visitClassNode(ClassNode iVisited)
visitClassNode
in interface NodeVisitor
visitClassNode
in class AbstractNodeVisitor
public java.lang.Object visitInstAsgnNode(InstAsgnNode iVisited)
visitInstAsgnNode
in interface NodeVisitor
visitInstAsgnNode
in class AbstractNodeVisitor
public java.lang.Object visitInstVarNode(InstVarNode iVisited)
visitInstVarNode
in interface NodeVisitor
visitInstVarNode
in class AbstractNodeVisitor
public java.lang.Object visitModuleNode(ModuleNode iVisited)
visitModuleNode
in interface NodeVisitor
visitModuleNode
in class AbstractNodeVisitor
public java.lang.Object visitPreExeNode(PreExeNode iVisited)
visitPreExeNode
in interface NodeVisitor
visitPreExeNode
in class AbstractNodeVisitor
public java.lang.Object visitPostExeNode(PostExeNode iVisited)
visitPostExeNode
in interface NodeVisitor
visitPostExeNode
in class AbstractNodeVisitor
Copyright © 2002-2009 JRuby Team. All Rights Reserved.