// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::run_assemblies()
inline bool run_assemblies()
      {
         if (settings_.commutative_check_enabled())
         {
            helper_assembly_.run_inserters(lexer());
         }

         if (settings_.joiner_enabled())
         {
            helper_assembly_.run_joiners(lexer());
         }

         if (settings_.replacer_enabled())
         {
            helper_assembly_.run_modifiers(lexer());
         }

         if (
              settings_.numeric_check_enabled () ||
              settings_.bracket_check_enabled () ||
              settings_.sequence_check_enabled()
            )
         {
            if (!helper_assembly_.run_scanners(lexer()))
            {
               if (helper_assembly_.error_token_scanner)
               {
                  lexer::helper::bracket_checker*            bracket_checker_ptr     = 0;
                  lexer::helper::numeric_checker<T>*         numeric_checker_ptr     = 0;
                  lexer::helper::sequence_validator*         sequence_validator_ptr  = 0;
                  lexer::helper::sequence_validator_3tokens* sequence_validator3_ptr = 0;

                  if (0 != (bracket_checker_ptr = dynamic_cast<lexer::helper::bracket_checker*>(helper_assembly_.error_token_scanner)))
                  {
                     set_error(make_error(
                        parser_error::e_token,
                        bracket_checker_ptr->error_token(),
                        "ERR005 - Mismatched brackets: '" + bracket_checker_ptr->error_token().value + "'",
                        exprtk_error_location));
                  }
                  else if (0 != (numeric_checker_ptr = dynamic_cast<lexer::helper::numeric_checker<T>*>(helper_assembly_.error_token_scanner)))
                  {
                     for (std::size_t i = 0; i < numeric_checker_ptr->error_count(); ++i)
                     {
                        lexer::token error_token = lexer()[numeric_checker_ptr->error_index(i)];

                        set_error(make_error(
                           parser_error::e_token,
                           error_token,
                           "ERR006 - Invalid numeric token: '" + error_token.value + "'",
                           exprtk_error_location));
                     }

                     if (numeric_checker_ptr->error_count())
                     {
                        numeric_checker_ptr->clear_errors();
                     }
                  }
                  else if (0 != (sequence_validator_ptr = dynamic_cast<lexer::helper::sequence_validator*>(helper_assembly_.error_token_scanner)))
                  {
                     for (std::size_t i = 0; i < sequence_validator_ptr->error_count(); ++i)
                     {
                        std::pair<lexer::token,lexer::token> error_token = sequence_validator_ptr->error(i);

                        set_error(make_error(
                           parser_error::e_token,
                           error_token.first,
                           "ERR007 - Invalid token sequence: '" +
                           error_token.first.value  + "' and '" +
                           error_token.second.value + "'",
                           exprtk_error_location));
                     }

                     if (sequence_validator_ptr->error_count())
                     {
                        sequence_validator_ptr->clear_errors();
                     }
                  }
                  else if (0 != (sequence_validator3_ptr = dynamic_cast<lexer::helper::sequence_validator_3tokens*>(helper_assembly_.error_token_scanner)))
                  {
                     for (std::size_t i = 0; i < sequence_validator3_ptr->error_count(); ++i)
                     {
                        std::pair<lexer::token,lexer::token> error_token = sequence_validator3_ptr->error(i);

                        set_error(make_error(
                           parser_error::e_token,
                           error_token.first,
                           "ERR008 - Invalid token sequence: '" +
                           error_token.first.value  + "' and '" +
                           error_token.second.value + "'",
                           exprtk_error_location));
                     }

                     if (sequence_validator3_ptr->error_count())
                     {
                        sequence_validator3_ptr->clear_errors();
                     }
                  }
               }

               return false;
            }
         }

         return true;
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, %rbx
cmpb $0x1, 0xd5(%rdi)
jne 0x1f65b8
leaq 0x648(%rbx), %rdi
movq %rbx, %rsi
callq 0x1f8b22
cmpb $0x1, 0xd1(%rbx)
jne 0x1f65d0
leaq 0x648(%rbx), %rdi
movq %rbx, %rsi
callq 0x1f8b94
cmpb $0x1, 0xd0(%rbx)
jne 0x1f65e8
leaq 0x648(%rbx), %rdi
movq %rbx, %rsi
callq 0x1f8c06
cmpb $0x0, 0xd2(%rbx)
jne 0x1f6609
cmpb $0x0, 0xd3(%rbx)
jne 0x1f6609
movb $0x1, %al
cmpb $0x1, 0xd4(%rbx)
jne 0x1f6bc4
leaq 0x648(%rbx), %rdi
movq %rbx, %rsi
callq 0x1f8c78
movl %eax, %ecx
movb $0x1, %al
testb %cl, %cl
jne 0x1f6bc4
movq 0x6a8(%rbx), %rsi
testq %rsi, %rsi
je 0x1f6bc2
movq (%rsi), %rax
leaq 0x2598aa(%rip), %rcx    # 0x44fee8
cmpq %rcx, %rax
je 0x1f67ea
leaq 0x25998a(%rip), %rcx    # 0x44ffd8
cmpq %rcx, %rax
movq %rsi, 0x18(%rsp)
je 0x1f68f6
leaq 0x2599ed(%rip), %rcx    # 0x450050
cmpq %rcx, %rax
je 0x1f6a49
leaq 0x259a55(%rip), %rcx    # 0x4500c8
cmpq %rcx, %rax
jne 0x1f6bc2
leaq 0x40(%rsi), %rax
movq %rax, 0x8(%rsp)
addq $0x308, %rbx            # imm = 0x308
xorl %r8d, %r8d
leaq 0x60(%rsp), %r12
leaq 0xb0(%rsp), %r13
leaq 0x150(%rsp), %r14
movq 0x40(%rsi), %rcx
movq 0x48(%rsi), %r9
movq %r9, %rax
subq %rcx, %rax
cqto
pushq $0x60
popq %rdi
idivq %rdi
cmpq %rax, %r8
jae 0x1f6bd6
leaq 0xd0(%rsp), %rdi
movq %r8, 0x10(%rsp)
movq %r8, %rdx
callq 0x1f8d98
leaq 0x40(%rsp), %r15
movq %r15, %rdi
leaq 0xe36f3(%rip), %rsi     # 0x2d9dda
leaq 0xd8(%rsp), %rdx
callq 0x1f8aab
movq %r12, %rdi
movq %r15, %rsi
leaq 0xe36d1(%rip), %rdx     # 0x2d9dd2
callq 0x1b42c3
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0x108(%rsp), %rdx
callq 0x1f8a54
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
leaq 0xe6042(%rip), %rdx     # 0x2dc772
callq 0x1b42c3
leaq 0x130(%rsp), %r15
movq %r15, %rdi
movl $0x610f, %esi           # imm = 0x610F
callq 0x1f7a3c
movq %r13, %rdi
leaq 0xe34a7(%rip), %rsi     # 0x2d9bfb
movq %r15, %rdx
callq 0x1b4349
movq %r14, %rdi
pushq $0x2
popq %rsi
leaq 0xd0(%rsp), %rdx
leaq 0x80(%rsp), %rcx
movq %r13, %r8
callq 0x1f7341
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1f76ce
movq %r14, %rdi
callq 0x1f5c4c
movq %r13, %rdi
callq 0x118648
leaq 0x130(%rsp), %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
movq %r12, %rdi
callq 0x118648
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0xd0(%rsp), %rdi
callq 0x1a148c
movq 0x10(%rsp), %r8
incq %r8
movq 0x18(%rsp), %rsi
jmp 0x1f66a4
addq $0x68, %rsi
leaq 0xd0(%rsp), %rdi
movq %rsi, %r14
callq 0x19f4e6
leaq 0x80(%rsp), %rdi
movq %r14, %rsi
callq 0x19f4e6
leaq 0x88(%rsp), %r14
leaq 0xe3550(%rip), %rsi     # 0x2d9d6d
leaq 0x60(%rsp), %rdi
movq %r14, %rdx
callq 0x1b4349
leaq 0xe5f41(%rip), %rdx     # 0x2dc772
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1b42c3
leaq 0xb0(%rsp), %rdi
movl $0x60db, %esi           # imm = 0x60DB
callq 0x1f7a3c
leaq 0xe33a2(%rip), %rsi     # 0x2d9bfb
leaq 0x40(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
callq 0x1b4349
leaq 0x150(%rsp), %rdi
pushq $0x2
popq %rsi
leaq 0xd0(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x40(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x150(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x150(%rsp), %rdi
callq 0x1f5c4c
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0xb0(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
leaq 0x60(%rsp), %rdi
callq 0x118648
movq %r14, %rdi
callq 0x118648
leaq 0xd8(%rsp), %rdi
callq 0x118648
jmp 0x1f6bc2
leaq 0x28(%rbx), %rax
movq %rax, 0x8(%rsp)
leaq 0x308(%rbx), %rax
movq %rax, 0x10(%rsp)
xorl %r15d, %r15d
leaq 0x40(%rsp), %r12
leaq 0x60(%rsp), %r13
leaq 0x150(%rsp), %rbp
movq 0x18(%rsi), %rax
movq 0x20(%rsi), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %rdx, %r15
jae 0x1f6a37
movq (%rax,%r15,8), %rcx
movq (%rbx), %rsi
movq 0x8(%rbx), %rax
subq %rsi, %rax
cqto
pushq $0x30
popq %rdi
idivq %rdi
cmpq %rax, %rcx
jb 0x1f695d
movq 0x8(%rsp), %rsi
jmp 0x1f6964
imulq $0x30, %rcx, %rax
addq %rax, %rsi
leaq 0xd0(%rsp), %rdi
callq 0x19f4e6
leaq 0x20(%rsp), %r14
movq %r14, %rdi
leaq 0xe340d(%rip), %rsi     # 0x2d9d8d
leaq 0xd8(%rsp), %rdx
callq 0x1f8aab
leaq 0x80(%rsp), %rdi
movq %r14, %rsi
leaq 0xe5dd3(%rip), %rdx     # 0x2dc772
callq 0x1b42c3
movq %r12, %rdi
movl $0x60e7, %esi           # imm = 0x60E7
callq 0x1f7a3c
movq %r13, %rdi
leaq 0xe3240(%rip), %rsi     # 0x2d9bfb
movq %r12, %rdx
callq 0x1b4349
movq %rbp, %rdi
pushq $0x2
popq %rsi
leaq 0xd0(%rsp), %rdx
leaq 0x80(%rsp), %rcx
movq %r13, %r8
callq 0x1f7341
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0x1f76ce
movq %rbp, %rdi
callq 0x1f5c4c
movq %r13, %rdi
callq 0x118648
movq %r12, %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
leaq 0xd8(%rsp), %rdi
callq 0x118648
incq %r15
movq 0x18(%rsp), %rsi
jmp 0x1f6920
cmpq %rax, %rcx
je 0x1f6bc2
movq %rax, 0x20(%rsi)
jmp 0x1f6bc2
leaq 0x40(%rsi), %rax
movq %rax, 0x8(%rsp)
addq $0x308, %rbx            # imm = 0x308
movq %rbx, 0x10(%rsp)
xorl %ebp, %ebp
leaq 0x60(%rsp), %r12
leaq 0xb0(%rsp), %r13
leaq 0x150(%rsp), %r14
movq 0x40(%rsi), %rcx
movq 0x48(%rsi), %r8
movq %r8, %rax
subq %rcx, %rax
cqto
pushq $0x60
popq %rdi
idivq %rdi
cmpq %rax, %rbp
jae 0x1f6bb3
leaq 0xd0(%rsp), %rdi
movq %rbp, %rdx
callq 0x1f8ce8
leaq 0x40(%rsp), %r15
movq %r15, %rdi
leaq 0xe32fc(%rip), %rsi     # 0x2d9daf
leaq 0xd8(%rsp), %rdx
callq 0x1f8aab
movq %r12, %rdi
movq %r15, %rsi
leaq 0xe3305(%rip), %rdx     # 0x2d9dd2
callq 0x1b42c3
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0x108(%rsp), %rdx
callq 0x1f8a54
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
leaq 0xe5c76(%rip), %rdx     # 0x2dc772
callq 0x1b42c3
leaq 0x130(%rsp), %r15
movq %r15, %rdi
movl $0x60fb, %esi           # imm = 0x60FB
callq 0x1f7a3c
movq %r13, %rdi
leaq 0xe30db(%rip), %rsi     # 0x2d9bfb
movq %r15, %rdx
callq 0x1b4349
movq %r14, %rdi
pushq $0x2
popq %rsi
leaq 0xd0(%rsp), %rdx
leaq 0x80(%rsp), %rcx
movq %r13, %r8
callq 0x1f7341
movq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x1f76ce
movq %r14, %rdi
callq 0x1f5c4c
movq %r13, %rdi
callq 0x118648
leaq 0x130(%rsp), %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
movq %r12, %rdi
callq 0x118648
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0xd0(%rsp), %rdi
callq 0x1a148c
incq %rbp
movq 0x18(%rsp), %rsi
jmp 0x1f6a75
cmpq %rcx, %r8
je 0x1f6bc2
movq 0x8(%rsp), %rdi
callq 0x1f8e86
xorl %eax, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq %rcx, %r9
jne 0x1f6bb8
jmp 0x1f6bc2
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1f6bf2
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x118648
jmp 0x1f6c01
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0x118648
jmp 0x1f6c13
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x118648
jmp 0x1f6c22
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x118648
movq %r14, %rdi
jmp 0x1f6d27
movq %rax, %rbx
jmp 0x1f6c2c
jmp 0x1f6cd8
jmp 0x1f6c51
jmp 0x1f6c56
jmp 0x1f6c5b
jmp 0x1f6c6d
jmp 0x1f6c7f
jmp 0x1f6c84
jmp 0x1f6c89
jmp 0x1f6cd3
movq %rax, %rbx
jmp 0x1f6cba
movq %rax, %rbx
jmp 0x1f6cb0
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1f6c70
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0x118648
jmp 0x1f6c8c
movq %rax, %rbx
jmp 0x1f6cc4
movq %rax, %rbx
jmp 0x1f6c99
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
leaq 0x20(%rsp), %rdi
callq 0x118648
leaq 0x60(%rsp), %rdi
callq 0x118648
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0xd0(%rsp), %rdi
callq 0x1a148c
jmp 0x1f6d39
movq %rax, %rbx
jmp 0x1f6ca6
movq %rax, %rbx
jmp 0x1f6d2c
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1f6cf2
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x118648
jmp 0x1f6d06
movq %rax, %rbx
jmp 0x1f6d10
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x118648
leaq 0x80(%rsp), %rdi
callq 0x118648
jmp 0x1f6d22
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x118648
leaq 0xd8(%rsp), %rdi
callq 0x118648
movq %rbx, %rdi
callq 0x118360
nop