An abstract concept for versatile parsers for C and C++