public static <F, T> Extractor<T> popped(final Function<F, T> transform) {
    return new Extractor<T>() {
      @Override
      public T get(Context<Object> context) {
        return transform.apply(Extractions.<F>popped().get(context));
      }

      @Override
      public String toString() {
        return Extractions.class.getSimpleName() + ".popped(" + transform + ")";
      }
    };
  }
Parboiled extraction for the sake of AST building.
trees/src/org/immutables/trees/ast/Extractions.java