#ifndef PRINT_C #define PRINT_C PRINT_C #include void print_keyword_enum(enum Keyword code) { switch(code) { case KW_MACHINE: printf("KW_MACHINE"); break; case KW_STATE: printf("KW_STATE"); break; case KW_FROM: printf("KW_FROM"); break; case KW_TO: printf("KW_TO"); break; case KW_ON: printf("KW_ON"); break; case KW_ID: printf("KW_ID"); break; case KW_STRING: printf("KW_STRING"); break; case KW_NOP: printf("KW_NOP"); break; case KW_EOF: printf("KW_EOF"); break; case KW_OPEN_SQUARE: printf("KW_OPEN_SQUARE"); break; case KW_CLOSE_SQUARE: printf("KW_CLOSE_SQUARE"); break; case KW_PIPE: printf("KW_PIPE"); break; case KW_SEMI_COLUMN: printf("KW_SEMI_COLUMN"); break; case KW_STARTING: printf("KW_STARTING"); break; default: printf("LEXERROR"); } } void print_token(struct token *token) { size_t i; printf("[ "); print_keyword_enum(token->type); printf(" "); for(i=0;isize;++i) printf("%c",token->data[i]); printf(" ] "); } void print_tokens(struct Queue *tokens) { struct Queue_Node *it; for(it=tokens->first;it!=NULL;it=it->prev) { print_token( (struct token*)(it->data)); printf(" "); } } #endif