// File: /workspace/github_cpp_makefile_star2_O3/vsklad[P]cgen/./bal/io/textreader.hpp
// Function: TextReader::load_next_token()
void load_next_token() {
        // current_token_len_ > 0 means the token is loaded already
        if (!is_eol() && current_token_len_ == 0) {
            if (current_token_pos_ + current_token_len_ < current_line_.size()) {
                switch(current_line_[current_token_pos_ + current_token_len_]) {
                    case '0':
                        if (current_token_pos_ + current_token_len_ + 1 < current_line_.size()) {
                            switch(current_line_[current_token_pos_ + current_token_len_ + 1]) {
                                case 'x':
                                case 'X':
                                    current_token_type_ = ttHex;
                                    parse_hex();
                                    break;
                                case 'b':
                                case 'B':
                                    current_token_type_ = ttBin;
                                    parse_bin();
                                    break;
                                default:
                                    current_token_type_ = ttDec;
                                    parse_dec();
                                    break;
                            };
                        } else {
                            current_token_type_ = ttDec;
                            current_token_len_= 1;
                        };
                        break;
                    case '1'...'9':
                        current_token_type_ = ttDec;
                        parse_dec();
                        break;
                    case 'a'...'z':
                    case 'A'...'Z':
                    case '_':
                        current_token_type_ = ttLiteral;
                        parse_literal();
                        break;
                    case '"':
                        current_token_type_ = ttQuoted;
                        parse_quoted('"');
                        break;
                    case ' ':
                    case '\t':
                        current_token_type_ = ttUnknown;
                        break;
                    default:
                        current_token_type_ = ttSymbol;
                        current_token_len_++;
                        break;
                };
            } else {
                current_token_type_ = ttUnknown;
            };
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq $0x0, 0x38(%rdi)
je 0x1d350
movq 0x8(%rbx), %rdx
jmp 0x1d390
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
leaq 0x18(%rbx), %rsi
testb %al, %al
je 0x1d37a
movq 0x20(%rbx), %rdx
leaq 0x2e969(%rip), %rcx     # 0x4bcd4
movq %rsi, %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xb410
jmp 0x1d387
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
incq 0x38(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
xorl %edx, %edx
movq 0x20(%rbx), %rsi
leaq -0x1(%rsi), %rax
cmpq %rax, %rdx
jne 0x1d3ad
movq 0x18(%rbx), %rax
cmpb $0xd, (%rax,%rdx)
jne 0x1d3ad
movq %rsi, 0x8(%rbx)
jmp 0x1d3bc
movq %rdx, %rax
subq %rsi, %rax
jae 0x1d3bc
cmpq $0x0, 0x10(%rbx)
je 0x1d3c3
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
movq 0x18(%rbx), %rcx
movzbl (%rcx,%rdx), %edi
addl $-0x9, %edi
cmpl $0x71, %edi
ja 0x1d4aa
leaq 0x27f32(%rip), %r8      # 0x45310
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
movl $0x5, 0x40(%rbx)
movq $0x1, 0x10(%rbx)
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rdi
jae 0x1d3bc
addq %rdx, %rcx
incq %rax
movl $0x2, %edx
movb -0x1(%rcx,%rdx), %sil
cmpb $0x30, %sil
jl 0x1d3bc
cmpb $0x3a, %sil
jb 0x1d43b
cmpb $0x41, %sil
jb 0x1d3bc
cmpb $0x5b, %sil
jb 0x1d43b
cmpb $0x61, %sil
jb 0x1d435
cmpb $0x7b, %sil
jb 0x1d43b
jmp 0x1d3bc
cmpb $0x5f, %sil
jne 0x1d3bc
movq %rdx, 0x10(%rbx)
leaq (%rax,%rdx), %rsi
incq %rsi
incq %rdx
cmpq $0x2, %rsi
jne 0x1d40a
jmp 0x1d3bc
movl $0x0, 0x40(%rbx)
jmp 0x1d3bc
movl $0x7, 0x40(%rbx)
movq %rbx, %rdi
movl $0x22, %esi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x1d846
incq %rdx
cmpq %rsi, %rdx
jae 0x1d4b3
movzbl (%rcx,%rdx), %eax
cmpl $0x61, %eax
jg 0x1d4c7
cmpl $0x42, %eax
je 0x1d4e6
cmpl $0x58, %eax
je 0x1d4d1
movl $0x1, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x1d780
movl $0x6, 0x40(%rbx)
jmp 0x1d4ba
movl $0x1, 0x40(%rbx)
movq $0x1, 0x10(%rbx)
jmp 0x1d3bc
cmpl $0x62, %eax
je 0x1d4e6
cmpl $0x78, %eax
jne 0x1d495
movl $0x3, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x1d4fc
movl $0x4, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x1d64a
nop