Как минимизировать DFA, имеющий несколько принимающих узлов? - PullRequest
0 голосов
/ 06 мая 2019

Я реализовал простой Scanner-Generator, который работает правильно во всех ситуациях.

Это не проблема кода, а вопрос о том, как оптимизировать DFA. Минимизация для одного принимающего узла с использованием алгоритма Хопкрофта и принимающих узлов для принятия одного и того же правила работала хорошо, но алгоритм не сводил к минимуму DFA с несколькими разными принимающими узлами. Например, если вы создаете DFA, который принимает два «if», «[a-z] [a-z0-9] *», а затем запускаете алгоритм Хопкрофта, уникальный узел принятия исчезает. Конечно, каждый узел с самого начала был сгруппирован в разные группы.

Я хотел бы знать, как минимизировать этот тип DFA. Я хотел бы, чтобы вы ответили, даже если нет способа решить эти проблемы минимизации.

Мой код: https://github.com/rollrat/compiler-compiler

...