diff options
author | leo <leo@azuminha.com> | 2024-04-18 18:54:23 -0300 |
---|---|---|
committer | leo <leo@azuminha.com> | 2024-04-18 18:54:23 -0300 |
commit | bf199c939018191c575fcd17b4ddd608dd2b9b69 (patch) | |
tree | ecc0bcc092fa7a852fec3b087b69c3ace4162655 | |
parent | 954fc6b9d4bfee8b2eb1af11f4e62a66b9e8da57 (diff) |
-rw-r--r-- | lexical.c | 18 | ||||
-rw-r--r-- | main.c | 22 |
2 files changed, 26 insertions, 14 deletions
@@ -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 ; } @@ -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; |