Package 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$
- Author:
- Steve Neuendorffer
- See Also:
ASTPtRootNode- Pt.AcceptedRating:
- Red (cxh)
- Pt.ProposedRating:
- Red (neuendor)
-
-
Field Summary
Fields Modifier and Type Field Description protected ParserScope_scopeprotected java.util.Set_set
-
Constructor Summary
Constructors Constructor Description ParseTreeFreeVariableCollector()
-
Method Summary
-
Methods inherited from class ptolemy.data.expr.AbstractParseTreeVisitor
_unsupportedVisitException, visitAssignmentNode, visitUnionConstructNode
-
-
-
-
Field Detail
-
_scope
protected ParserScope _scope
-
_set
protected java.util.Set _set
-
-
Method Detail
-
collectFreeVariables
public java.util.Set collectFreeVariables(ASTPtRootNode node) throws IllegalActionException
Return the set of names of free variables in the given parse tree.- Parameters:
node- the node.- Returns:
- A set of strings.
- Throws:
IllegalActionException- If thrown while collecting the variables
-
collectFreeVariables
public java.util.Set collectFreeVariables(ASTPtRootNode node, ParserScope scope) throws IllegalActionException
- Throws:
IllegalActionException
-
visitArrayConstructNode
public void visitArrayConstructNode(ASTPtArrayConstructNode node) throws IllegalActionException
- Specified by:
visitArrayConstructNodein interfaceParseTreeVisitor- Overrides:
visitArrayConstructNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitBitwiseNode
public void visitBitwiseNode(ASTPtBitwiseNode node) throws IllegalActionException
- Specified by:
visitBitwiseNodein interfaceParseTreeVisitor- Overrides:
visitBitwiseNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitFunctionApplicationNode
public void visitFunctionApplicationNode(ASTPtFunctionApplicationNode node) throws IllegalActionException
- Specified by:
visitFunctionApplicationNodein interfaceParseTreeVisitor- Overrides:
visitFunctionApplicationNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitFunctionDefinitionNode
public void visitFunctionDefinitionNode(ASTPtFunctionDefinitionNode node) throws IllegalActionException
- Specified by:
visitFunctionDefinitionNodein interfaceParseTreeVisitor- Overrides:
visitFunctionDefinitionNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitFunctionalIfNode
public void visitFunctionalIfNode(ASTPtFunctionalIfNode node) throws IllegalActionException
- Specified by:
visitFunctionalIfNodein interfaceParseTreeVisitor- Overrides:
visitFunctionalIfNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitLeafNode
public void visitLeafNode(ASTPtLeafNode node) throws IllegalActionException
- Specified by:
visitLeafNodein interfaceParseTreeVisitor- Overrides:
visitLeafNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitLogicalNode
public void visitLogicalNode(ASTPtLogicalNode node) throws IllegalActionException
- Specified by:
visitLogicalNodein interfaceParseTreeVisitor- Overrides:
visitLogicalNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitMatrixConstructNode
public void visitMatrixConstructNode(ASTPtMatrixConstructNode node) throws IllegalActionException
- Specified by:
visitMatrixConstructNodein interfaceParseTreeVisitor- Overrides:
visitMatrixConstructNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitMethodCallNode
public void visitMethodCallNode(ASTPtMethodCallNode node) throws IllegalActionException
- Specified by:
visitMethodCallNodein interfaceParseTreeVisitor- Overrides:
visitMethodCallNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitPowerNode
public void visitPowerNode(ASTPtPowerNode node) throws IllegalActionException
- Specified by:
visitPowerNodein interfaceParseTreeVisitor- Overrides:
visitPowerNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitProductNode
public void visitProductNode(ASTPtProductNode node) throws IllegalActionException
- Specified by:
visitProductNodein interfaceParseTreeVisitor- Overrides:
visitProductNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitRecordConstructNode
public void visitRecordConstructNode(ASTPtRecordConstructNode node) throws IllegalActionException
- Specified by:
visitRecordConstructNodein interfaceParseTreeVisitor- Overrides:
visitRecordConstructNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitRelationalNode
public void visitRelationalNode(ASTPtRelationalNode node) throws IllegalActionException
- Specified by:
visitRelationalNodein interfaceParseTreeVisitor- Overrides:
visitRelationalNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitShiftNode
public void visitShiftNode(ASTPtShiftNode node) throws IllegalActionException
- Specified by:
visitShiftNodein interfaceParseTreeVisitor- Overrides:
visitShiftNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitSumNode
public void visitSumNode(ASTPtSumNode node) throws IllegalActionException
- Specified by:
visitSumNodein interfaceParseTreeVisitor- Overrides:
visitSumNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
visitUnaryNode
public void visitUnaryNode(ASTPtUnaryNode node) throws IllegalActionException
- Specified by:
visitUnaryNodein interfaceParseTreeVisitor- Overrides:
visitUnaryNodein classAbstractParseTreeVisitor- Throws:
IllegalActionException
-
_isValidName
protected boolean _isValidName(java.lang.String name) throws IllegalActionExceptionReturn true if the given identifier is valid.- Parameters:
name- The identifier- Returns:
- True if the given identifier is valid.
- Throws:
IllegalActionException- If thrown while getting the type for the name from the scope.
-
_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:
_visitAllChildrenin classAbstractParseTreeVisitor- 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:
_visitChildin classAbstractParseTreeVisitor- Parameters:
node- The node.i- The index of the child to be visited.- Throws:
IllegalActionException- If thrown while visiting a child node.
-
-