Package ptolemy.data.expr
Class ExpressionFunction
- java.lang.Object
-
- ptolemy.data.expr.ExpressionFunction
-
- All Implemented Interfaces:
Function
public class ExpressionFunction extends java.lang.Object implements Function
An implementation of a function closure that encapsulates an expression tree. Instances of this class are created during the evaluation of function closure expressions in the expression language, like "function(x:int, y:int) x+y".- Since:
- Ptolemy II 2.1
- Version:
- $Id$
- Author:
- Steve Neuendorffer, Xiaojun Liu
- See Also:
ASTPtRootNode
- Pt.AcceptedRating:
- Red (neuendor)
- Pt.ProposedRating:
- Yellow (neuendor)
-
-
Constructor Summary
Constructors Constructor Description ExpressionFunction(java.util.List argumentNames, Type[] argumentTypes, ASTPtRootNode exprRoot)
Construct a function closure that encapsulates an expression tree.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Token
apply(Token[] arguments)
Apply the function to the list of arguments, which are tokens.int
getNumberOfArguments()
Return the number of arguments of the function.boolean
isCongruent(Function function)
Return true if this function is congruent to the given function.java.lang.String
toString()
Return a string representation of this function.
-
-
-
Constructor Detail
-
ExpressionFunction
public ExpressionFunction(java.util.List argumentNames, Type[] argumentTypes, ASTPtRootNode exprRoot)
Construct a function closure that encapsulates an expression tree.- Parameters:
argumentNames
- The names of the arguments.argumentTypes
- The types of the arguments.exprRoot
- The Expression tree that describes the function.
-
-
Method Detail
-
apply
public Token apply(Token[] arguments) throws IllegalActionException
Apply the function to the list of arguments, which are tokens.- Specified by:
apply
in interfaceFunction
- Parameters:
arguments
- The list of arguments.- Returns:
- The result of applying the function to the given arguments.
- Throws:
IllegalActionException
- If thrown during evaluating the function.
-
getNumberOfArguments
public int getNumberOfArguments()
Return the number of arguments of the function.- Specified by:
getNumberOfArguments
in interfaceFunction
- Returns:
- The number of arguments of the function.
-
isCongruent
public boolean isCongruent(Function function)
Return true if this function is congruent to the given function. Classes should implement this method so that two functions are congruent under any renaming of the bound variables of the function. For simplicity, a function need only be congruent to other functions of the same class.- Specified by:
isCongruent
in interfaceFunction
- Parameters:
function
- The function to check congruency against.- Returns:
- True if this function is congruent.
-
-