import sys

##### Vhod univerzalnega avtomata #####
# avtomat ... opis simuliranega avtomata
# avtomat je (stanja, abeceda, delta, zacetno stanje, koncna stanja)
# vhod ... vhodni niz simuliranega avtomata

# Stikalo
avtomat = ([0,1], ['p'], {(0,'p'):1, (1,'p'):0},  0, [1])
vhod = "ppp"
# argument programa
#vhod = sys.argv[1]


##### Najprej preverimo vhodni niz #####
print "Vhod:", vhod
for znak in vhod:
    if znak not in avtomat[1]:
        print "Napaka: napacen znak '%c' v vhodnem nizu." % znak
        exit(1)


###### Izvajalnik oz. simulator avtomata #####
# Stanje z oznako -1 predstavlja slepo stanje.
delta = avtomat[2]
stanje = avtomat[3]
for znak in vhod:
    novo_stanje = delta[(stanje, znak)] if (stanje, znak) in delta else -1
    if stanje == -1: break
    print stanje, znak, '->', novo_stanje
    stanje = novo_stanje


###### Odgovor avtomata #####
print "Niz '%s' pripada jeziku avtomata:" % vhod,
if stanje in avtomat[4]:
 	print "da"
else:
	print "ne"