// File: tsoding[P]wcc/src/./wcc_alexer.cpp
// Function: print1(_IO_FILE*, Token_Type)
void print1(FILE *stream, Token_Type type)
{
    switch (type) {
    case Token_Type::Func: print(stream, "Func"); break;
    case Token_Type::Symbol: print(stream, "Symbol"); break;
    case Token_Type::Open_Paren: print(stream, "Open_Paren"); break;
    case Token_Type::Closed_Paren: print(stream, "Closed_Paren"); break;
    case Token_Type::Colon: print(stream, "Colon"); break;
    case Token_Type::Open_Curly: print(stream, "Open_Curly"); break;
    case Token_Type::Closed_Curly: print(stream, "Closed_Curly"); break;
    case Token_Type::Local: print(stream, "Local"); break;
    case Token_Type::Equals: print(stream, "Equals"); break;
    case Token_Type::Number_Literal: print(stream, "Number_Literal"); break;
    case Token_Type::While: print(stream, "While"); break;
    case Token_Type::Greater: print(stream, "Greater"); break;
    case Token_Type::Less_Equals: print(stream, "Less_Equals"); break;
    case Token_Type::Plus: print(stream, "Plus"); break;
    case Token_Type::Minus_Equals: print(stream, "Minus_Equals"); break;
    case Token_Type::Minus: print(stream, "Minus"); break;
    case Token_Type::Semicolon: print(stream, "Semicolon"); break;
    case Token_Type::Comma: print(stream, "Comma"); break;
    case Token_Type::And: print(stream, "And"); break;
    case Token_Type::Rem: print(stream, "Rem"); break;
    case Token_Type::If: print(stream, "If"); break;
    case Token_Type::Else: print(stream, "Else"); break;
    case Token_Type::Asterisk: print(stream, "Asterisk"); break;
    case Token_Type::Equals_Equals: print(stream, "Equals_Equals"); break;
    case Token_Type::Return: print(stream, "Return"); break;
    case Token_Type::True: print(stream, "True"); break;
    case Token_Type::False: print(stream, "False"); break;
    case Token_Type::Plus_Equals: print(stream, "Plus_Equals"); break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq %rax, -0x18(%rbp)
subq $0x1b, %rax
ja 0x32d6
movq -0x18(%rbp), %rax
leaq 0xafd9(%rip), %rcx      # 0xe074
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
leaq 0xba8a(%rip), %rsi      # 0xeb39
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba7a(%rip), %rsi      # 0xeb3e
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba6c(%rip), %rsi      # 0xeb45
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba62(%rip), %rsi      # 0xeb50
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba5a(%rip), %rsi      # 0xeb5d
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba4b(%rip), %rsi      # 0xeb63
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba41(%rip), %rsi      # 0xeb6e
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba39(%rip), %rsi      # 0xeb7b
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba9b(%rip), %rsi      # 0xebf2
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba15(%rip), %rsi      # 0xeb81
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba0f(%rip), %rsi      # 0xeb90
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xba00(%rip), %rsi      # 0xeb96
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9f3(%rip), %rsi      # 0xeb9e
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9ea(%rip), %rsi      # 0xebaa
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9da(%rip), %rsi      # 0xebaf
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9d2(%rip), %rsi      # 0xebbc
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9c3(%rip), %rsi      # 0xebc2
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9b8(%rip), %rsi      # 0xebcc
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb9a9(%rip), %rsi      # 0xebd2
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb998(%rip), %rsi      # 0xebd6
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb987(%rip), %rsi      # 0xebda
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb978(%rip), %rsi      # 0xebdd
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb96b(%rip), %rsi      # 0xebe2
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb962(%rip), %rsi      # 0xebeb
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb95e(%rip), %rsi      # 0xebf9
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb953(%rip), %rsi      # 0xec00
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb946(%rip), %rsi      # 0xec05
callq 0xa050
jmp 0x32d6
movq -0x8(%rbp), %rdi
leaq 0xb93a(%rip), %rsi      # 0xec0b
callq 0xa050
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)