public static boolean operation_0(PsiBuilder b, int l, int g) {
    if (!recursion_guard_(b, l, "operation_0")) return false;
    boolean r = true;
    while (true) {
      Marker m = enter_section_(b, l, _LEFT_, null);
      if (g < 0 && consumeTokenSmart(b, COMMA)) {
        r = operation(b, l, 0);
        exit_section_(b, l, m, COMMA_OPERATION, r, true, null);
      }
      else if (g < 1 && assignment_operation_0(b, l + 1)) {
        r = operation(b, l, 1);
        exit_section_(b, l, m, ASSIGNMENT_OPERATION, r, true, null);
      }
      else if (g < 2 && consumeTokenSmart(b, QMARK)) {
        r = report_error_(b, operation(b, l, 2));
        r = conditional_operation_1(b, l + 1) && r;
        exit_section_(b, l, m, CONDITIONAL_OPERATION, r, true, null);
      }
      else if (g < 3 && consumeTokenSmart(b, OR_OR)) {
        r = operation(b, l, 3);
        exit_section_(b, l, m, LOGICAL_OR_OPERATION, r, true, null);
      }
      else if (g < 4 && consumeTokenSmart(b, AND_AND)) {
        r = operation(b, l, 4);
        exit_section_(b, l, m, LOGICAL_AND_OPERATION, r, true, null);
      }
      else if (g < 5 && consumeTokenSmart(b, PIPE)) {
        r = operation(b, l, 5);
        exit_section_(b, l, m, BITWISE_OR_OPERATION, r, true, null);
      }
      else if (g < 6 && consumeTokenSmart(b, XOR)) {
        r = operation(b, l, 6);
        exit_section_(b, l, m, BITWISE_EXCLUSIVE_OR_OPERATION, r, true, null);
      }
      else if (g < 7 && consumeTokenSmart(b, AMP)) {
        r = operation(b, l, 7);
        exit_section_(b, l, m, BITWISE_AND_OPERATION, r, true, null);
      }
      else if (g < 8 && equality_operation_0(b, l + 1)) {
        r = operation(b, l, 8);
        exit_section_(b, l, m, EQUALITY_OPERATION, r, true, null);
      }
      else if (g < 9 && comparison_operation_0(b, l + 1)) {
        r = operation(b, l, 9);
        exit_section_(b, l, m, COMPARISON_OPERATION, r, true, null);
      }
      else if (g < 10 && bitwise_shift_operation_0(b, l + 1)) {
        r = operation(b, l, 10);
        exit_section_(b, l, m, BITWISE_SHIFT_OPERATION, r, true, null);
      }
      else if (g < 11 && add_operation_0(b, l + 1)) {
        r = operation(b, l, 11);
        exit_section_(b, l, m, ADD_OPERATION, r, true, null);
      }
      else if (g < 12 && mul_operation_0(b, l + 1)) {
        r = operation(b, l, 12);
        exit_section_(b, l, m, MUL_OPERATION, r, true, null);
      }
      else if (g < 13 && consumeTokenSmart(b, EXPONENT)) {
        r = operation(b, l, 13);
        exit_section_(b, l, m, EXP_OPERATION, r, true, null);
      }
      else if (g < 17 && post_operation_0(b, l + 1)) {
        r = true;
        exit_section_(b, l, m, POST_OPERATION, r, true, null);
      }
      else if (g < 18 && consumeTokenSmart(b, LEFT_SQUARE)) {
        r = report_error_(b, operation(b, l, 18));
        r = consumeToken(b, RIGHT_SQUARE) && r;
        exit_section_(b, l, m, INDEX_OPERATION, r, true, null);
      }
      else {
        exit_section_(b, l, m, null, false, false, null);
        break;
      }
    }
    return r;
  }
public static boolean operation_0(PsiBuilder b, int l, int g)