// File: ushitora-anqou[P]femtoyaml/./femtoyaml.hpp
// Function: femtoyaml::detail::tokenizer::do_tokenize()
void do_tokenize()
    {
        while (true) {
            st_.skip_ws();

            unroll_indent(st_.column());

            int ch = st_.peek();

            switch (ch) {
            case EOF:
                goto eof;

            case '-':
                if (!is_blankz(st_.peek(1))) break;

                roll_indent<tk_block_sequence_start>(st_.column());
                st_.next();  // skip '-'
                tks_.push_back(tk_block_entry{});

                continue;

            case ':': {
                if (!is_blankz(st_.peek(1))) break;

                auto key = tks_.back();
                tks_.pop_back();

                roll_indent<tk_block_mapping_start>(simple_key_column_);
                st_.next();  // skip ':'
                tks_.push_back(tk_key{});
                tks_.push_back(key);
                tks_.push_back(tk_value{});

                continue;
            }
            }

            simple_key_column_ = st_.column();
            tks_.push_back(fetch_plain_scalar());
        }

    eof:
        unroll_indent(-1);
        tks_.push_back(tk_eof{});
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rax
movq (%rax), %rdi
callq 0x8000
movq -0x158(%rbp), %rax
movq (%rax), %rdi
callq 0x8100
movq -0x158(%rbp), %rdi
movl %eax, %esi
callq 0x8050
movq -0x158(%rbp), %rax
movq (%rax), %rdi
xorl %esi, %esi
callq 0x8120
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x15c(%rbp)
subl $-0x1, %eax
je 0x7aeb
jmp 0x7aca
movl -0x15c(%rbp), %eax
subl $0x2d, %eax
je 0x7af0
jmp 0x7ad7
movl -0x15c(%rbp), %eax
subl $0x3a, %eax
je 0x7baa
jmp 0x7d32
jmp 0x7dde
movq -0x158(%rbp), %rax
movq (%rax), %rdi
movl $0x1, %esi
callq 0x8120
movq -0x158(%rbp), %rdi
movl %eax, %esi
callq 0x8190
testb $0x1, %al
jne 0x7b1b
jmp 0x7d32
movq -0x158(%rbp), %rax
movq (%rax), %rdi
callq 0x8100
movq -0x158(%rbp), %rdi
movl %eax, %esi
callq 0x81d0
movq -0x158(%rbp), %rax
movq (%rax), %rdi
callq 0x8270
movq -0x158(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x170(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x168(%rbp)
leaq -0x39(%rbp), %rsi
callq 0x82f0
movq -0x170(%rbp), %rdi
movq -0x168(%rbp), %rsi
callq 0x82c0
jmp 0x7b82
leaq -0x38(%rbp), %rdi
callq 0x8320
jmp 0x7a7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x8320
jmp 0x7e5d
movq -0x158(%rbp), %rax
movq (%rax), %rdi
movl $0x1, %esi
callq 0x8120
movq -0x158(%rbp), %rdi
movl %eax, %esi
callq 0x8190
testb $0x1, %al
jne 0x7bd5
jmp 0x7d32
movq -0x158(%rbp), %rdi
addq $0x8, %rdi
movq %rdi, -0x178(%rbp)
callq 0x8340
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
callq 0x8380
movq -0x178(%rbp), %rdi
callq 0x83b0
movq -0x158(%rbp), %rdi
movl 0x24(%rdi), %esi
callq 0x83e0
jmp 0x7c15
movq -0x158(%rbp), %rax
movq (%rax), %rdi
callq 0x8270
jmp 0x7c26
movq -0x158(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x188(%rbp)
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x180(%rbp)
leaq -0xa1(%rbp), %rsi
callq 0x8480
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rsi
callq 0x82c0
jmp 0x7c67
leaq -0xa0(%rbp), %rdi
callq 0x8320
movq -0x158(%rbp), %rdi
addq $0x8, %rdi
leaq -0x78(%rbp), %rsi
callq 0x84b0
jmp 0x7c89
movq -0x158(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x198(%rbp)
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x190(%rbp)
leaq -0xd1(%rbp), %rsi
callq 0x8520
movq -0x198(%rbp), %rdi
movq -0x190(%rbp), %rsi
callq 0x82c0
jmp 0x7cca
leaq -0xd0(%rbp), %rdi
callq 0x8320
leaq -0x78(%rbp), %rdi
callq 0x8320
jmp 0x7a7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7d24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x8320
jmp 0x7d24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x8320
leaq -0x78(%rbp), %rdi
callq 0x8320
jmp 0x7e5d
movq -0x158(%rbp), %rax
movq (%rax), %rdi
callq 0x8100
movq -0x158(%rbp), %rsi
movl %eax, 0x24(%rsi)
movq %rsi, %rax
addq $0x8, %rax
movq %rax, -0x1a8(%rbp)
leaq -0x120(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x8550
movq -0x1b0(%rbp), %rsi
leaq -0x100(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x86b0
movq -0x1a8(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
callq 0x82c0
jmp 0x7d9b
leaq -0x100(%rbp), %rdi
callq 0x8320
leaq -0x120(%rbp), %rdi
callq 0x86e0
jmp 0x7a7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x8320
leaq -0x120(%rbp), %rdi
callq 0x86e0
jmp 0x7e5d
movq -0x158(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8050
movq -0x158(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x1c0(%rbp)
leaq -0x148(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
leaq -0x149(%rbp), %rsi
callq 0x8700
movq -0x1c0(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
callq 0x82c0
jmp 0x7e30
leaq -0x148(%rbp), %rdi
callq 0x8320
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x8320
movq -0x48(%rbp), %rdi
callq 0x3390
nopw %cs:(%rax,%rax)