Improve error handling with readable messages - #5
Draft
eykd wants to merge 1 commit into
Draft
Conversation
…tions - Add structured ParseError with filename support for compiler-style messages - OutOfContextNodeError now formats as 'file:line:col: unexpected indentation: ...' - Wrap parsimonious ParseError/VisitationError in syml.ParseError so callers don't need to import parsimonious to catch parse errors - Export ParseError and OutOfContextNodeError from syml package - Remove dead code (unreachable return in Source.__add__) - Add tests for error message content, filename threading, and exception chaining Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
parsers.parse()now catchesParsimoniousParseErrorandVisitationError, re-raising assyml.exceptions.ParseErrorwithraise ... from e. Callers no longer need to import parsimonious to handle parse errors.OutOfContextNodeErrornow produces compiler-style messages liketest.syml:3:2: unexpected indentation: - baz, including filename when available.ParseErroralso threads filename into the message.ParseErrorandOutOfContextNodeErrorare now importable directly fromsyml.returninSource.__add__.Test plan
OutOfContextNodeErrormessage includes "unexpected indentation"OutOfContextNodeErrorincludes filename when providedsyml.ParseError, not rawVisitationError__cause__🤖 Generated with Claude Code