diff --git a/info4/kapitel-8/Interpreter/whileinterpreter.py b/info4/kapitel-8/Interpreter/whileinterpreter.py index e47e6f6ee301244b121fb7cfe7226889f1570bb5..cbddb54d9df5470fe74a068d2e0ca923cd1a1ca7 100644 --- a/info4/kapitel-8/Interpreter/whileinterpreter.py +++ b/info4/kapitel-8/Interpreter/whileinterpreter.py @@ -17,14 +17,13 @@ class WHILEInterpreter(LOOPInterpreter): (re.compile(r'END'), 'END'), (re.compile(r';'), 'SEMICOLON'), (re.compile(r'BREAK'), 'BREAK'), - (re.compile(r'\n', re.MULTILINE), 'LINEBREAK'), - (re.compile(r'\s+'), 'WHITESPACE'), + (re.compile(r'\s+', re.MULTILINE), 'WHITESPACE'), (re.compile(r'[^\n]*'), 'UNKNOWN')] def process_program(self, forbidden_identifiers, current_token): if current_token is None or current_token.k not in ['IDENTIFIER', 'LOOP', 'WHILE']: self.error_handler.handle_error("Keine passende Anweisung gefunden\n" + - "Erwartet: IDENTIFIER (x0, x1, ...) oder LOOP") + "Erwartet: IDENTIFIER (x0, x1, ...), LOOP oder WHILE") elif current_token.k == 'IDENTIFIER': current_token = self.process_assignment(forbidden_identifiers, current_token) elif current_token.k == 'LOOP': @@ -36,7 +35,7 @@ class WHILEInterpreter(LOOPInterpreter): def verify_program(self, forbidden_identifiers, current_token): if current_token is None or current_token.k not in ['IDENTIFIER', 'LOOP', 'WHILE']: self.error_handler.handle_error("Keine passende Anweisung gefunden\n" + - "Erwartet: IDENTIFIER (x0, x1, ...) oder LOOP") + "Erwartet: IDENTIFIER (x0, x1, ...), LOOP oder WHILE") elif current_token.k == 'IDENTIFIER': current_token = self.verify_assignment(forbidden_identifiers, current_token) elif current_token.k == 'LOOP': @@ -133,6 +132,7 @@ class WHILEInterpreter(LOOPInterpreter): return self.next_token() + def interpret(program): interpreter = WHILEInterpreter() return interpreter.interpret(program)