diff --git a/nka_vorlage.py b/nka_vorlage.py index a2e8106..7bce188 100644 --- a/nka_vorlage.py +++ b/nka_vorlage.py @@ -14,7 +14,29 @@ def scan_word( state, word, stack ): word = word[1:] # Ersten Buchstaben vom Restwort abtrennen # Ü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 # siehe nka_anbn.py für ein Beispiel