// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_break_statement()
inline expression_node_ptr parse_break_statement()
      {
         if (state_.parsing_break_stmt)
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR151 - Invoking 'break' within a break call is not allowed",
               exprtk_error_location));

            return error_node();
         }
         else if (0 == state_.parsing_loop_stmt_count)
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR152 - Invalid use of 'break', allowed only in the scope of a loop",
               exprtk_error_location));

            return error_node();
         }

         scoped_bool_negator sbn(state_.parsing_break_stmt);

         if (!brkcnt_list_.empty())
         {
            next_token();

            brkcnt_list_.front() = true;

            expression_node_ptr return_expr = error_node();

            if (token_is(token_t::e_lsqrbracket))
            {
               if (0 == (return_expr = parse_expression()))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR153 - Failed to parse return expression for 'break' statement",
                     exprtk_error_location));

                  return error_node();
               }
               else if (!token_is(token_t::e_rsqrbracket))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR154 - Expected ']' at the completion of break's return expression",
                     exprtk_error_location));

                  free_node(node_allocator_, return_expr);

                  return error_node();
               }
            }

            state_.activate_side_effect("parse_break_statement()");

            return node_allocator_.allocate<details::break_node<T> >(return_expr);
         }
         else
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR155 - Invalid use of 'break', allowed only in the scope of a loop",
               exprtk_error_location));
         }

         return error_node();
      }

// Assembly:
pushq %r14
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdi, %rbx
movb 0x3a9(%rdi), %al
cmpb $0x1, %al
jne 0x201e30
leaq 0xd9e3c(%rip), %rsi     # 0x2dbc04
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
leaq 0x30(%rsp), %rdi
movl $0x71cb, %esi           # imm = 0x71CB
callq 0x1f7a3c
leaq 0xd7e0e(%rip), %rsi     # 0x2d9bfb
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x10(%rsp), %rcx
leaq 0x50(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x70(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
jmp 0x201f72
cmpq $0x0, 0x3c0(%rbx)
je 0x201f08
xorb $0x1, %al
movb %al, 0x3a9(%rbx)
movq 0x388(%rbx), %rax
cmpq 0x368(%rbx), %rax
je 0x201fa1
movq %rbx, %rdi
callq 0x1f6d68
movq 0x368(%rbx), %rax
movb $0x1, (%rax)
andq $0x0, 0x8(%rsp)
leaq 0x70(%rsp), %rsi
movl $0x5b, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x201ec2
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x20200a
leaq 0x70(%rsp), %rsi
movl $0x5d, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x2020ad
leaq 0xd9e43(%rip), %rsi     # 0x2dbd0c
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
cmpb $0x0, 0x3ac(%rbx)
jne 0x201ee8
movb $0x1, 0x3ac(%rbx)
leaq 0x70(%rsp), %rdi
callq 0x118648
leaq 0x290(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x29b192
jmp 0x20209b
leaq 0xd9d32(%rip), %rsi     # 0x2dbc41
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
leaq 0x30(%rsp), %rdi
movl $0x71d5, %esi           # imm = 0x71D5
callq 0x1f7a3c
leaq 0xd7cc7(%rip), %rsi     # 0x2d9bfb
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x10(%rsp), %rcx
leaq 0x50(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x70(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x118648
leaq 0x10(%rsp), %rdi
callq 0x118648
xorl %eax, %eax
jmp 0x2020a2
leaq 0xd9d7c(%rip), %rsi     # 0x2dbd24
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
leaq 0x30(%rsp), %rdi
movl $0x7208, %esi           # imm = 0x7208
callq 0x1f7a3c
leaq 0xd7c2e(%rip), %rsi     # 0x2d9bfb
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x10(%rsp), %rcx
leaq 0x50(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1f76ce
jmp 0x202071
leaq 0xd9c75(%rip), %rsi     # 0x2dbc86
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x127016
leaq 0x30(%rsp), %rdi
movl $0x71ec, %esi           # imm = 0x71EC
callq 0x1f7a3c
leaq 0xd7bc5(%rip), %rsi     # 0x2d9bfb
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x10(%rsp), %rcx
leaq 0x50(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1f76ce
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x118648
leaq 0x10(%rsp), %rdi
callq 0x118648
xorl %eax, %eax
xorb $0x1, 0x3a9(%rbx)
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r14
retq
leaq 0xd9c13(%rip), %rsi     # 0x2dbcc7
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x127016
leaq 0x30(%rsp), %rdi
movl $0x71f6, %esi           # imm = 0x71F6
callq 0x1f7a3c
leaq 0xd7b22(%rip), %rsi     # 0x2d9bfb
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x10(%rsp), %rcx
leaq 0x50(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1f76ce
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x118648
leaq 0x10(%rsp), %rdi
callq 0x118648
leaq 0x290(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1ad9c8
jmp 0x202099
jmp 0x202168
jmp 0x202177
jmp 0x202186
jmp 0x202195
jmp 0x2021b6
jmp 0x202168
jmp 0x202177
jmp 0x202186
jmp 0x202195
jmp 0x2021b6
jmp 0x2021b6
movq %rax, %r14
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
jmp 0x20217a
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x202189
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x118648
jmp 0x202198
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x118648
jmp 0x2021b9
jmp 0x2021b6
jmp 0x2021b6
jmp 0x2021c2
jmp 0x2021d1
jmp 0x2021e0
jmp 0x2021ef
jmp 0x2021fe
jmp 0x2021b6
jmp 0x2021b6
movq %rax, %r14
xorb $0x1, 0x3a9(%rbx)
jmp 0x202201
movq %rax, %r14
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
jmp 0x2021d4
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x2021e3
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x118648
jmp 0x2021f2
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x118648
jmp 0x202201
movq %rax, %r14
movq %r14, %rdi
callq 0x118360
nop