CastNode.java
package edu.udel.cis.vsl.tass.ast.impl.expression;
import edu.udel.cis.vsl.tass.ast.IF.expression.CastNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.expression.ExpressionNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.type.TypeNodeIF;
import edu.udel.cis.vsl.tass.ast.impl.expression.ExpressionNode;
/**
* A cast to a different type.
*
* @author Timothy K. Zirkel (zirkel)
*
*/
public class CastNode extends ExpressionNode implements CastNodeIF {
private TypeNodeIF newType;
private ExpressionNodeIF expression;
public CastNode(long id) {
super(id);
}
/**
* The parameter newType is the type to which the expression is being cast.
* The parameter expression is the base expression.
*/
public CastNode(long id, TypeNodeIF newType, ExpressionNodeIF expression) {
super(id);
this.newType = newType;
this.expression = expression;
}
@Override
public TypeNodeIF newType() {
return newType;
}
@Override
public ExpressionNodeIF expression() {
return expression;
}
@Override
public void setNewType(TypeNodeIF newType) {
this.newType = newType;
}
@Override
public void setExpression(ExpressionNodeIF expression) {
this.expression = expression;
}
}