I’ve read Chapter 5, Syntax Directed Translation, of the Dragon Book but am still unable to understand the following related points:
How to handle L-attributed SDDs in an LR grammar when using a tool such as Bison? I believe, the book says that inherited attributes could be used with an LR parser (via Marker symbols?) provided the grammar is LL, or is (partly?) transformed into LL. Is this true? What if the grammar is LR and/or converting it to LL is not easy — how do you then use inherited attributes?
If LR grammars are a proper superset of LL grammars and therefore more powerful, then how come LR grammars/parsers won’t out-of-the-box allow L-attributed SDDs which, being a superset of S-attributed SDDs, are more powerful?
Avoiding the SDD style – Parsing style mismatch: Is it true that no matter the grammar (LL, LR, …) or the parsing tool (Antlr, bison, yacc…), I can always first build the AST and then traverse it post-/pre-order any number of times to get whatever SDTs I want? (Ignore the time inefficiency here.)
Is there a text or online resource that covers topics 1 and 2 better or in more detail?