// File: 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:
subq $0x648, %rsp            # imm = 0x648
movq %rdi, 0x638(%rsp)
movq 0x638(%rsp), %rax
movq %rax, 0x88(%rsp)
testb $0x1, 0x3a9(%rax)
je 0x38da2b
movq 0x88(%rsp), %rdi
callq 0x373e90
movq %rax, 0x78(%rsp)
leaq 0x56f(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x11b6f0
movq 0x80(%rsp), %rdx
leaq 0x21b6a1(%rip), %rsi    # 0x5a8f43
leaq 0x570(%rsp), %rdi
callq 0x134520
jmp 0x38d8b1
leaq 0x518(%rsp), %rdi
movl $0x71cb, %esi           # imm = 0x71CB
callq 0x371f20
jmp 0x38d8c5
leaq 0x219647(%rip), %rsi    # 0x5a6f13
leaq 0x538(%rsp), %rdi
leaq 0x518(%rsp), %rdx
callq 0x29dd70
jmp 0x38d8e3
movq 0x78(%rsp), %rdx
leaq 0x590(%rsp), %rdi
movl $0x1, %esi
leaq 0x570(%rsp), %rcx
leaq 0x538(%rsp), %r8
callq 0x3741e0
jmp 0x38d90c
movq 0x88(%rsp), %rdi
leaq 0x590(%rsp), %rsi
callq 0x371e40
jmp 0x38d923
leaq 0x590(%rsp), %rdi
callq 0x371330
leaq 0x538(%rsp), %rdi
callq 0x11b838
leaq 0x518(%rsp), %rdi
callq 0x11b838
leaq 0x570(%rsp), %rdi
callq 0x11b838
leaq 0x56f(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0x640(%rsp)
jmp 0x38e386
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38da19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38da0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38d9ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38d9f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
leaq 0x590(%rsp), %rdi
callq 0x371330
leaq 0x538(%rsp), %rdi
callq 0x11b838
leaq 0x518(%rsp), %rdi
callq 0x11b838
leaq 0x570(%rsp), %rdi
callq 0x11b838
leaq 0x56f(%rsp), %rdi
callq 0x11b820
jmp 0x38e396
movq 0x88(%rsp), %rcx
xorl %eax, %eax
cmpq 0x3c0(%rcx), %rax
jne 0x38dbfb
movq 0x88(%rsp), %rdi
callq 0x373e90
movq %rax, 0x68(%rsp)
leaq 0x44f(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x11b6f0
movq 0x70(%rsp), %rdx
leaq 0x21b50e(%rip), %rsi    # 0x5a8f80
leaq 0x450(%rsp), %rdi
callq 0x134520
jmp 0x38da81
leaq 0x408(%rsp), %rdi
movl $0x71d5, %esi           # imm = 0x71D5
callq 0x371f20
jmp 0x38da95
leaq 0x219477(%rip), %rsi    # 0x5a6f13
leaq 0x428(%rsp), %rdi
leaq 0x408(%rsp), %rdx
callq 0x29dd70
jmp 0x38dab3
movq 0x68(%rsp), %rdx
leaq 0x470(%rsp), %rdi
movl $0x1, %esi
leaq 0x450(%rsp), %rcx
leaq 0x428(%rsp), %r8
callq 0x3741e0
jmp 0x38dadc
movq 0x88(%rsp), %rdi
leaq 0x470(%rsp), %rsi
callq 0x371e40
jmp 0x38daf3
leaq 0x470(%rsp), %rdi
callq 0x371330
leaq 0x428(%rsp), %rdi
callq 0x11b838
leaq 0x408(%rsp), %rdi
callq 0x11b838
leaq 0x450(%rsp), %rdi
callq 0x11b838
leaq 0x44f(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0x640(%rsp)
jmp 0x38e386
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38dbe9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38dbdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38dbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38dbc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
leaq 0x470(%rsp), %rdi
callq 0x371330
leaq 0x428(%rsp), %rdi
callq 0x11b838
leaq 0x408(%rsp), %rdi
callq 0x11b838
leaq 0x450(%rsp), %rdi
callq 0x11b838
leaq 0x44f(%rsp), %rdi
callq 0x11b820
jmp 0x38e396
jmp 0x38dbfd
movq 0x88(%rsp), %rsi
addq $0x3a8, %rsi            # imm = 0x3A8
addq $0x1, %rsi
leaq 0x400(%rsp), %rdi
callq 0x50e080
movq 0x88(%rsp), %rdi
addq $0x358, %rdi            # imm = 0x358
callq 0x50e0b0
testb $0x1, %al
jne 0x38e1a7
movq 0x88(%rsp), %rdi
callq 0x373690
jmp 0x38dc48
movq 0x88(%rsp), %rdi
addq $0x358, %rdi            # imm = 0x358
callq 0x4e5f90
movb $0x1, (%rax)
callq 0x2821f0
movq 0x88(%rsp), %rdi
movq %rax, 0x3f8(%rsp)
movl $0x5b, 0x3f4(%rsp)
leaq 0x3f4(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x67(%rsp)
jmp 0x38dc97
movb 0x67(%rsp), %al
testb $0x1, %al
jne 0x38dca4
jmp 0x38e0d3
movq 0x88(%rsp), %rdi
xorl %esi, %esi
callq 0x379940
movq %rax, 0x58(%rsp)
jmp 0x38dcba
movq 0x58(%rsp), %rcx
movq %rcx, 0x3f8(%rsp)
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x38deb1
movq 0x88(%rsp), %rdi
callq 0x373e90
movq %rax, 0x50(%rsp)
jmp 0x38dce6
leaq 0x327(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x11b6f0
movq 0x48(%rsp), %rdx
leaq 0x21b2c1(%rip), %rsi    # 0x5a8fc5
leaq 0x328(%rsp), %rdi
callq 0x134520
jmp 0x38dd13
leaq 0x2e0(%rsp), %rdi
movl $0x71ec, %esi           # imm = 0x71EC
callq 0x371f20
jmp 0x38dd27
leaq 0x2191e5(%rip), %rsi    # 0x5a6f13
leaq 0x300(%rsp), %rdi
leaq 0x2e0(%rsp), %rdx
callq 0x29dd70
jmp 0x38dd45
movq 0x50(%rsp), %rdx
leaq 0x348(%rsp), %rdi
movl $0x1, %esi
leaq 0x328(%rsp), %rcx
leaq 0x300(%rsp), %r8
callq 0x3741e0
jmp 0x38dd6e
movq 0x88(%rsp), %rdi
leaq 0x348(%rsp), %rsi
callq 0x371e40
jmp 0x38dd85
leaq 0x348(%rsp), %rdi
callq 0x371330
leaq 0x300(%rsp), %rdi
callq 0x11b838
leaq 0x2e0(%rsp), %rdi
callq 0x11b838
leaq 0x328(%rsp), %rdi
callq 0x11b838
leaq 0x327(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0x640(%rsp)
movl $0x1, 0x2dc(%rsp)
jmp 0x38e368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e377
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38de9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38de92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38de85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38de78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
leaq 0x348(%rsp), %rdi
callq 0x371330
leaq 0x300(%rsp), %rdi
callq 0x11b838
leaq 0x2e0(%rsp), %rdi
callq 0x11b838
leaq 0x328(%rsp), %rdi
callq 0x11b838
leaq 0x327(%rsp), %rdi
callq 0x11b820
jmp 0x38e377
movq 0x88(%rsp), %rdi
movl $0x5d, 0x2d8(%rsp)
leaq 0x2d8(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x47(%rsp)
jmp 0x38dedc
movb 0x47(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38deeb
jmp 0x38e0cf
movq 0x88(%rsp), %rdi
callq 0x373e90
movq %rax, 0x38(%rsp)
jmp 0x38deff
leaq 0x20f(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x11b6f0
movq 0x30(%rsp), %rdx
leaq 0x21b0e9(%rip), %rsi    # 0x5a9006
leaq 0x210(%rsp), %rdi
callq 0x134520
jmp 0x38df2c
leaq 0x1c8(%rsp), %rdi
movl $0x71f6, %esi           # imm = 0x71F6
callq 0x371f20
jmp 0x38df40
leaq 0x218fcc(%rip), %rsi    # 0x5a6f13
leaq 0x1e8(%rsp), %rdi
leaq 0x1c8(%rsp), %rdx
callq 0x29dd70
jmp 0x38df5e
movq 0x38(%rsp), %rdx
leaq 0x230(%rsp), %rdi
movl $0x1, %esi
leaq 0x210(%rsp), %rcx
leaq 0x1e8(%rsp), %r8
callq 0x3741e0
jmp 0x38df87
movq 0x88(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x371e40
jmp 0x38df9e
leaq 0x230(%rsp), %rdi
callq 0x371330
leaq 0x1e8(%rsp), %rdi
callq 0x11b838
leaq 0x1c8(%rsp), %rdi
callq 0x11b838
leaq 0x210(%rsp), %rdi
callq 0x11b838
leaq 0x20f(%rsp), %rdi
callq 0x11b820
movq 0x88(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x3f8(%rsp), %rsi
callq 0x284bd0
jmp 0x38dffd
callq 0x2821f0
movq %rax, 0x640(%rsp)
movl $0x1, 0x2dc(%rsp)
jmp 0x38e368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e0bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e0b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e0a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e096
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x371330
leaq 0x1e8(%rsp), %rdi
callq 0x11b838
leaq 0x1c8(%rsp), %rdi
callq 0x11b838
leaq 0x210(%rsp), %rdi
callq 0x11b838
leaq 0x20f(%rsp), %rdi
callq 0x11b820
jmp 0x38e377
jmp 0x38e0d1
jmp 0x38e0d3
movq 0x88(%rsp), %rax
addq $0x3a8, %rax            # imm = 0x3A8
movq %rax, 0x20(%rsp)
leaq 0x1a7(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x11b6f0
movq 0x28(%rsp), %rdx
leaq 0x21af47(%rip), %rsi    # 0x5a904b
leaq 0x1a8(%rsp), %rdi
callq 0x134520
jmp 0x38e113
movq 0x20(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
movq %rsi, 0x10(%rsp)
callq 0x3eb500
movq 0x10(%rsp), %rdi
callq 0x11b838
leaq 0x1a7(%rsp), %rdi
callq 0x11b820
movq 0x88(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x3f8(%rsp), %rsi
callq 0x50e0d0
movq %rax, 0x18(%rsp)
jmp 0x38e164
movq 0x18(%rsp), %rax
movq %rax, 0x640(%rsp)
movl $0x1, 0x2dc(%rsp)
jmp 0x38e368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
leaq 0x1a7(%rsp), %rdi
callq 0x11b820
jmp 0x38e377
movq 0x88(%rsp), %rdi
callq 0x373e90
movq %rax, 0x8(%rsp)
jmp 0x38e1bb
leaq 0xd7(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x11b6f0
movq (%rsp), %rdx
leaq 0x21ae8c(%rip), %rsi    # 0x5a9063
leaq 0xd8(%rsp), %rdi
callq 0x134520
jmp 0x38e1e6
leaq 0x90(%rsp), %rdi
movl $0x7208, %esi           # imm = 0x7208
callq 0x371f20
jmp 0x38e1fa
leaq 0x218d12(%rip), %rsi    # 0x5a6f13
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x29dd70
jmp 0x38e218
movq 0x8(%rsp), %rdx
leaq 0xf8(%rsp), %rdi
movl $0x1, %esi
leaq 0xd8(%rsp), %rcx
leaq 0xb0(%rsp), %r8
callq 0x3741e0
jmp 0x38e241
movq 0x88(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x371e40
jmp 0x38e258
leaq 0xf8(%rsp), %rdi
callq 0x371330
leaq 0xb0(%rsp), %rdi
callq 0x11b838
leaq 0x90(%rsp), %rdi
callq 0x11b838
leaq 0xd8(%rsp), %rdi
callq 0x11b838
leaq 0xd7(%rsp), %rdi
callq 0x11b820
jmp 0x38e350
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e341
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e334
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e327
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
jmp 0x38e31a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x560(%rsp)
movl %eax, 0x55c(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0x371330
leaq 0xb0(%rsp), %rdi
callq 0x11b838
leaq 0x90(%rsp), %rdi
callq 0x11b838
leaq 0xd8(%rsp), %rdi
callq 0x11b838
leaq 0xd7(%rsp), %rdi
callq 0x11b820
jmp 0x38e377
callq 0x2821f0
movq %rax, 0x640(%rsp)
movl $0x1, 0x2dc(%rsp)
leaq 0x400(%rsp), %rdi
callq 0x50e150
jmp 0x38e386
leaq 0x400(%rsp), %rdi
callq 0x50e150
jmp 0x38e396
movq 0x640(%rsp), %rax
addq $0x648, %rsp            # imm = 0x648
retq
movq 0x560(%rsp), %rdi
callq 0x11b4e0
nopw %cs:(%rax,%rax)
nopl (%rax)