// File: SunriseFox[P]very-simple-c-compiler/./src/symbol.cpp
// Function: Symbol::getSymbolName[abi:cxx11](Symbol*)
string Symbol::getSymbolName(Symbol *s)
{
    switch (s->type) {
    case Symbol::VALUE_CHAR:
        return "char";
    case Symbol::VALUE_DOUBLE:
        return "double";
    case Symbol::VALUE_INT:
        return "int";
    case Symbol::VALUE_NONE:
        return "none";
    case Symbol::VALUE_ERROR:
        return "error";
    case Symbol::VALUE_STRING:
        return "string";
    case Symbol::VALUE_VOID:
        return "void";
    }
    return "--";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x48(%rbp)
movq %rdi, %rax
movq %rax, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x38(%rbp)
subq $0x6, %rax
ja 0x153fd
movq -0x38(%rbp), %rax
leaq 0x42f3(%rip), %rcx      # 0x194e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x11(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x42ea(%rip), %rsi      # 0x194fc
callq 0x8910
jmp 0x15219
leaq -0x11(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x11(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x25(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x58(%rbp), %rdx
leaq 0x42a4(%rip), %rsi      # 0x19501
callq 0x8910
jmp 0x15264
leaq -0x25(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x25(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x26(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rdx
leaq 0x4260(%rip), %rsi      # 0x19508
callq 0x8910
jmp 0x152af
leaq -0x26(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x26(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x27(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x4219(%rip), %rsi      # 0x1950c
callq 0x8910
jmp 0x152fa
leaq -0x27(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x27(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x28(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0x4128(%rip), %rsi      # 0x19466
callq 0x8910
jmp 0x15345
leaq -0x28(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x29(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x78(%rbp), %rdx
leaq 0x4188(%rip), %rsi      # 0x19511
callq 0x8910
jmp 0x15390
leaq -0x29(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x2a(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x80(%rbp), %rdx
leaq 0x4144(%rip), %rsi      # 0x19518
callq 0x8910
jmp 0x153db
leaq -0x2a(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2a(%rbp), %rdi
callq 0x32c0
jmp 0x15455
leaq -0x2b(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x3490
movq -0x48(%rbp), %rdi
movq -0x88(%rbp), %rdx
leaq 0x40fe(%rip), %rsi      # 0x1951d
callq 0x8910
jmp 0x15426
leaq -0x2b(%rbp), %rdi
callq 0x32c0
jmp 0x15448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2b(%rbp), %rdi
callq 0x32c0
jmp 0x15455
movq -0x40(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x3480
nop