Package ptolemy.data.expr
Class ASTPtFunctionDefinitionNode
- java.lang.Object
-
- ptolemy.data.expr.ASTPtRootNode
-
- ptolemy.data.expr.ASTPtFunctionDefinitionNode
-
- All Implemented Interfaces:
java.lang.Cloneable
,Node
public class ASTPtFunctionDefinitionNode extends ASTPtRootNode
The parse tree created from function definitions of the form:function (x) x + 5
which defines a function of one argument. The above is assumed to have arguments declared of type general. Monomorphic type-safe functions can be declared using syntax like:function (x:int) x+5
This declares that the function only takes integer arguments. The return type (in this case integer, since the result of adding 5 to an integer is an integer) is inferred automatically. FIXME: check argument name duplication- Since:
- Ptolemy II 0.2
- Version:
- $Id$
- Author:
- Xiaojun Liu, Steve Neuendorffer
- See Also:
ASTPtRootNode
,PtParser
,Token
- Pt.AcceptedRating:
- Red (cxh)
- Pt.ProposedRating:
- Yellow (nsmyth)
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.ArrayList
_argList
protected Type[]
_argTypes
-
Fields inherited from class ptolemy.data.expr.ASTPtRootNode
_children, _id, _isConstant, _parent, _ptToken, _ptType
-
-
Constructor Summary
Constructors Constructor Description ASTPtFunctionDefinitionNode(int id)
Create a function definition node with an id.ASTPtFunctionDefinitionNode(PtParser p, int id)
Create a function definition node with a parser and an id.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
Clone the parse tree node by invoking the clone() method of the base class.java.util.List
getArgumentNameList()
Return the list of argument names.Type[]
getArgumentTypes()
Return the type of the arguments, or null if type inference has not occurred yet.ASTPtRootNode
getExpressionTree()
Return the parse tree of the expression for this function.boolean
isCongruent(ASTPtRootNode node, java.util.Map renaming)
Return true if this node is (hierarchically) congruent to the given node, under the given renaming of bound identifiers.void
jjtClose()
Close this node.void
visit(ParseTreeVisitor visitor)
Traverse this node with the given visitor.-
Methods inherited from class ptolemy.data.expr.ASTPtRootNode
displayParseTree, evaluateParseTree, getToken, getType, isConstant, isEvaluated, jjtAddChild, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, setConstant, setToken, setType, toString, toString
-
-
-
-
Field Detail
-
_argList
protected java.util.ArrayList _argList
-
_argTypes
protected Type[] _argTypes
-
-
Constructor Detail
-
ASTPtFunctionDefinitionNode
public ASTPtFunctionDefinitionNode(int id)
Create a function definition node with an id.- Parameters:
id
- the id.
-
ASTPtFunctionDefinitionNode
public ASTPtFunctionDefinitionNode(PtParser p, int id)
Create a function definition node with a parser and an id.- Parameters:
p
- The parserid
- the id
-
-
Method Detail
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Clone the parse tree node by invoking the clone() method of the base class. The new node copies the list of operators (+, -) represented by this node.- Overrides:
clone
in classASTPtRootNode
- Returns:
- A new parse tree node.
- Throws:
java.lang.CloneNotSupportedException
- If the superclass clone() method throws it.
-
getArgumentNameList
public java.util.List getArgumentNameList()
Return the list of argument names.- Returns:
- The list of argument names.
-
getArgumentTypes
public Type[] getArgumentTypes()
Return the type of the arguments, or null if type inference has not occurred yet.- Returns:
- the type of the arguments, or null if type inference has not occurred yet.
-
getExpressionTree
public ASTPtRootNode getExpressionTree()
Return the parse tree of the expression for this function.- Returns:
- the parse tree of the expression for this function.
-
isCongruent
public boolean isCongruent(ASTPtRootNode node, java.util.Map renaming)
Return true if this node is (hierarchically) congruent to the given node, under the given renaming of bound identifiers. Derived classes should extend this method to add additional necessary congruency checks.- Overrides:
isCongruent
in classASTPtRootNode
- Parameters:
node
- The node to compare to.renaming
- A map from String to String that gives a renaming from identifiers in this node to identifiers in the given node.- Returns:
- True if the node is congruent.
-
jjtClose
public void jjtClose()
Close this node.- Specified by:
jjtClose
in interfaceNode
- Overrides:
jjtClose
in classASTPtRootNode
-
visit
public void visit(ParseTreeVisitor visitor) throws IllegalActionException
Traverse this node with the given visitor.- Overrides:
visit
in classASTPtRootNode
- Parameters:
visitor
- The visitor.- Throws:
IllegalActionException
- Always thrown in this base class the visit() method is not implemented here.
-
-