cparser — это рекурсивный анализатор C99, написанный на C99. Он содержит препроцессор, лексер, парсер, строит AST и выполняет семантический анализ. Он действует как интерфейс для библиотеки промежуточных представлений libFirm. Таким образом осуществляется оптимизация и генерация кода. Компилятор поддерживает кросс-компиляцию для нескольких целевых архитектур с помощью переключателя командной строки. Он поставляется с логикой драйвера для вызова ассемблеров и компоновщиков, а также анализа параметров командной строки. Это позволяет во многих ситуациях заменить gcc или clang.
Требования:
Распакуйте libfirm в каталог с именем libfirm в исходном каталоге. Альтернативно вы можете настроить альтернативное местоположение с помощью файла «config.mak». Просто введите «make» в исходном каталоге. Результаты помещаются в каталог под названием «build». Вы можете переопределить существующие флаги препроцессора, компилятора и компоновщика, а также встроенные пути для каталогов включения, создав файл config.mak.
cparser имеет дополнительную систему сборки cmake. CMake — более сложная система сборки, чем сборка на основе make, и большинство разработчиков cparser ее не используют. Однако он может адаптировать флаги компилятора и компоновщика для создания общих библиотек для более широкого круга систем, обеспечивает цель установки и часто более знаком людям, готовящим пакеты для распространения.
Хотя cparser часто работает нормально из каталога source/build, правильная установка должна быть настроена с правильными системными путями. Для этого необходимо создать файл config.mak и установить соответствующие для системы следующие переменные: PREFIX , SYSTEM_INCLUDE_DIR , LOCAL_INCLUDE_DIR , COMPILER_INCLUDE_DIR , MULTILIB_M32_TRIPLE , MULTILIB_M64_TRIPLE , variant=optimize . Переменная может быть определена пустой; Подробности смотрите config.default.mak и Makefile .
Официальный сайт: http://libfirm.org/
Контактный адрес электронной почты:[email protected]
Список рассылки: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Система отслеживания ошибок: http://pp.ipd.kit.edu/~firm/bugs.
Интернет-чат: irc://chat.freenode.net/#firm