boost.spirit based parser