Gak. Boost.Spirit is a hunk of crap. It's an amazing testament to what C++ can do, and I have nothing but respect for the author, but it's still a big hunk of crap.
Compiling a complex Spirit parser takens *eons*, and heaven help you if there's an error in your code someplace. A single error can span pages.
ANTLR is probably a better solution, though, really, VC is so small that a hand coded parser can be easily written in under a thousand lines. (which sounds like a lot, but it could be written in less time than it would take to learn either Spirit or ANTLR)