Как реализовать регулярное выражение NFA с символьными диапазонами?

Когда вы читаете такие сообщения, какРегекс: НФА и Томпсоналгоритм все выглядит довольно просто, пока вы не поймете, что в реальной жизни вам нужны не только прямые символы, такие как "7" или "б", но также:

[A-Z]
[^_]
.

а именно классы символов (или диапазоны). И, таким образом, мой вопрос - как построить NFA, используя диапазоны символов? Использование метасимволов типа "не ","что-нибудь еще" а потом вычислять перекрывающиеся диапазоны? Это привело бы к использованию древовидной структуры при использовании конечного автомата, а не только таблицы.

Обновить: пожалуйста, примите нетривиальный размер (>>256) алфавит.

Я спрашиваю о NFA, но позже я хотел бы также преобразовать NFA в DFA.

Ответы на вопрос(1)

Ваш ответ на вопрос