Bison is a great tool for parsing grammars.
However, I'm more looking for a tool that, on its own, can be used as a full compiler, with the added ability to put myself in the middle of the front and back end.
LLVM has a similar ability where you can develop a pass over the IR and manipulate it.