cparser es un analizador C99 de descenso recursivo escrito en C99. Contiene un preprocesador, lexer, analizador, construye un AST y realiza análisis semántico. Actúa como interfaz para la biblioteca de representación intermedia libFirm. De esta forma se realiza la optimización y generación de código. El compilador admite la compilación cruzada en múltiples arquitecturas de destino con un modificador de línea de comandos. Viene con lógica de controlador para llamar a ensambladores y enlazadores, así como para analizar opciones de línea de comandos. Esto le permite ser un reemplazo directo de gcc o clang en muchas situaciones.
Requisitos:
Desempaquete libfirm en un directorio llamado libfirm en el directorio de origen. Alternativamente, puede configurar una ubicación alternativa con un archivo 'config.mak'. Simplemente escriba 'make' en el directorio fuente. Los resultados se colocan en un directorio llamado "build". Puede anular los indicadores existentes del preprocesador, compilador y vinculador y las rutas integradas para los directorios de inclusión creando un archivo 'config.mak'.
cparser tiene un sistema de compilación cmake adicional. CMake es un sistema de compilación más complejo que la compilación basada en make y la mayoría de los desarrolladores de cparser no lo utilizan. Sin embargo, puede adaptar los indicadores del compilador y del vinculador para crear bibliotecas compartidas para una gama más amplia de sistemas, proporciona un objetivo de instalación y, a menudo, resulta más familiar para las personas que preparan paquetes para su distribución.
Si bien cparser a menudo se ejecuta bien desde el directorio fuente/compilación, se debe configurar una instalación adecuada con las rutas correctas del sistema. Para esto, se debe crear un archivo config.mak
y configurar las siguientes variables adecuadamente para el sistema: PREFIX
, SYSTEM_INCLUDE_DIR
, LOCAL_INCLUDE_DIR
, COMPILER_INCLUDE_DIR
, MULTILIB_M32_TRIPLE
, MULTILIB_M64_TRIPLE
, variant=optimize
. La variable puede definirse vacía; Consulte config.default.mak
y Makefile
para obtener más detalles.
Sitio web oficial: http://libfirm.org/
Correo electrónico de contacto: [email protected]
Lista de correo: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Rastreador de errores: http://pp.ipd.kit.edu/~firm/bugs
Chat de retransmisión por Internet: irc://chat.freenode.net/#firm