// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::collector_helper<double>::collection_pass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, bool, bool, bool, exprtk::symbol_table<double>&)
static inline bool collection_pass(const std::string& expression_string,
                                            std::set<std::string>& symbol_set,
                                            const bool collect_variables,
                                            const bool collect_functions,
                                            const bool vector_pass,
                                            symbol_table_t& ext_symbol_table)
         {
            symbol_table_t symbol_table;
            expression_t   expression;
            parser_t       parser;

            resolve_as_vector vect_resolver;

            expression.register_symbol_table(symbol_table    );
            expression.register_symbol_table(ext_symbol_table);

            if (vector_pass)
               parser.enable_unknown_symbol_resolver(&vect_resolver);
            else
               parser.enable_unknown_symbol_resolver();

            if (collect_variables)
               parser.dec().collect_variables() = true;

            if (collect_functions)
               parser.dec().collect_functions() = true;

            bool pass_result = false;

            details::disable_type_checking(parser);

            if (parser.compile(expression_string, expression))
            {
               pass_result = true;

               std::deque<symbol_t> symb_list;
               parser.dec().symbols(symb_list);

               for (std::size_t i = 0; i < symb_list.size(); ++i)
               {
                  symbol_set.insert(symb_list[i].first);
               }
            }

            return pass_result;
         }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xab8, %rsp            # imm = 0xAB8
movq %r9, %r13
movl %r8d, %r12d
movl %ecx, %ebp
movl %edx, %r15d
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x20(%rsp), %rdi
callq 0x194918
leaq 0x40(%rsp), %rdi
pushq $0x7f
popq %rsi
callq 0x1949d4
leaq 0x190(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x194ae4
leaq 0x40(%rsp), %rdi
callq 0x1950fc
movl $0x1, 0x18(%rsp)
leaq 0x1f50a1(%rip), %rax    # 0x4b4958
movq %rax, 0x10(%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x194978
leaq 0x20(%rsp), %rdi
movq %r13, %rsi
callq 0x194978
leaq 0x570(%rsp), %rax
testb %r12b, %r12b
leaq 0x10(%rsp), %rcx
cmoveq %rax, %rcx
movb $0x1, -0x18(%rax)
movq %rcx, -0x8(%rax)
testb %r15b, %r15b
je 0x2bf901
movb $0x1, 0x448(%rsp)
testb %bpl, %bpl
je 0x2bf90e
movb $0x1, 0x449(%rsp)
leaq 0x190(%rsp), %rdi
movb $0x0, 0x3ad(%rdi)
leaq 0x20(%rsp), %rdx
movq %r14, %rsi
callq 0x195144
movl %eax, %ebp
testb %al, %al
je 0x2bf98b
leaq 0x40(%rsp), %rdi
callq 0x2be7a2
leaq 0x440(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2bcde4
leaq 0x50(%rsp), %r14
xorl %r15d, %r15d
leaq 0x40(%rsp), %r12
movq %r12, %rdi
callq 0x2bceb6
cmpq %rax, %r15
jae 0x2bf981
movq %r14, %rdi
movq %r15, %rsi
callq 0x2bfaa4
movq %rbx, %rdi
movq %rax, %rsi
callq 0x195b78
incq %r15
jmp 0x2bf959
leaq 0x40(%rsp), %rdi
callq 0x2bcf16
leaq 0x190(%rsp), %rdi
callq 0x19561a
leaq 0x20(%rsp), %rdi
callq 0x19577a
leaq 0x8(%rsp), %rdi
callq 0x195790
movl %ebp, %eax
addq $0xab8, %rsp            # imm = 0xAB8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2bf9e4
jmp 0x2bf9df
jmp 0x2bf9df
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x1950fc
jmp 0x2bf9fe
movq %rax, %rbx
jmp 0x2bf9fe
movq %rax, %rbx
jmp 0x2bfa08
movq %rax, %rbx
jmp 0x2bf9f1
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x2bcf16
leaq 0x190(%rsp), %rdi
callq 0x19561a
leaq 0x20(%rsp), %rdi
callq 0x19577a
leaq 0x8(%rsp), %rdi
callq 0x195790
movq %rbx, %rdi
callq 0x118360