// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::register_local_vars(exprtk::expression<double>&)
inline void register_local_vars(expression<T>& e)
      {
         for (std::size_t i = 0; i < sem_.size(); ++i)
         {
            scope_element& se = sem_.get_element(i);

            exprtk_debug(("register_local_vars() - se[%s]\n", se.name.c_str()));

            if (
                 (scope_element::e_variable == se.type) ||
                 (scope_element::e_literal  == se.type) ||
                 (scope_element::e_vecelem  == se.type)
               )
            {
               if (se.var_node)
               {
                  e.register_local_var(se.var_node);
               }

               if (se.data)
               {
                  e.register_local_data(se.data, 1, 0);
               }
            }
            else if (scope_element::e_vector == se.type)
            {
               if (se.vec_node)
               {
                  e.register_local_var(se.vec_node);
               }

               if (se.data)
               {
                  e.register_local_data(se.data, se.size, 1);
               }
            }
            #ifndef exprtk_disable_string_capabilities
            else if (scope_element::e_string == se.type)
            {
               if (se.str_node)
               {
                  e.register_local_var(se.str_node);
               }

               if (se.data)
               {
                  e.register_local_data(se.data, se.size, 2);
               }
            }
            #endif

            se.var_node  = 0;
            se.vec_node  = 0;
            #ifndef exprtk_disable_string_capabilities
            se.str_node  = 0;
            #endif
            se.data      = 0;
            se.ref_count = 0;
            se.active    = false;
         }
      }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x20(%rsp)
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
addq $0x530, %rdi            # imm = 0x530
callq 0x55bd70
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x374133
movq 0x8(%rsp), %rdi
addq $0x530, %rdi            # imm = 0x530
leaq 0x20(%rsp), %rsi
callq 0x55bd90
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rcx
movl $0x2, %eax
cmpl 0x48(%rcx), %eax
je 0x373fc3
movq 0x18(%rsp), %rcx
movl $0x1, %eax
cmpl 0x48(%rcx), %eax
je 0x373fc3
movq 0x18(%rsp), %rcx
movl $0x4, %eax
cmpl 0x48(%rcx), %eax
jne 0x374018
movq 0x18(%rsp), %rax
cmpq $0x0, 0x58(%rax)
je 0x373fe2
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x58(%rax), %rsi
callq 0x55be00
movq 0x18(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x374013
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rsi
movq $0x1, 0x10(%rsp)
leaq 0x10(%rsp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x55be70
jmp 0x3740d6
movq 0x18(%rsp), %rcx
movl $0x3, %eax
cmpl 0x48(%rcx), %eax
jne 0x374075
movq 0x18(%rsp), %rax
cmpq $0x0, 0x60(%rax)
je 0x374046
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x60(%rax), %rsi
callq 0x55bf40
movq 0x18(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x374073
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rsi
movq 0x18(%rsp), %rdx
addq $0x20, %rdx
movl $0x1, %ecx
callq 0x55be70
jmp 0x3740d4
movq 0x18(%rsp), %rcx
movl $0x5, %eax
cmpl 0x48(%rcx), %eax
jne 0x3740d2
movq 0x18(%rsp), %rax
cmpq $0x0, 0x68(%rax)
je 0x3740a3
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x68(%rax), %rsi
callq 0x55be00
movq 0x18(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x3740d0
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rsi
movq 0x18(%rsp), %rdx
addq $0x20, %rdx
movl $0x2, %ecx
callq 0x55be70
jmp 0x3740d2
jmp 0x3740d4
jmp 0x3740d6
movq 0x18(%rsp), %rax
movq $0x0, 0x58(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x60(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x68(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0x18(%rsp), %rax
movb $0x0, 0x4c(%rax)
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x373f51
addq $0x38, %rsp
retq
nopl (%rax,%rax)