Closed Mikynek closed 2 years ago
Jasný, ale tak to je potom na implementaci v syn-analyzer, kterej čeká na gramatiku. Vynechávání komentářů a bílých znaků funguje (je pravda, že testuju jenom mezery, tak přidám testy na tab) Sice neposíláme token open tagu, ale víme, že tam je, pokud to prolezlo lex analyzerem
Dalo by sa to pridať do checkProlog() , s tým, že by funkcia volala 7x getToken (je tam 7 rôznych tokenov) a porovnala by ich s predurčeným prologom. Aspoň sa nebudú posielať zbytočné tokeny do synAnal. V prípade chyby sa nastaví error na 2 aj keď sa to bude spacovávať v lexAnal.
Mimochodom tabulátor nerobí problémy
Bude potřeba se víc poprat s prologem, který obsahuje povinnou strukturu, aby byl program validní, vypadá následovně:
Mezi <?php a declare musí být mezera - respektive libovolný počet bílých znaků (mezera, tabulátor, komentář a odřádkování), před
<?php
žádný znak být nesmí. Více o problematice v zadání v sekci 4.1 Základní struktura jazyka. Nebo zde: https://moodle.vut.cz/mod/forum/discuss.php?d=1065Určitě nám momentálně chybí kontrola pro tabulátor a komentář a potom kontrola pro samotný
declare(strict_types=1);
. Na democviku také navíc Křivka doporučoval - "Prolog řeší SYN-ANAL, který bude očekávat 2 tokeny oddělené povinnou mezerou (tabulátorem, odřádkování, komentářem), pokud ne nastává SYNTAKTICKÁ CHYBA (návratová hodnota 2)." - (YT záznam democvika - čas 27:20-28:55 a 49:18)