// File: /workspace/github_c_makefile_star2_O0/taeguk[P]Compiler-Proj-Cminus/src/util.c
// Function: printToken
void
printToken(TokenType token, const char* tokenString)
{
  switch (token)
    {
    case ENDFILE: fprintf(listing,"EOF\n"); break;
    case ERROR:   fprintf(listing,
                          "ERROR\t\t\t%s\n",
                          tokenString); break;

    case ID:      fprintf(listing,
                          "ID\t\t\t%s\n",
                          tokenString); break;
    case NUM:     fprintf(listing,
                          "NUM\t\t\t%s\n",
                          tokenString); break;

    case ELSE:    fprintf(listing,
                          "ELSE\t\t\t%s\n",
                          tokenString); break;
    case IF:      fprintf(listing,
                          "IF\t\t\t%s\n",
                          tokenString); break;
    case INT:     fprintf(listing,
                          "INT\t\t\t%s\n",
                          tokenString); break;
    case RETURN:  fprintf(listing,
                          "RETURN\t\t\t%s\n",
                          tokenString); break;
    case VOID:    fprintf(listing,
                          "VOID\t\t\t%s\n",
                          tokenString); break;
    case WHILE:   fprintf(listing,
                          "WHILE\t\t\t%s\n",
                          tokenString); break;

    case PLUS:    fprintf(listing,
                          "PLUS\t\t\t%s\n",
                          tokenString); break;
    case MINUS:   fprintf(listing,
                          "MINUS\t\t\t%s\n",
                          tokenString); break;
    case TIMES:   fprintf(listing,
                          "TIMES\t\t\t%s\n",
                          tokenString); break;
    case OVER:    fprintf(listing,
                          "OVER\t\t\t%s\n",
                          tokenString); break;

    case LT:      fprintf(listing,
                          "<\t\t\t%s\n",
                          tokenString); break;
    case LE:      fprintf(listing,
                          "<=\t\t\t%s\n",
                          tokenString); break;
    case GT:      fprintf(listing,
                          ">\t\t\t%s\n",
                          tokenString); break;
    case GE:      fprintf(listing,
                          ">=\t\t\t%s\n",
                          tokenString); break;
    case EQ:      fprintf(listing,
                          "==\t\t\t%s\n",
                          tokenString); break;
    case NE:      fprintf(listing,
                          "!=\t\t\t%s\n",
                          tokenString); break;

    case ASSIGN:  fprintf(listing,
                          "=\t\t\t%s\n",
                          tokenString); break;
    case SEMI:    fprintf(listing,
                          ";\t\t\t%s\n",
                          tokenString); break;
    case COMMA:   fprintf(listing,
                          ",\t\t\t%s\n",
                          tokenString); break;

    case LPAREN:   fprintf(listing,
                          "(\t\t\t%s\n",
                          tokenString); break;
    case RPAREN:   fprintf(listing,
                          ")\t\t\t%s\n",
                          tokenString); break;
    case LBRACK:   fprintf(listing,
                          "[\t\t\t%s\n",
                          tokenString); break;
    case RBRACK:   fprintf(listing,
                          "]\t\t\t%s\n",
                          tokenString); break;
    case LBRACE:   fprintf(listing,
                          "{\t\t\t%s\n",
                          tokenString); break;
    case RBRACE:   fprintf(listing,
                          "}\t\t\t%s\n",
                          tokenString); break;

    default:       /* should never happen */
           DONT_OCCUR_PRINT; 
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %eax
addl $0xfffffefd, %eax       # imm = 0xFFFFFEFD
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x1c, %eax
ja 0x76f4
movq -0x18(%rbp), %rax
leaq 0x381f(%rip), %rcx      # 0xab60
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x6ebf(%rip), %rax      # 0xe210
movq (%rax), %rdi
leaq 0x38c9(%rip), %rsi      # 0xac24
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6ea2(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x38ad(%rip), %rsi      # 0xac29
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6e81(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x38cf(%rip), %rsi      # 0xac6c
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6e60(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3877(%rip), %rsi      # 0xac35
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6e3f(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3860(%rip), %rsi      # 0xac3f
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6e1e(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x384a(%rip), %rsi      # 0xac4a
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6dfd(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3832(%rip), %rsi      # 0xac53
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6ddc(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x381b(%rip), %rsi      # 0xac5d
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6dbb(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3807(%rip), %rsi      # 0xac6a
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6d9a(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x37f1(%rip), %rsi      # 0xac75
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6d79(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x37dc(%rip), %rsi      # 0xac81
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6d58(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x37c6(%rip), %rsi      # 0xac8c
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6d37(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x37b1(%rip), %rsi      # 0xac98
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6d16(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x379c(%rip), %rsi      # 0xaca4
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6cf5(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3786(%rip), %rsi      # 0xacaf
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6cd4(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x376d(%rip), %rsi      # 0xacb7
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6cb3(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3755(%rip), %rsi      # 0xacc0
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6c92(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x373c(%rip), %rsi      # 0xacc8
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6c71(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3724(%rip), %rsi      # 0xacd1
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6c50(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x370c(%rip), %rsi      # 0xacda
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6c2f(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x36ec(%rip), %rsi      # 0xacdb
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6c0e(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x36d3(%rip), %rsi      # 0xace3
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6bed(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x36ba(%rip), %rsi      # 0xaceb
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6bcc(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x36a1(%rip), %rsi      # 0xacf3
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6bab(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3688(%rip), %rsi      # 0xacfb
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6b8d(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3672(%rip), %rsi      # 0xad03
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6b6f(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x365c(%rip), %rsi      # 0xad0b
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6b51(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3646(%rip), %rsi      # 0xad13
movb $0x0, %al
callq 0x1120
jmp 0x76f6
leaq 0x6b33(%rip), %rax      # 0xe210
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x3630(%rip), %rsi      # 0xad1b
movb $0x0, %al
callq 0x1120
jmp 0x76f6
jmp 0x76f6
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)