Wormhole parser generator 0.5.3
The 0.5.3 installer has been readied. The latest includes fixes to the ambiguity search, as well as a new symbol string ambiguity checker, and miscellaneous fixes. Here’s the symbol string ambiguity checker in action:

The 0.5.3 installer has been readied. The latest includes fixes to the ambiguity search, as well as a new symbol string ambiguity checker, and miscellaneous fixes. Here’s the symbol string ambiguity checker in action:

Available in the next release of the wormhole grammar analyzer, the string ambiguity checker. Pick a symbol off the list, add to the string, repeat. Click OK and it will check if the string is ambiguous in the currently loaded grammar.
It’s a tad early for mainstream use, but I was so excited to get it working, I couldn’t wait. Wormhole parser generator 0.5.2 includes an ambiguity checker. It works, but the probabilistic functionality does nothing.
I am in the process of revamping some old code, part of which contains the GLR algorithm. The GLR algorithm is rather involved, so I figured this was the perfect opportunity to explain it once and for all, if for no other reason than to have a copy of this on hand.
Like many parsers, the GLR algorithm is an LR based parser will build a parse tree from a series of tokens. Unlike most though, it is able to handle ambiguous grammars. Of practical interest, this means that a GLR parser can handle the ambiguous grammar of C++. It accomplishes this, in concept, keeping a multitude of stacks, each representing one of the many possible parses of the input. Naturally, the more ambiguous any particular input, the greater the performance hit for using this approach.
To explain what goes on inside a GLR parser. We’ll consider what happens when processing a single input token. As a prerequisite, you need an LR table, produced from a suitable grammar, such as the wormhole parser generator.
It was the best of code, it was the worst of code. The GLR algorithm, while extraordinarily useful when dealing with grammars that require multiple look-ahead and ambiguity reporting, is also the sort of code it takes time to comprehend, and that you want to forget as soon as you’ve done so.
I just read this, http://www.caterina.net/archive/000996.html
Nice post. This says something about efficiency. Makes you think.
Site maintenance. I changed the theme, P2 looks much nicer, and now that I added the captcha’s I can let people create accounts. The images are gravatars, so you can go there are register your own custom avatar.
Now releasing 0.5.1.2. Fixed an error in the white space, and added the ability to open a grammar file directly from the conflict explainer. Here’s a screen shot of the grammar-grammar after it parses itself.

We’ve released version 0.5.1 of the wormhole parser generator. You may download it if you like. Although I said I wouldn’t do any major updates, I ran into some hairy grammar problems on the up and coming commercial product, and I needed a solution pronto. So I wrote the conflict explainer, a very simple GUI program to dig me out of the situation.