compiler README

The project's README from github.com/edgcpp/compiler. As one markdown file: README.md.

EDG Compiler Project

Welcome to the open source EDG C/C++ compiler project!

About

The EDG C/C++ front end is the primary focus of this repository. The EDG front end is known for: its excellent parsing compatibility and bug emulation, to make sure source that compiles with Clang, GCC, and MSVC compiles with EDG; extensive documentation, to assist with development and modification; and extreme configurability, to allow it to be derived for use into a large number of C/C++ oriented products.

The compiler project also includes: a C-generating back end, which can be used to generate C code for C++ programs; a C++-generating back end, which is useful for source-to-source transformation applications; a prelinker, which handles automatic template instantiation; a minimal runtime support library (but not any "real" libraries, e.g., for stream I/O); utilities to write the intermediate language to a file, read it back in, and display it in human-readable form; a name demangler; and a collection of purpose built development tools.

Documentation

See the documentation on: https://edgcpp.org/doc/.

[!NOTE]

If you would like to build a local copy of the documentation see the documentation build guide.

Building & Contributing

To get started, it's recommended for most people to clone the repository using a partial clone (this keeps a full copy of the git history while only downloading the most recent version of each file, git can implicitly fetch older versions as needed):

git clone --filter=blob:none [email protected]:edgcpp/compiler.git

If you are looking to build the front end from source and use it, please see the build instructions.

If you are looking to make changes to the front end, please see the contribution guide and the development guide for quickly getting setup.

Tips, Tricks, & Tutorials

To further aid humans and AI agents in product development there is additional documentation for tips, tricks, and tutorials that can be found in the development annex.

compiler (edgcpp/compiler)

Searching Database…

Что это?Это проект открытого C/C++-фронтенда компилятора EDG: парсер и семантический анализатор для C и C++, знаменитый тем, что повторяет поведение Clang, GCC и MSVC при разборе кода (включая их причуды), чтобы вендоры могли встраивать его в собственные инструменты.
Это полноценный компилятор, создающий машинный код, или только фронтенд?Это прежде всего фронтенд (лексер/парсер/семантический анализатор), а не компилятор с кодогенерацией машинного кода. В комплекте идут бэкенды, которые заново генерируют исходники C или C++ для сценариев «исходник в исходник», а не нативные бинарники.
Для кого на самом деле предназначен этот фронтенд?Компаниям и разработчикам, создающим собственные компиляторы, IDE, статические анализаторы или инструменты «исходник в исходник»: EDG задуман как предельно настраиваемый продукт, из которого выводятся самые разные решения для C/C++, а не как готовый самостоятельный компилятор.
Какие дополнительные инструменты идут в комплекте с фронтендом, кроме разбора кода?Также в комплект входят прелинкер, отвечающий за автоматическое инстанцирование шаблонов, утилиты для дампа/чтения/просмотра промежуточного языка, деманглер имён и небольшая библиотека поддержки времени выполнения (полных реализаций стандартной библиотеки нет).
Почему здесь так важно совпадение разбора кода с Clang/GCC/MSVC?Поскольку EDG предназначен для встраивания в компиляторы и инструменты других вендоров, код, который уже собирается основными компиляторами, должен собираться EDG без изменений — вплоть до воспроизведения их ошибок разбора ради совместимости.
Creator
edgcpp
Size
194.8 MB
Stars
936
Updated
CommitOct 16
Age
25d
Commits · 90 Days