HashTable defs;
HashTable once;
struct psi_parser *parser;
- struct psi_plist *tokens;
+ struct {
+ struct psi_plist *iter;
+ struct psi_plist *next;
+ } tokens;
const char *search;
size_t index;
unsigned level;
};
struct psi_cpp *psi_cpp_init(struct psi_parser *parser);
-bool psi_cpp_load_defaults(struct psi_cpp *cpp);
bool psi_cpp_process(struct psi_cpp *cpp, struct psi_plist **tokens);
void psi_cpp_free(struct psi_cpp **cpp_ptr);
#define PSI_CPP_INCLUDE_NEXT 0x1
#define PSI_CPP_INCLUDE_ONCE 0x2
-bool psi_cpp_include(struct psi_cpp *cpp, const char *file, unsigned flags);
+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);
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,
size_t num_eles, bool free_tokens);
-bool psi_cpp_tokiter_ins_cur(struct psi_cpp *cpp, struct psi_token *tok);
-bool psi_cpp_tokiter_ins_range(struct psi_cpp *cpp, size_t offset,
+bool psi_cpp_tokiter_add(struct psi_cpp *cpp, struct psi_token *tok);
+bool psi_cpp_tokiter_add_cur(struct psi_cpp *cpp);
+bool psi_cpp_tokiter_add_range(struct psi_cpp *cpp,
+ size_t num_eles, void **eles);
+bool psi_cpp_tokiter_ins_range(struct psi_cpp *cpp,
size_t num_eles, void **eles);
bool psi_cpp_tokiter_defined(struct psi_cpp *cpp);
bool psi_cpp_tokiter_expand(struct psi_cpp *cpp);