code: public final Parser<T> infixn(Parser<? extends BiFunction<? super T, ? super T, ? extends T>> op) {
      return next(a -> {
        Parser<T> shift = Parsers.sequence(op, this, (m2, b) -> m2.apply(a, b));
        return shift.or(Parsers.constant(a));
      });
    }
docs: A {@link Parser} that parses non-associative infix operator.
  Runs {@code this} for the left operand, and then
  runs {@code op} and {@code this} for the operator and the right operand optionally.
  The {@link BiFunction} objects
  returned from {@code op} are applied to the return values of the two operands, if any.
  
  <p> {@code p.infixn(op)} is equivalent to {@code p (op p)?} in EBNF.