package edu.stanford.nlp.sempre.tables; import edu.stanford.nlp.sempre.Value; import fig.basic.LispTree; /** * Represent a binary with a restrict domain (scope). * * @author ppasupat */ public class ScopedValue extends Value { public final Value head, relation; public ScopedValue(Value head, Value relation) { this.head = head; this.relation = relation; } @Override public LispTree toLispTree() { LispTree tree = LispTree.proto.newList(); tree.addChild("scoped"); tree.addChild(head.toLispTree()); tree.addChild(relation.toLispTree()); return tree; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ScopedValue that = (ScopedValue) o; return head.equals(that.head) && relation.equals(that.relation); } @Override public int hashCode() { return head.hashCode() + relation.hashCode(); } }