// File: /workspace/github_cpp_makefile_star2_O2/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:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
movb 0xd0(%rdi), %al
movb 0xd7(%rdi), %cl
movb %cl, 0x2b8(%rdi)
movzwl 0xd8(%rdi), %ecx
movw %cx, 0x2b9(%rdi)
cmpb $0x1, %al
jne 0x199797
leaq 0x730(%rbx), %rdi
callq 0x1a1dcc
leaq 0x13bf69(%rip), %rsi    # 0x2d5630
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x127016
leaq 0x13adca(%rip), %rsi    # 0x2d44a7
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x127016
leaq 0x728(%rbx), %r14
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
pushq $0x7
popq %rcx
movq %r14, %rdi
callq 0x1a1c0e
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x14ef85(%rip), %rsi    # 0x2e86a8
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x127016
leaq 0x13ad74(%rip), %rsi    # 0x2d44ad
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
pushq $0x7
popq %rcx
movq %r14, %rdi
callq 0x1a1c0e
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x648(%rbx), %rdi
movq 0x660(%rbx), %rax
cmpq %rax, 0x668(%rbx)
je 0x19978f
movq %rax, 0x668(%rbx)
movq %r14, %rsi
callq 0x1a1c9a
cmpb $0x1, 0xd5(%rbx)
jne 0x1997f6
leaq 0x6d8(%rbx), %r14
xorl %r15d, %r15d
leaq 0x31dbcf(%rip), %r12    # 0x4b7380
cmpq $0x420, %r15            # imm = 0x420
je 0x1997cc
leaq (%r12,%r15), %rsi
movq %r14, %rdi
callq 0x1a2490
addq $0x20, %r15
jmp 0x1997b1
leaq 0x648(%rbx), %rdi
movq 0x690(%rbx), %rax
cmpq %rax, 0x698(%rbx)
je 0x1997ea
movq %rax, 0x698(%rbx)
leaq 0x6c8(%rbx), %rsi
callq 0x1a1ce8
cmpb $0x1, 0xd1(%rbx)
jne 0x19983b
leaq 0x648(%rbx), %r14
movq 0x678(%rbx), %rax
cmpq %rax, 0x680(%rbx)
je 0x19981d
movq %rax, 0x680(%rbx)
leaq 0x708(%rbx), %rsi
movq %r14, %rdi
callq 0x1a1d36
leaq 0x718(%rbx), %rsi
movq %r14, %rdi
callq 0x1a1d36
movb 0xd2(%rbx), %al
testb %al, %al
jne 0x199857
cmpb $0x0, 0xd3(%rbx)
jne 0x199857
cmpb $0x1, 0xd4(%rbx)
jne 0x1998ca
movq 0x648(%rbx), %rcx
cmpq %rcx, 0x650(%rbx)
je 0x19986e
movq %rcx, 0x650(%rbx)
leaq 0x648(%rbx), %r14
testb %al, %al
je 0x199888
leaq 0x7f8(%rbx), %rsi
movq %r14, %rdi
callq 0x1a1d84
cmpb $0x1, 0xd3(%rbx)
jne 0x1998a0
leaq 0x760(%rbx), %rsi
movq %r14, %rdi
callq 0x1a1d84
cmpb $0x1, 0xd4(%rbx)
jne 0x1998ca
leaq 0x828(%rbx), %rsi
movq %r14, %rdi
callq 0x1a1d84
addq $0x880, %rbx            # imm = 0x880
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1a1d84
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x1998dc
jmp 0x1998eb
jmp 0x1998fa
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x118648
jmp 0x1998ee
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x118648
jmp 0x1998fd
movq %rax, %rbx
movq %rbx, %rdi
callq 0x118360