public static boolean condition_0(PsiBuilder b, int l, int g) {
    if (!recursion_guard_(b, l, "condition_0")) return false;
    boolean r = true;
    while (true) {
      Marker m = enter_section_(b, l, _LEFT_, null);
      if (g < 0 && consumeTokenSmart(b, ASSIGN)) {
        r = condition(b, l, 0);
        exit_section_(b, l, m, ASSIGNMENT_CONDITION, r, true, null);
      }
      else if (g < 1 && logical_or_condition_0(b, l + 1)) {
        r = condition(b, l, 1);
        exit_section_(b, l, m, LOGICAL_OR_CONDITION, r, true, null);
      }
      else if (g < 2 && logical_and_condition_0(b, l + 1)) {
        r = condition(b, l, 2);
        exit_section_(b, l, m, LOGICAL_AND_CONDITION, r, true, null);
      }
      else if (g < 3 && equality_condition_0(b, l + 1)) {
        r = condition(b, l, 3);
        exit_section_(b, l, m, EQUALITY_CONDITION, r, true, null);
      }
      else if (g < 4 && regex_condition_0(b, l + 1)) {
        r = true;
        exit_section_(b, l, m, REGEX_CONDITION, r, true, null);
      }
      else if (g < 5 && comparison_condition_0(b, l + 1)) {
        r = condition(b, l, 5);
        exit_section_(b, l, m, COMPARISON_CONDITION, r, true, null);
      }
      else {
        exit_section_(b, l, m, null, false, false, null);
        break;
      }
    }
    return r;
  }
public static boolean condition_0(PsiBuilder b, int l, int g)