Package ptolemy.data.expr
Class ParseTreeFreeVariableRenamer
- java.lang.Object
-
- ptolemy.data.expr.AbstractParseTreeVisitor
-
- ptolemy.data.expr.ParseTreeFreeVariableRenamer
-
- All Implemented Interfaces:
ParseTreeVisitor
public class ParseTreeFreeVariableRenamer extends AbstractParseTreeVisitor
This class visits parse trees and renames the free variables that match a specified variable. Use this class prior to changing the name of a variable to update references to the variable.- Since:
- Ptolemy II 5.2
- Version:
- $Id$
- Author:
- Edward A. Lee
- See Also:
ASTPtRootNode
- Pt.AcceptedRating:
- Red (cxh)
- Pt.ProposedRating:
- Yellow (eal)
-
-
Field Summary
Fields Modifier and Type Field Description protected Variable
_dependentVariable
The variable to which the parse tree belongs.protected java.util.Set
_formalParameters
Formal parameters within a function definition.protected java.lang.String
_name
The new name.protected ParserScope
_scope
The scope.protected Variable
_variableToRename
The variable to be renamed.
-
Constructor Summary
Constructors Constructor Description ParseTreeFreeVariableRenamer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Collection
_intersection(java.util.Collection collection1, java.util.Collection collection2)
Return the intersection of two collections.protected void
_visitAllChildren(ASTPtRootNode node)
Loop through all of the children of this node, visiting each one of them, which will cause their token value to be determined.protected void
_visitChild(ASTPtRootNode node, int i)
Visit the child with the given index of the given node.void
renameVariables(ASTPtRootNode node, Variable dependentVariable, Variable variableToRename, java.lang.String name)
Rename the variables, if any, in the dependentVariable that refer to the specified variableToRename.void
visitArrayConstructNode(ASTPtArrayConstructNode node)
void
visitBitwiseNode(ASTPtBitwiseNode node)
void
visitFunctionalIfNode(ASTPtFunctionalIfNode node)
void
visitFunctionApplicationNode(ASTPtFunctionApplicationNode node)
void
visitFunctionDefinitionNode(ASTPtFunctionDefinitionNode node)
void
visitLeafNode(ASTPtLeafNode node)
void
visitLogicalNode(ASTPtLogicalNode node)
void
visitMatrixConstructNode(ASTPtMatrixConstructNode node)
void
visitMethodCallNode(ASTPtMethodCallNode node)
void
visitPowerNode(ASTPtPowerNode node)
void
visitProductNode(ASTPtProductNode node)
void
visitRecordConstructNode(ASTPtRecordConstructNode node)
void
visitRelationalNode(ASTPtRelationalNode node)
void
visitShiftNode(ASTPtShiftNode node)
void
visitSumNode(ASTPtSumNode node)
void
visitUnaryNode(ASTPtUnaryNode node)
-
Methods inherited from class ptolemy.data.expr.AbstractParseTreeVisitor
_unsupportedVisitException, visitAssignmentNode, visitUnionConstructNode
-
-
-
-
Field Detail
-
_dependentVariable
protected Variable _dependentVariable
The variable to which the parse tree belongs.
-
_formalParameters
protected java.util.Set _formalParameters
Formal parameters within a function definition.
-
_name
protected java.lang.String _name
The new name.
-
_scope
protected ParserScope _scope
The scope.
-
_variableToRename
protected Variable _variableToRename
The variable to be renamed.
-
-
Method Detail
-
renameVariables
public void renameVariables(ASTPtRootNode node, Variable dependentVariable, Variable variableToRename, java.lang.String name) throws IllegalActionException
Rename the variables, if any, in the dependentVariable that refer to the specified variableToRename.- Parameters:
node
- The root node of the parse tree.dependentVariable
- The dependent variable.variableToRename
- The variable to rename.name
- The new name.- Throws:
IllegalActionException
- If thrown while visiting the node.
-
visitArrayConstructNode
public void visitArrayConstructNode(ASTPtArrayConstructNode node) throws IllegalActionException
- Specified by:
visitArrayConstructNode
in interfaceParseTreeVisitor
- Overrides:
visitArrayConstructNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitBitwiseNode
public void visitBitwiseNode(ASTPtBitwiseNode node) throws IllegalActionException
- Specified by:
visitBitwiseNode
in interfaceParseTreeVisitor
- Overrides:
visitBitwiseNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitFunctionApplicationNode
public void visitFunctionApplicationNode(ASTPtFunctionApplicationNode node) throws IllegalActionException
- Specified by:
visitFunctionApplicationNode
in interfaceParseTreeVisitor
- Overrides:
visitFunctionApplicationNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitFunctionDefinitionNode
public void visitFunctionDefinitionNode(ASTPtFunctionDefinitionNode node) throws IllegalActionException
- Specified by:
visitFunctionDefinitionNode
in interfaceParseTreeVisitor
- Overrides:
visitFunctionDefinitionNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitFunctionalIfNode
public void visitFunctionalIfNode(ASTPtFunctionalIfNode node) throws IllegalActionException
- Specified by:
visitFunctionalIfNode
in interfaceParseTreeVisitor
- Overrides:
visitFunctionalIfNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitLeafNode
public void visitLeafNode(ASTPtLeafNode node) throws IllegalActionException
- Specified by:
visitLeafNode
in interfaceParseTreeVisitor
- Overrides:
visitLeafNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitLogicalNode
public void visitLogicalNode(ASTPtLogicalNode node) throws IllegalActionException
- Specified by:
visitLogicalNode
in interfaceParseTreeVisitor
- Overrides:
visitLogicalNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitMatrixConstructNode
public void visitMatrixConstructNode(ASTPtMatrixConstructNode node) throws IllegalActionException
- Specified by:
visitMatrixConstructNode
in interfaceParseTreeVisitor
- Overrides:
visitMatrixConstructNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitMethodCallNode
public void visitMethodCallNode(ASTPtMethodCallNode node) throws IllegalActionException
- Specified by:
visitMethodCallNode
in interfaceParseTreeVisitor
- Overrides:
visitMethodCallNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitPowerNode
public void visitPowerNode(ASTPtPowerNode node) throws IllegalActionException
- Specified by:
visitPowerNode
in interfaceParseTreeVisitor
- Overrides:
visitPowerNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitProductNode
public void visitProductNode(ASTPtProductNode node) throws IllegalActionException
- Specified by:
visitProductNode
in interfaceParseTreeVisitor
- Overrides:
visitProductNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitRecordConstructNode
public void visitRecordConstructNode(ASTPtRecordConstructNode node) throws IllegalActionException
- Specified by:
visitRecordConstructNode
in interfaceParseTreeVisitor
- Overrides:
visitRecordConstructNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitRelationalNode
public void visitRelationalNode(ASTPtRelationalNode node) throws IllegalActionException
- Specified by:
visitRelationalNode
in interfaceParseTreeVisitor
- Overrides:
visitRelationalNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitShiftNode
public void visitShiftNode(ASTPtShiftNode node) throws IllegalActionException
- Specified by:
visitShiftNode
in interfaceParseTreeVisitor
- Overrides:
visitShiftNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitSumNode
public void visitSumNode(ASTPtSumNode node) throws IllegalActionException
- Specified by:
visitSumNode
in interfaceParseTreeVisitor
- Overrides:
visitSumNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
visitUnaryNode
public void visitUnaryNode(ASTPtUnaryNode node) throws IllegalActionException
- Specified by:
visitUnaryNode
in interfaceParseTreeVisitor
- Overrides:
visitUnaryNode
in classAbstractParseTreeVisitor
- Throws:
IllegalActionException
-
_intersection
protected java.util.Collection _intersection(java.util.Collection collection1, java.util.Collection collection2)
Return the intersection of two collections.- Parameters:
collection1
- The first collection.collection2
- The second collection.- Returns:
- The intersection of two collections.
-
_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 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:
_visitChild
in classAbstractParseTreeVisitor
- Parameters:
node
- The node.i
- The index of the child to be visited.- Throws:
IllegalActionException
- If thrown while visiting a child node.
-
-