Hi Akim, Rici, Re trailing return types: It’s a minor issue (in the context of bison manual), let’s agree to disagree to avoid starting a full-blown religious warfare.
Re flex: The whole flex/bison interface is clunky, so no surprise people invent tricks. Some parser generators (ANTLR, JavaCC) solve this problem by integrating the scanner and parser, which dramatically increases the usability. Flex/bison are like racing cars, but most users don't drive racing cars. The mundane things like having a few extra generated includes, a few extra dependencies in the make file, an extra hour setting things up, make a lot of difference. Re AST: I used to think it’s relatively independent from parsing, and in my code it is. Then you told me that AST should have location information and special error nodes, which make them intertwined with parsing... Anyway, it was an idea for future development, maybe distant future. (BTW, ANTLR has cool features related to ASTs.) Cheers, Victor.