xref: /php-src/ext/bcmath/bcmath_arginfo.h (revision fad899e5)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: f3101bbd25da90d97801d53ea673789d1ce4f6a1 */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcadd, 0, 2, IS_STRING, 0)
5 	ZEND_ARG_TYPE_INFO(0, num1, IS_STRING, 0)
6 	ZEND_ARG_TYPE_INFO(0, num2, IS_STRING, 0)
7 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
8 ZEND_END_ARG_INFO()
9 
10 #define arginfo_bcsub arginfo_bcadd
11 
12 #define arginfo_bcmul arginfo_bcadd
13 
14 #define arginfo_bcdiv arginfo_bcadd
15 
16 #define arginfo_bcmod arginfo_bcadd
17 
18 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcpowmod, 0, 3, IS_STRING, 0)
19 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
20 	ZEND_ARG_TYPE_INFO(0, exponent, IS_STRING, 0)
21 	ZEND_ARG_TYPE_INFO(0, modulus, IS_STRING, 0)
22 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
23 ZEND_END_ARG_INFO()
24 
25 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcpow, 0, 2, IS_STRING, 0)
26 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
27 	ZEND_ARG_TYPE_INFO(0, exponent, IS_STRING, 0)
28 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
29 ZEND_END_ARG_INFO()
30 
31 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcsqrt, 0, 1, IS_STRING, 0)
32 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
33 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
34 ZEND_END_ARG_INFO()
35 
36 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bccomp, 0, 2, IS_LONG, 0)
37 	ZEND_ARG_TYPE_INFO(0, num1, IS_STRING, 0)
38 	ZEND_ARG_TYPE_INFO(0, num2, IS_STRING, 0)
39 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
40 ZEND_END_ARG_INFO()
41 
42 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcscale, 0, 0, IS_LONG, 0)
43 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
44 ZEND_END_ARG_INFO()
45 
46 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcfloor, 0, 1, IS_STRING, 0)
47 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
48 ZEND_END_ARG_INFO()
49 
50 #define arginfo_bcceil arginfo_bcfloor
51 
52 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcround, 0, 1, IS_STRING, 0)
53 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
54 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, precision, IS_LONG, 0, "0")
55 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, mode, RoundingMode, 0, "RoundingMode::HalfAwayFromZero")
56 ZEND_END_ARG_INFO()
57 
58 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_BcMath_Number___construct, 0, 0, 1)
59 	ZEND_ARG_TYPE_MASK(0, num, MAY_BE_STRING|MAY_BE_LONG, NULL)
60 ZEND_END_ARG_INFO()
61 
62 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_add, 0, 1, BcMath\\\116umber, 0)
63 	ZEND_ARG_OBJ_TYPE_MASK(0, num, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
64 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
65 ZEND_END_ARG_INFO()
66 
67 #define arginfo_class_BcMath_Number_sub arginfo_class_BcMath_Number_add
68 
69 #define arginfo_class_BcMath_Number_mul arginfo_class_BcMath_Number_add
70 
71 #define arginfo_class_BcMath_Number_div arginfo_class_BcMath_Number_add
72 
73 #define arginfo_class_BcMath_Number_mod arginfo_class_BcMath_Number_add
74 
75 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_powmod, 0, 2, BcMath\\\116umber, 0)
76 	ZEND_ARG_OBJ_TYPE_MASK(0, exponent, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
77 	ZEND_ARG_OBJ_TYPE_MASK(0, modulus, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
78 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
79 ZEND_END_ARG_INFO()
80 
81 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_pow, 0, 1, BcMath\\\116umber, 0)
82 	ZEND_ARG_OBJ_TYPE_MASK(0, exponent, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
83 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
84 ZEND_END_ARG_INFO()
85 
86 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_sqrt, 0, 0, BcMath\\\116umber, 0)
87 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
88 ZEND_END_ARG_INFO()
89 
90 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_floor, 0, 0, BcMath\\\116umber, 0)
91 ZEND_END_ARG_INFO()
92 
93 #define arginfo_class_BcMath_Number_ceil arginfo_class_BcMath_Number_floor
94 
95 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_round, 0, 0, BcMath\\\116umber, 0)
96 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, precision, IS_LONG, 0, "0")
97 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, mode, RoundingMode, 0, "RoundingMode::HalfAwayFromZero")
98 ZEND_END_ARG_INFO()
99 
100 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number_compare, 0, 1, IS_LONG, 0)
101 	ZEND_ARG_OBJ_TYPE_MASK(0, num, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
102 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
103 ZEND_END_ARG_INFO()
104 
105 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number___toString, 0, 0, IS_STRING, 0)
106 ZEND_END_ARG_INFO()
107 
108 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number___serialize, 0, 0, IS_ARRAY, 0)
109 ZEND_END_ARG_INFO()
110 
111 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number___unserialize, 0, 1, IS_VOID, 0)
112 	ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
113 ZEND_END_ARG_INFO()
114 
115 ZEND_FUNCTION(bcadd);
116 ZEND_FUNCTION(bcsub);
117 ZEND_FUNCTION(bcmul);
118 ZEND_FUNCTION(bcdiv);
119 ZEND_FUNCTION(bcmod);
120 ZEND_FUNCTION(bcpowmod);
121 ZEND_FUNCTION(bcpow);
122 ZEND_FUNCTION(bcsqrt);
123 ZEND_FUNCTION(bccomp);
124 ZEND_FUNCTION(bcscale);
125 ZEND_FUNCTION(bcfloor);
126 ZEND_FUNCTION(bcceil);
127 ZEND_FUNCTION(bcround);
128 ZEND_METHOD(BcMath_Number, __construct);
129 ZEND_METHOD(BcMath_Number, add);
130 ZEND_METHOD(BcMath_Number, sub);
131 ZEND_METHOD(BcMath_Number, mul);
132 ZEND_METHOD(BcMath_Number, div);
133 ZEND_METHOD(BcMath_Number, mod);
134 ZEND_METHOD(BcMath_Number, powmod);
135 ZEND_METHOD(BcMath_Number, pow);
136 ZEND_METHOD(BcMath_Number, sqrt);
137 ZEND_METHOD(BcMath_Number, floor);
138 ZEND_METHOD(BcMath_Number, ceil);
139 ZEND_METHOD(BcMath_Number, round);
140 ZEND_METHOD(BcMath_Number, compare);
141 ZEND_METHOD(BcMath_Number, __toString);
142 ZEND_METHOD(BcMath_Number, __serialize);
143 ZEND_METHOD(BcMath_Number, __unserialize);
144 
145 static const zend_function_entry ext_functions[] = {
146 	ZEND_FE(bcadd, arginfo_bcadd)
147 	ZEND_FE(bcsub, arginfo_bcsub)
148 	ZEND_FE(bcmul, arginfo_bcmul)
149 	ZEND_FE(bcdiv, arginfo_bcdiv)
150 	ZEND_FE(bcmod, arginfo_bcmod)
151 	ZEND_FE(bcpowmod, arginfo_bcpowmod)
152 	ZEND_FE(bcpow, arginfo_bcpow)
153 	ZEND_FE(bcsqrt, arginfo_bcsqrt)
154 	ZEND_FE(bccomp, arginfo_bccomp)
155 	ZEND_FE(bcscale, arginfo_bcscale)
156 	ZEND_FE(bcfloor, arginfo_bcfloor)
157 	ZEND_FE(bcceil, arginfo_bcceil)
158 	ZEND_FE(bcround, arginfo_bcround)
159 	ZEND_FE_END
160 };
161 
162 static const zend_function_entry class_BcMath_Number_methods[] = {
163 	ZEND_ME(BcMath_Number, __construct, arginfo_class_BcMath_Number___construct, ZEND_ACC_PUBLIC)
164 	ZEND_ME(BcMath_Number, add, arginfo_class_BcMath_Number_add, ZEND_ACC_PUBLIC)
165 	ZEND_ME(BcMath_Number, sub, arginfo_class_BcMath_Number_sub, ZEND_ACC_PUBLIC)
166 	ZEND_ME(BcMath_Number, mul, arginfo_class_BcMath_Number_mul, ZEND_ACC_PUBLIC)
167 	ZEND_ME(BcMath_Number, div, arginfo_class_BcMath_Number_div, ZEND_ACC_PUBLIC)
168 	ZEND_ME(BcMath_Number, mod, arginfo_class_BcMath_Number_mod, ZEND_ACC_PUBLIC)
169 	ZEND_ME(BcMath_Number, powmod, arginfo_class_BcMath_Number_powmod, ZEND_ACC_PUBLIC)
170 	ZEND_ME(BcMath_Number, pow, arginfo_class_BcMath_Number_pow, ZEND_ACC_PUBLIC)
171 	ZEND_ME(BcMath_Number, sqrt, arginfo_class_BcMath_Number_sqrt, ZEND_ACC_PUBLIC)
172 	ZEND_ME(BcMath_Number, floor, arginfo_class_BcMath_Number_floor, ZEND_ACC_PUBLIC)
173 	ZEND_ME(BcMath_Number, ceil, arginfo_class_BcMath_Number_ceil, ZEND_ACC_PUBLIC)
174 	ZEND_ME(BcMath_Number, round, arginfo_class_BcMath_Number_round, ZEND_ACC_PUBLIC)
175 	ZEND_ME(BcMath_Number, compare, arginfo_class_BcMath_Number_compare, ZEND_ACC_PUBLIC)
176 	ZEND_ME(BcMath_Number, __toString, arginfo_class_BcMath_Number___toString, ZEND_ACC_PUBLIC)
177 	ZEND_ME(BcMath_Number, __serialize, arginfo_class_BcMath_Number___serialize, ZEND_ACC_PUBLIC)
178 	ZEND_ME(BcMath_Number, __unserialize, arginfo_class_BcMath_Number___unserialize, ZEND_ACC_PUBLIC)
179 	ZEND_FE_END
180 };
181 
register_class_BcMath_Number(zend_class_entry * class_entry_Stringable)182 static zend_class_entry *register_class_BcMath_Number(zend_class_entry *class_entry_Stringable)
183 {
184 	zend_class_entry ce, *class_entry;
185 
186 	INIT_NS_CLASS_ENTRY(ce, "BcMath", "Number", class_BcMath_Number_methods);
187 	class_entry = zend_register_internal_class_with_flags(&ce, NULL, ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_READONLY_CLASS);
188 	zend_class_implements(class_entry, 1, class_entry_Stringable);
189 
190 	zval property_value_default_value;
191 	ZVAL_UNDEF(&property_value_default_value);
192 	zend_string *property_value_name = zend_string_init("value", sizeof("value") - 1, 1);
193 	zend_declare_typed_property(class_entry, property_value_name, &property_value_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY|ZEND_ACC_VIRTUAL, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
194 	zend_string_release(property_value_name);
195 
196 	zval property_scale_default_value;
197 	ZVAL_UNDEF(&property_scale_default_value);
198 	zend_string *property_scale_name = zend_string_init("scale", sizeof("scale") - 1, 1);
199 	zend_declare_typed_property(class_entry, property_scale_name, &property_scale_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY|ZEND_ACC_VIRTUAL, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
200 	zend_string_release(property_scale_name);
201 
202 	return class_entry;
203 }
204