// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::lexer::generator::scan_token()
inline void scan_token()
         {
            const char_t c = *s_itr_;

            if (details::is_whitespace(c))
            {
               skip_whitespace();
               return;
            }
            else if (is_comment_start(s_itr_))
            {
               skip_comments();
               return;
            }
            else if (details::is_operator_char(c))
            {
               scan_operator();
               return;
            }
            else if (details::is_letter(c))
            {
               scan_symbol();
               return;
            }
            else if (('.' == c) && !next_is_digit(s_itr_))
            {
               scan_operator();
               return;
            }
            else if (details::is_digit(c) || ('.' == c))
            {
               scan_number();
               return;
            }
            else if ('$' == c)
            {
               scan_special_function();
               return;
            }
            #ifndef exprtk_disable_string_capabilities
            else if ('\'' == c)
            {
               scan_string();
               return;
            }
            #endif
            else if ('~' == c)
            {
               token_t t;
               t.set_symbol(s_itr_, s_itr_ + 1, base_itr_);
               token_list_.push_back(t);
               ++s_itr_;
               return;
            }
            else
            {
               token_t t;
               t.set_error(token::e_error, s_itr_, s_itr_ + 2, base_itr_);
               token_list_.push_back(t);
               ++s_itr_;
            }

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x60(%rax), %rax
movb (%rax), %al
movb %al, 0x8f(%rsp)
movsbl 0x8f(%rsp), %edi
callq 0x375e20
testb $0x1, %al
jne 0x375a9c
jmp 0x375aab
movq 0x10(%rsp), %rdi
callq 0x375ec0
jmp 0x375ccc
movq 0x10(%rsp), %rdi
movq 0x60(%rdi), %rsi
callq 0x375f30
testb $0x1, %al
jne 0x375abf
jmp 0x375ace
movq 0x10(%rsp), %rdi
callq 0x375ff0
jmp 0x375ccc
movsbl 0x8f(%rsp), %edi
callq 0x3761d0
testb $0x1, %al
jne 0x375ae1
jmp 0x375af0
movq 0x10(%rsp), %rdi
callq 0x3763e0
jmp 0x375ccc
movsbl 0x8f(%rsp), %edi
callq 0x234290
testb $0x1, %al
jne 0x375b03
jmp 0x375b12
movq 0x10(%rsp), %rdi
callq 0x376880
jmp 0x375ccc
movsbl 0x8f(%rsp), %ecx
movl $0x2e, %eax
cmpl %ecx, %eax
jne 0x375b44
movq 0x10(%rsp), %rdi
movq 0x60(%rdi), %rsi
callq 0x3769e0
testb $0x1, %al
jne 0x375b44
movq 0x10(%rsp), %rdi
callq 0x3763e0
jmp 0x375ccc
movsbl 0x8f(%rsp), %edi
callq 0x2343b0
testb $0x1, %al
jne 0x375b66
movsbl 0x8f(%rsp), %ecx
movl $0x2e, %eax
cmpl %ecx, %eax
jne 0x375b75
movq 0x10(%rsp), %rdi
callq 0x376a30
jmp 0x375ccc
movsbl 0x8f(%rsp), %ecx
movl $0x24, %eax
cmpl %ecx, %eax
jne 0x375b95
movq 0x10(%rsp), %rdi
callq 0x376da0
jmp 0x375ccc
movsbl 0x8f(%rsp), %ecx
movl $0x27, %eax
cmpl %ecx, %eax
jne 0x375bb5
movq 0x10(%rsp), %rdi
callq 0x376fd0
jmp 0x375ccc
movsbl 0x8f(%rsp), %ecx
movl $0x7e, %eax
cmpl %ecx, %eax
jne 0x375c42
leaq 0x58(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x251250
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq 0x58(%rax), %rcx
movq 0x60(%rax), %rsi
movq %rsi, %rdx
incq %rdx
callq 0x377510
jmp 0x375bf4
movq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x254cc0
jmp 0x375c05
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x60(%rax)
leaq 0x58(%rsp), %rdi
callq 0x2512e0
jmp 0x375ccc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x2512e0
jmp 0x375cd4
leaq 0x18(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x251250
movq 0x10(%rsp), %rax
movq (%rsp), %rdi
movq 0x58(%rax), %r8
movq 0x60(%rax), %rdx
movq %rdx, %rcx
addq $0x2, %rcx
movl $0x1, %esi
callq 0x377580
jmp 0x375c74
movq 0x10(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x254cc0
jmp 0x375c85
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x60(%rax)
leaq 0x18(%rsp), %rdi
callq 0x2512e0
jmp 0x375cbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x18(%rsp), %rdi
callq 0x2512e0
jmp 0x375cd4
jmp 0x375cbe
jmp 0x375cc0
jmp 0x375cc2
jmp 0x375cc4
jmp 0x375cc6
jmp 0x375cc8
jmp 0x375cca
jmp 0x375ccc
addq $0x98, %rsp
retq
movq 0x50(%rsp), %rdi
callq 0x11b4e0
nop