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