// File: /workspace/github_cpp_makefile_star2_O2/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
callq 0x18bfe
testb %al, %al
jne 0x191d9
cmpq $0x0, 0x10(%rbx)
jne 0x191d9
movq 0x8(%rbx), %rax
movq 0x20(%rbx), %rcx
cmpq %rcx, %rax
jae 0x191d5
movq 0x18(%rbx), %rdx
movzbl (%rdx,%rax), %esi
addl $-0x9, %esi
cmpl $0x71, %esi
ja 0x19242
leaq 0x1e0b9(%rip), %rdi     # 0x37270
movslq (%rdi,%rsi,4), %rsi
addq %rdi, %rsi
jmpq *%rsi
movl $0x5, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x1950c
andl $0x0, 0x40(%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
movl $0x7, 0x40(%rbx)
pushq $0x22
popq %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x19566
incq %rax
cmpq %rcx, %rax
jae 0x1924b
movzbl (%rdx,%rax), %eax
cmpl $0x42, %eax
je 0x1925f
cmpl $0x78, %eax
je 0x19218
cmpl $0x62, %eax
je 0x1925f
cmpl $0x58, %eax
jne 0x1922d
movl $0x3, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x19274
movl $0x1, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x19460
movl $0x6, 0x40(%rbx)
jmp 0x19252
movl $0x1, 0x40(%rbx)
movq $0x1, 0x10(%rbx)
jmp 0x191d9
movl $0x4, 0x40(%rbx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x19376