boolean (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; }