ptolemy.data.expr
Class ParseTreeFreeVariableCollector
java.lang.Object
ptolemy.data.expr.AbstractParseTreeVisitor
ptolemy.data.expr.ParseTreeFreeVariableCollector
- All Implemented Interfaces:
- ParseTreeVisitor
public class ParseTreeFreeVariableCollector
- extends AbstractParseTreeVisitor
This class visits parse trees and collects the set of free variables
in the expression. Generally speaking, free variables are any lone
identifiers, and any function applications where the name of the
function is valid in the scope of the expression.
- Since:
- Ptolemy II 2.1
- Version:
- $Id: ParseTreeFreeVariableCollector.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Steve Neuendorffer
- See Also:
ASTPtRootNode
- Accepted Rating:
- Proposed Rating:
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
_scope
protected ParserScope _scope
_set
protected java.util.Set _set
ParseTreeFreeVariableCollector
public ParseTreeFreeVariableCollector()
collectFreeVariables
public java.util.Set collectFreeVariables(ASTPtRootNode node)
throws IllegalActionException
- Return the set of names of free variables in the given parse
tree.
- Returns:
- A set of strings.
- Throws:
IllegalActionException
collectFreeVariables
public java.util.Set collectFreeVariables(ASTPtRootNode node,
ParserScope scope)
throws IllegalActionException
- Throws:
IllegalActionException
visitArrayConstructNode
public void visitArrayConstructNode(ASTPtArrayConstructNode node)
throws IllegalActionException
- Specified by:
visitArrayConstructNode
in interface ParseTreeVisitor
- Overrides:
visitArrayConstructNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitBitwiseNode
public void visitBitwiseNode(ASTPtBitwiseNode node)
throws IllegalActionException
- Specified by:
visitBitwiseNode
in interface ParseTreeVisitor
- Overrides:
visitBitwiseNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitFunctionApplicationNode
public void visitFunctionApplicationNode(ASTPtFunctionApplicationNode node)
throws IllegalActionException
- Specified by:
visitFunctionApplicationNode
in interface ParseTreeVisitor
- Overrides:
visitFunctionApplicationNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitFunctionDefinitionNode
public void visitFunctionDefinitionNode(ASTPtFunctionDefinitionNode node)
throws IllegalActionException
- Specified by:
visitFunctionDefinitionNode
in interface ParseTreeVisitor
- Overrides:
visitFunctionDefinitionNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitFunctionalIfNode
public void visitFunctionalIfNode(ASTPtFunctionalIfNode node)
throws IllegalActionException
- Specified by:
visitFunctionalIfNode
in interface ParseTreeVisitor
- Overrides:
visitFunctionalIfNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitLeafNode
public void visitLeafNode(ASTPtLeafNode node)
throws IllegalActionException
- Specified by:
visitLeafNode
in interface ParseTreeVisitor
- Overrides:
visitLeafNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitLogicalNode
public void visitLogicalNode(ASTPtLogicalNode node)
throws IllegalActionException
- Specified by:
visitLogicalNode
in interface ParseTreeVisitor
- Overrides:
visitLogicalNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitMatrixConstructNode
public void visitMatrixConstructNode(ASTPtMatrixConstructNode node)
throws IllegalActionException
- Specified by:
visitMatrixConstructNode
in interface ParseTreeVisitor
- Overrides:
visitMatrixConstructNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitMethodCallNode
public void visitMethodCallNode(ASTPtMethodCallNode node)
throws IllegalActionException
- Specified by:
visitMethodCallNode
in interface ParseTreeVisitor
- Overrides:
visitMethodCallNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitPowerNode
public void visitPowerNode(ASTPtPowerNode node)
throws IllegalActionException
- Specified by:
visitPowerNode
in interface ParseTreeVisitor
- Overrides:
visitPowerNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitProductNode
public void visitProductNode(ASTPtProductNode node)
throws IllegalActionException
- Specified by:
visitProductNode
in interface ParseTreeVisitor
- Overrides:
visitProductNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitRecordConstructNode
public void visitRecordConstructNode(ASTPtRecordConstructNode node)
throws IllegalActionException
- Specified by:
visitRecordConstructNode
in interface ParseTreeVisitor
- Overrides:
visitRecordConstructNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitRelationalNode
public void visitRelationalNode(ASTPtRelationalNode node)
throws IllegalActionException
- Specified by:
visitRelationalNode
in interface ParseTreeVisitor
- Overrides:
visitRelationalNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitShiftNode
public void visitShiftNode(ASTPtShiftNode node)
throws IllegalActionException
- Specified by:
visitShiftNode
in interface ParseTreeVisitor
- Overrides:
visitShiftNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitSumNode
public void visitSumNode(ASTPtSumNode node)
throws IllegalActionException
- Specified by:
visitSumNode
in interface ParseTreeVisitor
- Overrides:
visitSumNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
visitUnaryNode
public void visitUnaryNode(ASTPtUnaryNode node)
throws IllegalActionException
- Specified by:
visitUnaryNode
in interface ParseTreeVisitor
- Overrides:
visitUnaryNode
in class AbstractParseTreeVisitor
- Throws:
IllegalActionException
_isValidName
protected boolean _isValidName(java.lang.String name)
throws IllegalActionException
- Test if the given identifier is valid.
- Throws:
IllegalActionException
_visitAllChildren
protected void _visitAllChildren(ASTPtRootNode node)
throws IllegalActionException
- Loop through all of the children of this node,
visiting each one of them, which will cause their token
value to be determined.
- Overrides:
_visitAllChildren
in class AbstractParseTreeVisitor
- Parameters:
node
- The node whose children are to be looped through.
- Throws:
IllegalActionException
- If thrown while visiting a child
node.
_visitChild
protected void _visitChild(ASTPtRootNode node,
int i)
throws IllegalActionException
- Visit the child with the given index of the given node.
This is usually called while visiting the given node.
- Overrides:
_visitChild
in class AbstractParseTreeVisitor
- Parameters:
node
- The node.i
- The index of the child to be visited.
- Throws:
IllegalActionException
- If thrown while visiting a child
node.