@SafeVarargs
  public static <T extends Tree> Matcher<T> allOf(final Matcher<? super T>... matchers) {
    return new Matcher<T>() {
      @Override
      public boolean matches(T t, VisitorState state) {
        for (Matcher<? super T> matcher : matchers) {
          if (!matcher.matches(t, state)) {
            return false;
          }
        }
        return true;
      }
    };
  }
@ SafeVarargs public static < T extends Tree > Matcher < T > allOf ( final Matcher < ? super T > ... matchers ) { return new Matcher < T > ( ) { @ Override public boolean matches ( T t , VisitorState state ) { for ( Matcher < ? super T > matcher : matchers ) { if ( ! matcher . matches ( t , state ) ) { return false ; } } return true ; } } ; }
Compose several matchers together, such that the composite matches an AST node iff all the
given matchers do.