Por que o programa astyle não está formatando meu arquivo de origem c?
Histórico: copiei e colei o arquivo de origem ac do gitlab e, por algum motivo, o arquivo resultante estava confuso. Eu esperava ser capaz de executar o arquivo em um estilo e sair com um arquivo bem formatado, mas minhas várias tentativas não surtiram efeito. Cada tentativa resultou em uma mensagem dizendo: "Unchanged ecl-hello-world.c"
Aqui está 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 de um estilo 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
O problema é que uma instrução do pré-processador C precisa estar em uma linha sozinha; você não pode ter dois #include na mesma linha e não pode ter sua definição principal após o #include.
Quando tentei da maneira que você colou, recebi a mesma mensagem de erro que você (mesmo sabendo que um compilador teria um ataque). Depois de adicionar uma quebra de linha após cada #include, ele foi formatado. Portanto, a menos que você apenas simplifique isso para colá-lo, provavelmente é por isso; certamente não funcionou até depois que fiz essa alteração.
Editar:
Eu apenas tentei com recuo GNU também. Também falha. A resposta parece ser realmente consertar a primeira parte do arquivo. Por que ele não detecta e faz isso sozinho? Boa pergunta. Existe uma maneira de fazê-lo funcionar além de formatar o próprio arquivo um pouco primeiro? Não sei, mas parece que não.