// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x40, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x116360
movq %rsp, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x24d3b2
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x116340
movq %r15, %rdi
callq 0x116778
leaq 0x20(%rsp), %rdi
callq 0x116778
movq (%r14), %rax
cmpb $0x24, (%rax)
jne 0x1199bd
leaq 0x140a16(%rip), %rdi    # 0x259fe9
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x1195e7
movb $0x1, (%rbx)
jmp 0x1199bd
leaq 0x140a09(%rip), %rdi    # 0x259ff7
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119602
movb $0x0, (%rbx)
jmp 0x1199bd
leaq 0x1409fd(%rip), %rdi    # 0x25a006
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x11961e
movb $0x1, 0x1(%rbx)
jmp 0x1199bd
leaq 0x1409f5(%rip), %rdi    # 0x25a01a
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x11963a
movb $0x0, 0x1(%rbx)
jmp 0x1199bd
leaq 0x1409ee(%rip), %rdi    # 0x25a02f
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119656
movb $0x1, 0x2(%rbx)
jmp 0x1199bd
leaq 0x1409ea(%rip), %rdi    # 0x25a047
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119672
movb $0x0, 0x2(%rbx)
jmp 0x1199bd
leaq 0x1409e7(%rip), %rdi    # 0x25a060
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x11968e
movb $0x1, 0x3(%rbx)
jmp 0x1199bd
leaq 0x1409d9(%rip), %rdi    # 0x25a06e
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x1196aa
movb $0x1, 0x4(%rbx)
jmp 0x1199bd
leaq 0x1409d3(%rip), %rdi    # 0x25a084
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x1196c6
movb $0x0, 0x3(%rbx)
jmp 0x1199bd
leaq 0x1409c6(%rip), %rdi    # 0x25a093
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x1196e2
movb $0x0, 0x4(%rbx)
jmp 0x1199bd
leaq 0x1409c1(%rip), %rdi    # 0x25a0aa
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x1196fe
movb $0x1, 0x5(%rbx)
jmp 0x1199bd
leaq 0x1409b1(%rip), %rdi    # 0x25a0b6
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x11971a
movb $0x0, 0x5(%rbx)
jmp 0x1199bd
leaq 0x1409a2(%rip), %rdi    # 0x25a0c3
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119736
movb $0x0, 0x6(%rbx)
jmp 0x1199bd
leaq 0x14099b(%rip), %rdi    # 0x25a0d8
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119752
movb $0x1, 0x6(%rbx)
jmp 0x1199bd
leaq 0x140995(%rip), %rdi    # 0x25a0ee
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119772
movq %rbx, %rdi
callq 0x24d4ac
jmp 0x1199bd
leaq 0x140980(%rip), %rdi    # 0x25a0f9
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x119792
movq %rbx, %rdi
callq 0x11b168
jmp 0x1199bd
leaq 0x140971(%rip), %rsi    # 0x25a10a
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x1197da
movq 0x8(%r14), %rcx
cmpq $0xc, %rcx
jb 0x1197da
addq $-0xb, %rcx
movq %rsp, %r15
pushq $0xb
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d5ee
movq %r15, %rdi
jmp 0x1199b8
leaq 0x140935(%rip), %rsi    # 0x25a116
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x11981f
movq 0x8(%r14), %rcx
cmpq $0x8, %rcx
jb 0x11981f
addq $-0x6, %rcx
movq %rsp, %r15
pushq $0x6
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x119498
jmp 0x1199b5
leaq 0x1408f7(%rip), %rsi    # 0x25a11d
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x119864
movq 0x8(%r14), %rcx
cmpq $0x15, %rcx
jb 0x119864
addq $-0x14, %rcx
movq %rsp, %r15
pushq $0x14
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d602
jmp 0x1199b5
leaq 0x1408c7(%rip), %rsi    # 0x25a132
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x1198a9
movq 0x8(%r14), %rcx
cmpq $0x15, %rcx
jb 0x1198a9
addq $-0x14, %rcx
movq %rsp, %r15
pushq $0x14
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d642
jmp 0x1199b5
leaq 0x140897(%rip), %rsi    # 0x25a147
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x1198ee
movq 0x8(%r14), %rcx
cmpq $0x15, %rcx
jb 0x1198ee
addq $-0x14, %rcx
movq %rsp, %r15
pushq $0x14
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d682
jmp 0x1199b5
leaq 0x140867(%rip), %rsi    # 0x25a15c
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x119933
movq 0x8(%r14), %rcx
cmpq $0x14, %rcx
jb 0x119933
addq $-0x13, %rcx
movq %rsp, %r15
pushq $0x13
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d6c2
jmp 0x1199b5
leaq 0x140836(%rip), %rsi    # 0x25a170
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x119975
movq 0x8(%r14), %rcx
cmpq $0x14, %rcx
jb 0x119975
addq $-0x13, %rcx
movq %rsp, %r15
pushq $0x13
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d702
jmp 0x1199b5
leaq 0x140808(%rip), %rsi    # 0x25a184
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
jne 0x1199c7
movq 0x8(%r14), %rcx
cmpq $0x14, %rcx
jb 0x1199c7
addq $-0x13, %rcx
movq %rsp, %r15
pushq $0x13
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x116630
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24d742
movq %rsp, %rdi
callq 0x116778
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x1407ca(%rip), %rdi    # 0x25a198
movq %r14, %rsi
callq 0x119560
testb %al, %al
je 0x1199e4
movq %rbx, %rdi
callq 0x24d782
jmp 0x1199bd
leaq 0x1407b4(%rip), %rsi    # 0x25a19f
movq %r14, %rdi
xorl %edx, %edx
callq 0x116030
testq %rax, %rax
je 0x119a0d
movq (%r14), %rsi
leaq 0x1407a5(%rip), %rdi    # 0x25a1a9
xorl %eax, %eax
callq 0x116080
jmp 0x1199bd
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1820cc
jmp 0x1199bd
jmp 0x119a29
jmp 0x119a29
jmp 0x119a29
jmp 0x119a29
jmp 0x119a29
jmp 0x119a29
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x119a39
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x116778
movq %rbx, %rdi
callq 0x116400