docs: protected static void reportError(ParsingContext context, String message, Object... parameter) {
  		final File file = context.getCurrentFile();
  		final int offset = context.getMatcher().start() + context.getStartIndex();
  		final int lineno = context.getLineNo();
  		Throwable cause = null;
  		for (final Object param : parameter) {
  			if (param instanceof Throwable) {
  				cause = (Throwable) param;
  				break;
  			}
  		}
  		final Object[] args = new Object[parameter.length + 3];
  		args[0] = file;
  		args[1] = lineno;
  		args[2] = offset;
  		System.arraycopy(parameter, 0, args, 3, parameter.length);
  		final String msg = MessageFormat.format(message, args);
  		if (cause != null) {
  			throw new ParsingException(msg, file, lineno, Throwables.getRootCause(cause));
  		}
  		throw new ParsingException(msg, file, lineno);
  	}