В ответ на @ tschwinge
Я только что нашел LLIR («Неофициальные библиотеки для взаимодействия с LLVM IR»), который включает в себя (WIP?) грамматику репозиторий («Грамматика BNF для сборки IR LLVM»).
Один из оригинальных авторов здесь. Хранилище грамматики действительно находится в процессе разработки, и цель состоит в том, чтобы определить грамматику BNF для представления на ассемблере LLVM IR. Текущий прогресс может быть отслежен на https://github.com/llir/llvm/blob/master/current.md
В будущем мои друзья и я хотели бы внести эту грамматику обратно в официальный проект LLVM и хотели бы, чтобы лексер и парсер были однажды сгенерированы из грамматики BNF, поскольку это обеспечило бы указание даты.
Проблема, с которой мы столкнулись при написании грамматики BNF, заключается в том, что не существует единого источника истины (ну, конечно, кроме исходного кода). Мы сравнили комментарии исходного кода BNF с документацией LangRef, и иногда они не были синхронизированы с реальным кодом C ++, что приводило к некоторой путанице.
Текущий статус грамматики BNF таков, что она поддерживает все инструкции и выражения констант LLVM IR. Для поддержки всех концепций LLVM IR все еще необходимо добавить несколько небольших дополнений, и в настоящее время мы работаем над поддержкой метаданных DWARF. Общие узлы метаданных уже поддерживаются.
С наилучшими пожеланиями,
/ u & i