code: public final Parser<T> prefix(Parser<? extends Function<? super T, ? extends T>> op) {
      return Parsers.sequence(op.many(), this, Parser::applyPrefixOperators);
    }
docs: A {@link Parser} that runs {@code op} for 0 or more times greedily, then runs {@code this}.
  The {@link Function} objects returned from {@code op} are applied from right to left to the
  return value of {@code p}.
  
  <p> {@code p.prefix(op)} is equivalent to {@code op* p} in EBNF.