Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lfa:proiect:checker [2022/01/11 19:06]
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 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 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).
  
-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. 
  
 ==== Detalii pentru Python 3 ==== ==== Detalii pentru Python 3 ====
  
 Checker-ul pentru Python3 se ruleaza dand o comanda de forma ''​python3 Tester.py [-h] [--stage STAGE] [--set SET] [--test TEST]'',​ unde: Checker-ul pentru Python3 se ruleaza dand o comanda de forma ''​python3 Tester.py [-h] [--stage STAGE] [--set SET] [--test TEST]'',​ unde:
-  * ''​stage''​ reprezinta indexul etapei testate (parametru optional; default: 1), pentru Etapa 3 putand fi 3, 3-regex sau 3-prog ​(3 si 3-prog vor deveni functionale dupa viitoare actualizare a checker-ului);​ astfel, **numai optiunea 3-regex e momentan disponibila pentru Etapa 3**+  * ''​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.+  * ''​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 ​o functie ​''​runcompletelexer''​. Functia ''​runcompletelexer''​ va primi ca argumente (in ordine) calea catre fisierul ''​.lex''​ (ce contine specificatia lexicala sub forma unor expresii regulatea 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>''​).+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 lexicalasub forma unor expresii regulatea 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 in scheletul ''​ast.py''​.
  
 ==== Detaii pentru Haskell ==== ==== Detaii pentru Haskell ====
-In curand.+Verficarea in cadrul prezentarilor se va face manual impreuna cu asistentul/​a de laborator.