Я пытаюсь создать метод, который будет принимать строку (действительное регулярное выражение) и выводить соответствующий недетерминированный конечный автомат. Из проведенного мной исследования следует, что алгоритм Томпсона наиболее применим здесь, поскольку Я буду обрабатывать только символы звезды Клини, союза и круглых скобок, а язык будет только {a, b, e}, где e представляет собой пустой переход.
Кроме того, большая проблема, с которой я сталкиваюсь, заключается в том, чтобы выяснить, как обрабатывать вложенные скобки в регулярных выражениях. Вход здесь будет оценен по достоинству.
Мой вопрос о лучшем/самом простом способе представить это в коде. Мне нужно будет отличать каждый узел друг от друга и отслеживать переходы, исходящие из узла, и куда эти переходы ведут. Я изучил использование орграфа, однако кажется, что вы можете представлять только узел и то, к чему может привести узел, исключая переход, который приведет вас к этому новому узлу. Любые предложения по архитектуре здесь будут оценены. Спасибо.