// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_const_string()
inline expression_node_ptr parse_const_string()
      {
         const std::string   const_str = current_token().value;
         expression_node_ptr result    = expression_generator_(const_str);

         if (peek_token_is(token_t::e_lsqrbracket))
         {
            next_token();

            if (peek_token_is(token_t::e_rsqrbracket))
            {
               next_token();
               next_token();

               free_node(node_allocator_, result);

               return expression_generator_(T(const_str.size()));
            }

            range_t rp;

            if (!parse_range(rp))
            {
               free_node(node_allocator_, result);
               rp.free();

               return error_node();
            }

            free_node(node_allocator_, result);

            if (rp.n1_c.first && (rp.n1_c.second == std::numeric_limits<std::size_t>::max()))
            {
               rp.n1_c.second  = const_str.size() - 1;
               rp.cache.second = rp.n1_c.second;
            }

            if (
                 (rp.n0_c.first && (rp.n0_c.second >= const_str.size())) ||
                 (rp.n1_c.first && (rp.n1_c.second >= const_str.size()))
               )
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR122 - Overflow in range for string: '" + const_str + "'[" +
                  (rp.n0_c.first ? details::to_str(static_cast<int>(rp.n0_c.second)) : "?") + ":" +
                  (rp.n1_c.first ? details::to_str(static_cast<int>(rp.n1_c.second)) : "?") + "]",
                  exprtk_error_location));

               rp.free();

               return error_node();
            }

            result = expression_generator_(const_str,rp);

            if (result)
               rp.clear();
         }
         else
            next_token();

         return result;
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movq %rdi, %rbx
leaq 0x78(%rdi), %rsi
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x1182f0
leaq 0x220(%rbx), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x2a60ba
movq %rax, 0x8(%rsp)
movq 0x18(%rbx), %rax
leaq 0x28(%rbx), %r15
cmpq %rax, 0x8(%rbx)
cmoveq %r15, %rax
cmpl $0x5b, (%rax)
jne 0x1fd0c8
movq %rbx, %rdi
callq 0x1f6d68
movq 0x18(%rbx), %rax
cmpq %rax, 0x8(%rbx)
cmovneq %rax, %r15
cmpl $0x5d, (%r15)
jne 0x1fd0da
movq %rbx, %rdi
callq 0x1f6d68
movq %rbx, %rdi
callq 0x1f6d68
addq $0x290, %rbx            # imm = 0x290
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
movsd 0x18(%rsp), %xmm0
unpcklps 0xd0f78(%rip), %xmm0    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0xd0f80(%rip), %xmm0    # 0x2ce020
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
leaq 0x1c0(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %r14, %rdi
callq 0x1ad9fe
movq %rax, %rbx
jmp 0x1fd3b8
movq %rbx, %rdi
callq 0x1f6d68
movq 0x8(%rsp), %rbx
jmp 0x1fd3b8
xorl %eax, %eax
leaq 0x30(%rsp), %rsi
movb %al, (%rsi)
andq $0x0, 0x8(%rsi)
movb %al, 0x10(%rsi)
andq $0x0, 0x18(%rsi)
movb %al, 0x20(%rsi)
andq $0x0, 0x28(%rsi)
movb %al, 0x30(%rsi)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x38(%rsi)
andq $0x0, 0x48(%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2a60f4
leaq 0x290(%rbx), %rdi
testb %al, %al
je 0x1fd1c6
leaq 0x8(%rsp), %rsi
callq 0x1ad9c8
movb 0x60(%rsp), %cl
movq 0x68(%rsp), %rax
cmpq $-0x1, %rax
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x1fd155
movq 0x18(%rsp), %rax
decq %rax
movq %rax, 0x68(%rsp)
movq %rax, 0x78(%rsp)
cmpb $0x1, 0x50(%rsp)
jne 0x1fd168
movq 0x58(%rsp), %rdx
cmpq 0x18(%rsp), %rdx
jae 0x1fd173
testb %cl, %cl
je 0x1fd1d5
cmpq 0x18(%rsp), %rax
jb 0x1fd1d5
leaq 0xe0b7b(%rip), %rsi     # 0x2ddcf5
leaq 0x100(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1f8aab
leaq 0xe0b8b(%rip), %rdx     # 0x2ddd1e
leaq 0x120(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x1b42c3
movb 0x50(%rsp), %bpl
cmpb $0x1, %bpl
jne 0x1fd1ec
movl 0x58(%rsp), %esi
leaq 0xa0(%rsp), %rdi
callq 0x1f7a3c
jmp 0x1fd205
leaq 0x8(%rsp), %rsi
callq 0x1ad9c8
jmp 0x1fd3ac
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
callq 0x2b842c
jmp 0x1fd0c0
leaq 0xea803(%rip), %rsi     # 0x2e79f6
leaq 0xa0(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x127016
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x1b42e2
leaq 0xdc9dc(%rip), %rdx     # 0x2d9c05
leaq 0x160(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x1b42c3
movb 0x60(%rsp), %r14b
cmpb $0x1, %r14b
jne 0x1fd25c
movl 0x68(%rsp), %esi
leaq 0x80(%rsp), %rdi
callq 0x1f7a3c
jmp 0x1fd275
leaq 0xea793(%rip), %rsi     # 0x2e79f6
leaq 0x80(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x127016
leaq 0x180(%rsp), %rdi
leaq 0x160(%rsp), %rsi
leaq 0x80(%rsp), %rdx
callq 0x1b42e2
leaq 0xe6948(%rip), %rdx     # 0x2e3be1
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x1b42c3
leaq 0xc0(%rsp), %rdi
movl $0x6e16, %esi           # imm = 0x6E16
callq 0x1f7a3c
leaq 0xdc934(%rip), %rsi     # 0x2d9bfb
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x1c0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x1a0(%rsp), %rcx
leaq 0xe0(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x1c0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x1c0(%rsp), %rdi
callq 0x1f5c4c
leaq 0xe0(%rsp), %rdi
callq 0x118648
leaq 0xc0(%rsp), %rdi
callq 0x118648
leaq 0x1a0(%rsp), %rdi
callq 0x118648
leaq 0x180(%rsp), %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
testb %r14b, %r14b
leaq 0x160(%rsp), %rdi
callq 0x118648
leaq 0x140(%rsp), %rdi
callq 0x118648
leaq 0xa0(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
leaq 0x120(%rsp), %rdi
callq 0x118648
leaq 0x100(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x256004
xorl %ebx, %ebx
leaq 0x10(%rsp), %rdi
callq 0x118648
movq %rbx, %rax
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1fd3d5
movq %rax, %rbx
jmp 0x1fd44c
jmp 0x1fd3dc
movq %rax, %rbx
jmp 0x1fd476
movq %rax, %rbx
leaq 0x1c0(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1fd3f9
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x118648
jmp 0x1fd40b
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x118648
jmp 0x1fd41d
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0x118648
jmp 0x1fd42f
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
testb %r14b, %r14b
leaq 0x160(%rsp), %rdi
callq 0x118648
leaq 0x140(%rsp), %rdi
callq 0x118648
leaq 0xa0(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
leaq 0x120(%rsp), %rdi
callq 0x118648
leaq 0x100(%rsp), %rdi
callq 0x118648
jmp 0x1fd4af
movq %rax, %rbx
jmp 0x1fd43c
movq %rax, %rbx
jmp 0x1fd459
movq %rax, %rbx
jmp 0x1fd466
movq %rax, %rbx
jmp 0x1fd483
jmp 0x1fd4ac
jmp 0x1fd4ac
jmp 0x1fd4ac
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x118648
movq %rbx, %rdi
callq 0x118360
nop