public class Not extends Unary {
  public Not (int id) {
  }
  public Object sem () throws SemanticException {
    super.sem();
    if (childT != Boolean.class)
      throw new SemanticException("unary ! expects boolean");
    return T = childT;
  }
  public Object run () {
    return BoolLit.not((Boolean)child.run());
  }
}

