// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_multi_sequence(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
inline expression_node_ptr parse_multi_sequence(const std::string& source = "",
                                                      const bool enforce_crlbrackets = false)
      {
         token_t::token_type open_bracket  = token_t::e_lcrlbracket;
         token_t::token_type close_bracket = token_t::e_rcrlbracket;
         token_t::token_type separator     = token_t::e_eof;

         if (!token_is(open_bracket))
         {
            if (!enforce_crlbrackets && token_is(token_t::e_lbracket))
            {
               open_bracket  = token_t::e_lbracket;
               close_bracket = token_t::e_rbracket;
               separator     = token_t::e_comma;
            }
            else
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR111 - Expected '" + token_t::to_str(open_bracket) + "' for call to multi-sequence" +
                  ((!source.empty()) ? std::string(" section of " + source): ""),
                  exprtk_error_location));

               return error_node();
            }
         }
         else if (token_is(close_bracket))
         {
            return node_allocator_.allocate<details::null_node<T> >();
         }

         std::vector<expression_node_ptr> arg_list;
         std::vector<bool> side_effect_list;

         scoped_vec_delete<expression_node_t> svd((*this), arg_list);

         scope_handler sh(*this);

         scoped_bool_or_restorer sbr(state_.side_effect_present);

         for ( ; ; )
         {
            state_.side_effect_present = false;

            expression_node_ptr arg = parse_expression();

            if (0 == arg)
               return error_node();
            else
            {
               arg_list.push_back(arg);
               side_effect_list.push_back(state_.side_effect_present);
            }

            if (token_is(close_bracket))
               break;

            const bool is_next_close = peek_token_is(close_bracket);

            if (!token_is(separator) && is_next_close)
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR112 - Expected '" + lexer::token::seperator_to_str(separator) + "' for call to multi-sequence section of " + source,
                  exprtk_error_location));

               return error_node();
            }

            if (token_is(close_bracket))
               break;
         }

         expression_node_ptr result = simplify(arg_list, side_effect_list, source.empty());

         svd.delete_ptr = (0 == result);
         return result;
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movl %edx, %ebp
movq %rsi, %r13
movq %rdi, %rbx
leaq 0x14(%rsp), %rsi
movl $0x7b, (%rsi)
movl $0x7d, 0xc(%rsp)
movl $0x6, 0x10(%rsp)
pushq $0x1
popq %rdx
callq 0x1fae6e
testb %al, %al
je 0x206f37
leaq 0xc(%rsp), %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x206f79
addq $0x290, %rbx            # imm = 0x290
movq %rbx, %rdi
callq 0x208182
movq %rax, %r14
jmp 0x207362
testb %bpl, %bpl
jne 0x2070a6
leaq 0x140(%rsp), %rsi
movl $0x28, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x2070a6
movl $0x28, 0x14(%rsp)
movl $0x29, 0xc(%rsp)
movl $0x2c, 0x10(%rsp)
leaq 0x40(%rsp), %rax
andq $0x0, 0x10(%rax)
leaq 0xf8(%rsp), %rcx
andq $0x0, (%rcx)
andl $0x0, 0x8(%rcx)
andq $0x0, 0x10(%rcx)
andl $0x0, 0x18(%rcx)
xorps %xmm0, %xmm0
andq $0x0, 0x20(%rcx)
movaps %xmm0, (%rax)
movb $0x1, 0x60(%rsp)
movq %rbx, 0x68(%rsp)
movq %rax, 0x70(%rsp)
movq %rbx, 0x18(%rsp)
incq 0x3b0(%rbx)
movb 0x3ac(%rbx), %al
movb %al, 0xb(%rsp)
leaq 0x28(%rbx), %rbp
leaq 0xc(%rsp), %r12
movb $0x0, 0x3ac(%rbx)
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0x58(%rsp)
testq %rax, %rax
je 0x20731c
leaq 0x40(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1fadc0
movzbl 0x3ac(%rbx), %esi
leaq 0xf8(%rsp), %rdi
callq 0x1fadde
movq %rbx, %rdi
movq %r12, %rsi
pushq $0x1
popq %rdx
callq 0x1fae6e
testb %al, %al
jne 0x207077
movq %r13, %r14
movq 0x18(%rbx), %rax
cmpq %rax, 0x8(%rbx)
cmoveq %rbp, %rax
movl (%rax), %r13d
movl 0xc(%rsp), %r15d
movq %rbx, %rdi
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1fae6e
cmpl %r15d, %r13d
setne %cl
orb %cl, %al
je 0x20720c
movq %rbx, %rdi
movq %r12, %rsi
pushq $0x1
popq %rdx
callq 0x1fae6e
testb %al, %al
movq %r14, %r13
je 0x206fd5
xorl %ecx, %ecx
cmpq $0x0, 0x8(%r13)
sete %cl
leaq 0x40(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
movq %rbx, %rdi
callq 0x1faec2
movq %rax, %r14
testq %rax, %rax
sete 0x60(%rsp)
jmp 0x20731f
movl 0x14(%rsp), %esi
leaq 0x120(%rsp), %r14
movq %r14, %rdi
callq 0x207f72
leaq 0xd31db(%rip), %rsi     # 0x2da29c
leaq 0xb8(%rsp), %rdi
movq %r14, %rdx
callq 0x1b4349
leaq 0xd31d8(%rip), %rdx     # 0x2da2b0
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1b42c3
movq 0x8(%r13), %r15
testq %r15, %r15
je 0x20710c
leaq 0xd3200(%rip), %rsi     # 0x2da2fd
leaq 0x20(%rsp), %rdi
movq %r13, %rdx
callq 0x1f8aab
jmp 0x207122
leaq 0xe17f6(%rip), %rsi     # 0x2e8909
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x127016
leaq 0xf8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0x1b42e2
leaq 0x78(%rsp), %rdi
movl $0x6c82, %esi           # imm = 0x6C82
callq 0x1f7a3c
leaq 0xd2aa9(%rip), %rsi     # 0x2d9bfb
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x140(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0xf8(%rsp), %rcx
leaq 0x98(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x140(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x140(%rsp), %rdi
callq 0x1f5c4c
leaq 0x98(%rsp), %rdi
callq 0x118648
leaq 0x78(%rsp), %rdi
callq 0x118648
leaq 0xf8(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
testq %r15, %r15
leaq 0xd8(%rsp), %rdi
callq 0x118648
leaq 0xb8(%rsp), %rdi
callq 0x118648
leaq 0x120(%rsp), %rdi
callq 0x118648
xorl %r14d, %r14d
jmp 0x207362
movl 0x10(%rsp), %esi
leaq 0x20(%rsp), %rdi
callq 0x2081aa
leaq 0xd30ac(%rip), %rsi     # 0x2da2cd
leaq 0x120(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x1b4349
leaq 0xd30a7(%rip), %rdx     # 0x2da2e1
leaq 0xb8(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x1b42c3
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
movq %r14, %rdx
callq 0x1f8a54
leaq 0x78(%rsp), %rdi
movl $0x6cae, %esi           # imm = 0x6CAE
callq 0x1f7a3c
leaq 0xd297e(%rip), %rsi     # 0x2d9bfb
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x140(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0xd8(%rsp), %rcx
leaq 0x98(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0x140(%rsp), %rsi
callq 0x1f76ce
leaq 0x140(%rsp), %rdi
callq 0x1f5c4c
leaq 0x98(%rsp), %rdi
callq 0x118648
leaq 0x78(%rsp), %rdi
callq 0x118648
leaq 0xd8(%rsp), %rdi
callq 0x118648
leaq 0xb8(%rsp), %rdi
callq 0x118648
leaq 0x120(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
xorl %r14d, %r14d
cmpb $0x0, 0x3ac(%rbx)
movzbl 0xb(%rsp), %eax
pushq $0x1
popq %rcx
cmovnel %ecx, %eax
movb %al, 0x3ac(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x208208
leaq 0x60(%rsp), %rdi
callq 0x1fb1b8
leaq 0xf8(%rsp), %rdi
callq 0x1fb234
leaq 0x40(%rsp), %rdi
callq 0x29e264
movq %r14, %rax
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x140(%rsp), %rdi
callq 0x1f5c4c
jmp 0x20738c
movq %rax, %r14
leaq 0x98(%rsp), %rdi
callq 0x118648
jmp 0x20739e
movq %rax, %r14
leaq 0x78(%rsp), %rdi
callq 0x118648
jmp 0x2073ad
movq %rax, %r14
leaq 0xd8(%rsp), %rdi
callq 0x118648
jmp 0x2073bf
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0x118648
leaq 0x120(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
jmp 0x207490
movq %rax, %r14
jmp 0x2073cc
movq %rax, %r14
jmp 0x2073d9
jmp 0x20748d
jmp 0x2073fe
jmp 0x20748d
movq %rax, %r14
jmp 0x207458
movq %rax, %r14
leaq 0x140(%rsp), %rdi
callq 0x1f5c4c
jmp 0x207418
movq %rax, %r14
leaq 0x98(%rsp), %rdi
callq 0x118648
jmp 0x20742a
movq %rax, %r14
leaq 0x78(%rsp), %rdi
callq 0x118648
jmp 0x207439
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x118648
jmp 0x20744b
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x118648
testq %r15, %r15
leaq 0xd8(%rsp), %rdi
callq 0x118648
leaq 0xb8(%rsp), %rdi
callq 0x118648
leaq 0x120(%rsp), %rdi
callq 0x118648
jmp 0x2074d3
movq %rax, %r14
jmp 0x207465
movq %rax, %r14
jmp 0x207472
jmp 0x20748d
movq %rax, %r14
cmpb $0x0, 0x3ac(%rbx)
movzbl 0xb(%rsp), %eax
pushq $0x1
popq %rcx
cmovnel %ecx, %eax
movb %al, 0x3ac(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x208208
leaq 0x60(%rsp), %rdi
callq 0x1fb1b8
leaq 0xf8(%rsp), %rdi
callq 0x1fb234
leaq 0x40(%rsp), %rdi
callq 0x29e264
movq %r14, %rdi
callq 0x118360
nop