package com.pixelmaid.dresscode.antlr.types.tree.functions;
import com.pixelmaid.dresscode.antlr.types.VarType;
import com.pixelmaid.dresscode.antlr.types.tree.DCNode;
import com.pixelmaid.dresscode.antlr.types.tree.NodeEvent;
public class AssertNode extends NodeEvent implements DCNode {
private DCNode expression;
public AssertNode(DCNode e) {
expression = e;
}
@Override
public VarType evaluate() {
VarType value = expression.evaluate();
if(!value.isBoolean()) {
throw new RuntimeException("assert(...) only takes boolean expressions");
}
if(!value.asBoolean()) {
throw new AssertionError(expression.toString());
}
return VarType.VOID;
}
}