-void psi_cpp_tokiter_reset(struct psi_cpp_data *cpp);
-bool psi_cpp_tokiter_seek(struct psi_cpp_data *cpp, size_t index);
-void psi_cpp_tokiter_dump(int fd, struct psi_cpp_data *cpp);
-struct psi_token *psi_cpp_tokiter_current(struct psi_cpp_data *cpp);
-size_t psi_cpp_tokiter_index(struct psi_cpp_data *cpp);
-void psi_cpp_tokiter_next(struct psi_cpp_data *cpp);
-void psi_cpp_tokiter_prev(struct psi_cpp_data *cpp);
-bool psi_cpp_tokiter_valid(struct psi_cpp_data *cpp);
-bool psi_cpp_tokiter_del_cur(struct psi_cpp_data *cpp, bool free_token);
-bool psi_cpp_tokiter_del_range(struct psi_cpp_data *cpp, size_t offset,
+bool psi_cpp_has_include(struct psi_cpp *cpp, const struct psi_token *file, unsigned flags, char *path);
+bool psi_cpp_include(struct psi_cpp *cpp, const struct psi_token *file, unsigned flags);
+
+void psi_cpp_tokiter_reset(struct psi_cpp *cpp);
+bool psi_cpp_tokiter_seek(struct psi_cpp *cpp, size_t index);
+#if PSI_CPP_DEBUG > 1
+void psi_cpp_tokiter_dump(struct psi_dump *dump, struct psi_cpp *cpp);
+#endif
+struct psi_token *psi_cpp_tokiter_current(struct psi_cpp *cpp);
+size_t psi_cpp_tokiter_index(struct psi_cpp *cpp);
+void psi_cpp_tokiter_next(struct psi_cpp *cpp);
+void psi_cpp_tokiter_prev(struct psi_cpp *cpp);
+bool psi_cpp_tokiter_valid(struct psi_cpp *cpp);
+bool psi_cpp_tokiter_del_cur(struct psi_cpp *cpp, bool free_token);
+bool psi_cpp_tokiter_del_prev(struct psi_cpp *cpp, bool free_token);
+bool psi_cpp_tokiter_del_range(struct psi_cpp *cpp, size_t offset,