Implementace překladače jazyka IFJ22 (podmnožina jazyka PHP) v jazyce C.
Byl uplatněn algoritmus prediktivního syntatktického analyzátoru.
Pro analýzu výrazů byl použit algoritmus precedence.
cmake -B build -S . && cmake --build build
- Překladac očekává soubor s kódem v jazyce IFJ22 na standardním vstupu.
./build/IFJ
- Testováno převážně pomocí studenstkých testů
- Jan Kalenda: Precedenční SA, generátor(operátory), testovací kostra, vedení tymu, sémantická analýza, CI/CD
- Tereza Kubincov́a: Prediktivní SA, generátor(if,while,funkce) tabulka symbol̊u, makefile, sémantická analýza
- Jaroslav Streit: Lexikální analýza, generátor(builtins), testy
- Jan Vacula: Dokumentace, testy
Procentuální hodnocení modulů překladače:
Lexikální analýza (detekce chyb): 100 % (165/165)
Syntaktická analýza (detekce chyb): 90 % (188/208)
Sémantická analýza (detekce chyb): 90 % (330/363)
Interpretace přeloženého kódu (základní): 95 % (272/285)
Interpretace přeloženého kódu (výrazy, vest. funkce): 96 % (178/185)
Interpretace přeloženého kódu (komplexní): 66 % (246/370)
STRNUM 0 % (0/100)
BOOLTHEN 0 % (0/150)
CYCLES 22 % (22/100)
FUNEXP 100 % (150/150)
GLOBAL 0 % (0/50)
OPERATORS 0 % (0/100)
Celkem bez rozšíření: 87 % (1379/1576)