Qual idioma é útil para criar um relatório para um programa C válido [fechado]

StackOverflow https://stackoverflow.com/questions/85230

  •  01-07-2019
  •  | 
  •  

Pergunta

Alguém pode me sugerir uma linguagem de programação útil que pode ser usado para criar uma ferramenta que irá analisar o programa C dado e gerar um relatório txt ou html relatório contendo informações sobre o programa dado (lista função, lista de variáveis ??etc). O programa que eu pretendo construir é semelhante ao doxygen, mas eu quero isso para meu uso pessoal.

Foi útil?

Solução

Tanto o Python e Perl tem excelentes capacidades de processamento de string.

Eu sugiro usar algo como ctags para analisar o programa, e apenas criar um script para ler o arquivo ctags e saída em txt / html.

O formato de arquivo usado pelo ctags é bem definido para que outros programas possam lê-lo. Consulte http://ctags.sourceforge.net para obter mais informações sobre si mesmo eo arquivo que usa ctags.

Outras dicas

ctags , talvez?

Ctags gera um arquivo de índice (ou tag) da linguagem objetos encontrados em arquivos de origem que permite que esses itens para ser rápida e facilmente localizado por um editor de texto ou outro utilitário. Uma tag significa um objeto idioma para o qual uma entrada de índice está disponível (ou, em alternativa, a entrada de índice criado para esse objeto).

Você está abrindo uma grande lata de vermes, este não é um uso eficaz do seu tempo, blá, blá, blá, etc.

Passando para uma resposta, se você está falando sobre qualquer coisa além da análise trivial e você precisa de precisão, você vai precisar para analisar o código-fonte C. Você pode fazer isso em qualquer idioma, mas você quase certamente vai querer gerar seu analisador de uma gramática de alto nível. Há um sem número de ferramentas para isso. Um gerador de analisador moderno e particularmente poderoso é ANTLR ; há uma série de gramáticas ANTLR para C, incluindo subconjuntos mais fácil de trabalhar-com.

Olhe em linguagens de script. Eu recomendo Python ou Perl.

Haskell tem uma relativamente recente projeto de linguagem c http://www.sivity.net/ projectos / language.c que permite a análise de código C.

Se você está familiarizado com Haskell, então talvez seja olhar a pena. Mesmo se você não for, pode ser interessante ter um ir.

Se é uma linguagem de programação que você quer, então eu diria que algo que é conhecida por poder de processamento seqüência de modo que significaria perl.

No entanto, a tarefa, você precisa pode ser bastante complicado, pois você precisa 'saber' a língua, para que exigiria a seguir os mesmos passos que o compilador faz, sendo análises lexicais e gramaticais no idioma (acho Flex, pense yacc) a fim de realmente 'conhecer' o que significa aquelas cordas têm.

Talvez o melhor ponto de partida é dar uma olhada em doxygen e tentar reutilizações como muito do trabalho feito lá quanto possível

Lex / yacc são apropriados para a construção de analisadores.

pycparser é um analisador completo para ANSI C89 / C90 escrito em puro Python. Ele está sendo amplamente utilizado para analisar o código fonte C para diversas necessidades. Ele vem com um código de exemplo, como listando todas as definições de funções em arquivos, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top