Differences
This shows you the differences between two versions of the page.
| 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) | ||