public static List<ASTNodePredicate> matchByClass(Class<ASTNode>... classes) {
        ArrayList<ASTNodePredicate> result = new ArrayList<ASTNodePredicate>(classes.length);
        for (final Class<ASTNode> astNodeClass : classes) {
            result.add(new MatchByClass(astNodeClass));
        }
        return result;
    }
public static List < ASTNodePredicate > matchByClass ( Class < ASTNode > ... classes ) { ArrayList < ASTNodePredicate > result = new ArrayList < ASTNodePredicate > ( classes . length ) ; for ( final Class < ASTNode > astNodeClass : classes ) { result . add ( new MatchByClass ( astNodeClass ) ) ; } return result ; }
----------------------------- inner classes --------------------------------------