+ if (C->enums) {
+ for (i = 0; i < C->enums->count; ++i) {
+ decl_enum *e = C->enums->list[i];
+ size_t j;
+
+ for (j = 0; j < e->items->count; ++j) {
+ decl_enum_item *i = e->items->list[j];
+ zend_string *name = strpprintf(0, "psi\\%s\\%s", e->name, i->name);
+
+ zc.name = zend_string_dup(name, 1);
+ ZVAL_LONG(&zc.value, psi_long_num_exp(i->num, NULL));
+ zend_register_constant(&zc);
+ zend_string_release(name);
+ }
+ }
+ }