// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::expression_generator<double>::lodge_assignment(exprtk::parser<double>::symbol_type, exprtk::details::expression_node<double>*)
void lodge_assignment(symbol_type cst, expression_node_ptr node)
         {
            parser_->state_.activate_side_effect("lodge_assignment()");

            if (!parser_->dec_.collect_assignments())
               return;

            std::string symbol_name;

            switch (cst)
            {
               case e_st_variable : symbol_name = parser_->symtab_store_
                                                     .get_variable_name(node);
                                    break;

               #ifndef exprtk_disable_string_capabilities
               case e_st_string   : symbol_name = parser_->symtab_store_
                                                     .get_stringvar_name(node);
                                    break;
               #endif

               case e_st_vector   : {
                                       typedef details::vector_holder<T> vector_holder_t;

                                       vector_holder_t& vh = static_cast<vector_node_t*>(node)->vec_holder();

                                       symbol_name = parser_->symtab_store_.get_vector_name(&vh);
                                    }
                                    break;

               case e_st_vecelem  : {
                                       typedef details::vector_holder<T> vector_holder_t;

                                       vector_holder_t& vh = static_cast<vector_elem_node_t*>(node)->vec_holder();

                                       symbol_name = parser_->symtab_store_.get_vector_name(&vh);

                                       cst = e_st_vector;
                                    }
                                    break;

               default            : return;
            }

            if (!symbol_name.empty())
            {
               parser_->dec_.add_assignment(symbol_name,cst);
            }
         }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %r14
movl %esi, %r15d
movq %rdi, %rbx
movq %rdx, 0x8(%rsp)
movq 0x68(%rdi), %r12
leaq 0xb0969(%rip), %rsi     # 0x2da8ef
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x127016
cmpb $0x0, 0x3ac(%r12)
jne 0x229fa9
movb $0x1, 0x3ac(%r12)
leaq 0x10(%rsp), %rdi
callq 0x118648
movq 0x68(%rbx), %rsi
cmpb $0x1, 0x2ba(%rsi)
jne 0x22a0db
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
decl %r15d
cmpl $0x3, %r15d
ja 0x22a0d1
leaq 0xa6f53(%rip), %rax     # 0x2d0f3c
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
addq $0x298, %rsi            # imm = 0x298
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x22b9e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %r14
movq %r14, %rsi
callq 0x1182d0
movq %r14, %rdi
callq 0x118648
pushq $0x1
jmp 0x22a0b5
movq 0x28(%r14), %rax
addq $0x298, %rsi            # imm = 0x298
leaq 0x50(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rdi
callq 0x22ba1a
jmp 0x22a099
addq $0x298, %rsi            # imm = 0x298
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x22b9fc
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %r14
movq %r14, %rsi
callq 0x1182d0
movq %r14, %rdi
callq 0x118648
pushq $0x4
jmp 0x22a0b5
movq 0x28(%r14), %rax
addq $0x298, %rsi            # imm = 0x298
leaq 0x50(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rdi
callq 0x22ba1a
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %r14
movq %r14, %rsi
callq 0x1182d0
movq %r14, %rdi
callq 0x118648
pushq $0x2
popq %rdx
cmpq $0x0, 0x18(%rsp)
je 0x22a0d1
movl $0x2b0, %edi            # imm = 0x2B0
addq 0x68(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x22ba38
leaq 0x10(%rsp), %rdi
callq 0x118648
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x22a0ef
jmp 0x22a0ef
jmp 0x22a0ef
jmp 0x22a0ef
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x118648
movq %rbx, %rdi
callq 0x118360