Próbuję opracować kompilator oparty na infrastrukturze LLVM. Mój język ma składnię w stylu C, więc chciałbym wykorzystać istniejące kompilatory języka C. Obecnie koncentruję się na interfejsie użytkownika (analiza leksykalna, analiza składniowa), ale nie mam pojęcia, która metoda będzie najlepsza. Clang, llvm-gcc lub tradycyjne narzędzia flex/bison?nakładka na kompilator oparty na LLVM
Jestem szczególnie zainteresowany najprostszym rozwiązaniem, które pozwoliłoby mi wygenerować kod LLVM IR dla późniejszych etapów mojego kompilatora.
Jeśli robisz własne parsowania i analizy semantycznej, wytwarzając LLVM IR będzie być wystarczająco łatwe. Mogłeś ponownie użyć istniejącego interfejsu, takiego jak Clang, gdybyś musiał pożyczyć dużą część składni C. W przeciwnym razie nie warto, generowanie IR jest banalne, gdy masz już ważną AST. –
Dzięki. Co powinienem użyć do generowania IR z AST? –
użyj tylko prostych reguł podstawiania - patrz przykład Kalejdoskop LLVM. –