Hi Adrian,This is effectively quite an annoying bug. Have you tried, in the short term, to reorder your productions. If I guess right what Kevin did, he probably inlined the production then reanalyzed the grammar from scratch. If the first production is inlined, it disappears, then the second production becomes the first. So, if you put "atomic" in second position, it should allow you to get around the bug for now.
I am not interested to get into Kevin's code to fix it; there are too many problems there (readability, structure, naming). Instead, I'll try to get version 4 up and running ASAP. I know that it's not visible on the web site, but I am actively (and almost exclusively) working on it these days. There will be a small hiatus until the end of this week, and in 2 weeks, but the remaining of my time will be spent on SableCC 4 which will have robust (and better syntax) for CST->AST, as well as explicit inlining directives in the grammar.
EtiennePS: Could you (re-)enter your bug report using your existing sablecc.org account on http://sablecc3.sablecc.org, which is the proper site for SableCC 3 bug reports? Thanks. PPS: Glad to learn that inlining is actually useful to some people. I received almost no feedback about it so far. :-)
Adrian Quark wrote:
I've encountered a bug where inlining the initial production causes the start state to change and therefore the grammar to be incorrect. I've already submitted this as a Trac bug but I don't know if anybody monitors that, so I apologize for the duplication....
-- Etienne M. Gagnon, Ph.D. SableCC: http://sablecc.org SableVM: http://sablevm.org
Attachment:
signature.asc
Description: OpenPGP digital signature