+ if (!psi_parser_init(&P, psi_error_wrapper, flags)) {
+ RETURN_FALSE;
+ }
+ if (!(I = psi_parser_open_string(&P, string->val, string->len))) {
+ psi_parser_dtor(&P);
+ RETURN_FALSE;
+ }
+
+ psi_parser_parse(&P, I);
+ psi_data_ctor(&D, P.error, P.flags);
+ RETVAL_BOOL(psi_data_validate(&D, PSI_DATA(&P)) && !P.errors);
+ psi_data_dtor(&D);
+ psi_parser_dtor(&P);
+ free(I);
+}
+
+static PHP_MINIT_FUNCTION(psi)
+{
+ struct psi_context_ops *ops = NULL;
+ zend_class_entry ce = {0};
+ unsigned flags = 0;
+