Parsec style monadic/applicative parsing in C++