refactor CppTokenCursor