// File: /workspace/github_c_makefile_star2_O3/g3ida[P]g3idaCompiler/lexical.c
// Function: printSymbole
void printSymbole( Symbole token, const char* lexeme )
{
    switch (token)
  { case IF: printf("keyword: if");break;
    case THEN: printf("keyword: then");break;
    case ELSE: printf("keyword: else");break;
    case END: printf("keyword: end");break;
    case DO: printf("keyword: do");break;
    case WHILE: printf("keyword: while");break;
    case PROGRAM: printf("keyword: program");break;
    case READ: printf("keyword: read");break;
    case READLN: printf("keyword: readln");break;
    case WRITE: printf("keyword: write");break;
    case WRITELN: printf("keyword: writeln");break;
    case INTEGER: printf("keyword: integer");break;
    case CHAR: printf("keyword: char");break;
    case VAR: printf("keyword: var");break;
    case BEGIN: printf("keyword: begin");break;
    case ASSIGN: printf(":="); break;
    case LT: printf("<"); break;
    case LTE: printf("<="); break;
    case GT: printf(">"); break;
    case GTE: printf(">="); break;
    case NEQ: printf("<>"); break;
    case AND: printf("&&"); break;
    case OR: printf("||"); break;
    case EQ: printf("=="); break;
    case LPAREN: printf("("); break;
    case RPAREN: printf(")"); break;
    case SEMI: printf(";"); break;
    case PLUS: printf("+"); break;
    case MINUS: printf("-"); break;
    case MULT: printf("*"); break;
    case DIV: printf("/"); break;
    case MOD: printf("%%"); break;
    case ENDFILE: printf("EOF"); break;
    case TWOPTS: printf(":"); break;
    case COMMA: printf(","); break;
    case POINT : printf("."); break;
    case NUM: printf("NUM, val= %s",lexeme);break;
    case ID: printf("ID, name= %s",lexeme);break;
    case ERROR: printf("ERROR: %s",lexeme);break;
    default: /* should never happen */
      printf("Unknown token: %d",token);
  }
}

// Assembly:
movl %edi, %eax
cmpl $0x26, %edi
ja 0x2295
movl %eax, %eax
leaq 0x1258(%rip), %rcx      # 0x337c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x148c(%rip), %rdi      # 0x35c0
jmp 0x2210
movl $0x2c, %edi
jmp 0x1040
leaq 0x1450(%rip), %rdi      # 0x359a
jmp 0x22be
movl $0x3a, %edi
jmp 0x1040
leaq 0x1449(%rip), %rdi      # 0x35a9
jmp 0x22be
leaq 0x1461(%rip), %rdi      # 0x35cd
jmp 0x2210
leaq 0x1362(%rip), %rdi      # 0x34da
jmp 0x22be
leaq 0x133c(%rip), %rdi      # 0x34c0
jmp 0x22be
movl $0x3b, %edi
jmp 0x1040
leaq 0x13a5(%rip), %rdi      # 0x353f
jmp 0x22be
leaq 0x13e5(%rip), %rdi      # 0x358b
jmp 0x22be
leaq 0x137d(%rip), %rdi      # 0x352f
jmp 0x22be
leaq 0x1337(%rip), %rdi      # 0x34f5
jmp 0x22be
movl $0x2b, %edi
jmp 0x1040
leaq 0x13cc(%rip), %rdi      # 0x35a0
jmp 0x22be
leaq 0x1330(%rip), %rdi      # 0x3510
jmp 0x22be
leaq 0x12e0(%rip), %rdi      # 0x34cc
jmp 0x22be
leaq 0x1386(%rip), %rdi      # 0x357e
jmp 0x22be
leaq 0x136c(%rip), %rdi      # 0x3570
jmp 0x22be
leaq 0x13a3(%rip), %rdi      # 0x35b3
xorl %eax, %eax
jmp 0x10a0
movl $0x25, %edi
jmp 0x1040
movl $0x28, %edi
jmp 0x1040
leaq 0x1371(%rip), %rdi      # 0x35a3
jmp 0x22be
leaq 0x12aa(%rip), %rdi      # 0x34e8
jmp 0x22be
movl $0x3c, %edi
jmp 0x1040
leaq 0x12fd(%rip), %rdi      # 0x354e
jmp 0x22be
leaq 0x1305(%rip), %rdi      # 0x355f
jmp 0x22be
movl $0x29, %edi
jmp 0x1040
leaq 0x12b4(%rip), %rdi      # 0x3521
jmp 0x22be
leaq 0x128b(%rip), %rdi      # 0x3501
jmp 0x22be
movl $0x2f, %edi
jmp 0x1040
leaq 0x1326(%rip), %rdi      # 0x35af
jmp 0x22be
movl $0x3e, %edi
jmp 0x1040
leaq 0x133b(%rip), %rdi      # 0x35d7
movl %eax, %esi
xorl %eax, %eax
jmp 0x10a0
leaq 0x1300(%rip), %rdi      # 0x35ac
jmp 0x22be
leaq 0x12e8(%rip), %rdi      # 0x359d
jmp 0x22be
leaq 0x12e8(%rip), %rdi      # 0x35a6
xorl %eax, %eax
jmp 0x10a0
movl $0x2a, %edi
jmp 0x1040
movl $0x2e, %edi
jmp 0x1040
movl $0x2d, %edi
jmp 0x1040