Мне любопытно, есть ли какие-нибудь проекты, которые могут взять дерево синтаксического анализа LLVM и заново сгенерировать из него исходный код. Я особенно думаю о C / C ++.
Если «дерево разбора LLVM» является AST от clang
Да, вы можете восстановить источник из AST Clang. Некоторые ссылки:
Если «дерево разбора LLVM» — это LLVM IR
Было несколько проектов по генерации источников из LLVM IR. Первый, «C back-end» был сброшен в LLVM 3.1.
Сейчас есть несколько проектов для генерации C из LLVM IR:
Воскресший «C back-end» Роэл Джорданс
[LLVMdev] [RFC] Воскрешение бэкэнда C (Почтовая рассылка), через цитируемые новости phoronix
«C ++ -> LLVM IR -> Emscripten -> asm.js -> C«цепь
Прототип компилятора LLVM IR => C («c backend»), через LLVM Weekly — # 15