struct {
struct psi_plist *iter;
struct psi_plist *next;
+ struct psi_plist *exec;
} tokens;
+ HashTable expanding;
const char *search;
size_t index;
unsigned level;
unsigned seen;
unsigned expanded;
unsigned counter;
+ bool do_cpp;
};
struct psi_cpp *psi_cpp_init(struct psi_parser *parser);
-bool psi_cpp_process(struct psi_cpp *cpp, struct psi_plist **tokens);
+bool psi_cpp_process(struct psi_cpp *cpp, struct psi_plist **tokens,
+ struct psi_token *expanding);
void psi_cpp_free(struct psi_cpp **cpp_ptr);
bool psi_cpp_if(struct psi_cpp *cpp, struct psi_cpp_exp *exp);
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(int fd, struct psi_cpp *cpp);
+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);