Теперь мне нужно знать, могу ли я использовать существующий компилятор Promela, созданный с помощью yacc, для быстрого создания синтаксического анализатора (а затем и генератора IR) с использованием каркаса llvm.
Да, вы можете повторно использовать существующую YACC-грамматику (и, если хотите, даже существующую AST) для вашего проекта.«Создание синтаксического анализатора с использованием среды llvm» немного вводит в заблуждение, хотя LLVM не будет иметь ничего общего с анализом и AST.LLVM не войдет в него, пока вы не сгенерируете LLVM IR, а затем поработаете с ним.
Таким образом, вы либо берете существующую грамматику YACC и существующую AST, либо вы берете только грамматику и заменяете действия теми, которыесоздайте свой собственный AST, который вы определили сами.В любом случае, эта часть не будет включать LLVM.
Затем вы напишете отдельную фазу, которая обходит AST и генерирует LLVM IR с использованием API LLVM, на котором вы можете затем выполнить все преобразования и анализы, поддерживаемыеLLVM.