// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::lexer::helper::bracket_checker::operator()(exprtk::lexer::token const&)
bool operator() (const lexer::token& t) exprtk_override
            {
               if (
                    !t.value.empty()                       &&
                    (lexer::token::e_string != t.type)     &&
                    (lexer::token::e_symbol != t.type)     &&
                    exprtk::details::is_bracket(t.value[0])
                  )
               {
                  details::char_t c = t.value[0];

                  if      (t.type == lexer::token::e_lbracket   ) stack_.push(std::make_pair(')',t.position));
                  else if (t.type == lexer::token::e_lcrlbracket) stack_.push(std::make_pair('}',t.position));
                  else if (t.type == lexer::token::e_lsqrbracket) stack_.push(std::make_pair(']',t.position));
                  else if (exprtk::details::is_right_bracket(c))
                  {
                     if (stack_.empty())
                     {
                        state_       = false;
                        error_token_ = t;

                        return false;
                     }
                     else if (c != stack_.top().first)
                     {
                        state_       = false;
                        error_token_ = t;

                        return false;
                     }
                     else
                        stack_.pop();
                  }
               }

               return true;
            }

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x88(%rsp)
movq %rsi, 0x80(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x80(%rsp), %rdi
addq $0x8, %rdi
callq 0x11b260
testb $0x1, %al
jne 0x2585ff
movq 0x80(%rsp), %rcx
movl $0x9, %eax
cmpl (%rcx), %eax
je 0x2585ff
movq 0x80(%rsp), %rcx
movl $0x8, %eax
cmpl (%rcx), %eax
je 0x2585ff
movq 0x80(%rsp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11b770
movsbl (%rax), %edi
callq 0x259590
testb $0x1, %al
jne 0x25843d
jmp 0x2585ff
movq 0x80(%rsp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11b770
movb (%rax), %al
movb %al, 0x7f(%rsp)
movq 0x80(%rsp), %rax
cmpl $0x28, (%rax)
jne 0x2584ab
movq 0x28(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x20(%rsp)
movb $0x29, 0x67(%rsp)
movq 0x80(%rsp), %rsi
addq $0x28, %rsi
leaq 0x67(%rsp), %rdi
callq 0x259600
movq 0x20(%rsp), %rdi
movb %al, 0x68(%rsp)
movq %rdx, 0x70(%rsp)
leaq 0x68(%rsp), %rsi
callq 0x2595d0
jmp 0x2585fd
movq 0x80(%rsp), %rax
cmpl $0x7b, (%rax)
jne 0x2584fe
movq 0x28(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x18(%rsp)
movb $0x7d, 0x4f(%rsp)
movq 0x80(%rsp), %rsi
addq $0x28, %rsi
leaq 0x4f(%rsp), %rdi
callq 0x259600
movq 0x18(%rsp), %rdi
movb %al, 0x50(%rsp)
movq %rdx, 0x58(%rsp)
leaq 0x50(%rsp), %rsi
callq 0x2595d0
jmp 0x2585fb
movq 0x80(%rsp), %rax
cmpl $0x5b, (%rax)
jne 0x258551
movq 0x28(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x10(%rsp)
movb $0x5d, 0x37(%rsp)
movq 0x80(%rsp), %rsi
addq $0x28, %rsi
leaq 0x37(%rsp), %rdi
callq 0x259600
movq 0x10(%rsp), %rdi
movb %al, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
leaq 0x38(%rsp), %rsi
callq 0x2595d0
jmp 0x2585f9
movsbl 0x7f(%rsp), %edi
callq 0x259630
testb $0x1, %al
jne 0x258564
jmp 0x2585f7
movq 0x28(%rsp), %rdi
addq $0x18, %rdi
callq 0x259440
testb $0x1, %al
jne 0x258578
jmp 0x25859c
movq 0x28(%rsp), %rdi
movb $0x0, 0x10(%rdi)
movq 0x80(%rsp), %rsi
addq $0x68, %rdi
callq 0x259470
movb $0x0, 0x97(%rsp)
jmp 0x258607
movq 0x28(%rsp), %rdi
movsbl 0x7f(%rsp), %eax
movl %eax, 0xc(%rsp)
addq $0x18, %rdi
callq 0x259460
movq %rax, %rcx
movl 0xc(%rsp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x2585e5
movq 0x28(%rsp), %rdi
movb $0x0, 0x10(%rdi)
movq 0x80(%rsp), %rsi
addq $0x68, %rdi
callq 0x259470
movb $0x0, 0x97(%rsp)
jmp 0x258607
movq 0x28(%rsp), %rdi
addq $0x18, %rdi
callq 0x259680
jmp 0x2585f5
jmp 0x2585f7
jmp 0x2585f9
jmp 0x2585fb
jmp 0x2585fd
jmp 0x2585ff
movb $0x1, 0x97(%rsp)
movb 0x97(%rsp), %al
andb $0x1, %al
addq $0x98, %rsp
retq
nopl (%rax,%rax)