From 2b0d8635310f6f1d1d63bace66405f08c7001295 Mon Sep 17 00:00:00 2001 From: Reid 'arrdem' McKenzie Date: Sat, 18 Jul 2020 21:59:41 -0600 Subject: [PATCH] Format an error stack of sorts --- src/python/flowmetal/parser.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/python/flowmetal/parser.py b/src/python/flowmetal/parser.py index f85cd3a..bd0ff16 100644 --- a/src/python/flowmetal/parser.py +++ b/src/python/flowmetal/parser.py @@ -265,8 +265,12 @@ class Parser(SexpParser): acc = [] while f.peek() != closec: if not f.peek(): - raise SyntaxError(f"Got end of file ({f.pos()}) while parsing {openc!r}...{closec!r} starting at {pos}") - acc.append(cls.parse(rtb)) + raise SyntaxError(f"Got end of file while parsing {openc!r}...{closec!r} starting at {pos}") + try: + acc.append(cls.parse(rtb)) + except SyntaxError as e: + raise SyntaxError(f"While parsing {openc!r}...{closec!r} starting at {pos},\n{e}") + assert rtb.read() == closec # Discard the trailing delimeter return ctor(acc, str(rtb), pos)