Differences

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

Link to this comparison view

Both sides previous revision Previous revision
lfa:2025:proiect:etapa2 [2025/11/25 19:06]
pdmatei
lfa:2025:proiect:etapa2 [2025/11/25 20:48] (current)
ldaniel
Line 74: Line 74:
 Un parser foloseste output-ul produs de lexer pentru etapa de analiza sintactica a textului. ​ Un parser foloseste output-ul produs de lexer pentru etapa de analiza sintactica a textului. ​
  
-Construim un parser pe baza unei gramatici care contine reguli ce descriu sintaxa valida a inputului. O astfel de gramatica va folosi ​lexemele ​generate de analiza lexicala in rolul de terminali.+Construim un parser pe baza unei gramatici care contine reguli ce descriu sintaxa valida a inputului. O astfel de gramatica va folosi ​categoriile lexicale ​generate de analiza lexicala in rolul de terminali.
  
 === Sintaxa pentru gramatici === === Sintaxa pentru gramatici ===
Line 121: Line 121:
 3. Completati specificatia pentru Lexerul de expresii lambda in fisierul "​**lexer_spec.json**",​ adaugand regex-ul potrivit pentru fiecare Token. 3. Completati specificatia pentru Lexerul de expresii lambda in fisierul "​**lexer_spec.json**",​ adaugand regex-ul potrivit pentru fiecare Token.
  
-4. In clasa Parser completati metoda "​parse", ​pentru a scrie un parser general ​care citeste o gramatica in FNC din fisierul primit ca parametru la initializare ​si returneaza arborele de parsare.+4. In clasa Parser completati metoda "​parse",​ care primeste un text de intrare ​si returneaza arborele de parsare. Folositi-va de campurile lexer si grammar ale parserului pentru analiza lexicala si apoi analiza sintactica a textului. Dupa analiza lexicala va trebui sa ignoratii tokenii SPACE inainte de a trece la analiza sintactica.
  
  
Line 174: Line 174:
 │   ├── __init__.py │   ├── __init__.py
 │   ├── DFA.py │   ├── DFA.py
-│   ├── Grammar.py 
-│   ├── Lexer.py 
 │   ├── NFA.py │   ├── NFA.py
 +│   ├── Regex.py
 +│   ├── Lexer.py
 │   ├── Parser.py │   ├── Parser.py
 +│   ├── Grammar.py
 │   ├── ParseTree.py │   ├── ParseTree.py
 |   ... (alte surse pe care le folositi) |   ... (alte surse pe care le folositi)