// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::init_precompilation()
inline void init_precompilation()
      {
         dec_.collect_variables() =
            settings_.collect_variables_enabled();

         dec_.collect_functions() =
            settings_.collect_functions_enabled();

         dec_.collect_assignments() =
            settings_.collect_assignments_enabled();

         if (settings_.replacer_enabled())
         {
            symbol_replacer_.clear();
            symbol_replacer_.add_replace("true" , "1", lexer::token::e_number);
            symbol_replacer_.add_replace("false", "0", lexer::token::e_number);
            helper_assembly_.token_modifier_list.clear();
            helper_assembly_.register_modifier(&symbol_replacer_);
         }

         if (settings_.commutative_check_enabled())
         {
            for (std::size_t i = 0; i < details::reserved_words_size; ++i)
            {
               commutative_inserter_.ignore_symbol(details::reserved_words[i]);
            }

            helper_assembly_.token_inserter_list.clear();
            helper_assembly_.register_inserter(&commutative_inserter_);
         }

         if (settings_.joiner_enabled())
         {
            helper_assembly_.token_joiner_list.clear();
            helper_assembly_.register_joiner(&operator_joiner_2_);
            helper_assembly_.register_joiner(&operator_joiner_3_);
         }

         if (
              settings_.numeric_check_enabled () ||
              settings_.bracket_check_enabled () ||
              settings_.sequence_check_enabled()
            )
         {
            helper_assembly_.token_scanner_list.clear();

            if (settings_.numeric_check_enabled())
            {
               helper_assembly_.register_scanner(&numeric_checker_);
            }

            if (settings_.bracket_check_enabled())
            {
               helper_assembly_.register_scanner(&bracket_checker_);
            }

            if (settings_.sequence_check_enabled())
            {
               helper_assembly_.register_scanner(&sequence_validator_      );
               helper_assembly_.register_scanner(&sequence_validator_3tkns_);
            }
         }
      }

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0x100(%rsp)
movq 0x100(%rsp), %rdi
movq %rdi, 0x40(%rsp)
addq $0xd0, %rdi
callq 0x25ebf0
movq 0x40(%rsp), %rdi
movb %al, 0x3d(%rsp)
addq $0x2b0, %rdi            # imm = 0x2B0
callq 0x25ec00
movb 0x3d(%rsp), %cl
movq 0x40(%rsp), %rdi
andb $0x1, %cl
movb %cl, (%rax)
addq $0xd0, %rdi
callq 0x25ec10
movq 0x40(%rsp), %rdi
movb %al, 0x3e(%rsp)
addq $0x2b0, %rdi            # imm = 0x2B0
callq 0x25ec20
movb 0x3e(%rsp), %cl
movq 0x40(%rsp), %rdi
andb $0x1, %cl
movb %cl, (%rax)
addq $0xd0, %rdi
callq 0x25ec30
movq 0x40(%rsp), %rdi
movb %al, 0x3f(%rsp)
addq $0x2b0, %rdi            # imm = 0x2B0
callq 0x25ec40
movb 0x3f(%rsp), %cl
movq 0x40(%rsp), %rdi
andb $0x1, %cl
movb %cl, (%rax)
addq $0xd0, %rdi
callq 0x25ec50
testb $0x1, %al
jne 0x2423ae
jmp 0x24263b
movq 0x40(%rsp), %rdi
addq $0x728, %rdi            # imm = 0x728
movq %rdi, 0x28(%rsp)
callq 0x25ec60
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x11b6f0
movq 0x30(%rsp), %rdx
leaq 0x360578(%rip), %rsi    # 0x5a295a
leaq 0xe0(%rsp), %rdi
callq 0x134520
jmp 0x2423f1
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x11b6f0
movq 0x20(%rsp), %rdx
leaq 0x35f3c2(%rip), %rsi    # 0x5a17d1
leaq 0xa8(%rsp), %rdi
callq 0x134520
jmp 0x24241e
movq 0x28(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
movl $0x7, %ecx
callq 0x25ec80
jmp 0x24243f
leaq 0xa8(%rsp), %rdi
callq 0x11b838
leaq 0xa7(%rsp), %rdi
callq 0x11b820
leaq 0xe0(%rsp), %rdi
callq 0x11b838
leaq 0xdf(%rsp), %rdi
callq 0x11b820
movq 0x40(%rsp), %rax
addq $0x728, %rax            # imm = 0x728
movq %rax, 0x10(%rsp)
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x11b6f0
movq 0x18(%rsp), %rdx
leaq 0x373549(%rip), %rsi    # 0x5b59e7
leaq 0x80(%rsp), %rdi
callq 0x134520
jmp 0x2424ad
leaq 0x57(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x11b6f0
movq 0x8(%rsp), %rdx
leaq 0x35f30f(%rip), %rsi    # 0x5a17d7
leaq 0x58(%rsp), %rdi
callq 0x134520
jmp 0x2424d4
movq 0x10(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movl $0x7, %ecx
callq 0x25ec80
jmp 0x2424f2
leaq 0x58(%rsp), %rdi
callq 0x11b838
leaq 0x57(%rsp), %rdi
callq 0x11b820
leaq 0x80(%rsp), %rdi
callq 0x11b838
leaq 0x7f(%rsp), %rdi
callq 0x11b820
movq 0x40(%rsp), %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x18, %rdi
callq 0x25ed70
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x728, %rsi            # imm = 0x728
callq 0x25ed90
jmp 0x24263b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x2425b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x24259f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x11b838
leaq 0xa7(%rsp), %rdi
callq 0x11b820
leaq 0xe0(%rsp), %rdi
callq 0x11b838
leaq 0xdf(%rsp), %rdi
callq 0x11b820
jmp 0x242839
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x24262c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x242615
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x11b838
leaq 0x57(%rsp), %rdi
callq 0x11b820
leaq 0x80(%rsp), %rdi
callq 0x11b838
leaq 0x7f(%rsp), %rdi
callq 0x11b820
jmp 0x242839
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25ee40
testb $0x1, %al
jne 0x242652
jmp 0x2426c7
movq $0x0, 0x48(%rsp)
cmpq $0x21, 0x48(%rsp)
jae 0x242697
movq 0x40(%rsp), %rdi
addq $0x6c8, %rdi            # imm = 0x6C8
movq 0x48(%rsp), %rax
leaq 0x590df5(%rip), %rsi    # 0x7d3470
shlq $0x5, %rax
addq %rax, %rsi
callq 0x25ee50
movq 0x48(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x48(%rsp)
jmp 0x24265b
movq 0x40(%rsp), %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x48, %rdi
callq 0x25ee80
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x6c8, %rsi            # imm = 0x6C8
callq 0x25eea0
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25ef50
testb $0x1, %al
jne 0x2426de
jmp 0x242729
movq 0x40(%rsp), %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x30, %rdi
callq 0x25ef60
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x708, %rsi            # imm = 0x708
callq 0x25ef80
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x718, %rsi            # imm = 0x718
callq 0x25ef80
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25f030
testb $0x1, %al
jne 0x24276d
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25f040
testb $0x1, %al
jne 0x24276d
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25f050
testb $0x1, %al
jne 0x24276d
jmp 0x242831
movq 0x40(%rsp), %rdi
addq $0x648, %rdi            # imm = 0x648
callq 0x25f060
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25f030
testb $0x1, %al
jne 0x242795
jmp 0x2427b0
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x7f8, %rsi            # imm = 0x7F8
callq 0x25f080
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25f040
testb $0x1, %al
jne 0x2427c7
jmp 0x2427e2
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x760, %rsi            # imm = 0x760
callq 0x25f080
movq 0x40(%rsp), %rdi
addq $0xd0, %rdi
callq 0x25f050
testb $0x1, %al
jne 0x2427f9
jmp 0x24282f
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x828, %rsi            # imm = 0x828
callq 0x25f080
movq 0x40(%rsp), %rsi
movq %rsi, %rdi
addq $0x648, %rdi            # imm = 0x648
addq $0x880, %rsi            # imm = 0x880
callq 0x25f080
jmp 0x242831
addq $0x108, %rsp            # imm = 0x108
retq
movq 0xd0(%rsp), %rdi
callq 0x11b4e0
nopw %cs:(%rax,%rax)