O que define um comentário num arquivo .c?
/* ...
...
... */
e também é aceito na maior parte dos compiladores
... // ... \n
Você pode fazer um parsing do seu arquivo .c, ao encontrar //, você irá marcar o comentário até encontrar um \n
Ao encontrar um /* irá marcar (linha, coluna) e continuará processando até encontrar um */, aonde marcará o fim do comentário.
O compilador não aceita comentários /* ... */ aninhados, apresenta erro. No entanto, é possivel ter // dentro de comentários de bloco, o que precisa ser tratado.
Não é difícil de implementar.
Basicamente:
fopen(..) // Abre o arquivo
while( fgets(..) )
{
// procura as strings características e processa os casos especiais de bloco de comentários
strstr(..);
strtok(..);
[...]
etc
}
fclose(..);
cox