code: public static Parser<Object[]> array(final Parser<?>... parsers) {
      return new Parser<Object[]>() {
        @Override boolean apply(ParseContext ctxt) {
          Object[] ret = new Object[parsers.length];
          for (int i = 0; i < parsers.length; i++) {
            Parser<?> parser = parsers[i];
            if (!parser.apply(ctxt)) return false;
            ret[i] = parser.getReturn(ctxt);
          }
          ctxt.result = ret;
          return true;
        }
        
        @Override public String toString() {
          return "array";
        }
      };
    }
docs: A {@link Parser} that sequentially runs {@code parsers} one by one and collects the return
  values in an array.