code: protected <T> T parse(JsonReaderI<T> mapper) throws ParseException {
  		this.pos = -1;
  		T result;
  		try {
  			read();
  			result = readFirst(mapper);
  			if (checkTaillingData) {
  				if (!checkTaillingSpace)
  					skipSpace();
  				if (c != EOI)
  					throw new ParseException(pos - 1, ERROR_UNEXPECTED_TOKEN, c);
  			}
  		} catch (IOException e) {
  			throw new ParseException(pos, e);
  		}
  		xs = null;
  		xo = null;
  		return result;
  	}
docs: use to return Primitive Type, or String, Or JsonObject or JsonArray
  generated by a ContainerFactory