added arbitrary expression inversion, lookforward, and syntax for lookback
[sbp.git] / src / edu / berkeley / sbp / Sequence.java
index fcff530..e18f5ef 100644 (file)
@@ -35,6 +35,14 @@ public abstract class Sequence extends Element implements Iterable<Element> {
 
     ////////////////////////////////////////////////////////////////////////////////
 
 
     ////////////////////////////////////////////////////////////////////////////////
 
+    public Element noFollow = null;
+    public final Topology noFollow() { return noFollow==null ? null : noFollow.toAtom(); }
+
+    Topology toAtom() {
+        if (elements.length!=1) throw new RuntimeException("cannot invoke toAtom() on a Sequence with " + elements.length + " elements: " + this);
+        return elements[0].toAtom();
+    }
+
     protected final Element[] elements;
 
     final HashSet<Sequence> needs;
     protected final Element[] elements;
 
     final HashSet<Sequence> needs;