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.