update readme
[m6w6/ext-psi] / src / types / decl_type.c
index 164f33ffc0953ca210e47a0f1a57230dc68ea878..932475faea785f275b744c9ca2d971d53a073bc7 100644 (file)
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *******************************************************************************/
 
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
 #include "token.h"
 #include "data.h"
 
 #define PSI_STD_TYPES
-#include "php_psi_posix.h"
+#include "php_psi_predef.h"
 
 struct psi_decl_type *psi_decl_type_init(token_t type, zend_string *name)
 {
@@ -289,7 +293,7 @@ bool psi_decl_type_validate(struct psi_data *data, struct psi_decl_type *type,
        return true;
 }
 
-void psi_decl_type_dump_args_with_layout(int fd, struct psi_plist *args,
+void psi_decl_type_dump_args_with_layout(struct psi_dump *dump, struct psi_plist *args,
                unsigned level)
 {
        size_t i = 0;
@@ -326,30 +330,18 @@ void psi_decl_type_dump(struct psi_dump *dump, struct psi_decl_type *t, unsigned
                return;
 
        case PSI_T_ENUM:
-               PSI_DUMP(dump, "enum ");
                if (psi_decl_type_is_anon(t->name, "enum")) {
-                       size_t i = 0, c = psi_plist_count(t->real.enm->items);
-                       struct psi_decl_enum_item *item;
-
-                       PSI_DUMP(dump, "{\n");
-                       ++level;
-                       while (psi_plist_get(t->real.enm->items, i++, &item)) {
-                               PSI_DUMP(dump, "%s", psi_t_indent(level));
-                               psi_decl_enum_item_dump(dump, item);
-                               if (i < c) {
-                                       PSI_DUMP(dump, "%s\n", i < c ? "," : "");
-                               }
-                       }
-                       --level;
-                       PSI_DUMP(dump, "%s\n} ", psi_t_indent(level));
+                       psi_decl_enum_dump(dump, t->real.enm, level);
                        return;
                }
+               PSI_DUMP(dump, "enum ");
                break;
 
        case PSI_T_STRUCT:
                PSI_DUMP(dump, "struct ");
                if (psi_decl_type_is_anon(t->name, "struct")) {
-                       psi_decl_type_dump_args_with_layout(fd, t->real.strct->args, level);
+                       PSI_DUMP(dump, "/*::(%zu, %zu)*/", t->real.strct->align, t->real.strct->size);
+                       psi_decl_type_dump_args_with_layout(dump, t->real.strct->args, level);
                        return;
                }
                break;
@@ -357,7 +349,8 @@ void psi_decl_type_dump(struct psi_dump *dump, struct psi_decl_type *t, unsigned
        case PSI_T_UNION:
                PSI_DUMP(dump, "union ");
                if (psi_decl_type_is_anon(t->name, "union")) {
-                       psi_decl_type_dump_args_with_layout(fd, t->real.unn->args, level);
+                       PSI_DUMP(dump, "/*::(%zu, %zu)*/", t->real.unn->align, t->real.unn->size);
+                       psi_decl_type_dump_args_with_layout(dump, t->real.unn->args, level);
                        return;
                }
                break;