#include "ext/libxml/php_libxml.h"
#endif
+#include "xml_arginfo.h"
+
/* Short-term TODO list:
* - Implement XML_ExternalEntityParserCreate()
* - XML_SetCommentHandler
/* }}} */
/* {{{ extension definition structures */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create, 0, 0, 0)
- ZEND_ARG_INFO(0, encoding)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create_ns, 0, 0, 0)
- ZEND_ARG_INFO(0, encoding)
- ZEND_ARG_INFO(0, sep)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_object, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, obj)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_element_handler, 0, 0, 3)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, shdl)
- ZEND_ARG_INFO(0, ehdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_character_data_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_processing_instruction_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_default_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_unparsed_entity_decl_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_notation_decl_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_external_entity_ref_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_start_namespace_decl_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_end_namespace_decl_handler, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parse, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, data)
- ZEND_ARG_INFO(0, isfinal)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parse_into_struct, 0, 0, 3)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, data)
- ZEND_ARG_INFO(1, values)
- ZEND_ARG_INFO(1, index)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_error_code, 0, 0, 1)
- ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_error_string, 0, 0, 1)
- ZEND_ARG_INFO(0, code)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_line_number, 0, 0, 1)
- ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_column_number, 0, 0, 1)
- ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_byte_index, 0, 0, 1)
- ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_free, 0, 0, 1)
- ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_set_option, 0, 0, 3)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_get_option, 0, 0, 2)
- ZEND_ARG_INFO(0, parser)
- ZEND_ARG_INFO(0, option)
-ZEND_END_ARG_INFO()
-
static const zend_function_entry xml_functions[] = {
PHP_FE(xml_parser_create, arginfo_xml_parser_create)
PHP_FE(xml_parser_create_ns, arginfo_xml_parser_create_ns)
--- /dev/null
+<?php
+
+/** @return XmlParser|false */
+function xml_parser_create(string $encoding = UNKNOWN) {}
+
+/** @return XmlParser|false */
+function xml_parser_create_ns(string $encoding = UNBEKANNT, string $sep = ':') {}
+
+function xml_set_object(XmlParser $parser, object $obj): bool {}
+
+/**
+ * @param callable $shdl
+ * @param callable $ehdl
+ */
+function xml_set_element_handler(XmlParser $parser, $shdl, $ehdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_character_data_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_processing_instruction_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_default_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_unparsed_entity_decl_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_notation_decl_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_external_entity_ref_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_start_namespace_decl_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_end_namespace_decl_handler(XmlParser $parser, $hdl): bool {}
+
+function xml_parse(XmlParser $parser, string $data, bool $isfinal = false): int {}
+
+function xml_parse_into_struct(XmlParser $parser, string $data, &$values, &$index = UNKNOWN): int {}
+
+function xml_get_error_code(XmlParser $parser): int {}
+
+function xml_error_string(int $code): ?string {}
+
+function xml_get_current_line_number(XmlParser $parser): int {}
+
+function xml_get_current_column_number(XmlParser $parser): int {}
+
+function xml_get_current_byte_index(XmlParser $parser): int {}
+
+function xml_parser_free(XmlParser $parser): bool {}
+
+function xml_parser_set_option(XmlParser $parser, int $option, $value): bool {}
+
+function xml_parser_get_option(XmlParser $parser, int $option) {}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create_ns, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, sep, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_object, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_TYPE_INFO(0, obj, IS_OBJECT, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_element_handler, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_INFO(0, shdl)
+ ZEND_ARG_INFO(0, ehdl)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_character_data_handler, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_INFO(0, hdl)
+ZEND_END_ARG_INFO()
+
+#define arginfo_xml_set_processing_instruction_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_default_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_unparsed_entity_decl_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_notation_decl_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_external_entity_ref_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_start_namespace_decl_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_end_namespace_decl_handler arginfo_xml_set_character_data_handler
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse, 0, 2, IS_LONG, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, isfinal, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse_into_struct, 0, 3, IS_LONG, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
+ ZEND_ARG_INFO(1, values)
+ ZEND_ARG_INFO(1, index)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_get_error_code, 0, 1, IS_LONG, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_error_string, 0, 1, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, code, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_xml_get_current_line_number arginfo_xml_get_error_code
+
+#define arginfo_xml_get_current_column_number arginfo_xml_get_error_code
+
+#define arginfo_xml_get_current_byte_index arginfo_xml_get_error_code
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parser_free, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parser_set_option, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_get_option, 0, 0, 2)
+ ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ZEND_END_ARG_INFO()