After a long and complicated analysis, Virgil Ierubino concluded:
What this means is that we can't use a basic EBNF parser in all the usual useful ways. We need new solutions.
And the answer is: No, we don't need any of this. Because the current solution works fine.
This whole discussion is without point. There is no need for change, is there? If it ain't broken, don't fix it.
Or, to put that logic in reverse: For this discussion to become meaningful, a purpose is required. Can you find a purpose? Bring it here. Show us a real problem that needs a solution.
Two years ago I had the idea that if I could just parse the wikitext of the database dumps, I could extract useful information in tabular form from the templates used as infoboxes. One year ago, I wrote a very simple Perl script with regexps to do this. It isn't the full wikitext parser, since it only cares for template calls, {{this|kind|of=syntax}}. It uses regexps rather than BNF. And even with this limited task, it only does a half-hearted job. My naive parser gets confused as soon as [[image: ...|thumb]] syntax is mixed with {{template}} syntax. So it's a pretty primitive (dumb!) parser for wikitext. But it does 98% of the job. It helps me find useful information and it helps me to locate errors that I can correct.
What I have is a purpose. I needed a parser, and I wrote one.
But you guys are all talking about creating a parser, the ultimate one, for which you really don't have any need. You were talking about this five years ago. You still haven't produced any useful parser. And you probably will discuss this five years from now.
-- Lars Aronsson (lars@aronsson.se) Aronsson Datateknik - http://aronsson.se