@Override
	public Handle set(GrammarAST associatedAST, List<GrammarAST> terminals, boolean invert) {
		ATNState left = newState(associatedAST);
		ATNState right = newState(associatedAST);
		IntervalSet set = new IntervalSet();
		for (GrammarAST t : terminals) {
			int ttype = g.getTokenType(t.getText());
			set.add(ttype);
		}
		if ( invert ) {
			left.addTransition(new NotSetTransition(right, set));
		}
		else {
			left.addTransition(new SetTransition(right, set));
		}
		associatedAST.atnState = left;
		return new Handle(left, right);
	}
From set build single edge graph {@code o->o-set->o}.  To conform to
 what an alt block looks like, must have extra state on left.
 This also handles {@code ~A}, converted to {@code ~{A}} set.
tool/src/org/antlr/v4/automata/ParserATNFactory.java