// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::lexer::helper::commutative_inserter::insert(exprtk::lexer::token const&, exprtk::lexer::token const&, exprtk::lexer::token&)
inline int insert(const lexer::token& t0, const lexer::token& t1, lexer::token& new_token) exprtk_override
            {
               bool match         = false;
               new_token.type     = lexer::token::e_mul;
               new_token.value    = "*";
               new_token.position = t1.position;

               if (t0.type == lexer::token::e_symbol)
               {
                  if (ignore_set_.end() != ignore_set_.find(t0.value))
                  {
                     return -1;
                  }
                  else if (!t0.value.empty() && ('$' == t0.value[0]))
                  {
                     return -1;
                  }
               }

               if (t1.type == lexer::token::e_symbol)
               {
                  if (ignore_set_.end() != ignore_set_.find(t1.value))
                  {
                     return -1;
                  }
               }
               if      ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_lbracket   )) match = true;
               else if ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_lcrlbracket)) match = true;
               else if ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_lsqrbracket)) match = true;
               else if ((t0.type == lexer::token::e_symbol     ) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rbracket   ) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rcrlbracket) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rsqrbracket) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rbracket   ) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_rcrlbracket) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_rsqrbracket) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_symbol     ) && (t1.type == lexer::token::e_symbol     )) match = true;

               return (match) ? 1 : -1;
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %r12
movl $0x2a, (%rcx)
leaq 0x8(%rcx), %rdi
leaq 0x148973(%rip), %rsi    # 0x2e79fb
callq 0x118600
movq 0x28(%r15), %rax
movq %rax, 0x28(%rbx)
cmpl $0x8, (%r14)
pushq $-0x1
popq %rbx
jne 0x19f0d1
leaq 0x10(%r12), %rdi
leaq 0x18(%r12), %rbp
leaq 0x8(%r14), %r13
movq %r13, %rsi
callq 0x19f762
cmpq %rax, %rbp
jne 0x19f18d
cmpq $0x0, 0x10(%r14)
je 0x19f0d1
movq (%r13), %rax
cmpb $0x24, (%rax)
je 0x19f18d
movl (%r15), %eax
cmpl $0x8, %eax
jne 0x19f0f7
leaq 0x10(%r12), %rdi
addq $0x18, %r12
leaq 0x8(%r15), %rsi
callq 0x19f762
cmpq %rax, %r12
jne 0x19f18d
movl (%r15), %eax
movl (%r14), %edx
cmpl $0x8, %eax
sete %cl
cmpl $0x28, %eax
sete %sil
movl %eax, %edi
andl $-0x21, %edi
cmpl $0x5b, %edi
sete %dil
pushq $0x1
popq %rbx
cmpl $0x7, %edx
jne 0x19f123
orb %sil, %cl
orb %dil, %cl
jne 0x19f18d
movl %edx, %ecx
xorl $0x8, %ecx
movl %eax, %esi
xorl $0x7, %esi
movl %ecx, %edi
orl %esi, %edi
je 0x19f18d
movl %edx, %edi
xorl $0x29, %edi
orl %esi, %edi
je 0x19f18d
movl %edx, %edi
xorl $0x7d, %edi
orl %esi, %edi
je 0x19f18d
cmpl $0x7d, %edx
sete %sil
cmpl $0x29, %edx
sete %dil
cmpl $0x7, %eax
sete %r8b
cmpl $0x8, %eax
sete %r9b
cmpl $0x5d, %edx
sete %dl
andb %dl, %r8b
andb %r9b, %dil
orb %r8b, %dil
andb %r9b, %sil
andb %r9b, %dl
orb %sil, %dl
orb %dil, %dl
jne 0x19f18d
xorl $0x8, %eax
xorl %ebx, %ebx
orl %eax, %ecx
sete %bl
decl %ebx
orl $0x1, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq