// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_branch(exprtk::parser<double>::precedence_level)
inline expression_node_ptr parse_branch(precedence_level precedence = e_level00)
      {
         stack_limit_handler slh(*this);

         if (!slh)
         {
            return error_node();
         }

         expression_node_ptr branch = error_node();

         if (token_t::e_number == current_token().type)
         {
            T numeric_value = T(0);

            if (details::string_to_real(current_token().value, numeric_value))
            {
               expression_node_ptr literal_exp = expression_generator_(numeric_value);

               if (0 == literal_exp)
               {
                  set_error(make_error(
                     parser_error::e_numeric,
                     current_token(),
                     "ERR242 - Failed generate node for scalar: '" + current_token().value + "'",
                     exprtk_error_location));

                  return error_node();
               }

               next_token();
               branch = literal_exp;
            }
            else
            {
               set_error(make_error(
                  parser_error::e_numeric,
                  current_token(),
                  "ERR243 - Failed to convert '" + current_token().value + "' to a number",
                  exprtk_error_location));

               return error_node();
            }
         }
         else if (token_t::e_symbol == current_token().type)
         {
            branch = parse_symbol();
         }
         #ifndef exprtk_disable_string_capabilities
         else if (token_t::e_string == current_token().type)
         {
            branch = parse_const_string();
         }
         #endif
         else if (token_t::e_lbracket == current_token().type)
         {
            next_token();

            if (0 == (branch = parse_expression()))
            {
               return error_node();
            }

            token_is(token_t::e_eof);

            if (!token_is(token_t::e_rbracket))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR244 - Expected ')' instead of: '" + current_token().value + "'",
                  exprtk_error_location));

               details::free_node(node_allocator_, branch);

               return error_node();
            }
            else if (!post_bracket_process(token_t::e_lbracket,branch))
            {
               details::free_node(node_allocator_, branch);

               return error_node();
            }

            parse_pending_vector_index_operator(branch);
         }
         else if (token_t::e_lsqrbracket == current_token().type)
         {
            next_token();

            if (0 == (branch = parse_expression()))
               return error_node();
            else if (!token_is(token_t::e_rsqrbracket))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR245 - Expected ']' instead of: '" + current_token().value + "'",
                  exprtk_error_location));

               details::free_node(node_allocator_, branch);

               return error_node();
            }
            else if (!post_bracket_process(token_t::e_lsqrbracket,branch))
            {
               details::free_node(node_allocator_, branch);

               return error_node();
            }
         }
         else if (token_t::e_lcrlbracket == current_token().type)
         {
            next_token();

            if (0 == (branch = parse_expression()))
               return error_node();
            else if (!token_is(token_t::e_rcrlbracket))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR246 - Expected '}' instead of: '" + current_token().value + "'",
                  exprtk_error_location));

               details::free_node(node_allocator_, branch);

               return error_node();
            }
            else if (!post_bracket_process(token_t::e_lcrlbracket,branch))
            {
               details::free_node(node_allocator_, branch);

               return error_node();
            }
         }
         else if (token_t::e_sub == current_token().type)
         {
            next_token();
            branch = parse_expression(e_level11);

            if (
                 branch &&
                 !(
                    details::is_neg_unary_node    (branch) &&
                    simplify_unary_negation_branch(branch)
                  )
               )
            {
               expression_node_ptr result = expression_generator_(details::e_neg,branch);

               if (0 == result)
               {
                  details::free_node(node_allocator_, branch);

                  return error_node();
               }
               else
                  branch = result;
            }
         }
         else if (token_t::e_add == current_token().type)
         {
            next_token();
            branch = parse_expression(e_level13);
         }
         else if (token_t::e_eof == current_token().type)
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR247 - Premature end of expression[1]",
               exprtk_error_location));

            return error_node();
         }
         else
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR248 - Premature end of expression[2]",
               exprtk_error_location));

            return error_node();
         }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x150, %rsp            # imm = 0x150
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x140(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1fb244
cmpb $0x0, 0x8(%r14)
jne 0x1fbb8e
andq $0x0, 0x8(%rsp)
leaq 0x70(%rbx), %r14
movl 0x70(%rbx), %eax
leal -0x6(%rax), %ecx
cmpl $0x3, %ecx
jbe 0x1fb50f
cmpl $0x28, %eax
je 0x1fb609
cmpl $0x2b, %eax
je 0x1fb770
cmpl $0x2d, %eax
je 0x1fb6f7
cmpl $0x5b, %eax
je 0x1fb593
cmpl $0x7b, %eax
jne 0x1fb7d9
movq %rbx, %rdi
callq 0x1f6d68
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x1fbb8e
leaq 0x98(%rsp), %rsi
movl $0x7d, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x1fb981
leaq 0x98(%rsp), %rsi
movl $0x7b, (%rsi)
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x1fd4c2
jmp 0x1fb5ef
leaq 0xd44aa(%rip), %rax     # 0x2cf9c0
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0xdebd7(%rip), %rsi     # 0x2da0fd
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x127016
leaq 0x10(%rsp), %rdi
movl $0x7b67, %esi           # imm = 0x7B67
callq 0x1f7a3c
leaq 0xde6b0(%rip), %rsi     # 0x2d9bfb
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x30(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x98(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
jmp 0x1fb848
movq %rbx, %rdi
callq 0x1f6d68
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x1fbb8e
leaq 0x98(%rsp), %rsi
movl $0x5d, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x1fb8fb
leaq 0x98(%rsp), %rsi
movl $0x5b, (%rsi)
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x1fd4c2
testb %al, %al
jne 0x1fb788
jmp 0x1fbabd
movq %rbx, %rdi
callq 0x1fc58e
jmp 0x1fb783
movq %rbx, %rdi
callq 0x1f6d68
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x1fbb8e
leaq 0x98(%rsp), %rsi
movl $0x6, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
leaq 0x98(%rsp), %rsi
movl $0x29, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x1fba07
leaq 0x98(%rsp), %rsi
movl $0x28, (%rsi)
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x1fd4c2
testb %al, %al
je 0x1fbabd
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1fd67c
jmp 0x1fb788
movq %rbx, %rdi
callq 0x1fd000
jmp 0x1fb783
leaq 0x90(%rsp), %rsi
andq $0x0, (%rsi)
leaq 0x78(%rbx), %r15
movq %r15, %rdi
callq 0x1a0a5c
testb %al, %al
je 0x1fb873
leaq 0x220(%rbx), %rdi
leaq 0x90(%rsp), %rsi
callq 0x1ad9fe
movq %rax, %r12
testq %rax, %rax
je 0x1fbad6
movq %rbx, %rdi
callq 0x1f6d68
movq %r12, 0x8(%rsp)
jmp 0x1fb788
movq %rbx, %rdi
callq 0x1f6d68
pushq $0xb
popq %rsi
movq %rbx, %rdi
callq 0x1f9016
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x1fb788
movq (%rax), %rcx
movq %rax, %rdi
callq *0x28(%rcx)
cmpl $0x4b, %eax
jne 0x1fb733
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1fd862
testb %al, %al
jne 0x1fb788
leaq 0x220(%rbx), %rdi
leaq 0x98(%rsp), %rsi
movl $0x34, (%rsi)
movq 0x8(%rsp), %rdx
callq 0x1fd9e4
testq %rax, %rax
jne 0x1fb783
addq $0x290, %rbx            # imm = 0x290
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
jmp 0x1fbb8e
movq %rbx, %rdi
callq 0x1f6d68
pushq $0xd
popq %rsi
movq %rbx, %rdi
callq 0x1f9016
movq %rax, 0x8(%rsp)
testl %ebp, %ebp
jne 0x1fb7c2
cmpq $0x0, 0x8(%rsp)
je 0x1fb7c2
leaq 0x98(%rsp), %rsi
movl $0x3f, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
je 0x1fb7c2
movq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1fbfc4
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1fbd1e
movq 0x8(%rsp), %rax
jmp 0x1fbb90
leaq 0xde945(%rip), %rsi     # 0x2da125
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x127016
leaq 0x10(%rsp), %rdi
movl $0x7b71, %esi           # imm = 0x7B71
callq 0x1f7a3c
leaq 0xde3f6(%rip), %rsi     # 0x2d9bfb
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x30(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x98(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x98(%rsp), %rdi
callq 0x1f5c4c
leaq 0x30(%rsp), %rdi
callq 0x118648
leaq 0x10(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
jmp 0x1fbb89
leaq 0xde7ec(%rip), %rsi     # 0x2da066
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
callq 0x1f8aab
leaq 0xde7f5(%rip), %rdx     # 0x2da083
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1b42c3
leaq 0x70(%rsp), %rdi
movl $0x7ae2, %esi           # imm = 0x7AE2
callq 0x1f7a3c
leaq 0xde348(%rip), %rsi     # 0x2d9bfb
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x4
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x98(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
jmp 0x1fbb59
leaq 0x78(%rbx), %rdx
leaq 0xde7af(%rip), %rsi     # 0x2da0b5
leaq 0x30(%rsp), %rdi
callq 0x1f8aab
leaq 0xe0e5b(%rip), %rdx     # 0x2dc772
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1b42c3
leaq 0x70(%rsp), %rdi
movl $0x7b1d, %esi           # imm = 0x7B1D
callq 0x1f7a3c
leaq 0xde2bf(%rip), %rsi     # 0x2d9bfb
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x98(%rsp), %rsi
callq 0x1f76ce
jmp 0x1fba88
leaq 0x78(%rbx), %rdx
leaq 0xde74d(%rip), %rsi     # 0x2da0d9
leaq 0x30(%rsp), %rdi
callq 0x1f8aab
leaq 0xe0dd5(%rip), %rdx     # 0x2dc772
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1b42c3
leaq 0x70(%rsp), %rdi
movl $0x7b36, %esi           # imm = 0x7B36
callq 0x1f7a3c
leaq 0xde239(%rip), %rsi     # 0x2d9bfb
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x98(%rsp), %rsi
callq 0x1f76ce
jmp 0x1fba88
leaq 0x78(%rbx), %rdx
leaq 0xde67f(%rip), %rsi     # 0x2da091
leaq 0x30(%rsp), %rdi
callq 0x1f8aab
leaq 0xe0d4f(%rip), %rdx     # 0x2dc772
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1b42c3
leaq 0x70(%rsp), %rdi
movl $0x7b02, %esi           # imm = 0x7B02
callq 0x1f7a3c
leaq 0xde1b3(%rip), %rsi     # 0x2d9bfb
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x98(%rsp), %rsi
callq 0x1f76ce
leaq 0x98(%rsp), %rdi
callq 0x1f5c4c
leaq 0x10(%rsp), %rdi
callq 0x118648
leaq 0x70(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x118648
addq $0x290, %rbx            # imm = 0x290
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
jmp 0x1fbb8e
leaq 0xde55d(%rip), %rsi     # 0x2da03a
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
callq 0x1f8aab
leaq 0xe0c81(%rip), %rdx     # 0x2dc772
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1b42c3
leaq 0x70(%rsp), %rdi
movl $0x7ad4, %esi           # imm = 0x7AD4
callq 0x1f7a3c
leaq 0xde0e5(%rip), %rsi     # 0x2d9bfb
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1b4349
leaq 0x98(%rsp), %rdi
pushq $0x4
popq %rsi
leaq 0x50(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %r14, %rdx
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x98(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x98(%rsp), %rdi
callq 0x1f5c4c
leaq 0x10(%rsp), %rdi
callq 0x118648
leaq 0x70(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x118648
xorl %eax, %eax
movq 0x140(%rsp), %rcx
decq 0x3b8(%rcx)
addq $0x150, %rsp            # imm = 0x150
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1fbcab
jmp 0x1fbc07
jmp 0x1fbc19
jmp 0x1fbc28
jmp 0x1fbc37
jmp 0x1fbc46
jmp 0x1fbcab
jmp 0x1fbc07
jmp 0x1fbc19
jmp 0x1fbc07
jmp 0x1fbc07
jmp 0x1fbc28
jmp 0x1fbc19
jmp 0x1fbc19
jmp 0x1fbc37
jmp 0x1fbc28
jmp 0x1fbc28
jmp 0x1fbc46
jmp 0x1fbc37
jmp 0x1fbc37
jmp 0x1fbcab
jmp 0x1fbc46
jmp 0x1fbc46
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1fbc1c
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x118648
jmp 0x1fbc2b
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x118648
jmp 0x1fbc3a
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x1fbc49
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0x1fbc9c
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbc5e
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1fbc75
jmp 0x1fbc72
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x118648
jmp 0x1fbc86
jmp 0x1fbc83
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x118648
jmp 0x1fbc97
jmp 0x1fbc94
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x1fbcae
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
jmp 0x1fbcab
movq %rax, %rbx
movq 0x140(%rsp), %rax
decq 0x3b8(%rax)
movq %rbx, %rdi
callq 0x118360