// File: /workspace/github_cpp_makefile_star2_O3/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 0x3a10
leaq 0x3740(%rip), %rcx      # 0x7130
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3780(%rip), %rsi      # 0x7187
leaq 0x3784(%rip), %rdx      # 0x7192
jmp 0x3a40
leal -0x12c(%rdx), %eax
cmpl $0x5, %eax
ja 0x3a4d
leaq 0x3736(%rip), %rcx      # 0x7158
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x37c7(%rip), %rsi      # 0x7200
leaq 0x37d5(%rip), %rdx      # 0x7215
movq %rbx, %rdi
callq 0x339c
movq %rbx, %rax
popq %rbx
retq
leaq 0x10(%rbx), %rax
cmpl $0x20, %edx
jne 0x3aae
movq %rax, (%rbx)
leaq 0x3721(%rip), %rsi      # 0x7181
leaq 0x371f(%rip), %rdx      # 0x7186
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3746(%rip), %rsi      # 0x71bd
leaq 0x3749(%rip), %rdx      # 0x71c7
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3762(%rip), %rsi      # 0x71f0
leaq 0x376a(%rip), %rdx      # 0x71ff
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x36fe(%rip), %rsi      # 0x71a3
leaq 0x3705(%rip), %rdx      # 0x71b1
jmp 0x3a40
movq %rax, (%rbx)
movsbl %dl, %edx
movl $0x1, %esi
movq %rbx, %rdi
callq 0x21a0
jmp 0x3a48
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x36e1(%rip), %rsi      # 0x71b2
leaq 0x36e4(%rip), %rdx      # 0x71bc
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x35d8(%rip), %rsi      # 0x70c3
leaq 0x35e0(%rip), %rdx      # 0x70d2
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x368e(%rip), %rsi      # 0x7193
leaq 0x3696(%rip), %rdx      # 0x71a2
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x36a9(%rip), %rsi      # 0x71c8
leaq 0x36ae(%rip), %rdx      # 0x71d4
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x369c(%rip), %rsi      # 0x71d5
leaq 0x36a2(%rip), %rdx      # 0x71e2
jmp 0x3a40
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3690(%rip), %rsi      # 0x71e3
leaq 0x3695(%rip), %rdx      # 0x71ef
jmp 0x3a40
nop