From bf199c939018191c575fcd17b4ddd608dd2b9b69 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 18 Apr 2024 18:54:23 -0300 Subject: fixed some bugs --- lexical.c | 18 ++++++++++-------- main.c | 22 ++++++++++++++++------ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/lexical.c b/lexical.c index b742311..199b3bd 100644 --- a/lexical.c +++ b/lexical.c @@ -10,7 +10,7 @@ char proximo = '\n'; int is_EOF = 0; -int linha = 1; // Numero da linha atual) +int linha = 0; // Numero da linha atual) int identificador_num = 1; FILE *fout; @@ -89,19 +89,21 @@ void init_all_map(){ void PROXIMO(FILE *fp){ if(is_EOF) return; - if(fscanf(fp, "%c", &proximo) == EOF){ - is_EOF = 1; - return ; - } if(proximo == '\n'){ - printf("\n"); - fprintf(fout, "\n"); - PROXIMO(fp); + if(linha != 0){ + printf("\n"); + fprintf(fout, "\n"); + } linha++; printf("linha %d: ", linha); fprintf(fout, "linha %d: ", linha); } + if(fscanf(fp, "%c", &proximo) == EOF){ + is_EOF = 1; + return ; + } + return ; } diff --git a/main.c b/main.c index a87807d..fdb93bb 100644 --- a/main.c +++ b/main.c @@ -28,8 +28,17 @@ int main(int argc, char *argv[]){ init_all_map(); char *file_path = argv[1]; + //char *file_path = "asd.asd"; FILE *fp = fopen(file_path, "r"); + if(fp == NULL){ + fprintf(stderr, "Nao foi possivel abrir o arquivo\n"); + exit(2); + } fout = fopen("out.txt", "w"); + if(fout == NULL){ + fprintf(stderr, "Nao foi possivel abrir o arquivo de saida\n"); + exit(3); + } extern char proximo; char *simbolo; @@ -37,13 +46,14 @@ int main(int argc, char *argv[]){ PROXIMO(fp); - printf("linha 1: "); - fprintf(fout, "linha 1: "); while(is_EOF == 0){ - while(proximo == ' ' || proximo == '\t' || proximo == '\r') PROXIMO(fp); - while(proximo == '\n' && is_EOF != 1){ - printf("\n"); - fprintf(fout, "\n"); + /*while(proximo == ' ' || proximo == 9 || proximo == '\r'){ + PROXIMO(fp); + }*/ + + while((proximo == ' ' || proximo == 9 || proximo == '\r' || proximo == '\n') && is_EOF == 0){ + //printf("\n"); + //fprintf(fout, "\n"); PROXIMO(fp); } if(is_EOF) break; -- cgit v1.2.3