Just a brief note on this project: with the onset of spring, my priorities are my wife, exercise, work, blogging, gardening … and then this project. So only a little has gotten done, and that consists of deciding on a debugging approach. Each XML production rule has been modified to look like this:
p_in # & … & p_out #;
The p_in and p_out functions keep track of the current depth of the stack of production rules and write
Production In #
and
Production Out #
with an indentation reflective of the depth of the stack. They also print the name of the production if they know it. Additionally, they replace the current failure function with a local failure function which curries in the current failure function and will invoke it upon invocation of itself …. and will say
Production Fail #
and the name of the production if known, at the proper indentation level.
I have found this to be useful in tracking down some typos and/or poor decisions I’ve made in the production rules.
The Mythryl compiler has also developed a queer little hitch. It’s typically blindingly fast for everything else I’ve written, but with this project there’s a 30 second pause at some point. I suspect it’s during whatever it uses as a link phase, but since Cynbe is working on a newer version, I’m not trying to track it down … partly since, as I told Cynbe, I do not have compiler chops and lack interest in developing them.