diff options
author | Máté Kocsis <kocsismate@woohoolabs.com> | 2020-02-24 23:54:49 +0100 |
---|---|---|
committer | Máté Kocsis <kocsismate@woohoolabs.com> | 2020-02-25 23:05:03 +0100 |
commit | bcb7847139b5fd1ccab5d5f2818aebe1eeed0fbf (patch) | |
tree | 43b19ed38739fee0ebd7fdfc0bb9cdbc774fbd91 /ext | |
parent | d594fba3ac7afc591ab4082c5f13f8f96fffa451 (diff) | |
download | php-git-bcb7847139b5fd1ccab5d5f2818aebe1eeed0fbf.tar.gz |
Add stubs for Intl BreakIterator
Closes GH-5207
Diffstat (limited to 'ext')
-rw-r--r-- | ext/intl/breakiterator/breakiterator.stub.php | 95 | ||||
-rw-r--r-- | ext/intl/breakiterator/breakiterator_arginfo.h | 73 | ||||
-rw-r--r-- | ext/intl/breakiterator/breakiterator_class.cpp | 93 | ||||
-rw-r--r-- | ext/intl/breakiterator/breakiterator_iterators.cpp | 6 |
4 files changed, 199 insertions, 68 deletions
diff --git a/ext/intl/breakiterator/breakiterator.stub.php b/ext/intl/breakiterator/breakiterator.stub.php new file mode 100644 index 0000000000..663932d64e --- /dev/null +++ b/ext/intl/breakiterator/breakiterator.stub.php @@ -0,0 +1,95 @@ +<?php + +class IntlBreakIterator implements Traversable +{ + /** @return IntlBreakIterator|null */ + public static function createCharacterInstance(?string $locale = null) {} + + /** @return IntlCodePointBreakIterator */ + public static function createCodePointInstance() {} + + /** @return IntlBreakIterator|null */ + public static function createLineInstance(?string $locale = null) {} + + /** @return IntlBreakIterator|null */ + public static function createSentenceInstance(?string $locale = null) {} + + /** @return IntlBreakIterator|null */ + public static function createTitleInstance(?string $locale = null) {} + + /** @return IntlBreakIterator|null */ + public static function createWordInstance(?string $locale = null) {} + + private function __construct() {} + + /** @return int */ + public function current() {} + + /** @return int */ + public function first() {} + + /** @return int|false */ + public function following(int $offset) {} + + /** @return int */ + public function getErrorCode() {} + + /** @return string|false */ + public function getErrorMessage() {} + + /** @return string */ + public function getLocale(int $locale_type) {} + + /** @return IntlPartsIterator|false */ + public function getPartsIterator(string $key_type = IntlPartsIterator::KEY_SEQUENTIAL) {} + + /** @return string|null */ + public function getText() {} + + /** @return bool */ + public function isBoundary(int $offset) {} + + /** @return int */ + public function last() {} + + /** @return int|false */ + public function next(?int $offset = null) {} + + /** @return int|false */ + public function preceding(int $offset) {} + + /** @return int */ + public function previous() {} + + /** @return bool|null */ + public function setText(string $text) {} +} + +class IntlRuleBasedBreakIterator extends IntlBreakIterator +{ + public function __construct(string $rules, bool $areCompiled = false) {} + + /** @return string|false */ + public function getBinaryRules() {} + + /** @return string|false */ + public function getRules() {} + + /** @return int */ + public function getRuleStatus() {} + + /** @return array|false */ + public function getRuleStatusVec() {} +} + +class IntlPartsIterator extends IntlIterator +{ + /** @return IntlBreakIterator */ + public function getBreakIterator() {} +} + +class IntlCodePointBreakIterator extends IntlBreakIterator +{ + /** @return int */ + public function getLastCodePoint() {} +} diff --git a/ext/intl/breakiterator/breakiterator_arginfo.h b/ext/intl/breakiterator/breakiterator_arginfo.h new file mode 100644 index 0000000000..27d5185050 --- /dev/null +++ b/ext/intl/breakiterator/breakiterator_arginfo.h @@ -0,0 +1,73 @@ +/* This is a generated file, edit the .stub.php file instead. */ + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_createCharacterInstance, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_createCodePointInstance, 0, 0, 0) +ZEND_END_ARG_INFO() + +#define arginfo_class_IntlBreakIterator_createLineInstance arginfo_class_IntlBreakIterator_createCharacterInstance + +#define arginfo_class_IntlBreakIterator_createSentenceInstance arginfo_class_IntlBreakIterator_createCharacterInstance + +#define arginfo_class_IntlBreakIterator_createTitleInstance arginfo_class_IntlBreakIterator_createCharacterInstance + +#define arginfo_class_IntlBreakIterator_createWordInstance arginfo_class_IntlBreakIterator_createCharacterInstance + +#define arginfo_class_IntlBreakIterator___construct arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlBreakIterator_current arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlBreakIterator_first arginfo_class_IntlBreakIterator_createCodePointInstance + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_following, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_class_IntlBreakIterator_getErrorCode arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlBreakIterator_getErrorMessage arginfo_class_IntlBreakIterator_createCodePointInstance + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_getLocale, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, locale_type, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_getPartsIterator, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, key_type, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#define arginfo_class_IntlBreakIterator_getText arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlBreakIterator_isBoundary arginfo_class_IntlBreakIterator_following + +#define arginfo_class_IntlBreakIterator_last arginfo_class_IntlBreakIterator_createCodePointInstance + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_next, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 1) +ZEND_END_ARG_INFO() + +#define arginfo_class_IntlBreakIterator_preceding arginfo_class_IntlBreakIterator_following + +#define arginfo_class_IntlBreakIterator_previous arginfo_class_IntlBreakIterator_createCodePointInstance + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_setText, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, text, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlRuleBasedBreakIterator___construct, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, rules, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, areCompiled, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +#define arginfo_class_IntlRuleBasedBreakIterator_getBinaryRules arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlRuleBasedBreakIterator_getRules arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlRuleBasedBreakIterator_getRuleStatus arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlRuleBasedBreakIterator_getRuleStatusVec arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlPartsIterator_getBreakIterator arginfo_class_IntlBreakIterator_createCodePointInstance + +#define arginfo_class_IntlCodePointBreakIterator_getLastCodePoint arginfo_class_IntlBreakIterator_createCodePointInstance diff --git a/ext/intl/breakiterator/breakiterator_class.cpp b/ext/intl/breakiterator/breakiterator_class.cpp index 608702ac2b..abbc413c5c 100644 --- a/ext/intl/breakiterator/breakiterator_class.cpp +++ b/ext/intl/breakiterator/breakiterator_class.cpp @@ -27,6 +27,7 @@ extern "C" { #define USE_BREAKITERATOR_POINTER 1 #include "breakiterator_class.h" +#include "breakiterator_arginfo.h" #include "breakiterator_methods.h" #include "rulebasedbreakiterator_methods.h" #include "codepointiterator_methods.h" @@ -220,68 +221,32 @@ static zend_object *BreakIterator_object_create(zend_class_entry *ce) } /* }}} */ -/* {{{ BreakIterator/RuleBasedBreakIterator methods arguments info */ - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_void, 0, 0, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_locale, 0, 0, 0) - ZEND_ARG_INFO(0, locale) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_setText, 0, 0, 1) - ZEND_ARG_INFO(0, text) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_next, 0, 0, 0) - ZEND_ARG_INFO(0, offset) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_offset, 0, 0, 1) - ZEND_ARG_INFO(0, offset) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_get_locale, 0, 0, 1) - ZEND_ARG_INFO(0, locale_type) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_biter_getPartsIterator, 0, 0, 0) - ZEND_ARG_INFO(0, key_type) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(ainfo_rbbi___construct, 0, 0, 1) - ZEND_ARG_INFO(0, rules) - ZEND_ARG_INFO(0, areCompiled) -ZEND_END_ARG_INFO() - -/* }}} */ - /* {{{ BreakIterator_class_functions * Every 'BreakIterator' class method has an entry in this table */ static const zend_function_entry BreakIterator_class_functions[] = { - PHP_ME(BreakIterator, __construct, ainfo_biter_void, ZEND_ACC_PRIVATE) - PHP_ME_MAPPING(createWordInstance, breakiter_create_word_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(createLineInstance, breakiter_create_line_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(createCharacterInstance, breakiter_create_character_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(createSentenceInstance, breakiter_create_sentence_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(createTitleInstance, breakiter_create_title_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(createCodePointInstance, breakiter_create_code_point_instance, ainfo_biter_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getText, breakiter_get_text, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(setText, breakiter_set_text, ainfo_biter_setText, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(first, breakiter_first, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(last, breakiter_last, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(previous, breakiter_previous, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(next, breakiter_next, ainfo_biter_next, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(current, breakiter_current, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(following, breakiter_following, ainfo_biter_offset, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(preceding, breakiter_preceding, ainfo_biter_offset, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(isBoundary, breakiter_is_boundary, ainfo_biter_offset, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getLocale, breakiter_get_locale, ainfo_biter_get_locale, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getPartsIterator, breakiter_get_parts_iterator, ainfo_biter_getPartsIterator, ZEND_ACC_PUBLIC) - - PHP_ME_MAPPING(getErrorCode, breakiter_get_error_code, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getErrorMessage, breakiter_get_error_message, ainfo_biter_void, ZEND_ACC_PUBLIC) + PHP_ME(BreakIterator, __construct, arginfo_class_IntlBreakIterator___construct, ZEND_ACC_PRIVATE) + PHP_ME_MAPPING(createWordInstance, breakiter_create_word_instance, arginfo_class_IntlBreakIterator_createWordInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(createLineInstance, breakiter_create_line_instance, arginfo_class_IntlBreakIterator_createLineInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(createCharacterInstance, breakiter_create_character_instance, arginfo_class_IntlBreakIterator_createCharacterInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(createSentenceInstance, breakiter_create_sentence_instance, arginfo_class_IntlBreakIterator_createSentenceInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(createTitleInstance, breakiter_create_title_instance, arginfo_class_IntlBreakIterator_createTitleInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(createCodePointInstance, breakiter_create_code_point_instance, arginfo_class_IntlBreakIterator_createCodePointInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getText, breakiter_get_text, arginfo_class_IntlBreakIterator_getText, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(setText, breakiter_set_text, arginfo_class_IntlBreakIterator_setText, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(first, breakiter_first, arginfo_class_IntlBreakIterator_first, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(last, breakiter_last, arginfo_class_IntlBreakIterator_last, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(previous, breakiter_previous, arginfo_class_IntlBreakIterator_previous, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(next, breakiter_next, arginfo_class_IntlBreakIterator_next, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(current, breakiter_current, arginfo_class_IntlBreakIterator_current, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(following, breakiter_following, arginfo_class_IntlBreakIterator_following, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(preceding, breakiter_preceding, arginfo_class_IntlBreakIterator_preceding, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(isBoundary, breakiter_is_boundary, arginfo_class_IntlBreakIterator_isBoundary, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getLocale, breakiter_get_locale, arginfo_class_IntlBreakIterator_getLocale, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getPartsIterator, breakiter_get_parts_iterator, arginfo_class_IntlBreakIterator_getPartsIterator, ZEND_ACC_PUBLIC) + + PHP_ME_MAPPING(getErrorCode, breakiter_get_error_code, arginfo_class_IntlBreakIterator_getErrorCode, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getErrorMessage, breakiter_get_error_message, arginfo_class_IntlBreakIterator_getErrorMessage, ZEND_ACC_PUBLIC) PHP_FE_END }; /* }}} */ @@ -289,11 +254,11 @@ static const zend_function_entry BreakIterator_class_functions[] = { /* {{{ RuleBasedBreakIterator_class_functions */ static const zend_function_entry RuleBasedBreakIterator_class_functions[] = { - PHP_ME(IntlRuleBasedBreakIterator, __construct, ainfo_rbbi___construct, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getRules, rbbi_get_rules, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getRuleStatus, rbbi_get_rule_status, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getRuleStatusVec, rbbi_get_rule_status_vec, ainfo_biter_void, ZEND_ACC_PUBLIC) - PHP_ME_MAPPING(getBinaryRules, rbbi_get_binary_rules, ainfo_biter_void, ZEND_ACC_PUBLIC) + PHP_ME(IntlRuleBasedBreakIterator, __construct, arginfo_class_IntlRuleBasedBreakIterator___construct, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getRules, rbbi_get_rules, arginfo_class_IntlRuleBasedBreakIterator_getRules, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getRuleStatus, rbbi_get_rule_status, arginfo_class_IntlRuleBasedBreakIterator_getRuleStatus, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getRuleStatusVec, rbbi_get_rule_status_vec, arginfo_class_IntlRuleBasedBreakIterator_getRuleStatusVec, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getBinaryRules, rbbi_get_binary_rules, arginfo_class_IntlRuleBasedBreakIterator_getBinaryRules, ZEND_ACC_PUBLIC) PHP_FE_END }; /* }}} */ @@ -301,7 +266,7 @@ static const zend_function_entry RuleBasedBreakIterator_class_functions[] = { /* {{{ CodePointBreakIterator_class_functions */ static const zend_function_entry CodePointBreakIterator_class_functions[] = { - PHP_ME_MAPPING(getLastCodePoint, cpbi_get_last_code_point, ainfo_biter_void, ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getLastCodePoint, cpbi_get_last_code_point, arginfo_class_IntlCodePointBreakIterator_getLastCodePoint, ZEND_ACC_PUBLIC) PHP_FE_END }; /* }}} */ diff --git a/ext/intl/breakiterator/breakiterator_iterators.cpp b/ext/intl/breakiterator/breakiterator_iterators.cpp index cd3ef42281..a8d14e94b8 100644 --- a/ext/intl/breakiterator/breakiterator_iterators.cpp +++ b/ext/intl/breakiterator/breakiterator_iterators.cpp @@ -24,6 +24,7 @@ extern "C" { #define USE_BREAKITERATOR_POINTER #include "breakiterator_class.h" +#include "breakiterator_arginfo.h" #include "../intl_convert.h" #include "../locale/locale.h" #include <zend_exceptions.h> @@ -285,11 +286,8 @@ U_CFUNC PHP_METHOD(IntlPartsIterator, getBreakIterator) ZVAL_COPY_DEREF(return_value, biter_zval); } -ZEND_BEGIN_ARG_INFO_EX(ainfo_parts_it_void, 0, 0, 0) -ZEND_END_ARG_INFO() - static const zend_function_entry IntlPartsIterator_class_functions[] = { - PHP_ME(IntlPartsIterator, getBreakIterator, ainfo_parts_it_void, ZEND_ACC_PUBLIC) + PHP_ME(IntlPartsIterator, getBreakIterator, arginfo_class_IntlPartsIterator_getBreakIterator, ZEND_ACC_PUBLIC) PHP_FE_END }; |