Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
lfa:proiect:etapa3 [2021/12/23 00:48] stefan.stancu [Output si testare] |
lfa:proiect:etapa3 [2021/12/29 02:02] (current) stefan.stancu [Input] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Etapa 3 - Lexer complet si Limbajul Imperative ====== | ====== Etapa 3 - Lexer complet si Limbajul Imperative ====== | ||
| + | |||
| + | **Checker si teste**: [[lfa:proiect:checker|Checker proiect LFA]]. | ||
| Etapa 3 consta la randul ei in trei parti, dintre care ultima este bonus. | Etapa 3 consta la randul ei in trei parti, dintre care ultima este bonus. | ||
| Line 80: | Line 82: | ||
| Folosind lexer-ul scris de voi, implementati un parser simplu pentru limbajul **Imperative** descris mai jos. | Folosind lexer-ul scris de voi, implementati un parser simplu pentru limbajul **Imperative** descris mai jos. | ||
| Folositi aceeasi abordare ca in implementarea parserului pentru expresii regulate. | Folositi aceeasi abordare ca in implementarea parserului pentru expresii regulate. | ||
| - | }==== Input ==== | + | } |
| + | ==== Input ==== | ||
| Input-ul va fi un program a carui descriere sintactica se regaseste mai jos (**//Limbajul Imperative//**): | Input-ul va fi un program a carui descriere sintactica se regaseste mai jos (**//Limbajul Imperative//**): | ||
| Line 91: | Line 94: | ||
| <instruction_list> ::= <prog> | <prog> '\n' <instruction_list> | <instruction_list> ::= <prog> | <prog> '\n' <instruction_list> | ||
| - | <expr> ::= <expr> '+' <expr> | <expr> '>' <expr> | <expr> '==' <expr> | <variable> | <integer> | + | <expr> ::= <expr> '+' <expr> | <expr> '-' <expr> | <expr> '*' <expr> | <expr> '>' <expr> | <expr> '==' <expr> | <variable> | <integer> |
| </code> | </code> | ||