agluszak / rust-latte-compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kompilator Latte

Autor: Andrzej Głuszak (385527)

Opis

Projekt napisany jest w Ruście. Make powinno działać z zainstalowanym kompilatorem rusta. Gdyby tak jednak nie było, to latc można uruchamiać, pisząc:

cargo run -- <ścieżka/do/pliku.lat>

Biblioteka standardowa latte napisana jest w C. Oprócz wymaganych funkcji zaimplementowałem newString oraz stringConcat. Nie można ich wywołać w latte.

Wersja LLVM: 14.

Biblioteki

  • logos - lexer
  • lalrpop - generator parserów
  • insta - snapshot testing
  • ariadne - ładne raportowanie błędów
  • anyhow - konwersja błędów
  • either, tempfile - używane w testach
  • inkwell - rustowe API do LLVM

Struktura

Projekt podzielony na moduły. Przepływ informacji jest standardowy: lexer -> parser -> typechecker -> dfa (w tym momencie trochę zbędne, bo robione na poziomie AST) -> ssa ir (algorytm Brauna) -> codegen llvm

Rozszerzenia

W tym momencie brak.

About


Languages

Language:Rust 98.2%Language:C 1.7%Language:Makefile 0.1%