POA - TD2+ : Automates

Le code ci-joint comprend deux paquetages : automaton et regexp.
Le paquetage automaton permet de représenter des automates non déterministes. Ces automates acceptent en particulier les epsilon-transitions (transition pouvant être franchie sans lire de symbole dans le mot à reconnaître).
Le paquetage regexp doit permettre de construire un automate non déterministe à partir d'une expression régulière préfixe composée des opérateurs | (ou), * (itération) et . (concaténation).
Une classe de test complète la distribution.

L'objet du TD est de compléter le code de la classe AutomatonBuilder (remplacer les "..."). La construction de l'automate se fera à l'aide de la structure AutomatonData, une instance de NotDeterministicAutomaton étant difficilement modifiable. De plus, les états seront des regexp.StateImpl, ce qui permet de statuer sur leur statut initial ou terminal au moment de la création effective de l'automate.

Pour construire l'automate, il est nécessaire de définir l'automate obtenu selon l'opération traitée :