astyle não altera a formatação do arquivo de origem

0

Por que o programa astyle não está formatando meu arquivo-fonte c?

Histórico: copiei e colei um arquivo-fonte c do gitlab e, por algum motivo, o arquivo resultante foi embaralhado. Eu estava esperando poder executar o arquivo por meio de um arquivo e sair com um arquivo bem formatado, mas minhas várias tentativas não tiveram efeito. Cada tentativa resultou em uma mensagem dizendo "Inalterado ecl-hello-world.c"

Este é o arquivo de origem malformado:

#include <stdio.h> #include <ecl/ecl.h> int main (int argc, char **argv) {   /* Initialize ECL */   cl_boot(argc, argv);   /* Initialize the library we linked in. Each library    * has to be initialized. It is best if all libraries    * are joined using ASDF:MAKE-BUILD.    */   extern void init_lib_HELLO_LISP(cl_object);   ecl_init_module(NULL, init_lib_HELLO_LISP);   cl_object result= cl_eval(c_string_to_object("(hello-lisp)"));   ecl_print(result, ECL_T);   cl_object my_fun = cl_eval(c_string_to_object("(lambda (x) (1+ x))"));   ecl_print(my_fun, ECL_T);   result=cl_funcall(2, my_fun, ecl_make_fixnum(8));   ecl_print(result, ECL_T);   ecl_terpri(ECL_T);   cl_shutdown();   return 0; }

Aqui estão as invocações do astyle que eu tentei:

astyle ecl-hello-world.c

astyle --style=allman --indent=spaces=4 ecl-hello-world.c

astyle --style=linux ecl-hello-world.c

    
por pdoherty926 22.11.2017 / 19:29

1 resposta

1

O problema é que uma instrução de pré-processador C deve estar em uma linha sozinha; você não pode ter dois #includes na mesma linha e você não pode ter sua definição principal após o #include.

Quando eu tentei do jeito que você tinha colado eu recebi a mesma mensagem de erro que você fez (mesmo sabendo que um compilador iria jogar um ajuste). Depois de adicionar uma quebra de linha após cada #include, formatou-a. Então, a menos que você apenas simplifique isso para colá-lo, provavelmente é por isso; certamente não funcionou até depois de eu ter feito essa mudança.

Editar:

Eu apenas tentei com o recuo do GNU também. Também falha. A resposta parece ser realmente corrigir a primeira parte do arquivo. Por que não detecta e faz isso em si? Boa pergunta. Existe uma maneira de fazê-lo funcionar além de formatar o arquivo em si um pouco antes? Eu não sei, mas parece que não.

    
por 31.01.2018 / 00:50

Tags