public virtual void expand() { Iterator iterator = this.leftContexts.iterator(); while (iterator.hasNext()) { UnitContext unitContext = (UnitContext)iterator.next(); Iterator iterator2 = this.getStartingContexts().iterator(); while (iterator2.hasNext()) { UnitContext unitContext2 = (UnitContext)iterator2.next(); ContextPair contextPair = ContextPair.get(unitContext, unitContext2); this.entryPoints.put(contextPair, new ArrayList()); } } if (this.node.isFinalNode()) { GrammarState grammarState = new GrammarState(this.node); Iterator iterator3 = this.entryPoints.values().iterator(); while (iterator3.hasNext()) { List list = (List)iterator3.next(); list.add(grammarState); } } else if (!this.node.isEmpty()) { iterator = this.leftContexts.iterator(); while (iterator.hasNext()) { UnitContext unitContext = (UnitContext)iterator.next(); this.expandWord(unitContext); } } else { iterator = this.entryPoints.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry)iterator.next(); ContextPair contextPair2 = (ContextPair)entry.getKey(); List list2 = (List)entry.getValue(); BranchState branchState = new BranchState(contextPair2.getLeftContext().toString(), contextPair2.getRightContext().toString(), this.node.getID()); list2.add(branchState); this.addExitPoint(contextPair2, branchState); } } this.addEmptyEntryPoints(); }
public AlternativeState(GrammarState parent, int which) : base("A", parent, which) { }