[runtime] Slightly better messages

Picking the final reduction seems to get to a better place.
This commit is contained in:
John Doty 2024-10-28 06:06:23 -07:00
parent 2828d13e3a
commit c44083b610

View file

@ -527,7 +527,7 @@ class Parser:
# See if we can figure out what we were working on here, # See if we can figure out what we were working on here,
# for the error message. # for the error message.
if production_message is None and len(repair.reductions) > 0: 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: match repair.repair:
case RepairAction.Base: case RepairAction.Base:
@ -553,7 +553,7 @@ class Parser:
cursor += 1 cursor += 1
if token_message is None: if token_message is None:
token_message = f"Expected {repair.value}" token_message = f"(Did you forget {repair.value}?)"
case RepairAction.Delete: case RepairAction.Delete:
del input[cursor] del input[cursor]
@ -567,10 +567,10 @@ class Parser:
# Add the extra information about what we were looking for # Add the extra information about what we were looking for
# here. # here.
if token_message is not None:
error_message = f"{error_message}. {token_message}"
if production_message is not None: if production_message is not None:
error_message = f"{error_message} {production_message}" error_message = f"{error_message} {production_message}"
if token_message is not None:
error_message = f"{error_message}. {token_message}"
errors.append( errors.append(
ParseError( ParseError(
message=error_message, message=error_message,