Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lfa:2022:proiect_etapa2 [2022/11/20 10:46] alex.ilie |
lfa:2022:proiect_etapa2 [2022/11/27 13:43] (current) alex.ilie |
||
---|---|---|---|
Line 72: | Line 72: | ||
Aceste operatii noi nu contribuie la expresivitatea regex-urilor, insa ajuta foarte mult utilizatorii sa scrie regex-uri compacte si usor de citit. In implementarea voastra, este recomandat sa //preprocesati// regexurile, adica sa eliminati operatorii nou-introdusi si sa ii inlocuiti cu cei standard. Operatorii standard sunt cei prezentati la curs (concatenare, reuniune si star). | Aceste operatii noi nu contribuie la expresivitatea regex-urilor, insa ajuta foarte mult utilizatorii sa scrie regex-uri compacte si usor de citit. In implementarea voastra, este recomandat sa //preprocesati// regexurile, adica sa eliminati operatorii nou-introdusi si sa ii inlocuiti cu cei standard. Operatorii standard sunt cei prezentati la curs (concatenare, reuniune si star). | ||
- | Spre exemplu: $math[e+ = ee*] sau $ [0-9] = ) \cup 1 \cup 2 \cup \ldots \cup 9 $. | + | Spre exemplu: $math[e+ = ee*] sau $ [0-9] = 0 \cup 1 \cup 2 \cup \ldots \cup 9 $. |
In felul acesta, AST-ul va avea un numar minimal de **tipuri** de noduri, iar algoritmul Thompson cat mai putine cazuri diferite de tratat. | In felul acesta, AST-ul va avea un numar minimal de **tipuri** de noduri, iar algoritmul Thompson cat mai putine cazuri diferite de tratat. | ||
Line 102: | Line 102: | ||
Din arbore putem genera usor forma prenex: ''UNION CONCAT STAR UNION a b c d''. | Din arbore putem genera usor forma prenex: ''UNION CONCAT STAR UNION a b c d''. | ||
- | |||
- | Nu este necesar sa implementati per se AST-ul, insa prin ierarhia de clase acesta este intrisec. | ||
===== Implementare ===== | ===== Implementare ===== |