X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FAmbiguous.java;h=37a857ca0874161e83b9b8127c13685a434de774;hb=8a5250c184672495fae152e096b2e800749cd0db;hp=1f7cc3880dc2906b6a4b81ccebcbcf0275d516e0;hpb=c4b4207ce1be50359c6bd8abe1d657ff8ae8ad6e;p=sbp.git diff --git a/src/edu/berkeley/sbp/Ambiguous.java b/src/edu/berkeley/sbp/Ambiguous.java index 1f7cc38..37a857c 100644 --- a/src/edu/berkeley/sbp/Ambiguous.java +++ b/src/edu/berkeley/sbp/Ambiguous.java @@ -7,15 +7,25 @@ import java.util.*; /** 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; - public Ambiguous(Forest ambiguity) { this.ambiguity = ambiguity; } + final Forest ambiguity; + private final HashSet> ht; + Ambiguous(Forest ambiguity, HashSet> ht) { + this.ambiguity = ambiguity; + this.ht = ht; + } + + public Forest getAmbiguity() { return ambiguity; } + public String toString() { - // FEATURE: more legible printout desperately needed + // FIXME: print the input region that was ambiguously matched StringBuffer sb = new StringBuffer(); - sb.append("unresolved ambiguity "); - for(Tree result : ambiguity.expand(false)) { - sb.append("\n\n"); - result.toPrettyString(sb); + sb.append("unresolved ambiguity at "+ambiguity.getRegion()+"; shared subtrees are shown as \"*\" "); + //sb.append("\noffending text: "); + for(Tree result : ht) { + sb.append("\n possibility: "); + StringBuffer sb2 = new StringBuffer(); + result.toPrettyString(sb2); + sb.append(StringUtil.indent(sb2.toString(), 15)); } return sb.toString(); }