public static boolean non_empty_implements_clause(PsiBuilder b, int l) {
    if (!recursion_guard_(b, l, "non_empty_implements_clause")) return false;
    if (!nextTokenIsFast(b, KW_IMPLEMENTS)) return false;
    boolean r, p;
    Marker m = enter_section_(b, l, _NONE_, IMPLEMENTS_CLAUSE, null);
    r = consumeTokenFast(b, KW_IMPLEMENTS);
    p = r; // pin = 1
    r = r && comma_list_p(b, l + 1, GroovyGeneratedParser::implements_list_item);
    exit_section_(b, l, m, r, p, null);
    return r || p;
  }
public static boolean non_empty_implements_clause(PsiBuilder b, int l)