// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk-extras/exprtk_repl.cpp
// Function: expression_processor<double>::process_directive(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void process_directive(std::string expression)
   {
      expression = trim_whitespace(expression);

      if ('$' != expression[0])
         return;
      else if ("$enable_cache" == expression)
         persist_symbol_table() = true;
      else if ("$disable_cache" == expression)
         persist_symbol_table() = false;
      else if ("$enable_symbol_dump" == expression)
         symbol_dump() = true;
      else if ("$disable_symbol_dump" == expression)
         symbol_dump() = false;
      else if ("$enable_assignment_dump" == expression)
         assignment_dump() = true;
      else if ("$disable_assignment_dump" == expression)
         assignment_dump() = false;
      else if ("$enable_timer" == expression)
         display_total_time() = true;
      else if ("$enable_compile_timer" == expression)
         display_total_compile_time() = true;
      else if ("$disable_timer" == expression)
         display_total_time() = false;
      else if ("$disable_compile_timer" == expression)
         display_total_compile_time() = false;
      else if ("$enable_usr" == expression)
         enable_usr() = true;
      else if ("$disable_usr" == expression)
         enable_usr() = false;
      else if ("$enable_local_vardef" == expression)
         disable_local_vardef() = false;
      else if ("$disable_local_vardef" == expression)
         disable_local_vardef() = true;
      else if ("$list_vars" == expression)
         list_symbols();
      else if ("$clear_functions" == expression)
         clear_functions();
      else if ((0 == expression.find("$batch_run ")) && (expression.size() >= 12))
         process_batch_run(expression.substr(11,expression.size() - 11));
      else if ((0 == expression.find("$load ")) && (expression.size() > 7))
         process_from_file(expression.substr(6,expression.size() - 6));
      else if ((0 == expression.find("$disable arithmetic ")) && (expression.size() >= 21))
         process_disable_arithmetic(expression.substr(20,expression.size() - 20));
      else if ((0 == expression.find("$disable assignment ")) && (expression.size() >= 21))
         process_disable_assignment(expression.substr(20,expression.size() - 20));
      else if ((0 == expression.find("$disable inequality ")) && (expression.size() >= 21))
         process_disable_inequality(expression.substr(20,expression.size() - 20));
      else if ((0 == expression.find("$enable arithmetic ")) && (expression.size() >= 20))
         process_enable_arithmetic(expression.substr(19,expression.size() - 19));
      else if ((0 == expression.find("$enable assignment ")) && (expression.size() >= 20))
         process_enable_assignment(expression.substr(19,expression.size() - 19));
      else if ((0 == expression.find("$enable inequality ")) && (expression.size() >= 20))
         process_enable_inequality(expression.substr(19,expression.size() - 19));
      else if ("$begin" == expression)
         process_multiline();
      else if (0 == expression.find("$function"))
         process_function_definition(expression);
      else
         printf("\nERROR - Invalid directive: %s\n",expression.c_str());
   }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rsi), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x2bf986
