allow lifts on any position
[sbp.git] / src / edu / berkeley / sbp / misc / Demo2.java
index 60bd6ee..a7c2545 100644 (file)
@@ -19,8 +19,8 @@ public class Demo2 {
         Element[] mult  = new Element[] { expr, atom('*'), expr };
         Element[] paren = new Element[] { atom('('), expr, atom(')') };
         
-        Sequence addSequence = Sequence.create("add", add, null, false);
-        Sequence multSequence = Sequence.create("mult", mult, null, false);
+        Sequence addSequence = Sequence.create("add", add, null);
+        Sequence multSequence = Sequence.create("mult", mult, null);
 
         // uncomment this line to disambiguate
         //multSequence = multSequence.andnot(Sequence.create("add", add, null, false));
@@ -30,7 +30,7 @@ public class Demo2 {
         expr.add(multSequence);
         expr.add(Sequence.create(atom('0', '9')));
 
-        String input = "(1+3*8)*7";
+        edu.berkeley.sbp.chr.CharInput input = new edu.berkeley.sbp.chr.CharInput("(1+3*8)*7");
 
         System.out.println("input:  \""+input+"\"");
 
@@ -39,7 +39,12 @@ public class Demo2 {
         System.out.println("grammar: \n"+sb);
 
         Forest f = new edu.berkeley.sbp.chr.CharParser(expr).parse(input);
-        System.out.println("output: "+f.expand1().toPrettyString());
+        try {
+            System.out.println("output: "+f.expand1().toPrettyString());
+        } catch (Ambiguous a) {
+            System.err.println(a.toString());
+            System.err.println(" ambiguous text: " + input.showRegion(a.getForest().getRegion()));
+        }
     }
 
 }