code: public static <V> RuleTreeRewriter<V> compile(
  		final String rule,
  		final BiPredicate<? super V, ? super String> equals,
  		final Function<? super String, ? extends V> mapper
  	) {
  		return new RuleTreeRewriter<>(
  			TreeRewriteRule.compile(rule),
  			equals,
  			mapper
  		);
  	}
docs: Create a new rule based tree rewriter with the given parameters.
  
  @see TreeRewriteRule#compile(String)
  
  @param rule the rewriter rule applied for this rewriter
  @param equals the equals predicate for matching the tree values
  @param mapper the tree value mapper function
  @throws IllegalArgumentException if the rewrite {@code rule} is invalid
  @throws NullPointerException if one of the given arguments is {@code null}