Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lfa:proiect:checker [2022/01/11 19:14] stefan.stancu [Etapa 3] |
lfa:proiect:checker [2022/01/11 19:27] (current) stefan.stancu [Detalii pentru Python 3] |
||
---|---|---|---|
Line 42: | Line 42: | ||
==== Etapa 3 ==== | ==== Etapa 3 ==== | ||
- | De aici ({{:lfa:proiect:checker_etapa3.zip|}}) puteti descarca arhiva ce contine checker-ul de Python3 pentru Etapa 3, impreuna cu folder-ul de teste. | + | De aici ({{:lfa:proiect:checker_etapa3.zip|}}) puteti descarca arhiva ce contine checker-ul (''Tester.py'') de Python3 pentru Etapa 3, impreuna cu folder-ul de teste. |
- | Script-ul ''Tester.py'' este **o varianta imbunatatia a celui oferit pentru Etapa 1**. Ca urmare, aceasta poate fi folosit pentru verificarea atat a primeia, cat si a celei de-a treia etape, **pastrand aceeasi functionalitate ca in cazul Etapei 1**. | + | Script-ul ''Tester.py'' este **o varianta imbunatatia a celui oferit pentru Etapa 1**. Ca urmare, acesta poate fi folosit pentru verificarea atat a primeia, cat si a celei de-a treia etape, **pastrand aceeasi functionalitate in cazul Etapei 1**. |
- | Punctajul total calculat de checker (pentru Etapa 3.1) este de 107p, ce va fi scalat pentru a se incadra in maximul de 0.7p corespunzator primei parti a Etapei 3. Pentru Etapa 3.2, punctajul este de 8p, fiind de asemenea scalat pentru a se incadra in maximul respectiv de 0.3p. In orice caz, checker-ul va afiseaza la final si nota finala pe etapa/subetapa pe care rulati (nu se aplica daca rulati doar un singur test sau set de teste). | + | Punctajul total calculat de checker pentru Etapa 3.1 este de 107p, ce va fi scalat pentru a se incadra in maximul corespunzator de 0.7p. Pentru Etapa 3.2, punctajul este de 8p, fiind de asemenea scalat pentru a se incadra in maximul corespunzator de 0.3p. Pentru claritate, checker-ul afiseaza si nota finala pe etapa/subetapa pe care rulati (nu se aplica daca rulati doar un singur test sau set de teste). |
Line 54: | Line 54: | ||
* ''stage'' reprezinta indexul etapei testate (parametru optional; default: 1), pentru Etapa 3 putand fi 3, 3-regex sau 3-prog | * ''stage'' reprezinta indexul etapei testate (parametru optional; default: 1), pentru Etapa 3 putand fi 3, 3-regex sau 3-prog | ||
* ''set'' reprezinta numele setului testat (parametru optional; ex.: --set T3.1) | * ''set'' reprezinta numele setului testat (parametru optional; ex.: --set T3.1) | ||
- | * ''test'' reprezinta indicele testului din cadrul unui anumit set (parametru optional, trebuie specificat impreuna cu --set; ex.: --test 1). Ca urmare, puteti testa fie o intreaga etapa, fie un set dintr-o etapa, fie un anumit test dintr-un set dintr-o etapa. Exceptie face rularea unui test specific din partea de parsare de program a etapei (3.2): **daca rulati cu --stage 3-prog, trebuie sa mentionati direct testul, fara set**. | + | * ''test'' reprezinta indicele testului din cadrul unui anumit set (parametru optional, trebuie specificat impreuna cu --set; ex.: --set T3.1 --test 1). Ca urmare, puteti testa fie o intreaga etapa, fie un set dintr-o etapa, fie un anumit test dintr-un set dintr-o etapa. Exceptie face rularea unui test specific din partea de parsare de program a etapei (3.2): **daca rulati cu --stage 3-prog, trebuie sa mentionati direct testul, fara set**. |
Fisierul ''Tester.py'' trebuie sa se afle in acelasi director impreuna cu un modul numit ''CompleteLexer.py'', ce exporta doua functii: ''runcompletelexer'' (pentru etapa 3.1) si ''runparser'' (pentru etapa 3.2). | Fisierul ''Tester.py'' trebuie sa se afle in acelasi director impreuna cu un modul numit ''CompleteLexer.py'', ce exporta doua functii: ''runcompletelexer'' (pentru etapa 3.1) si ''runparser'' (pentru etapa 3.2). | ||
- | * Functia ''runcompletelexer'' va primi ca argumente (in ordine) calea catre fisierul ''.lex'' (ce contine specificatia lexicala sub forma unor expresii regulate) a unui set de teste, calea catre un fisier ''.in'' (ce contine sirul de lexat) si calea catre un fisier ''.out'' unde va trebui sa printeze perechile ''<token,lexem>'' conform formatului din cadrul fisierelor ''.ref'' (ex. de linie: ''<NUME_TOKEN_CU_MAJUSCULE><SPATIU><LEXEM_ASA_CUM_APARE_IN_INPUT>''). | + | * Functia ''runcompletelexer'' va primi ca argumente (in ordine) calea catre fisierul ''.lex'' (ce contine specificatia lexicala, sub forma unor expresii regulate, a unui set de teste), calea catre un fisier ''.in'' (ce contine sirul de lexat) si calea catre un fisier ''.out'' unde va trebui sa printeze perechile ''<token,lexem>'' conform formatului din cadrul fisierelor ''.ref'' (ex. de linie: ''<NUME_TOKEN_CU_MAJUSCULE><SPATIU><LEXEM_ASA_CUM_APARE_IN_INPUT>''). |
- | * Functia ''runparser'' va primi ca argumente (in ordine) calea catre un fisier de input si calea catre un fisier de output, unde va trebui sa printeze rezultatul parsarii programului de intrare confom formatului stabilit. | + | * Functia ''runparser'' va primi ca argumente (in ordine) calea catre un fisier de input si calea catre un fisier de output, unde va trebui sa printeze rezultatul parsarii programului de intrare confom formatului stabilit in scheletul ''ast.py''. |
==== Detaii pentru Haskell ==== | ==== Detaii pentru Haskell ==== | ||
Verficarea in cadrul prezentarilor se va face manual impreuna cu asistentul/a de laborator. | Verficarea in cadrul prezentarilor se va face manual impreuna cu asistentul/a de laborator. |