Skip to content

Commit

Permalink
Merge pull request #12 from DanielVenturini/análise_sintática
Browse files Browse the repository at this point in the history
Fix segmentation fault suprimivel com o printf
  • Loading branch information
DanielVenturini authored Nov 6, 2018
2 parents 17f22d7 + b9c47ce commit 580dc23
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
6 changes: 4 additions & 2 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ void separaArquivosFlags(int argc, char *argv[]) {
} else
arquivos[a ++] = argv[i];
}

arquivos[a] = 0; // encerrar a lista de arquivos
}

// imprime a linha com os cantos formatados
Expand Down Expand Up @@ -114,9 +116,9 @@ int main(int argc, char *argv[]) {
token = (TR *) token->proximo; // substitui para verificar se não chegou no fim
}

printf("ARQUIVO: %s.\n", arquivos[i]);
if(flags[0]) { // se a flag para tokens for setada: --tokens -tk
token = primeiro;
printf("Arquivo: %s.\n", arquivos[i]);
do {
printToken(token, 1, 1); // se 0, não printar número da linha/caracter; se 1, printar
token = (TR *) token->proximo; // avança para o próximo
Expand All @@ -132,7 +134,7 @@ int main(int argc, char *argv[]) {
if(flags[1])
printArvoreX(ast, arquivos[i], 0); // 0 indica que a árvore é da análise sintática
if(flags[2])
printArvoreT(ast, arquivos[i]);
printArvoreT(ast);

i ++;
}
Expand Down
4 changes: 1 addition & 3 deletions tree/tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,9 +366,7 @@ void printArvoreT1(TreeNode *raiz, Stack *pilha) {
}
}

void printArvoreT(TreeNode *raiz, char *nomeArquivo) {
printf("Arquivo: %s.\n", nomeArquivo);

void printArvoreT(TreeNode *raiz) {
Stack *pilha = createStack(1000); // inicialmente com 1000
printArvoreT1(raiz, pilha);
printf("\n");
Expand Down
2 changes: 1 addition & 1 deletion tree/tree.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ void insere_filho(TreeNode *pai, TreeNode *filho); // dado o pai, insere o fil
// para adicionar um '.ax' ou '.as' no fim do nome do arquivo passado para o xdot, caso as duas árvores seja
// exibidas ao mesmo tempo
void printArvoreX(TreeNode *raiz, char *nomeArquivo, char analise); // a partir deste nó, printa a árvore no xdot
void printArvoreT(TreeNode *raiz, char *nomeArquivo); // a partir deste nó, printa a árvore no terminal
void printArvoreT(TreeNode *raiz); // a partir deste nó, printa a árvore no terminal

#endif

0 comments on commit 580dc23

Please sign in to comment.