// File: /workspace/github_cpp_makefile_star2_O1/protonpopsicle[P]lang/src/compiler/Error.cpp
// Function: Error::tagToStr[abi:cxx11](short)
std::string Error::tagToStr(short tag) {
    switch (tag) {
        case 32: 
            return "space";
        case 255: 
            return "program end";
        case NUM: 
            return "numeric literal";
        case QUOTE: 
            return "string literal";
        case ID: 
            return "identifier";
        case BASIC: 
            return "basic type";
        case TRUE: 
            return "true keyword";
        case FALSE: 
            return "false keyword";
        case PRINT: 
            return "print statement";
        case IF: 
            return "if statement";
        case WHILE: 
            return "while statement";
        case LE: 
            return "relational expression";
        case GE: 
            return "relational expression";
        case EQ: 
            return "relational expression";
        case NE: 
            return "relational expression";
        case AND: 
            return "relational expression";
        case OR: 
            return "relational expression";
        default: 
            // returns a string formed by 1 repetition of (char)tag
            return std::string(1, (unsigned char)tag);
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leal -0xff(%rdx), %eax
cmpl $0x9, %eax
ja 0x3a40
leaq 0x3710(%rip), %rcx      # 0x7130
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3750(%rip), %rsi      # 0x7187
leaq 0x3754(%rip), %rdx      # 0x7192
jmp 0x3a70
leal -0x12c(%rdx), %eax
cmpl $0x5, %eax
ja 0x3a7d
leaq 0x3706(%rip), %rcx      # 0x7158
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3797(%rip), %rsi      # 0x7200
leaq 0x37a5(%rip), %rdx      # 0x7215
movq %rbx, %rdi
callq 0x33d4
movq %rbx, %rax
popq %rbx
retq
leaq 0x10(%rbx), %rax
cmpl $0x20, %edx
jne 0x3ade
movq %rax, (%rbx)
leaq 0x36f1(%rip), %rsi      # 0x7181
leaq 0x36ef(%rip), %rdx      # 0x7186
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3716(%rip), %rsi      # 0x71bd
leaq 0x3719(%rip), %rdx      # 0x71c7
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3732(%rip), %rsi      # 0x71f0
leaq 0x373a(%rip), %rdx      # 0x71ff
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x36ce(%rip), %rsi      # 0x71a3
leaq 0x36d5(%rip), %rdx      # 0x71b1
jmp 0x3a70
movq %rax, (%rbx)
movsbl %dl, %edx
movl $0x1, %esi
movq %rbx, %rdi
callq 0x21a0
jmp 0x3a78
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x36b1(%rip), %rsi      # 0x71b2
leaq 0x36b4(%rip), %rdx      # 0x71bc
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x35a8(%rip), %rsi      # 0x70c3
leaq 0x35b0(%rip), %rdx      # 0x70d2
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x365e(%rip), %rsi      # 0x7193
leaq 0x3666(%rip), %rdx      # 0x71a2
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3679(%rip), %rsi      # 0x71c8
leaq 0x367e(%rip), %rdx      # 0x71d4
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x366c(%rip), %rsi      # 0x71d5
leaq 0x3672(%rip), %rdx      # 0x71e2
jmp 0x3a70
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3660(%rip), %rsi      # 0x71e3
leaq 0x3665(%rip), %rdx      # 0x71ef
jmp 0x3a70
nop