checkpoint
[sbp.git] / src / edu / berkeley / sbp / Ambiguous.java
index 8618b9e..bd87fd9 100644 (file)
@@ -9,8 +9,13 @@ import java.util.*;
 
 /** if ambiguity checking is enabled, this exception is thrown to signal that the parse was ambiguous */
 public class Ambiguous extends Exception {
+
     final Forest<?> ambiguity;
     private final HashSet<Tree<?>> ht;
+
+    /**
+     *  @param ht a specially-constructed set of trees with shared nodes replaced by '*'
+     */
     Ambiguous(Forest<?> ambiguity, HashSet<Tree<?>> ht) {
         this.ambiguity = ambiguity;
         this.ht = ht;
@@ -18,13 +23,14 @@ public class Ambiguous extends Exception {
 
     public Forest<?> getAmbiguity() { return ambiguity; }
 
+    /** WARNING: this method is not considered part of the "stable API"; it may be removed in the future */
+    public Input.Region getRegion() { return ambiguity.getRegion(); }
+
     public String toString() {
-        // FIXME: print the input region that was ambiguously matched
         StringBuffer sb = new StringBuffer();
         sb.append("unresolved ambiguity at "+ambiguity.getRegion()+"; shared subtrees are shown as \"*\" ");
-        //sb.append("\noffending text: ");
         for(Tree<?> result : ht) {
-            sb.append("\n  possibility: ");
+            sb.append("\n    possibility: ");
             StringBuffer sb2 = new StringBuffer();
             result.toPrettyString(sb2);
             sb.append(StringUtil.indent(sb2.toString(), 15));