public Handle elemList(List<Handle> els) {
		int n = els.size();
		for (int i = 0; i < n - 1; i++) {	// hook up elements (visit all but last)
			Handle el = els.get(i);
			// if el is of form o-x->o for x in {rule, action, pred, token, ...}
			// and not last in alt
            Transition tr = null;
            if ( el.left.getNumberOfTransitions()==1 ) tr = el.left.transition(0);
            boolean isRuleTrans = tr instanceof RuleTransition;
            if ( el.left.getStateType() == ATNState.BASIC &&
				el.right != null &&
				el.right.getStateType()== ATNState.BASIC &&
				tr!=null && (isRuleTrans && ((RuleTransition)tr).followState == el.right || tr.target == el.right) ) {
				// we can avoid epsilon edge to next el
				Handle handle = null;
				if (i + 1 < els.size()) {
					handle = els.get(i + 1);
				}
				if (handle != null) {
					if (isRuleTrans) {
						((RuleTransition) tr).followState = handle.left;
					} else {
						tr.target = handle.left;
					}
				}
				atn.removeState(el.right); // we skipped over this state
			}
			else { // need epsilon if previous block's right end node is complicated
				epsilon(el.right, els.get(i+1).left);
			}
		}
		Handle first = els.get(0);
		Handle last = els.get(n - 1);
		ATNState left = null;
		if (first != null) {
			left = first.left;
		}
		ATNState right = null;
		if (last != null) {
			right = last.right;
		}
		return new Handle(left, right);
	}
From {@code A|B|..|Z} alternative block build

<pre>
 o-&gt;o-A-&gt;o-&gt;o (last ATNState is BlockEndState pointed to by all alts)
 |          ^
 |-&gt;o-B-&gt;o--|
 |          |
 ...        |
 |          |
 |-&gt;o-Z-&gt;o--|
</pre>

So start node points at every alternative with epsilon transition and
every alt right side points at a block end ATNState.
<p>
Special case: only one alternative: don't make a block with alt
begin/end.
<p>
Special case: if just a list of tokens/chars/sets, then collapse to a
single edged o-set-&gt;o graph.
<p>
TODO: Set alt number (1..n) in the states?
tool/src/org/antlr/v4/automata/ParserATNFactory.java