you can use the boost.Spirit library to write a BNRF based parser relatively quickly ( the "Qi" library component, more specifically; there are also a lexer and an output generator library components...