#include "runner.h" int main(int argc, char *argv[]) { char *check_input; int token; //check_input can be compared to INVALID_ARG and DIFF_ARG to determine if -tok and holds the generated file name if it is check_input = is_tok(argc, argv); FILE * output = fopen(check_input, "w"); if (check_input == INVALID_ARG) { return -1; } while (0 != (token = yylex())) { if (check_input != DIFF_ARG) { fprintf(output, "%d %d %3d \"%s\"\n", line_number, column_number, token, yytext); } } return 0; } char *is_tok(int argc, char *argv[]) { if (argc == 3 && strcmp("-tok", argv[1])) { char *input_prog = argv[2]; int file_len = strlen(input); //check that input program is a .alpha file if (strcmp(".alpha", input_prog[file_len - ALPHA_OFFSET]) != 0) { return INVALID_ARG; } char *FILE_tok[file_len - ALPHA_OFFSET + TOK_LEN]; strncpy(input, FILE_tok, file_len - ALPHA_OFFSET); //copy name of prog before .alpha strcpy(".tok", FILE_tok[file_len - ALPHA_OFFSET]); //add .tok to end of file name return FILE_tok; } return DIFF_ARG; }