About once a year I have to develop or at least design a grammar and a parser - that appears a constant of my working life.
Every time I'm facing this task, thus about once year, I, quite a lex/yacc (flex/bison resp.) guy, consider, or reconsider, alternatives for plain lex/yacc, and, after some musing and trying I get back to plain lex/yacc.
Because I have a CORBA-server at the hub of the application I can call in from from a parser written in almost every language, so this time I had a look at
- antlr4 (Java) and antlr3 (Java but has RT for other languages),
- SableCC (Java),
- Parse::EBNF, Parse::Yapp and Marpa (Perl),
- and SimpleParse (Python),
For me, the tandem antlr4 with antlrworks looked the most promising candidate, but I'm not yet convinced that the time spent spent on getting into it will be amortized in the end.
The grammar I have to develop is similar to SQL DDL (in terms of structure, not in terms of the subject).
Why would any of the alternatives would make my task easier than using plain lex/yacc?