Recursive Descent Parser by C++ template