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> |