extended basicrecursive visitore with preprocessor callbacks