public class ASTPtFunctionDefinitionNode extends ASTPtRootNode
function (x) x + 5which 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+5This 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
ASTPtRootNode
,
PtParser
,
Token
Modifier and Type | Field and Description |
---|---|
protected java.util.ArrayList |
_argList |
protected Type[] |
_argTypes |
_children, _id, _isConstant, _parent, _ptToken, _ptType
Constructor and 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.
|
Modifier and Type | Method and 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.
|
displayParseTree, evaluateParseTree, getToken, getType, isConstant, isEvaluated, jjtAddChild, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, setConstant, setToken, setType, toString, toString
protected java.util.ArrayList _argList
protected Type[] _argTypes
public ASTPtFunctionDefinitionNode(int id)
id
- the id.public ASTPtFunctionDefinitionNode(PtParser p, int id)
p
- The parserid
- the idpublic java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class ASTPtRootNode
java.lang.CloneNotSupportedException
- If the superclass clone()
method throws it.public java.util.List getArgumentNameList()
public Type[] getArgumentTypes()
public ASTPtRootNode getExpressionTree()
public boolean isCongruent(ASTPtRootNode node, java.util.Map renaming)
isCongruent
in class ASTPtRootNode
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.public void jjtClose()
jjtClose
in interface Node
jjtClose
in class ASTPtRootNode
public void visit(ParseTreeVisitor visitor) throws IllegalActionException
visit
in class ASTPtRootNode
visitor
- The visitor.IllegalActionException
- Always thrown in this base
class the visit() method is not implemented here.