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, visitZSuperNodepublic 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 AbstractNodeVisitorpublic java.lang.Object visitClassNode(ClassNode iVisited)
visitClassNode in interface NodeVisitorvisitClassNode in class AbstractNodeVisitorpublic java.lang.Object visitInstAsgnNode(InstAsgnNode iVisited)
visitInstAsgnNode in interface NodeVisitorvisitInstAsgnNode in class AbstractNodeVisitorpublic java.lang.Object visitInstVarNode(InstVarNode iVisited)
visitInstVarNode in interface NodeVisitorvisitInstVarNode in class AbstractNodeVisitorpublic java.lang.Object visitModuleNode(ModuleNode iVisited)
visitModuleNode in interface NodeVisitorvisitModuleNode in class AbstractNodeVisitorpublic java.lang.Object visitPreExeNode(PreExeNode iVisited)
visitPreExeNode in interface NodeVisitorvisitPreExeNode in class AbstractNodeVisitorpublic java.lang.Object visitPostExeNode(PostExeNode iVisited)
visitPostExeNode in interface NodeVisitorvisitPostExeNode in class AbstractNodeVisitorCopyright © 2002-2009 JRuby Team. All Rights Reserved.