- /* no break */
- case PSI_T_QUOTED_STRING:
- dprintf(fd, "\"%s\"", val->text);
+ break;
+ }
+
+ return false;
+}
+
+void psi_impl_def_val_dump(struct psi_dump *dump, struct psi_impl_def_val *val) {
+ switch (val->type) {
+ case PSI_T_NULL:
+ PSI_DUMP(dump, "NULL");
+ break;
+ case PSI_T_TRUE:
+ PSI_DUMP(dump, "true");
+ break;
+ case PSI_T_FALSE:
+ PSI_DUMP(dump, "false");
+ break;
+ case PSI_T_BOOL:
+ PSI_DUMP(dump, "%s", val->ival.zend.bval ? "true" : "false");
+ break;
+ case PSI_T_INT:
+ PSI_DUMP(dump, ZEND_LONG_FMT, val->ival.zend.lval);
+ break;
+ case PSI_T_FLOAT:
+ case PSI_T_DOUBLE:
+ if (isinf(val->ival.dval)) {
+ PSI_DUMP(dump, "\\INF");
+ } else if (isnan(val->ival.dval)) {
+ PSI_DUMP(dump, "\\NAN");
+ } else {
+ PSI_DUMP(dump, "%" PRIdval, val->ival.dval);
+ }
+ break;
+ case PSI_T_STRING:
+ PSI_DUMP(dump, "\"%s\"", val->ival.zend.str->val);
+ break;
+ case PSI_T_NUMBER:
+ psi_num_exp_dump(dump, val->data.num);