A simple recursive descent parser framework in C