NotExpression.java
package edu.udel.cis.vsl.tass.model.impl.expression;
import edu.udel.cis.vsl.tass.model.IF.ModelFactoryIF;
import edu.udel.cis.vsl.tass.model.IF.SyntaxException;
import edu.udel.cis.vsl.tass.model.IF.type.TypeIF.TypeKind;
public class NotExpression extends UnaryExpression {
public NotExpression(ModelFactoryIF factory, Expression expression)
throws SyntaxException {
super(factory, ExpressionKind.NOT, expression);
if (expression.type.kind() != TypeKind.BOOLEAN) {
throw new SyntaxException(expression,
"Not (!) requires boolean expression");
}
type = factory.booleanType();
}
public String toString() {
return "!" + expression.atomString();
}
public String atomString() {
return toString();
}
}