De volgende klassen worden gedefinieerd:
De overgangsfunctie is beschikbaar in een normale (Fsm::delta) en een deterministische (Fsm::ddelta) versie. Deze laatste kan enkel gebruikt worden voor deterministische automaten.
In een meer gesophisticeerd ontwerp zou men intern een meer efficiente implementatie kunnen gebruiken voor de overgangen van een deterministische automaat.
Parser gebruikt nocommentstream, een stream met een filterstreambuf die commentaar wegfiltert, zie hoofstuk 10 van het boek.
De functionaliteit van dit programma wordt beschreven in de opgave.
De volgende figuur (gegenereerd door fsm2dot en dot) laat de input automaat zien voor
fsm -o nfa0.txt onfa0.txt
Input voor fsm -o nfa0.txt onfa0.txt
Output van fsm -o nfa0.txt onfa0.txt
Dit programma is een filter die een automaat (in het formaat herkend door Parser) beschrijving vertaalt naar een graaf specificatie voor gebruikt door het programma dot dat dan weer kan gebruikt worden om een grafische voorstelling van de automaat te genereren.