<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 5, 2019, 5:10 PM Philip Bernhart <<a href="mailto:philip.bernhart@posteo.de">philip.bernhart@posteo.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
><br>
> I subclassed from OMeta2Debug and it still gets into that problem.<br>
><br>
> What besides that could be done on the side of Cuis to make such errors<br>
> escapeable? I naively think that this could improve general stability of<br>
> Cuis.<br>
><br>
> Thanks for your input.<br>
<br>
Sorry for the fuss. I just noticed that I didn't try aut CMD-. now<br>
it seems to work with OMeta2Debug subclassed.<br>
<br>
I don't understand the magic behind it, but that makes it debugable.<br>
<br>
Sorry for the "wrong alarm".<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Glad that it at least allows you to escape out of it now. Basically what's going on with the default OMeta parser is that it hijacks virtually all exception handling to use for control flow. IMO, this is a design bug from the original implementation I've been meaning to fix but IIRC it's a bit tricky to do correctly. The debug parser intentionally 'breaks' a couple of things to behave a little nicer but they are things that aren't going to be an issue for 99% of parsers. (I suspect if you get to the point of having a parser that breaks as a subclass of OMeta2Debug, you'll also have developed enough of an understanding of OMeta internals to understand why both it and OMeta are doing things the way they are)</div><div dir="auto"><br></div><div dir="auto">If you can come up with a reproducible example of a hanging parser you could share, I'd like to take a look at it to see if I can get OMeta2Debug to catch it. Hanging parsers were the original use case I created the debug subclass for so if I've missed something, I'd like to correct it.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div></div></div>