public static boolean disjunction_type_element(PsiBuilder b, int l) {
    if (!recursion_guard_(b, l, "disjunction_type_element")) return false;
    if (!nextTokenIsFast(b, T_BOR)) return false;
    boolean r;
    Marker m = enter_section_(b, l, _LEFT_, DISJUNCTION_TYPE_ELEMENT, "<type>");
    r = disjunction_type_element_part(b, l + 1);
    while (r) {
      int c = current_position_(b);
      if (!disjunction_type_element_part(b, l + 1)) break;
      if (!empty_element_parsed_guard_(b, "disjunction_type_element", c)) break;
    }
    exit_section_(b, l, m, r, false, null);
    return r;
  }
public static boolean disjunction_type_element(PsiBuilder b, int l)