From b01c5f0c168da4ee221ae1a6524c2cf09fb8d7aa Mon Sep 17 00:00:00 2001
From: Chris <Christopher.Happe@uni-duesseldorf.de>
Date: Wed, 25 Nov 2020 07:44:32 +0100
Subject: [PATCH] Bugfix: Bei GOTO zu nicht vorhandener Markierung wird jetzt
 die richtige Zeile angezeigt.

---
 info4/kapitel-8/Interpreter/gotointerpreter.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/info4/kapitel-8/Interpreter/gotointerpreter.py b/info4/kapitel-8/Interpreter/gotointerpreter.py
index 529f866..8831586 100644
--- a/info4/kapitel-8/Interpreter/gotointerpreter.py
+++ b/info4/kapitel-8/Interpreter/gotointerpreter.py
@@ -118,10 +118,10 @@ class GOTOInterpreter:
         current_token = self.next_token()
         while current_token is not None and max(self.marker_to_position.keys()) < int(marker_number):
             current_token = self.verify_line(current_token)
-        if marker_number not in self.marker_to_position.keys():
-            self.error_handler.handle_error('GOTO zu nicht vorhandener Markierung')
         self.lex.current_position = self.marker_to_position.get(marker_number)
         self.error_handler.line_number = self.marker_to_line.get(marker_number)
+        if marker_number not in self.marker_to_position.keys():
+            self.error_handler.handle_error('GOTO zu nicht vorhandener Markierung')
         return self.next_token()
 
     def verify_goto(self, goto_token):
@@ -136,10 +136,10 @@ class GOTOInterpreter:
         current_token = self.next_token()
         while current_token is not None and max(self.marker_to_position.keys()) < int(marker_number):
             current_token = self.verify_line(current_token)
-        if marker_number not in self.marker_to_position.keys():
-            self.error_handler.handle_error('GOTO zu nicht vorhandener Markierung')
         self.lex.current_position = saved_position
         self.error_handler.line_number = saved_line
+        if marker_number not in self.marker_to_position.keys():
+            self.error_handler.handle_error('GOTO zu nicht vorhandener Markierung')
         return self.next_token()
 
     def process_if(self, if_token):
-- 
GitLab