// File: 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
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x10(%rbp)
callq 0x26670
testb $0x1, %al
jne 0x2748b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x2748b
movq -0x10(%rbp), %rdi
movq 0x8(%rdi), %rax
addq 0x10(%rdi), %rax
movq %rax, -0x18(%rbp)
addq $0x18, %rdi
callq 0xd1f0
movq %rax, %rcx
movq -0x18(%rbp), %rax
cmpq %rcx, %rax
jae 0x2747e
movq -0x10(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rax
addq %rax, %rsi
callq 0xd630
movsbl (%rax), %eax
addl $-0x9, %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x71, %eax
ja 0x27465
movq -0x20(%rbp), %rax
leaq 0x39fd4(%rip), %rcx     # 0x61328
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movq 0x8(%rdi), %rax
addq 0x10(%rdi), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
addq $0x18, %rdi
callq 0xd1f0
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jae 0x27404
movq -0x10(%rbp), %rcx
movq %rcx, %rdi
addq $0x18, %rdi
movq 0x8(%rcx), %rax
movq 0x10(%rcx), %rcx
leaq 0x1(%rax,%rcx), %rsi
callq 0xd630
movsbl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0x42, %eax
je 0x273e0
jmp 0x273b0
movl -0x2c(%rbp), %eax
subl $0x58, %eax
je 0x273ce
jmp 0x273ba
movl -0x2c(%rbp), %eax
subl $0x62, %eax
je 0x273e0
jmp 0x273c4
movl -0x2c(%rbp), %eax
subl $0x78, %eax
jne 0x273f2
jmp 0x273ce
movq -0x10(%rbp), %rdi
movl $0x3, 0x40(%rdi)
callq 0x274a0
jmp 0x27402
movq -0x10(%rbp), %rdi
movl $0x4, 0x40(%rdi)
callq 0x27850
jmp 0x27402
movq -0x10(%rbp), %rdi
movl $0x1, 0x40(%rdi)
callq 0x27b50
jmp 0x27417
movq -0x10(%rbp), %rax
movl $0x1, 0x40(%rax)
movq $0x1, 0x10(%rax)
jmp 0x2747c
movq -0x10(%rbp), %rdi
movl $0x1, 0x40(%rdi)
callq 0x27b50
jmp 0x2747c
jmp 0x2742d
jmp 0x2742f
movq -0x10(%rbp), %rdi
movl $0x5, 0x40(%rdi)
callq 0x27da0
jmp 0x2747c
movq -0x10(%rbp), %rdi
movl $0x7, 0x40(%rdi)
movl $0x22, %esi
callq 0x27f10
jmp 0x2747c
movq -0x10(%rbp), %rax
movl $0x0, 0x40(%rax)
jmp 0x2747c
movq -0x10(%rbp), %rax
movl $0x6, 0x40(%rax)
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
jmp 0x27489
movq -0x10(%rbp), %rax
movl $0x0, 0x40(%rax)
jmp 0x2748b
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)