From c44083b610576c06d4a2b34d4aa4296af2b50187 Mon Sep 17 00:00:00 2001 From: John Doty Date: Mon, 28 Oct 2024 06:06:23 -0700 Subject: [PATCH] [runtime] Slightly better messages Picking the final reduction seems to get to a better place. --- parser/runtime.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/parser/runtime.py b/parser/runtime.py index 4c5d8db..289616e 100644 --- a/parser/runtime.py +++ b/parser/runtime.py @@ -527,7 +527,7 @@ class Parser: # See if we can figure out what we were working on here, # for the error message. if production_message is None and len(repair.reductions) > 0: - production_message = f"while parsing {repair.reductions[0]}" + production_message = f"while parsing {repair.reductions[-1]}" match repair.repair: case RepairAction.Base: @@ -553,7 +553,7 @@ class Parser: cursor += 1 if token_message is None: - token_message = f"Expected {repair.value}" + token_message = f"(Did you forget {repair.value}?)" case RepairAction.Delete: del input[cursor] @@ -567,10 +567,10 @@ class Parser: # Add the extra information about what we were looking for # here. - if token_message is not None: - error_message = f"{error_message}. {token_message}" if production_message is not None: error_message = f"{error_message} {production_message}" + if token_message is not None: + error_message = f"{error_message}. {token_message}" errors.append( ParseError( message=error_message,