private int deserializeSets(int[] data, int p, List<IntervalSet> sets) {
		int nsets = data[p++];
		for (int i=0; i<nsets; i++) {
			int nintervals = data[p];
			p++;
			IntervalSet set = new IntervalSet();
			sets.add(set);

			boolean containsEof = data[p++] != 0;
			if (containsEof) {
				set.add(-1);
			}

			for (int j=0; j<nintervals; j++) {
				int a = data[p++];
				int b = data[p++];
				set.add(a, b);
			}
		}
		return p;
	}
Deserialize ATNs for JavaTarget; it's complicated by the fact that java requires
 that we serialize the list of integers as 16 bit characters in a string. Other
 targets will have an array of ints generated and can simply decode the ints
 back into an ATN.

@author Sam Harwell
runtime/Java/src/org/antlr/v4/runtime/atn/ATNDeserializer.java