Дефайн, этот конечно. Но если код не ваш, то да, менять опасно.
Но в вашем коде парсера, большая часть кода не представлена, если она писалась, не только для этого, то конечно игра стоит свечь. Если нет и неудовлетворяет спирит, то есть много других библиотек для ХМЛ. Но для более сложных, в плане грамматики, или контестного вызова функторов, мне кажется писать свой велосипед себе дороже. ИМХО.