#include "lexer.h" #include #include int main(int argc, char** argv) { if (argc < 2) { fprintf(stderr, "ccc: no input files"); return 1; } struct token token; for (int i = 1; i < argc; i++) { lexer_load(argv[i]); while (lexer_pop(&token)) { switch (token.type) { case IDENTIFIER: printf("got identifier: %s\n", token.data.identifier); free(token.data.identifier); break; case STR_LIT: printf("got string: %s\n", token.data.str_lit); free(token.data.str_lit); break; case INT_LIT: printf("got int: %lld\n", token.data.int_lit); break; case FLOAT_LIT: printf("got float: %lf\n", token.data.float_lit); break; case CHAR_LIT: printf("got char: %c\n", token.data.char_lit); break; default: printf("got simple token: %d\n", token.type); } } lexer_close(); } }