cparser é um analisador C99 descendente recursivo escrito em C99. Ele contém um pré-processador, lexer, analisador, constrói um AST e faz análise semântica. Ele atua como um frontend para a biblioteca de representação intermediária libFirm. Desta forma é realizada a otimização e geração de código. O compilador suporta compilação cruzada para múltiplas arquiteturas de destino com uma opção de linha de comando. Ele vem com lógica de driver para chamar montadores e vinculadores, bem como analisar opções de linha de comando. Isso permite que ele seja um substituto imediato para o gcc ou clang em muitas situações.
Requisitos:
Descompacte libfirm em um diretório chamado libfirm no diretório de origem. Alternativamente, você pode configurar um local alternativo com um arquivo 'config.mak'. Basta digitar 'make' no diretório de origem. Os resultados são colocados em um diretório chamado "build". Você pode substituir os sinalizadores de pré-processador, compilador e vinculador existentes e caminhos integrados para diretórios de inclusão criando um arquivo 'config.mak'.
cparser possui um sistema de compilação cmake adicional. CMake é um sistema de construção mais complexo do que a construção baseada em make e a maioria dos desenvolvedores de cparser não o utiliza. No entanto, ele pode adaptar os sinalizadores do compilador e do linker para construir bibliotecas compartilhadas para uma ampla gama de sistemas, fornece um alvo de instalação e é frequentemente mais familiar para pessoas que preparam pacotes para distribuição.
Embora o cparser geralmente funcione bem no diretório source/build, uma instalação adequada deve ser configurada com os caminhos de sistema corretos. Para isso deve ser criado um arquivo config.mak
e definidas as seguintes variáveis apropriadamente para o sistema: PREFIX
, SYSTEM_INCLUDE_DIR
, LOCAL_INCLUDE_DIR
, COMPILER_INCLUDE_DIR
, MULTILIB_M32_TRIPLE
, MULTILIB_M64_TRIPLE
, variant=optimize
. A variável pode ser definida vazia; Consulte config.default.mak
e Makefile
para obter detalhes.
Site oficial: http://libfirm.org/
E-mail de contato: [email protected]
Lista de discussão: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Rastreador de bugs: http://pp.ipd.kit.edu/~firm/bugs
Bate-papo de retransmissão da Internet: irc://chat.freenode.net/#firm