Desejo converter uma expressão regular inserida pelo usuário em um NFA, para que eu possa executar o NFA em uma string para fins de correspondência. Qual é a máquina mínima que pode ser usada para analisar expressões regulares?
Suponho que deve ser um autômato push down, porque a presença de colchetes significa a necessidade de contar e um DFA / NFA não pode executar uma contagem arbitrária. Esta suposição está correta? Por exemplo, a expressão a (bc *) d exigiria um PDA para que a subexpressão entre parênteses seja manipulada corretamente.