// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_vector_index(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
inline expression_node_ptr parse_vector_index(const std::string& vector_name = "")
      {
         expression_node_ptr index_expr = error_node();

         if (0 == (index_expr = parse_expression()))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR123 - Failed to parse index for vector: '" + vector_name + "'",
               exprtk_error_location));

            return error_node();
         }
         else if (!token_is(token_t::e_rsqrbracket))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR124 - Expected ']' for index of vector: '" + vector_name + "'",
               exprtk_error_location));

            free_node(node_allocator_, index_expr);

            return error_node();
         }

         return index_expr;
      }

// Assembly:
subq $0x2b8, %rsp            # imm = 0x2B8
movq %rdi, 0x2a8(%rsp)
movq %rsi, 0x2a0(%rsp)
movq 0x2a8(%rsp), %rax
movq %rax, 0x28(%rsp)
callq 0x2821f0
movq 0x28(%rsp), %rdi
movq %rax, 0x298(%rsp)
xorl %esi, %esi
callq 0x379940
movq %rax, %rcx
movq %rcx, 0x298(%rsp)
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x5175a5
movq 0x28(%rsp), %rdi
callq 0x373e90
movq %rax, 0x18(%rsp)
movq 0x2a0(%rsp), %rdx
leaq 0x92adc(%rip), %rsi     # 0x5a9edd
leaq 0x1b0(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x3784f0
movq 0x20(%rsp), %rsi
leaq 0x92692(%rip), %rdx     # 0x5a9ab1
leaq 0x1d0(%rsp), %rdi
callq 0x29dc30
jmp 0x51742e
leaq 0x160(%rsp), %rdi
movl $0x6e38, %esi           # imm = 0x6E38
callq 0x371f20
jmp 0x517442
leaq 0x8faca(%rip), %rsi     # 0x5a6f13
leaq 0x180(%rsp), %rdi
leaq 0x160(%rsp), %rdx
callq 0x29dd70
jmp 0x517460
movq 0x18(%rsp), %rdx
leaq 0x1f0(%rsp), %rdi
movl $0x1, %esi
leaq 0x1d0(%rsp), %rcx
leaq 0x180(%rsp), %r8
callq 0x3741e0
jmp 0x517489
movq 0x28(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
callq 0x371e40
jmp 0x51749d
leaq 0x1f0(%rsp), %rdi
callq 0x371330
leaq 0x180(%rsp), %rdi
callq 0x11b838
leaq 0x160(%rsp), %rdi
callq 0x11b838
leaq 0x1d0(%rsp), %rdi
callq 0x11b838
leaq 0x1b0(%rsp), %rdi
callq 0x11b838
callq 0x2821f0
movq %rax, 0x2b0(%rsp)
jmp 0x51779b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x517593
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x517586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x517579
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x51756c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
leaq 0x1f0(%rsp), %rdi
callq 0x371330
leaq 0x180(%rsp), %rdi
callq 0x11b838
leaq 0x160(%rsp), %rdi
callq 0x11b838
leaq 0x1d0(%rsp), %rdi
callq 0x11b838
leaq 0x1b0(%rsp), %rdi
callq 0x11b838
jmp 0x5177ab
movq 0x28(%rsp), %rdi
movl $0x5d, 0x15c(%rsp)
leaq 0x15c(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
xorb $-0x1, %al
testb $0x1, %al
jne 0x5175d2
jmp 0x517789
movq 0x28(%rsp), %rdi
callq 0x373e90
movq %rax, 0x8(%rsp)
movq 0x2a0(%rsp), %rdx
leaq 0x9291a(%rip), %rsi     # 0x5a9f0a
leaq 0x70(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x3784f0
movq 0x10(%rsp), %rsi
leaq 0x924a6(%rip), %rdx     # 0x5a9ab1
leaq 0x90(%rsp), %rdi
callq 0x29dc30
jmp 0x51761a
leaq 0x30(%rsp), %rdi
movl $0x6e42, %esi           # imm = 0x6E42
callq 0x371f20
jmp 0x51762b
leaq 0x8f8e1(%rip), %rsi     # 0x5a6f13
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x29dd70
jmp 0x517643
movq 0x8(%rsp), %rdx
leaq 0xb0(%rsp), %rdi
movl $0x1, %esi
leaq 0x90(%rsp), %rcx
leaq 0x50(%rsp), %r8
callq 0x3741e0
jmp 0x517669
movq 0x28(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x371e40
jmp 0x51767d
leaq 0xb0(%rsp), %rdi
callq 0x371330
leaq 0x50(%rsp), %rdi
callq 0x11b838
leaq 0x30(%rsp), %rdi
callq 0x11b838
leaq 0x90(%rsp), %rdi
callq 0x11b838
leaq 0x70(%rsp), %rdi
callq 0x11b838
movq 0x28(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x298(%rsp), %rsi
callq 0x284bd0
callq 0x2821f0
movq %rax, 0x2b0(%rsp)
jmp 0x51779b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x51777d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x517770
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x517766
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
jmp 0x51775c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a8(%rsp)
movl %eax, 0x1a4(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x371330
leaq 0x50(%rsp), %rdi
callq 0x11b838
leaq 0x30(%rsp), %rdi
callq 0x11b838
leaq 0x90(%rsp), %rdi
callq 0x11b838
leaq 0x70(%rsp), %rdi
callq 0x11b838
jmp 0x5177ab
jmp 0x51778b
movq 0x298(%rsp), %rax
movq %rax, 0x2b0(%rsp)
movq 0x2b0(%rsp), %rax
addq $0x2b8, %rsp            # imm = 0x2B8
retq
movq 0x1a8(%rsp), %rdi
callq 0x11b4e0
nopl (%rax,%rax)