movq %rsp, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x2be698
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x11c320
movq (%r15), %rdi
leaq 0x10(%rsp), %r12
cmpq %r12, %rdi
je 0x120be1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x120bf8
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq (%r14), %rax
cmpb $0x24, (%rax)
jne 0x12109a
leaq 0x1aac20(%rip), %rsi    # 0x2cb82b
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120de2
leaq 0x1aac17(%rip), %rsi    # 0x2cb839
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120dea
leaq 0x1aac0f(%rip), %rsi    # 0x2cb848
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120df2
leaq 0x1aac0c(%rip), %rsi    # 0x2cb85c
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120dfb
leaq 0x1aac0a(%rip), %rsi    # 0x2cb871
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e04
leaq 0x1aac0b(%rip), %rsi    # 0x2cb889
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e0d
leaq 0x1aac0d(%rip), %rsi    # 0x2cb8a2
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e16
leaq 0x1aac04(%rip), %rsi    # 0x2cb8b0
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e1f
leaq 0x1aac03(%rip), %rsi    # 0x2cb8c6
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e28
leaq 0x1aabfb(%rip), %rsi    # 0x2cb8d5
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e31
leaq 0x1aabfb(%rip), %rsi    # 0x2cb8ec
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e3a
leaq 0x1aabf0(%rip), %rsi    # 0x2cb8f8
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e43
leaq 0x1aabe6(%rip), %rsi    # 0x2cb905
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e4c
leaq 0x1aabe4(%rip), %rsi    # 0x2cb91a
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e55
leaq 0x1aabe3(%rip), %rsi    # 0x2cb930
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120e5e
leaq 0x1aabd7(%rip), %rsi    # 0x2cb93b
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x120f03
leaq 0x1aabd1(%rip), %rsi    # 0x2cb94c
movl $0xb, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x120e6b
movq 0x8(%r14), %rcx
cmpq $0xc, %rcx
jb 0x120e6b
addq $-0xb, %rcx
movq %rsp, %r15
movl $0xb, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq (%r15), %r14
movq %r14, %rdi
callq 0x11c1e0
cltq
movq %rax, 0x8(%rbx)
cmpq %r12, %r14
je 0x12109a
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
jmp 0x121095
movb $0x1, (%rbx)
jmp 0x12109a
movb $0x0, (%rbx)
jmp 0x12109a
movb $0x1, 0x1(%rbx)
jmp 0x12109a
movb $0x0, 0x1(%rbx)
jmp 0x12109a
movb $0x1, 0x2(%rbx)
jmp 0x12109a
movb $0x0, 0x2(%rbx)
jmp 0x12109a
movb $0x1, 0x3(%rbx)
jmp 0x12109a
movb $0x1, 0x4(%rbx)
jmp 0x12109a
movb $0x0, 0x3(%rbx)
jmp 0x12109a
movb $0x0, 0x4(%rbx)
jmp 0x12109a
movb $0x1, 0x5(%rbx)
jmp 0x12109a
movb $0x0, 0x5(%rbx)
jmp 0x12109a
movb $0x0, 0x6(%rbx)
jmp 0x12109a
movb $0x1, 0x6(%rbx)
jmp 0x12109a
movq %rbx, %rdi
callq 0x2be80a
jmp 0x12109a
leaq 0x1aaae6(%rip), %rsi    # 0x2cb958
movl $0x6, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x120eb7
movq 0x8(%r14), %rcx
cmpq $0x8, %rcx
jb 0x120eb7
addq $-0x6, %rcx
movq %rsp, %r15
movl $0x6, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x120a8e
jmp 0x121084
leaq 0x1aaaa1(%rip), %rsi    # 0x2cb95f
movl $0x14, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x120f10
movq 0x8(%r14), %rcx
cmpq $0x15, %rcx
jb 0x120f10
addq $-0x14, %rcx
movq %rsp, %r15
movl $0x14, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2bebc2
jmp 0x121084
movq %rbx, %rdi
callq 0x12365a
jmp 0x12109a
leaq 0x1aaa5d(%rip), %rsi    # 0x2cb974
movl $0x14, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x120f5c
movq 0x8(%r14), %rcx
cmpq $0x15, %rcx
jb 0x120f5c
addq $-0x14, %rcx
movq %rsp, %r15
movl $0x14, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2bec1a
jmp 0x121084
leaq 0x1aaa26(%rip), %rsi    # 0x2cb989
movl $0x14, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x120fa8
movq 0x8(%r14), %rcx
cmpq $0x15, %rcx
jb 0x120fa8
addq $-0x14, %rcx
movq %rsp, %r15
movl $0x14, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2bec72
jmp 0x121084
leaq 0x1aa9ef(%rip), %rsi    # 0x2cb99e
movl $0x13, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x120ff4
movq 0x8(%r14), %rcx
cmpq $0x14, %rcx
jb 0x120ff4
addq $-0x13, %rcx
movq %rsp, %r15
movl $0x13, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2becca
jmp 0x121084
leaq 0x1aa9b7(%rip), %rsi    # 0x2cb9b2
movl $0x13, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x12103d
movq 0x8(%r14), %rcx
cmpq $0x14, %rcx
jb 0x12103d
addq $-0x13, %rcx
movq %rsp, %r15
movl $0x13, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2bed0a
jmp 0x121084
leaq 0x1aa982(%rip), %rsi    # 0x2cb9c6
movl $0x13, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
jne 0x1210a8
movq 0x8(%r14), %rcx
cmpq $0x14, %rcx
jb 0x1210a8
addq $-0x13, %rcx
movq %rsp, %r15
movl $0x13, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x11c5f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2bed4a
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x12109a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11c0d0
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x1aa92b(%rip), %rsi    # 0x2cb9da
movq %r14, %rdi
callq 0x11c550
testl %eax, %eax
je 0x1210e9
leaq 0x1aa91f(%rip), %rsi    # 0x2cb9e1
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x11c220
testq %rax, %rax
je 0x1210f3
movq (%r14), %rsi
leaq 0x1aa90b(%rip), %rdi    # 0x2cb9eb
xorl %eax, %eax
callq 0x11c090
jmp 0x12109a
movq %rbx, %rdi
callq 0x2bed8a
jmp 0x12109a
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x18f5ce
jmp 0x12109a
jmp 0x121111
jmp 0x121111
jmp 0x121111
jmp 0x121111
jmp 0x121111
jmp 0x121111
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x12113e
movq 0x10(%rsp), %rsi
jmp 0x121136
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x12113e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq %rbx, %rdi
callq 0x11c3c0