// File: ArashPartow[P]exprtk-extras/exprtk_repl.cpp
// Function: expression_processor<double>::list_symbols()
void list_symbols()
   {
      std::deque<std::pair<std::string,T> > variable_list;
      symbol_table_.get_variable_list(variable_list);

      std::size_t max_varname_length = 0;

      for (std::size_t i = 0; i < variable_list.size(); ++i)
      {
         max_varname_length = std::max(max_varname_length,variable_list[i].first.size());
      }

      for (std::size_t i = 0; i < variable_list.size(); ++i)
      {
         int pad_length = 0;

         if (max_varname_length > variable_list[i].first.size())
         {
            pad_length = static_cast<int>(max_varname_length - variable_list[i].first.size());
         }

         printf("%02d %s%*.*s %25.10f\n",
                static_cast<unsigned int>(i),
                variable_list[i].first.c_str(),
                pad_length,
                pad_length,
                std::string(max_varname_length,' ').c_str(),
                variable_list[i].second);
      }
   }

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rdi, 0x110(%rsp)
movq 0x110(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0xc0(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x47f750
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
addq $0x10, %rdi
callq 0x47f760
jmp 0x47ee13
movq $0x0, 0xa8(%rsp)
movq $0x0, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x47f7c0
movq %rax, %rcx
movq 0x48(%rsp), %rax
cmpq %rcx, %rax
jae 0x47eec9
movq 0xa0(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x47f7e0
movq %rax, %rdi
callq 0x1192a0
movq %rax, 0x98(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x13c330
movq (%rax), %rax
movq %rax, 0xa8(%rsp)
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x47ee2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x47f0bc
movq $0x0, 0x90(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x47f7c0
movq %rax, %rcx
movq 0x40(%rsp), %rax
cmpq %rcx, %rax
jae 0x47f0a7
movl $0x0, 0x8c(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x90(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x47f7e0
movq %rax, %rdi
callq 0x1192a0
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
jbe 0x47ef7e
movq 0xa8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x90(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x47f7e0
movq %rax, %rdi
callq 0x1192a0
movq %rax, %rcx
movq 0x30(%rsp), %rax
subq %rcx, %rax
movl %eax, 0x8c(%rsp)
movq 0x90(%rsp), %rsi
movl %esi, %eax
movl %eax, 0xc(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x47f7e0
movq %rax, %rdi
callq 0x119120
movq %rax, 0x10(%rsp)
movl 0x8c(%rsp), %eax
movl %eax, 0x18(%rsp)
movl %eax, 0x1c(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x67(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x1197d0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rcx
leaq 0x68(%rsp), %rdi
movl $0x20, %edx
callq 0x47f810
jmp 0x47efec
leaq 0x68(%rsp), %rdi
callq 0x119120
movq %rax, (%rsp)
movq 0x90(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x47f7e0
movl 0xc(%rsp), %esi
movq 0x10(%rsp), %rdx
movl 0x1c(%rsp), %ecx
movl 0x18(%rsp), %r8d
movq (%rsp), %r9
movsd 0x20(%rax), %xmm0
leaq 0x12693(%rip), %rdi     # 0x4916c4
movb $0x1, %al
callq 0x1190b0
jmp 0x47f03a
leaq 0x68(%rsp), %rdi
callq 0x119968
leaq 0x67(%rsp), %rdi
callq 0x119950
movq 0x90(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x90(%rsp)
jmp 0x47eed5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x47f09b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x119968
leaq 0x67(%rsp), %rdi
callq 0x119950
jmp 0x47f0bc
leaq 0xc0(%rsp), %rdi
callq 0x47f890
addq $0x118, %rsp            # imm = 0x118
retq
leaq 0xc0(%rsp), %rdi
callq 0x47f890
movq 0xb8(%rsp), %rdi
callq 0x119570
nopw %cs:(%rax,%rax)