fix gdbinit; postprocessing macros
[m6w6/ext-psi] / src / types / impl_var.h
index 4576cb9f896c41ec986bc1e87c423bef57409064..aaab32d8364b8b21b6fe7370a60a530713fc9307 100644 (file)
 struct psi_token;
 struct psi_impl;
 struct psi_impl_arg;
+struct psi_validate_scope;
 
 struct psi_impl_var {
        struct psi_token *token;
-       char *name, *fqn;
+       zend_string *name, *fqn;
        struct psi_impl_arg *arg;
        unsigned reference:1;
 };
 
-struct psi_impl_var *psi_impl_var_init(const char *name, bool is_reference);
+struct psi_impl_var *psi_impl_var_init(zend_string *name, bool is_reference);
 struct psi_impl_var *psi_impl_var_copy(struct psi_impl_var *var);
 void psi_impl_var_free(struct psi_impl_var **var_ptr);
+void psi_impl_var_dump(struct psi_dump *dump, struct psi_impl_var *var, bool vararg);
 
-#include <string.h>
-
-static inline char *psi_impl_var_name_prepend(char *current, const char *prepend) {
-       size_t c_len = strlen(current);
-       size_t p_len = strlen(prepend);
-
-       current = realloc(current, p_len
-                       + c_len // includes '$'
-                       + 1 // connecting dot
-                       + 1 // terminating 0
-       );
-       if (current) {
-               if (c_len > 1) {
-                       memmove(current + p_len + 1 + 1, current + 1, c_len - 1 + 1);
-                       current[p_len + 1] = '.';
-               } else {
-                       /* just '$' */
-                       current[p_len + 1] = '\0';
-               }
-               memcpy(current + 1, prepend, p_len);
-       }
-       return current;
-}
-
-bool psi_impl_var_validate(struct psi_data *data, struct psi_impl_var *ivar, struct psi_impl *impl,
-               struct psi_let_exp *current_let_exp, struct psi_set_exp *current_set_exp);
+bool psi_impl_var_validate(struct psi_data *data, struct psi_impl_var *ivar,
+               struct psi_validate_scope *scope);
 
 #endif