4 ms·
LL(1) for recursive descent aren't very powerful; you might hack SQL with it but you still won't do C++ with it.
by bitL 4y ago
LL(1) for recursive descent aren't very powerful; you might hack SQL with it but you still won't do C++ with it.
- not2b 4y agogcc's C and C++ parsers are handwritten recursive descent parsers. Years ago, Bison was used, and for C++ a third pass was required between the lexer and the parser to add the needed lookahead to differentiate complex type and function declarations. I didn't say anything about LL(1). The key thing here is that high quality compilers are doing it this way, eschewing parser generation tools.
- bitL 4y agoI thought that GCC being a handwritten recursive descent parser was giving it a huge disadvantage compared to other compilers when it came to introducing new standards (I remember people complaining about it a lot in the past).
- not2b 4y agoYou're misinformed. clang also has a custom parser. Both gcc and clang have great support for new standards, though as those standards are evolving some features aren't there yet (but none of the missing features have anything to do with parsing difficulties). You can find lots of detail on feature coverage at https://gcc.gnu.org https://gcc.gnu.org .