AST Parsing in C/C++ files

Hello all,

My question is quite simple, not sure about the complexity of the explanation: the AST generated for a file when having .c extension vs when it has .cc is different even having the same content, is there a reason for this behavior? I am building a tool that needs parsing C/C++ files so I have files with the extension .c, .cc, .cpp. All .c and .cpp seem to work properly, but not the .cc files. I have tried those .c files working to change the extension to .cc and they stop working; so there is something that I do not understand. The reason is that, probably, I am missing or misunderstanding something.
Thank you.

Kind regards,

.cc is typically a C++ extension, so they are being parsed as C++ files. The AST ends up being different because the rules/meaning of the code changes slightly (less slightly in some cases!) with the language.

You can force the language to be C or C++ with the command line: ā€œ-x cā€ or ā€œ-x c++ā€

Note also that the AST changes with dialect (c++11 etc).