// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_uninitialised_var_statement(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
inline expression_node_ptr parse_uninitialised_var_statement(const std::string& var_name)
      {
         if (
              !token_is(token_t::e_lcrlbracket) ||
              !token_is(token_t::e_rcrlbracket)
            )
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR200 - Expected a '{}' for uninitialised var definition",
               exprtk_error_location));

            return error_node();
         }
         else if (!token_is(token_t::e_eof,prsrhlpr_t::e_hold))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR201 - Expected ';' after uninitialised variable definition",
               exprtk_error_location));

            return error_node();
         }

         expression_node_ptr var_node = reinterpret_cast<expression_node_ptr>(0);

         scope_element& se = sem_.get_element(var_name);

         if (se.name == var_name)
         {
            if (se.active)
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR202 - Illegal redefinition of local variable: '" + var_name + "'",
                  exprtk_error_location));

               return error_node();
            }
            else if (scope_element::e_variable == se.type)
            {
               var_node  = se.var_node;
               se.active = true;
               se.ref_count++;
            }
         }

         if (0 == var_node)
         {
            const std::size_t predicted_total_lclsymb_size = sizeof(T) + sem_.total_local_symb_size_bytes();

            if (predicted_total_lclsymb_size > settings().max_total_local_symbol_size_bytes())
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR203 - Adding variable '" + var_name + "' "
                  "will exceed max total local symbol size of: " + details::to_str(settings().max_total_local_symbol_size_bytes()) + " bytes, "
                  "current total size: " + details::to_str(sem_.total_local_symb_size_bytes()) + " bytes",
                  exprtk_error_location));

               return error_node();
            }

            scope_element nse;
            nse.name      = var_name;
            nse.active    = true;
            nse.ref_count = 1;
            nse.type      = scope_element::e_variable;
            nse.depth     = state_.scope_depth;
            nse.ip_index  = sem_.next_ip_index();
            nse.data      = new T(T(0));
            nse.var_node  = node_allocator_.allocate<variable_node_t>(*reinterpret_cast<T*>(nse.data));

            if (!sem_.add_element(nse))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR204 - Failed to add new local variable '" + var_name + "' to SEM",
                  exprtk_error_location));

               sem_.free_element(nse);

               return error_node();
            }

            assert(sem_.total_local_symb_size_bytes() <= settings().max_total_local_symbol_size_bytes());

            exprtk_debug(("parse_uninitialised_var_statement() - INFO - Added new local variable: %s\n",
                          nse.name.c_str()));
         }

         lodge_symbol(var_name, e_st_local_variable);

         state_.activate_side_effect("parse_uninitialised_var_statement()");

         return expression_generator_(T(0));
      }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
