X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FUnion.java;h=4de0bb4969c58512982b7977fda60c9c6eaeac05;hp=87aefda66b24e39b51476a6471d68776baafa960;hb=1a249057cbfd2180910e46672eafee3af46ae470;hpb=df32ec862cecf0851a7f7342582b5786d04a4771 diff --git a/src/edu/berkeley/sbp/Union.java b/src/edu/berkeley/sbp/Union.java index 87aefda..4de0bb4 100644 --- a/src/edu/berkeley/sbp/Union.java +++ b/src/edu/berkeley/sbp/Union.java @@ -10,34 +10,23 @@ import java.lang.ref.*; /** an element which can produce one of several alternatives */ public class Union extends Element implements Iterable { + /** display form for the Union (ie not including the RHS) */ final String shortForm; + + /** this is just a hint to use when printing out the grammar in visual form */ final boolean synthetic; + + /** the actual alternatives */ private final List alternatives = new ArrayList(); public Iterator iterator() { return alternatives.iterator(); } public boolean contains(Sequence s) { return alternatives.contains(s); } - Topology toAtom() { - if (alternatives.size()==0) throw new RuntimeException("cannot build an Atom from a Union with no productions"); - Topology ret = null; - for(Sequence s : this) { - Topology a = s.toAtom(); - if (ret==null) ret = a; - else ret = ret.union(a); - } - if (ret==null) throw new RuntimeException("confusion on " + this); - return ret; - } - /** adds an alternative */ public void add(Sequence s) { alternatives.add(s); for(Sequence n : s.needs) add(n); for(Sequence n : s.hates) add(n); - if (/*!synthetic &&*/ shortForm!=null - //&& Character.isUpperCase(shortForm.charAt(0)) - ) - s.setName(toString()); } /**