X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FAmbiguous.java;h=8bed158335acac35bbec87a509a4d273920e8beb;hb=5c4157c1118401c4223ff485e9531fc3ba851be2;hp=1acd8cd19ec85cc948513746241db7929c9c99ef;hpb=b8a597c8d1a29afc24f9b89f726d5b1a9b9aeec1;p=sbp.git diff --git a/src/edu/berkeley/sbp/Ambiguous.java b/src/edu/berkeley/sbp/Ambiguous.java index 1acd8cd..8bed158 100644 --- a/src/edu/berkeley/sbp/Ambiguous.java +++ b/src/edu/berkeley/sbp/Ambiguous.java @@ -1,27 +1,30 @@ +// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp; -import edu.berkeley.sbp.*; import edu.berkeley.sbp.util.*; -import edu.berkeley.sbp.Sequence.Position; -import java.io.*; import java.util.*; -/** if ambiguity checking is enabled, this exception is thrown to signal that the parse was ambiguous */ +/** thrown to signal that a parse was ambiguous */ public class Ambiguous extends Exception { - final Forest ambiguity; - private final HashSet> ht; - Ambiguous(Forest ambiguity, HashSet> ht) { + + private final Forest ambiguity; + private final HashSet> possibilities; + + /** + * @param possibilities is a specially-constructed set of trees with shared nodes replaced by '*' + */ + Ambiguous(Forest ambiguity, HashSet> possibilities) { this.ambiguity = ambiguity; - this.ht = ht; + this.possibilities = possibilities; } - public Forest getAmbiguity() { return ambiguity; } + public Forest getForest() { 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 \"*\" "); - for(Tree result : ht) { - sb.append("\n possibility: "); + sb.append("unresolved ambiguity at "+ambiguity.getRegion()+"; shared subtrees are shown as \"*\" "); + for(Tree result : possibilities) { + sb.append("\n possibility: "); StringBuffer sb2 = new StringBuffer(); result.toPrettyString(sb2); sb.append(StringUtil.indent(sb2.toString(), 15));