Piszę parser wyrażeń regularnych. Potrzebuję stworzyć odpowiednik nawiasów klamrowych, czyli zakresu wystąpień jakiegoś elementu. Jak rozwiązać to najoptymalniej?
Niby można to potraktować w ten sposób:
x{1,5} == x|(xx)|(xxx)|(xxxx)|(xxxx)
Ale dla dużych wartości wygeneruje to dość złożoną maszynę stanów. Jest może jakieś lepsze rozwiązanie?