forked from IF-LK-2020/py-automaten
nka fertig
This commit is contained in:
@@ -14,7 +14,29 @@ def scan_word( state, word, stack ):
|
|||||||
word = word[1:] # Ersten Buchstaben vom Restwort abtrennen
|
word = word[1:] # Ersten Buchstaben vom Restwort abtrennen
|
||||||
|
|
||||||
# Übergangsfunktion
|
# Übergangsfunktion
|
||||||
|
if state == 0:
|
||||||
|
if stack_char == "#":
|
||||||
|
if char == "a":
|
||||||
|
return scan_word(0,word,["A","#"]+stack)
|
||||||
|
elif char == "b":
|
||||||
|
return scan_word(0,word,["B","#"]+stack)
|
||||||
|
elif stack_char == "A":
|
||||||
|
if char == "a":
|
||||||
|
return scan_word(0,word,["A","A"]+stack) or scan_word(1,word,stack)
|
||||||
|
elif char == "b":
|
||||||
|
return scan_word(0,word,["B","A"]+stack)
|
||||||
|
elif stack_char == "B":
|
||||||
|
if char == "a":
|
||||||
|
return scan_word(0,word,["A","B"]+stack)
|
||||||
|
elif char == "b":
|
||||||
|
return scan_word(0,word,["B","B"]+stack) or scan_word(1,word,stack)
|
||||||
|
elif state == 1:
|
||||||
|
if stack_char == "A":
|
||||||
|
if char == "a":
|
||||||
|
return scan_word(1,word,stack)
|
||||||
|
elif stack_char == "B":
|
||||||
|
if char == "b":
|
||||||
|
return scan_word(1,word,stack)
|
||||||
# Übergänge und Rekursionsaufrufe
|
# Übergänge und Rekursionsaufrufe
|
||||||
# siehe nka_anbn.py für ein Beispiel
|
# siehe nka_anbn.py für ein Beispiel
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user