Carter is building with the new XCode, which only has Clang on OS X. This error is a result of clang preprocessing Parser.y.pp, since it uses a 'double pass' CPP trick to pass -fcmm-sink to the stage2 compiler. I could never fully come to understand the behavior of why this was an error, and it seemed to be affected by whitespace in the resultant file from Happy. Fiddling with whitespace made it work somehow, but I couldn't find out what behavior (or changes in Clang) allowed this.
Looking back on it, the correct fix I think is to only pass -fcmm-sink if Parser.hs is being built with the stage2 compiler, in the build system. This is a lot less fragile, I feel. (Relatedly, we also need to make sure that -fcmm-sink is passed to stage1, if boostrapping ghc >= 7.7, so 7.8 can build itself once released.)
There's a host of OS X things that need attention at the moment unfortunately, and my personal machine is a bit broken right now. But I have a new 10.7 build machine I can use, so I'll try to get on it ASAP.