Как построить DFA для регулярного выражения действительного числа?

Я пытаюсь построить определенные конечные автоматы вещественного числа, которое определяется как строка, начинающаяся с необязательного "+" или "-", за которой следует один нуль или непустая последовательность цифр, которые не начинаются с нуля. За ним следует десятичная точка, за которой следует непустая последовательность цифр.

Я построил регулярное выражение: /[+ | -]?(О | ([1-9][0-9]*)).[0-9]+/

Его можно протестировать на этом сайте: http://rubular.com/

Я действительно не уверен, как построить DFA, особенно учитывая, что должно быть определенное состояние, соответствующее каждому входу в таблице переходов.


person user1893199    schedule 09.10.2013    source источник


Ответы (2)


Эта картинка может быть решением

DFA для заданного регулярного выражения

person sdwaraki    schedule 28.06.2014
comment
Я думаю, что это NFA, но OP запрашивает DFA :) - person Pruthvi Raj; 24.06.2015

Вы можете найти DFA на следующем веб-сайте: http://hackingoff.com/compilers/regular-expression-to-nfa-dfa

введите здесь описание изображения

person Riyafa Abdul Hameed    schedule 24.06.2015