movq %rsi, %r15
movq %rdi, %rbx
leaq 0xf0(%rsp), %rsi
movl $0x7b, (%rsi)
pushq $0x1
popq %rdx
callq 0x1fae6e
testb %al, %al
je 0x29d20f
leaq 0x60(%rsp), %rsi
movl $0x7d, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x29d20f
leaq 0xf0(%rsp), %rsi
movl $0x6, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
je 0x29d2b5
leaq 0x530(%rbx), %r14
pushq $-0x1
popq %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x28ca1a
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0x253fc9
testb %al, %al
je 0x29d345
cmpb $0x1, 0x4c(%r12)
jne 0x29d326
leaq 0x3f3d7(%rip), %rsi     # 0x2dc539
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq %r15, %rdx
callq 0x1f8aab
leaq 0x3f5f9(%rip), %rdx     # 0x2dc772
leaq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x1b42c3
leaq 0x40(%rsp), %rdi
movl $0x760f, %esi           # imm = 0x760F
callq 0x1f7a3c
leaq 0x3ca5f(%rip), %rsi     # 0x2d9bfb
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x60(%rsp), %rcx
movq %rsp, %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
movq %rsp, %rdi
callq 0x118648
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0x60(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
jmp 0x29d29f
leaq 0x3f2ab(%rip), %rsi     # 0x2dc4c1
leaq 0x60(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
movl $0x75f4, %esi           # imm = 0x75F4
callq 0x1f7a3c
leaq 0x3c9c2(%rip), %rsi     # 0x2d9bfb
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x60(%rsp), %rcx
leaq 0x20(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
leaq 0x20(%rsp), %rdi
callq 0x118648
movq %rsp, %rdi
callq 0x118648
leaq 0x60(%rsp), %rdi
callq 0x118648
xorl %eax, %eax
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x3f23f(%rip), %rsi     # 0x2dc4fb
leaq 0x60(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
movl $0x75fe, %esi           # imm = 0x75FE
callq 0x1f7a3c
leaq 0x3c91c(%rip), %rsi     # 0x2d9bfb
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x60(%rsp), %rcx
leaq 0x20(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
jmp 0x29d27b
cmpl $0x2, 0x48(%r12)
jne 0x29d345
movb $0x1, 0x4c(%r12)
incq 0x38(%r12)
cmpq $0x0, 0x58(%r12)
jne 0x29d597
movq 0x5c8(%rbx), %rax
addq $0x8, %rax
cmpq 0x210(%rbx), %rax
jbe 0x29d4f6
leaq 0x3f208(%rip), %rsi     # 0x2dc56c
leaq 0x218(%rsp), %r14
movq %r14, %rdi
movq %r15, %rdx
callq 0x1f8aab
leaq 0x3ebfe(%rip), %rdx     # 0x2dbf7c
leaq 0xd0(%rsp), %rdi
movq %r14, %rsi
callq 0x1b42c3
movq 0x210(%rbx), %rsi
leaq 0x1f8(%rsp), %rdi
callq 0x1f7603
leaq 0x40(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x1b42e2
leaq 0x3ebe8(%rip), %rdx     # 0x2dbfab
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
callq 0x1b42c3
movq 0x5c8(%rbx), %rsi
leaq 0x1d8(%rsp), %rdi
callq 0x1f7603
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x1b42e2
leaq 0x3c8a3(%rip), %rdx     # 0x2d9ca3
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1b42c3
leaq 0x198(%rsp), %rdi
movl $0x7627, %esi           # imm = 0x7627
callq 0x1f7a3c
leaq 0x3c7d3(%rip), %rsi     # 0x2d9bfb
leaq 0x1b8(%rsp), %rdi
leaq 0x198(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x60(%rsp), %rcx
leaq 0x1b8(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
leaq 0x1b8(%rsp), %rdi
callq 0x118648
leaq 0x198(%rsp), %rdi
callq 0x118648
leaq 0x60(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
leaq 0x1d8(%rsp), %rdi
callq 0x118648
movq %rsp, %rdi
callq 0x118648
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0x1f8(%rsp), %rdi
callq 0x118648
leaq 0xd0(%rsp), %rdi
callq 0x118648
leaq 0x218(%rsp), %rdi
jmp 0x29d29f
leaq 0x60(%rsp), %r12
movq %r12, %rdi
callq 0x19ec34
movq %r12, %rdi
movq %r15, %rsi
callq 0x1185c0
movb $0x1, 0xac(%rsp)
movq $0x1, 0x98(%rsp)
movl $0x2, 0xa8(%rsp)
movq 0x3b0(%rbx), %rax
movq %rax, 0x90(%rsp)
movq 0x5c0(%rbx), %rax
incq %rax
movq %rax, 0x5c0(%rbx)
movq %rax, 0xa0(%rsp)
pushq $0x8
popq %rdi
callq 0x118100
andq $0x0, (%rax)
movq %rax, 0xb0(%rsp)
leaq 0x290(%rbx), %rdi
movq %rax, %rsi
callq 0x28cb18
leaq 0x60(%rsp), %rsi
movq %rax, 0x58(%rsi)
movq %r14, %rdi
callq 0x28cb54
testb %al, %al
je 0x29d602
leaq 0x60(%rsp), %rdi
callq 0x118648
leaq 0x2b0(%rbx), %rdi
pushq $0x6
popq %rdx
movq %r15, %rsi
callq 0x2089d0
leaq 0x3f003(%rip), %rsi     # 0x2dc5b3
leaq 0xf0(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x127016
cmpb $0x0, 0x3ac(%rbx)
jne 0x29d5d2
movb $0x1, 0x3ac(%rbx)
leaq 0xf0(%rsp), %r14
movq %r14, %rdi
callq 0x118648
addq $0x220, %rbx            # imm = 0x220
andq $0x0, (%r14)
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9fe
jmp 0x29d2a6
leaq 0x3ef7e(%rip), %rsi     # 0x2dc587
movq %rsp, %rdi
movq %r15, %rdx
callq 0x1f8aab
leaq 0x3e168(%rip), %rdx     # 0x2db783
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x1b42c3
leaq 0xd0(%rsp), %rdi
movl $0x763c, %esi           # imm = 0x763C
callq 0x1f7a3c
leaq 0x3c5ba(%rip), %rsi     # 0x2d9bfb
leaq 0x40(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x20(%rsp), %rcx
leaq 0x40(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0xd0(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
movq %rsp, %rdi
callq 0x118648
leaq 0x60(%rsp), %rsi
movq %r14, %rdi
callq 0x1f7500
jmp 0x29d29a
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
jmp 0x29d6e5
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x118648
jmp 0x29d6f4
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x118648
jmp 0x29d833
jmp 0x29d830
jmp 0x29d83f
jmp 0x29d84c
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
jmp 0x29d72a
movq %rax, %rbx
movq %rsp, %rdi
callq 0x118648
jmp 0x29d737
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x118648
jmp 0x29d746
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x118648
jmp 0x29d755
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
jmp 0x29d854
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
jmp 0x29d774
movq %rax, %rbx
leaq 0x1b8(%rsp), %rdi
callq 0x118648
jmp 0x29d786
movq %rax, %rbx
leaq 0x198(%rsp), %rdi
callq 0x118648
jmp 0x29d798
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x118648
jmp 0x29d7a7
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x118648
leaq 0x1d8(%rsp), %rdi
callq 0x118648
movq %rsp, %rdi
callq 0x118648
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0x1f8(%rsp), %rdi
callq 0x118648
leaq 0xd0(%rsp), %rdi
callq 0x118648
leaq 0x218(%rsp), %rdi
jmp 0x29d854
movq %rax, %rbx
jmp 0x29d7b1
movq %rax, %rbx
jmp 0x29d7be
movq %rax, %rbx
jmp 0x29d7c6
movq %rax, %rbx
jmp 0x29d7d0
movq %rax, %rbx
jmp 0x29d7dd
movq %rax, %rbx
jmp 0x29d7ea
jmp 0x29d81e
jmp 0x29d830
jmp 0x29d83f
jmp 0x29d84c
jmp 0x29d861
jmp 0x29d84c
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x1f5c4c
jmp 0x29d833
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x118648
jmp 0x29d842
movq %rax, %rbx
movq %rsp, %rdi
callq 0x118648
jmp 0x29d84f
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x118648
movq %rbx, %rdi
callq 0x118360
movq %rax, %rbx
jmp 0x29d859