FunctionApplicationNode.java
package edu.udel.cis.vsl.tass.ast.impl.statement;
import edu.udel.cis.vsl.tass.ast.IF.SequenceNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.expression.ExpressionNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.expression.FunctionApplicationNodeIF;
import edu.udel.cis.vsl.tass.ast.impl.expression.ExpressionNode;
/**
* A function application.
*
* @author Timothy K. Zirkel (zirkel)
*
*/
public class FunctionApplicationNode extends ExpressionNode implements
FunctionApplicationNodeIF {
private ExpressionNodeIF function;
private SequenceNodeIF<ExpressionNodeIF> arguments;
public FunctionApplicationNode(long id) {
super(id);
}
/**
* A function application. The parameter function is an expression
* evaluating to a function. The parameter arguments is the sequence of
* arguments to the function.
*/
public FunctionApplicationNode(long id, ExpressionNodeIF function,
SequenceNodeIF<ExpressionNodeIF> arguments) {
super(id);
this.function = function;
this.arguments = arguments;
}
@Override
public ExpressionNodeIF function() {
return function;
}
@Override
public SequenceNodeIF<ExpressionNodeIF> arguments() {
return arguments;
}
@Override
public void setFunction(ExpressionNodeIF function) {
this.function = function;
}
@Override
public void setArguments(SequenceNodeIF<ExpressionNodeIF> arguments) {
this.arguments = arguments;
}
}