Я пытаюсь разработать компилятор на основе инфраструктуры LLVM. Мой язык имеет синтаксис типа C, поэтому я хотел бы использовать существующие компиляторы C. Сейчас я сосредоточен на интерфейсе (лексический анализ, синтаксический анализ), но я смущен тем, какой интерфейс лучше всего подходит. Clang, llvm-gcc или традиционные инструменты flex/bison?frontend to LLVM-based компилятор
Меня особенно интересует простейшее решение, которое позволит мне генерировать IR-код LLVM для последующих этапов моего компилятора.
Если вы делаете свой собственный синтаксический и семантический анализ, генерирующий LLVM IR будет быть достаточно легким. Вы могли бы повторно использовать существующий интерфейс, например Clang, если бы вам пришлось брать большую часть синтаксиса C. В противном случае это не стоит, генерирование IR тривиально, как только вы получите действующий АСТ. –
Спасибо. Что я должен использовать для генерирования IR из AST? –
используйте простые правила подстановки - см. Пример LLVM Kaleidoscope. –