/** if ambiguity checking is enabled, this exception is thrown to signal that the parse was ambiguous */
public class Ambiguous extends Exception {
- public final Forest<?> ambiguity;
+ final Forest<?> ambiguity;
private final HashSet<Tree<?>> ht;
- public Ambiguous(Forest<?> ambiguity, HashSet<Tree<?>> ht) {
+ Ambiguous(Forest<?> ambiguity, HashSet<Tree<?>> ht) {
this.ambiguity = ambiguity;
this.ht = ht;
}
+
+ public Forest<?> getAmbiguity() { return ambiguity; }
+
public String toString() {
// FIXME: print the input region that was ambiguously matched
StringBuffer sb = new StringBuffer();
- sb.append("unresolved ambiguity; shared subtrees are shown as \"*\" ");
+ sb.append("unresolved ambiguity at "+ambiguity.getRegion()+"; shared subtrees are shown as \"*\" ");
for(Tree<?> result : ht) {
sb.append("\n possibility: ");
StringBuffer sb2 = new StringBuffer();