package bixie.prover.princess; import java.math.BigInteger; import ap.SimpleAPI$; import ap.parser.IIntLit; import ap.parser.ITerm; import bixie.prover.ProverExpr; import bixie.prover.ProverType; class TermExpr implements ProverExpr { protected final ProverType type; protected final ITerm term; TermExpr(ITerm term, ProverType type) { this.term = term; this.type = type; } public String toString() { return SimpleAPI$.MODULE$.pp(term); } public ProverType getType() { return type; } public BigInteger getIntLiteralValue() { if (term instanceof IIntLit) return new BigInteger(((IIntLit) term).value().toString()); throw new RuntimeException(); } public boolean getBooleanLiteralValue() { throw new RuntimeException(); } public int hashCode() { return term.hashCode(); } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; TermExpr other = (TermExpr) obj; if (term == null) { if (other.term != null) return false; } else if (!term.equals(other.term)) return false; return true; } }