corrected the reporting+alignment of error locations
[sbp.git] / src / edu / berkeley / sbp / Ambiguous.java
index 6288f1f..6138577 100644 (file)
@@ -7,16 +7,19 @@ 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;
+    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();