@NotNull public static IElementType[] enumerate(@NotNull Predicate p){
  List<IElementType> matches=new ArrayList<IElementType>();
  for (  IElementType value : ourRegistry) {
    if (value != null && p.matches(value)) {
      matches.add(value);
    }
  }
  return matches.toArray(new IElementType[matches.size()]);
}

@ NotNull public static IElementType [ ] enumerate ( @ NotNull Predicate p ) { List < IElementType > matches = new ArrayList < IElementType > ( ) ; for ( IElementType value : ourRegistry ) { if ( value != null && p . matches ( value ) ) { matches . add ( value ) ; } } return matches . toArray ( new IElementType [ matches . size ( ) ] ) ; }
enumerates all registered token types which match the specified predicate .
