diff --git a/CHANGELOG b/CHANGELOG index 05da1586907..db96e80bcd7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -16,6 +16,7 @@ - Phalcon\Debug\Dump -- Renamed method var() to variable() -- Renamed method vars() to variables() + - Phalcon\Mvc\Model::findFirst() now allows hydration (#10259). 2.0.0 - Full rewrite of most components in Zephir diff --git a/build/32bits/phalcon.zep.c b/build/32bits/phalcon.zep.c index 6282f3b7c17..a6a8e9246b7 100644 --- a/build/32bits/phalcon.zep.c +++ b/build/32bits/phalcon.zep.c @@ -3435,11 +3435,6 @@ static void zephir_pow(zval *return_value, zval *op1, zval *op2 TSRMLS_DC); #define ZEPHIR_SCONCAT_VSVV(result, op1, op2, op3, op4) \ zephir_concat_vsvv(&result, op1, op2, sizeof(op2)-1, op3, op4, 1 TSRMLS_CC); -#define ZEPHIR_CONCAT_VSVVV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vsvvv(&result, op1, op2, sizeof(op2)-1, op3, op4, op5, 0 TSRMLS_CC); -#define ZEPHIR_SCONCAT_VSVVV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vsvvv(&result, op1, op2, sizeof(op2)-1, op3, op4, op5, 1 TSRMLS_CC); - #define ZEPHIR_CONCAT_VV(result, op1, op2) \ zephir_concat_vv(&result, op1, op2, 0 TSRMLS_CC); #define ZEPHIR_SCONCAT_VV(result, op1, op2) \ @@ -3460,11 +3455,6 @@ static void zephir_pow(zval *return_value, zval *op1, zval *op2 TSRMLS_DC); #define ZEPHIR_SCONCAT_VVV(result, op1, op2, op3) \ zephir_concat_vvv(&result, op1, op2, op3, 1 TSRMLS_CC); -#define ZEPHIR_CONCAT_VVVSV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vvvsv(&result, op1, op2, op3, op4, sizeof(op4)-1, op5, 0 TSRMLS_CC); -#define ZEPHIR_SCONCAT_VVVSV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vvvsv(&result, op1, op2, op3, op4, sizeof(op4)-1, op5, 1 TSRMLS_CC); - #define ZEPHIR_CONCAT_VVVV(result, op1, op2, op3, op4) \ zephir_concat_vvvv(&result, op1, op2, op3, op4, 0 TSRMLS_CC); #define ZEPHIR_SCONCAT_VVVV(result, op1, op2, op3, op4) \ @@ -3501,12 +3491,10 @@ static void zephir_concat_vsvsv(zval **result, zval *op1, const char *op2, zend_ static void zephir_concat_vsvsvs(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, const char *op4, zend_uint op4_len, zval *op5, const char *op6, zend_uint op6_len, int self_var TSRMLS_DC); static void zephir_concat_vsvsvsv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, const char *op4, zend_uint op4_len, zval *op5, const char *op6, zend_uint op6_len, zval *op7, int self_var TSRMLS_DC); static void zephir_concat_vsvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, int self_var TSRMLS_DC); -static void zephir_concat_vsvvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC); static void zephir_concat_vv(zval **result, zval *op1, zval *op2, int self_var TSRMLS_DC); static void zephir_concat_vvs(zval **result, zval *op1, zval *op2, const char *op3, zend_uint op3_len, int self_var TSRMLS_DC); static void zephir_concat_vvsv(zval **result, zval *op1, zval *op2, const char *op3, zend_uint op3_len, zval *op4, int self_var TSRMLS_DC); static void zephir_concat_vvv(zval **result, zval *op1, zval *op2, zval *op3, int self_var TSRMLS_DC); -static void zephir_concat_vvvsv(zval **result, zval *op1, zval *op2, zval *op3, const char *op4, zend_uint op4_len, zval *op5, int self_var TSRMLS_DC); static void zephir_concat_vvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var TSRMLS_DC); static void zephir_concat_vvvvsvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, const char *op5, zend_uint op5_len, zval *op6, zval *op7, int self_var TSRMLS_DC); static void zephir_concat_vvvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC); @@ -14991,89 +14979,6 @@ static void zephir_concat_vsvv(zval **result, zval *op1, const char *op2, zend_u } -static void zephir_concat_vsvvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC){ - - zval result_copy, op1_copy, op3_copy, op4_copy, op5_copy; - int use_copy = 0, use_copy1 = 0, use_copy3 = 0, use_copy4 = 0, use_copy5 = 0; - uint offset = 0, length; - - if (Z_TYPE_P(op1) != IS_STRING) { - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - if (use_copy1) { - op1 = &op1_copy; - } - } - - if (Z_TYPE_P(op3) != IS_STRING) { - zend_make_printable_zval(op3, &op3_copy, &use_copy3); - if (use_copy3) { - op3 = &op3_copy; - } - } - - if (Z_TYPE_P(op4) != IS_STRING) { - zend_make_printable_zval(op4, &op4_copy, &use_copy4); - if (use_copy4) { - op4 = &op4_copy; - } - } - - if (Z_TYPE_P(op5) != IS_STRING) { - zend_make_printable_zval(op5, &op5_copy, &use_copy5); - if (use_copy5) { - op5 = &op5_copy; - } - } - - length = Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3) + Z_STRLEN_P(op4) + Z_STRLEN_P(op5); - if (self_var) { - - if (Z_TYPE_PP(result) != IS_STRING) { - zend_make_printable_zval(*result, &result_copy, &use_copy); - if (use_copy) { - ZEPHIR_CPY_WRT_CTOR(*result, (&result_copy)); - } - } - - offset = Z_STRLEN_PP(result); - length += offset; - Z_STRVAL_PP(result) = (char *) str_erealloc(Z_STRVAL_PP(result), length + 1); - - } else { - Z_STRVAL_PP(result) = (char *) emalloc(length + 1); - } - - memcpy(Z_STRVAL_PP(result) + offset, Z_STRVAL_P(op1), Z_STRLEN_P(op1)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1), op2, op2_len); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len, Z_STRVAL_P(op3), Z_STRLEN_P(op3)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3), Z_STRVAL_P(op4), Z_STRLEN_P(op4)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3) + Z_STRLEN_P(op4), Z_STRVAL_P(op5), Z_STRLEN_P(op5)); - Z_STRVAL_PP(result)[length] = 0; - Z_TYPE_PP(result) = IS_STRING; - Z_STRLEN_PP(result) = length; - - if (use_copy1) { - zval_dtor(op1); - } - - if (use_copy3) { - zval_dtor(op3); - } - - if (use_copy4) { - zval_dtor(op4); - } - - if (use_copy5) { - zval_dtor(op5); - } - - if (use_copy) { - zval_dtor(&result_copy); - } - -} - static void zephir_concat_vv(zval **result, zval *op1, zval *op2, int self_var TSRMLS_DC){ zval result_copy, op1_copy, op2_copy; @@ -15332,89 +15237,6 @@ static void zephir_concat_vvv(zval **result, zval *op1, zval *op2, zval *op3, in } -static void zephir_concat_vvvsv(zval **result, zval *op1, zval *op2, zval *op3, const char *op4, zend_uint op4_len, zval *op5, int self_var TSRMLS_DC){ - - zval result_copy, op1_copy, op2_copy, op3_copy, op5_copy; - int use_copy = 0, use_copy1 = 0, use_copy2 = 0, use_copy3 = 0, use_copy5 = 0; - uint offset = 0, length; - - if (Z_TYPE_P(op1) != IS_STRING) { - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - if (use_copy1) { - op1 = &op1_copy; - } - } - - if (Z_TYPE_P(op2) != IS_STRING) { - zend_make_printable_zval(op2, &op2_copy, &use_copy2); - if (use_copy2) { - op2 = &op2_copy; - } - } - - if (Z_TYPE_P(op3) != IS_STRING) { - zend_make_printable_zval(op3, &op3_copy, &use_copy3); - if (use_copy3) { - op3 = &op3_copy; - } - } - - if (Z_TYPE_P(op5) != IS_STRING) { - zend_make_printable_zval(op5, &op5_copy, &use_copy5); - if (use_copy5) { - op5 = &op5_copy; - } - } - - length = Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3) + op4_len + Z_STRLEN_P(op5); - if (self_var) { - - if (Z_TYPE_PP(result) != IS_STRING) { - zend_make_printable_zval(*result, &result_copy, &use_copy); - if (use_copy) { - ZEPHIR_CPY_WRT_CTOR(*result, (&result_copy)); - } - } - - offset = Z_STRLEN_PP(result); - length += offset; - Z_STRVAL_PP(result) = (char *) str_erealloc(Z_STRVAL_PP(result), length + 1); - - } else { - Z_STRVAL_PP(result) = (char *) emalloc(length + 1); - } - - memcpy(Z_STRVAL_PP(result) + offset, Z_STRVAL_P(op1), Z_STRLEN_P(op1)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1), Z_STRVAL_P(op2), Z_STRLEN_P(op2)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2), Z_STRVAL_P(op3), Z_STRLEN_P(op3)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3), op4, op4_len); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3) + op4_len, Z_STRVAL_P(op5), Z_STRLEN_P(op5)); - Z_STRVAL_PP(result)[length] = 0; - Z_TYPE_PP(result) = IS_STRING; - Z_STRLEN_PP(result) = length; - - if (use_copy1) { - zval_dtor(op1); - } - - if (use_copy2) { - zval_dtor(op2); - } - - if (use_copy3) { - zval_dtor(op3); - } - - if (use_copy5) { - zval_dtor(op5); - } - - if (use_copy) { - zval_dtor(&result_copy); - } - -} - static void zephir_concat_vvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var TSRMLS_DC){ zval result_copy, op1_copy, op2_copy, op3_copy, op4_copy; @@ -16983,11 +16805,11 @@ ZEPHIR_INIT_CLASS(Phalcon_Config) { static PHP_METHOD(Phalcon_Config, __construct) { + zephir_fcall_cache_entry *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_6 = NULL; HashTable *_1; HashPosition _0; - zval *arrayConfig_param = NULL, *key = NULL, *value = NULL, **_2, *_3 = NULL, *_5 = NULL; + zval *arrayConfig_param = NULL, *key = NULL, *value = NULL, **_2; zval *arrayConfig = NULL; ZEPHIR_MM_GROW(); @@ -17002,25 +16824,15 @@ static PHP_METHOD(Phalcon_Config, __construct) { } - zephir_is_iterable(arrayConfig, &_1, &_0, 0, 0, "phalcon/config.zep", 68); + zephir_is_iterable(arrayConfig, &_1, &_0, 0, 0, "phalcon/config.zep", 62); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HMKEY(key, _1, _0); ZEPHIR_GET_HVALUE(value, _2); - ZEPHIR_CALL_FUNCTION(&_3, "strval", &_4, key); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "offsetset", &_3, key, value); zephir_check_call_status(); - ZEPHIR_CPY_WRT(key, _3); - if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(_5); - object_init_ex(_5, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_6, value); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, key, _5 TSRMLS_CC); - } else { - zephir_update_property_zval_zval(this_ptr, key, value TSRMLS_CC); - } } ZEPHIR_MM_RESTORE(); @@ -17028,57 +16840,45 @@ static PHP_METHOD(Phalcon_Config, __construct) { static PHP_METHOD(Phalcon_Config, offsetExists) { - zval *index_param = NULL; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); RETURN_MM_BOOL(zephir_isset_property_zval(this_ptr, index TSRMLS_CC)); } static PHP_METHOD(Phalcon_Config, get) { - zval *index_param = NULL, *defaultValue = NULL, *_0; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *defaultValue = NULL, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &index_param, &defaultValue); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 1, &index, &defaultValue); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); if (!defaultValue) { defaultValue = ZEPHIR_GLOBAL(global_null); } + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); if (zephir_isset_property_zval(this_ptr, index TSRMLS_CC)) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_zval(&_0, this_ptr, index, PH_NOISY_CC); - RETURN_CCTOR(_0); + ZEPHIR_OBS_VAR(_2); + zephir_read_property_zval(&_2, this_ptr, index, PH_NOISY_CC); + RETURN_CCTOR(_2); } RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); @@ -17087,60 +16887,46 @@ static PHP_METHOD(Phalcon_Config, get) { static PHP_METHOD(Phalcon_Config, offsetGet) { - zval *index_param = NULL, *_0; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); - ZEPHIR_OBS_VAR(_0); - zephir_read_property_zval(&_0, this_ptr, index, PH_NOISY_CC); - RETURN_CCTOR(_0); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); + ZEPHIR_OBS_VAR(_2); + zephir_read_property_zval(&_2, this_ptr, index, PH_NOISY_CC); + RETURN_CCTOR(_2); } static PHP_METHOD(Phalcon_Config, offsetSet) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *index_param = NULL, *value, *_0; - zval *index = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *index = NULL, *value, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &index_param, &value); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 2, 0, &index, &value); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_VAR(_0); - object_init_ex(_0, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_1, value); + ZEPHIR_INIT_VAR(_2); + object_init_ex(_2, phalcon_config_ce); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_3, value); zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, index, _0 TSRMLS_CC); + zephir_update_property_zval_zval(this_ptr, index, _2 TSRMLS_CC); } else { zephir_update_property_zval_zval(this_ptr, index, value TSRMLS_CC); } @@ -17150,25 +16936,19 @@ static PHP_METHOD(Phalcon_Config, offsetSet) { static PHP_METHOD(Phalcon_Config, offsetUnset) { - zval *index_param = NULL; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); zephir_update_property_zval_zval(this_ptr, index, ZEPHIR_GLOBAL(global_null) TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -17205,7 +16985,7 @@ static PHP_METHOD(Phalcon_Config, toArray) { array_init(arrayConfig); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 179); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 180); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -17289,7 +17069,7 @@ static PHP_METHOD(Phalcon_Config, _merge) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, config); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 238); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 239); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -18853,7 +18633,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_CPY_WRT(html, _1); if (zephir_array_isset_string(trace, SS("class"))) { ZEPHIR_OBS_VAR(className); - zephir_array_fetch_string(&className, trace, SL("class"), PH_NOISY, "phalcon/debug.zep", 356 TSRMLS_CC); + zephir_array_fetch_string(&className, trace, SL("class"), PH_NOISY, "phalcon/debug.zep", 355 TSRMLS_CC); ZEPHIR_INIT_VAR(_2); ZEPHIR_INIT_VAR(_3); ZEPHIR_SINIT_VAR(_4); @@ -18888,11 +18668,11 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { zephir_concat_self(&html, _10 TSRMLS_CC); } } - zephir_array_fetch_string(&_11, trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/debug.zep", 397 TSRMLS_CC); + zephir_array_fetch_string(&_11, trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/debug.zep", 396 TSRMLS_CC); zephir_concat_self(&html, _11 TSRMLS_CC); } ZEPHIR_OBS_VAR(functionName); - zephir_array_fetch_string(&functionName, trace, SL("function"), PH_NOISY, "phalcon/debug.zep", 403 TSRMLS_CC); + zephir_array_fetch_string(&functionName, trace, SL("function"), PH_NOISY, "phalcon/debug.zep", 402 TSRMLS_CC); if (zephir_array_isset_string(trace, SS("class"))) { ZEPHIR_INIT_LNVAR(_5); ZEPHIR_CONCAT_SVS(_5, "", functionName, ""); @@ -18924,11 +18704,11 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { } if (zephir_array_isset_string(trace, SS("args"))) { ZEPHIR_OBS_VAR(traceArgs); - zephir_array_fetch_string(&traceArgs, trace, SL("args"), PH_NOISY, "phalcon/debug.zep", 437 TSRMLS_CC); + zephir_array_fetch_string(&traceArgs, trace, SL("args"), PH_NOISY, "phalcon/debug.zep", 436 TSRMLS_CC); if (zephir_fast_count_int(traceArgs TSRMLS_CC)) { ZEPHIR_INIT_VAR(arguments); array_init(arguments); - zephir_is_iterable(traceArgs, &_15, &_14, 0, 0, "phalcon/debug.zep", 452); + zephir_is_iterable(traceArgs, &_15, &_14, 0, 0, "phalcon/debug.zep", 451); for ( ; zephir_hash_get_current_data_ex(_15, (void**) &_16, &_14) == SUCCESS ; zephir_hash_move_forward_ex(_15, &_14) @@ -18938,7 +18718,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_5); ZEPHIR_CONCAT_SVS(_5, "", _7, ""); - zephir_array_append(&arguments, _5, PH_SEPARATE, "phalcon/debug.zep", 446); + zephir_array_append(&arguments, _5, PH_SEPARATE, "phalcon/debug.zep", 445); } ZEPHIR_INIT_NVAR(_3); zephir_fast_join_str(_3, SL(", "), arguments TSRMLS_CC); @@ -18952,7 +18732,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_OBS_VAR(filez); if (zephir_array_isset_string_fetch(&filez, trace, SS("file"), 0 TSRMLS_CC)) { ZEPHIR_OBS_VAR(_18); - zephir_array_fetch_string(&_18, trace, SL("line"), PH_NOISY, "phalcon/debug.zep", 463 TSRMLS_CC); + zephir_array_fetch_string(&_18, trace, SL("line"), PH_NOISY, "phalcon/debug.zep", 462 TSRMLS_CC); zephir_get_strval(_19, _18); ZEPHIR_CPY_WRT(line, _19); ZEPHIR_INIT_LNVAR(_5); @@ -19016,7 +18796,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_SINIT_NVAR(linePosition); ZVAL_LONG(&linePosition, (i - 1)); ZEPHIR_OBS_NVAR(currentLine); - zephir_array_fetch(¤tLine, lines, &linePosition, PH_NOISY, "phalcon/debug.zep", 551 TSRMLS_CC); + zephir_array_fetch(¤tLine, lines, &linePosition, PH_NOISY, "phalcon/debug.zep", 550 TSRMLS_CC); if (zephir_is_true(showFileFragment)) { if (i == firstLine) { ZEPHIR_INIT_NVAR(_23); @@ -19076,7 +18856,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtLowSeverity) { ZVAL_LONG(_4, 0); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, message, _4, severity, file, line); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/debug.zep", 594 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/debug.zep", 593 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -19158,7 +18938,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
") TSRMLS_CC); ZEPHIR_CALL_METHOD(&_11, exception, "gettrace", NULL); zephir_check_call_status(); - zephir_is_iterable(_11, &_13, &_12, 0, 0, "phalcon/debug.zep", 688); + zephir_is_iterable(_11, &_13, &_12, 0, 0, "phalcon/debug.zep", 687); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -19173,7 +18953,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); zephir_get_global(&_REQUEST, SS("_REQUEST") TSRMLS_CC); - zephir_is_iterable(_REQUEST, &_18, &_17, 0, 0, "phalcon/debug.zep", 698); + zephir_is_iterable(_REQUEST, &_18, &_17, 0, 0, "phalcon/debug.zep", 697); for ( ; zephir_hash_get_current_data_ex(_18, (void**) &_19, &_17) == SUCCESS ; zephir_hash_move_forward_ex(_18, &_17) @@ -19188,7 +18968,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
KeyValue
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); - zephir_is_iterable(_SERVER, &_22, &_21, 0, 0, "phalcon/debug.zep", 708); + zephir_is_iterable(_SERVER, &_22, &_21, 0, 0, "phalcon/debug.zep", 707); for ( ; zephir_hash_get_current_data_ex(_22, (void**) &_23, &_21) == SUCCESS ; zephir_hash_move_forward_ex(_22, &_21) @@ -19204,7 +18984,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("") TSRMLS_CC); ZEPHIR_CALL_FUNCTION(&_15, "get_included_files", &_24); zephir_check_call_status(); - zephir_is_iterable(_15, &_26, &_25, 0, 0, "phalcon/debug.zep", 719); + zephir_is_iterable(_15, &_26, &_25, 0, 0, "phalcon/debug.zep", 718); for ( ; zephir_hash_get_current_data_ex(_26, (void**) &_27, &_25) == SUCCESS ; zephir_hash_move_forward_ex(_26, &_25) @@ -19226,14 +19006,14 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { if (Z_TYPE_P(dataVars) == IS_ARRAY) { zephir_concat_self_str(&html, SL("
KeyValue
#Path
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); - zephir_is_iterable(dataVars, &_30, &_29, 0, 0, "phalcon/debug.zep", 737); + zephir_is_iterable(dataVars, &_30, &_29, 0, 0, "phalcon/debug.zep", 736); for ( ; zephir_hash_get_current_data_ex(_30, (void**) &_31, &_29) == SUCCESS ; zephir_hash_move_forward_ex(_30, &_29) ) { ZEPHIR_GET_HMKEY(keyVar, _30, _29); ZEPHIR_GET_HVALUE(dataVar, _31); - zephir_array_fetch_long(&_33, dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/debug.zep", 735 TSRMLS_CC); + zephir_array_fetch_long(&_33, dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/debug.zep", 734 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_32, this_ptr, "_getvardump", &_34, _33); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_35); @@ -27197,9 +26977,11 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addRole) { static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + HashTable *_7; + HashPosition _6; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_9 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *roleToInherit, *roleInheritName = NULL, *rolesNames, *_0 = NULL, *_3, *_4; + zval *roleName_param = NULL, *roleToInherit, *roleInheritName = NULL, *rolesNames, *deepInheritName = NULL, *_0 = NULL, *_3, *_4, *_5, **_8, *_10; zval *roleName = NULL, *_1; ZEPHIR_MM_GROW(); @@ -27217,7 +26999,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { ZEPHIR_CONCAT_SVS(_1, "Role '", roleName, "' does not exist in the role list"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _1); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 193 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 192 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27227,14 +27009,28 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { } else { ZEPHIR_CPY_WRT(roleInheritName, roleToInherit); } + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_roleInherits"), PH_NOISY_CC); + if (zephir_array_isset(_3, roleInheritName)) { + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_roleInherits"), PH_NOISY_CC); + zephir_array_fetch(&_5, _4, roleInheritName, PH_NOISY | PH_READONLY, "phalcon/acl/adapter/memory.zep", 205 TSRMLS_CC); + zephir_is_iterable(_5, &_7, &_6, 0, 0, "phalcon/acl/adapter/memory.zep", 208); + for ( + ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS + ; zephir_hash_move_forward_ex(_7, &_6) + ) { + ZEPHIR_GET_HVALUE(deepInheritName, _8); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinherit", &_9, roleName, deepInheritName); + zephir_check_call_status(); + } + } if (!(zephir_array_isset(rolesNames, roleInheritName))) { ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(_3); - ZEPHIR_CONCAT_SVS(_3, "Role '", roleInheritName, "' (to inherit) does not exist in the role list"); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _3); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SVS(_10, "Role '", roleInheritName, "' (to inherit) does not exist in the role list"); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _10); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 206 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 214 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27339,7 +27135,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addResourceAccess) { ZEPHIR_CONCAT_SVS(_2, "Resource '", resourceName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 288 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 296 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27348,12 +27144,12 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addResourceAccess) { _4 = Z_TYPE_P(accessList) != IS_STRING; } if (_4) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/acl/adapter/memory.zep", 292); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/acl/adapter/memory.zep", 300); return; } exists = 1; if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 303); + zephir_is_iterable(accessList, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 311); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -27394,7 +27190,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, dropResourceAccess) { if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, &_1, &_0, 0, 0, "phalcon/acl/adapter/memory.zep", 329); + zephir_is_iterable(accessList, &_1, &_0, 0, 0, "phalcon/acl/adapter/memory.zep", 337); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -27445,7 +27241,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVS(_2, "Role '", roleName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 347 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 355 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27457,7 +27253,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVS(_2, "Resource '", resourceName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 351 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 359 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27468,7 +27264,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_OBS_VAR(internalAccess); zephir_read_property_this(&internalAccess, this_ptr, SL("_access"), PH_NOISY_CC); if (Z_TYPE_P(access) == IS_ARRAY) { - zephir_is_iterable(access, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 367); + zephir_is_iterable(access, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 375); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -27483,12 +27279,12 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVSVS(_8, "Access '", accessName, "' does not exist in resource '", resourceName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 363 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 371 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } } - zephir_is_iterable(access, &_10, &_9, 0, 0, "phalcon/acl/adapter/memory.zep", 380); + zephir_is_iterable(access, &_10, &_9, 0, 0, "phalcon/acl/adapter/memory.zep", 388); for ( ; zephir_hash_get_current_data_ex(_10, (void**) &_11, &_9) == SUCCESS ; zephir_hash_move_forward_ex(_10, &_9) @@ -27517,7 +27313,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVSVS(_8, "Access '", access, "' does not exist in resource '", resourceName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 385 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 393 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27564,7 +27360,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, allow) { } else { _2 = zephir_fetch_nproperty_this(this_ptr, SL("_rolesNames"), PH_NOISY_CC); ZEPHIR_INIT_NVAR(_0); - zephir_is_iterable(_2, &_4, &_3, 0, 0, "phalcon/acl/adapter/memory.zep", 441); + zephir_is_iterable(_2, &_4, &_3, 0, 0, "phalcon/acl/adapter/memory.zep", 449); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -27606,7 +27402,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, deny) { } else { _1 = zephir_fetch_nproperty_this(this_ptr, SL("_rolesNames"), PH_NOISY_CC); ZEPHIR_INIT_NVAR(_0); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/acl/adapter/memory.zep", 474); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/acl/adapter/memory.zep", 482); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -27669,7 +27465,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 520 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 528 TSRMLS_CC); } if (Z_TYPE_P(haveAccess) == IS_NULL) { ZEPHIR_OBS_VAR(roleInherits); @@ -27677,7 +27473,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_OBS_VAR(inheritedRoles); if (zephir_array_isset_fetch(&inheritedRoles, roleInherits, roleName, 0 TSRMLS_CC)) { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_5, &_4, 0, 0, "phalcon/acl/adapter/memory.zep", 541); + zephir_is_iterable(inheritedRoles, &_5, &_4, 0, 0, "phalcon/acl/adapter/memory.zep", 549); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -27687,7 +27483,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VSVSV(accessKey, inheritedRole, "!", resourceName, "!", access); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 538 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 546 TSRMLS_CC); } } } @@ -27699,10 +27495,10 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 556 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 564 TSRMLS_CC); } else { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_8, &_7, 0, 0, "phalcon/acl/adapter/memory.zep", 570); + zephir_is_iterable(inheritedRoles, &_8, &_7, 0, 0, "phalcon/acl/adapter/memory.zep", 578); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -27712,7 +27508,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VSVS(accessKey, inheritedRole, "!", resourceName, "!*"); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 566 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 574 TSRMLS_CC); break; } } @@ -27725,10 +27521,10 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 585 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 593 TSRMLS_CC); } else { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_11, &_10, 0, 0, "phalcon/acl/adapter/memory.zep", 599); + zephir_is_iterable(inheritedRoles, &_11, &_10, 0, 0, "phalcon/acl/adapter/memory.zep", 607); for ( ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS ; zephir_hash_move_forward_ex(_11, &_10) @@ -27738,7 +27534,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VS(accessKey, inheritedRole, "!*!*"); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 595 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 603 TSRMLS_CC); break; } } @@ -28715,155 +28511,153 @@ static zval *phannot_ret_annotation(phannot_parser_token *name, zval *arguments, #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** JJCODETYPE is the data type used for storing terminal +** AACODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** JJNOCODE is a number of type JJCODETYPE which corresponds +** AANOCODE is a number of type AACODETYPE which corresponds ** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash +** number is used to fill in empty slots of the hash ** table. -** JJFALLBACK If defined, this indicates that one or more tokens +** AAFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** JJACTIONTYPE is the data type used for storing terminal +** AAACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. -** phannot_JTOKENTYPE is the data type used for minor tokens given +** phannot_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** JJMINORTYPE is the data type used for all minor tokens. +** AAMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of -** which is phannot_JTOKENTYPE. The entry in the union -** for base tokens is called "jj0". -** JJSTACKDEPTH is the maximum depth of the parser's stack. +** which is phannot_TOKENTYPE. The entry in the union +** for base tokens is called "aa0". +** AASTACKDEPTH is the maximum depth of the parser's stack. ** phannot_ARG_SDECL A static variable declaration for the %extra_argument ** phannot_ARG_PDECL A parameter declaration for the %extra_argument -** phannot_ARG_STORE Code to store %extra_argument into jjpParser -** phannot_ARG_FETCH Code to extract %extra_argument from jjpParser -** JJNSTATE the combined number of states. -** JJNRULE the number of rules in the grammar -** JJERRORSYMBOL is the code number of the error symbol. If not +** phannot_ARG_STORE Code to store %extra_argument into aapParser +** phannot_ARG_FETCH Code to extract %extra_argument from aapParser +** AANSTATE the combined number of states. +** AANRULE the number of rules in the grammar +** AAERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define JJCODETYPE unsigned char -#define JJNOCODE 28 -#define JJACTIONTYPE unsigned char -#define phannot_JTOKENTYPE phannot_parser_token* +#define AACODETYPE unsigned char +#define AANOCODE 28 +#define AAACTIONTYPE unsigned char +#define phannot_TOKENTYPE phannot_parser_token* typedef union { - phannot_JTOKENTYPE jj0; - zval* jj36; - int jj55; -} JJMINORTYPE; -#define JJSTACKDEPTH 100 + phannot_TOKENTYPE aa0; + zval* aa36; + int aa55; +} AAMINORTYPE; +#define AASTACKDEPTH 100 #define phannot_ARG_SDECL phannot_parser_status *status; #define phannot_ARG_PDECL ,phannot_parser_status *status -#define phannot_ARG_FETCH phannot_parser_status *status = jjpParser->status -#define phannot_ARG_STORE jjpParser->status = status -#define JJNSTATE 40 -#define JJNRULE 25 -#define JJERRORSYMBOL 18 -#define JJERRSYMDT jj55 -#define JJ_NO_ACTION (JJNSTATE+JJNRULE+2) -#define JJ_ACCEPT_ACTION (JJNSTATE+JJNRULE+1) -#define JJ_ERROR_ACTION (JJNSTATE+JJNRULE) +#define phannot_ARG_FETCH phannot_parser_status *status = aapParser->status +#define phannot_ARG_STORE aapParser->status = status +#define AANSTATE 40 +#define AANRULE 25 +#define AAERRORSYMBOL 18 +#define AAERRSYMDT aa55 +#define AA_NO_ACTION (AANSTATE+AANRULE+2) +#define AA_ACCEPT_ACTION (AANSTATE+AANRULE+1) +#define AA_ERROR_ACTION (AANSTATE+AANRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an -** action integer. +** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < JJNSTATE Shift N. That is, push the lookahead +** 0 <= N < AANSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** JJNSTATE <= N < JJNSTATE+JJNRULE Reduce by rule N-JJNSTATE. +** AANSTATE <= N < AANSTATE+AANRULE Reduce by rule N-AANSTATE. ** -** N == JJNSTATE+JJNRULE A syntax error has occurred. +** N == AANSTATE+AANRULE A syntax error has occurred. ** -** N == JJNSTATE+JJNRULE+1 The parser accepts its input. +** N == AANSTATE+AANRULE+1 The parser accepts its input. ** -** N == JJNSTATE+JJNRULE+2 No such action. Denotes unused -** slots in the jj_action[] table. +** N == AANSTATE+AANRULE+2 No such action. Denotes unused +** slots in the aa_action[] table. ** -** The action table is constructed as a single large table named jj_action[]. +** The action table is constructed as a single large table named aa_action[]. ** Given state S and lookahead X, the action is computed as ** -** jj_action[ jj_shift_ofst[S] + X ] +** aa_action[ aa_shift_ofst[S] + X ] ** -** If the index value jj_shift_ofst[S]+X is out of range or if the value -** jj_lookahead[jj_shift_ofst[S]+X] is not equal to X or if jj_shift_ofst[S] -** is equal to JJ_SHIFT_USE_DFLT, it means that the action is not in the table -** and that jj_default[S] should be used instead. +** If the index value aa_shift_ofst[S]+X is out of range or if the value +** aa_lookahead[aa_shift_ofst[S]+X] is not equal to X or if aa_shift_ofst[S] +** is equal to AA_SHIFT_USE_DFLT, it means that the action is not in the table +** and that aa_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the jj_reduce_ofst[] array is used in place of -** the jj_shift_ofst[] array and JJ_REDUCE_USE_DFLT is used in place of -** JJ_SHIFT_USE_DFLT. +** a reduce action) then the aa_reduce_ofst[] array is used in place of +** the aa_shift_ofst[] array and AA_REDUCE_USE_DFLT is used in place of +** AA_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** jj_action[] A single table containing all actions. -** jj_lookahead[] A table containing the lookahead for each entry in -** jj_action. Used to detect hash collisions. -** jj_shift_ofst[] For each state, the offset into jj_action for +** aa_action[] A single table containing all actions. +** aa_lookahead[] A table containing the lookahead for each entry in +** aa_action. Used to detect hash collisions. +** aa_shift_ofst[] For each state, the offset into aa_action for ** shifting terminals. -** jj_reduce_ofst[] For each state, the offset into jj_action for +** aa_reduce_ofst[] For each state, the offset into aa_action for ** shifting non-terminals after a reduce. -** jj_default[] Default action for each state. +** aa_default[] Default action for each state. */ -static JJACTIONTYPE jj_action[] = { - /* 0 */ 4, 28, 15, 38, 12, 14, 16, 18, 20, 21, - /* 10 */ 22, 23, 24, 4, 31, 4, 28, 15, 40, 12, - /* 20 */ 30, 16, 18, 20, 21, 22, 23, 24, 3, 31, - /* 30 */ 4, 17, 15, 6, 19, 35, 16, 18, 20, 21, - /* 40 */ 22, 23, 24, 5, 31, 15, 7, 27, 11, 16, - /* 50 */ 54, 54, 15, 25, 27, 11, 16, 15, 32, 27, - /* 60 */ 11, 16, 66, 1, 2, 39, 41, 15, 4, 10, - /* 70 */ 11, 16, 15, 9, 9, 37, 16, 8, 13, 36, - /* 80 */ 9, 29, 34, 54, 54, 54, 54, 54, 26, 54, - /* 90 */ 54, 54, 54, 54, 54, 54, 33, +static AAACTIONTYPE aa_action[] = { + /* 0 */ 4, 28, 15, 38, 12, 37, 16, 18, 20, 21, + /* 10 */ 22, 23, 24, 4, 31, 4, 17, 15, 40, 19, + /* 20 */ 35, 16, 18, 20, 21, 22, 23, 24, 3, 31, + /* 30 */ 4, 28, 15, 6, 12, 30, 16, 18, 20, 21, + /* 40 */ 22, 23, 24, 54, 31, 15, 25, 27, 11, 16, + /* 50 */ 13, 36, 15, 7, 27, 11, 16, 15, 32, 27, + /* 60 */ 11, 16, 15, 9, 10, 11, 16, 66, 1, 2, + /* 70 */ 39, 15, 9, 5, 14, 16, 41, 26, 4, 9, + /* 80 */ 29, 34, 54, 8, 54, 54, 54, 54, 33, }; -static JJCODETYPE jj_lookahead[] = { +static AACODETYPE aa_lookahead[] = { /* 0 */ 2, 3, 22, 5, 6, 25, 26, 9, 10, 11, /* 10 */ 12, 13, 14, 2, 16, 2, 3, 22, 0, 6, /* 20 */ 25, 26, 9, 10, 11, 12, 13, 14, 22, 16, /* 30 */ 2, 3, 22, 4, 6, 25, 26, 9, 10, 11, - /* 40 */ 12, 13, 14, 3, 16, 22, 23, 24, 25, 26, - /* 50 */ 27, 27, 22, 23, 24, 25, 26, 22, 23, 24, - /* 60 */ 25, 26, 19, 20, 21, 22, 0, 22, 2, 24, - /* 70 */ 25, 26, 22, 1, 1, 25, 26, 5, 7, 8, - /* 80 */ 1, 7, 8, 27, 27, 27, 27, 27, 15, 27, - /* 90 */ 27, 27, 27, 27, 27, 27, 17, + /* 40 */ 12, 13, 14, 27, 16, 22, 23, 24, 25, 26, + /* 50 */ 7, 8, 22, 23, 24, 25, 26, 22, 23, 24, + /* 60 */ 25, 26, 22, 1, 24, 25, 26, 19, 20, 21, + /* 70 */ 22, 22, 1, 3, 25, 26, 0, 15, 2, 1, + /* 80 */ 7, 8, 27, 5, 27, 27, 27, 27, 17, }; -#define JJ_SHIFT_USE_DFLT (-3) -static signed char jj_shift_ofst[] = { - /* 0 */ 11, 18, 66, -3, 40, 29, -2, 72, -3, 13, - /* 10 */ -3, -3, 71, 28, -3, -3, -3, -3, -3, -3, - /* 20 */ -3, -3, -3, -3, 13, 73, -3, -3, 74, 28, - /* 30 */ -3, 13, 79, -3, 28, -3, 28, -3, -3, -3, +#define AA_SHIFT_USE_DFLT (-3) +static signed char aa_shift_ofst[] = { + /* 0 */ 11, 18, 76, -3, 70, 29, -2, 78, -3, 28, + /* 10 */ -3, -3, 43, 13, -3, -3, -3, -3, -3, -3, + /* 20 */ -3, -3, -3, -3, 28, 62, -3, -3, 73, 13, + /* 30 */ -3, 28, 71, -3, 13, -3, 13, -3, -3, -3, }; -#define JJ_REDUCE_USE_DFLT (-21) -static signed char jj_reduce_ofst[] = { - /* 0 */ 43, -21, 6, -21, -21, -21, 23, -21, -21, 45, - /* 10 */ -21, -21, -21, -20, -21, -21, -21, -21, -21, -21, - /* 20 */ -21, -21, -21, -21, 30, -21, -21, -21, -21, -5, - /* 30 */ -21, 35, -21, -21, 10, -21, 50, -21, -21, -21, +#define AA_REDUCE_USE_DFLT (-21) +static signed char aa_reduce_ofst[] = { + /* 0 */ 48, -21, 6, -21, -21, -21, 30, -21, -21, 40, + /* 10 */ -21, -21, -21, 49, -21, -21, -21, -21, -21, -21, + /* 20 */ -21, -21, -21, -21, 23, -21, -21, -21, -21, 10, + /* 30 */ -21, 35, -21, -21, -5, -21, -20, -21, -21, -21, }; -static JJACTIONTYPE jj_default[] = { +static AAACTIONTYPE aa_default[] = { /* 0 */ 65, 65, 65, 42, 65, 46, 65, 65, 44, 65, /* 10 */ 47, 49, 58, 65, 50, 54, 55, 56, 57, 58, /* 20 */ 59, 60, 61, 62, 65, 65, 63, 48, 56, 65, /* 30 */ 52, 65, 65, 64, 65, 53, 65, 51, 45, 43, }; -#define JJ_SZ_ACTTAB (sizeof(jj_action)/sizeof(jj_action[0])) +#define AA_SZ_ACTTAB (sizeof(aa_action)/sizeof(aa_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: -** +** ** %fallback ID X Y Z. ** ** appears in the grammer, then ID becomes a fallback token for X, Y, @@ -28871,10 +28665,10 @@ static JJACTIONTYPE jj_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef JJFALLBACK -static const JJCODETYPE jjFallback[] = { +#ifdef AAFALLBACK +static const AACODETYPE aaFallback[] = { }; -#endif /* JJFALLBACK */ +#endif /* AAFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -28888,58 +28682,58 @@ static const JJCODETYPE jjFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct jjStackEntry { +struct aaStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - JJMINORTYPE minor; /* The user-supplied minor token value. This + AAMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct jjStackEntry jjStackEntry; +typedef struct aaStackEntry aaStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct jjParser { - int jjidx; /* Index of top element in stack */ - int jjerrcnt; /* Shifts left before out of the error */ +struct aaParser { + int aaidx; /* Index of top element in stack */ + int aaerrcnt; /* Shifts left before out of the error */ phannot_ARG_SDECL /* A place to hold %extra_argument */ - jjStackEntry jjstack[JJSTACKDEPTH]; /* The parser's stack */ + aaStackEntry aastack[AASTACKDEPTH]; /* The parser's stack */ }; -typedef struct jjParser jjParser; +typedef struct aaParser aaParser; #ifndef NDEBUG #include -static FILE *jjTraceFILE = 0; -static char *jjTracePrompt = 0; +static FILE *aaTraceFILE = 0; +static char *aaTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phannot_Trace(FILE *TraceFILE, char *zTracePrompt){ - jjTraceFILE = TraceFILE; - jjTracePrompt = zTracePrompt; - if( jjTraceFILE==0 ) jjTracePrompt = 0; - else if( jjTracePrompt==0 ) jjTraceFILE = 0; + aaTraceFILE = TraceFILE; + aaTracePrompt = zTracePrompt; + if( aaTraceFILE==0 ) aaTracePrompt = 0; + else if( aaTracePrompt==0 ) aaTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *jjTokenName[] = { - "$", "COMMA", "AT", "IDENTIFIER", - "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", - "COLON", "INTEGER", "DOUBLE", "NULL", +static const char *aaTokenName[] = { + "$", "COMMA", "AT", "IDENTIFIER", + "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", + "COLON", "INTEGER", "DOUBLE", "NULL", "FALSE", "TRUE", "BRACKET_OPEN", "BRACKET_CLOSE", - "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", + "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", "annotation_language", "annotation_list", "annotation", "argument_list", - "argument_item", "expr", "array", + "argument_item", "expr", "array", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *jjRuleName[] = { +static const char *aaRuleName[] = { /* 0 */ "program ::= annotation_language", /* 1 */ "annotation_language ::= annotation_list", /* 2 */ "annotation_list ::= annotation_list annotation", @@ -28970,8 +28764,8 @@ static const char *jjRuleName[] = { const char *phannot_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(jjTokenName)/sizeof(jjTokenName[0])) ){ - return jjTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(aaTokenName)/sizeof(aaTokenName[0])) ){ + return aaTokenName[tokenType]; }else{ return "Unknown"; } @@ -28981,25 +28775,25 @@ const char *phannot_TokenName(int tokenType){ } void *phannot_Alloc(void *(*mallocProc)(size_t)){ - jjParser *pParser; - pParser = (jjParser*)(*mallocProc)( (size_t)sizeof(jjParser) ); + aaParser *pParser; + pParser = (aaParser*)(*mallocProc)( (size_t)sizeof(aaParser) ); if( pParser ){ - pParser->jjidx = -1; + pParser->aaidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "jjmajor" is the symbol code, and "jjpminor" is a pointer to +** "aamajor" is the symbol code, and "aapminor" is a pointer to ** the value. */ -static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ - switch( jjmajor ){ +static void aa_destructor(AACODETYPE aamajor, AAMINORTYPE *aapminor){ + switch( aamajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is + ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those @@ -29025,14 +28819,14 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ case 17: // 222 "parser.lemon" { - if ((jjpminor->jj0)) { - if ((jjpminor->jj0)->free_flag) { - efree((jjpminor->jj0)->token); + if ((aapminor->aa0)) { + if ((aapminor->aa0)->free_flag) { + efree((aapminor->aa0)->token); } - efree((jjpminor->jj0)); + efree((aapminor->aa0)); } } -// 507 "parser.c" +// 505 "parser.c" break; case 20: case 21: @@ -29041,133 +28835,133 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ case 24: case 25: // 235 "parser.lemon" -{ zval_ptr_dtor(&(jjpminor->jj36)); } -// 517 "parser.c" +{ zval_ptr_dtor(&(aapminor->aa36)); } +// 515 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int jj_pop_parser_stack(jjParser *pParser){ - JJCODETYPE jjmajor; - jjStackEntry *jjtos = &pParser->jjstack[pParser->jjidx]; +static int aa_pop_parser_stack(aaParser *pParser){ + AACODETYPE aamajor; + aaStackEntry *aatos = &pParser->aastack[pParser->aaidx]; - if( pParser->jjidx<0 ) return 0; + if( pParser->aaidx<0 ) return 0; #ifndef NDEBUG - if( jjTraceFILE && pParser->jjidx>=0 ){ - fprintf(jjTraceFILE,"%sPopping %s\n", - jjTracePrompt, - jjTokenName[jjtos->major]); + if( aaTraceFILE && pParser->aaidx>=0 ){ + fprintf(aaTraceFILE,"%sPopping %s\n", + aaTracePrompt, + aaTokenName[aatos->major]); } #endif - jjmajor = jjtos->major; - jj_destructor( jjmajor, &jjtos->minor); - pParser->jjidx--; - return jjmajor; + aamajor = aatos->major; + aa_destructor( aamajor, &aatos->minor); + pParser->aaidx--; + return aamajor; } static void phannot_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - jjParser *pParser = (jjParser*)p; + aaParser *pParser = (aaParser*)p; if( pParser==0 ) return; - while( pParser->jjidx>=0 ) jj_pop_parser_stack(pParser); + while( pParser->aaidx>=0 ) aa_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int jj_find_shift_action( - jjParser *pParser, /* The parser */ +static int aa_find_shift_action( + aaParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->jjstack[pParser->jjidx].stateno; - - /* if( pParser->jjidx<0 ) return JJ_NO_ACTION; */ - i = jj_shift_ofst[stateno]; - if( i==JJ_SHIFT_USE_DFLT ){ - return jj_default[stateno]; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + /* if( pParser->aaidx<0 ) return AA_NO_ACTION; */ + i = aa_shift_ofst[stateno]; + if( i==AA_SHIFT_USE_DFLT ){ + return aa_default[stateno]; } - if( iLookAhead==JJNOCODE ){ - return JJ_NO_ACTION; + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){ -#ifdef JJFALLBACK + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ +#ifdef AAFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - jjTracePrompt, jjTokenName[iLookAhead], jjTokenName[iFallback]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE, "%sFALLBACK %s => %s\n", + aaTracePrompt, aaTokenName[iLookAhead], aaTokenName[iFallback]); } #endif - return jj_find_shift_action(pParser, iFallback); + return aa_find_shift_action(pParser, iFallback); } #endif - return jj_default[stateno]; + return aa_default[stateno]; }else{ - return jj_action[i]; + return aa_action[i]; } } -static int jj_find_reduce_action( - jjParser *pParser, /* The parser */ +static int aa_find_reduce_action( + aaParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->jjstack[pParser->jjidx].stateno; - - i = jj_reduce_ofst[stateno]; - if( i==JJ_REDUCE_USE_DFLT ){ - return jj_default[stateno]; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + i = aa_reduce_ofst[stateno]; + if( i==AA_REDUCE_USE_DFLT ){ + return aa_default[stateno]; } - if( iLookAhead==JJNOCODE ){ - return JJ_NO_ACTION; + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){ - return jj_default[stateno]; + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ + return aa_default[stateno]; }else{ - return jj_action[i]; + return aa_action[i]; } } -static void jj_shift( - jjParser *jjpParser, /* The parser to be shifted */ - int jjNewState, /* The new state to shift in */ - int jjMajor, /* The major token to shift in */ - JJMINORTYPE *jjpMinor /* Pointer ot the minor token to shift in */ +static void aa_shift( + aaParser *aapParser, /* The parser to be shifted */ + int aaNewState, /* The new state to shift in */ + int aaMajor, /* The major token to shift in */ + AAMINORTYPE *aapMinor /* Pointer ot the minor token to shift in */ ){ - jjStackEntry *jjtos; - jjpParser->jjidx++; - if( jjpParser->jjidx>=JJSTACKDEPTH ){ + aaStackEntry *aatos; + aapParser->aaidx++; + if( aapParser->aaidx>=AASTACKDEPTH ){ phannot_ARG_FETCH; - jjpParser->jjidx--; + aapParser->aaidx--; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sStack Overflow!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sStack Overflow!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - jjtos = &jjpParser->jjstack[jjpParser->jjidx]; - jjtos->stateno = jjNewState; - jjtos->major = jjMajor; - jjtos->minor = *jjpMinor; + aatos = &aapParser->aastack[aapParser->aaidx]; + aatos->stateno = aaNewState; + aatos->major = aaMajor; + aatos->minor = *aapMinor; #ifndef NDEBUG - if( jjTraceFILE && jjpParser->jjidx>0 ){ + if( aaTraceFILE && aapParser->aaidx>0 ){ int i; - fprintf(jjTraceFILE,"%sShift %d\n",jjTracePrompt,jjNewState); - fprintf(jjTraceFILE,"%sStack:",jjTracePrompt); - for(i=1; i<=jjpParser->jjidx; i++) - fprintf(jjTraceFILE," %s",jjTokenName[jjpParser->jjstack[i].major]); - fprintf(jjTraceFILE,"\n"); + fprintf(aaTraceFILE,"%sShift %d\n",aaTracePrompt,aaNewState); + fprintf(aaTraceFILE,"%sStack:",aaTracePrompt); + for(i=1; i<=aapParser->aaidx; i++) + fprintf(aaTraceFILE," %s",aaTokenName[aapParser->aastack[i].major]); + fprintf(aaTraceFILE,"\n"); } #endif } @@ -29176,9 +28970,9 @@ static void jj_shift( ** is used during the reduce. */ static struct { - JJCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + AACODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} jjRuleInfo[] = { +} aaRuleInfo[] = { { 19, 1 }, { 20, 1 }, { 21, 2 }, @@ -29206,28 +29000,28 @@ static struct { { 26, 3 }, }; -static void jj_accept(jjParser*); /* Forward Declaration */ +static void aa_accept(aaParser*); /* Forward Declaration */ -static void jj_reduce( - jjParser *jjpParser, /* The parser */ - int jjruleno /* Number of the rule by which to reduce */ +static void aa_reduce( + aaParser *aapParser, /* The parser */ + int aaruleno /* Number of the rule by which to reduce */ ){ - int jjgoto; /* The next state */ - int jjact; /* The next action */ - JJMINORTYPE jjgotominor; /* The LHS of the rule reduced */ - jjStackEntry *jjmsp; /* The top of the parser's stack */ - int jjsize; /* Amount to pop the stack */ + int aagoto; /* The next state */ + int aaact; /* The next action */ + AAMINORTYPE aagotominor; /* The LHS of the rule reduced */ + aaStackEntry *aamsp; /* The top of the parser's stack */ + int aasize; /* Amount to pop the stack */ phannot_ARG_FETCH; - jjmsp = &jjpParser->jjstack[jjpParser->jjidx]; + aamsp = &aapParser->aastack[aapParser->aaidx]; #ifndef NDEBUG - if( jjTraceFILE && jjruleno>=0 - && jjruleno=0 + && aarulenoret = jjmsp[0].minor.jj36; + status->ret = aamsp[0].minor.aa36; } -// 759 "parser.c" +// 757 "parser.c" break; case 1: case 14: case 15: // 237 "parser.lemon" { - jjgotominor.jj36 = jjmsp[0].minor.jj36; + aagotominor.aa36 = aamsp[0].minor.aa36; } -// 768 "parser.c" +// 766 "parser.c" break; case 2: // 243 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-1].minor.jj36, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_zval_list(aamsp[-1].minor.aa36, aamsp[0].minor.aa36); } -// 775 "parser.c" +// 773 "parser.c" break; case 3: case 8: // 247 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(NULL, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_zval_list(NULL, aamsp[0].minor.aa36); } -// 783 "parser.c" +// 781 "parser.c" break; case 4: // 254 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-3].minor.jj0, jjmsp[-1].minor.jj36, status->scanner_state); - jj_destructor(2,&jjmsp[-4].minor); - jj_destructor(4,&jjmsp[-2].minor); - jj_destructor(5,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[-3].minor.aa0, aamsp[-1].minor.aa36, status->scanner_state); + aa_destructor(2,&aamsp[-4].minor); + aa_destructor(4,&aamsp[-2].minor); + aa_destructor(5,&aamsp[0].minor); } -// 793 "parser.c" +// 791 "parser.c" break; case 5: // 258 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-2].minor.jj0, NULL, status->scanner_state); - jj_destructor(2,&jjmsp[-3].minor); - jj_destructor(4,&jjmsp[-1].minor); - jj_destructor(5,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[-2].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-3].minor); + aa_destructor(4,&aamsp[-1].minor); + aa_destructor(5,&aamsp[0].minor); } -// 803 "parser.c" +// 801 "parser.c" break; case 6: // 262 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[0].minor.jj0, NULL, status->scanner_state); - jj_destructor(2,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[0].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-1].minor); } -// 811 "parser.c" +// 809 "parser.c" break; case 7: // 268 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-2].minor.jj36, jjmsp[0].minor.jj36); - jj_destructor(1,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_zval_list(aamsp[-2].minor.aa36, aamsp[0].minor.aa36); + aa_destructor(1,&aamsp[-1].minor); } -// 819 "parser.c" +// 817 "parser.c" break; case 9: // 278 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(NULL, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_named_item(NULL, aamsp[0].minor.aa36); } -// 826 "parser.c" +// 824 "parser.c" break; case 10: case 12: // 282 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36); - jj_destructor(7,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_named_item(aamsp[-2].minor.aa0, aamsp[0].minor.aa36); + aa_destructor(7,&aamsp[-1].minor); } -// 835 "parser.c" +// 833 "parser.c" break; case 11: case 13: // 286 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36); - jj_destructor(8,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_named_item(aamsp[-2].minor.aa0, aamsp[0].minor.aa36); + aa_destructor(8,&aamsp[-1].minor); } -// 844 "parser.c" +// 842 "parser.c" break; case 16: // 308 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, aamsp[0].minor.aa0); } -// 851 "parser.c" +// 849 "parser.c" break; case 17: // 312 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, aamsp[0].minor.aa0); } -// 858 "parser.c" +// 856 "parser.c" break; case 18: // 316 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_STRING, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_STRING, aamsp[0].minor.aa0); } -// 865 "parser.c" +// 863 "parser.c" break; case 19: // 320 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, aamsp[0].minor.aa0); } -// 872 "parser.c" +// 870 "parser.c" break; case 20: // 324 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL); - jj_destructor(11,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL); + aa_destructor(11,&aamsp[0].minor); } -// 880 "parser.c" +// 878 "parser.c" break; case 21: // 328 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL); - jj_destructor(12,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL); + aa_destructor(12,&aamsp[0].minor); } -// 888 "parser.c" +// 886 "parser.c" break; case 22: // 332 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL); - jj_destructor(13,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL); + aa_destructor(13,&aamsp[0].minor); } -// 896 "parser.c" +// 894 "parser.c" break; case 23: // 336 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36); - jj_destructor(14,&jjmsp[-2].minor); - jj_destructor(15,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_array(aamsp[-1].minor.aa36); + aa_destructor(14,&aamsp[-2].minor); + aa_destructor(15,&aamsp[0].minor); } -// 905 "parser.c" +// 903 "parser.c" break; case 24: // 340 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36); - jj_destructor(16,&jjmsp[-2].minor); - jj_destructor(17,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_array(aamsp[-1].minor.aa36); + aa_destructor(16,&aamsp[-2].minor); + aa_destructor(17,&aamsp[0].minor); } -// 914 "parser.c" +// 912 "parser.c" break; }; - jjgoto = jjRuleInfo[jjruleno].lhs; - jjsize = jjRuleInfo[jjruleno].nrhs; - jjpParser->jjidx -= jjsize; - jjact = jj_find_reduce_action(jjpParser,jjgoto); - if( jjact < JJNSTATE ){ - jj_shift(jjpParser,jjact,jjgoto,&jjgotominor); - }else if( jjact == JJNSTATE + JJNRULE + 1 ){ - jj_accept(jjpParser); + aagoto = aaRuleInfo[aaruleno].lhs; + aasize = aaRuleInfo[aaruleno].nrhs; + aapParser->aaidx -= aasize; + aaact = aa_find_reduce_action(aapParser,aagoto); + if( aaact < AANSTATE ){ + aa_shift(aapParser,aaact,aagoto,&aagotominor); + }else if( aaact == AANSTATE + AANRULE + 1 ){ + aa_accept(aapParser); } } -static void jj_parse_failed( - jjParser *jjpParser /* The parser */ +static void aa_parse_failed( + aaParser *aapParser /* The parser */ ){ phannot_ARG_FETCH; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sFail!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sFail!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void jj_syntax_error( - jjParser *jjpParser, /* The parser */ - int jjmajor, /* The major type of the error token */ - JJMINORTYPE jjminor /* The minor type of the error token */ +static void aa_syntax_error( + aaParser *aapParser, /* The parser */ + int aamajor, /* The major type of the error token */ + AAMINORTYPE aaminor /* The minor type of the error token */ ){ phannot_ARG_FETCH; -#define JTOKEN (jjminor.jj0) +#define TOKEN (aaminor.aa0) // 159 "parser.lemon" if (status->scanner_state->start_length) { @@ -29495,20 +29289,20 @@ static void jj_syntax_error( status->status = PHANNOT_PARSING_FAILED; -// 1019 "parser.c" +// 1017 "parser.c" phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void jj_accept( - jjParser *jjpParser /* The parser */ +static void aa_accept( + aaParser *aapParser /* The parser */ ){ phannot_ARG_FETCH; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sAccept!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sAccept!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -29534,59 +29328,59 @@ static void jj_accept( ** None. */ static void phannot_( - void *jjp, /* The parser */ - int jjmajor, /* The major token code number */ - phannot_JTOKENTYPE jjminor /* The value for the token */ + void *aap, /* The parser */ + int aamajor, /* The major token code number */ + phannot_TOKENTYPE aaminor /* The value for the token */ phannot_ARG_PDECL /* Optional %extra_argument parameter */ ){ - JJMINORTYPE jjminorunion; - int jjact; /* The parser action. */ - int jjendofinput; /* True if we are at the end of input */ - int jjerrorhit = 0; /* True if jjmajor has invoked an error */ - jjParser *jjpParser; /* The parser */ + AAMINORTYPE aaminorunion; + int aaact; /* The parser action. */ + int aaendofinput; /* True if we are at the end of input */ + int aaerrorhit = 0; /* True if aamajor has invoked an error */ + aaParser *aapParser; /* The parser */ /* (re)initialize the parser, if necessary */ - jjpParser = (jjParser*)jjp; - if( jjpParser->jjidx<0 ){ - if( jjmajor==0 ) return; - jjpParser->jjidx = 0; - jjpParser->jjerrcnt = -1; - jjpParser->jjstack[0].stateno = 0; - jjpParser->jjstack[0].major = 0; + aapParser = (aaParser*)aap; + if( aapParser->aaidx<0 ){ + if( aamajor==0 ) return; + aapParser->aaidx = 0; + aapParser->aaerrcnt = -1; + aapParser->aastack[0].stateno = 0; + aapParser->aastack[0].major = 0; } - jjminorunion.jj0 = jjminor; - jjendofinput = (jjmajor==0); + aaminorunion.aa0 = aaminor; + aaendofinput = (aamajor==0); phannot_ARG_STORE; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sInput %s\n",jjTracePrompt,jjTokenName[jjmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sInput %s\n",aaTracePrompt,aaTokenName[aamajor]); } #endif do{ - jjact = jj_find_shift_action(jjpParser,jjmajor); - if( jjactjjerrcnt--; - if( jjendofinput && jjpParser->jjidx>=0 ){ - jjmajor = 0; + aaact = aa_find_shift_action(aapParser,aamajor); + if( aaactaaerrcnt--; + if( aaendofinput && aapParser->aaidx>=0 ){ + aamajor = 0; }else{ - jjmajor = JJNOCODE; + aamajor = AANOCODE; } - }else if( jjact < JJNSTATE + JJNRULE ){ - jj_reduce(jjpParser,jjact-JJNSTATE); - }else if( jjact == JJ_ERROR_ACTION ){ - int jjmx; + }else if( aaact < AANSTATE + AANRULE ){ + aa_reduce(aapParser,aaact-AANSTATE); + }else if( aaact == AA_ERROR_ACTION ){ + int aamx; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sSyntax Error!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sSyntax Error!\n",aaTracePrompt); } #endif -#ifdef JJERRORSYMBOL +#ifdef AAERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". + ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** @@ -29603,40 +29397,40 @@ static void phannot_( ** shifted successfully. ** */ - if( jjpParser->jjerrcnt<0 ){ - jj_syntax_error(jjpParser,jjmajor,jjminorunion); + if( aapParser->aaerrcnt<0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - jjmx = jjpParser->jjstack[jjpParser->jjidx].major; - if( jjmx==JJERRORSYMBOL || jjerrorhit ){ + aamx = aapParser->aastack[aapParser->aaidx].major; + if( aamx==AAERRORSYMBOL || aaerrorhit ){ #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sDiscard input token %s\n", - jjTracePrompt,jjTokenName[jjmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sDiscard input token %s\n", + aaTracePrompt,aaTokenName[aamajor]); } #endif - jj_destructor(jjmajor,&jjminorunion); - jjmajor = JJNOCODE; + aa_destructor(aamajor,&aaminorunion); + aamajor = AANOCODE; }else{ while( - jjpParser->jjidx >= 0 && - jjmx != JJERRORSYMBOL && - (jjact = jj_find_shift_action(jjpParser,JJERRORSYMBOL)) >= JJNSTATE + aapParser->aaidx >= 0 && + aamx != AAERRORSYMBOL && + (aaact = aa_find_shift_action(aapParser,AAERRORSYMBOL)) >= AANSTATE ){ - jj_pop_parser_stack(jjpParser); + aa_pop_parser_stack(aapParser); } - if( jjpParser->jjidx < 0 || jjmajor==0 ){ - jj_destructor(jjmajor,&jjminorunion); - jj_parse_failed(jjpParser); - jjmajor = JJNOCODE; - }else if( jjmx!=JJERRORSYMBOL ){ - JJMINORTYPE u2; - u2.JJERRSYMDT = 0; - jj_shift(jjpParser,jjact,JJERRORSYMBOL,&u2); + if( aapParser->aaidx < 0 || aamajor==0 ){ + aa_destructor(aamajor,&aaminorunion); + aa_parse_failed(aapParser); + aamajor = AANOCODE; + }else if( aamx!=AAERRORSYMBOL ){ + AAMINORTYPE u2; + u2.AAERRSYMDT = 0; + aa_shift(aapParser,aaact,AAERRORSYMBOL,&u2); } } - jjpParser->jjerrcnt = 3; - jjerrorhit = 1; -#else /* JJERRORSYMBOL is not defined */ + aapParser->aaerrcnt = 3; + aaerrorhit = 1; +#else /* AAERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -29646,21 +29440,21 @@ static void phannot_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( jjpParser->jjerrcnt<=0 ){ - jj_syntax_error(jjpParser,jjmajor,jjminorunion); + if( aapParser->aaerrcnt<=0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - jjpParser->jjerrcnt = 3; - jj_destructor(jjmajor,&jjminorunion); - if( jjendofinput ){ - jj_parse_failed(jjpParser); + aapParser->aaerrcnt = 3; + aa_destructor(aamajor,&aaminorunion); + if( aaendofinput ){ + aa_parse_failed(aapParser); } - jjmajor = JJNOCODE; + aamajor = AANOCODE; #endif }else{ - jj_accept(jjpParser); - jjmajor = JJNOCODE; + aa_accept(aapParser); + aamajor = AANOCODE; } - }while( jjmajor!=JJNOCODE && jjpParser->jjidx>=0 ); + }while( aamajor!=AANOCODE && aapParser->aaidx>=0 ); return; } @@ -29873,7 +29667,7 @@ static int phannot_internal_parse_annotations(zval **result, zval *comment, zval if (Z_STRLEN(processed_comment) < 2) { ZVAL_BOOL(*result, 0); - str_efree(Z_STRVAL(processed_comment)); + efree(Z_STRVAL(processed_comment)); return SUCCESS; } @@ -30422,67 +30216,64 @@ static PHP_METHOD(Phalcon_Annotations_Reflection, __set_state) { -/* Generated by re2c 0.13.5 on Fri Jun 28 19:00:52 2013 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:38:13 2015 */ // 1 "scanner.re" -#ifdef HAVE_CONFIG_H -#endif - -#define JJCTYPE unsigned char -#define JJCURSOR (s->start) -#define JJLIMIT (s->end) -#define JJMARKER q +#define AACTYPE unsigned char +#define AACURSOR (s->start) +#define AALIMIT (s->end) +#define AAMARKER q static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *token) { - char next, *q = JJCURSOR, *start = JJCURSOR; + char next, *q = AACURSOR, *start = AACURSOR; int status = PHANNOT_SCANNER_RETCODE_IMPOSSIBLE; while (PHANNOT_SCANNER_RETCODE_IMPOSSIBLE == status) { if (s->mode == PHANNOT_MODE_RAW) { - if (*JJCURSOR == '\n') { + if (*AACURSOR == '\n') { s->active_line++; } - next = *(JJCURSOR+1); + next = *(AACURSOR+1); - if (*JJCURSOR == '\0' || *JJCURSOR == '@') { + if (*AACURSOR == '\0' || *AACURSOR == '@') { if ((next >= 'A' && next <= 'Z') || (next >= 'a' && next <= 'z')) { s->mode = PHANNOT_MODE_ANNOTATION; continue; } } - ++JJCURSOR; + ++AACURSOR; token->opcode = PHANNOT_T_IGNORE; return 0; } else { - -// 66 "scanner.c" + +// 61 "scanner.c" { - JJCTYPE jjch; - unsigned int jjaccept = 0; + AACTYPE aach; + unsigned int aaaccept = 0; - jjch = *JJCURSOR; - switch (jjch) { - case 0x00: goto jj38; + aach = *AACURSOR; + switch (aach) { + case 0x00: goto aa38; case '\t': case '\r': - case ' ': goto jj34; - case '\n': goto jj36; - case '"': goto jj10; - case '\'': goto jj11; - case '(': goto jj14; - case ')': goto jj16; - case ',': goto jj32; - case '-': goto jj2; + case ' ': goto aa34; + case '\n': goto aa36; + case '"': goto aa10; + case '\'': goto aa11; + case '(': goto aa14; + case ')': goto aa16; + case ',': goto aa32; + case '-': goto aa2; case '0': case '1': case '2': @@ -30492,10 +30283,10 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj4; - case ':': goto jj30; - case '=': goto jj28; - case '@': goto jj26; + case '9': goto aa4; + case ':': goto aa30; + case '=': goto aa28; + case '@': goto aa26; case 'A': case 'B': case 'C': @@ -30542,23 +30333,23 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj13; + case 'z': goto aa13; case 'F': - case 'f': goto jj8; + case 'f': goto aa8; case 'N': - case 'n': goto jj6; + case 'n': goto aa6; case 'T': - case 't': goto jj9; - case '[': goto jj22; - case '\\': goto jj12; - case ']': goto jj24; - case '{': goto jj18; - case '}': goto jj20; - default: goto jj40; - } -jj2: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { + case 't': goto aa9; + case '[': goto aa22; + case '\\': goto aa12; + case ']': goto aa24; + case '{': goto aa18; + case '}': goto aa20; + default: goto aa40; + } +aa2: + ++AACURSOR; + switch ((aach = *AACURSOR)) { case '0': case '1': case '2': @@ -30568,203 +30359,263 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj68; - default: goto jj3; + case '9': goto aa71; + default: goto aa3; } -jj3: -// 183 "scanner.re" +aa3: +// 178 "scanner.re" { status = PHANNOT_SCANNER_RETCODE_ERR; break; } -// 178 "scanner.c" -jj4: - jjaccept = 0; - jjch = *(JJMARKER = ++JJCURSOR); - goto jj69; -jj5: -// 67 "scanner.re" +// 173 "scanner.c" +aa4: + aaaccept = 0; + aach = *(AAMARKER = ++AACURSOR); + goto aa72; +aa5: +// 62 "scanner.re" { token->opcode = PHANNOT_T_INTEGER; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 192 "scanner.c" -jj6: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +// 187 "scanner.c" +aa6: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'U': - case 'u': goto jj63; - default: goto jj44; + case 'u': goto aa66; + default: goto aa44; } -jj7: -// 109 "scanner.re" +aa7: +// 104 "scanner.re" { token->opcode = PHANNOT_T_IDENTIFIER; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 209 "scanner.c" -jj8: - jjch = *++JJCURSOR; - switch (jjch) { +// 205 "scanner.c" +aa8: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'A': - case 'a': goto jj58; - default: goto jj44; + case 'a': goto aa61; + default: goto aa44; } -jj9: - jjch = *++JJCURSOR; - switch (jjch) { +aa9: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'R': - case 'r': goto jj54; - default: goto jj44; - } -jj10: - jjaccept = 1; - jjch = *(JJMARKER = ++JJCURSOR); - if (jjch <= 0x00) goto jj3; - goto jj52; -jj11: - jjaccept = 1; - jjch = *(JJMARKER = ++JJCURSOR); - if (jjch <= 0x00) goto jj3; - goto jj46; -jj12: - jjch = *++JJCURSOR; - goto jj44; -jj13: - jjch = *++JJCURSOR; - goto jj44; -jj14: - ++JJCURSOR; -// 117 "scanner.re" + case 'r': goto aa57; + default: goto aa44; + } +aa10: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa3; + goto aa55; +aa11: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa3; + goto aa50; +aa12: + aach = *++AACURSOR; + switch (aach) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa43; + default: goto aa3; + } +aa13: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + goto aa44; +aa14: + ++AACURSOR; +// 112 "scanner.re" { token->opcode = PHANNOT_T_PARENTHESES_OPEN; return 0; } -// 247 "scanner.c" -jj16: - ++JJCURSOR; -// 122 "scanner.re" +// 301 "scanner.c" +aa16: + ++AACURSOR; +// 117 "scanner.re" { token->opcode = PHANNOT_T_PARENTHESES_CLOSE; return 0; } -// 255 "scanner.c" -jj18: - ++JJCURSOR; -// 127 "scanner.re" +// 309 "scanner.c" +aa18: + ++AACURSOR; +// 122 "scanner.re" { token->opcode = PHANNOT_T_BRACKET_OPEN; return 0; } -// 263 "scanner.c" -jj20: - ++JJCURSOR; -// 132 "scanner.re" +// 317 "scanner.c" +aa20: + ++AACURSOR; +// 127 "scanner.re" { token->opcode = PHANNOT_T_BRACKET_CLOSE; return 0; } -// 271 "scanner.c" -jj22: - ++JJCURSOR; -// 137 "scanner.re" +// 325 "scanner.c" +aa22: + ++AACURSOR; +// 132 "scanner.re" { token->opcode = PHANNOT_T_SBRACKET_OPEN; return 0; } -// 279 "scanner.c" -jj24: - ++JJCURSOR; -// 142 "scanner.re" +// 333 "scanner.c" +aa24: + ++AACURSOR; +// 137 "scanner.re" { token->opcode = PHANNOT_T_SBRACKET_CLOSE; return 0; } -// 287 "scanner.c" -jj26: - ++JJCURSOR; -// 147 "scanner.re" +// 341 "scanner.c" +aa26: + ++AACURSOR; +// 142 "scanner.re" { token->opcode = PHANNOT_T_AT; return 0; } -// 295 "scanner.c" -jj28: - ++JJCURSOR; -// 152 "scanner.re" +// 349 "scanner.c" +aa28: + ++AACURSOR; +// 147 "scanner.re" { token->opcode = PHANNOT_T_EQUALS; return 0; } -// 303 "scanner.c" -jj30: - ++JJCURSOR; -// 157 "scanner.re" +// 357 "scanner.c" +aa30: + ++AACURSOR; +// 152 "scanner.re" { token->opcode = PHANNOT_T_COLON; return 0; } -// 311 "scanner.c" -jj32: - ++JJCURSOR; -// 162 "scanner.re" +// 365 "scanner.c" +aa32: + ++AACURSOR; +// 157 "scanner.re" { token->opcode = PHANNOT_T_COMMA; return 0; } -// 319 "scanner.c" -jj34: - ++JJCURSOR; - jjch = *JJCURSOR; - goto jj42; -jj35: -// 167 "scanner.re" +// 373 "scanner.c" +aa34: + ++AACURSOR; + aach = *AACURSOR; + goto aa42; +aa35: +// 162 "scanner.re" { token->opcode = PHANNOT_T_IGNORE; return 0; } -// 330 "scanner.c" -jj36: - ++JJCURSOR; -// 172 "scanner.re" +// 384 "scanner.c" +aa36: + ++AACURSOR; +// 167 "scanner.re" { s->active_line++; token->opcode = PHANNOT_T_IGNORE; return 0; } -// 339 "scanner.c" -jj38: - ++JJCURSOR; -// 178 "scanner.re" +// 393 "scanner.c" +aa38: + ++AACURSOR; +// 173 "scanner.re" { status = PHANNOT_SCANNER_RETCODE_EOF; break; } -// 347 "scanner.c" -jj40: - jjch = *++JJCURSOR; - goto jj3; -jj41: - ++JJCURSOR; - jjch = *JJCURSOR; -jj42: - switch (jjch) { +// 401 "scanner.c" +aa40: + aach = *++AACURSOR; + goto aa3; +aa41: + ++AACURSOR; + aach = *AACURSOR; +aa42: + switch (aach) { case '\t': case '\r': - case ' ': goto jj41; - default: goto jj35; - } -jj43: - ++JJCURSOR; - jjch = *JJCURSOR; -jj44: - switch (jjch) { + case ' ': goto aa41; + default: goto aa35; + } +aa43: + aaaccept = 1; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; +aa44: + switch (aach) { case '0': case '1': case '2': @@ -30801,7 +30652,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -30828,77 +30678,215 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj7; - } -jj45: - ++JJCURSOR; - jjch = *JJCURSOR; -jj46: - switch (jjch) { - case 0x00: goto jj47; - case '\'': goto jj49; - case '\\': goto jj48; - default: goto jj45; - } -jj47: - JJCURSOR = JJMARKER; - switch (jjaccept) { - case 0: goto jj5; - case 1: goto jj3; - } -jj48: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { - case '\n': goto jj47; - default: goto jj45; - } -jj49: - ++JJCURSOR; -// 100 "scanner.re" + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa7; + } +aa45: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa47; + default: goto aa46; + } +aa46: + AACURSOR = AAMARKER; + switch (aaaccept) { + case 0: goto aa5; + case 1: goto aa7; + case 2: goto aa3; + case 3: goto aa60; + case 4: goto aa65; + default: goto aa69; + } +aa47: + aaaccept = 1; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa47; + case '\\': goto aa45; + default: goto aa7; + } +aa49: + ++AACURSOR; + aach = *AACURSOR; +aa50: + switch (aach) { + case 0x00: goto aa46; + case '\'': goto aa52; + case '\\': goto aa51; + default: goto aa49; + } +aa51: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa49; + } +aa52: + ++AACURSOR; +// 95 "scanner.re" { token->opcode = PHANNOT_T_STRING; - token->value = estrndup(q, JJCURSOR - q - 1); - token->len = JJCURSOR - q - 1; - q = JJCURSOR; + token->value = estrndup(q, AACURSOR - q - 1); + token->len = AACURSOR - q - 1; + q = AACURSOR; return 0; } -// 465 "scanner.c" -jj51: - ++JJCURSOR; - jjch = *JJCURSOR; -jj52: - switch (jjch) { - case 0x00: goto jj47; - case '"': goto jj49; - case '\\': goto jj53; - default: goto jj51; - } -jj53: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { - case '\n': goto jj47; - default: goto jj51; - } -jj54: - jjch = *++JJCURSOR; - switch (jjch) { +// 654 "scanner.c" +aa54: + ++AACURSOR; + aach = *AACURSOR; +aa55: + switch (aach) { + case 0x00: goto aa46; + case '"': goto aa52; + case '\\': goto aa56; + default: goto aa54; + } +aa56: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa54; + } +aa57: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'U': - case 'u': goto jj55; - default: goto jj44; + case 'u': goto aa58; + default: goto aa44; } -jj55: - jjch = *++JJCURSOR; - switch (jjch) { +aa58: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'E': - case 'e': goto jj56; - default: goto jj44; + case 'e': goto aa59; + default: goto aa44; } -jj56: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa59: + aaaccept = 3; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -30935,7 +30923,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -30962,40 +30949,45 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj57; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa60; } -jj57: -// 94 "scanner.re" +aa60: +// 89 "scanner.re" { token->opcode = PHANNOT_T_TRUE; return 0; } -// 572 "scanner.c" -jj58: - jjch = *++JJCURSOR; - switch (jjch) { +// 764 "scanner.c" +aa61: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj59; - default: goto jj44; + case 'l': goto aa62; + default: goto aa44; } -jj59: - jjch = *++JJCURSOR; - switch (jjch) { +aa62: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'S': - case 's': goto jj60; - default: goto jj44; + case 's': goto aa63; + default: goto aa44; } -jj60: - jjch = *++JJCURSOR; - switch (jjch) { +aa63: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'E': - case 'e': goto jj61; - default: goto jj44; + case 'e': goto aa64; + default: goto aa44; } -jj61: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa64: + aaaccept = 4; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -31032,7 +31024,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -31059,33 +31050,37 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj62; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa65; } -jj62: -// 89 "scanner.re" +aa65: +// 84 "scanner.re" { token->opcode = PHANNOT_T_FALSE; return 0; } -// 669 "scanner.c" -jj63: - jjch = *++JJCURSOR; - switch (jjch) { +// 865 "scanner.c" +aa66: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj64; - default: goto jj44; + case 'l': goto aa67; + default: goto aa44; } -jj64: - jjch = *++JJCURSOR; - switch (jjch) { +aa67: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj65; - default: goto jj44; + case 'l': goto aa68; + default: goto aa44; } -jj65: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa68: + aaaccept = 5; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -31122,7 +31117,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -31149,19 +31143,20 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj66; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa69; } -jj66: -// 84 "scanner.re" +aa69: +// 79 "scanner.re" { token->opcode = PHANNOT_T_NULL; return 0; } -// 759 "scanner.c" -jj67: - jjch = *++JJCURSOR; - switch (jjch) { +// 958 "scanner.c" +aa70: + aach = *++AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -31171,16 +31166,16 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj70; - default: goto jj47; - } -jj68: - jjaccept = 0; - JJMARKER = ++JJCURSOR; - jjch = *JJCURSOR; -jj69: - switch (jjch) { - case '.': goto jj67; + case '9': goto aa73; + default: goto aa46; + } +aa71: + aaaccept = 0; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; +aa72: + switch (aach) { + case '.': goto aa70; case '0': case '1': case '2': @@ -31190,13 +31185,13 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj68; - default: goto jj5; + case '9': goto aa71; + default: goto aa5; } -jj70: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { +aa73: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -31206,21 +31201,21 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj70; - default: goto jj72; + case '9': goto aa73; + default: goto aa75; } -jj72: -// 76 "scanner.re" +aa75: +// 71 "scanner.re" { token->opcode = PHANNOT_T_DOUBLE; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 819 "scanner.c" +// 1018 "scanner.c" } -// 188 "scanner.re" +// 183 "scanner.re" } @@ -33066,7 +33061,7 @@ static PHP_METHOD(Phalcon_Assets_Manager, output) { zephir_check_call_status(); if (zephir_fast_count_int(filters TSRMLS_CC)) { if (zephir_is_true(local)) { - ZEPHIR_CALL_METHOD(&sourcePath, resource, "getrealsourcepath", NULL); + ZEPHIR_CALL_METHOD(&sourcePath, resource, "getrealsourcepath", NULL, completeSourcePath); zephir_check_call_status(); if (!(zephir_is_true(sourcePath))) { ZEPHIR_CALL_METHOD(&sourcePath, resource, "getpath", NULL); @@ -36953,6 +36948,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Cache_Backend_Memory) { zend_declare_property_null(phalcon_cache_backend_memory_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, phalcon_cache_backendinterface_ce); + zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, zend_ce_serializable); return SUCCESS; } @@ -37249,6 +37245,49 @@ static PHP_METHOD(Phalcon_Cache_Backend_Memory, flush) { } +static PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + zval *_1; + zval *_0; + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 1, 0 TSRMLS_CC); + ZEPHIR_OBS_VAR(_1); + zephir_read_property_this(&_1, this_ptr, SL("_frontend"), PH_NOISY_CC); + zephir_array_update_string(&_0, SL("frontend"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", &_2, _0); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *data, *unserialized = NULL, *_1; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + + ZEPHIR_CALL_FUNCTION(&unserialized, "unserialize", &_0, data); + zephir_check_call_status(); + if (Z_TYPE_P(unserialized) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(zend_exception_get_default(TSRMLS_C), "Unserialized data must be an array", "phalcon/cache/backend/memory.zep", 295); + return; + } + zephir_array_fetch_string(&_1, unserialized, SL("frontend"), PH_NOISY | PH_READONLY, "phalcon/cache/backend/memory.zep", 298 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_frontend"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + @@ -38150,7 +38189,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, save) { static PHP_METHOD(Phalcon_Cache_Backend_Redis, delete) { int ZEPHIR_LAST_CALL_STATUS; - zval *keyName, *redis = NULL, *prefix, *prefixedKey, *lastKey, *options, *specialKey, *_0 = NULL; + zval *keyName, *redis = NULL, *prefix, *prefixedKey, *lastKey, *options, *specialKey; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &keyName); @@ -38181,12 +38220,9 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, delete) { zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 296 TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, redis, "srem", NULL, specialKey, prefixedKey); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, redis, "delete", NULL, lastKey); + ZEPHIR_RETURN_CALL_METHOD(redis, "delete", NULL, lastKey); zephir_check_call_status(); - if (!ZEPHIR_IS_LONG(_0, 1)) { - RETURN_MM_BOOL(0); - } - RETURN_MM_BOOL(1); + RETURN_MM(); } @@ -38196,7 +38232,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, queryKeys) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *prefix = NULL, *redis = NULL, *options, *keys = NULL, *specialKey, *key = NULL, **_2; + zval *prefix = NULL, *redis = NULL, *options, *keys = NULL, *specialKey, *key = NULL, *value = NULL, **_2; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, &prefix); @@ -38217,23 +38253,24 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, queryKeys) { ZEPHIR_OBS_VAR(options); zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); if (!(zephir_array_isset_string(options, SS("statsKey")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 329); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 326); return; } ZEPHIR_OBS_VAR(specialKey); - zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 332 TSRMLS_CC); + zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 329 TSRMLS_CC); ZEPHIR_CALL_METHOD(&keys, redis, "smembers", NULL, specialKey); zephir_check_call_status(); if (Z_TYPE_P(keys) == IS_ARRAY) { - zephir_is_iterable(keys, &_1, &_0, 1, 0, "phalcon/cache/backend/redis.zep", 344); + zephir_is_iterable(keys, &_1, &_0, 1, 0, "phalcon/cache/backend/redis.zep", 341); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { - ZEPHIR_GET_HVALUE(key, _2); + ZEPHIR_GET_HMKEY(key, _1, _0); + ZEPHIR_GET_HVALUE(value, _2); _3 = zephir_is_true(prefix); if (_3) { - _3 = !(zephir_start_with(key, prefix, NULL)); + _3 = !(zephir_start_with(value, prefix, NULL)); } if (_3) { zephir_array_unset(&keys, key, PH_SEPARATE); @@ -38394,11 +38431,11 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, flush) { ZEPHIR_OBS_VAR(options); zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); if (!(zephir_array_isset_string(options, SS("statsKey")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 459); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 456); return; } ZEPHIR_OBS_VAR(specialKey); - zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 462 TSRMLS_CC); + zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 459 TSRMLS_CC); ZEPHIR_OBS_VAR(redis); zephir_read_property_this(&redis, this_ptr, SL("_redis"), PH_NOISY_CC); if (Z_TYPE_P(redis) != IS_OBJECT) { @@ -38410,7 +38447,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, flush) { ZEPHIR_CALL_METHOD(&keys, redis, "smembers", NULL, specialKey); zephir_check_call_status(); if (Z_TYPE_P(keys) == IS_ARRAY) { - zephir_is_iterable(keys, &_1, &_0, 0, 0, "phalcon/cache/backend/redis.zep", 478); + zephir_is_iterable(keys, &_1, &_0, 0, 0, "phalcon/cache/backend/redis.zep", 475); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -39683,20 +39720,24 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; zend_bool _3; int ZEPHIR_LAST_CALL_STATUS; - zval *arguments = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments_param = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &arguments); + zephir_fetch_params(1, 0, 1, &arguments_param); - if (!arguments) { - arguments = ZEPHIR_GLOBAL(global_null); + if (!arguments_param) { + ZEPHIR_INIT_VAR(arguments); + array_init(arguments); + } else { + zephir_get_arrval(arguments, arguments_param); } ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 155); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 152); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_eventsManager"), PH_NOISY_CC); @@ -39707,7 +39748,7 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_check_temp_parameter(_2); zephir_check_call_status(); ZEPHIR_CPY_WRT(router, _1); - _3 = !zephir_is_true(arguments); + _3 = !(zephir_fast_count_int(arguments TSRMLS_CC)); if (_3) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_arguments"), PH_NOISY_CC); _3 = zephir_is_true(_0); @@ -39742,14 +39783,14 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module '", moduleName, "' isn't registered in the console container"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 179 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 176 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(module); - zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 182 TSRMLS_CC); + zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 179 TSRMLS_CC); if (Z_TYPE_P(module) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 184); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 181); return; } ZEPHIR_OBS_VAR(path); @@ -39761,7 +39802,7 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module definition path '", path, "' doesn't exist"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 189 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 186 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -39894,7 +39935,7 @@ static PHP_METHOD(Phalcon_Cli_Console, setArgument) { Z_UNSET_ISREF_P(arguments); zephir_check_call_status(); } - zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 270); + zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 267); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -39951,11 +39992,11 @@ static PHP_METHOD(Phalcon_Cli_Console, setArgument) { zephir_substr(_9, arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, _9, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 262); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 259); } } } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 266); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 263); } } if (str) { @@ -42214,9 +42255,8 @@ static PHP_METHOD(Phalcon_Db_Adapter, fetchAll) { zephir_check_call_status(); if (!(zephir_is_true(row))) { break; - } else { - zephir_array_append(&results, row, PH_SEPARATE, "phalcon/db/adapter.zep", 238); } + zephir_array_append(&results, row, PH_SEPARATE, "phalcon/db/adapter.zep", 239); } } RETURN_CCTOR(results); @@ -43731,13 +43771,28 @@ static PHP_METHOD(Phalcon_Db_Adapter, describeReferences) { static PHP_METHOD(Phalcon_Db_Adapter, tableOptions) { int ZEPHIR_LAST_CALL_STATUS; - zval *tableName, *schemaName = NULL, *sql = NULL, *_0, *_1 = NULL, *_2, *_3; + zval *tableName_param = NULL, *schemaName_param = NULL, *sql = NULL, *_0, *_1 = NULL, *_2, *_3; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } @@ -43749,7 +43804,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, tableOptions) { ZVAL_LONG(_2, 1); ZEPHIR_CALL_METHOD(&_1, this_ptr, "fetchall", NULL, sql, _2); zephir_check_call_status(); - zephir_array_fetch_long(&_3, _1, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter.zep", 979 TSRMLS_CC); + zephir_array_fetch_long(&_3, _1, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter.zep", 975 TSRMLS_CC); RETURN_CTOR(_3); } array_init(return_value); @@ -43784,7 +43839,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, createSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/db/adapter.zep", 994); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/db/adapter.zep", 990); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "createsavepoint", NULL, name); @@ -43822,7 +43877,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, releaseSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1010); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1006); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "supportsreleasesavepoints", NULL); @@ -43865,7 +43920,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, rollbackSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1030); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1026); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "rollbacksavepoint", NULL, name); @@ -43890,14 +43945,14 @@ static PHP_METHOD(Phalcon_Db_Adapter, setNestedTransactionsWithSavepoints) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_transactionLevel"), PH_NOISY_CC); if (ZEPHIR_GT_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/db/adapter.zep", 1043); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/db/adapter.zep", 1039); return; } _1 = zephir_fetch_nproperty_this(this_ptr, SL("_dialect"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(&_2, _1, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1047); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1043); return; } zephir_update_property_this(this_ptr, SL("_transactionsWithSavepoints"), nestedTransactionsWithSavepoints ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -44612,18 +44667,108 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect) { zend_declare_property_null(phalcon_db_dialect_ce, SL("_escapeChar"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_class_implements(phalcon_db_dialect_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } +static PHP_METHOD(Phalcon_Db_Dialect, escape) { + + HashTable *_6; + HashPosition _5; + zval *_4 = NULL; + zend_bool isEscape, _8, _9, _10; + zval *str_param = NULL, *escapeChar_param = NULL, *parts = NULL, *key = NULL, *part = NULL, *newParts = NULL, *_0, *_2, *_3, **_7, *_11 = NULL; + zval *str = NULL, *escapeChar = NULL, *_1 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(str_param) == IS_STRING)) { + zephir_get_strval(str, str_param); + } else { + ZEPHIR_INIT_VAR(str); + ZVAL_EMPTY_STRING(str); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (ZEPHIR_IS_STRING(escapeChar, "")) { + ZEPHIR_OBS_VAR(_0); + zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); + zephir_get_strval(_1, _0); + ZEPHIR_CPY_WRT(escapeChar, _1); + } + isEscape = ZEPHIR_GLOBAL(db).escape_identifiers; + if (!(zephir_memnstr_str(str, SL("."), "phalcon/db/dialect.zep", 47))) { + if (isEscape) { + if (ZEPHIR_IS_STRING(escapeChar, "")) { + RETURN_CTOR(str); + } + if (ZEPHIR_IS_STRING(str, "*")) { + RETURN_CTOR(str); + } + ZEPHIR_CONCAT_VVV(return_value, escapeChar, str, escapeChar); + RETURN_MM(); + } + RETURN_CTOR(str); + } + ZEPHIR_INIT_VAR(_2); + ZEPHIR_INIT_VAR(_3); + zephir_fast_trim(_3, str, escapeChar, ZEPHIR_TRIM_BOTH TSRMLS_CC); + zephir_fast_explode_str(_2, SL("."), _3, LONG_MAX TSRMLS_CC); + zephir_get_arrval(_4, _2); + ZEPHIR_CPY_WRT(parts, _4); + ZEPHIR_CPY_WRT(newParts, parts); + zephir_is_iterable(parts, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 77); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HMKEY(key, _6, _5); + ZEPHIR_GET_HVALUE(part, _7); + _8 = ZEPHIR_IS_STRING(escapeChar, ""); + if (!(_8)) { + _8 = !isEscape; + } + _9 = _8; + if (!(_9)) { + _9 = ZEPHIR_IS_STRING(part, ""); + } + _10 = _9; + if (!(_10)) { + _10 = ZEPHIR_IS_STRING(part, "*"); + } + if (_10) { + continue; + } + ZEPHIR_INIT_LNVAR(_11); + ZEPHIR_CONCAT_VVV(_11, escapeChar, part, escapeChar); + zephir_array_update_zval(&newParts, key, &_11, PH_COPY | PH_SEPARATE); + } + zephir_fast_join_str(return_value, SL("."), newParts TSRMLS_CC); + RETURN_MM(); + +} + static PHP_METHOD(Phalcon_Db_Dialect, limit) { - int number; - zval *sqlQuery_param = NULL, *number_param = NULL, _0, _1; + zend_bool _2; + zval *sqlQuery_param = NULL, *number, *_0, *_1, *_3, *_4, *_5; zval *sqlQuery = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number_param); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); if (unlikely(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be a string") TSRMLS_CC); @@ -44636,18 +44781,28 @@ static PHP_METHOD(Phalcon_Db_Dialect, limit) { ZEPHIR_INIT_VAR(sqlQuery); ZVAL_EMPTY_STRING(sqlQuery); } - number = zephir_get_intval(number_param); - ZEPHIR_SINIT_VAR(_0); - ZVAL_LONG(&_0, number); - if (zephir_is_numeric(&_0)) { - ZEPHIR_SINIT_VAR(_1); - ZVAL_LONG(&_1, number); - ZEPHIR_CONCAT_VSV(return_value, sqlQuery, " LIMIT ", &_1); - RETURN_MM(); + if (Z_TYPE_P(number) == IS_ARRAY) { + zephir_array_fetch_long(&_0, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 95 TSRMLS_CC); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_SV(_1, " LIMIT ", _0); + zephir_concat_self(&sqlQuery, _1 TSRMLS_CC); + _2 = zephir_array_isset_long(number, 1); + if (_2) { + zephir_array_fetch_long(&_3, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 97 TSRMLS_CC); + _2 = (zephir_fast_strlen_ev(_3)) ? 1 : 0; + } + if (_2) { + zephir_array_fetch_long(&_4, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 98 TSRMLS_CC); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SV(_5, " OFFSET ", _4); + zephir_concat_self(&sqlQuery, _5 TSRMLS_CC); + } + RETURN_CTOR(sqlQuery); } - RETURN_CTOR(sqlQuery); + ZEPHIR_CONCAT_VSV(return_value, sqlQuery, " LIMIT ", number); + RETURN_MM(); } @@ -44705,9 +44860,11 @@ static PHP_METHOD(Phalcon_Db_Dialect, sharedLock) { static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; HashTable *_1; HashPosition _0; - zval *columnList_param = NULL, *strList, *escapeChar, *column = NULL, **_2, *_3 = NULL; + zval *columnList_param = NULL, *columns, *column = NULL, **_2, *_3 = NULL; zval *columnList = NULL; ZEPHIR_MM_GROW(); @@ -44717,33 +44874,103 @@ static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { - ZEPHIR_INIT_VAR(strList); - array_init(strList); - ZEPHIR_OBS_VAR(escapeChar); - zephir_read_property_this(&escapeChar, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 90); + ZEPHIR_INIT_VAR(columns); + array_init(columns); + zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 149); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HVALUE(column, _2); - ZEPHIR_INIT_LNVAR(_3); - ZEPHIR_CONCAT_VVV(_3, escapeChar, column, escapeChar); - zephir_array_append(&strList, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 88); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlcolumn", &_4, column); + zephir_check_call_status(); + zephir_array_append(&columns, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 146); } - zephir_fast_join_str(return_value, SL(", "), strList TSRMLS_CC); + zephir_fast_join_str(return_value, SL(", "), columns TSRMLS_CC); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn) { + + zephir_fcall_cache_entry *_2 = NULL; + zend_bool _0, _1; + int ZEPHIR_LAST_CALL_STATUS; + zval *column = NULL, *columnExpression = NULL, *columnAlias = NULL, *columnField, *columnDomain; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + ZEPHIR_SEPARATE_PARAM(column); + + + if (Z_TYPE_P(column) != IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, column); + zephir_check_call_status(); + RETURN_MM(); + } + if (!(zephir_array_isset_string(column, SS("type")))) { + ZEPHIR_OBS_VAR(columnField); + zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 168 TSRMLS_CC); + if (Z_TYPE_P(columnField) == IS_ARRAY) { + ZEPHIR_INIT_VAR(columnExpression); + zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("scalar"), 1); + zephir_array_update_string(&columnExpression, SL("value"), &columnField, PH_COPY | PH_SEPARATE); + } else if (ZEPHIR_IS_STRING(columnField, "*")) { + ZEPHIR_INIT_NVAR(columnExpression); + zephir_create_array(columnExpression, 1, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("all"), 1); + } else { + ZEPHIR_INIT_NVAR(columnExpression); + zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("qualified"), 1); + zephir_array_update_string(&columnExpression, SL("name"), &columnField, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(columnDomain); + _0 = zephir_array_isset_long_fetch(&columnDomain, column, 1, 0 TSRMLS_CC); + if (_0) { + _0 = !ZEPHIR_IS_STRING(columnDomain, ""); + } + if (_0) { + zephir_array_update_string(&columnExpression, SL("domain"), &columnDomain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(columnAlias); + _1 = zephir_array_isset_long_fetch(&columnAlias, column, 2, 0 TSRMLS_CC); + if (_1) { + _1 = zephir_is_true(columnAlias); + } + if (_1) { + zephir_array_update_string(&columnExpression, SL("sqlAlias"), &columnAlias, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(columnExpression, column); + } + ZEPHIR_CALL_METHOD(&column, this_ptr, "getsqlexpression", NULL, columnExpression); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(columnAlias); + _0 = zephir_array_isset_string_fetch(&columnAlias, columnExpression, SS("sqlAlias"), 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(columnAlias); + _0 = zephir_array_isset_string_fetch(&columnAlias, columnExpression, SS("alias"), 0 TSRMLS_CC); + } + if (_0) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", &_2, column, columnAlias); + zephir_check_call_status(); + RETURN_MM(); + } else { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", &_2, column); + zephir_check_call_status(); + RETURN_MM(); + } + +} + static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { - HashTable *_8, *_13; - HashPosition _7, _12; - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_17 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL, *_11 = NULL, *_12 = NULL, *_15 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_1 = NULL; - zval *expression_param = NULL, *escapeChar = NULL, *type, *domain, *operator, *left = NULL, *right = NULL, *name = NULL, *sqlItems, *escapedName = NULL, *sqlArguments, *arguments, *argument = NULL, *item = NULL, *_0, *_2, *_4, *_5, *_6 = NULL, **_9, *_10 = NULL, *_11 = NULL, **_14, *_15 = NULL, *_16; + zval *expression_param = NULL, *escapeChar = NULL, *type, *_3, *_6 = NULL, *_13, *_14; zval *expression = NULL; ZEPHIR_MM_GROW(); @@ -44752,177 +44979,86 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { expression = expression_param; if (!escapeChar) { - ZEPHIR_CPY_WRT(escapeChar, ZEPHIR_GLOBAL(global_null)); - } else { - ZEPHIR_SEPARATE_PARAM(escapeChar); + escapeChar = ZEPHIR_GLOBAL(global_null); } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - if (Z_TYPE_P(escapeChar) == IS_NULL) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_get_strval(_1, _0); - ZEPHIR_CPY_WRT(escapeChar, _1); - } - } ZEPHIR_OBS_VAR(type); if (!(zephir_array_isset_string_fetch(&type, expression, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 112); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 228); return; } - if (ZEPHIR_IS_STRING(type, "qualified")) { - ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 120 TSRMLS_CC); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_VAR(escapedName); - ZEPHIR_CONCAT_VVV(escapedName, escapeChar, name, escapeChar); - } else { - ZEPHIR_CPY_WRT(escapedName, name); + do { + if (ZEPHIR_IS_STRING(type, "scalar")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionscalar", &_0, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_OBS_VAR(domain); - if (zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC)) { - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(return_value, escapeChar, domain, escapeChar, ".", escapedName); - RETURN_MM(); - } else { - ZEPHIR_CONCAT_VSV(return_value, domain, ".", escapedName); - RETURN_MM(); - } + if (ZEPHIR_IS_STRING(type, "object")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionobject", &_1, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); } - RETURN_CCTOR(escapedName); - } - if (ZEPHIR_IS_STRING(type, "literal")) { - zephir_array_fetch_string(&_2, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 145 TSRMLS_CC); - RETURN_CTOR(_2); - } - if (ZEPHIR_IS_STRING(type, "binary-op")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 153 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 154 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_5, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 156 TSRMLS_CC); - ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _5, " ", right); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "unary-op")) { - ZEPHIR_OBS_VAR(operator); - zephir_array_fetch_string(&operator, expression, SL("op"), PH_NOISY, "phalcon/db/dialect.zep", 164 TSRMLS_CC); - ZEPHIR_OBS_NVAR(left); - if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, left, escapeChar); + if (ZEPHIR_IS_STRING(type, "qualified")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionqualified", &_2, expression, escapeChar); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, _6, operator); RETURN_MM(); } - ZEPHIR_OBS_NVAR(right); - if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, right, escapeChar); + if (ZEPHIR_IS_STRING(type, "literal") || ZEPHIR_IS_STRING(type, "placeholder")) { + zephir_array_fetch_string(&_3, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 256 TSRMLS_CC); + RETURN_CTOR(_3); + } + if (ZEPHIR_IS_STRING(type, "binary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionbinaryoperations", &_4, expression, escapeChar); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, operator, _6); RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 180); - return; - } - if (ZEPHIR_IS_STRING(type, "placeholder")) { - zephir_array_fetch_string(&_2, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 187 TSRMLS_CC); - RETURN_CTOR(_2); - } - if (ZEPHIR_IS_STRING(type, "parentheses")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 194 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "functionCall")) { - ZEPHIR_OBS_NVAR(name); - zephir_array_fetch_string(&name, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 201 TSRMLS_CC); - ZEPHIR_INIT_VAR(sqlArguments); - array_init(sqlArguments); - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, expression, SS("arguments"), 0 TSRMLS_CC)) { - zephir_is_iterable(arguments, &_8, &_7, 0, 0, "phalcon/db/dialect.zep", 207); - for ( - ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS - ; zephir_hash_move_forward_ex(_8, &_7) - ) { - ZEPHIR_GET_HVALUE(argument, _9); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "getsqlexpression", &_3, argument, escapeChar); - zephir_check_call_status(); - zephir_array_append(&sqlArguments, _10, PH_SEPARATE, "phalcon/db/dialect.zep", 205); - } - if (zephir_array_isset_string(expression, SS("distinct"))) { - ZEPHIR_INIT_VAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(DISTINCT ", _11, ")"); - RETURN_MM(); - } else { - ZEPHIR_INIT_NVAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(", _11, ")"); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(", _11, ")"); + if (ZEPHIR_IS_STRING(type, "unary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionunaryoperations", &_5, expression, escapeChar); + zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_CONCAT_VS(return_value, name, "()"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "list")) { - ZEPHIR_INIT_VAR(sqlItems); - array_init(sqlItems); - zephir_array_fetch_long(&_2, expression, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 222 TSRMLS_CC); - zephir_is_iterable(_2, &_13, &_12, 0, 0, "phalcon/db/dialect.zep", 225); - for ( - ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS - ; zephir_hash_move_forward_ex(_13, &_12) - ) { - ZEPHIR_GET_HVALUE(item, _14); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, item, escapeChar); + if (ZEPHIR_IS_STRING(type, "parentheses")) { + zephir_array_fetch_string(&_3, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 274 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_7, _3, escapeChar); zephir_check_call_status(); - zephir_array_append(&sqlItems, _6, PH_SEPARATE, "phalcon/db/dialect.zep", 223); + ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); + RETURN_MM(); } - ZEPHIR_INIT_VAR(_15); - zephir_fast_join_str(_15, SL(", "), sqlItems TSRMLS_CC); - ZEPHIR_CONCAT_SVS(return_value, "(", _15, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "all")) { - RETURN_MM_STRING("*", 1); - } - if (ZEPHIR_IS_STRING(type, "cast")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 240 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 241 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "convert")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 251 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 252 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_15); - object_init_ex(_15, phalcon_db_exception_ce); - ZEPHIR_INIT_VAR(_16); - ZEPHIR_CONCAT_SVS(_16, "Invalid SQL expression type '", type, "'"); - ZEPHIR_CALL_METHOD(NULL, _15, "__construct", &_17, _16); + if (ZEPHIR_IS_STRING(type, "functionCall")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionfunctioncall", &_8, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "list")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionlist", &_9, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "all")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionall", &_10, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "cast")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncastvalue", &_11, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "convert")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionconvertvalue", &_12, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + } while(0); + + ZEPHIR_INIT_VAR(_13); + object_init_ex(_13, phalcon_db_exception_ce); + ZEPHIR_INIT_VAR(_14); + ZEPHIR_CONCAT_SVS(_14, "Invalid SQL expression type '", type, "'"); + ZEPHIR_CALL_METHOD(NULL, _13, "__construct", &_15, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_15, "phalcon/db/dialect.zep", 260 TSRMLS_CC); + zephir_throw_exception_debug(_13, "phalcon/db/dialect.zep", 310 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -44930,9 +45066,9 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { - zend_bool _2; - zval *escapeChar = NULL, *_1 = NULL; - zval *table, *escapeChar_param = NULL, *sqlTable = NULL, *sqlSchema = NULL, *aliasName, *sqlTableAlias = NULL, *schemaName, *tableName, *_0; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *table, *escapeChar_param = NULL, *tableName, *schemaName = NULL, *aliasName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &table, &escapeChar_param); @@ -44945,68 +45081,36 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { } - if (ZEPHIR_IS_STRING_IDENTICAL(escapeChar, "")) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_get_strval(_1, _0); - ZEPHIR_CPY_WRT(escapeChar, _1); - } if (Z_TYPE_P(table) == IS_ARRAY) { ZEPHIR_OBS_VAR(tableName); - zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 284 TSRMLS_CC); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_VAR(sqlTable); - ZEPHIR_CONCAT_VVV(sqlTable, escapeChar, tableName, escapeChar); - } else { - ZEPHIR_CPY_WRT(sqlTable, tableName); - } + zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 329 TSRMLS_CC); ZEPHIR_OBS_VAR(schemaName); - zephir_array_fetch_long(&schemaName, table, 1, PH_NOISY, "phalcon/db/dialect.zep", 295 TSRMLS_CC); - _2 = Z_TYPE_P(schemaName) != IS_NULL; - if (_2) { - _2 = !ZEPHIR_IS_STRING(schemaName, ""); - } - if (_2) { - ZEPHIR_INIT_VAR(sqlSchema); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(sqlSchema, escapeChar, schemaName, escapeChar, ".", sqlTable); - } else { - ZEPHIR_CONCAT_VSV(sqlSchema, schemaName, ".", sqlTable); - } - } else { - ZEPHIR_CPY_WRT(sqlSchema, sqlTable); + if (!(zephir_array_isset_long_fetch(&schemaName, table, 1, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(schemaName); + ZVAL_NULL(schemaName); } ZEPHIR_OBS_VAR(aliasName); - if (zephir_array_isset_long_fetch(&aliasName, table, 2, 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(sqlTableAlias); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VSVVV(sqlTableAlias, sqlSchema, " AS ", escapeChar, aliasName, escapeChar); - } else { - ZEPHIR_CONCAT_VSV(sqlTableAlias, sqlSchema, " AS ", aliasName); - } - } else { - ZEPHIR_CPY_WRT(sqlTableAlias, sqlSchema); + if (!(zephir_array_isset_long_fetch(&aliasName, table, 2, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(aliasName); + ZVAL_NULL(aliasName); } - RETURN_CCTOR(sqlTableAlias); - } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVV(return_value, escapeChar, table, escapeChar); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparetable", NULL, tableName, schemaName, aliasName, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + RETVAL_ZVAL(table, 1, 0); RETURN_MM(); } - RETVAL_ZVAL(table, 1, 0); - RETURN_MM(); } static PHP_METHOD(Phalcon_Db_Dialect, select) { - zephir_nts_static zephir_fcall_cache_entry *_8 = NULL; - zephir_fcall_cache_entry *_3 = NULL; + zend_bool _6, _11, _13, _15, _17, _19; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_9 = NULL, *_12 = NULL, *_14 = NULL, *_16 = NULL, *_18 = NULL, *_21 = NULL; int ZEPHIR_LAST_CALL_STATUS; - HashTable *_1, *_5, *_11, *_16, *_23, *_27; - HashPosition _0, _4, _10, _15, _22, _26; - zval *definition_param = NULL, *tables, *columns, *escapeChar = NULL, *columnItem = NULL, *column = NULL, *selectedColumns, *columnSql = NULL, *columnDomainSql = NULL, *columnAlias = NULL, *selectedTables, *sqlJoin = NULL, *joinExpressions = NULL, *joinCondition = NULL, *joinConditionsArray = NULL, *tablesSql = NULL, *columnDomain = NULL, *columnAliasSql = NULL, *columnsSql = NULL, *table = NULL, *distinct, *sql = NULL, *joins, *join = NULL, *sqlTable = NULL, *whereConditions, *groupFields, *groupField = NULL, *groupItems, *havingConditions, *orderFields, *orderItem = NULL, *orderItems, *orderSqlItem = NULL, *sqlOrderType = NULL, *orderSqlItemType = NULL, *limitValue, *limitNumber = NULL, *limitNumberValue, *offset, *offsetNumber = NULL, **_2, **_6, *_7 = NULL, *_9 = NULL, **_12, *_13, *_14, **_17, *_18 = NULL, *_19 = NULL, *_20 = NULL, *_21 = NULL, **_24, *_25 = NULL, **_28, *_29; - zval *definition = NULL; + zval *definition_param = NULL, *tables, *columns, *sql = NULL, *distinct, *joins, *where, *groupBy, *having, *orderBy, *limit, *_0 = NULL, *_2, *_3 = NULL, *_5, *_7 = NULL, *_8, *_10 = NULL; + zval *definition = NULL, *_20; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &definition_param); @@ -45017,287 +45121,109 @@ static PHP_METHOD(Phalcon_Db_Dialect, select) { ZEPHIR_OBS_VAR(tables); if (!(zephir_array_isset_string_fetch(&tables, definition, SS("tables"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 345); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 360); return; } ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 349); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 364); return; } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_OBS_VAR(escapeChar); - zephir_read_property_this(&escapeChar, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - } else { - ZEPHIR_INIT_NVAR(escapeChar); - ZVAL_NULL(escapeChar); - } - if (Z_TYPE_P(columns) == IS_ARRAY) { - ZEPHIR_INIT_VAR(selectedColumns); - array_init(selectedColumns); - zephir_is_iterable(columns, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 416); - for ( - ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS - ; zephir_hash_move_forward_ex(_1, &_0) - ) { - ZEPHIR_GET_HVALUE(column, _2); - ZEPHIR_OBS_NVAR(columnItem); - zephir_array_fetch_long(&columnItem, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 366 TSRMLS_CC); - if (Z_TYPE_P(columnItem) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "getsqlexpression", &_3, columnItem, escapeChar); - zephir_check_call_status(); - } else { - if (ZEPHIR_IS_STRING(columnItem, "*")) { - ZEPHIR_CPY_WRT(columnSql, columnItem); - } else { - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_NVAR(columnSql); - ZEPHIR_CONCAT_VVV(columnSql, escapeChar, columnItem, escapeChar); - } else { - ZEPHIR_CPY_WRT(columnSql, columnItem); - } - } - } - ZEPHIR_OBS_NVAR(columnDomain); - if (zephir_array_isset_long_fetch(&columnDomain, column, 1, 0 TSRMLS_CC)) { - if (zephir_is_true(columnDomain)) { - ZEPHIR_INIT_NVAR(columnDomainSql); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(columnDomainSql, escapeChar, columnDomain, escapeChar, ".", columnSql); - } else { - ZEPHIR_CONCAT_VSV(columnDomainSql, columnDomain, ".", columnSql); - } - } else { - ZEPHIR_CPY_WRT(columnDomainSql, columnSql); - } - } else { - ZEPHIR_CPY_WRT(columnDomainSql, columnSql); - } - ZEPHIR_OBS_NVAR(columnAlias); - if (zephir_array_isset_long_fetch(&columnAlias, column, 2, 0 TSRMLS_CC)) { - if (zephir_is_true(columnAlias)) { - ZEPHIR_INIT_NVAR(columnAliasSql); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VSVVV(columnAliasSql, columnDomainSql, " AS ", escapeChar, columnAlias, escapeChar); - } else { - ZEPHIR_CONCAT_VSV(columnAliasSql, columnDomainSql, " AS ", columnAlias); - } - } else { - ZEPHIR_CPY_WRT(columnAliasSql, columnDomainSql); - } - } else { - ZEPHIR_CPY_WRT(columnAliasSql, columnDomainSql); - } - zephir_array_append(&selectedColumns, columnAliasSql, PH_SEPARATE, "phalcon/db/dialect.zep", 414); - } - ZEPHIR_INIT_VAR(columnsSql); - zephir_fast_join_str(columnsSql, SL(", "), selectedColumns TSRMLS_CC); - } else { - ZEPHIR_CPY_WRT(columnsSql, columns); - } - if (Z_TYPE_P(tables) == IS_ARRAY) { - ZEPHIR_INIT_VAR(selectedTables); - array_init(selectedTables); - zephir_is_iterable(tables, &_5, &_4, 0, 0, "phalcon/db/dialect.zep", 429); - for ( - ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS - ; zephir_hash_move_forward_ex(_5, &_4) - ) { - ZEPHIR_GET_HVALUE(table, _6); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqltable", &_8, table, escapeChar); - zephir_check_call_status(); - zephir_array_append(&selectedTables, _7, PH_SEPARATE, "phalcon/db/dialect.zep", 427); - } - ZEPHIR_INIT_VAR(tablesSql); - zephir_fast_join_str(tablesSql, SL(", "), selectedTables TSRMLS_CC); - } else { - ZEPHIR_CPY_WRT(tablesSql, tables); - } ZEPHIR_OBS_VAR(distinct); if (zephir_array_isset_string_fetch(&distinct, definition, SS("distinct"), 0 TSRMLS_CC)) { - if (ZEPHIR_IS_LONG(distinct, 0)) { - ZEPHIR_INIT_VAR(sql); - ZVAL_STRING(sql, "SELECT ALL ", 1); + ZEPHIR_INIT_VAR(sql); + if (zephir_is_true(distinct)) { + ZVAL_STRING(sql, "SELECT DISTINCT", 1); } else { - ZEPHIR_INIT_NVAR(sql); - if (ZEPHIR_IS_LONG(distinct, 1)) { - ZVAL_STRING(sql, "SELECT DISTINCT ", 1); - } else { - ZVAL_STRING(sql, "SELECT ", 1); - } + ZVAL_STRING(sql, "SELECT ALL", 1); } } else { ZEPHIR_INIT_NVAR(sql); - ZVAL_STRING(sql, "SELECT ", 1); + ZVAL_STRING(sql, "SELECT", 1); } - ZEPHIR_INIT_VAR(_9); - ZEPHIR_CONCAT_VVSV(_9, sql, columnsSql, " FROM ", tablesSql); - ZEPHIR_CPY_WRT(sql, _9); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_1, columns); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SV(_2, " ", _0); + zephir_concat_self(&sql, _2 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpressionfrom", &_4, tables); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SV(_5, " ", _3); + zephir_concat_self(&sql, _5 TSRMLS_CC); ZEPHIR_OBS_VAR(joins); - if (zephir_array_isset_string_fetch(&joins, definition, SS("joins"), 0 TSRMLS_CC)) { - zephir_is_iterable(joins, &_11, &_10, 0, 0, "phalcon/db/dialect.zep", 478); - for ( - ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS - ; zephir_hash_move_forward_ex(_11, &_10) - ) { - ZEPHIR_GET_HVALUE(join, _12); - zephir_array_fetch_string(&_13, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 456 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&sqlTable, this_ptr, "getsqltable", &_8, _13, escapeChar); - zephir_check_call_status(); - zephir_array_append(&selectedTables, sqlTable, PH_SEPARATE, "phalcon/db/dialect.zep", 457); - zephir_array_fetch_string(&_14, join, SL("type"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 458 TSRMLS_CC); - ZEPHIR_INIT_NVAR(sqlJoin); - ZEPHIR_CONCAT_SVSV(sqlJoin, " ", _14, " JOIN ", sqlTable); - ZEPHIR_OBS_NVAR(joinConditionsArray); - if (zephir_array_isset_string_fetch(&joinConditionsArray, join, SS("conditions"), 0 TSRMLS_CC)) { - if (zephir_fast_count_int(joinConditionsArray TSRMLS_CC)) { - if (!(zephir_array_isset_long(joinConditionsArray, 0))) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, joinConditionsArray, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SVS(_9, " ON ", _7, " "); - zephir_concat_self(&sqlJoin, _9 TSRMLS_CC); - } else { - ZEPHIR_INIT_NVAR(joinExpressions); - array_init(joinExpressions); - zephir_is_iterable(joinConditionsArray, &_16, &_15, 0, 0, "phalcon/db/dialect.zep", 472); - for ( - ; zephir_hash_get_current_data_ex(_16, (void**) &_17, &_15) == SUCCESS - ; zephir_hash_move_forward_ex(_16, &_15) - ) { - ZEPHIR_GET_HVALUE(joinCondition, _17); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getsqlexpression", &_3, joinCondition, escapeChar); - zephir_check_call_status(); - zephir_array_append(&joinExpressions, _18, PH_SEPARATE, "phalcon/db/dialect.zep", 470); - } - ZEPHIR_INIT_NVAR(_19); - zephir_fast_join_str(_19, SL(" AND "), joinExpressions TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_SVS(_20, " ON ", _19, " "); - zephir_concat_self(&sqlJoin, _20 TSRMLS_CC); - } - } - } - zephir_concat_self(&sql, sqlJoin TSRMLS_CC); - } + _6 = zephir_array_isset_string_fetch(&joins, definition, SS("joins"), 0 TSRMLS_CC); + if (_6) { + _6 = zephir_is_true(joins); } - ZEPHIR_OBS_VAR(whereConditions); - if (zephir_array_isset_string_fetch(&whereConditions, definition, SS("where"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(whereConditions) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, whereConditions, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_SV(_20, " WHERE ", _7); - zephir_concat_self(&sql, _20 TSRMLS_CC); - } else { - ZEPHIR_INIT_VAR(_21); - ZEPHIR_CONCAT_SV(_21, " WHERE ", whereConditions); - zephir_concat_self(&sql, _21 TSRMLS_CC); - } + if (_6) { + zephir_array_fetch_string(&_8, definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 393 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionjoins", &_9, _8); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); } - ZEPHIR_OBS_VAR(groupFields); - if (zephir_array_isset_string_fetch(&groupFields, definition, SS("group"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(groupItems); - array_init(groupItems); - zephir_is_iterable(groupFields, &_23, &_22, 0, 0, "phalcon/db/dialect.zep", 504); - for ( - ; zephir_hash_get_current_data_ex(_23, (void**) &_24, &_22) == SUCCESS - ; zephir_hash_move_forward_ex(_23, &_22) - ) { - ZEPHIR_GET_HVALUE(groupField, _24); - if (Z_TYPE_P(groupField) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, groupField, escapeChar); - zephir_check_call_status(); - zephir_array_append(&groupItems, _7, PH_SEPARATE, "phalcon/db/dialect.zep", 499); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 501); - return; - } - } - ZEPHIR_INIT_NVAR(_19); - zephir_fast_join_str(_19, SL(", "), groupItems TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " GROUP BY ", _19); - zephir_concat_self(&sql, _21 TSRMLS_CC); - ZEPHIR_OBS_VAR(havingConditions); - if (zephir_array_isset_string_fetch(&havingConditions, definition, SS("having"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(havingConditions) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, havingConditions, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_25); - ZEPHIR_CONCAT_SV(_25, " HAVING ", _7); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 513); - return; - } - } + ZEPHIR_OBS_VAR(where); + _11 = zephir_array_isset_string_fetch(&where, definition, SS("where"), 0 TSRMLS_CC); + if (_11) { + _11 = zephir_is_true(where); } - ZEPHIR_OBS_VAR(orderFields); - if (zephir_array_isset_string_fetch(&orderFields, definition, SS("order"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(orderItems); - array_init(orderItems); - zephir_is_iterable(orderFields, &_27, &_26, 0, 0, "phalcon/db/dialect.zep", 542); - for ( - ; zephir_hash_get_current_data_ex(_27, (void**) &_28, &_26) == SUCCESS - ; zephir_hash_move_forward_ex(_27, &_26) - ) { - ZEPHIR_GET_HVALUE(orderItem, _28); - if (Z_TYPE_P(orderItem) == IS_ARRAY) { - zephir_array_fetch_long(&_13, orderItem, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 526 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&orderSqlItem, this_ptr, "getsqlexpression", &_3, _13, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 528); - return; - } - ZEPHIR_OBS_NVAR(sqlOrderType); - if (zephir_array_isset_long_fetch(&sqlOrderType, orderItem, 1, 0 TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(orderSqlItemType); - ZEPHIR_CONCAT_VSV(orderSqlItemType, orderSqlItem, " ", sqlOrderType); - } else { - ZEPHIR_CPY_WRT(orderSqlItemType, orderSqlItem); - } - zephir_array_append(&orderItems, orderSqlItemType, PH_SEPARATE, "phalcon/db/dialect.zep", 540); - } - ZEPHIR_INIT_VAR(_29); - zephir_fast_join_str(_29, SL(", "), orderItems TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " ORDER BY ", _29); - zephir_concat_self(&sql, _21 TSRMLS_CC); + if (_11) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionwhere", &_12, where); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); } - ZEPHIR_OBS_VAR(limitValue); - if (zephir_array_isset_string_fetch(&limitValue, definition, SS("limit"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(limitValue) == IS_ARRAY) { - ZEPHIR_OBS_VAR(limitNumberValue); - zephir_array_fetch_string(&limitNumberValue, limitValue, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 552 TSRMLS_CC); - if (Z_TYPE_P(limitNumberValue) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&limitNumber, this_ptr, "getsqlexpression", &_3, limitNumberValue, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(limitNumber, limitNumberValue); - } - ZEPHIR_OBS_VAR(offset); - if (zephir_array_isset_string_fetch(&offset, limitValue, SS("offset"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(offset) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&offsetNumber, this_ptr, "getsqlexpression", &_3, offset, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(offsetNumber, offset); - } - ZEPHIR_INIT_LNVAR(_25); - ZEPHIR_CONCAT_SVSV(_25, " LIMIT ", limitNumber, " OFFSET ", offsetNumber); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } else { - ZEPHIR_INIT_LNVAR(_25); - ZEPHIR_CONCAT_SV(_25, " LIMIT ", limitNumber); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } - } else { - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " LIMIT ", limitValue); - zephir_concat_self(&sql, _21 TSRMLS_CC); - } + ZEPHIR_OBS_VAR(groupBy); + _13 = zephir_array_isset_string_fetch(&groupBy, definition, SS("group"), 0 TSRMLS_CC); + if (_13) { + _13 = zephir_is_true(groupBy); + } + if (_13) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressiongroupby", &_14, groupBy); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(having); + _15 = zephir_array_isset_string_fetch(&having, definition, SS("having"), 0 TSRMLS_CC); + if (_15) { + _15 = zephir_is_true(having); + } + if (_15) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionhaving", &_16, having); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(orderBy); + _17 = zephir_array_isset_string_fetch(&orderBy, definition, SS("order"), 0 TSRMLS_CC); + if (_17) { + _17 = zephir_is_true(orderBy); + } + if (_17) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionorderby", &_18, orderBy); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(limit); + _19 = zephir_array_isset_string_fetch(&limit, definition, SS("limit"), 0 TSRMLS_CC); + if (_19) { + _19 = zephir_is_true(limit); + } + if (_19) { + ZEPHIR_INIT_VAR(_20); + zephir_create_array(_20, 2, 0 TSRMLS_CC); + zephir_array_update_string(&_20, SL("sql"), &sql, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_20, SL("value"), &limit, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&sql, this_ptr, "getsqlexpressionlimit", &_21, _20); + zephir_check_call_status(); } RETURN_CCTOR(sql); @@ -45400,307 +45326,1243 @@ static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint) { } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar) { + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *value, *_0; + zval *expression = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include - - + expression = expression_param; -ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); - return SUCCESS; + if (zephir_array_isset_string(expression, SS("column"))) { + zephir_array_fetch_string(&_0, expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 482 TSRMLS_CC); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlcolumn", &_1, _0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_string_fetch(&value, expression, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 486); + return; + } + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, value, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + RETURN_CCTOR(value); + } } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _0, _1; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *domain = NULL, *objectExpression; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(domain); + ZVAL_NULL(domain); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); + ZEPHIR_INIT_VAR(objectExpression); + zephir_create_array(objectExpression, 1, 0 TSRMLS_CC); + add_assoc_stringl_ex(objectExpression, SS("type"), SL("all"), 1); + ZEPHIR_OBS_NVAR(domain); + _0 = zephir_array_isset_string_fetch(&domain, expression, SS("balias"), 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(domain); + _0 = zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC); + } + _1 = _0; + if (_1) { + _1 = !ZEPHIR_IS_STRING(domain, ""); + } + if (_1) { + zephir_array_update_string(&objectExpression, SL("domain"), &domain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, objectExpression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *column, *domain = NULL; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); + ZEPHIR_OBS_VAR(column); + zephir_array_fetch_string(&column, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 520 TSRMLS_CC); + ZEPHIR_OBS_VAR(domain); + if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(domain); + ZVAL_NULL(domain); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, column, domain, escapeChar); + zephir_check_call_status(); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2, *_3; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 539 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 540 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_3, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 542 TSRMLS_CC); + ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _3, " ", right); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left, *right, *_0 = NULL, *_2; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); + expression = expression_param; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_OBS_VAR(left); + if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, left, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 556 TSRMLS_CC); + ZEPHIR_CONCAT_VSV(return_value, _0, " ", _2); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(right); + if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 563 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, right, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, _2, " ", _0); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 566); + return; -#ifdef HAVE_CONFIG_H -#endif +} -#include +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall) { -#include -#include -#include + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _0, _2; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *arguments = NULL, *_3, *_4; + zval *expression = NULL, *_1; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); + expression = expression_param; -ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); - return SUCCESS; + ZEPHIR_OBS_VAR(arguments); + _0 = zephir_array_isset_string_fetch(&arguments, expression, SS("arguments"), 0 TSRMLS_CC); + if (_0) { + _0 = Z_TYPE_P(arguments) == IS_ARRAY; + } + if (_0) { + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + add_assoc_stringl_ex(_1, SS("type"), SL("list"), 1); + zephir_array_update_string(&_1, SL("parentheses"), &ZEPHIR_GLOBAL(global_false), PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("value"), &arguments, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&arguments, this_ptr, "getsqlexpression", NULL, _1, escapeChar); + zephir_check_call_status(); + _2 = zephir_array_isset_string(expression, SS("distinct")); + if (_2) { + zephir_array_fetch_string(&_3, expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 584 TSRMLS_CC); + _2 = zephir_is_true(_3); + } + if (_2) { + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 585 TSRMLS_CC); + ZEPHIR_CONCAT_VSVS(return_value, _4, "(DISTINCT ", arguments, ")"); + RETURN_MM(); + } else { + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 587 TSRMLS_CC); + ZEPHIR_CONCAT_VSVS(return_value, _4, "(", arguments, ")"); + RETURN_MM(); + } + } + zephir_array_fetch_string(&_3, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 592 TSRMLS_CC); + ZEPHIR_CONCAT_VS(return_value, _3, "()"); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { + zephir_fcall_cache_entry *_6 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_3; + HashPosition _2; + zend_bool _0, _1, _7; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *items, *item = NULL, *values = NULL, *separator = NULL, **_4, *_5 = NULL, *_8, *_9; + zval *expression = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - + expression = expression_param; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Db_Index) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + ZEPHIR_INIT_VAR(items); + array_init(items); + ZEPHIR_INIT_VAR(separator); + ZVAL_STRING(separator, ", ", 1); + if (zephir_array_isset_string(expression, SS("separator"))) { + ZEPHIR_OBS_NVAR(separator); + zephir_array_fetch_string(&separator, expression, SL("separator"), PH_NOISY, "phalcon/db/dialect.zep", 606 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(values); + _0 = zephir_array_isset_long_fetch(&values, expression, 0, 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(values); + _0 = zephir_array_isset_string_fetch(&values, expression, SS("value"), 0 TSRMLS_CC); + } + _1 = _0; + if (_1) { + _1 = Z_TYPE_P(values) == IS_ARRAY; + } + if (_1) { + zephir_is_iterable(values, &_3, &_2, 0, 0, "phalcon/db/dialect.zep", 615); + for ( + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) + ) { + ZEPHIR_GET_HVALUE(item, _4); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getsqlexpression", &_6, item, escapeChar); + zephir_check_call_status(); + zephir_array_append(&items, _5, PH_SEPARATE, "phalcon/db/dialect.zep", 612); + } + _7 = zephir_array_isset_string(expression, SS("parentheses")); + if (_7) { + zephir_array_fetch_string(&_8, expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 615 TSRMLS_CC); + _7 = ZEPHIR_IS_FALSE_IDENTICAL(_8); + } + if (_7) { + zephir_fast_join(return_value, separator, items TSRMLS_CC); + RETURN_MM(); + } else { + ZEPHIR_INIT_VAR(_9); + zephir_fast_join(_9, separator, items TSRMLS_CC); + ZEPHIR_CONCAT_SVS(return_value, "(", _9, ")"); + RETURN_MM(); + } + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/db/dialect.zep", 622); + return; - zend_declare_property_null(phalcon_db_index_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_declare_property_null(phalcon_db_index_ce, SL("_columns"), ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll) { - zend_declare_property_null(phalcon_db_index_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *domain = NULL, *_0; + zval *expression = NULL; - zend_class_implements(phalcon_db_index_ce TSRMLS_CC, 1, phalcon_db_indexinterface_ce); - return SUCCESS; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -} + expression = expression_param; -static PHP_METHOD(Phalcon_Db_Index, getName) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - RETURN_MEMBER(this_ptr, "_name"); + ZEPHIR_OBS_VAR(domain); + if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(domain); + ZVAL_NULL(domain); + } + ZEPHIR_INIT_VAR(_0); + ZVAL_STRING(_0, "*", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, _0, domain, escapeChar); + zephir_check_temp_parameter(_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, getColumns) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue) { + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2; + zval *expression = NULL; - RETURN_MEMBER(this_ptr, "_columns"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -} + expression = expression_param; -static PHP_METHOD(Phalcon_Db_Index, getType) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - RETURN_MEMBER(this_ptr, "_type"); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 646 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 647 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue) { - zval *columns = NULL; - zval *name_param = NULL, *columns_param = NULL, *type = NULL; - zval *name = NULL, *_0 = NULL; + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2; + zval *expression = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); - if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + expression = expression_param; - if (likely(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(name, name_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); } else { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); - } - columns = columns_param; - - if (!type) { - type = ZEPHIR_GLOBAL(global_null); + zephir_get_strval(escapeChar, escapeChar_param); } - zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_columns"), columns TSRMLS_CC); - zephir_get_strval(_0, type); - zephir_update_property_this(this_ptr, SL("_type"), _0 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 659 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 660 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, __set_state) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *indexName, *columns, *type = NULL; - zval *data = NULL; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *table = NULL, *tables = NULL, **_2, *_3 = NULL, *_5; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data_param); - - data = data_param; + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_OBS_VAR(indexName); - if (!(zephir_array_isset_string_fetch(&indexName, data, SS("_name"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_name parameter is required", "phalcon/db/index.zep", 71); - return; - } - ZEPHIR_OBS_VAR(columns); - if (!(zephir_array_isset_string_fetch(&columns, data, SS("_columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_columns parameter is required", "phalcon/db/index.zep", 75); - return; - } - ZEPHIR_OBS_VAR(type); - if (!(zephir_array_isset_string_fetch(&type, data, SS("_type"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "", 1); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(tables); + array_init(tables); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 680); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(table, _2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqltable", &_4, table); + zephir_check_call_status(); + zephir_array_append(&tables, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 677); + } + ZEPHIR_INIT_VAR(_5); + zephir_fast_join_str(_5, SL(", "), tables TSRMLS_CC); + ZEPHIR_CPY_WRT(tables, _5); + } else { + ZEPHIR_CPY_WRT(tables, expression); } - object_init_ex(return_value, phalcon_db_index_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, indexName, columns, type); - zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "FROM ", tables); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { + zephir_nts_static zephir_fcall_cache_entry *_12 = NULL; + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _3, _10; + HashTable *_1, *_6; + HashPosition _0, _5; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *join = NULL, *sql, *joinCondition = NULL, *joinTable = NULL, *joinType = NULL, *joinConditionsArray = NULL, **_2, *condition = NULL, **_7, *_8 = NULL, *_9 = NULL, *_11, *_13 = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "", 1); + ZEPHIR_INIT_VAR(joinType); + ZVAL_STRING(joinType, "", 1); -#include -#include + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 729); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(join, _2); + ZEPHIR_OBS_NVAR(joinConditionsArray); + _3 = zephir_array_isset_string_fetch(&joinConditionsArray, join, SS("conditions"), 0 TSRMLS_CC); + if (_3) { + _3 = !(ZEPHIR_IS_EMPTY(joinConditionsArray)); + } + if (_3) { + if (!(zephir_array_isset_long(joinConditionsArray, 0))) { + ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_4, joinConditionsArray, escapeChar); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(joinCondition); + array_init(joinCondition); + zephir_is_iterable(joinConditionsArray, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 714); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HVALUE(condition, _7); + ZEPHIR_CALL_METHOD(&_8, this_ptr, "getsqlexpression", &_4, condition, escapeChar); + zephir_check_call_status(); + zephir_array_append(&joinCondition, _8, PH_SEPARATE, "phalcon/db/dialect.zep", 711); + } + ZEPHIR_INIT_NVAR(_9); + zephir_fast_join_str(_9, SL(" AND "), joinCondition TSRMLS_CC); + ZEPHIR_CPY_WRT(joinCondition, _9); + } + } else { + ZEPHIR_INIT_NVAR(joinCondition); + ZVAL_LONG(joinCondition, 1); + } + ZEPHIR_OBS_NVAR(joinType); + _10 = zephir_array_isset_string_fetch(&joinType, join, SS("type"), 0 TSRMLS_CC); + if (_10) { + _10 = zephir_is_true(joinType); + } + if (_10) { + zephir_concat_self_str(&joinType, SL(" ") TSRMLS_CC); + } + zephir_array_fetch_string(&_11, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 724 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_12, _11, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_13); + ZEPHIR_CONCAT_SVSVSV(_13, " ", joinType, "JOIN ", joinTable, " ON ", joinCondition); + zephir_concat_self(&sql, _13 TSRMLS_CC); + } + RETURN_CCTOR(sql); +} +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere) { -ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) { + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *whereSql = NULL; - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - return SUCCESS; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&whereSql, this_ptr, "getsqlexpression", NULL, expression, escapeChar); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(whereSql, expression); + } + ZEPHIR_CONCAT_SV(return_value, "WHERE ", whereSql); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __construct); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy) { -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *filed = NULL, *fields = NULL, **_2, *_3 = NULL, *_5; -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __set_state); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(fields); + array_init(fields); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 767); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(filed, _2); + if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/db/dialect.zep", 761); + return; + } else { + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpression", &_4, filed, escapeChar); + zephir_check_call_status(); + zephir_array_append(&fields, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 763); + } + } + ZEPHIR_INIT_VAR(_5); + zephir_fast_join_str(_5, SL(", "), fields TSRMLS_CC); + ZEPHIR_CPY_WRT(fields, _5); + } else { + ZEPHIR_CPY_WRT(fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "GROUP BY ", fields); + RETURN_MM(); + +} +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving) { + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *_0 = NULL; -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -#include + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -#include -#include -#include + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, expression, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "HAVING ", _0); + RETURN_MM(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-HAVING expression", "phalcon/db/dialect.zep", 784); + return; + } +} -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + zend_bool _5; + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *filed = NULL, *fields = NULL, *type = NULL, *fieldSql = NULL, **_2, *_3, *_6 = NULL, *_7; - zend_declare_property_null(phalcon_db_profiler_ce, SL("_allProfiles"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - zend_declare_property_null(phalcon_db_profiler_ce, SL("_activeProfile"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(fieldSql); + ZVAL_NULL(fieldSql); - zend_declare_property_long(phalcon_db_profiler_ce, SL("_totalSeconds"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - return SUCCESS; + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(fields); + array_init(fields); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 817); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(filed, _2); + if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/db/dialect.zep", 802); + return; + } else { + zephir_array_fetch_long(&_3, filed, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 804 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_4, _3, escapeChar); + zephir_check_call_status(); + } + ZEPHIR_OBS_NVAR(type); + _5 = zephir_array_isset_long_fetch(&type, filed, 1, 0 TSRMLS_CC); + if (_5) { + _5 = !ZEPHIR_IS_STRING(type, ""); + } + if (_5) { + ZEPHIR_INIT_LNVAR(_6); + ZEPHIR_CONCAT_SV(_6, " ", type); + zephir_concat_self(&fieldSql, _6 TSRMLS_CC); + } + zephir_array_append(&fields, fieldSql, PH_SEPARATE, "phalcon/db/dialect.zep", 814); + } + ZEPHIR_INIT_VAR(_7); + zephir_fast_join_str(_7, SL(", "), fields TSRMLS_CC); + ZEPHIR_CPY_WRT(fields, _7); + } else { + ZEPHIR_CPY_WRT(fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "ORDER BY ", fields); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Profiler, startProfile) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL; + zval *_5; + zend_bool _3; + zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement, *sqlVariables = NULL, *sqlBindTypes = NULL, *activeProfile, *_3; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *sql = NULL, *value, *limit = NULL, *offset = NULL, *_0, *_1, *_4 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement, &sqlVariables, &sqlBindTypes); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - if (!sqlVariables) { - sqlVariables = ZEPHIR_GLOBAL(global_null); - } - if (!sqlBindTypes) { - sqlBindTypes = ZEPHIR_GLOBAL(global_null); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "", 1); + ZEPHIR_INIT_VAR(offset); + ZVAL_NULL(offset); - ZEPHIR_INIT_VAR(activeProfile); - object_init_ex(activeProfile, phalcon_db_profiler_item_ce); - if (zephir_has_constructor(activeProfile TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, activeProfile, "__construct", NULL); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(value); + zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/db/dialect.zep", 832 TSRMLS_CC); + if (zephir_array_isset_string(expression, SS("sql"))) { + ZEPHIR_OBS_NVAR(sql); + zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/db/dialect.zep", 835 TSRMLS_CC); } - ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlstatement", &_0, sqlStatement); + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_OBS_VAR(_0); + zephir_array_fetch_string(&_0, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 840 TSRMLS_CC); + if (Z_TYPE_P(_0) == IS_ARRAY) { + zephir_array_fetch_string(&_1, value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 841 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&limit, this_ptr, "getsqlexpression", &_2, _1); + zephir_check_call_status(); + } else { + ZEPHIR_OBS_NVAR(limit); + zephir_array_fetch_string(&limit, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 843 TSRMLS_CC); + } + ZEPHIR_OBS_NVAR(offset); + _3 = zephir_array_isset_string_fetch(&offset, value, SS("offset"), 0 TSRMLS_CC); + if (_3) { + _3 = Z_TYPE_P(offset) == IS_ARRAY; + } + if (_3) { + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getsqlexpression", &_2, offset); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(offset, _4); + } + } else { + ZEPHIR_CPY_WRT(limit, value); + } + ZEPHIR_INIT_VAR(_5); + zephir_create_array(_5, 2, 0 TSRMLS_CC); + zephir_array_fast_append(_5, limit); + zephir_array_fast_append(_5, offset); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "limit", NULL, sql, _5); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *qualified_param = NULL, *alias_param = NULL, *_0 = NULL; + zval *qualified = NULL, *alias = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &qualified_param, &alias_param); + + if (unlikely(Z_TYPE_P(qualified_param) != IS_STRING && Z_TYPE_P(qualified_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'qualified' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(qualified_param) == IS_STRING)) { + zephir_get_strval(qualified, qualified_param); + } else { + ZEPHIR_INIT_VAR(qualified); + ZVAL_EMPTY_STRING(qualified); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(alias); + ZVAL_EMPTY_STRING(alias); + } else { + zephir_get_strval(alias, alias_param); + } + + + if (!ZEPHIR_IS_STRING(alias, "")) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_1, alias); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, qualified, " AS ", _0); + RETURN_MM(); + } else { + RETURN_CTOR(qualified); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, *_0 = NULL, *_2 = NULL, *_3 = NULL; + zval *table = NULL, *schema = NULL, *alias = NULL, *escapeChar = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &table_param, &schema_param, &alias_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(alias); + ZVAL_EMPTY_STRING(alias); + } else { + zephir_get_strval(alias, alias_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_1, table, escapeChar); + zephir_check_call_status(); + zephir_get_strval(table, _0); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "escape", &_1, schema, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _2, ".", table); + zephir_get_strval(table, _3); + } + if (!ZEPHIR_IS_STRING(alias, "")) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "escape", &_1, alias, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_3); + ZEPHIR_CONCAT_VSV(_3, table, " AS ", _2); + zephir_get_strval(table, _3); + } + RETURN_CTOR(table); + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *domain_param = NULL, *escapeChar_param = NULL; + zval *column = NULL, *domain = NULL, *escapeChar = NULL, *_0; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &column_param, &domain_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(column_param) != IS_STRING && Z_TYPE_P(column_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'column' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(column_param) == IS_STRING)) { + zephir_get_strval(column, column_param); + } else { + ZEPHIR_INIT_VAR(column); + ZVAL_EMPTY_STRING(column); + } + if (!domain_param) { + ZEPHIR_INIT_VAR(domain); + ZVAL_EMPTY_STRING(domain); + } else { + zephir_get_strval(domain, domain_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (!ZEPHIR_IS_STRING(domain, "")) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, domain, ".", column); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", &_1, _0, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", &_1, column, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createView); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropView); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, viewExists); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Index) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + + zend_declare_property_null(phalcon_db_index_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_index_ce, SL("_columns"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_index_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_db_index_ce TSRMLS_CC, 1, phalcon_db_indexinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Db_Index, getName) { + + + RETURN_MEMBER(this_ptr, "_name"); + +} + +static PHP_METHOD(Phalcon_Db_Index, getColumns) { + + + RETURN_MEMBER(this_ptr, "_columns"); + +} + +static PHP_METHOD(Phalcon_Db_Index, getType) { + + + RETURN_MEMBER(this_ptr, "_type"); + +} + +static PHP_METHOD(Phalcon_Db_Index, __construct) { + + zval *columns = NULL; + zval *name_param = NULL, *columns_param = NULL, *type = NULL; + zval *name = NULL, *_0 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type); + + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + columns = columns_param; + + if (!type) { + type = ZEPHIR_GLOBAL(global_null); + } + + + zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_columns"), columns TSRMLS_CC); + zephir_get_strval(_0, type); + zephir_update_property_this(this_ptr, SL("_type"), _0 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Db_Index, __set_state) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *indexName, *columns, *type = NULL; + zval *data = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; + + + + ZEPHIR_OBS_VAR(indexName); + if (!(zephir_array_isset_string_fetch(&indexName, data, SS("_name"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_name parameter is required", "phalcon/db/index.zep", 71); + return; + } + ZEPHIR_OBS_VAR(columns); + if (!(zephir_array_isset_string_fetch(&columns, data, SS("_columns"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_columns parameter is required", "phalcon/db/index.zep", 75); + return; + } + ZEPHIR_OBS_VAR(type); + if (!(zephir_array_isset_string_fetch(&type, data, SS("_type"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "", 1); + } + object_init_ex(return_value, phalcon_db_index_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, indexName, columns, type); + zephir_check_call_status(); + RETURN_MM(); + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __construct); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __set_state); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("_allProfiles"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("_activeProfile"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_long(phalcon_db_profiler_ce, SL("_totalSeconds"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Db_Profiler, startProfile) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement, *sqlVariables = NULL, *sqlBindTypes = NULL, *activeProfile, *_3; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &sqlStatement, &sqlVariables, &sqlBindTypes); + + if (!sqlVariables) { + sqlVariables = ZEPHIR_GLOBAL(global_null); + } + if (!sqlBindTypes) { + sqlBindTypes = ZEPHIR_GLOBAL(global_null); + } + + + ZEPHIR_INIT_VAR(activeProfile); + object_init_ex(activeProfile, phalcon_db_profiler_item_ce); + if (zephir_has_constructor(activeProfile TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, activeProfile, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlstatement", &_0, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(sqlVariables) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlvariables", &_1, sqlVariables); @@ -46375,11 +47237,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *bindParams = NULL, *bindTypes = NULL, *eventsManager = NULL, *pdo = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; + zval *bindParams = NULL; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes = NULL, *eventsManager = NULL, *pdo = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; zval *sqlStatement = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams, &bindTypes); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes); if (unlikely(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be a string") TSRMLS_CC); @@ -46392,8 +47255,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { ZEPHIR_INIT_VAR(sqlStatement); ZVAL_EMPTY_STRING(sqlStatement); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(bindParams); + array_init(bindParams); + } else { + zephir_get_arrval(bindParams, bindParams_param); } if (!bindTypes) { bindTypes = ZEPHIR_GLOBAL(global_null); @@ -46417,7 +47283,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdo"), PH_NOISY_CC); ZEPHIR_CPY_WRT(pdo, _0); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { + if (1 == 1) { ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(statement) == IS_OBJECT) { @@ -46449,11 +47315,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *bindParams = NULL, *bindTypes = NULL, *eventsManager = NULL, *affectedRows = NULL, *pdo = NULL, *newStatement = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; + zval *bindParams = NULL; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes = NULL, *eventsManager = NULL, *affectedRows = NULL, *pdo = NULL, *newStatement = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; zval *sqlStatement = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams, &bindTypes); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes); if (unlikely(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be a string") TSRMLS_CC); @@ -46466,8 +47333,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { ZEPHIR_INIT_VAR(sqlStatement); ZVAL_EMPTY_STRING(sqlStatement); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(bindParams); + array_init(bindParams); + } else { + zephir_get_arrval(bindParams, bindParams_param); } if (!bindTypes) { bindTypes = ZEPHIR_GLOBAL(global_null); @@ -46493,7 +47363,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { ZVAL_LONG(affectedRows, 0); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdo"), PH_NOISY_CC); ZEPHIR_CPY_WRT(pdo, _0); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { + if (1 == 1) { ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(statement) == IS_OBJECT) { @@ -47059,7 +47929,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/mysql.zep", 271); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/mysql.zep", 267); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47069,15 +47939,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 115 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 111 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/mysql.zep", 122)) { + if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/mysql.zep", 118)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 5); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/mysql.zep", 130)) { + if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/mysql.zep", 126)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47087,19 +47957,19 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/mysql.zep", 140)) { + if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/mysql.zep", 136)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/mysql.zep", 148)) { + if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/mysql.zep", 144)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/mysql.zep", 156)) { + if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/mysql.zep", 152)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47109,25 +47979,25 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/mysql.zep", 166)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/mysql.zep", 162)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/mysql.zep", 174)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/mysql.zep", 170)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/mysql.zep", 182)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/mysql.zep", 178)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/mysql.zep", 190)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/mysql.zep", 186)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47142,7 +48012,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/mysql.zep", 207)) { + if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/mysql.zep", 203)) { ZEPHIR_INIT_NVAR(matches); ZVAL_NULL(matches); ZEPHIR_INIT_NVAR(_8); @@ -47162,7 +48032,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { } } } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/mysql.zep", 222)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/mysql.zep", 218)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -47170,30 +48040,30 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 238 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 234 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "PRI")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_11, field, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 245 TSRMLS_CC); + zephir_array_fetch_long(&_11, field, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 241 TSRMLS_CC); if (ZEPHIR_IS_STRING(_11, "NO")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 252 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 248 TSRMLS_CC); if (ZEPHIR_IS_STRING(_12, "auto_increment")) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } ZEPHIR_OBS_NVAR(_13); - zephir_array_fetch_long(&_13, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 255 TSRMLS_CC); if (Z_TYPE_P(_13) != IS_NULL) { - zephir_array_fetch_long(&_14, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 260 TSRMLS_CC); + zephir_array_fetch_long(&_14, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 256 TSRMLS_CC); zephir_array_update_string(&definition, SL("default"), &_14, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 262 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_15, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/mysql.zep", 267); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/mysql.zep", 263); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47276,11 +48146,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { HashTable *_5; HashPosition _4; int ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema = NULL, *columns, *oldColumn = NULL, *field = NULL, *definition = NULL, *columnSize = NULL, *columnPrecision = NULL, *columnScale = NULL, *columnType = NULL, *columnName, *_0 = NULL, *_1, *_2 = NULL, *_3 = NULL, **_6, *_7 = NULL, *_8 = NULL, *_9, *_10; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *columns, *oldColumn = NULL, *field = NULL, *definition = NULL, *columnSize = NULL, *columnPrecision = NULL, *columnScale = NULL, *columnType = NULL, *columnName, *_0 = NULL, *_1, *_2 = NULL, *_3 = NULL, **_6, *_7 = NULL, *_8 = NULL, *_9, *_10; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -47293,8 +48163,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } @@ -47309,7 +48182,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/oracle.zep", 207); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/oracle.zep", 203); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47319,15 +48192,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnSize); - zephir_array_fetch_long(&columnSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 106 TSRMLS_CC); + zephir_array_fetch_long(&columnSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 102 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnPrecision); - zephir_array_fetch_long(&columnPrecision, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 107 TSRMLS_CC); + zephir_array_fetch_long(&columnPrecision, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 103 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnScale); - zephir_array_fetch_long(&columnScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 108 TSRMLS_CC); + zephir_array_fetch_long(&columnScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 104 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 109 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 105 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("NUMBER"), "phalcon/db/adapter/pdo/oracle.zep", 116)) { + if (zephir_memnstr_str(columnType, SL("NUMBER"), "phalcon/db/adapter/pdo/oracle.zep", 112)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 3); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47339,7 +48212,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("INTEGER"), "phalcon/db/adapter/pdo/oracle.zep", 125)) { + if (zephir_memnstr_str(columnType, SL("INTEGER"), "phalcon/db/adapter/pdo/oracle.zep", 121)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47350,14 +48223,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("VARCHAR2"), "phalcon/db/adapter/pdo/oracle.zep", 133)) { + if (zephir_memnstr_str(columnType, SL("VARCHAR2"), "phalcon/db/adapter/pdo/oracle.zep", 129)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &columnSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("FLOAT"), "phalcon/db/adapter/pdo/oracle.zep", 139)) { + if (zephir_memnstr_str(columnType, SL("FLOAT"), "phalcon/db/adapter/pdo/oracle.zep", 135)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47369,31 +48242,31 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("TIMESTAMP"), "phalcon/db/adapter/pdo/oracle.zep", 148)) { + if (zephir_memnstr_str(columnType, SL("TIMESTAMP"), "phalcon/db/adapter/pdo/oracle.zep", 144)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("RAW"), "phalcon/db/adapter/pdo/oracle.zep", 153)) { + if (zephir_memnstr_str(columnType, SL("RAW"), "phalcon/db/adapter/pdo/oracle.zep", 149)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("BLOB"), "phalcon/db/adapter/pdo/oracle.zep", 158)) { + if (zephir_memnstr_str(columnType, SL("BLOB"), "phalcon/db/adapter/pdo/oracle.zep", 154)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("CLOB"), "phalcon/db/adapter/pdo/oracle.zep", 163)) { + if (zephir_memnstr_str(columnType, SL("CLOB"), "phalcon/db/adapter/pdo/oracle.zep", 159)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("CHAR"), "phalcon/db/adapter/pdo/oracle.zep", 168)) { + if (zephir_memnstr_str(columnType, SL("CHAR"), "phalcon/db/adapter/pdo/oracle.zep", 164)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47410,20 +48283,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_9, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 187 TSRMLS_CC); + zephir_array_fetch_long(&_9, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 183 TSRMLS_CC); if (ZEPHIR_IS_STRING(_9, "P")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 194 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 190 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "N")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 198 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 194 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8); object_init_ex(_8, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_11, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/oracle.zep", 203); + zephir_array_append(&columns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/oracle.zep", 199); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47433,13 +48306,17 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, lastInsertId) { int ZEPHIR_LAST_CALL_STATUS; - zval *sequenceName = NULL, *_0 = NULL, *_1, *_2, *_3; + zval *sequenceName_param = NULL, *_0 = NULL, *_2, *_3; + zval *sequenceName = NULL, *_1; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &sequenceName); + zephir_fetch_params(1, 0, 1, &sequenceName_param); - if (!sequenceName) { - sequenceName = ZEPHIR_GLOBAL(global_null); + if (!sequenceName_param) { + ZEPHIR_INIT_VAR(sequenceName); + ZVAL_EMPTY_STRING(sequenceName); + } else { + zephir_get_strval(sequenceName, sequenceName_param); } @@ -47449,7 +48326,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, lastInsertId) { ZVAL_LONG(_2, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _1, _2); zephir_check_call_status(); - zephir_array_fetch_long(&_3, _0, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 230 TSRMLS_CC); + zephir_array_fetch_long(&_3, _0, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 223 TSRMLS_CC); RETURN_CTOR(_3); } @@ -47598,7 +48475,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/postgresql.zep", 295); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/postgresql.zep", 291); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47608,15 +48485,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 119 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 115 TSRMLS_CC); ZEPHIR_OBS_NVAR(charSize); - zephir_array_fetch_long(&charSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 120 TSRMLS_CC); + zephir_array_fetch_long(&charSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 116 TSRMLS_CC); ZEPHIR_OBS_NVAR(numericSize); - zephir_array_fetch_long(&numericSize, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 121 TSRMLS_CC); + zephir_array_fetch_long(&numericSize, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 117 TSRMLS_CC); ZEPHIR_OBS_NVAR(numericScale); - zephir_array_fetch_long(&numericScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 122 TSRMLS_CC); + zephir_array_fetch_long(&numericScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 118 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("smallint(1)"), "phalcon/db/adapter/pdo/postgresql.zep", 129)) { + if (zephir_memnstr_str(columnType, SL("smallint(1)"), "phalcon/db/adapter/pdo/postgresql.zep", 125)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 8); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47625,7 +48502,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/postgresql.zep", 138)) { + if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/postgresql.zep", 134)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47636,14 +48513,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("varying"), "phalcon/db/adapter/pdo/postgresql.zep", 149)) { + if (zephir_memnstr_str(columnType, SL("varying"), "phalcon/db/adapter/pdo/postgresql.zep", 145)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/postgresql.zep", 158)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/postgresql.zep", 154)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47652,7 +48529,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("size"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("numeric"), "phalcon/db/adapter/pdo/postgresql.zep", 167)) { + if (zephir_memnstr_str(columnType, SL("numeric"), "phalcon/db/adapter/pdo/postgresql.zep", 163)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47664,14 +48541,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/postgresql.zep", 179)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/postgresql.zep", 175)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/postgresql.zep", 188)) { + if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/postgresql.zep", 184)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47680,14 +48557,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("size"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/postgresql.zep", 197)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/postgresql.zep", 193)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/postgresql.zep", 206)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/postgresql.zep", 202)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47698,7 +48575,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("bool"), "phalcon/db/adapter/pdo/postgresql.zep", 217)) { + if (zephir_memnstr_str(columnType, SL("bool"), "phalcon/db/adapter/pdo/postgresql.zep", 213)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 8); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47710,7 +48587,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("uuid"), "phalcon/db/adapter/pdo/postgresql.zep", 227)) { + if (zephir_memnstr_str(columnType, SL("uuid"), "phalcon/db/adapter/pdo/postgresql.zep", 223)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47724,7 +48601,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/postgresql.zep", 243)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/postgresql.zep", 239)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -47732,22 +48609,22 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 255 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "PRI")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_11, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&_11, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 262 TSRMLS_CC); if (ZEPHIR_IS_STRING(_11, "NO")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 7, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 273 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 7, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 269 TSRMLS_CC); if (ZEPHIR_IS_STRING(_12, "auto_increment")) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } ZEPHIR_OBS_NVAR(_13); - zephir_array_fetch_long(&_13, field, 9, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 280 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 9, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 276 TSRMLS_CC); if (Z_TYPE_P(_13) != IS_NULL) { - zephir_array_fetch_long(&_14, field, 9, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 281 TSRMLS_CC); + zephir_array_fetch_long(&_14, field, 9, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 277 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8); ZVAL_STRING(_8, "/^'|'?::[[:alnum:][:space:]]+$/", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_9); @@ -47757,7 +48634,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_check_temp_parameter(_9); zephir_check_call_status(); zephir_array_update_string(&definition, SL("default"), &_15, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_17, definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 282 TSRMLS_CC); + zephir_array_fetch_string(&_17, definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 278 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_18); ZVAL_STRING(&_18, "null", 0); ZEPHIR_CALL_FUNCTION(&_19, "strcasecmp", &_20, _17, &_18); @@ -47766,12 +48643,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("default"), &ZEPHIR_GLOBAL(global_null), PH_COPY | PH_SEPARATE); } } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 290 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 286 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_21, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/postgresql.zep", 291); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/postgresql.zep", 287); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47857,12 +48734,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, connect) { ZEPHIR_OBS_NVAR(descriptor); zephir_read_property_this(&descriptor, this_ptr, SL("_descriptor"), PH_NOISY_CC); } - if (!(zephir_array_isset_string(descriptor, SS("dbname")))) { + ZEPHIR_OBS_VAR(dbname); + if (!(zephir_array_isset_string_fetch(&dbname, descriptor, SS("dbname"), 0 TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "dbname must be specified", "phalcon/db/adapter/pdo/sqlite.zep", 69); return; } - ZEPHIR_OBS_VAR(dbname); - zephir_array_isset_string_fetch(&dbname, descriptor, SS("dbname"), 0 TSRMLS_CC); zephir_array_update_string(&descriptor, SL("dsn"), &dbname, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_sqlite_ce, this_ptr, "connect", &_0, descriptor); zephir_check_call_status(); @@ -47906,7 +48782,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 286); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 280); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47916,9 +48792,9 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 113 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 107 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("tinyint(1)"), "phalcon/db/adapter/pdo/sqlite.zep", 120)) { + if (zephir_memnstr_str(columnType, SL("tinyint(1)"), "phalcon/db/adapter/pdo/sqlite.zep", 114)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 8); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47929,9 +48805,9 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZVAL_STRING(columnType, "boolean", 1); break; } - _8 = zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/sqlite.zep", 130); + _8 = zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/sqlite.zep", 124); if (!(_8)) { - _8 = zephir_memnstr_str(columnType, SL("INT"), "phalcon/db/adapter/pdo/sqlite.zep", 130); + _8 = zephir_memnstr_str(columnType, SL("INT"), "phalcon/db/adapter/pdo/sqlite.zep", 124); } if (_8) { ZEPHIR_INIT_NVAR(_7); @@ -47941,31 +48817,31 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZEPHIR_INIT_NVAR(_9); ZVAL_LONG(_9, 1); zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 136 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 130 TSRMLS_CC); if (zephir_is_true(_10)) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } break; } - if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/sqlite.zep", 145)) { + if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/sqlite.zep", 139)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/sqlite.zep", 153)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/sqlite.zep", 147)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/sqlite.zep", 161)) { + if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/sqlite.zep", 155)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/sqlite.zep", 169)) { + if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/sqlite.zep", 163)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47975,25 +48851,25 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/sqlite.zep", 179)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/sqlite.zep", 173)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/sqlite.zep", 187)) { + if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/sqlite.zep", 181)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/sqlite.zep", 195)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/sqlite.zep", 189)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/sqlite.zep", 203)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/sqlite.zep", 197)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -48003,7 +48879,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/sqlite.zep", 213)) { + if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/sqlite.zep", 207)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -48014,7 +48890,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/sqlite.zep", 228)) { + if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/sqlite.zep", 222)) { ZEPHIR_INIT_NVAR(matches); ZVAL_NULL(matches); ZEPHIR_INIT_NVAR(_9); @@ -48034,7 +48910,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { } } } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/sqlite.zep", 243)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/sqlite.zep", 237)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -48042,26 +48918,26 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 253 TSRMLS_CC); if (zephir_is_true(_10)) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 260 TSRMLS_CC); if (zephir_is_true(_12)) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_13, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 274 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 268 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_14); ZVAL_STRING(&_14, "null", 0); ZEPHIR_CALL_FUNCTION(&_15, "strcasecmp", &_16, _13, &_14); zephir_check_call_status(); _8 = !ZEPHIR_IS_LONG(_15, 0); if (_8) { - zephir_array_fetch_long(&_17, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 274 TSRMLS_CC); + zephir_array_fetch_long(&_17, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 268 TSRMLS_CC); _8 = !ZEPHIR_IS_STRING(_17, ""); } if (_8) { - zephir_array_fetch_long(&_18, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 275 TSRMLS_CC); + zephir_array_fetch_long(&_18, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 269 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); ZVAL_STRING(_7, "/^'|'$/", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_9); @@ -48072,12 +48948,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_check_call_status(); zephir_array_update_string(&definition, SL("default"), &_19, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 1, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 281 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 1, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 275 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_21, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 282); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 276); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -48109,20 +48985,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 318); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 312); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(index, _6); ZEPHIR_OBS_NVAR(keyName); - zephir_array_fetch_long(&keyName, index, 1, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 304 TSRMLS_CC); + zephir_array_fetch_long(&keyName, index, 1, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 298 TSRMLS_CC); if (!(zephir_array_isset(indexes, keyName))) { ZEPHIR_INIT_NVAR(columns); array_init(columns); } else { ZEPHIR_OBS_NVAR(columns); - zephir_array_fetch(&columns, indexes, keyName, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 308 TSRMLS_CC); + zephir_array_fetch(&columns, indexes, keyName, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 302 TSRMLS_CC); } _8 = zephir_fetch_nproperty_this(this_ptr, SL("_dialect"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(&_9, _8, "describeindex", NULL, keyName); @@ -48131,20 +49007,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_7, this_ptr, "fetchall", &_10, _9, _3); zephir_check_call_status(); - zephir_is_iterable(_7, &_12, &_11, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 315); + zephir_is_iterable(_7, &_12, &_11, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 309); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) ) { ZEPHIR_GET_HVALUE(describe_index, _13); - zephir_array_fetch_long(&_14, describe_index, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 312 TSRMLS_CC); - zephir_array_append(&columns, _14, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 312); + zephir_array_fetch_long(&_14, describe_index, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 306 TSRMLS_CC); + zephir_array_append(&columns, _14, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 306); } zephir_array_update_zval(&indexes, keyName, &columns, PH_COPY | PH_SEPARATE); } ZEPHIR_INIT_VAR(indexObjects); array_init(indexObjects); - zephir_is_iterable(indexes, &_16, &_15, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 323); + zephir_is_iterable(indexes, &_16, &_15, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 317); for ( ; zephir_hash_get_current_data_ex(_16, (void**) &_17, &_15) == SUCCESS ; zephir_hash_move_forward_ex(_16, &_15) @@ -48187,7 +49063,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 368); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 362); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -48200,29 +49076,29 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZEPHIR_INIT_NVAR(referencedSchema); ZVAL_NULL(referencedSchema); ZEPHIR_OBS_NVAR(referencedTable); - zephir_array_fetch_long(&referencedTable, reference, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); + zephir_array_fetch_long(&referencedTable, reference, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 341 TSRMLS_CC); ZEPHIR_INIT_NVAR(columns); array_init(columns); ZEPHIR_INIT_NVAR(referencedColumns); array_init(referencedColumns); } else { - zephir_array_fetch(&_7, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); + zephir_array_fetch(&_7, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 345 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedSchema); - zephir_array_fetch_string(&referencedSchema, _7, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); - zephir_array_fetch(&_8, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); + zephir_array_fetch_string(&referencedSchema, _7, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 345 TSRMLS_CC); + zephir_array_fetch(&_8, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 346 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedTable); - zephir_array_fetch_string(&referencedTable, _8, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); - zephir_array_fetch(&_9, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 353 TSRMLS_CC); + zephir_array_fetch_string(&referencedTable, _8, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 346 TSRMLS_CC); + zephir_array_fetch(&_9, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); ZEPHIR_OBS_NVAR(columns); - zephir_array_fetch_string(&columns, _9, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 353 TSRMLS_CC); - zephir_array_fetch(&_10, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 354 TSRMLS_CC); + zephir_array_fetch_string(&columns, _9, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); + zephir_array_fetch(&_10, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 348 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedColumns); - zephir_array_fetch_string(&referencedColumns, _10, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 354 TSRMLS_CC); + zephir_array_fetch_string(&referencedColumns, _10, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 348 TSRMLS_CC); } - zephir_array_fetch_long(&_7, reference, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 357 TSRMLS_CC); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 357); - zephir_array_fetch_long(&_8, reference, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 358 TSRMLS_CC); - zephir_array_append(&referencedColumns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 358); + zephir_array_fetch_long(&_7, reference, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 351); + zephir_array_fetch_long(&_8, reference, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); + zephir_array_append(&referencedColumns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 352); ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 4, 0 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); @@ -48233,7 +49109,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { } ZEPHIR_INIT_VAR(referenceObjects); array_init(referenceObjects); - zephir_is_iterable(references, &_13, &_12, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 378); + zephir_is_iterable(references, &_13, &_12, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 372); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -48245,16 +49121,16 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 4, 0 TSRMLS_CC); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 371 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 365 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedSchema"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 372 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 366 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedTable"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 373 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 367 TSRMLS_CC); zephir_array_update_string(&_11, SL("columns"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 375 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 369 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedColumns"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_16, name, _11); zephir_check_call_status(); @@ -48291,7 +49167,6 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_MySQL) { zend_declare_property_string(phalcon_db_dialect_mysql_ce, SL("_escapeChar"), "`", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_mysql_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } @@ -48660,7 +49535,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropColumn) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } - zephir_get_strval(columnName, columnName_param); + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } ZEPHIR_INIT_VAR(sql); @@ -48816,8 +49701,28 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addPrimaryKey) { ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zephir_get_strval(tableName, tableName_param); - zephir_get_strval(schemaName, schemaName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } ZEPHIR_INIT_VAR(sql); @@ -48976,11 +49881,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addForeignKey) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName, *sql = NULL; - zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, *sql = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49004,6 +49909,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } ZEPHIR_INIT_VAR(sql); @@ -49021,58 +49937,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { } -static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions) { - - zval *definition, *options, *engine, *autoIncrement, *tableCollation, *collationParts, *tableOptions, *_0 = NULL, *_1, *_2; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition); - - - - ZEPHIR_OBS_VAR(options); - if (zephir_array_isset_string_fetch(&options, definition, SS("options"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(tableOptions); - array_init(tableOptions); - ZEPHIR_OBS_VAR(engine); - if (zephir_array_isset_string_fetch(&engine, options, SS("ENGINE"), 0 TSRMLS_CC)) { - if (zephir_is_true(engine)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SV(_0, "ENGINE=", engine); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 382); - } - } - ZEPHIR_OBS_VAR(autoIncrement); - if (zephir_array_isset_string_fetch(&autoIncrement, options, SS("AUTO_INCREMENT"), 0 TSRMLS_CC)) { - if (zephir_is_true(autoIncrement)) { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SV(_0, "AUTO_INCREMENT=", autoIncrement); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 391); - } - } - ZEPHIR_OBS_VAR(tableCollation); - if (zephir_array_isset_string_fetch(&tableCollation, options, SS("TABLE_COLLATION"), 0 TSRMLS_CC)) { - if (zephir_is_true(tableCollation)) { - ZEPHIR_INIT_VAR(collationParts); - zephir_fast_explode_str(collationParts, SL("_"), tableCollation, LONG_MAX TSRMLS_CC); - zephir_array_fetch_long(&_1, collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/mysql.zep", 401 TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SV(_0, "DEFAULT CHARSET=", _1); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 401); - ZEPHIR_INIT_VAR(_2); - ZEPHIR_CONCAT_SV(_2, "COLLATE=", tableCollation); - zephir_array_append(&tableOptions, _2, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 402); - } - } - if (zephir_fast_count_int(tableOptions TSRMLS_CC)) { - zephir_fast_join_str(return_value, SL(" "), tableOptions TSRMLS_CC); - RETURN_MM(); - } - } - RETURN_MM_STRING("", 1); - -} - static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { zephir_nts_static zephir_fcall_cache_entry *_9 = NULL, *_14 = NULL; @@ -49115,7 +49979,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect/mysql.zep", 425); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect/mysql.zep", 368); return; } ZEPHIR_INIT_VAR(table); @@ -49143,7 +50007,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { } ZEPHIR_INIT_VAR(createLines); array_init(createLines); - zephir_is_iterable(columns, &_2, &_1, 0, 0, "phalcon/db/dialect/mysql.zep", 488); + zephir_is_iterable(columns, &_2, &_1, 0, 0, "phalcon/db/dialect/mysql.zep", 431); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -49181,11 +50045,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { if (zephir_is_true(_8)) { zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY") TSRMLS_CC); } - zephir_array_append(&createLines, columnLine, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 482); + zephir_array_append(&createLines, columnLine, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 425); } ZEPHIR_OBS_VAR(indexes); if (zephir_array_isset_string_fetch(&indexes, definition, SS("indexes"), 0 TSRMLS_CC)) { - zephir_is_iterable(indexes, &_12, &_11, 0, 0, "phalcon/db/dialect/mysql.zep", 510); + zephir_is_iterable(indexes, &_12, &_11, 0, 0, "phalcon/db/dialect/mysql.zep", 453); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -49218,12 +50082,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_CONCAT_SVSVS(indexSql, "KEY `", indexName, "` (", _15, ")"); } } - zephir_array_append(&createLines, indexSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 508); + zephir_array_append(&createLines, indexSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 451); } } ZEPHIR_OBS_VAR(references); if (zephir_array_isset_string_fetch(&references, definition, SS("references"), 0 TSRMLS_CC)) { - zephir_is_iterable(references, &_18, &_17, 0, 0, "phalcon/db/dialect/mysql.zep", 532); + zephir_is_iterable(references, &_18, &_17, 0, 0, "phalcon/db/dialect/mysql.zep", 475); for ( ; zephir_hash_get_current_data_ex(_18, (void**) &_19, &_17) == SUCCESS ; zephir_hash_move_forward_ex(_18, &_17) @@ -49257,7 +50121,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_CONCAT_SV(_21, " ON UPDATE ", onUpdate); zephir_concat_self(&referenceSql, _21 TSRMLS_CC); } - zephir_array_append(&createLines, referenceSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 530); + zephir_array_append(&createLines, referenceSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 473); } } ZEPHIR_INIT_VAR(_22); @@ -49278,11 +50142,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists = NULL, *sql, *table = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *table = NULL; zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49295,19 +50160,21 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } @@ -49322,7 +50189,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { ZEPHIR_CPY_WRT(table, _0); } ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { + if (ifExists) { ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); } else { ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); @@ -49333,11 +50200,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView) { - zval *viewName_param = NULL, *definition, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql; zval *viewName = NULL, *schemaName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName_param, &definition, &schemaName_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49350,22 +50218,19 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + definition = definition_param; - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } ZEPHIR_OBS_VAR(viewSql); if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/mysql.zep", 582); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/mysql.zep", 515); return; } ZEPHIR_INIT_VAR(view); @@ -49390,7 +50255,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &schemaName_param, &ifExists_param); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49403,21 +50268,21 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } if (!ifExists_param) { ifExists = 1; } else { - ifExists = zephir_get_boolval(ifExists_param); + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } @@ -49440,11 +50305,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { - zval *tableName_param = NULL, *schemaName = NULL; - zval *tableName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49457,12 +50322,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { + if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`= '", tableName, "' AND `TABLE_SCHEMA` = '", schemaName, "'"); RETURN_MM(); } @@ -49473,11 +50341,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { - zval *viewName_param = NULL, *schemaName = NULL; - zval *viewName = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49490,12 +50358,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { + if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`= '", viewName, "' AND `TABLE_SCHEMA`='", schemaName, "'"); RETURN_MM(); } @@ -49506,11 +50377,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeColumns) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49523,12 +50394,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_SVSVS(return_value, "DESCRIBE `", schema, "`.`", table, "`"); RETURN_MM(); } @@ -49549,17 +50423,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listTables) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } } @@ -49607,11 +50471,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listViews) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49624,12 +50488,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_SVSVS(return_value, "SHOW INDEXES FROM `", schema, "`.`", table, "`"); RETURN_MM(); } @@ -49640,11 +50507,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { - zval *table_param = NULL, *schema = NULL, *sql, *_0; - zval *table = NULL, *_1; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49657,21 +50524,24 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } ZEPHIR_INIT_VAR(sql); ZVAL_STRING(sql, "SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_SCHEMA,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL AND ", 1); - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_INIT_VAR(_0); ZEPHIR_CONCAT_SVSVS(_0, "CONSTRAINT_SCHEMA = '", schema, "' AND TABLE_NAME = '", table, "'"); zephir_concat_self(&sql, _0 TSRMLS_CC); } else { - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_SVS(_1, "TABLE_NAME = '", table, "'"); - zephir_concat_self(&sql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "TABLE_NAME = '", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); } RETURN_CCTOR(sql); @@ -49679,11 +50549,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { - zval *table_param = NULL, *schema = NULL, *sql; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49696,14 +50566,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } ZEPHIR_INIT_VAR(sql); ZVAL_STRING(sql, "SELECT TABLES.TABLE_TYPE AS table_type,TABLES.AUTO_INCREMENT AS auto_increment,TABLES.ENGINE AS engine,TABLES.TABLE_COLLATION AS table_collation FROM INFORMATION_SCHEMA.TABLES WHERE ", 1); - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_VSVSVS(return_value, sql, "TABLES.TABLE_SCHEMA = '", schema, "' AND TABLES.TABLE_NAME = '", table, "'"); RETURN_MM(); } @@ -49712,6 +50585,61 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { } +static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions) { + + zval *definition_param = NULL, *options, *engine, *autoIncrement, *tableCollation, *collationParts, *tableOptions, *_0 = NULL, *_1, *_2; + zval *definition = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &definition_param); + + definition = definition_param; + + + + ZEPHIR_OBS_VAR(options); + if (zephir_array_isset_string_fetch(&options, definition, SS("options"), 0 TSRMLS_CC)) { + ZEPHIR_INIT_VAR(tableOptions); + array_init(tableOptions); + ZEPHIR_OBS_VAR(engine); + if (zephir_array_isset_string_fetch(&engine, options, SS("ENGINE"), 0 TSRMLS_CC)) { + if (zephir_is_true(engine)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SV(_0, "ENGINE=", engine); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 671); + } + } + ZEPHIR_OBS_VAR(autoIncrement); + if (zephir_array_isset_string_fetch(&autoIncrement, options, SS("AUTO_INCREMENT"), 0 TSRMLS_CC)) { + if (zephir_is_true(autoIncrement)) { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SV(_0, "AUTO_INCREMENT=", autoIncrement); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 680); + } + } + ZEPHIR_OBS_VAR(tableCollation); + if (zephir_array_isset_string_fetch(&tableCollation, options, SS("TABLE_COLLATION"), 0 TSRMLS_CC)) { + if (zephir_is_true(tableCollation)) { + ZEPHIR_INIT_VAR(collationParts); + zephir_fast_explode_str(collationParts, SL("_"), tableCollation, LONG_MAX TSRMLS_CC); + zephir_array_fetch_long(&_1, collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/mysql.zep", 690 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SV(_0, "DEFAULT CHARSET=", _1); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 690); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SV(_2, "COLLATE=", tableCollation); + zephir_array_append(&tableOptions, _2, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 691); + } + } + if (zephir_fast_count_int(tableOptions TSRMLS_CC)) { + zephir_fast_join_str(return_value, SL(" "), tableOptions TSRMLS_CC); + RETURN_MM(); + } + } + RETURN_MM_STRING("", 1); + +} + @@ -49728,7 +50656,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Oracle, phalcon, db_dialect_oracle, phalcon_db_dialect_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Oracle, phalcon, db_dialect_oracle, phalcon_db_dialect_ce, phalcon_db_dialect_oracle_method_entry, 0); zend_declare_property_string(phalcon_db_dialect_oracle_ce, SL("_escapeChar"), "", ZEND_ACC_PROTECTED TSRMLS_CC); @@ -49736,550 +50664,1038 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle) { } +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, limit) { + int limit, offset = 0; + zval *sqlQuery_param = NULL, *number, *_0 = NULL, *_1, _2 = zval_used_for_init, *_3, _4 = zval_used_for_init, _6; + zval *sqlQuery = NULL, *_5, *_7; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) { + if (unlikely(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); + if (likely(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(sqlQuery); + ZVAL_EMPTY_STRING(sqlQuery); + } - zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_postgresql_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); - return SUCCESS; + if (Z_TYPE_P(number) == IS_ARRAY) { + if (zephir_array_isset_long(number, 1)) { + ZEPHIR_INIT_VAR(_0); + zephir_array_fetch_long(&_1, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect/oracle.zep", 51 TSRMLS_CC); + ZEPHIR_SINIT_VAR(_2); + ZVAL_STRING(&_2, "'", 0); + zephir_fast_trim(_0, _1, &_2, ZEPHIR_TRIM_BOTH TSRMLS_CC); + offset = zephir_get_intval(_0); + } + ZEPHIR_INIT_NVAR(_0); + zephir_array_fetch_long(&_1, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/oracle.zep", 54 TSRMLS_CC); + ZEPHIR_SINIT_NVAR(_2); + ZVAL_STRING(&_2, "'", 0); + zephir_fast_trim(_0, _1, &_2, ZEPHIR_TRIM_BOTH TSRMLS_CC); + limit = (zephir_get_intval(_0) + offset); + } else { + ZEPHIR_INIT_VAR(_3); + ZEPHIR_SINIT_VAR(_4); + ZVAL_STRING(&_4, "'", 0); + zephir_fast_trim(_3, number, &_4, ZEPHIR_TRIM_BOTH TSRMLS_CC); + limit = zephir_get_intval(_3); + } + ZEPHIR_SINIT_NVAR(_4); + ZVAL_LONG(&_4, limit); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SVSVS(_5, "SELECT * FROM (SELECT Z1.*, ROWNUM PHALCON_RN FROM (", sqlQuery, ") Z1 WHERE ROWNUM <= ", &_4, ")"); + ZEPHIR_CPY_WRT(sqlQuery, _5); + if (offset != 0) { + ZEPHIR_SINIT_VAR(_6); + ZVAL_LONG(&_6, offset); + ZEPHIR_INIT_VAR(_7); + ZEPHIR_CONCAT_SV(_7, " WHERE PHALCON_RN >= ", &_6); + zephir_concat_self(&sqlQuery, _7 TSRMLS_CC); + } + RETURN_CTOR(sqlQuery); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, getColumnDefinition) { - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; - HashTable *_3; - HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *column, *size = NULL, *columnType = NULL, *columnSql, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *value = NULL, *valueSql, **_4, _5 = zval_used_for_init, _7 = zval_used_for_init, *_8, *_9 = NULL, *_10 = NULL; + zval *column, *columnSql = NULL, *size = NULL, *scale = NULL, *type = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); + ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL); + ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(columnSql); - ZVAL_STRING(columnSql, "", 1); - if (Z_TYPE_P(columnType) == IS_STRING) { - zephir_concat_self(&columnSql, columnType TSRMLS_CC); - ZEPHIR_CALL_METHOD(&columnType, column, "gettypereference", NULL); - zephir_check_call_status(); - } do { - if (ZEPHIR_IS_LONG(columnType, 0)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 0)) { + ZEPHIR_INIT_VAR(columnSql); + ZVAL_STRING(columnSql, "INTEGER", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 1)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 1)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "DATE", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 2)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING") TSRMLS_CC); - } - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + if (ZEPHIR_IS_LONG(type, 2)) { + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVS(columnSql, "VARCHAR2(", size, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 3)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL); + if (ZEPHIR_IS_LONG(type, 3)) { + ZEPHIR_CALL_METHOD(&scale, column, "getscale", NULL); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "(", size, ",", _1, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVSVS(columnSql, "NUMBER(", size, ",", scale, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 4)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 4)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TIMESTAMP", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 5)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); - } - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + if (ZEPHIR_IS_LONG(type, 5)) { + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVS(columnSql, "CHAR(", size, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 6)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 6)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TEXT", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 7)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 7)) { + ZEPHIR_CALL_METHOD(&scale, column, "getscale", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVSVS(columnSql, "FLOAT(", size, ",", scale, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 8)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("SMALLINT(1)") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 8)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TINYINT(1)", 1); break; } - if (ZEPHIR_IS_EMPTY(columnSql)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized PostgreSQL data type", "phalcon/db/dialect/postgresql.zep", 117); - return; - } - ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(typeValues))) { - if (Z_TYPE_P(typeValues) == IS_ARRAY) { - ZEPHIR_INIT_VAR(valueSql); - ZVAL_STRING(valueSql, "", 1); - zephir_is_iterable(typeValues, &_3, &_2, 0, 0, "phalcon/db/dialect/postgresql.zep", 128); - for ( - ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS - ; zephir_hash_move_forward_ex(_3, &_2) - ) { - ZEPHIR_GET_HVALUE(value, _4); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_1, "addcslashes", &_6, value, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "\"", _1, "\", "); - zephir_concat_self(&valueSql, _0 TSRMLS_CC); - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, 0); - ZEPHIR_SINIT_VAR(_7); - ZVAL_LONG(&_7, -2); - ZEPHIR_INIT_VAR(_8); - zephir_substr(_8, valueSql, 0 , -2 , 0); - ZEPHIR_INIT_VAR(_9); - ZEPHIR_CONCAT_SVS(_9, "(", _8, ")"); - zephir_concat_self(&columnSql, _9 TSRMLS_CC); - } else { - ZEPHIR_SINIT_NVAR(_7); - ZVAL_STRING(&_7, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_10, "addcslashes", &_6, typeValues, &_7); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SVS(_9, "(\"", _10, "\")"); - zephir_concat_self(&columnSql, _9 TSRMLS_CC); - } - } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized Oracle data type", "phalcon/db/dialect/oracle.zep", 120); + return; } while(0); RETURN_CCTOR(columnSql); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { - - zval *tableName, *schemaName, *column; - - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &column); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 148); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { - - zval *tableName, *schemaName, *column; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &column); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 161); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 131); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { - - zval *tableName, *schemaName, *columnName; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, modifyColumn) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &columnName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 174); - return; - -} + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - zval *tableName, *schemaName, *index; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &index); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 187); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 139); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { - - zval *tableName, *schemaName, *indexName; - - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &indexName); - - +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropColumn) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 200); - return; - -} + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - zval *tableName, *schemaName, *index; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &index); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + zephir_get_strval(columnName, columnName_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 213); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 147); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { - - zval *tableName, *schemaName; - - zephir_fetch_params(0, 2, 0, &tableName, &schemaName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 225); - return; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addIndex) { -} + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zval *tableName, *schemaName, *reference; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &reference); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 238); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 155); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { - - zval *tableName, *schemaName, *referenceName; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropIndex) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &referenceName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 251); - return; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, _getTableOptions) { + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zval *definition; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 1, 0, &definition); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(indexName); + ZVAL_EMPTY_STRING(indexName); + } - array_init(return_value); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 164); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { - - zval *definition = NULL; - zval *tableName, *schemaName, *definition_param = NULL; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addPrimaryKey) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &definition_param); + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; - definition = definition_param; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + zephir_get_strval(tableName, tableName_param); + zephir_get_strval(schemaName, schemaName_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 275); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 172); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropPrimaryKey) { - zval *tableName, *schemaName, *ifExists = NULL, *table = NULL, *sql; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName, &schemaName, &ifExists); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(table); - ZEPHIR_CONCAT_VSV(table, schemaName, ".", tableName); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(table, tableName); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); } else { - ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - RETURN_CCTOR(sql); + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 180); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addForeignKey) { - zval *viewName, *definition, *schemaName, *viewSql, *view = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName, &definition, &schemaName); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_OBS_VAR(viewSql); - if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/postgresql.zep", 316); - return; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(view); - ZEPHIR_CONCAT_VSV(view, viewName, ".", schemaName); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); } else { - ZEPHIR_CPY_WRT(view, viewName); + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); - RETURN_MM(); + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 188); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropForeignKey) { - zval *viewName, *schemaName, *ifExists = NULL, *view = NULL, *sql; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName, &schemaName, &ifExists); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(view); - ZEPHIR_CONCAT_VSV(view, viewName, ".", schemaName); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(view, viewName); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SV(sql, "DROP VIEW IF EXISTS ", view); - } else { - ZEPHIR_CONCAT_SV(sql, "DROP VIEW ", view); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - RETURN_CCTOR(sql); - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { - - zval *tableName, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &tableName, &schemaName); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", schemaName, "' AND table_name='", tableName, "'"); - return; - } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='", tableName, "'"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 196); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createTable) { - zval *viewName, *schemaName = NULL; + zval *definition = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &viewName, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "' AND schemaname='", schemaName, "'"); - return; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "'"); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { - - zval *table, *schema = NULL; - - zephir_fetch_params(0, 1, 1, &table, &schema); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } + definition = definition_param; - if (zephir_is_true(schema)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='", schema, "' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); - return; - } - ZEPHIR_CONCAT_SVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 204); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropTable) { - zval *schemaName = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *table = NULL, *_0 = NULL, *_1 = NULL, *_4 = NULL, *_5 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 0, 1, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", schemaName, "' ORDER BY table_name"); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_text_ce, "upper", &_2, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_3, _1); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_5, phalcon_text_ce, "upper", &_2, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "escape", &_3, _5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(table); + ZEPHIR_CONCAT_VSV(table, _0, ".", _4); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_2, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&table, this_ptr, "escape", &_3, _0); + zephir_check_call_status(); + } + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", table); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", table); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createView) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql, *_0 = NULL, *_2 = NULL, *_3; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + definition = definition_param; + + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + ZEPHIR_OBS_VAR(viewSql); + if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/oracle.zep", 235); return; } - RETURN_STRING("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name", 1); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _0, ".", _2); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _3); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _0); + zephir_check_call_status(); + } + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropView) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *view = NULL, *_0 = NULL, *_2 = NULL, *_3; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _0, ".", _2); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _3); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _0); + zephir_check_call_status(); + } + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", view); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", view); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, viewExists) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL, *_0 = NULL, *_2 = NULL; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_VIEWS WHERE VIEW_NAME='", _0, "' AND OWNER='", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_VIEWS WHERE VIEW_NAME='", _0, "'"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listViews) { + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *schemaName_param = NULL, *_0 = NULL; zval *schemaName = NULL; - zephir_fetch_params(0, 0, 1, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", schemaName, "' ORDER BY view_name"); - return; + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT VIEW_NAME FROM ALL_VIEWS WHERE OWNER='", _0, "' ORDER BY VIEW_NAME"); + RETURN_MM(); + } else { + RETURN_MM_STRING("SELECT VIEW_NAME FROM ALL_VIEWS VIEW_NAME", 1); } - RETURN_STRING("SELECT viewname AS view_name FROM pg_views WHERE schemaname = 'public' ORDER BY view_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableExists) { - zval *table, *schema = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *_0 = NULL, *_2 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &table, &schema); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } - ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", table, "' ORDER BY t.relname, i.relname;"); - return; + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_TABLES WHERE TABLE_NAME='", _0, "' AND OWNER = '", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, tableName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_TABLES WHERE TABLE_NAME='", _0, "'"); + RETURN_MM(); + } } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeColumns) { - zval *table, *schema = NULL, *sql, *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *_0 = NULL, *_2 = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - ZEPHIR_INIT_VAR(sql); - ZVAL_STRING(sql, "SELECT tc.table_name as TABLE_NAME, kcu.column_name as COLUMN_NAME, tc.constraint_name as CONSTRAINT_NAME, tc.table_catalog as REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ", 1); - if (zephir_is_true(schema)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "tc.table_schema = '", schema, "' AND tc.table_name='", table, "'"); - zephir_concat_self(&sql, _0 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT TC.COLUMN_NAME, TC.DATA_TYPE, TC.DATA_LENGTH, TC.DATA_PRECISION, TC.DATA_SCALE, TC.NULLABLE, C.CONSTRAINT_TYPE, TC.DATA_DEFAULT, CC.POSITION FROM ALL_TAB_COLUMNS TC LEFT JOIN (ALL_CONS_COLUMNS CC JOIN ALL_CONSTRAINTS C ON (CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND CC.TABLE_NAME = C.TABLE_NAME AND CC.OWNER = C.OWNER AND C.CONSTRAINT_TYPE = 'P')) ON TC.TABLE_NAME = CC.TABLE_NAME AND TC.COLUMN_NAME = CC.COLUMN_NAME WHERE TC.TABLE_NAME = '", _0, "' AND TC.OWNER = '", _2, "' ORDER BY TC.COLUMN_ID"); + RETURN_MM(); } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "tc.table_name='", table, "'"); - zephir_concat_self(&sql, _0 TSRMLS_CC); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT TC.COLUMN_NAME, TC.DATA_TYPE, TC.DATA_LENGTH, TC.DATA_PRECISION, TC.DATA_SCALE, TC.NULLABLE, C.CONSTRAINT_TYPE, TC.DATA_DEFAULT, CC.POSITION FROM ALL_TAB_COLUMNS TC LEFT JOIN (ALL_CONS_COLUMNS CC JOIN ALL_CONSTRAINTS C ON (CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND CC.TABLE_NAME = C.TABLE_NAME AND CC.OWNER = C.OWNER AND C.CONSTRAINT_TYPE = 'P')) ON TC.TABLE_NAME = CC.TABLE_NAME AND TC.COLUMN_NAME = CC.COLUMN_NAME WHERE TC.TABLE_NAME = '", _0, "' ORDER BY TC.COLUMN_ID"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listTables) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *schemaName_param = NULL, *_0 = NULL; + zval *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); + + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT TABLE_NAME, OWNER FROM ALL_TABLES WHERE OWNER='", _0, "' ORDER BY OWNER, TABLE_NAME"); + RETURN_MM(); + } else { + RETURN_MM_STRING("SELECT TABLE_NAME, OWNER FROM ALL_TABLES ORDER BY OWNER, TABLE_NAME", 1); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeIndexes) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *_0 = NULL, *_2 = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + + + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT I.TABLE_NAME, 0 AS C0, I.INDEX_NAME, IC.COLUMN_POSITION, IC.COLUMN_NAME FROM ALL_INDEXES I JOIN ALL_IND_COLUMNS IC ON I.INDEX_NAME = IC.INDEX_NAME WHERE I.TABLE_NAME = '", _0, "' AND IC.INDEX_OWNER = '", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT I.TABLE_NAME, 0 AS C0, I.INDEX_NAME, IC.COLUMN_POSITION, IC.COLUMN_NAME FROM ALL_INDEXES I JOIN ALL_IND_COLUMNS IC ON I.INDEX_NAME = IC.INDEX_NAME WHERE I.TABLE_NAME = '", _0, "'"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeReferences) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql, *_0 = NULL, *_2 = NULL, *_3 = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + + + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "SELECT AC.TABLE_NAME, CC.COLUMN_NAME, AC.CONSTRAINT_NAME, AC.R_OWNER, RCC.TABLE_NAME R_TABLE_NAME, RCC.COLUMN_NAME R_COLUMN_NAME FROM ALL_CONSTRAINTS AC JOIN ALL_CONS_COLUMNS CC ON AC.CONSTRAINT_NAME = CC.CONSTRAINT_NAME JOIN ALL_CONS_COLUMNS RCC ON AC.R_OWNER = RCC.OWNER AND AC.R_CONSTRAINT_NAME = RCC.CONSTRAINT_NAME WHERE AC.CONSTRAINT_TYPE='R' ", 1); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_SVSVS(_3, "AND AC.OWNER='", _0, "' AND AC.TABLE_NAME = '", _2, "'"); + zephir_concat_self(&sql, _3 TSRMLS_CC); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_3); + ZEPHIR_CONCAT_SVS(_3, "AND AC.TABLE_NAME = '", _0, "'"); + zephir_concat_self(&sql, _3 TSRMLS_CC); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableOptions) { - zval *table, *schema = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; - zephir_fetch_params(0, 1, 1, &table, &schema); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - RETURN_STRING("", 1); + RETURN_MM_STRING("", 1); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsSavepoints) { + + + RETURN_BOOL(0); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints) { + + + RETURN_BOOL(0); } @@ -50297,107 +51713,108 @@ static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); - zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_sqlite_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) { - zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; - HashTable *_4; - HashPosition _3; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + HashTable *_3; + HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *column, *columnSql, *type = NULL, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL, *value = NULL, *valueSql, **_5, _6 = zval_used_for_init, _8 = zval_used_for_init, *_9, *_10 = NULL; + zval *column, *size = NULL, *columnType = NULL, *columnSql, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *value = NULL, *valueSql, **_4, _5 = zval_used_for_init, _7 = zval_used_for_init, *_8, *_9 = NULL, *_10 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &column); + ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL); + zephir_check_call_status(); ZEPHIR_INIT_VAR(columnSql); ZVAL_STRING(columnSql, "", 1); - ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); - zephir_check_call_status(); - if (Z_TYPE_P(type) == IS_STRING) { - zephir_concat_self(&columnSql, type TSRMLS_CC); - ZEPHIR_CALL_METHOD(&type, column, "gettypereference", NULL); + if (Z_TYPE_P(columnType) == IS_STRING) { + zephir_concat_self(&columnSql, columnType TSRMLS_CC); + ZEPHIR_CALL_METHOD(&columnType, column, "gettypereference", NULL); zephir_check_call_status(); } do { - if (ZEPHIR_IS_LONG(type, 0)) { + if (ZEPHIR_IS_LONG(columnType, 0)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 1)) { + if (ZEPHIR_IS_LONG(columnType, 1)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 2)) { + if (ZEPHIR_IS_LONG(columnType, 2)) { if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("VARCHAR") TSRMLS_CC); + zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 3)) { + if (ZEPHIR_IS_LONG(columnType, 3)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, column, "getscale", NULL); + ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVSVS(_1, "(", _0, ",", _2, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "(", size, ",", _1, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 4)) { + if (ZEPHIR_IS_LONG(columnType, 4)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 5)) { + if (ZEPHIR_IS_LONG(columnType, 5)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 6)) { + if (ZEPHIR_IS_LONG(columnType, 6)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 7)) { + if (ZEPHIR_IS_LONG(columnType, 7)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); } break; } + if (ZEPHIR_IS_LONG(columnType, 8)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("SMALLINT(1)") TSRMLS_CC); + } + break; + } if (ZEPHIR_IS_EMPTY(columnSql)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized SQLite data type", "phalcon/db/dialect/sqlite.zep", 112); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized PostgreSQL data type", "phalcon/db/dialect/postgresql.zep", 117); return; } ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); @@ -50406,37 +51823,37 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { if (Z_TYPE_P(typeValues) == IS_ARRAY) { ZEPHIR_INIT_VAR(valueSql); ZVAL_STRING(valueSql, "", 1); - zephir_is_iterable(typeValues, &_4, &_3, 0, 0, "phalcon/db/dialect/sqlite.zep", 123); + zephir_is_iterable(typeValues, &_3, &_2, 0, 0, "phalcon/db/dialect/postgresql.zep", 128); for ( - ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS - ; zephir_hash_move_forward_ex(_4, &_3) + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) ) { - ZEPHIR_GET_HVALUE(value, _5); - ZEPHIR_SINIT_NVAR(_6); - ZVAL_STRING(&_6, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_0, "addcslashes", &_7, value, &_6); + ZEPHIR_GET_HVALUE(value, _4); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_1, "addcslashes", &_6, value, &_5); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVS(_1, "\"", _0, "\", "); - zephir_concat_self(&valueSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "\"", _1, "\", "); + zephir_concat_self(&valueSql, _0 TSRMLS_CC); } - ZEPHIR_SINIT_NVAR(_6); - ZVAL_LONG(&_6, 0); - ZEPHIR_SINIT_VAR(_8); - ZVAL_LONG(&_8, -2); - ZEPHIR_INIT_VAR(_9); - zephir_substr(_9, valueSql, 0 , -2 , 0); - ZEPHIR_INIT_VAR(_10); - ZEPHIR_CONCAT_SVS(_10, "(", _9, ")"); - zephir_concat_self(&columnSql, _10 TSRMLS_CC); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, 0); + ZEPHIR_SINIT_VAR(_7); + ZVAL_LONG(&_7, -2); + ZEPHIR_INIT_VAR(_8); + zephir_substr(_8, valueSql, 0 , -2 , 0); + ZEPHIR_INIT_VAR(_9); + ZEPHIR_CONCAT_SVS(_9, "(", _8, ")"); + zephir_concat_self(&columnSql, _9 TSRMLS_CC); } else { - ZEPHIR_SINIT_NVAR(_8); - ZVAL_STRING(&_8, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_2, "addcslashes", &_7, typeValues, &_8); + ZEPHIR_SINIT_NVAR(_7); + ZVAL_STRING(&_7, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_10, "addcslashes", &_6, typeValues, &_7); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_10); - ZEPHIR_CONCAT_SVS(_10, "(\"", _2, "\")"); - zephir_concat_self(&columnSql, _10 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SVS(_9, "(\"", _10, "\")"); + zephir_concat_self(&columnSql, _9 TSRMLS_CC); } } } while(0); @@ -50445,12 +51862,10 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, *sql = NULL, *defaultValue = NULL, *_1 = NULL, *_2 = NULL, *_3, _4, *_5 = NULL, *_7; - zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); @@ -50479,49 +51894,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { } - ZEPHIR_INIT_VAR(sql); - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "ALTER TABLE \"", schemaName, "\".\"", tableName, "\" ADD COLUMN "); - ZEPHIR_CPY_WRT(sql, _0); - } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "ALTER TABLE \"", tableName, "\" ADD COLUMN "); - ZEPHIR_CPY_WRT(sql, _0); - } - ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_3); - ZEPHIR_CONCAT_SVSV(_3, "\"", _1, "\" ", _2); - zephir_concat_self(&sql, _3 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(defaultValue))) { - ZEPHIR_SINIT_VAR(_4); - ZVAL_STRING(&_4, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_5, "addcslashes", &_6, defaultValue, &_4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_7); - ZEPHIR_CONCAT_SVS(_7, " DEFAULT \"", _5, "\""); - zephir_concat_self(&sql, _7 TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_5, column, "isnotnull", NULL); - zephir_check_call_status(); - if (zephir_is_true(_5)) { - zephir_concat_self_str(&sql, SL(" NOT NULL") TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_5, column, "isautoincrement", NULL); - zephir_check_call_status(); - if (zephir_is_true(_5)) { - zephir_concat_self_str(&sql, SL(" PRIMARY KEY AUTOINCREMENT") TSRMLS_CC); - } - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 143); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { zval *tableName_param = NULL, *schemaName_param = NULL, *column; zval *tableName = NULL, *schemaName = NULL; @@ -50553,12 +51931,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 169); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 151); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; @@ -50588,19 +51966,27 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } - zephir_get_strval(columnName, columnName_param); + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 177); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 159); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, *sql, *indexType = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *index; zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); @@ -50630,42 +52016,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { } - ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(sql); - if (!(ZEPHIR_IS_EMPTY(indexType))) { - ZEPHIR_CONCAT_SVS(sql, "CREATE ", indexType, " INDEX \""); - } else { - ZVAL_STRING(sql, "CREATE INDEX \"", 1); - } - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_VSVSVS(_1, schemaName, "\".\"", _0, "\" ON \"", tableName, "\" ("); - zephir_concat_self(&sql, _1 TSRMLS_CC); - } else { - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_VSVS(_1, _0, "\" ON \"", tableName, "\" ("); - zephir_concat_self(&sql, _1 TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_3, _2); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_VS(_1, _0, ")"); - zephir_concat_self(&sql, _1 TSRMLS_CC); - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 167); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, *sql = NULL; - zval *tableName = NULL, *schemaName = NULL, *indexName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); @@ -50705,21 +52064,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { } - ZEPHIR_INIT_VAR(sql); - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "DROP INDEX \"", schemaName, "\".\"", indexName, "\""); - ZEPHIR_CPY_WRT(sql, _0); - } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "DROP INDEX \"", indexName, "\""); - ZEPHIR_CPY_WRT(sql, _0); - } - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 175); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { zval *tableName_param = NULL, *schemaName_param = NULL, *index; zval *tableName = NULL, *schemaName = NULL; @@ -50727,16 +52077,36 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zephir_get_strval(tableName, tableName_param); - zephir_get_strval(schemaName, schemaName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 224); + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 183); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { zval *tableName_param = NULL, *schemaName_param = NULL; zval *tableName = NULL, *schemaName = NULL; @@ -50768,12 +52138,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 232); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 191); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { zval *tableName_param = NULL, *schemaName_param = NULL, *reference; zval *tableName = NULL, *schemaName = NULL; @@ -50805,18 +52175,18 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 240); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 199); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName; - zval *tableName = NULL, *schemaName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -50840,26 +52210,25 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 253); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, _getTableOptions) { - - zval *definition; - - zephir_fetch_params(0, 1, 0, &definition); - + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } - RETURN_STRING("", 1); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 207); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { zval *definition = NULL; zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; @@ -50894,18 +52263,19 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/sqlite.zep", 272); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 215); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists = NULL, *sql, *table = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *table = NULL, *sql; zval *tableName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -50918,46 +52288,49 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); } - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + + ifExists = Z_BVAL_P(ifExists_param); } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", tableName); + ZEPHIR_CONCAT_VSV(_0, schemaName, ".", tableName); ZEPHIR_CPY_WRT(table, _0); } else { ZEPHIR_CPY_WRT(table, tableName); } ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SVS(sql, "DROP TABLE IF EXISTS \"", table, "\""); + if (ifExists) { + ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); } else { - ZEPHIR_CONCAT_SVS(sql, "DROP TABLE \"", table, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { - zval *viewName_param = NULL, *definition, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *viewSql, *view = NULL; zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName_param, &definition, &schemaName_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -50970,44 +52343,41 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + definition = definition_param; - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } ZEPHIR_OBS_VAR(viewSql); if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/sqlite.zep", 315); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/postgresql.zep", 246); return; } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CONCAT_VSV(_0, viewName, ".", schemaName); ZEPHIR_CPY_WRT(view, _0); } else { ZEPHIR_CPY_WRT(view, viewName); } - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW \"", view, "\" AS ", viewSql); + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *view = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *view = NULL, *sql; zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &schemaName_param, &ifExists_param); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -51020,48 +52390,48 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } if (!ifExists_param) { ifExists = 1; } else { - ifExists = zephir_get_boolval(ifExists_param); + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CONCAT_VSV(_0, viewName, ".", schemaName); ZEPHIR_CPY_WRT(view, _0); } else { ZEPHIR_CPY_WRT(view, viewName); } ZEPHIR_INIT_VAR(sql); if (ifExists) { - ZEPHIR_CONCAT_SVS(sql, "DROP VIEW IF EXISTS \"", view, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP VIEW IF EXISTS ", view); } else { - ZEPHIR_CONCAT_SVS(sql, "DROP VIEW \"", view, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP VIEW ", view); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { - zval *tableName_param = NULL, *schemaName = NULL; - zval *tableName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -51074,23 +52444,30 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", tableName, "'"); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", schemaName, "' AND table_name='", tableName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='", tableName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { - zval *viewName_param = NULL, *schemaName = NULL; - zval *viewName = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -51103,23 +52480,30 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", viewName, "'"); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "' AND schemaname='", schemaName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51132,17 +52516,24 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", table, "')"); + if (schema && Z_STRLEN_P(schema)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='", schema, "' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { zval *schemaName_param = NULL; zval *schemaName = NULL; @@ -51154,61 +52545,44 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } } - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name", 1); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", schemaName, "' ORDER BY table_name"); + RETURN_MM(); + } + RETURN_MM_STRING("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { - zval *schemaName_param = NULL; zval *schemaName = NULL; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - - if (!schemaName_param) { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(0, 0, 1, &schemaName); - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } + if (!schemaName) { + schemaName = ZEPHIR_GLOBAL(global_null); } - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name", 1); + if (zephir_is_true(schemaName)) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", schemaName, "' ORDER BY view_name"); + return; + } + RETURN_STRING("SELECT viewname AS view_name FROM pg_views WHERE schemaname = 'public' ORDER BY view_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51221,49 +52595,26 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); - } - - - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", table, "')"); - RETURN_MM(); - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { - - zval *index_param = NULL; - zval *index = NULL; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); + zephir_get_strval(schema, schema_param); } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", index, "')"); + ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", table, "' ORDER BY t.relname, i.relname;"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51276,23 +52627,36 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "SELECT tc.table_name as TABLE_NAME, kcu.column_name as COLUMN_NAME, tc.constraint_name as CONSTRAINT_NAME, tc.table_catalog as REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ", 1); - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", table, "')"); - RETURN_MM(); + if (schema && Z_STRLEN_P(schema)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "tc.table_schema = '", schema, "' AND tc.table_name='", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "tc.table_name='", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51305,8 +52669,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } @@ -51328,1225 +52695,1057 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlVariables"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlBindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_initialTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_finalTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) { - - zval *sqlStatement; - - zephir_fetch_params(0, 1, 0, &sqlStatement); - - - - zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) { - - - RETURN_MEMBER(this_ptr, "_sqlStatement"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) { - - zval *sqlVariables; - - zephir_fetch_params(0, 1, 0, &sqlVariables); - - - - zephir_update_property_this(this_ptr, SL("_sqlVariables"), sqlVariables TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) { - - - RETURN_MEMBER(this_ptr, "_sqlVariables"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) { - - zval *sqlBindTypes; - - zephir_fetch_params(0, 1, 0, &sqlBindTypes); - - +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { - zephir_update_property_this(this_ptr, SL("_sqlBindTypes"), sqlBindTypes TSRMLS_CC); + zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; + HashTable *_4; + HashPosition _3; + int ZEPHIR_LAST_CALL_STATUS; + zval *column, *columnSql, *type = NULL, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL, *value = NULL, *valueSql, **_5, _6 = zval_used_for_init, _8 = zval_used_for_init, *_9, *_10 = NULL; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) { - - - RETURN_MEMBER(this_ptr, "_sqlBindTypes"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) { - - zval *initialTime; - - zephir_fetch_params(0, 1, 0, &initialTime); + ZEPHIR_INIT_VAR(columnSql); + ZVAL_STRING(columnSql, "", 1); + ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); + zephir_check_call_status(); + if (Z_TYPE_P(type) == IS_STRING) { + zephir_concat_self(&columnSql, type TSRMLS_CC); + ZEPHIR_CALL_METHOD(&type, column, "gettypereference", NULL); + zephir_check_call_status(); + } + do { + if (ZEPHIR_IS_LONG(type, 0)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 1)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 2)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("VARCHAR") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 3)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, column, "getscale", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVSVS(_1, "(", _0, ",", _2, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 4)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 5)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 6)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 7)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_EMPTY(columnSql)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized SQLite data type", "phalcon/db/dialect/sqlite.zep", 112); + return; + } + ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(typeValues))) { + if (Z_TYPE_P(typeValues) == IS_ARRAY) { + ZEPHIR_INIT_VAR(valueSql); + ZVAL_STRING(valueSql, "", 1); + zephir_is_iterable(typeValues, &_4, &_3, 0, 0, "phalcon/db/dialect/sqlite.zep", 123); + for ( + ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS + ; zephir_hash_move_forward_ex(_4, &_3) + ) { + ZEPHIR_GET_HVALUE(value, _5); + ZEPHIR_SINIT_NVAR(_6); + ZVAL_STRING(&_6, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_0, "addcslashes", &_7, value, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVS(_1, "\"", _0, "\", "); + zephir_concat_self(&valueSql, _1 TSRMLS_CC); + } + ZEPHIR_SINIT_NVAR(_6); + ZVAL_LONG(&_6, 0); + ZEPHIR_SINIT_VAR(_8); + ZVAL_LONG(&_8, -2); + ZEPHIR_INIT_VAR(_9); + zephir_substr(_9, valueSql, 0 , -2 , 0); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SVS(_10, "(", _9, ")"); + zephir_concat_self(&columnSql, _10 TSRMLS_CC); + } else { + ZEPHIR_SINIT_NVAR(_8); + ZVAL_STRING(&_8, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_2, "addcslashes", &_7, typeValues, &_8); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SVS(_10, "(\"", _2, "\")"); + zephir_concat_self(&columnSql, _10 TSRMLS_CC); + } + } + } while(0); - zephir_update_property_this(this_ptr, SL("_initialTime"), initialTime TSRMLS_CC); + RETURN_CCTOR(columnSql); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) { - - - RETURN_MEMBER(this_ptr, "_initialTime"); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { -} + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, *sql = NULL, *defaultValue = NULL, *_1 = NULL, *_2 = NULL, *_3, _4, *_5 = NULL, *_7; + zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; -static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - zval *finalTime; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 1, 0, &finalTime); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - zephir_update_property_this(this_ptr, SL("_finalTime"), finalTime TSRMLS_CC); + ZEPHIR_INIT_VAR(sql); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "ALTER TABLE \"", schemaName, "\".\"", tableName, "\" ADD COLUMN "); + ZEPHIR_CPY_WRT(sql, _0); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "ALTER TABLE \"", tableName, "\" ADD COLUMN "); + ZEPHIR_CPY_WRT(sql, _0); + } + ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_SVSV(_3, "\"", _1, "\" ", _2); + zephir_concat_self(&sql, _3 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(defaultValue))) { + ZEPHIR_SINIT_VAR(_4); + ZVAL_STRING(&_4, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_5, "addcslashes", &_6, defaultValue, &_4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_7); + ZEPHIR_CONCAT_SVS(_7, " DEFAULT \"", _5, "\""); + zephir_concat_self(&sql, _7 TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_5, column, "isnotnull", NULL); + zephir_check_call_status(); + if (zephir_is_true(_5)) { + zephir_concat_self_str(&sql, SL(" NOT NULL") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_5, column, "isautoincrement", NULL); + zephir_check_call_status(); + if (zephir_is_true(_5)) { + zephir_concat_self_str(&sql, SL(" PRIMARY KEY AUTOINCREMENT") TSRMLS_CC); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; - RETURN_MEMBER(this_ptr, "_finalTime"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zval *_0, *_1; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_finalTime"), PH_NOISY_CC); - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_initialTime"), PH_NOISY_CC); - sub_function(return_value, _0, _1 TSRMLS_CC); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 169); return; } +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -#include + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } -ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 177); + return; - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_connection"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_result"), ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { - zend_declare_property_long(phalcon_db_result_pdo_ce, SL("_fetchMode"), 4, ZEND_ACC_PROTECTED TSRMLS_CC); + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, *sql, *indexType = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_pdoStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindParams"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("_rowCount"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_result_pdo_ce TSRMLS_CC, 1, phalcon_db_resultinterface_ce); - return SUCCESS; + ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(sql); + if (!(ZEPHIR_IS_EMPTY(indexType))) { + ZEPHIR_CONCAT_SVS(sql, "CREATE ", indexType, " INDEX \""); + } else { + ZVAL_STRING(sql, "CREATE INDEX \"", 1); + } + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_VSVSVS(_1, schemaName, "\".\"", _0, "\" ON \"", tableName, "\" ("); + zephir_concat_self(&sql, _1 TSRMLS_CC); + } else { + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_VSVS(_1, _0, "\" ON \"", tableName, "\" ("); + zephir_concat_self(&sql, _1 TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_3, _2); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_VS(_1, _0, ")"); + zephir_concat_self(&sql, _1 TSRMLS_CC); + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { - zval *connection, *result, *sqlStatement = NULL, *bindParams = NULL, *bindTypes = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, *sql = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL, *_0 = NULL; - zephir_fetch_params(0, 2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); - if (!sqlStatement) { - sqlStatement = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (!bindTypes) { - bindTypes = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - zephir_update_property_this(this_ptr, SL("_connection"), connection TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_pdoStatement"), result TSRMLS_CC); - if (Z_TYPE_P(sqlStatement) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - if (Z_TYPE_P(bindParams) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_bindParams"), bindParams TSRMLS_CC); + if (unlikely(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(bindTypes) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_bindTypes"), bindTypes TSRMLS_CC); + + if (likely(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(indexName); + ZVAL_EMPTY_STRING(indexName); + } + + + ZEPHIR_INIT_VAR(sql); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "DROP INDEX \"", schemaName, "\".\"", indexName, "\""); + ZEPHIR_CPY_WRT(sql, _0); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "DROP INDEX \"", indexName, "\""); + ZEPHIR_CPY_WRT(sql, _0); } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "execute", NULL); - zephir_check_call_status(); - RETURN_MM(); - -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 224); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); - zephir_check_call_status(); - RETURN_MM(); - -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetchall", NULL); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 232); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { - zend_bool _0; - int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement, *rowCount = NULL, *connection, *type = NULL, *pdoStatement, *matches, *result = NULL, *row = NULL, *_1, _2, *_3, *_4, *_5, *_6; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - ZEPHIR_OBS_VAR(rowCount); - zephir_read_property_this(&rowCount, this_ptr, SL("_rowCount"), PH_NOISY_CC); - if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { - ZEPHIR_OBS_VAR(connection); - zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&type, connection, "gettype", NULL); - zephir_check_call_status(); - _0 = ZEPHIR_IS_STRING(type, "mysql"); - if (!(_0)) { - _0 = ZEPHIR_IS_STRING(type, "pgsql"); - } - if (_0) { - ZEPHIR_OBS_VAR(pdoStatement); - zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&rowCount, pdoStatement, "rowcount", NULL); - zephir_check_call_status(); - } - if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { - ZEPHIR_OBS_VAR(sqlStatement); - zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); - if (!(zephir_start_with_str(sqlStatement, SL("SELECT COUNT(*) ")))) { - ZEPHIR_INIT_VAR(matches); - ZVAL_NULL(matches); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_SINIT_VAR(_2); - ZVAL_STRING(&_2, "/^SELECT\\s+(.*)/i", 0); - zephir_preg_match(_1, &_2, sqlStatement, matches, 0, 0 , 0 TSRMLS_CC); - if (zephir_is_true(_1)) { - zephir_array_fetch_long(&_3, matches, 1, PH_NOISY | PH_READONLY, "phalcon/db/result/pdo.zep", 202 TSRMLS_CC); - ZEPHIR_INIT_VAR(_4); - ZEPHIR_CONCAT_SVS(_4, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", _3, ")"); - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_bindParams"), PH_NOISY_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&result, connection, "query", NULL, _4, _5, _6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(rowCount); - zephir_array_fetch_string(&rowCount, row, SL("numrows"), PH_NOISY, "phalcon/db/result/pdo.zep", 204 TSRMLS_CC); - } - } else { - ZEPHIR_INIT_NVAR(rowCount); - ZVAL_LONG(rowCount, 1); - } - } - zephir_update_property_this(this_ptr, SL("_rowCount"), rowCount TSRMLS_CC); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - RETURN_CCTOR(rowCount); + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 240); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *number_param = NULL, *connection, *pdo = NULL, *sqlStatement, *bindParams, *statement = NULL, *_0 = NULL, *_1; - long number; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &number_param); - - number = zephir_get_intval(number_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - { pdo_stmt_t *stmt; long n; - ZEPHIR_OBS_VAR(connection); - zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&pdo, connection, "getinternalhandler", NULL); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(sqlStatement); - zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(bindParams); - zephir_read_property_this(&bindParams, this_ptr, SL("_bindParams"), PH_NOISY_CC); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); - zephir_check_call_status(); - if (Z_TYPE_P(statement) == IS_OBJECT) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&_0, connection, "executeprepared", NULL, statement, bindParams, _1); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(statement, _0); - } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CALL_METHOD(&statement, pdo, "query", NULL, sqlStatement); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - zephir_update_property_this(this_ptr, SL("_pdoStatement"), statement TSRMLS_CC); - - - stmt = (pdo_stmt_t*) zend_object_store_get_object(statement TSRMLS_CC); - if (!stmt->dbh) { - ZEPHIR_MM_RESTORE(); - RETURN_FALSE; - } - - n = -1; - number--; - while (n != number) { - if (!stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) { - ZEPHIR_MM_RESTORE(); - RETURN_NULL(); - } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - n++; - } + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } - } - - ZEPHIR_MM_RESTORE(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 248); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - zval *fetchMode_param = NULL, *pdoStatement, *_0 = NULL, *_1; - int fetchMode, ZEPHIR_LAST_CALL_STATUS; + zval *definition = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &fetchMode_param); - - fetchMode = zephir_get_intval(fetchMode_param); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - ZEPHIR_OBS_VAR(pdoStatement); - zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - do { - if (fetchMode == 2) { - ZEPHIR_INIT_VAR(_0); - ZVAL_LONG(_0, 4); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 4); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 1) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 2); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 2); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 3) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 3); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 3); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 4) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 5); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 5); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - } while(0); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_MM_RESTORE(); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -} + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + definition = definition_param; -static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) { - RETURN_MEMBER(this_ptr, "_pdoStatement"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/sqlite.zep", 256); + return; } +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *table = NULL; + zval *tableName = NULL, *schemaName = NULL, *_0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); -#ifdef HAVE_CONFIG_H -#endif - -#include + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -#include -#include -#include + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + ifExists = Z_BVAL_P(ifExists_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Debug_Dump) { + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", tableName); + ZEPHIR_CPY_WRT(table, _0); + } else { + ZEPHIR_CPY_WRT(table, tableName); + } + ZEPHIR_INIT_VAR(sql); + if (ifExists) { + ZEPHIR_CONCAT_SVS(sql, "DROP TABLE IF EXISTS \"", table, "\""); + } else { + ZEPHIR_CONCAT_SVS(sql, "DROP TABLE \"", table, "\""); + } + RETURN_CCTOR(sql); - ZEPHIR_REGISTER_CLASS(Phalcon\\Debug, Dump, phalcon, debug_dump, phalcon_debug_dump_method_entry, 0); +} - zend_declare_property_bool(phalcon_debug_dump_ce, SL("_detailed"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { - zend_declare_property_null(phalcon_debug_dump_ce, SL("_methods"), ZEND_ACC_PROTECTED TSRMLS_CC); + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *viewName = NULL, *schemaName = NULL, *_0; - zend_declare_property_null(phalcon_debug_dump_ce, SL("_styles"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - return SUCCESS; + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -} + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + definition = definition_param; -static PHP_METHOD(Phalcon_Debug_Dump, getDetailed) { + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } - RETURN_MEMBER(this_ptr, "_detailed"); + ZEPHIR_OBS_VAR(viewSql); + if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/sqlite.zep", 289); + return; + } + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CPY_WRT(view, _0); + } else { + ZEPHIR_CPY_WRT(view, viewName); + } + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW \"", view, "\" AS ", viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, setDetailed) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { - zval *detailed; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *view = NULL; + zval *viewName = NULL, *schemaName = NULL, *_0; - zephir_fetch_params(0, 1, 0, &detailed); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_update_property_this(this_ptr, SL("_detailed"), detailed TSRMLS_CC); + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CPY_WRT(view, _0); + } else { + ZEPHIR_CPY_WRT(view, viewName); + } + ZEPHIR_INIT_VAR(sql); + if (ifExists) { + ZEPHIR_CONCAT_SVS(sql, "DROP VIEW IF EXISTS \"", view, "\""); + } else { + ZEPHIR_CONCAT_SVS(sql, "DROP VIEW \"", view, "\""); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Debug_Dump, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { - int ZEPHIR_LAST_CALL_STATUS; - zend_bool detailed, _0; - zval *styles_param = NULL, *detailed_param = NULL, *_1; - zval *styles = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!styles_param) { - ZEPHIR_INIT_VAR(styles); - array_init(styles); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - zephir_get_arrval(styles, styles_param); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (!detailed_param) { - detailed = 0; + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - detailed = zephir_get_boolval(detailed_param); + zephir_get_strval(schemaName, schemaName_param); } - _0 = zephir_is_true(styles); - if (_0) { - _0 = 1 != 1; - } - if (_0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 56); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, styles); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - array_init(_1); - zephir_update_property_this(this_ptr, SL("_methods"), _1 TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_detailed"), detailed ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", tableName, "'"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, all) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zval *_1, *_2 = NULL; - zval *_0; - int ZEPHIR_LAST_CALL_STATUS; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - ZEPHIR_INIT_VAR(_0); - zephir_create_array(_0, 2, 0 TSRMLS_CC); - zephir_array_fast_append(_0, this_ptr); - ZEPHIR_INIT_VAR(_1); - ZVAL_STRING(_1, "vars", 1); - zephir_array_fast_append(_0, _1); - ZEPHIR_CALL_FUNCTION(&_2, "func_get_args", &_3); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, _0, _2); - zephir_check_call_status(); + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, getStyle) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { - zval *type_param = NULL, *style, *_0; - zval *type = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); RETURN_MM_NULL(); } - if (likely(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(type, type_param); + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); } else { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - - - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_styles"), PH_NOISY_CC); - if (zephir_array_isset_fetch(&style, _0, type, 1 TSRMLS_CC)) { - RETURN_CTOR(style); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - RETURN_MM_STRING("color:gray", 1); + zephir_get_strval(schema, schema_param); } + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", table, "')"); + RETURN_MM(); + } -static PHP_METHOD(Phalcon_Debug_Dump, setStyles) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { - zval *styles = NULL, *defaultStyles, *_0; + zval *schemaName_param = NULL; + zval *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &styles); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!styles) { - ZEPHIR_CPY_WRT(styles, ZEPHIR_GLOBAL(global_null)); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - ZEPHIR_SEPARATE_PARAM(styles); + zephir_get_strval(schemaName, schemaName_param); } - if (Z_TYPE_P(styles) == IS_NULL) { - ZEPHIR_INIT_NVAR(styles); - array_init(styles); - } - if (Z_TYPE_P(styles) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 100); - return; - } - ZEPHIR_INIT_VAR(defaultStyles); - zephir_create_array(defaultStyles, 11, 0 TSRMLS_CC); - add_assoc_stringl_ex(defaultStyles, SS("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333"), 1); - add_assoc_stringl_ex(defaultStyles, SS("arr"), SL("color:red"), 1); - add_assoc_stringl_ex(defaultStyles, SS("bool"), SL("color:green"), 1); - add_assoc_stringl_ex(defaultStyles, SS("float"), SL("color:fuchsia"), 1); - add_assoc_stringl_ex(defaultStyles, SS("int"), SL("color:blue"), 1); - add_assoc_stringl_ex(defaultStyles, SS("null"), SL("color:black"), 1); - add_assoc_stringl_ex(defaultStyles, SS("num"), SL("color:navy"), 1); - add_assoc_stringl_ex(defaultStyles, SS("obj"), SL("color:purple"), 1); - add_assoc_stringl_ex(defaultStyles, SS("other"), SL("color:maroon"), 1); - add_assoc_stringl_ex(defaultStyles, SS("res"), SL("color:lime"), 1); - add_assoc_stringl_ex(defaultStyles, SS("str"), SL("color:teal"), 1); - ZEPHIR_INIT_VAR(_0); - zephir_fast_array_merge(_0, &(defaultStyles), &(styles) TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_styles"), _0 TSRMLS_CC); - RETURN_MM_MEMBER(this_ptr, "_styles"); + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name", 1); } -static PHP_METHOD(Phalcon_Debug_Dump, one) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { - int ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL; - zval *variable, *name_param = NULL; + zval *schemaName_param = NULL; + zval *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - zephir_get_strval(name, name_param); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "var", NULL, variable, name); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name", 1); } -static PHP_METHOD(Phalcon_Debug_Dump, output) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { - zend_bool _15, _16, _17; - HashTable *_8, *_25, *_37; - HashPosition _7, _24, _36; - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL, *_19 = NULL, *_21 = NULL, *_23 = NULL, *_29 = NULL, *_30 = NULL, *_31 = NULL, *_33 = NULL, *_34 = NULL, *_42 = NULL, *_44 = NULL, *_45 = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zval *_1 = NULL, *_12 = NULL, *_40 = NULL; - int tab, ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL, *_0; - zval *variable, *name_param = NULL, *tab_param = NULL, *key = NULL, *value = NULL, *output = NULL, *space, *type = NULL, *attr = NULL, *_2 = NULL, *_3 = NULL, _5 = zval_used_for_init, **_9, *_10 = NULL, *_13 = NULL, *_14 = NULL, *_18 = NULL, *_20 = NULL, *_22, **_26, *_27 = NULL, *_28 = NULL, *_32, *_35, **_38, *_39 = NULL, *_41 = NULL, _43; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); } else { - zephir_get_strval(name, name_param); + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - if (!tab_param) { - tab = 1; + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - tab = zephir_get_intval(tab_param); + zephir_get_strval(schema, schema_param); } - ZEPHIR_INIT_VAR(space); - ZVAL_STRING(space, " ", 1); - ZEPHIR_INIT_VAR(output); - ZVAL_STRING(output, "", 1); - if (name && Z_STRLEN_P(name)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VS(_0, name, " "); - ZEPHIR_CPY_WRT(output, _0); + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", table, "')"); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { + + zval *index_param = NULL; + zval *index = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &index_param); + + if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_ARRAY) { - ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_3); - ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":count"), zephir_fast_count_int(variable TSRMLS_CC)); - ZEPHIR_SINIT_VAR(_5); - ZVAL_STRING(&_5, "Array (:count) (\n", 0); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); - zephir_check_call_status(); - zephir_concat_self(&output, _2 TSRMLS_CC); - zephir_is_iterable(variable, &_8, &_7, 0, 0, "phalcon/debug/dump.zep", 154); - for ( - ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS - ; zephir_hash_move_forward_ex(_8, &_7) - ) { - ZEPHIR_GET_HMKEY(key, _8, _7); - ZEPHIR_GET_HVALUE(value, _9); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "[:key] => ", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - _15 = tab == 1; - if (_15) { - _15 = !ZEPHIR_IS_STRING(name, ""); - } - _16 = _15; - if (_16) { - _16 = !(Z_TYPE_P(key) == IS_LONG); - } - _17 = _16; - if (_17) { - _17 = ZEPHIR_IS_EQUAL(name, key); - } - if (_17) { - continue; - } else { - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); - RETURN_MM(); + + if (likely(Z_TYPE_P(index_param) == IS_STRING)) { + zephir_get_strval(index, index_param); + } else { + ZEPHIR_INIT_VAR(index); + ZVAL_EMPTY_STRING(index); } - if (Z_TYPE_P(variable) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - zephir_array_update_string(&_1, SL(":class"), &_3, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Object :class", 0); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); - zephir_check_call_status(); - zephir_concat_self(&output, _2 TSRMLS_CC); - ZEPHIR_CALL_FUNCTION(&_13, "get_parent_class", &_21, variable); - zephir_check_call_status(); - if (zephir_is_true(_13)) { - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_18, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_18, "get_parent_class", &_21, variable); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":parent"), &_18, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, " extends :parent", 0); - ZEPHIR_CALL_FUNCTION(&_18, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - zephir_concat_self(&output, _18 TSRMLS_CC); - } - zephir_concat_self_str(&output, SL(" (\n") TSRMLS_CC); - _22 = zephir_fetch_nproperty_this(this_ptr, SL("_detailed"), PH_NOISY_CC); - if (!(zephir_is_true(_22))) { - ZEPHIR_CALL_FUNCTION(&_10, "get_object_vars", &_23, variable); - zephir_check_call_status(); - zephir_is_iterable(_10, &_25, &_24, 0, 0, "phalcon/debug/dump.zep", 171); - for ( - ; zephir_hash_get_current_data_ex(_25, (void**) &_26, &_24) == SUCCESS - ; zephir_hash_move_forward_ex(_25, &_24) - ) { - ZEPHIR_GET_HMKEY(key, _25, _24); - ZEPHIR_GET_HVALUE(value, _26); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_13, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(_12, SS(":type"), SL("public"), 1); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:key (:type) = ", 0); - ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _13, _27); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _28, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - } else { - do { - Z_SET_ISREF_P(variable); - ZEPHIR_CALL_FUNCTION(&attr, "each", &_29, variable); - Z_UNSET_ISREF_P(variable); - zephir_check_call_status(); - if (!(zephir_is_true(attr))) { - continue; - } - ZEPHIR_OBS_NVAR(key); - zephir_array_fetch_string(&key, attr, SL("key"), PH_NOISY, "phalcon/debug/dump.zep", 178 TSRMLS_CC); - ZEPHIR_OBS_NVAR(value); - zephir_array_fetch_string(&value, attr, SL("value"), PH_NOISY, "phalcon/debug/dump.zep", 179 TSRMLS_CC); - if (!(zephir_is_true(key))) { - continue; - } - ZEPHIR_INIT_NVAR(_3); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "\\x00", 0); - ZEPHIR_CALL_FUNCTION(&_10, "ord", &_30, &_5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13, "chr", &_31, _10); - zephir_check_call_status(); - zephir_fast_explode(_3, _13, key, LONG_MAX TSRMLS_CC); - ZEPHIR_CPY_WRT(key, _3); - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "public", 1); - if (zephir_array_isset_long(key, 1)) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "private", 1); - zephir_array_fetch_long(&_32, key, 1, PH_NOISY | PH_READONLY, "phalcon/debug/dump.zep", 190 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_32, "*")) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "protected", 1); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); - Z_SET_ISREF_P(key); - ZEPHIR_CALL_FUNCTION(&_27, "end", &_33, key); - Z_UNSET_ISREF_P(key); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":key"), &_27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":type"), &type, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:key (:type) = ", 0); - ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _18, _27); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _28, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } while (zephir_is_true(attr)); - } - ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", &_34, variable); - zephir_check_call_status(); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - zephir_array_update_string(&_12, SL(":class"), &_3, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_12, SS(":count"), zephir_fast_count_int(attr TSRMLS_CC)); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, ":class methods: (:count) (\n", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - _35 = zephir_fetch_nproperty_this(this_ptr, SL("_methods"), PH_NOISY_CC); - if (zephir_fast_in_array(_3, _35 TSRMLS_CC)) { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, "[already listed]\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } else { - zephir_is_iterable(attr, &_37, &_36, 0, 0, "phalcon/debug/dump.zep", 214); - for ( - ; zephir_hash_get_current_data_ex(_37, (void**) &_38, &_36) == SUCCESS - ; zephir_hash_move_forward_ex(_37, &_36) - ) { - ZEPHIR_GET_HVALUE(value, _38); - ZEPHIR_INIT_NVAR(_39); - zephir_get_class(_39, variable, 0 TSRMLS_CC); - zephir_update_property_array_append(this_ptr, SL("_methods"), _39 TSRMLS_CC); - if (ZEPHIR_IS_STRING(value, "__construct")) { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_39); - ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _39); - zephir_check_temp_parameter(_39); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:method(); [constructor]\n", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - } else { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_27, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_40); - zephir_create_array(_40, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_39); - ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "getstyle", &_4, _39); - zephir_check_temp_parameter(_39); - zephir_check_call_status(); - zephir_array_update_string(&_40, SL(":style"), &_28, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_40, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:method();\n", 0); - ZEPHIR_CALL_FUNCTION(&_28, "strtr", &_6, &_5, _40); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_41); - ZEPHIR_CONCAT_VV(_41, _27, _28); - zephir_concat_self(&output, _41 TSRMLS_CC); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, ")\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); - RETURN_MM(); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", index, "')"); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { + + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_LONG) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "int", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Integer (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - ZEPHIR_CALL_FUNCTION(&_2, "is_float", &_42, variable); - zephir_check_call_status(); - if (zephir_is_true(_2)) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "float", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Float (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_numeric(variable)) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "num", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Numeric string (:length) \":var\"", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_STRING) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "str", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, 4); - ZEPHIR_SINIT_VAR(_43); - ZVAL_STRING(&_43, "utf-8", 0); - ZEPHIR_CALL_FUNCTION(&_2, "htmlentities", &_44, variable, &_5, &_43); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13, "nl2br", &_45, _2); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":var"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "String (:length) \":var\"", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_BOOL) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "bool", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_LNVAR(_14); - if (zephir_is_true(variable)) { - ZEPHIR_INIT_NVAR(_14); - ZVAL_STRING(_14, "TRUE", 1); - } else { - ZEPHIR_INIT_NVAR(_14); - ZVAL_STRING(_14, "FALSE", 1); - } - zephir_array_update_string(&_1, SL(":var"), &_14, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Boolean (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_NULL) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 1, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "null", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "NULL", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "other", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "(:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", table, "')"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, var) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; - zval *name = NULL; - zval *variable, *name_param = NULL, *_1 = NULL, *_2, _3; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); - } else { - zephir_get_strval(name, name_param); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } - ZEPHIR_INIT_VAR(_0); - zephir_create_array(_0, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "pre", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, variable, name); - zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_VAR(_3); - ZVAL_STRING(&_3, "
:output
", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_4, &_3, _0); - zephir_check_call_status(); - RETURN_MM(); - -} - -static PHP_METHOD(Phalcon_Debug_Dump, vars) { - - zephir_fcall_cache_entry *_7 = NULL; - HashTable *_3; - HashPosition _2; - int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; - zval *key = NULL, *value = NULL, *output, *_0 = NULL, **_4, *_5 = NULL, *_6 = NULL; - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(output); - ZVAL_STRING(output, "", 1); - ZEPHIR_CALL_FUNCTION(&_0, "func_get_args", &_1); - zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/debug/dump.zep", 283); - for ( - ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS - ; zephir_hash_move_forward_ex(_3, &_2) - ) { - ZEPHIR_GET_HMKEY(key, _3, _2); - ZEPHIR_GET_HVALUE(value, _4); - ZEPHIR_INIT_LNVAR(_6); - ZEPHIR_CONCAT_SV(_6, "var ", key); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "one", &_7, value, _6); - zephir_check_call_status(); - zephir_concat_self(&output, _5 TSRMLS_CC); - } - RETURN_CCTOR(output); + RETURN_MM_STRING("", 1); } @@ -52564,33 +53763,128 @@ static PHP_METHOD(Phalcon_Debug_Dump, vars) { -ZEPHIR_INIT_CLASS(Phalcon_Debug_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Debug, Exception, phalcon, debug_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlVariables"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlBindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_initialTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_finalTime"), ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; } +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) { + zval *sqlStatement; + zephir_fetch_params(0, 1, 0, &sqlStatement); -#ifdef HAVE_CONFIG_H -#endif -#include -#include -#include -#include + zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); +} +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) { -ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + RETURN_MEMBER(this_ptr, "_sqlStatement"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) { + + zval *sqlVariables; + + zephir_fetch_params(0, 1, 0, &sqlVariables); + + + + zephir_update_property_this(this_ptr, SL("_sqlVariables"), sqlVariables TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) { + + + RETURN_MEMBER(this_ptr, "_sqlVariables"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) { + + zval *sqlBindTypes; + + zephir_fetch_params(0, 1, 0, &sqlBindTypes); + + + + zephir_update_property_this(this_ptr, SL("_sqlBindTypes"), sqlBindTypes TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) { + + + RETURN_MEMBER(this_ptr, "_sqlBindTypes"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) { + + zval *initialTime; + + zephir_fetch_params(0, 1, 0, &initialTime); + + + + zephir_update_property_this(this_ptr, SL("_initialTime"), initialTime TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) { + + + RETURN_MEMBER(this_ptr, "_initialTime"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) { + + zval *finalTime; + + zephir_fetch_params(0, 1, 0, &finalTime); - return SUCCESS; + + + zephir_update_property_this(this_ptr, SL("_finalTime"), finalTime TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) { + + + RETURN_MEMBER(this_ptr, "_finalTime"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) { + + zval *_0, *_1; + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_finalTime"), PH_NOISY_CC); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_initialTime"), PH_NOISY_CC); + sub_function(return_value, _0, _1 TSRMLS_CC); + return; } @@ -52607,829 +53901,1087 @@ ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { #include +#include -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); +ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_connection"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_result"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_long(phalcon_db_result_pdo_ce, SL("_fetchMode"), 4, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_pdoStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindParams"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("_rowCount"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_db_result_pdo_ce TSRMLS_CC, 1, phalcon_db_resultinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { +static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) { + + zval *connection, *result, *sqlStatement = NULL, *bindParams = NULL, *bindTypes = NULL; + + zephir_fetch_params(0, 2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + + if (!sqlStatement) { + sqlStatement = ZEPHIR_GLOBAL(global_null); + } + if (!bindParams) { + bindParams = ZEPHIR_GLOBAL(global_null); + } + if (!bindTypes) { + bindTypes = ZEPHIR_GLOBAL(global_null); + } + + + zephir_update_property_this(this_ptr, SL("_connection"), connection TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_pdoStatement"), result TSRMLS_CC); + if (Z_TYPE_P(sqlStatement) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); + } + if (Z_TYPE_P(bindParams) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_bindParams"), bindParams TSRMLS_CC); + } + if (Z_TYPE_P(bindTypes) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_bindTypes"), bindTypes TSRMLS_CC); + } + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { - zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; - zval *_1; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_6 = NULL; + zval *_0; ZEPHIR_MM_GROW(); - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, this_ptr, "__construct", &_0); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "execute", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 21, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_VAR(_3); - ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_VAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Router", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_VAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "url", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Url", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetchall", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { + + zend_bool _0; + int ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement, *rowCount = NULL, *connection, *type = NULL, *pdoStatement, *matches, *result = NULL, *row = NULL, *_1, _2, *_3, *_4, *_5, *_6; + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(rowCount); + zephir_read_property_this(&rowCount, this_ptr, SL("_rowCount"), PH_NOISY_CC); + if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { + ZEPHIR_OBS_VAR(connection); + zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&type, connection, "gettype", NULL); + zephir_check_call_status(); + _0 = ZEPHIR_IS_STRING(type, "mysql"); + if (!(_0)) { + _0 = ZEPHIR_IS_STRING(type, "pgsql"); + } + if (_0) { + ZEPHIR_OBS_VAR(pdoStatement); + zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&rowCount, pdoStatement, "rowcount", NULL); + zephir_check_call_status(); + } + if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { + ZEPHIR_OBS_VAR(sqlStatement); + zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); + if (!(zephir_start_with_str(sqlStatement, SL("SELECT COUNT(*) ")))) { + ZEPHIR_INIT_VAR(matches); + ZVAL_NULL(matches); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_SINIT_VAR(_2); + ZVAL_STRING(&_2, "/^SELECT\\s+(.*)/i", 0); + zephir_preg_match(_1, &_2, sqlStatement, matches, 0, 0 , 0 TSRMLS_CC); + if (zephir_is_true(_1)) { + zephir_array_fetch_long(&_3, matches, 1, PH_NOISY | PH_READONLY, "phalcon/db/result/pdo.zep", 202 TSRMLS_CC); + ZEPHIR_INIT_VAR(_4); + ZEPHIR_CONCAT_SVS(_4, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", _3, ")"); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_bindParams"), PH_NOISY_CC); + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&result, connection, "query", NULL, _4, _5, _6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(rowCount); + zephir_array_fetch_string(&rowCount, row, SL("numrows"), PH_NOISY, "phalcon/db/result/pdo.zep", 204 TSRMLS_CC); + } + } else { + ZEPHIR_INIT_NVAR(rowCount); + ZVAL_LONG(rowCount, 1); + } + } + zephir_update_property_this(this_ptr, SL("_rowCount"), rowCount TSRMLS_CC); + } + RETURN_CCTOR(rowCount); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *number_param = NULL, *connection, *pdo = NULL, *sqlStatement, *bindParams, *statement = NULL, *_0 = NULL, *_1; + long number; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &number_param); + + number = zephir_get_intval(number_param); + + + { pdo_stmt_t *stmt; long n; + ZEPHIR_OBS_VAR(connection); + zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&pdo, connection, "getinternalhandler", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "modelsMetadata", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\MetaData\\Memory", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "response", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Response", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "cookies", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Response\\Cookies", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "request", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Request", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "escaper", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Escaper", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "crypt", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Crypt", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "flash", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Flash\\Direct", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "flashSession", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Flash\\Session", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "tag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Tag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "session", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Session\\Adapter\\Files", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("session"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Session\\Bag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("sessionBag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "transactions", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "assets", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Assets\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_OBS_VAR(sqlStatement); + zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(bindParams); + zephir_read_property_this(&bindParams, this_ptr, SL("_bindParams"), PH_NOISY_CC); + if (Z_TYPE_P(bindParams) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); + zephir_check_call_status(); + if (Z_TYPE_P(statement) == IS_OBJECT) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_0, connection, "executeprepared", NULL, statement, bindParams, _1); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(statement, _0); + } + } else { + ZEPHIR_CALL_METHOD(&statement, pdo, "query", NULL, sqlStatement); + zephir_check_call_status(); + } + zephir_update_property_this(this_ptr, SL("_pdoStatement"), statement TSRMLS_CC); + + + stmt = (pdo_stmt_t*) zend_object_store_get_object(statement TSRMLS_CC); + if (!stmt->dbh) { + ZEPHIR_MM_RESTORE(); + RETURN_FALSE; + } + + n = -1; + number--; + while (n != number) { + + if (!stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) { + ZEPHIR_MM_RESTORE(); + RETURN_NULL(); + } + + n++; + } + + } + + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) { + zval *fetchMode_param = NULL, *pdoStatement, *_0 = NULL, *_1; + int fetchMode, ZEPHIR_LAST_CALL_STATUS; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &fetchMode_param); -#ifdef HAVE_CONFIG_H -#endif + fetchMode = zephir_get_intval(fetchMode_param); -#include -#include -#include -#include + ZEPHIR_OBS_VAR(pdoStatement); + zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + do { + if (fetchMode == 2) { + ZEPHIR_INIT_VAR(_0); + ZVAL_LONG(_0, 4); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 4); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 1) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 2); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 2); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 3) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 3); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 3); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 4) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 5); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 5); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + } while(0); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) { +static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_di_injectable_ce, SL("_dependencyInjector"), ZEND_ACC_PROTECTED TSRMLS_CC); + RETURN_MEMBER(this_ptr, "_pdoStatement"); - zend_declare_property_null(phalcon_di_injectable_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_di_injectionawareinterface_ce); - zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; -} -static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zval *dependencyInjector; +#ifdef HAVE_CONFIG_H +#endif - zephir_fetch_params(0, 1, 0, &dependencyInjector); +#include +#include +#include +#include - zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); -} +ZEPHIR_INIT_CLASS(Phalcon_Debug_Dump) { -static PHP_METHOD(Phalcon_Di_Injectable, getDI) { + ZEPHIR_REGISTER_CLASS(Phalcon\\Debug, Dump, phalcon, debug_dump, phalcon_debug_dump_method_entry, 0); - int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; - zval *dependencyInjector = NULL; + zend_declare_property_bool(phalcon_debug_dump_ce, SL("_detailed"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - ZEPHIR_MM_GROW(); + zend_declare_property_null(phalcon_debug_dump_ce, SL("_methods"), ZEND_ACC_PROTECTED TSRMLS_CC); - ZEPHIR_OBS_VAR(dependencyInjector); - zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_0); - zephir_check_call_status(); - } - RETURN_CCTOR(dependencyInjector); + zend_declare_property_null(phalcon_debug_dump_ce, SL("_styles"), ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Di_Injectable, setEventsManager) { +static PHP_METHOD(Phalcon_Debug_Dump, getDetailed) { - zval *eventsManager; - zephir_fetch_params(0, 1, 0, &eventsManager); + RETURN_MEMBER(this_ptr, "_detailed"); +} +static PHP_METHOD(Phalcon_Debug_Dump, setDetailed) { - zephir_update_property_this(this_ptr, SL("_eventsManager"), eventsManager TSRMLS_CC); + zval *detailed; -} + zephir_fetch_params(0, 1, 0, &detailed); -static PHP_METHOD(Phalcon_Di_Injectable, getEventsManager) { - RETURN_MEMBER(this_ptr, "_eventsManager"); + zephir_update_property_this(this_ptr, SL("_detailed"), detailed TSRMLS_CC); } -static PHP_METHOD(Phalcon_Di_Injectable, __get) { +static PHP_METHOD(Phalcon_Debug_Dump, __construct) { - zval *_4; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_7 = NULL; - zval *propertyName_param = NULL, *dependencyInjector = NULL, *service = NULL, *persistent = NULL, *_0, *_2 = NULL, *_3 = NULL, *_5 = NULL; - zval *propertyName = NULL, *_6; + zend_bool detailed, _0; + zval *styles_param = NULL, *detailed_param = NULL, *_1; + zval *styles = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &propertyName_param); + zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); - if (unlikely(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + if (!styles_param) { + ZEPHIR_INIT_VAR(styles); + array_init(styles); + } else { + zephir_get_arrval(styles, styles_param); } - - if (likely(Z_TYPE_P(propertyName_param) == IS_STRING)) { - zephir_get_strval(propertyName, propertyName_param); + if (!detailed_param) { + detailed = 0; } else { - ZEPHIR_INIT_VAR(propertyName); - ZVAL_EMPTY_STRING(propertyName); + detailed = zephir_get_boolval(detailed_param); } - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); - zephir_check_call_status(); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services", "phalcon/di/injectable.zep", 127); - return; - } - } - ZEPHIR_CALL_METHOD(&_2, dependencyInjector, "has", NULL, propertyName); - zephir_check_call_status(); - if (zephir_is_true(_2)) { - ZEPHIR_CALL_METHOD(&service, dependencyInjector, "getshared", NULL, propertyName); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, propertyName, service TSRMLS_CC); - RETURN_CCTOR(service); - } - if (ZEPHIR_IS_STRING(propertyName, "di")) { - zephir_update_property_zval(this_ptr, SL("di"), dependencyInjector TSRMLS_CC); - RETURN_CCTOR(dependencyInjector); + _0 = zephir_is_true(styles); + if (_0) { + _0 = 1 != 1; } - if (ZEPHIR_IS_STRING(propertyName, "persistent")) { - ZEPHIR_INIT_VAR(_4); - zephir_create_array(_4, 1, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_5); - zephir_get_class(_5, this_ptr, 0 TSRMLS_CC); - zephir_array_fast_append(_4, _5); - ZEPHIR_INIT_NVAR(_5); - ZVAL_STRING(_5, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_3, dependencyInjector, "get", NULL, _5, _4); - zephir_check_temp_parameter(_5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(persistent, _3); - zephir_update_property_zval(this_ptr, SL("persistent"), persistent TSRMLS_CC); - RETURN_CCTOR(persistent); + if (_0) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 56); + return; } - ZEPHIR_INIT_VAR(_6); - ZEPHIR_CONCAT_SV(_6, "Access to undefined property ", propertyName); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", &_7, _6); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, styles); zephir_check_call_status(); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(_1); + array_init(_1); + zephir_update_property_this(this_ptr, SL("_methods"), _1 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_detailed"), detailed ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Debug_Dump, all) { + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zval *_1, *_2 = NULL; + zval *_0; + int ZEPHIR_LAST_CALL_STATUS; + ZEPHIR_MM_GROW(); -#ifdef HAVE_CONFIG_H -#endif - -#include + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 2, 0 TSRMLS_CC); + zephir_array_fast_append(_0, this_ptr); + ZEPHIR_INIT_VAR(_1); + ZVAL_STRING(_1, "variables", 1); + zephir_array_fast_append(_0, _1); + ZEPHIR_CALL_FUNCTION(&_2, "func_get_args", &_3); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, _0, _2); + zephir_check_call_status(); + RETURN_MM(); -#include +} +static PHP_METHOD(Phalcon_Debug_Dump, getStyle) { + zval *type_param = NULL, *style, *_0; + zval *type = NULL; -ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); + if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - return SUCCESS; + if (likely(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(type, type_param); + } else { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } -} -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_styles"), PH_NOISY_CC); + if (zephir_array_isset_fetch(&style, _0, type, 1 TSRMLS_CC)) { + RETURN_CTOR(style); + } else { + RETURN_MM_STRING("color:gray", 1); + } -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); +} +static PHP_METHOD(Phalcon_Debug_Dump, setStyles) { + zval *styles = NULL, *defaultStyles, *_0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &styles); -#ifdef HAVE_CONFIG_H -#endif + if (!styles) { + ZEPHIR_CPY_WRT(styles, ZEPHIR_GLOBAL(global_null)); + } else { + ZEPHIR_SEPARATE_PARAM(styles); + } -#include -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); - - zend_declare_property_null(phalcon_di_service_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_di_service_ce, SL("_definition"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_di_service_ce, SL("_shared"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_di_service_ce, SL("_resolved"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_di_service_ce, SL("_sharedInstance"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_class_implements(phalcon_di_service_ce TSRMLS_CC, 1, phalcon_di_serviceinterface_ce); - return SUCCESS; + if (Z_TYPE_P(styles) == IS_NULL) { + ZEPHIR_INIT_NVAR(styles); + array_init(styles); + } + if (Z_TYPE_P(styles) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 100); + return; + } + ZEPHIR_INIT_VAR(defaultStyles); + zephir_create_array(defaultStyles, 11, 0 TSRMLS_CC); + add_assoc_stringl_ex(defaultStyles, SS("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333"), 1); + add_assoc_stringl_ex(defaultStyles, SS("arr"), SL("color:red"), 1); + add_assoc_stringl_ex(defaultStyles, SS("bool"), SL("color:green"), 1); + add_assoc_stringl_ex(defaultStyles, SS("float"), SL("color:fuchsia"), 1); + add_assoc_stringl_ex(defaultStyles, SS("int"), SL("color:blue"), 1); + add_assoc_stringl_ex(defaultStyles, SS("null"), SL("color:black"), 1); + add_assoc_stringl_ex(defaultStyles, SS("num"), SL("color:navy"), 1); + add_assoc_stringl_ex(defaultStyles, SS("obj"), SL("color:purple"), 1); + add_assoc_stringl_ex(defaultStyles, SS("other"), SL("color:maroon"), 1); + add_assoc_stringl_ex(defaultStyles, SS("res"), SL("color:lime"), 1); + add_assoc_stringl_ex(defaultStyles, SS("str"), SL("color:teal"), 1); + ZEPHIR_INIT_VAR(_0); + zephir_fast_array_merge(_0, &(defaultStyles), &(styles) TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_styles"), _0 TSRMLS_CC); + RETURN_MM_MEMBER(this_ptr, "_styles"); } -static PHP_METHOD(Phalcon_Di_Service, __construct) { +static PHP_METHOD(Phalcon_Debug_Dump, one) { - zend_bool shared; - zval *name_param = NULL, *definition, *shared_param = NULL; + int ZEPHIR_LAST_CALL_STATUS; zval *name = NULL; + zval *variable, *name_param = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param); - - if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 1, &variable, &name_param); - if (likely(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(name, name_param); - } else { + if (!name_param) { ZEPHIR_INIT_VAR(name); ZVAL_EMPTY_STRING(name); - } - if (!shared_param) { - shared = 0; } else { - shared = zephir_get_boolval(shared_param); + zephir_get_strval(name, name_param); } - zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - -} - -static PHP_METHOD(Phalcon_Di_Service, getName) { - - - RETURN_MEMBER(this_ptr, "_name"); - -} - -static PHP_METHOD(Phalcon_Di_Service, setShared) { - - zval *shared_param = NULL; - zend_bool shared; - - zephir_fetch_params(0, 1, 0, &shared_param); - - shared = zephir_get_boolval(shared_param); - - - zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, isShared) { - - - RETURN_MEMBER(this_ptr, "_shared"); - -} - -static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { - - zval *sharedInstance; - - zephir_fetch_params(0, 1, 0, &sharedInstance); - - - - zephir_update_property_this(this_ptr, SL("_sharedInstance"), sharedInstance TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, setDefinition) { - - zval *definition; - - zephir_fetch_params(0, 1, 0, &definition); - - - - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - - - RETURN_MEMBER(this_ptr, "_definition"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "variable", NULL, variable, name); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, resolve) { +static PHP_METHOD(Phalcon_Debug_Dump, output) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_7 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zend_bool found; - zval *parameters = NULL, *dependencyInjector = NULL, *shared, *definition, *sharedInstance, *instance = NULL, *builder, *reflection = NULL, *_4, *_5, *_6; + zend_bool _15, _16, _17; + HashTable *_8, *_25, *_37; + HashPosition _7, _24, _36; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL, *_19 = NULL, *_21 = NULL, *_23 = NULL, *_29 = NULL, *_30 = NULL, *_31 = NULL, *_33 = NULL, *_34 = NULL, *_42 = NULL, *_44 = NULL, *_45 = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zval *_1 = NULL, *_12 = NULL, *_40 = NULL; + int tab, ZEPHIR_LAST_CALL_STATUS; + zval *name = NULL, *_0; + zval *variable, *name_param = NULL, *tab_param = NULL, *key = NULL, *value = NULL, *output = NULL, *space, *type = NULL, *attr = NULL, *_2 = NULL, *_3 = NULL, _5 = zval_used_for_init, **_9, *_10 = NULL, *_13 = NULL, *_14 = NULL, *_18 = NULL, *_20 = NULL, *_22, **_26, *_27 = NULL, *_28 = NULL, *_32, *_35, **_38, *_39 = NULL, *_41 = NULL, _43; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, ¶meters, &dependencyInjector); + zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + zephir_get_strval(name, name_param); } - if (!dependencyInjector) { - dependencyInjector = ZEPHIR_GLOBAL(global_null); + if (!tab_param) { + tab = 1; + } else { + tab = zephir_get_intval(tab_param); } - ZEPHIR_OBS_VAR(shared); - zephir_read_property_this(&shared, this_ptr, SL("_shared"), PH_NOISY_CC); - if (zephir_is_true(shared)) { - ZEPHIR_OBS_VAR(sharedInstance); - zephir_read_property_this(&sharedInstance, this_ptr, SL("_sharedInstance"), PH_NOISY_CC); - if (Z_TYPE_P(sharedInstance) != IS_NULL) { - RETURN_CCTOR(sharedInstance); - } + ZEPHIR_INIT_VAR(space); + ZVAL_STRING(space, " ", 1); + ZEPHIR_INIT_VAR(output); + ZVAL_STRING(output, "", 1); + if (name && Z_STRLEN_P(name)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VS(_0, name, " "); + ZEPHIR_CPY_WRT(output, _0); } - found = 1; - ZEPHIR_INIT_VAR(instance); - ZVAL_NULL(instance); - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) == IS_STRING) { - if (zephir_class_exists(definition, 1 TSRMLS_CC)) { - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters TSRMLS_CC)) { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_VAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, definition, parameters TSRMLS_CC); - zephir_check_call_status(); - } - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); - zephir_check_call_status(); - } - } + if (Z_TYPE_P(variable) == IS_ARRAY) { + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_3); + ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":count"), zephir_fast_count_int(variable TSRMLS_CC)); + ZEPHIR_SINIT_VAR(_5); + ZVAL_STRING(&_5, "Array (:count) (\n", 0); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); + zephir_check_call_status(); + zephir_concat_self(&output, _2 TSRMLS_CC); + zephir_is_iterable(variable, &_8, &_7, 0, 0, "phalcon/debug/dump.zep", 154); + for ( + ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS + ; zephir_hash_move_forward_ex(_8, &_7) + ) { + ZEPHIR_GET_HMKEY(key, _8, _7); + ZEPHIR_GET_HVALUE(value, _9); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "[:key] => ", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + _15 = tab == 1; + if (_15) { + _15 = !ZEPHIR_IS_STRING(name, ""); + } + _16 = _15; + if (_16) { + _16 = !(Z_TYPE_P(key) == IS_LONG); + } + _17 = _16; + if (_17) { + _17 = ZEPHIR_IS_EQUAL(name, key); + } + if (_17) { + continue; } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); - zephir_check_call_status(); - } + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); } - } else { - found = 0; } - } else { - if (Z_TYPE_P(definition) == IS_OBJECT) { - if (zephir_instance_of_ev(definition, zend_ce_closure TSRMLS_CC)) { - if (Z_TYPE_P(parameters) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_USER_FUNC_ARRAY(instance, definition, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_USER_FUNC(instance, definition); - zephir_check_call_status(); - } - } else { - ZEPHIR_CPY_WRT(instance, definition); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + zephir_array_update_string(&_1, SL(":class"), &_3, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Object :class", 0); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); + zephir_check_call_status(); + zephir_concat_self(&output, _2 TSRMLS_CC); + ZEPHIR_CALL_FUNCTION(&_13, "get_parent_class", &_21, variable); + zephir_check_call_status(); + if (zephir_is_true(_13)) { + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_18, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_18, "get_parent_class", &_21, variable); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":parent"), &_18, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, " extends :parent", 0); + ZEPHIR_CALL_FUNCTION(&_18, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + zephir_concat_self(&output, _18 TSRMLS_CC); + } + zephir_concat_self_str(&output, SL(" (\n") TSRMLS_CC); + _22 = zephir_fetch_nproperty_this(this_ptr, SL("_detailed"), PH_NOISY_CC); + if (!(zephir_is_true(_22))) { + ZEPHIR_CALL_FUNCTION(&_10, "get_object_vars", &_23, variable); + zephir_check_call_status(); + zephir_is_iterable(_10, &_25, &_24, 0, 0, "phalcon/debug/dump.zep", 171); + for ( + ; zephir_hash_get_current_data_ex(_25, (void**) &_26, &_24) == SUCCESS + ; zephir_hash_move_forward_ex(_25, &_24) + ) { + ZEPHIR_GET_HMKEY(key, _25, _24); + ZEPHIR_GET_HVALUE(value, _26); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_13, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(_12, SS(":type"), SL("public"), 1); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:key (:type) = ", 0); + ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _13, _27); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _28, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); } } else { - if (Z_TYPE_P(definition) == IS_ARRAY) { - ZEPHIR_INIT_VAR(builder); - object_init_ex(builder, phalcon_di_service_builder_ce); - if (zephir_has_constructor(builder TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, builder, "__construct", NULL); - zephir_check_call_status(); + do { + Z_SET_ISREF_P(variable); + ZEPHIR_CALL_FUNCTION(&attr, "each", &_29, variable); + Z_UNSET_ISREF_P(variable); + zephir_check_call_status(); + if (!(zephir_is_true(attr))) { + continue; } - ZEPHIR_CALL_METHOD(&instance, builder, "build", &_3, dependencyInjector, definition, parameters); + ZEPHIR_OBS_NVAR(key); + zephir_array_fetch_string(&key, attr, SL("key"), PH_NOISY, "phalcon/debug/dump.zep", 178 TSRMLS_CC); + ZEPHIR_OBS_NVAR(value); + zephir_array_fetch_string(&value, attr, SL("value"), PH_NOISY, "phalcon/debug/dump.zep", 179 TSRMLS_CC); + if (!(zephir_is_true(key))) { + continue; + } + ZEPHIR_INIT_NVAR(_3); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "\\x00", 0); + ZEPHIR_CALL_FUNCTION(&_10, "ord", &_30, &_5); zephir_check_call_status(); - } else { - found = 0; - } + ZEPHIR_CALL_FUNCTION(&_13, "chr", &_31, _10); + zephir_check_call_status(); + zephir_fast_explode(_3, _13, key, LONG_MAX TSRMLS_CC); + ZEPHIR_CPY_WRT(key, _3); + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "public", 1); + if (zephir_array_isset_long(key, 1)) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "private", 1); + zephir_array_fetch_long(&_32, key, 1, PH_NOISY | PH_READONLY, "phalcon/debug/dump.zep", 190 TSRMLS_CC); + if (ZEPHIR_IS_STRING(_32, "*")) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "protected", 1); + } + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); + Z_SET_ISREF_P(key); + ZEPHIR_CALL_FUNCTION(&_27, "end", &_33, key); + Z_UNSET_ISREF_P(key); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":key"), &_27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":type"), &type, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:key (:type) = ", 0); + ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _18, _27); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _28, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } while (zephir_is_true(attr)); } - } - if (found == 0) { - ZEPHIR_INIT_VAR(_4); - object_init_ex(_4, phalcon_di_exception_ce); - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(_6); - ZEPHIR_CONCAT_SVS(_6, "Service '", _5, "' cannot be resolved"); - ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_7, _6); + ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", &_34, variable); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/di/service.zep", 212 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_is_true(shared)) { - zephir_update_property_this(this_ptr, SL("_sharedInstance"), instance TSRMLS_CC); - } - zephir_update_property_this(this_ptr, SL("_resolved"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - RETURN_CCTOR(instance); - -} - -static PHP_METHOD(Phalcon_Di_Service, setParameter) { - - zval *parameter = NULL; - zval *position_param = NULL, *parameter_param = NULL, *definition, *arguments = NULL; - int position; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); - - position = zephir_get_intval(position_param); - parameter = parameter_param; - - - - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/di/service.zep", 236); - return; + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + zephir_array_update_string(&_12, SL(":class"), &_3, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_12, SS(":count"), zephir_fast_count_int(attr TSRMLS_CC)); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, ":class methods: (:count) (\n", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + _35 = zephir_fetch_nproperty_this(this_ptr, SL("_methods"), PH_NOISY_CC); + if (zephir_fast_in_array(_3, _35 TSRMLS_CC)) { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, "[already listed]\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } else { + zephir_is_iterable(attr, &_37, &_36, 0, 0, "phalcon/debug/dump.zep", 214); + for ( + ; zephir_hash_get_current_data_ex(_37, (void**) &_38, &_36) == SUCCESS + ; zephir_hash_move_forward_ex(_37, &_36) + ) { + ZEPHIR_GET_HVALUE(value, _38); + ZEPHIR_INIT_NVAR(_39); + zephir_get_class(_39, variable, 0 TSRMLS_CC); + zephir_update_property_array_append(this_ptr, SL("_methods"), _39 TSRMLS_CC); + if (ZEPHIR_IS_STRING(value, "__construct")) { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_39); + ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _39); + zephir_check_temp_parameter(_39); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:method(); [constructor]\n", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + } else { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_27, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_40); + zephir_create_array(_40, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_39); + ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "getstyle", &_4, _39); + zephir_check_temp_parameter(_39); + zephir_check_call_status(); + zephir_array_update_string(&_40, SL(":style"), &_28, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_40, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:method();\n", 0); + ZEPHIR_CALL_FUNCTION(&_28, "strtr", &_6, &_5, _40); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_41); + ZEPHIR_CONCAT_VV(_41, _27, _28); + zephir_concat_self(&output, _41 TSRMLS_CC); + } + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, ")\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); + RETURN_MM(); } - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE, "phalcon/di/service.zep", 243); - } else { - ZEPHIR_INIT_NVAR(arguments); - zephir_create_array(arguments, 1, 0 TSRMLS_CC); - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY, "phalcon/di/service.zep", 245); + if (Z_TYPE_P(variable) == IS_LONG) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "int", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Integer (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); } - zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - RETURN_THIS(); + ZEPHIR_CALL_FUNCTION(&_2, "is_float", &_42, variable); + zephir_check_call_status(); + if (zephir_is_true(_2)) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "float", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Float (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (zephir_is_numeric(variable)) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "num", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Numeric string (:length) \":var\"", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_STRING) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "str", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, 4); + ZEPHIR_SINIT_VAR(_43); + ZVAL_STRING(&_43, "utf-8", 0); + ZEPHIR_CALL_FUNCTION(&_2, "htmlentities", &_44, variable, &_5, &_43); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_13, "nl2br", &_45, _2); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":var"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "String (:length) \":var\"", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_BOOL) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "bool", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_LNVAR(_14); + if (zephir_is_true(variable)) { + ZEPHIR_INIT_NVAR(_14); + ZVAL_STRING(_14, "TRUE", 1); + } else { + ZEPHIR_INIT_NVAR(_14); + ZVAL_STRING(_14, "FALSE", 1); + } + zephir_array_update_string(&_1, SL(":var"), &_14, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Boolean (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_NULL) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 1, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "null", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "NULL", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "other", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "(:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, getParameter) { +static PHP_METHOD(Phalcon_Debug_Dump, variable) { - zval *position_param = NULL, *definition, *arguments, *parameter; - int position; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + zval *name = NULL; + zval *variable, *name_param = NULL, *_1 = NULL, *_2, _3; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &position_param); - - position = zephir_get_intval(position_param); - + zephir_fetch_params(1, 1, 1, &variable, &name_param); - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/di/service.zep", 273); - return; - } - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 1 TSRMLS_CC)) { - if (zephir_array_isset_long_fetch(¶meter, arguments, position, 1 TSRMLS_CC)) { - RETURN_CTOR(parameter); - } + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + zephir_get_strval(name, name_param); } - RETURN_MM_NULL(); - -} - -static PHP_METHOD(Phalcon_Di_Service, isResolved) { - RETURN_MEMBER(this_ptr, "_resolved"); + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_2); + ZVAL_STRING(_2, "pre", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, _2); + zephir_check_temp_parameter(_2); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, variable, name); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_VAR(_3); + ZVAL_STRING(&_3, "
:output
", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_4, &_3, _0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, __set_state) { +static PHP_METHOD(Phalcon_Debug_Dump, variables) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zephir_fcall_cache_entry *_7 = NULL; + HashTable *_3; + HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, *name, *definition, *shared; - zval *attributes = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *key = NULL, *value = NULL, *output, *_0 = NULL, **_4, *_5 = NULL, *_6 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - - attributes = attributes_param; - - - ZEPHIR_OBS_VAR(name); - if (!(zephir_array_isset_string_fetch(&name, attributes, SS("_name"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_name' is required", "phalcon/di/service.zep", 304); - return; - } - ZEPHIR_OBS_VAR(definition); - if (!(zephir_array_isset_string_fetch(&definition, attributes, SS("_definition"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_definition' is required", "phalcon/di/service.zep", 308); - return; - } - ZEPHIR_OBS_VAR(shared); - if (!(zephir_array_isset_string_fetch(&shared, attributes, SS("_shared"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_shared' is required", "phalcon/di/service.zep", 312); - return; - } - object_init_ex(return_value, phalcon_di_service_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, name, definition, shared); + ZEPHIR_INIT_VAR(output); + ZVAL_STRING(output, "", 1); + ZEPHIR_CALL_FUNCTION(&_0, "func_get_args", &_1); zephir_check_call_status(); - RETURN_MM(); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/debug/dump.zep", 283); + for ( + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) + ) { + ZEPHIR_GET_HMKEY(key, _3, _2); + ZEPHIR_GET_HVALUE(value, _4); + ZEPHIR_INIT_LNVAR(_6); + ZEPHIR_CONCAT_SV(_6, "var ", key); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "one", &_7, value, _6); + zephir_check_call_status(); + zephir_concat_self(&output, _5 TSRMLS_CC); + } + RETURN_CCTOR(output); } @@ -53441,33 +54993,41 @@ static PHP_METHOD(Phalcon_Di_Service, __set_state) { #include +#include #include +#include -ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { +ZEPHIR_INIT_CLASS(Phalcon_Debug_Exception) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Debug, Exception, phalcon, debug_exception, phalcon_exception_ce, NULL, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __construct); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); +#ifdef HAVE_CONFIG_H +#endif -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); +#include -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); +#include +#include +#include -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); + +ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} @@ -53483,15 +55043,15 @@ ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { +static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; zval *_1; @@ -53500,16 +55060,16 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_MM_GROW(); - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, this_ptr, "__construct", &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, this_ptr, "__construct", &_0); zephir_check_call_status(); ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 10, 0 TSRMLS_CC); + zephir_create_array(_1, 21, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_VAR(_3); ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_VAR(_4); - ZVAL_STRING(_4, "Phalcon\\CLI\\Router", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_VAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); @@ -53522,7 +55082,7 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\CLI\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); @@ -53533,6 +55093,19 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "url", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Url", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); @@ -53559,6 +55132,45 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "response", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Response", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "cookies", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Response\\Cookies", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "request", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Request", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); @@ -53585,6 +55197,32 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "crypt", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Crypt", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); @@ -53598,424 +55236,253 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "flash", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Flash\\Direct", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "flashSession", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Flash\\Session", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "transactionManager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "tag", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Tag", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - -} - - - - -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - - return SUCCESS; - -} - -static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameter) { - - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zval *_2 = NULL; - zval *argument = NULL; - int position, ZEPHIR_LAST_CALL_STATUS; - zval *dependencyInjector, *position_param = NULL, *argument_param = NULL, *type, *name = NULL, *value, *instanceArguments, *_0 = NULL, _1 = zval_used_for_init; + zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "session", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Session\\Adapter\\Files", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("session"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Session\\Bag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("sessionBag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "transactions", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "assets", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Assets\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &dependencyInjector, &position_param, &argument_param); +} - position = zephir_get_intval(position_param); - argument = argument_param; - ZEPHIR_OBS_VAR(type); - if (!(zephir_array_isset_string_fetch(&type, argument, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_VAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_VAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_VAR(_2); - ZEPHIR_CONCAT_SVS(_2, "Argument at position ", &_1, " must have a type"); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 49 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - do { - if (ZEPHIR_IS_STRING(type, "service")) { - ZEPHIR_OBS_VAR(name); - if (!(zephir_array_isset_string_fetch(&name, argument, SS("name"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'name' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 59 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 62); - return; - } - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "parameter")) { - ZEPHIR_OBS_VAR(value); - if (!(zephir_array_isset_string_fetch(&value, argument, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'value' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 71 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(value); - } - if (ZEPHIR_IS_STRING(type, "instance")) { - ZEPHIR_OBS_NVAR(name); - if (!(zephir_array_isset_string_fetch(&name, argument, SS("className"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'className' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 81 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 85); - return; - } - ZEPHIR_OBS_VAR(instanceArguments); - if (zephir_array_isset_string_fetch(&instanceArguments, argument, SS("arguments"), 0 TSRMLS_CC)) { - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name, instanceArguments); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Unknown service type in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 104 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } while(0); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_MM_RESTORE(); +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("_dependencyInjector"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_di_injectionawareinterface_ce); + zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameters) { +static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - HashTable *_1; - HashPosition _0; - zval *arguments = NULL; - zval *dependencyInjector, *arguments_param = NULL, *position = NULL, *argument = NULL, *buildArguments, **_2, *_3 = NULL; + zval *dependencyInjector; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &dependencyInjector, &arguments_param); + zephir_fetch_params(0, 1, 0, &dependencyInjector); - arguments = arguments_param; + zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); - ZEPHIR_INIT_VAR(buildArguments); - array_init(buildArguments); - zephir_is_iterable(arguments, &_1, &_0, 0, 0, "phalcon/di/service/builder.zep", 119); - for ( - ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS - ; zephir_hash_move_forward_ex(_1, &_0) - ) { - ZEPHIR_GET_HMKEY(position, _1, _0); - ZEPHIR_GET_HVALUE(argument, _2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_4, dependencyInjector, position, argument); +} + +static PHP_METHOD(Phalcon_Di_Injectable, getDI) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *dependencyInjector = NULL; + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(dependencyInjector); + zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_0); zephir_check_call_status(); - zephir_array_append(&buildArguments, _3, PH_SEPARATE, "phalcon/di/service/builder.zep", 117); } - RETURN_CCTOR(buildArguments); + RETURN_CCTOR(dependencyInjector); } -static PHP_METHOD(Phalcon_Di_Service_Builder, build) { +static PHP_METHOD(Phalcon_Di_Injectable, setEventsManager) { - zephir_fcall_cache_entry *_10 = NULL; - HashTable *_6, *_12; - HashPosition _5, _11; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_15 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *definition = NULL; - zval *dependencyInjector, *definition_param = NULL, *parameters = NULL, *className, *arguments = NULL, *paramCalls = NULL, *methodPosition = NULL, *method = NULL, *methodName = NULL, *methodCall = NULL, *instance = NULL, *propertyPosition = NULL, *property = NULL, *propertyName = NULL, *propertyValue = NULL, *reflection = NULL, *_3 = NULL, **_7, *_8 = NULL, *_9 = NULL, **_13, *_14 = NULL; + zval *eventsManager; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &dependencyInjector, &definition_param, ¶meters); + zephir_fetch_params(0, 1, 0, &eventsManager); - definition = definition_param; - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); - } + zephir_update_property_this(this_ptr, SL("_eventsManager"), eventsManager TSRMLS_CC); - ZEPHIR_OBS_VAR(className); - if (!(zephir_array_isset_string_fetch(&className, definition, SS("className"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/di/service/builder.zep", 140); - return; +} + +static PHP_METHOD(Phalcon_Di_Injectable, getEventsManager) { + + + RETURN_MEMBER(this_ptr, "_eventsManager"); + +} + +static PHP_METHOD(Phalcon_Di_Injectable, __get) { + + zval *_4; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_7 = NULL; + zval *propertyName_param = NULL, *dependencyInjector = NULL, *service = NULL, *persistent = NULL, *_0, *_2 = NULL, *_3 = NULL, *_5 = NULL; + zval *propertyName = NULL, *_6; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &propertyName_param); + + if (unlikely(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters TSRMLS_CC)) { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_VAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, parameters TSRMLS_CC); - zephir_check_call_status(); - } - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); - zephir_check_call_status(); - } - } + + if (likely(Z_TYPE_P(propertyName_param) == IS_STRING)) { + zephir_get_strval(propertyName, propertyName_param); } else { - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, _3 TSRMLS_CC); - zephir_check_call_status(); - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); - zephir_check_call_status(); - } - } + ZEPHIR_INIT_VAR(propertyName); + ZVAL_EMPTY_STRING(propertyName); } - ZEPHIR_OBS_VAR(paramCalls); - if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("calls"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(instance) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 192); - return; - } - if (Z_TYPE_P(paramCalls) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 196); + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(dependencyInjector, _0); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); + zephir_check_call_status(); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services", "phalcon/di/injectable.zep", 127); return; } - zephir_is_iterable(paramCalls, &_6, &_5, 0, 0, "phalcon/di/service/builder.zep", 250); - for ( - ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS - ; zephir_hash_move_forward_ex(_6, &_5) - ) { - ZEPHIR_GET_HMKEY(methodPosition, _6, _5); - ZEPHIR_GET_HVALUE(method, _7); - if (Z_TYPE_P(method) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Method call must be an array on position ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 208 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(methodName); - if (!(zephir_array_isset_string_fetch(&methodName, method, SS("method"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The method name is required on position ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 215 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(methodCall); - zephir_create_array(methodCall, 2, 0 TSRMLS_CC); - zephir_array_fast_append(methodCall, instance); - zephir_array_fast_append(methodCall, methodName); - ZEPHIR_OBS_NVAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, method, SS("arguments"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(arguments) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Call arguments must be an array ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 226 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_fast_count_int(arguments TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(_8); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(_8, methodCall, _3); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_INIT_NVAR(_8); - ZEPHIR_CALL_USER_FUNC(_8, methodCall); - zephir_check_call_status(); - } } - ZEPHIR_OBS_NVAR(paramCalls); - if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("properties"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(instance) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 258); - return; - } - if (Z_TYPE_P(paramCalls) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 262); - return; - } - zephir_is_iterable(paramCalls, &_12, &_11, 0, 0, "phalcon/di/service/builder.zep", 297); - for ( - ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS - ; zephir_hash_move_forward_ex(_12, &_11) - ) { - ZEPHIR_GET_HMKEY(propertyPosition, _12, _11); - ZEPHIR_GET_HVALUE(property, _13); - if (Z_TYPE_P(property) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_14); - object_init_ex(_14, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Property must be an array on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _14, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_14, "phalcon/di/service/builder.zep", 274 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(propertyName); - if (!(zephir_array_isset_string_fetch(&propertyName, property, SS("name"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The property name is required on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 281 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(propertyValue); - if (!(zephir_array_isset_string_fetch(&propertyValue, property, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The property value is required on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 288 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_15, dependencyInjector, propertyPosition, propertyValue); - zephir_check_call_status(); - zephir_update_property_zval_zval(instance, propertyName, _3 TSRMLS_CC); - } + ZEPHIR_CALL_METHOD(&_2, dependencyInjector, "has", NULL, propertyName); + zephir_check_call_status(); + if (zephir_is_true(_2)) { + ZEPHIR_CALL_METHOD(&service, dependencyInjector, "getshared", NULL, propertyName); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, propertyName, service TSRMLS_CC); + RETURN_CCTOR(service); } - RETURN_CCTOR(instance); + if (ZEPHIR_IS_STRING(propertyName, "di")) { + zephir_update_property_zval(this_ptr, SL("di"), dependencyInjector TSRMLS_CC); + RETURN_CCTOR(dependencyInjector); + } + if (ZEPHIR_IS_STRING(propertyName, "persistent")) { + ZEPHIR_INIT_VAR(_4); + zephir_create_array(_4, 1, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_5); + zephir_get_class(_5, this_ptr, 0 TSRMLS_CC); + zephir_array_fast_append(_4, _5); + ZEPHIR_INIT_NVAR(_5); + ZVAL_STRING(_5, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_3, dependencyInjector, "get", NULL, _5, _4); + zephir_check_temp_parameter(_5); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(persistent, _3); + zephir_update_property_zval(this_ptr, SL("persistent"), persistent TSRMLS_CC); + RETURN_CCTOR(persistent); + } + ZEPHIR_INIT_VAR(_6); + ZEPHIR_CONCAT_SV(_6, "Access to undefined property ", propertyName); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", &_7, _6); + zephir_check_call_status(); + RETURN_MM_NULL(); } @@ -54027,20 +55494,22 @@ static PHP_METHOD(Phalcon_Di_Service_Builder, build) { #include -#include #include -#include -ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); + +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); + @@ -54055,136 +55524,347 @@ ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Events_Event) { +ZEPHIR_INIT_CLASS(Phalcon_Di_Service) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); - zend_declare_property_null(phalcon_events_event_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_events_event_ce, SL("_source"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_definition"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_events_event_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(phalcon_di_service_ce, SL("_shared"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(phalcon_events_event_ce, SL("_stopped"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(phalcon_di_service_ce, SL("_resolved"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(phalcon_events_event_ce, SL("_cancelable"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_sharedInstance"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_class_implements(phalcon_di_service_ce TSRMLS_CC, 1, phalcon_di_serviceinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Event, setType) { +static PHP_METHOD(Phalcon_Di_Service, __construct) { - zval *type; + zend_bool shared; + zval *name_param = NULL, *definition, *shared_param = NULL; + zval *name = NULL; - zephir_fetch_params(0, 1, 0, &type); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param); + + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + if (!shared_param) { + shared = 0; + } else { + shared = zephir_get_boolval(shared_param); + } - zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Events_Event, getType) { +static PHP_METHOD(Phalcon_Di_Service, getName) { - RETURN_MEMBER(this_ptr, "_type"); + RETURN_MEMBER(this_ptr, "_name"); } -static PHP_METHOD(Phalcon_Events_Event, getSource) { +static PHP_METHOD(Phalcon_Di_Service, setShared) { + zval *shared_param = NULL; + zend_bool shared; - RETURN_MEMBER(this_ptr, "_source"); + zephir_fetch_params(0, 1, 0, &shared_param); + + shared = zephir_get_boolval(shared_param); + + + zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, setData) { +static PHP_METHOD(Phalcon_Di_Service, isShared) { - zval *data; - zephir_fetch_params(0, 1, 0, &data); + RETURN_MEMBER(this_ptr, "_shared"); + +} +static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { + zval *sharedInstance; - zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + zephir_fetch_params(0, 1, 0, &sharedInstance); + + + + zephir_update_property_this(this_ptr, SL("_sharedInstance"), sharedInstance TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, getData) { +static PHP_METHOD(Phalcon_Di_Service, setDefinition) { + zval *definition; - RETURN_MEMBER(this_ptr, "_data"); + zephir_fetch_params(0, 1, 0, &definition); + + + + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, getCancelable) { +static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - RETURN_MEMBER(this_ptr, "_cancelable"); + RETURN_MEMBER(this_ptr, "_definition"); } -static PHP_METHOD(Phalcon_Events_Event, __construct) { +static PHP_METHOD(Phalcon_Di_Service, resolve) { - zend_bool cancelable; - zval *type_param = NULL, *source, *data = NULL, *cancelable_param = NULL; - zval *type = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_7 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zend_bool found; + zval *parameters = NULL, *dependencyInjector = NULL, *shared, *definition, *sharedInstance, *instance = NULL, *builder, *reflection = NULL, *_4, *_5, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); + zephir_fetch_params(1, 0, 2, ¶meters, &dependencyInjector); - if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + if (!parameters) { + parameters = ZEPHIR_GLOBAL(global_null); + } + if (!dependencyInjector) { + dependencyInjector = ZEPHIR_GLOBAL(global_null); } - if (likely(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(type, type_param); + + ZEPHIR_OBS_VAR(shared); + zephir_read_property_this(&shared, this_ptr, SL("_shared"), PH_NOISY_CC); + if (zephir_is_true(shared)) { + ZEPHIR_OBS_VAR(sharedInstance); + zephir_read_property_this(&sharedInstance, this_ptr, SL("_sharedInstance"), PH_NOISY_CC); + if (Z_TYPE_P(sharedInstance) != IS_NULL) { + RETURN_CCTOR(sharedInstance); + } + } + found = 1; + ZEPHIR_INIT_VAR(instance); + ZVAL_NULL(instance); + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) == IS_STRING) { + if (zephir_class_exists(definition, 1 TSRMLS_CC)) { + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters TSRMLS_CC)) { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_VAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, definition, parameters TSRMLS_CC); + zephir_check_call_status(); + } + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + found = 0; + } } else { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); + if (Z_TYPE_P(definition) == IS_OBJECT) { + if (zephir_instance_of_ev(definition, zend_ce_closure TSRMLS_CC)) { + if (Z_TYPE_P(parameters) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_USER_FUNC_ARRAY(instance, definition, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_USER_FUNC(instance, definition); + zephir_check_call_status(); + } + } else { + ZEPHIR_CPY_WRT(instance, definition); + } + } else { + if (Z_TYPE_P(definition) == IS_ARRAY) { + ZEPHIR_INIT_VAR(builder); + object_init_ex(builder, phalcon_di_service_builder_ce); + if (zephir_has_constructor(builder TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, builder, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&instance, builder, "build", &_3, dependencyInjector, definition, parameters); + zephir_check_call_status(); + } else { + found = 0; + } + } } - if (!data) { - data = ZEPHIR_GLOBAL(global_null); + if (found == 0) { + ZEPHIR_INIT_VAR(_4); + object_init_ex(_4, phalcon_di_exception_ce); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(_6); + ZEPHIR_CONCAT_SVS(_6, "Service '", _5, "' cannot be resolved"); + ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_7, _6); + zephir_check_call_status(); + zephir_throw_exception_debug(_4, "phalcon/di/service.zep", 212 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - if (!cancelable_param) { - cancelable = 1; - } else { - cancelable = zephir_get_boolval(cancelable_param); + if (zephir_is_true(shared)) { + zephir_update_property_this(this_ptr, SL("_sharedInstance"), instance TSRMLS_CC); } + zephir_update_property_this(this_ptr, SL("_resolved"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + RETURN_CCTOR(instance); + +} +static PHP_METHOD(Phalcon_Di_Service, setParameter) { - zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_source"), source TSRMLS_CC); - if (Z_TYPE_P(data) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + zval *parameter = NULL; + zval *position_param = NULL, *parameter_param = NULL, *definition, *arguments = NULL; + int position; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); + + position = zephir_get_intval(position_param); + parameter = parameter_param; + + + + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/di/service.zep", 236); + return; } - if (cancelable != 1) { - zephir_update_property_this(this_ptr, SL("_cancelable"), cancelable ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_OBS_VAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE, "phalcon/di/service.zep", 243); + } else { + ZEPHIR_INIT_NVAR(arguments); + zephir_create_array(arguments, 1, 0 TSRMLS_CC); + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY, "phalcon/di/service.zep", 245); } - ZEPHIR_MM_RESTORE(); + zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Events_Event, stop) { +static PHP_METHOD(Phalcon_Di_Service, getParameter) { - zval *_0; + zval *position_param = NULL, *definition, *arguments, *parameter; + int position; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &position_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_cancelable"), PH_NOISY_CC); - if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/events/event.zep", 93); + position = zephir_get_intval(position_param); + + + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/di/service.zep", 273); return; } - zephir_update_property_this(this_ptr, SL("_stopped"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 1 TSRMLS_CC)) { + if (zephir_array_isset_long_fetch(¶meter, arguments, position, 1 TSRMLS_CC)) { + RETURN_CTOR(parameter); + } + } + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Events_Event, isStopped) { +static PHP_METHOD(Phalcon_Di_Service, isResolved) { - RETURN_MEMBER(this_ptr, "_stopped"); + RETURN_MEMBER(this_ptr, "_resolved"); + +} + +static PHP_METHOD(Phalcon_Di_Service, __set_state) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, *name, *definition, *shared; + zval *attributes = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + + attributes = attributes_param; + + + + ZEPHIR_OBS_VAR(name); + if (!(zephir_array_isset_string_fetch(&name, attributes, SS("_name"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_name' is required", "phalcon/di/service.zep", 304); + return; + } + ZEPHIR_OBS_VAR(definition); + if (!(zephir_array_isset_string_fetch(&definition, attributes, SS("_definition"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_definition' is required", "phalcon/di/service.zep", 308); + return; + } + ZEPHIR_OBS_VAR(shared); + if (!(zephir_array_isset_string_fetch(&shared, attributes, SS("_shared"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_shared' is required", "phalcon/di/service.zep", 312); + return; + } + object_init_ex(return_value, phalcon_di_service_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, name, definition, shared); + zephir_check_call_status(); + RETURN_MM(); } @@ -54200,17 +55880,29 @@ static PHP_METHOD(Phalcon_Events_Event, isStopped) { -ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) { +ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __construct); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getName); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); @@ -54226,14 +55918,162 @@ ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); -ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); return SUCCESS; } +static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { + + zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; + zval *_1; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_6 = NULL; + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, this_ptr, "__construct", &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 10, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_VAR(_3); + ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_VAR(_4); + ZVAL_STRING(_4, "Phalcon\\CLI\\Router", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_VAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\CLI\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "modelsMetadata", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\MetaData\\Memory", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "escaper", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Escaper", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "transactionManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + @@ -54248,234 +56088,487 @@ ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); - - zend_declare_property_null(phalcon_events_manager_ce, SL("_events"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("_collect"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("_enablePriorities"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); +ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - zend_declare_property_null(phalcon_events_manager_ce, SL("_responses"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - zend_class_implements(phalcon_events_manager_ce TSRMLS_CC, 1, phalcon_events_managerinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, attach) { +static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameter) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - int priority, ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, *priority_param = NULL, *priorityQueue = NULL, *_0, *_1, *_2 = NULL; - zval *eventType = NULL; + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zval *_2 = NULL; + zval *argument = NULL; + int position, ZEPHIR_LAST_CALL_STATUS; + zval *dependencyInjector, *position_param = NULL, *argument_param = NULL, *type, *name = NULL, *value, *instanceArguments, *_0 = NULL, _1 = zval_used_for_init; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); - - if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 3, 0, &dependencyInjector, &position_param, &argument_param); - if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(eventType); - ZVAL_EMPTY_STRING(eventType); - } - if (!priority_param) { - priority = 100; - } else { - if (unlikely(Z_TYPE_P(priority_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be a long/integer") TSRMLS_CC); - RETURN_MM_NULL(); - } + position = zephir_get_intval(position_param); + argument = argument_param; - priority = Z_LVAL_P(priority_param); - } - if (Z_TYPE_P(handler) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 56); + ZEPHIR_OBS_VAR(type); + if (!(zephir_array_isset_string_fetch(&type, argument, SS("type"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_VAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SVS(_2, "Argument at position ", &_1, " must have a type"); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 49 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_OBS_VAR(priorityQueue); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); - if (!(zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC))) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_enablePriorities"), PH_NOISY_CC); - ZEPHIR_INIT_NVAR(priorityQueue); - if (zephir_is_true(_1)) { - object_init_ex(priorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(priorityQueue TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "__construct", NULL); + do { + if (ZEPHIR_IS_STRING(type, "service")) { + ZEPHIR_OBS_VAR(name); + if (!(zephir_array_isset_string_fetch(&name, argument, SS("name"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'name' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 59 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, 1); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", &_3, _2); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 62); + return; + } + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); - } else { - array_init(priorityQueue); + RETURN_MM(); } - } - if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(_2); - ZVAL_LONG(_2, priority); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "insert", &_4, handler, _2); + if (ZEPHIR_IS_STRING(type, "parameter")) { + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_string_fetch(&value, argument, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'value' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 71 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(value); + } + if (ZEPHIR_IS_STRING(type, "instance")) { + ZEPHIR_OBS_NVAR(name); + if (!(zephir_array_isset_string_fetch(&name, argument, SS("className"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'className' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 81 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 85); + return; + } + ZEPHIR_OBS_VAR(instanceArguments); + if (zephir_array_isset_string_fetch(&instanceArguments, argument, SS("arguments"), 0 TSRMLS_CC)) { + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name, instanceArguments); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Unknown service type in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); zephir_check_call_status(); - } else { - zephir_array_append(&priorityQueue, handler, PH_SEPARATE, "phalcon/events/manager.zep", 82); - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); - } + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 104 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Events_Manager, detach) { +static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameters) { - zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_10 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, *priorityQueue, *newPriorityQueue, *key = NULL, *data = NULL, *_0, *_1 = NULL, *_3 = NULL, *_6, *_7, *_8; - zval *eventType = NULL; + HashTable *_1; + HashPosition _0; + zval *arguments = NULL; + zval *dependencyInjector, *arguments_param = NULL, *position = NULL, *argument = NULL, *buildArguments, **_2, *_3 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &eventType_param, &handler); + zephir_fetch_params(1, 2, 0, &dependencyInjector, &arguments_param); - if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + arguments = arguments_param; + + + + ZEPHIR_INIT_VAR(buildArguments); + array_init(buildArguments); + zephir_is_iterable(arguments, &_1, &_0, 0, 0, "phalcon/di/service/builder.zep", 119); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HMKEY(position, _1, _0); + ZEPHIR_GET_HVALUE(argument, _2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_4, dependencyInjector, position, argument); + zephir_check_call_status(); + zephir_array_append(&buildArguments, _3, PH_SEPARATE, "phalcon/di/service/builder.zep", 117); } + RETURN_CCTOR(buildArguments); - if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(eventType); - ZVAL_EMPTY_STRING(eventType); +} + +static PHP_METHOD(Phalcon_Di_Service_Builder, build) { + + zephir_fcall_cache_entry *_10 = NULL; + HashTable *_6, *_12; + HashPosition _5, _11; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_15 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *definition = NULL; + zval *dependencyInjector, *definition_param = NULL, *parameters = NULL, *className, *arguments = NULL, *paramCalls = NULL, *methodPosition = NULL, *method = NULL, *methodName = NULL, *methodCall = NULL, *instance = NULL, *propertyPosition = NULL, *property = NULL, *propertyName = NULL, *propertyValue = NULL, *reflection = NULL, *_3 = NULL, **_7, *_8 = NULL, *_9 = NULL, **_13, *_14 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &dependencyInjector, &definition_param, ¶meters); + + definition = definition_param; + + if (!parameters) { + parameters = ZEPHIR_GLOBAL(global_null); } - if (Z_TYPE_P(handler) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 99); + ZEPHIR_OBS_VAR(className); + if (!(zephir_array_isset_string_fetch(&className, definition, SS("className"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/di/service/builder.zep", 140); return; } - ZEPHIR_OBS_VAR(priorityQueue); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); - if (zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC)) { - if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { - ZEPHIR_INIT_VAR(newPriorityQueue); - object_init_ex(newPriorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(newPriorityQueue TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "__construct", NULL); + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters TSRMLS_CC)) { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_VAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, parameters TSRMLS_CC); zephir_check_call_status(); } - ZEPHIR_INIT_VAR(_1); - ZVAL_LONG(_1, 1); - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "setextractflags", &_2, _1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_1); - ZVAL_LONG(_1, 3); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", NULL, _1); + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + ZEPHIR_OBS_VAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "top", NULL); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, _3 TSRMLS_CC); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, priorityQueue, "valid", NULL); + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); zephir_check_call_status(); - if (!(zephir_is_true(_3))) { - break; - } - ZEPHIR_CALL_METHOD(&data, priorityQueue, "current", &_4); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "next", &_5); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); zephir_check_call_status(); - zephir_array_fetch_string(&_6, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 116 TSRMLS_CC); - if (!ZEPHIR_IS_IDENTICAL(_6, handler)) { - zephir_array_fetch_string(&_7, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); - zephir_array_fetch_string(&_8, data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "insert", &_9, _7, _8); + } + } + } + ZEPHIR_OBS_VAR(paramCalls); + if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("calls"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(instance) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 192); + return; + } + if (Z_TYPE_P(paramCalls) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 196); + return; + } + zephir_is_iterable(paramCalls, &_6, &_5, 0, 0, "phalcon/di/service/builder.zep", 250); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HMKEY(methodPosition, _6, _5); + ZEPHIR_GET_HVALUE(method, _7); + if (Z_TYPE_P(method) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Method call must be an array on position ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 208 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(methodName); + if (!(zephir_array_isset_string_fetch(&methodName, method, SS("method"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The method name is required on position ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 215 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(methodCall); + zephir_create_array(methodCall, 2, 0 TSRMLS_CC); + zephir_array_fast_append(methodCall, instance); + zephir_array_fast_append(methodCall, methodName); + ZEPHIR_OBS_NVAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, method, SS("arguments"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(arguments) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Call arguments must be an array ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 226 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_fast_count_int(arguments TSRMLS_CC)) { + ZEPHIR_INIT_NVAR(_8); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(_8, methodCall, _3); zephir_check_call_status(); + continue; } } - zephir_update_property_array(this_ptr, SL("_events"), eventType, newPriorityQueue TSRMLS_CC); - } else { - ZEPHIR_CALL_FUNCTION(&key, "array_search", &_10, handler, priorityQueue, ZEPHIR_GLOBAL(global_true)); + ZEPHIR_INIT_NVAR(_8); + ZEPHIR_CALL_USER_FUNC(_8, methodCall); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(key)) { - zephir_array_unset(&priorityQueue, key, PH_SEPARATE); + } + } + ZEPHIR_OBS_NVAR(paramCalls); + if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("properties"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(instance) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 258); + return; + } + if (Z_TYPE_P(paramCalls) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 262); + return; + } + zephir_is_iterable(paramCalls, &_12, &_11, 0, 0, "phalcon/di/service/builder.zep", 297); + for ( + ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS + ; zephir_hash_move_forward_ex(_12, &_11) + ) { + ZEPHIR_GET_HMKEY(propertyPosition, _12, _11); + ZEPHIR_GET_HVALUE(property, _13); + if (Z_TYPE_P(property) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_14); + object_init_ex(_14, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Property must be an array on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _14, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_14, "phalcon/di/service/builder.zep", 274 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + ZEPHIR_OBS_NVAR(propertyName); + if (!(zephir_array_isset_string_fetch(&propertyName, property, SS("name"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The property name is required on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 281 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(propertyValue); + if (!(zephir_array_isset_string_fetch(&propertyValue, property, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The property value is required on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 288 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_15, dependencyInjector, propertyPosition, propertyValue); + zephir_check_call_status(); + zephir_update_property_zval_zval(instance, propertyName, _3 TSRMLS_CC); } } - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(instance); } -static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) { - zval *enablePriorities_param = NULL; - zend_bool enablePriorities; - zephir_fetch_params(0, 1, 0, &enablePriorities_param); - enablePriorities = zephir_get_boolval(enablePriorities_param); +#ifdef HAVE_CONFIG_H +#endif +#include + +#include +#include +#include - zephir_update_property_this(this_ptr, SL("_enablePriorities"), enablePriorities ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + + +ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) { - RETURN_MEMBER(this_ptr, "_enablePriorities"); + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Event) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); + + zend_declare_property_null(phalcon_events_event_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_event_ce, SL("_source"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_event_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_event_ce, SL("_stopped"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_event_ce, SL("_cancelable"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, collectResponses) { +static PHP_METHOD(Phalcon_Events_Event, setType) { - zval *collect_param = NULL; - zend_bool collect; + zval *type; - zephir_fetch_params(0, 1, 0, &collect_param); + zephir_fetch_params(0, 1, 0, &type); - collect = zephir_get_boolval(collect_param); - zephir_update_property_this(this_ptr, SL("_collect"), collect ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Manager, isCollecting) { +static PHP_METHOD(Phalcon_Events_Event, getType) { - RETURN_MEMBER(this_ptr, "_collect"); + RETURN_MEMBER(this_ptr, "_type"); } -static PHP_METHOD(Phalcon_Events_Manager, getResponses) { +static PHP_METHOD(Phalcon_Events_Event, getSource) { - RETURN_MEMBER(this_ptr, "_responses"); + RETURN_MEMBER(this_ptr, "_source"); } -static PHP_METHOD(Phalcon_Events_Manager, detachAll) { +static PHP_METHOD(Phalcon_Events_Event, setData) { - zval *type_param = NULL, *_0, *_1; + zval *data; + + zephir_fetch_params(0, 1, 0, &data); + + + + zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Event, getData) { + + + RETURN_MEMBER(this_ptr, "_data"); + +} + +static PHP_METHOD(Phalcon_Events_Event, getCancelable) { + + + RETURN_MEMBER(this_ptr, "_cancelable"); + +} + +static PHP_METHOD(Phalcon_Events_Event, __construct) { + + zend_bool cancelable; + zval *type_param = NULL, *source, *data = NULL, *cancelable_param = NULL; zval *type = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &type_param); + zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); - if (!type_param) { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); - } else { if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); RETURN_MM_NULL(); @@ -54487,10 +56580,352 @@ static PHP_METHOD(Phalcon_Events_Manager, detachAll) { ZEPHIR_INIT_VAR(type); ZVAL_EMPTY_STRING(type); } + if (!data) { + data = ZEPHIR_GLOBAL(global_null); } - - - if (ZEPHIR_IS_STRING_IDENTICAL(type, "")) { + if (!cancelable_param) { + cancelable = 1; + } else { + cancelable = zephir_get_boolval(cancelable_param); + } + + + zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_source"), source TSRMLS_CC); + if (Z_TYPE_P(data) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + } + if (cancelable != 1) { + zephir_update_property_this(this_ptr, SL("_cancelable"), cancelable ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Event, stop) { + + zval *_0; + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_cancelable"), PH_NOISY_CC); + if (!(zephir_is_true(_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/events/event.zep", 93); + return; + } + zephir_update_property_this(this_ptr, SL("_stopped"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Event, isStopped) { + + + RETURN_MEMBER(this_ptr, "_stopped"); + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); + +ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); + + zend_declare_property_null(phalcon_events_manager_ce, SL("_events"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_manager_ce, SL("_collect"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_manager_ce, SL("_enablePriorities"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_manager_ce, SL("_responses"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_events_manager_ce TSRMLS_CC, 1, phalcon_events_managerinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Events_Manager, attach) { + + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; + int priority, ZEPHIR_LAST_CALL_STATUS; + zval *eventType_param = NULL, *handler, *priority_param = NULL, *priorityQueue = NULL, *_0, *_1, *_2 = NULL; + zval *eventType = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); + + if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { + zephir_get_strval(eventType, eventType_param); + } else { + ZEPHIR_INIT_VAR(eventType); + ZVAL_EMPTY_STRING(eventType); + } + if (!priority_param) { + priority = 100; + } else { + if (unlikely(Z_TYPE_P(priority_param) != IS_LONG)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be a long/integer") TSRMLS_CC); + RETURN_MM_NULL(); + } + + priority = Z_LVAL_P(priority_param); + } + + + if (Z_TYPE_P(handler) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 56); + return; + } + ZEPHIR_OBS_VAR(priorityQueue); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC))) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_enablePriorities"), PH_NOISY_CC); + ZEPHIR_INIT_NVAR(priorityQueue); + if (zephir_is_true(_1)) { + object_init_ex(priorityQueue, spl_ce_SplPriorityQueue); + if (zephir_has_constructor(priorityQueue TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(_2); + ZVAL_LONG(_2, 1); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", &_3, _2); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } else { + array_init(priorityQueue); + } + } + if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(_2); + ZVAL_LONG(_2, priority); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "insert", &_4, handler, _2); + zephir_check_call_status(); + } else { + zephir_array_append(&priorityQueue, handler, PH_SEPARATE, "phalcon/events/manager.zep", 82); + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Manager, detach) { + + zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_10 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *eventType_param = NULL, *handler, *priorityQueue, *newPriorityQueue, *key = NULL, *data = NULL, *_0, *_1 = NULL, *_3 = NULL, *_6, *_7, *_8; + zval *eventType = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &eventType_param, &handler); + + if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { + zephir_get_strval(eventType, eventType_param); + } else { + ZEPHIR_INIT_VAR(eventType); + ZVAL_EMPTY_STRING(eventType); + } + + + if (Z_TYPE_P(handler) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 99); + return; + } + ZEPHIR_OBS_VAR(priorityQueue); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); + if (zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC)) { + if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { + ZEPHIR_INIT_VAR(newPriorityQueue); + object_init_ex(newPriorityQueue, spl_ce_SplPriorityQueue); + if (zephir_has_constructor(newPriorityQueue TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(_1); + ZVAL_LONG(_1, 1); + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "setextractflags", &_2, _1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_1); + ZVAL_LONG(_1, 3); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", NULL, _1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "top", NULL); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, priorityQueue, "valid", NULL); + zephir_check_call_status(); + if (!(zephir_is_true(_3))) { + break; + } + ZEPHIR_CALL_METHOD(&data, priorityQueue, "current", &_4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "next", &_5); + zephir_check_call_status(); + zephir_array_fetch_string(&_6, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 116 TSRMLS_CC); + if (!ZEPHIR_IS_IDENTICAL(_6, handler)) { + zephir_array_fetch_string(&_7, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); + zephir_array_fetch_string(&_8, data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "insert", &_9, _7, _8); + zephir_check_call_status(); + } + } + zephir_update_property_array(this_ptr, SL("_events"), eventType, newPriorityQueue TSRMLS_CC); + } else { + ZEPHIR_CALL_FUNCTION(&key, "array_search", &_10, handler, priorityQueue, ZEPHIR_GLOBAL(global_true)); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(key)) { + zephir_array_unset(&priorityQueue, key, PH_SEPARATE); + } + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) { + + zval *enablePriorities_param = NULL; + zend_bool enablePriorities; + + zephir_fetch_params(0, 1, 0, &enablePriorities_param); + + enablePriorities = zephir_get_boolval(enablePriorities_param); + + + zephir_update_property_this(this_ptr, SL("_enablePriorities"), enablePriorities ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) { + + + RETURN_MEMBER(this_ptr, "_enablePriorities"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, collectResponses) { + + zval *collect_param = NULL; + zend_bool collect; + + zephir_fetch_params(0, 1, 0, &collect_param); + + collect = zephir_get_boolval(collect_param); + + + zephir_update_property_this(this_ptr, SL("_collect"), collect ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Manager, isCollecting) { + + + RETURN_MEMBER(this_ptr, "_collect"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, getResponses) { + + + RETURN_MEMBER(this_ptr, "_responses"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, detachAll) { + + zval *type_param = NULL, *_0, *_1; + zval *type = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &type_param); + + if (!type_param) { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } else { + if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(type, type_param); + } else { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } + } + + + if (ZEPHIR_IS_STRING_IDENTICAL(type, "")) { zephir_update_property_this(this_ptr, SL("_events"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } else { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); @@ -58394,8 +60829,8 @@ static PHP_METHOD(Phalcon_Http_Request, getDI) { static PHP_METHOD(Phalcon_Http_Request, get) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3, _4; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *request = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_REQUEST, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_REQUEST; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58436,68 +60871,17 @@ static PHP_METHOD(Phalcon_Http_Request, get) { zephir_get_global(&_REQUEST, SS("_REQUEST") TSRMLS_CC); - ZEPHIR_CPY_WRT(request, _REQUEST); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, request, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 96); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - _4 = _3; - if (!(_4)) { - _4 = ZEPHIR_IS_FALSE_IDENTICAL(value); - } - if (_4) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(request); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _REQUEST, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } static PHP_METHOD(Phalcon_Http_Request, getPost) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *post = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_POST, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_POST; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58538,56 +60922,9 @@ static PHP_METHOD(Phalcon_Http_Request, getPost) { zephir_get_global(&_POST, SS("_POST") TSRMLS_CC); - ZEPHIR_CPY_WRT(post, _POST); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, post, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 148); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(post); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _POST, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } @@ -58595,8 +60932,8 @@ static PHP_METHOD(Phalcon_Http_Request, getPut) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; - zend_bool notAllowEmpty, noRecursive, _6; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *put, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_0, _1, *_3, *_4 = NULL, *_5; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *put, *_0, _1; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58646,63 +60983,17 @@ static PHP_METHOD(Phalcon_Http_Request, getPut) { ZEPHIR_CALL_FUNCTION(NULL, "parse_str", &_2, _0, put); Z_UNSET_ISREF_P(put); zephir_check_call_status(); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, put, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _3 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _3); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 200); - return; - } - ZEPHIR_INIT_VAR(_5); - ZVAL_STRING(_5, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_4, dependencyInjector, "getshared", NULL, _5); - zephir_check_temp_parameter(_5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _4); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_4, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _4); - _6 = ZEPHIR_IS_EMPTY(value); - if (_6) { - _6 = notAllowEmpty == 1; - } - if (_6) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _6 = ZEPHIR_IS_EMPTY(value); - if (_6) { - _6 = notAllowEmpty == 1; - } - if (_6) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(put); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, put, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } static PHP_METHOD(Phalcon_Http_Request, getQuery) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *get = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_GET, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_GET; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58743,56 +61034,97 @@ static PHP_METHOD(Phalcon_Http_Request, getQuery) { zephir_get_global(&_GET, SS("_GET") TSRMLS_CC); - ZEPHIR_CPY_WRT(get, _GET); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, get, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 254); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _GET, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Http_Request, getHelper) { + + int ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive, _3; + zval *name = NULL; + zval *source_param = NULL, *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_0, *_1 = NULL, *_2; + zval *source = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 5, &source_param, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + + zephir_get_arrval(source, source_param); + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + } + if (!filters) { + filters = ZEPHIR_GLOBAL(global_null); + } + if (!defaultValue) { + defaultValue = ZEPHIR_GLOBAL(global_null); + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } + + + if (ZEPHIR_IS_STRING_IDENTICAL(name, "")) { + RETURN_CTOR(source); + } + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_fetch(&value, source, name, 0 TSRMLS_CC))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + if (Z_TYPE_P(filters) != IS_NULL) { + ZEPHIR_OBS_VAR(filter); + zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); + if (Z_TYPE_P(filter) != IS_OBJECT) { + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(dependencyInjector, _0); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 168); + return; } + ZEPHIR_INIT_VAR(_2); + ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); + zephir_check_temp_parameter(_2); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(filter, _1); + zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); } + ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(value, _1); + } + _3 = ZEPHIR_IS_EMPTY(value); + if (_3) { + _3 = notAllowEmpty == 1; + } + if (_3) { RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); } - RETURN_CCTOR(get); + RETURN_CCTOR(value); } @@ -59011,7 +61343,7 @@ static PHP_METHOD(Phalcon_Http_Request, isAjax) { zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); _0 = zephir_array_isset_string(_SERVER, SS("HTTP_X_REQUESTED_WITH")); if (_0) { - zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_REQUESTED_WITH"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 372 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_REQUESTED_WITH"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 274 TSRMLS_CC); _0 = ZEPHIR_IS_STRING_IDENTICAL(_1, "XMLHttpRequest"); } RETURN_BOOL(_0); @@ -59032,7 +61364,7 @@ static PHP_METHOD(Phalcon_Http_Request, isSoapRequested) { ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL); zephir_check_call_status(); if (!(ZEPHIR_IS_EMPTY(contentType))) { - RETURN_MM_BOOL(zephir_memnstr_str(contentType, SL("application/soap+xml"), "phalcon/http/request.zep", 387)); + RETURN_MM_BOOL(zephir_memnstr_str(contentType, SL("application/soap+xml"), "phalcon/http/request.zep", 289)); } } RETURN_MM_BOOL(0); @@ -59226,10 +61558,10 @@ static PHP_METHOD(Phalcon_Http_Request, getClientAddress) { zephir_array_isset_string_fetch(&address, _SERVER, SS("REMOTE_ADDR"), 0 TSRMLS_CC); } if (Z_TYPE_P(address) == IS_STRING) { - if (zephir_memnstr_str(address, SL(","), "phalcon/http/request.zep", 547)) { + if (zephir_memnstr_str(address, SL(","), "phalcon/http/request.zep", 449)) { ZEPHIR_INIT_VAR(_0); zephir_fast_explode_str(_0, SL(","), address, LONG_MAX TSRMLS_CC); - zephir_array_fetch_long(&_1, _0, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 551 TSRMLS_CC); + zephir_array_fetch_long(&_1, _0, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 453 TSRMLS_CC); RETURN_CTOR(_1); } RETURN_CCTOR(address); @@ -59283,7 +61615,7 @@ static PHP_METHOD(Phalcon_Http_Request, isMethod) { RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(methods, httpMethod)); } else { if (Z_TYPE_P(methods) == IS_ARRAY) { - zephir_is_iterable(methods, &_2, &_1, 0, 0, "phalcon/http/request.zep", 603); + zephir_is_iterable(methods, &_2, &_1, 0, 0, "phalcon/http/request.zep", 505); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -59421,7 +61753,7 @@ static PHP_METHOD(Phalcon_Http_Request, hasFiles) { if (Z_TYPE_P(files) != IS_ARRAY) { RETURN_MM_LONG(0); } - zephir_is_iterable(files, &_1, &_0, 0, 0, "phalcon/http/request.zep", 693); + zephir_is_iterable(files, &_1, &_0, 0, 0, "phalcon/http/request.zep", 595); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59467,7 +61799,7 @@ static PHP_METHOD(Phalcon_Http_Request, hasFileHelper) { if (Z_TYPE_P(data) != IS_ARRAY) { RETURN_MM_LONG(1); } - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/http/request.zep", 720); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/http/request.zep", 622); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59499,16 +61831,16 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { HashTable *_1, *_11; HashPosition _0, _10; zval *files; - zval *notErrored_param = NULL, *superFiles = NULL, *prefix = NULL, *input = NULL, *smoothInput = NULL, *file = NULL, *dataFile = NULL, *_FILES, **_2, *_3 = NULL, *_4, *_5, *_6, *_7, *_8, **_12, *_14, *_15 = NULL, *_16 = NULL, *_17; - zend_bool notErrored, _13; + zval *onlySuccessful_param = NULL, *superFiles = NULL, *prefix = NULL, *input = NULL, *smoothInput = NULL, *file = NULL, *dataFile = NULL, *_FILES, **_2, *_3 = NULL, *_4, *_5, *_6, *_7, *_8, **_12, *_14, *_15 = NULL, *_16 = NULL, *_17; + zend_bool onlySuccessful, _13; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¬Errored_param); + zephir_fetch_params(1, 0, 1, &onlySuccessful_param); - if (!notErrored_param) { - notErrored = 0; + if (!onlySuccessful_param) { + onlySuccessful = 0; } else { - notErrored = zephir_get_boolval(notErrored_param); + onlySuccessful = zephir_get_boolval(onlySuccessful_param); } ZEPHIR_INIT_VAR(files); array_init(files); @@ -59517,7 +61849,7 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { zephir_get_global(&_FILES, SS("_FILES") TSRMLS_CC); ZEPHIR_CPY_WRT(superFiles, _FILES); if (zephir_fast_count_int(superFiles TSRMLS_CC) > 0) { - zephir_is_iterable(superFiles, &_1, &_0, 0, 0, "phalcon/http/request.zep", 758); + zephir_is_iterable(superFiles, &_1, &_0, 0, 0, "phalcon/http/request.zep", 660); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59525,56 +61857,56 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { ZEPHIR_GET_HMKEY(prefix, _1, _0); ZEPHIR_GET_HVALUE(input, _2); ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, input, SL("name"), PH_NOISY, "phalcon/http/request.zep", 736 TSRMLS_CC); + zephir_array_fetch_string(&_3, input, SL("name"), PH_NOISY, "phalcon/http/request.zep", 638 TSRMLS_CC); if (Z_TYPE_P(_3) == IS_ARRAY) { - zephir_array_fetch_string(&_4, input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_5, input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_6, input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_7, input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_8, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); + zephir_array_fetch_string(&_4, input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_5, input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_6, input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_7, input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_8, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_9, _4, _5, _6, _7, _8, prefix); zephir_check_call_status(); - zephir_is_iterable(smoothInput, &_11, &_10, 0, 0, "phalcon/http/request.zep", 752); + zephir_is_iterable(smoothInput, &_11, &_10, 0, 0, "phalcon/http/request.zep", 654); for ( ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS ; zephir_hash_move_forward_ex(_11, &_10) ) { ZEPHIR_GET_HVALUE(file, _12); - _13 = notErrored == 0; + _13 = onlySuccessful == 0; if (!(_13)) { - zephir_array_fetch_string(&_14, file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 740 TSRMLS_CC); + zephir_array_fetch_string(&_14, file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 642 TSRMLS_CC); _13 = ZEPHIR_IS_LONG(_14, 0); } if (_13) { ZEPHIR_INIT_NVAR(dataFile); zephir_create_array(dataFile, 5, 0 TSRMLS_CC); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("name"), PH_NOISY, "phalcon/http/request.zep", 742 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("name"), PH_NOISY, "phalcon/http/request.zep", 644 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("name"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("type"), PH_NOISY, "phalcon/http/request.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("type"), PH_NOISY, "phalcon/http/request.zep", 645 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("type"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("tmp_name"), PH_NOISY, "phalcon/http/request.zep", 744 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("tmp_name"), PH_NOISY, "phalcon/http/request.zep", 646 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("tmp_name"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("size"), PH_NOISY, "phalcon/http/request.zep", 745 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("size"), PH_NOISY, "phalcon/http/request.zep", 647 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("size"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("error"), PH_NOISY, "phalcon/http/request.zep", 747 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("error"), PH_NOISY, "phalcon/http/request.zep", 649 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("error"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_16); object_init_ex(_16, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_17, file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 749 TSRMLS_CC); + zephir_array_fetch_string(&_17, file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 651 TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, _16, "__construct", &_18, dataFile, _17); zephir_check_call_status(); - zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 749); + zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 651); } } } else { - _13 = notErrored == 0; + _13 = onlySuccessful == 0; if (!(_13)) { - zephir_array_fetch_string(&_4, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 753 TSRMLS_CC); + zephir_array_fetch_string(&_4, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 655 TSRMLS_CC); _13 = ZEPHIR_IS_LONG(_4, 0); } if (_13) { @@ -59582,7 +61914,7 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { object_init_ex(_16, phalcon_http_request_file_ce); ZEPHIR_CALL_METHOD(NULL, _16, "__construct", &_18, input, prefix); zephir_check_call_status(); - zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 754); + zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 656); } } } @@ -59619,7 +61951,7 @@ static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { ZEPHIR_INIT_VAR(files); array_init(files); - zephir_is_iterable(names, &_1, &_0, 0, 0, "phalcon/http/request.zep", 796); + zephir_is_iterable(names, &_1, &_0, 0, 0, "phalcon/http/request.zep", 698); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59633,35 +61965,35 @@ static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { zephir_create_array(_3, 6, 0 TSRMLS_CC); zephir_array_update_string(&_3, SL("name"), &name, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, types, idx, PH_NOISY, "phalcon/http/request.zep", 779 TSRMLS_CC); + zephir_array_fetch(&_4, types, idx, PH_NOISY, "phalcon/http/request.zep", 681 TSRMLS_CC); zephir_array_update_string(&_3, SL("type"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, tmp_names, idx, PH_NOISY, "phalcon/http/request.zep", 780 TSRMLS_CC); + zephir_array_fetch(&_4, tmp_names, idx, PH_NOISY, "phalcon/http/request.zep", 682 TSRMLS_CC); zephir_array_update_string(&_3, SL("tmp_name"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, sizes, idx, PH_NOISY, "phalcon/http/request.zep", 781 TSRMLS_CC); + zephir_array_fetch(&_4, sizes, idx, PH_NOISY, "phalcon/http/request.zep", 683 TSRMLS_CC); zephir_array_update_string(&_3, SL("size"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, errors, idx, PH_NOISY, "phalcon/http/request.zep", 782 TSRMLS_CC); + zephir_array_fetch(&_4, errors, idx, PH_NOISY, "phalcon/http/request.zep", 684 TSRMLS_CC); zephir_array_update_string(&_3, SL("error"), &_4, PH_COPY | PH_SEPARATE); zephir_array_update_string(&_3, SL("key"), &p, PH_COPY | PH_SEPARATE); - zephir_array_append(&files, _3, PH_SEPARATE, "phalcon/http/request.zep", 784); + zephir_array_append(&files, _3, PH_SEPARATE, "phalcon/http/request.zep", 686); } if (Z_TYPE_P(name) == IS_ARRAY) { - zephir_array_fetch(&_5, names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_6, types, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_7, tmp_names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_8, sizes, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_9, errors, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); + zephir_array_fetch(&_5, names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_6, types, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_7, tmp_names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_8, sizes, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_9, errors, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_10, _5, _6, _7, _8, _9, p); zephir_check_call_status(); - zephir_is_iterable(parentFiles, &_12, &_11, 0, 0, "phalcon/http/request.zep", 793); + zephir_is_iterable(parentFiles, &_12, &_11, 0, 0, "phalcon/http/request.zep", 695); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) ) { ZEPHIR_GET_HVALUE(file, _13); - zephir_array_append(&files, file, PH_SEPARATE, "phalcon/http/request.zep", 791); + zephir_array_append(&files, file, PH_SEPARATE, "phalcon/http/request.zep", 693); } } } @@ -59687,7 +62019,7 @@ static PHP_METHOD(Phalcon_Http_Request, getHeaders) { zephir_array_update_string(&contentHeaders, SL("CONTENT_TYPE"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); zephir_array_update_string(&contentHeaders, SL("CONTENT_LENGTH"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); - zephir_is_iterable(_SERVER, &_1, &_0, 0, 0, "phalcon/http/request.zep", 822); + zephir_is_iterable(_SERVER, &_1, &_0, 0, 0, "phalcon/http/request.zep", 724); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59803,7 +62135,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { ZVAL_LONG(&_3, 1); ZEPHIR_CALL_FUNCTION(&_4, "preg_split", &_5, &_1, _0, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(_4, &_7, &_6, 0, 0, "phalcon/http/request.zep", 865); + zephir_is_iterable(_4, &_7, &_6, 0, 0, "phalcon/http/request.zep", 767); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -59821,7 +62153,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { ZVAL_LONG(&_3, 1); ZEPHIR_CALL_FUNCTION(&_10, "preg_split", &_5, &_1, _9, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/http/request.zep", 862); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/http/request.zep", 764); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -59834,17 +62166,17 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { if (!ZEPHIR_IS_FALSE_IDENTICAL(_14)) { ZEPHIR_INIT_NVAR(split); zephir_fast_explode_str(split, SL("="), headerPart, 2 TSRMLS_CC); - zephir_array_fetch_long(&_15, split, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 851 TSRMLS_CC); + zephir_array_fetch_long(&_15, split, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 753 TSRMLS_CC); if (ZEPHIR_IS_STRING_IDENTICAL(_15, "q")) { ZEPHIR_OBS_NVAR(_16); - zephir_array_fetch_long(&_16, split, 1, PH_NOISY, "phalcon/http/request.zep", 852 TSRMLS_CC); + zephir_array_fetch_long(&_16, split, 1, PH_NOISY, "phalcon/http/request.zep", 754 TSRMLS_CC); ZEPHIR_INIT_NVAR(_17); ZVAL_DOUBLE(_17, zephir_get_doubleval(_16)); zephir_array_update_string(&headerParts, SL("quality"), &_17, PH_COPY | PH_SEPARATE); } else { - zephir_array_fetch_long(&_18, split, 1, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 854 TSRMLS_CC); + zephir_array_fetch_long(&_18, split, 1, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 756 TSRMLS_CC); ZEPHIR_OBS_NVAR(_16); - zephir_array_fetch_long(&_16, split, 0, PH_NOISY, "phalcon/http/request.zep", 854 TSRMLS_CC); + zephir_array_fetch_long(&_16, split, 0, PH_NOISY, "phalcon/http/request.zep", 756 TSRMLS_CC); zephir_array_update_zval(&headerParts, _16, &_18, PH_COPY | PH_SEPARATE); } } else { @@ -59854,7 +62186,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { zephir_array_update_string(&headerParts, SL("quality"), &_17, PH_COPY | PH_SEPARATE); } } - zephir_array_append(&returnedParts, headerParts, PH_SEPARATE, "phalcon/http/request.zep", 862); + zephir_array_append(&returnedParts, headerParts, PH_SEPARATE, "phalcon/http/request.zep", 764); } RETURN_CCTOR(returnedParts); @@ -59891,7 +62223,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getBestQuality) { quality = 0.0; ZEPHIR_INIT_VAR(selectedName); ZVAL_STRING(selectedName, "", 1); - zephir_is_iterable(qualityParts, &_1, &_0, 0, 0, "phalcon/http/request.zep", 894); + zephir_is_iterable(qualityParts, &_1, &_0, 0, 0, "phalcon/http/request.zep", 796); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59899,18 +62231,18 @@ static PHP_METHOD(Phalcon_Http_Request, _getBestQuality) { ZEPHIR_GET_HVALUE(accept, _2); if (i == 0) { ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 883 TSRMLS_CC); + zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 785 TSRMLS_CC); quality = zephir_get_doubleval(_3); ZEPHIR_OBS_NVAR(selectedName); - zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 884 TSRMLS_CC); + zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 786 TSRMLS_CC); } else { ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 886 TSRMLS_CC); + zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 788 TSRMLS_CC); acceptQuality = zephir_get_doubleval(_3); if (acceptQuality > quality) { quality = acceptQuality; ZEPHIR_OBS_NVAR(selectedName); - zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 889 TSRMLS_CC); + zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 791 TSRMLS_CC); } } i++; @@ -60065,9 +62397,9 @@ static PHP_METHOD(Phalcon_Http_Request, getBasicAuth) { if (_0) { ZEPHIR_INIT_VAR(auth); array_init(auth); - zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 977 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 878 TSRMLS_CC); zephir_array_update_string(&auth, SL("username"), &_1, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 978 TSRMLS_CC); + zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 879 TSRMLS_CC); zephir_array_update_string(&auth, SL("password"), &_2, PH_COPY | PH_SEPARATE); RETURN_CCTOR(auth); } @@ -60106,15 +62438,15 @@ static PHP_METHOD(Phalcon_Http_Request, getDigestAuth) { RETURN_CTOR(auth); } if (Z_TYPE_P(matches) == IS_ARRAY) { - zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 1003); + zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 904); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(match, _6); - zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 1001 TSRMLS_CC); + zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 902 TSRMLS_CC); ZEPHIR_OBS_NVAR(_8); - zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 1001 TSRMLS_CC); + zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 902 TSRMLS_CC); zephir_array_update_zval(&auth, _8, &_7, PH_COPY | PH_SEPARATE); } } @@ -60716,20 +63048,22 @@ static PHP_METHOD(Phalcon_Http_Response, setEtag) { static PHP_METHOD(Phalcon_Http_Response, redirect) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zend_bool _0; int statusCode, ZEPHIR_LAST_CALL_STATUS; - zval *location = NULL, *externalRedirect = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; + zend_bool externalRedirect, _0; + zval *location = NULL, *externalRedirect_param = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &location, &externalRedirect, &statusCode_param); + zephir_fetch_params(1, 0, 3, &location, &externalRedirect_param, &statusCode_param); if (!location) { ZEPHIR_CPY_WRT(location, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(location); } - if (!externalRedirect) { - externalRedirect = ZEPHIR_GLOBAL(global_false); + if (!externalRedirect_param) { + externalRedirect = 0; + } else { + externalRedirect = zephir_get_boolval(externalRedirect_param); } if (!statusCode_param) { statusCode = 302; @@ -60742,7 +63076,7 @@ static PHP_METHOD(Phalcon_Http_Response, redirect) { ZEPHIR_INIT_NVAR(location); ZVAL_STRING(location, "", 1); } - if (zephir_is_true(externalRedirect)) { + if (externalRedirect) { ZEPHIR_CPY_WRT(header, location); } else { _0 = Z_TYPE_P(location) == IS_STRING; @@ -61921,10 +64255,13 @@ static PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *data, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data_param = NULL, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; @@ -61936,7 +64273,7 @@ static PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { } ZEPHIR_OBS_VAR(dataHeaders); if (zephir_array_isset_string_fetch(&dataHeaders, data, SS("_headers"), 0 TSRMLS_CC)) { - zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 135); + zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 130); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -69178,8 +71515,8 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _getResultset) { static PHP_METHOD(Phalcon_Mvc_Collection, _getGroupResultset) { + zend_bool _0, _1; int ZEPHIR_LAST_CALL_STATUS; - zend_bool simple; zval *params, *collection, *connection, *source = NULL, *mongoCollection = NULL, *conditions = NULL, *limit, *sort = NULL, *documentsCursor = NULL; ZEPHIR_MM_GROW(); @@ -69203,19 +71540,15 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _getGroupResultset) { array_init(conditions); } } - simple = 1; - if (zephir_array_isset_string(params, SS("limit"))) { - simple = 0; - } else { - if (zephir_array_isset_string(params, SS("sort"))) { - simple = 0; - } else { - if (zephir_array_isset_string(params, SS("skip"))) { - simple = 0; - } - } + _0 = zephir_array_isset_string(params, SS("limit")); + if (!(_0)) { + _0 = zephir_array_isset_string(params, SS("sort")); + } + _1 = _0; + if (!(_1)) { + _1 = zephir_array_isset_string(params, SS("skip")); } - if (simple == 0) { + if (_1) { ZEPHIR_CALL_METHOD(&documentsCursor, mongoCollection, "find", NULL, conditions); zephir_check_call_status(); ZEPHIR_OBS_VAR(limit); @@ -69245,14 +71578,17 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *dependencyInjector, *disableEvents, *exists, *eventName = NULL, *_0 = NULL, *_1 = NULL, *_3 = NULL, *_4 = NULL, *_5 = NULL; + zend_bool disableEvents, exists; + zval *dependencyInjector, *disableEvents_param = NULL, *exists_param = NULL, *eventName = NULL, *_0 = NULL, *_1 = NULL, *_3 = NULL, *_4 = NULL, *_5 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &dependencyInjector, &disableEvents, &exists); + zephir_fetch_params(1, 3, 0, &dependencyInjector, &disableEvents_param, &exists_param); + disableEvents = zephir_get_boolval(disableEvents_param); + exists = zephir_get_boolval(exists_param); - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_VAR(_1); ZVAL_STRING(_1, "beforeValidation", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fireeventcancel", &_2, _1); @@ -69262,7 +71598,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_VAR(eventName); - if (!(zephir_is_true(exists))) { + if (!(exists)) { ZVAL_STRING(eventName, "beforeValidationOnCreate", 1); } else { ZVAL_STRING(eventName, "beforeValidationOnUpdate", 1); @@ -69279,7 +71615,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { zephir_check_temp_parameter(_1); zephir_check_call_status(); if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_NVAR(_1); ZVAL_STRING(_1, "onValidationFails", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, _1); @@ -69288,9 +71624,9 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { } RETURN_MM_BOOL(0); } - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_NVAR(eventName); - if (!(zephir_is_true(exists))) { + if (!(exists)) { ZVAL_STRING(eventName, "afterValidationOnCreate", 1); } else { ZVAL_STRING(eventName, "afterValidationOnUpdate", 1); @@ -69317,7 +71653,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_NVAR(eventName); - if (zephir_is_true(exists)) { + if (exists) { ZVAL_STRING(eventName, "beforeUpdate", 1); } else { ZVAL_STRING(eventName, "beforeCreate", 1); @@ -69395,7 +71731,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 658); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 645); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -69598,13 +71934,13 @@ static PHP_METHOD(Phalcon_Mvc_Collection, save) { ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/collection.zep", 849); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/collection.zep", 836); return; } ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 854); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 841); return; } ZEPHIR_CALL_METHOD(&connection, this_ptr, "getconnection", NULL); @@ -69638,7 +71974,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, save) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&properties, "get_object_vars", &_4, this_ptr); zephir_check_call_status(); - zephir_is_iterable(properties, &_6, &_5, 0, 0, "phalcon/mvc/collection.zep", 909); + zephir_is_iterable(properties, &_6, &_5, 0, 0, "phalcon/mvc/collection.zep", 896); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -69737,22 +72073,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, findFirst) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *connection = NULL, *_0 = NULL, *_2; + zval *parameters_param = NULL, *className, *collection, *connection = NULL, *_0 = NULL, *_2; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for findFirst", "phalcon/mvc/collection.zep", 1002); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69777,22 +72111,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, find) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *_0 = NULL, *_2 = NULL, *_3; + zval *parameters_param = NULL, *className, *collection, *_0 = NULL, *_2 = NULL, *_3; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for find", "phalcon/mvc/collection.zep", 1059); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69817,22 +72149,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, count) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *connection = NULL, *_0 = NULL; + zval *parameters_param = NULL, *className, *collection, *connection = NULL, *_0 = NULL; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for count", "phalcon/mvc/collection.zep", 1084); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69855,19 +72185,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, aggregate) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters, *className, *model, *connection = NULL, *source = NULL, *_0 = NULL, *_2 = NULL; + zval *parameters_param = NULL, *className, *model, *connection = NULL, *source = NULL, *_0 = NULL, *_2 = NULL; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); + } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for aggregate", "phalcon/mvc/collection.zep", 1109); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(model); @@ -69883,7 +72214,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, aggregate) { ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1121); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1072); return; } ZEPHIR_CALL_METHOD(&_2, connection, "selectcollection", NULL, source); @@ -69938,7 +72269,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, summatory) { ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1148); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1099); return; } ZEPHIR_CALL_METHOD(&collection, connection, "selectcollection", NULL, source); @@ -69958,7 +72289,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, summatory) { if (zephir_array_isset_string_fetch(&retval, group, SS("retval"), 1 TSRMLS_CC)) { if (zephir_array_isset_long_fetch(&firstRetval, retval, 0, 1 TSRMLS_CC)) { if (zephir_array_isset_string(firstRetval, SS("summatory"))) { - zephir_array_fetch_string(&_3, firstRetval, SL("summatory"), PH_NOISY | PH_READONLY, "phalcon/mvc/collection.zep", 1172 TSRMLS_CC); + zephir_array_fetch_string(&_3, firstRetval, SL("summatory"), PH_NOISY | PH_READONLY, "phalcon/mvc/collection.zep", 1123 TSRMLS_CC); RETURN_CTOR(_3); } RETURN_CTOR(firstRetval); @@ -69980,7 +72311,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, delete) { ZEPHIR_OBS_VAR(id); if (!(zephir_fetch_property(&id, this_ptr, SL("_id"), PH_SILENT_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The document cannot be deleted because it doesn't exist", "phalcon/mvc/collection.zep", 1199); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The document cannot be deleted because it doesn't exist", "phalcon/mvc/collection.zep", 1150); return; } ZEPHIR_OBS_VAR(disableEvents); @@ -70000,7 +72331,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, delete) { ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1214); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1165); return; } ZEPHIR_CALL_METHOD(&collection, connection, "selectcollection", NULL, source); @@ -70067,7 +72398,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, toArray) { array_init(data); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 1292); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 1243); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -70135,7 +72466,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ODM", "phalcon/mvc/collection.zep", 1323); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ODM", "phalcon/mvc/collection.zep", 1272); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -70145,11 +72476,11 @@ static PHP_METHOD(Phalcon_Mvc_Collection, unserialize) { zephir_check_temp_parameter(_2); zephir_check_call_status(); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The injected service 'collectionManager' is not valid", "phalcon/mvc/collection.zep", 1336); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The injected service 'collectionManager' is not valid", "phalcon/mvc/collection.zep", 1285); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); - zephir_is_iterable(attributes, &_4, &_3, 0, 0, "phalcon/mvc/collection.zep", 1350); + zephir_is_iterable(attributes, &_4, &_3, 0, 0, "phalcon/mvc/collection.zep", 1299); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -72510,7 +74841,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, findFirst) { zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *_1, *_3 = NULL; + zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *resultset = NULL, *hydration, *_1, *_3 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, ¶meters); @@ -72561,9 +74892,16 @@ static PHP_METHOD(Phalcon_Mvc_Model, findFirst) { ZVAL_BOOL(_3, 1); ZEPHIR_CALL_METHOD(NULL, query, "setuniquerow", NULL, _3); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(query, "execute", NULL, bindParams, bindTypes); + ZEPHIR_CALL_METHOD(&resultset, query, "execute", NULL, bindParams, bindTypes); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(resultset) == IS_OBJECT) { + ZEPHIR_OBS_VAR(hydration); + if (zephir_array_isset_string_fetch(&hydration, params, SS("hydration"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, resultset, "sethydratemode", NULL, hydration); + zephir_check_call_status(); + } + } + RETURN_CCTOR(resultset); } @@ -72660,7 +74998,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { array_init(uniqueParams); ZEPHIR_INIT_NVAR(uniqueTypes); array_init(uniqueTypes); - zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 939); + zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 950); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -72675,7 +75013,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 903 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 914 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -72693,9 +75031,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { if (_6) { numberEmpty++; } - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 921); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 932); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 924); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 935); numberEmpty++; } ZEPHIR_OBS_NVAR(type); @@ -72706,16 +75044,16 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 929 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 940 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 932); + zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 943); ZEPHIR_CALL_METHOD(&_7, connection, "escapeidentifier", &_8, field); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_9); ZEPHIR_CONCAT_VS(_9, _7, " = ?"); - zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 933); + zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 944); } if (numberPrimary == numberEmpty) { RETURN_MM_BOOL(0); @@ -72763,7 +75101,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZVAL_NULL(_3); ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, _9, _3, uniqueParams, uniqueTypes); zephir_check_call_status(); - zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 989 TSRMLS_CC); + zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1000 TSRMLS_CC); if (zephir_is_true(_11)) { ZEPHIR_INIT_ZVAL_NREF(_12); ZVAL_LONG(_12, 0); @@ -72816,7 +75154,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _groupResult) { ZEPHIR_INIT_VAR(params); array_init(params); if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1016); + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1027); } } else { ZEPHIR_CPY_WRT(params, parameters); @@ -73131,7 +75469,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1311); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1322); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -73183,7 +75521,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_INIT_VAR(filtered); array_init(filtered); _1 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1378); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1389); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -73192,7 +75530,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_CALL_METHOD(&_5, message, "getfield", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EQUAL(_5, filter)) { - zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1375); + zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1386); } } RETURN_CCTOR(filtered); @@ -73219,7 +75557,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(belongsTo TSRMLS_CC)) { error = 0; - zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1498); + zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1509); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73232,7 +75570,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1422 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1433 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73250,7 +75588,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL); zephir_check_call_status(); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1453); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1464); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -73259,23 +75597,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1450 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1461 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1450); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1451); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1461); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1462); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1455); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1456); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1466); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1467); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1463); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1474); } ZEPHIR_INIT_NVAR(_13); zephir_create_array(_13, 2, 0 TSRMLS_CC); @@ -73345,7 +75683,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_CALL_METHOD(&relations, manager, "gethasoneandhasmany", NULL, this_ptr); zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1612); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1623); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73358,7 +75696,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1551 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1562 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73376,7 +75714,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1579); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1590); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -73385,23 +75723,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1576 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1587 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1576); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1577); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1587); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1588); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1581); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1582); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1592); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1593); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1589); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1600); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -73442,7 +75780,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { error = 0; - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1729); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1740); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73455,7 +75793,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1659 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1670 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73473,7 +75811,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1689); + zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1700); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -73482,23 +75820,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_GET_HVALUE(field, _8); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1686 TSRMLS_CC); + zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1697 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVSV(_10, "[", _9, "] = ?", position); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1686); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1687); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1697); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1698); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVS(_10, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1691); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1692); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1702); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1703); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1699); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1710); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -73618,7 +75956,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSave) { zephir_check_call_status(); } error = 0; - zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1879); + zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1890); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -73635,7 +75973,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSave) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1829 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1840 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73844,7 +76182,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2051); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2062); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -73860,7 +76198,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2015 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2026 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73868,7 +76206,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CPY_WRT(attributeField, field); } if (!ZEPHIR_IS_EQUAL(field, identityField)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2026); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2037); ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { ZEPHIR_OBS_NVAR(bindType); @@ -73879,15 +76217,15 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2037 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2048 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); } else { - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2042); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2042); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2053); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2053); } } } @@ -73899,7 +76237,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { zephir_check_call_status(); useExplicitIdentity = zephir_get_boolval(_6); if (useExplicitIdentity) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2060); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2071); } if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_OBS_NVAR(attributeField); @@ -73910,7 +76248,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2068 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73925,12 +76263,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { } if (_7) { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); } } else { if (!(useExplicitIdentity)) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2089); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2100); } ZEPHIR_OBS_NVAR(bindType); if (!(zephir_array_isset_fetch(&bindType, bindDataTypes, identityField, 0 TSRMLS_CC))) { @@ -73940,17 +76278,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn\\'t part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2096 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); } } else { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); } } } @@ -74035,7 +76373,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2290); + zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2301); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -74050,7 +76388,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2194 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2205 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74063,7 +76401,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2202 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2213 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74073,9 +76411,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { if (!(useDynamicUpdate)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2219); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2230); } else { ZEPHIR_OBS_NVAR(snapshotValue); if (!(zephir_array_isset_fetch(&snapshotValue, snapshot, attributeField, 0 TSRMLS_CC))) { @@ -74117,15 +76455,15 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } } if (changed) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2277); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2288); } } } else { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); } } } @@ -74142,12 +76480,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, this_ptr); zephir_check_call_status(); if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2309); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2320); return; } ZEPHIR_INIT_NVAR(uniqueParams); array_init(uniqueParams); - zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2333); + zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2344); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -74162,7 +76500,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2320 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2331 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74171,9 +76509,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2327); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2338); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2329); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2340); } } } @@ -74210,7 +76548,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2439); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2450); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -74227,7 +76565,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(record) != IS_OBJECT) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2388); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2399); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_7); @@ -74239,7 +76577,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2397); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2408); return; } ZEPHIR_CALL_METHOD(&_0, record, "save", NULL); @@ -74247,7 +76585,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (!(zephir_is_true(_0))) { ZEPHIR_CALL_METHOD(&_10, record, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2426); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2437); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -74294,7 +76632,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2628); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2639); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -74317,7 +76655,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (_6) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2489); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_8); @@ -74329,7 +76667,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2487); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2498); return; } if (Z_TYPE_P(record) == IS_OBJECT) { @@ -74349,7 +76687,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVS(_12, "The column '", columns, "' needs to be present in the model"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2501 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2512 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74364,7 +76702,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&intermediateReferencedFields, relation, "getintermediatereferencedfields", &_18); zephir_check_call_status(); } - zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2617); + zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2628); for ( ; zephir_hash_get_current_data_ex(_20, (void**) &_21, &_19) == SUCCESS ; zephir_hash_move_forward_ex(_20, &_19) @@ -74379,7 +76717,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_14))) { ZEPHIR_CALL_METHOD(&_22, recordAfter, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2559); + zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2570); for ( ; zephir_hash_get_current_data_ex(_24, (void**) &_25, &_23) == SUCCESS ; zephir_hash_move_forward_ex(_24, &_23) @@ -74412,7 +76750,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_22))) { ZEPHIR_CALL_METHOD(&_30, intermediateModel, "getmessages", &_31); zephir_check_call_status(); - zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2611); + zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2622); for ( ; zephir_hash_get_current_data_ex(_33, (void**) &_34, &_32) == SUCCESS ; zephir_hash_move_forward_ex(_33, &_32) @@ -74441,7 +76779,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVSVS(_12, "There are no defined relations for the model '", className, "' using alias '", name, "'"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2620 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2631 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74540,7 +76878,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, save) { _3 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_5, this_ptr, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2732 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2743 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74739,10 +77077,10 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZVAL_NULL(columnMap); } if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2925); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2936); return; } - zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2966); + zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2977); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -74756,7 +77094,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2937 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2948 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74769,7 +77107,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2945 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2956 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74784,17 +77122,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Cannot delete the record because the primary key attribute: '", attributeField, "' wasn't set"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2955 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2966 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2961); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2972); ZEPHIR_CALL_METHOD(&_2, writeConnection, "escapeidentifier", &_9, primaryKey); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_VS(_7, _2, " = ?"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2962); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2963); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2973); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2974); } if (ZEPHIR_GLOBAL(orm).events) { zephir_update_property_this(this_ptr, SL("_skipped"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -74864,13 +77202,13 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { HashTable *_3; HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *metaData = NULL, *readConnection = NULL, *schema = NULL, *source = NULL, *table = NULL, *uniqueKey = NULL, *uniqueParams, *dialect = NULL, *row = NULL, *fields, *attribute = NULL, *_0, *_1 = NULL, **_4, *_6 = NULL, *_7, *_8; + zval *metaData = NULL, *readConnection = NULL, *schema = NULL, *source = NULL, *table = NULL, *uniqueKey = NULL, *tables = NULL, *uniqueParams, *dialect = NULL, *row = NULL, *fields, *attribute = NULL, *_0, *_1 = NULL, **_4, *_6, *_7; ZEPHIR_MM_GROW(); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3041); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3052); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -74895,7 +77233,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_CALL_METHOD(&_1, this_ptr, "_exists", NULL, metaData, readConnection, table); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3063); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3074); return; } ZEPHIR_OBS_NVAR(uniqueKey); @@ -74904,14 +77242,14 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_OBS_VAR(uniqueParams); zephir_read_property_this(&uniqueParams, this_ptr, SL("_uniqueParams"), PH_NOISY_CC); if (Z_TYPE_P(uniqueParams) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3071); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3082); return; } ZEPHIR_INIT_VAR(fields); array_init(fields); ZEPHIR_CALL_METHOD(&_1, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3085); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3096); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -74920,28 +77258,28 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 1, 0 TSRMLS_CC); zephir_array_fast_append(_5, attribute); - zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3079); + zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3090); } ZEPHIR_CALL_METHOD(&dialect, readConnection, "getdialect", NULL); zephir_check_call_status(); ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 3, 0 TSRMLS_CC); zephir_array_update_string(&_5, SL("columns"), &fields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_6, readConnection, "escapeidentifier", NULL, table); + ZEPHIR_CALL_METHOD(&_1, readConnection, "escapeidentifier", NULL, table); zephir_check_call_status(); - zephir_array_update_string(&_5, SL("tables"), &_6, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5, SL("tables"), &_1, PH_COPY | PH_SEPARATE); zephir_array_update_string(&_5, SL("where"), &uniqueKey, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, dialect, "select", NULL, _5); + ZEPHIR_CALL_METHOD(&tables, dialect, "select", NULL, _5); zephir_check_call_status(); - _7 = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueTypes"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(_8); - ZVAL_LONG(_8, 1); - ZEPHIR_CALL_METHOD(&row, readConnection, "fetchone", NULL, _1, _8, uniqueParams, _7); + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueTypes"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(_7); + ZVAL_LONG(_7, 1); + ZEPHIR_CALL_METHOD(&row, readConnection, "fetchone", NULL, tables, _7, uniqueParams, _6); zephir_check_call_status(); if (Z_TYPE_P(row) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_6, metaData, "getcolumnmap", NULL, this_ptr); + ZEPHIR_CALL_METHOD(&_1, metaData, "getcolumnmap", NULL, this_ptr); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, row, _6); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, row, _1); zephir_check_call_status(); } RETURN_THIS(); @@ -75035,7 +77373,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributes) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3172); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3184); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75070,7 +77408,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3204); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3216); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75103,7 +77441,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3234); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3246); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75316,7 +77654,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_INIT_VAR(snapshot); array_init(snapshot); - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3457); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3469); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75334,7 +77672,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { ZEPHIR_CONCAT_SVS(_4, "Column '", key, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3451 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3463 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75384,12 +77722,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3496); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3508); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3503); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3515); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -75411,7 +77749,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3535 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75423,7 +77761,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3539 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3551 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75436,7 +77774,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not defined on the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3559 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75448,14 +77786,14 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_4, "The field '", fieldName, "' was not found in the snapshot"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3554 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3566 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } RETURN_MM_BOOL(!ZEPHIR_IS_EQUAL(value, originalValue)); } ZEPHIR_INIT_NVAR(_1); - zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3590); + zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3602); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -75490,12 +77828,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3603); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3615); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3610); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3622); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -75511,7 +77849,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_INIT_VAR(changed); array_init(changed); ZEPHIR_INIT_VAR(_1); - zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3664); + zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3676); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -75519,17 +77857,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_GET_HMKEY(name, _3, _2); ZEPHIR_GET_HVALUE(_1, _4); if (!(zephir_array_isset(snapshot, name))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3642); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3654); continue; } ZEPHIR_OBS_NVAR(value); if (!(zephir_fetch_property_zval(&value, this_ptr, name, PH_SILENT_CC))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3650); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3662); continue; } - zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3657 TSRMLS_CC); + zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3669 TSRMLS_CC); if (!ZEPHIR_IS_EQUAL(value, _5)) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3658); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3670); continue; } } @@ -75587,7 +77925,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getRelated) { ZEPHIR_CONCAT_SVSVS(_3, "There is no defined relations for the model '", className, "' using alias '", alias, "'"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3707 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3719 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75729,7 +78067,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __call) { ZEPHIR_CONCAT_SVSVS(_2, "The method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3799 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3811 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -75792,7 +78130,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVSVS(_2, "The static method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3850 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3862 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75804,7 +78142,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_4, "The static method '", method, "' requires one argument"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3854 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3866 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75841,7 +78179,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_2, "Cannot resolve attribute '", extraMethod, "' in the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3888 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3900 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75900,7 +78238,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __set) { zephir_check_call_status(); ZEPHIR_INIT_VAR(related); array_init(related); - zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3952); + zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3964); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -75909,7 +78247,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __set) { ZEPHIR_GET_HVALUE(item, _3); if (Z_TYPE_P(item) == IS_OBJECT) { if (zephir_instance_of_ev(item, phalcon_mvc_modelinterface_ce TSRMLS_CC)) { - zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3939); + zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3951); } } else { ZEPHIR_INIT_NVAR(lowerKey); @@ -76070,7 +78408,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, serialize) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4083); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4095); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -76085,7 +78423,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, serialize) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4067 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -76136,7 +78474,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4101); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4113); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -76147,13 +78485,13 @@ static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _2); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4114); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4126); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, manager, "initialize", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4133); + zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4145); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -76204,7 +78542,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, toArray) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4192); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4204); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -76219,7 +78557,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, toArray) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4173 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4185 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -77891,7 +80229,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { if (Z_TYPE_P(uri) == IS_ARRAY) { ZEPHIR_OBS_VAR(routeName); if (!(zephir_array_isset_string_fetch(&routeName, uri, SS("for"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 201); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 202); return; } _5 = zephir_fetch_nproperty_this(this_ptr, SL("_router"), PH_NOISY_CC); @@ -77900,7 +80238,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { _5 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); ZEPHIR_CPY_WRT(dependencyInjector, _5); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 213); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 214); return; } ZEPHIR_INIT_VAR(_6); @@ -77921,7 +80259,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { ZEPHIR_CONCAT_SVS(_7, "Cannot obtain a route using the name '", routeName, "'"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/url.zep", 225 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/url.zep", 226 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -89843,7 +92181,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { zend_declare_property_bool(phalcon_mvc_model_resultset_ce, SL("_isFresh"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_pointer"), -1, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_pointer"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_count"), ZEND_ACC_PROTECTED TSRMLS_CC); @@ -89851,6 +92189,8 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_rows"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_row"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_errorMessages"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_hydrateMode"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); @@ -89877,70 +92217,75 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next) { + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, _1; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(_0) + 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_2, &_1); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid) { + + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, *_1 = NULL; + + ZEPHIR_MM_GROW(); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "count", &_2); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_LT(_0, _1)); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key) { + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, *_1 = NULL; + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(this_ptr, "_pointer"); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "count", &_2); + zephir_check_call_status(); + if (ZEPHIR_GE(_0, _1)) { + RETURN_MM_NULL(); + } + RETURN_MM_MEMBER(this_ptr, "_pointer"); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *rows = NULL, *result = NULL, *_0, *_1, *_2; + zval _0; ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); - if (zephir_is_true(_0)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(_1) != IS_NULL) { - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, 0); - ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _2); - zephir_check_call_status(); - } - } - } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_NULL) { - ZEPHIR_OBS_NVAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), rows TSRMLS_CC); - } - } - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "reset", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 0); - zephir_update_property_this(this_ptr, SL("_pointer"), _1 TSRMLS_CC); + ZEPHIR_SINIT_VAR(_0); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_1, &_0); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - zval *position_param = NULL, *result = NULL, *rows = NULL, *_0, *_1, *_2, *_5; - int position, i, ZEPHIR_LAST_CALL_STATUS; + zend_bool _2, _5; + zval *position_param = NULL, *result, *_0, *_1, *_3, *_4, *_6, *_7, *_8 = NULL, *_9; + int position, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &position_param); @@ -89948,51 +92293,58 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { position = zephir_get_intval(position_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (!ZEPHIR_IS_LONG(_0, position)) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); - if (zephir_is_true(_1)) { + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); + if (zephir_is_true(_0)) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + _2 = Z_TYPE_P(_1) == IS_NULL; + if (!(_2)) { + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + _2 = !ZEPHIR_IS_LONG(_3, position); + } + if (_2) { ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, position); - ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _2); - zephir_check_call_status(); - } - } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_NULL) { - ZEPHIR_OBS_NVAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), rows TSRMLS_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + _5 = Z_TYPE_P(_4) == IS_NULL; + if (!(_5)) { + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + _5 = ZEPHIR_GT_LONG(_6, position); } - } - if (Z_TYPE_P(rows) == IS_ARRAY) { - i = 0; - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "reset", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - while (1) { - if (!(i < position)) { - break; - } - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_4, rows); - Z_UNSET_ISREF_P(rows); + if (_5) { + ZEPHIR_INIT_VAR(_7); + ZVAL_LONG(_7, position); + ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _7); zephir_check_call_status(); - i++; + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + } else { + while (1) { + _9 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(ZEPHIR_LT_LONG(_9, position))) { + break; + } + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); + } } } + ZEPHIR_INIT_ZVAL_NREF(_4); + ZVAL_LONG(_4, position); + zephir_update_property_this(this_ptr, SL("_pointer"), _4 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_activeRow"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); + } + } else { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!ZEPHIR_IS_LONG(_1, position)) { + ZEPHIR_INIT_ZVAL_NREF(_3); + ZVAL_LONG(_3, position); + zephir_update_property_this(this_ptr, SL("_pointer"), _3 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_activeRow"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } - ZEPHIR_INIT_ZVAL_NREF(_5); - ZVAL_LONG(_5, position); - zephir_update_property_this(this_ptr, SL("_pointer"), _5 TSRMLS_CC); } ZEPHIR_MM_RESTORE(); @@ -90061,8 +92413,8 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetExists) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL, *_5 = NULL; - zval *index_param = NULL, *_0 = NULL, *_2, _4, *_6 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *index_param = NULL, *_0 = NULL, _2; int index, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); @@ -90079,26 +92431,15 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); zephir_check_call_status(); if (ZEPHIR_GT_LONG(_0, index)) { - _2 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (ZEPHIR_IS_LONG(_2, index)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_3); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_SINIT_VAR(_4); - ZVAL_LONG(&_4, index); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_5, &_4); + ZEPHIR_SINIT_VAR(_2); + ZVAL_LONG(&_2, index); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_6)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_3); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 272); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 243); return; } @@ -90111,7 +92452,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetSet) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 283); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 254); return; } @@ -90126,7 +92467,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetUnset) { offset = zephir_get_intval(offset_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 291); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 262); return; } @@ -90140,53 +92481,47 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getType) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getFirst) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_0, *_3 = NULL; + zval *_0 = NULL, _2; ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); + zephir_check_call_status(); if (ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", &_2); + ZEPHIR_SINIT_VAR(_2); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_3)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_1); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getLast) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL, *_5 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_0 = NULL, _2, *_4 = NULL; + zval *count = NULL, _1; ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); + ZEPHIR_CALL_METHOD(&count, this_ptr, "count", &_0); zephir_check_call_status(); - ZEPHIR_SINIT_VAR(_2); - ZVAL_LONG(&_2, (zephir_get_numberval(_0) - 1)); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); + if (ZEPHIR_IS_LONG(count, 0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(count) - 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_2, &_1); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_4)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_5); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } @@ -90243,13 +92578,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, current) { - - - RETURN_MEMBER(this_ptr, "_activeRow"); - -} - static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages) { @@ -90286,7 +92614,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 415); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 372); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -90356,7 +92684,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 435); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -90420,7 +92748,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(record, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 547); + zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 504); ZEPHIR_INIT_NVAR(processedRecord); ZEPHIR_CALL_USER_FUNC_ARRAY(processedRecord, filter, parameters); zephir_check_call_status(); @@ -90429,7 +92757,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { continue; } } - zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 559); + zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 516); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); @@ -90925,7 +93253,7 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackedRecord); ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, phalcon_mvc_model_validationfailed_method_entry, 0); zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("_model"), ZEND_ACC_PROTECTED TSRMLS_CC); @@ -90935,6 +93263,50 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) { } +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *validationMessages = NULL; + zval *model, *validationMessages_param = NULL, *messageStr = NULL, *message; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &validationMessages_param); + + validationMessages = validationMessages_param; + + + + if (zephir_fast_count_int(validationMessages TSRMLS_CC) > 0) { + ZEPHIR_OBS_VAR(message); + zephir_array_fetch_long(&message, validationMessages, 0, PH_NOISY, "phalcon/mvc/model/validationfailed.zep", 51 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&messageStr, message, "getmessage", NULL); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(messageStr); + ZVAL_STRING(messageStr, "Validation failed", 1); + } + zephir_update_property_this(this_ptr, SL("_model"), model TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_messages"), validationMessages TSRMLS_CC); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_validationfailed_ce, this_ptr, "__construct", NULL, messageStr); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel) { + + + RETURN_MEMBER(this_ptr, "_model"); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages) { + + + RETURN_MEMBER(this_ptr, "_messages"); + +} + @@ -94462,58 +96834,58 @@ static zval *phql_ret_func_call(phql_parser_token *name, zval *arguments, zval * #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal +** PPCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds +** PPNOCODE is a number of type PPCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. -** YYFALLBACK If defined, this indicates that one or more tokens +** PPFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal +** PPACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** phql_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. +** PPMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is phql_TOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. +** for base tokens is called "pp0". +** PPSTACKDEPTH is the maximum depth of the parser's stack. ** phql_ARG_SDECL A static variable declaration for the %extra_argument ** phql_ARG_PDECL A parameter declaration for the %extra_argument -** phql_ARG_STORE Code to store %extra_argument into yypParser -** phql_ARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not +** phql_ARG_STORE Code to store %extra_argument into pppParser +** phql_ARG_FETCH Code to extract %extra_argument from pppParser +** PPNSTATE the combined number of states. +** PPNRULE the number of rules in the grammar +** PPERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define YYCODETYPE unsigned char -#define YYNOCODE 120 -#define YYACTIONTYPE unsigned short int +#define PPCODETYPE unsigned char +#define PPNOCODE 120 +#define PPACTIONTYPE unsigned short int #define phql_TOKENTYPE phql_parser_token* typedef union { - phql_TOKENTYPE yy0; - zval* yy92; - int yy239; -} YYMINORTYPE; -#define YYSTACKDEPTH 100 + phql_TOKENTYPE pp0; + zval* pp92; + int pp239; +} PPMINORTYPE; +#define PPSTACKDEPTH 100 #define phql_ARG_SDECL phql_parser_status *status; #define phql_ARG_PDECL ,phql_parser_status *status -#define phql_ARG_FETCH phql_parser_status *status = yypParser->status -#define phql_ARG_STORE yypParser->status = status -#define YYNSTATE 249 -#define YYNRULE 139 -#define YYERRORSYMBOL 70 -#define YYERRSYMDT yy239 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define phql_ARG_FETCH phql_parser_status *status = pppParser->status +#define phql_ARG_STORE pppParser->status = status +#define PPNSTATE 249 +#define PPNRULE 139 +#define PPERRORSYMBOL 70 +#define PPERRSYMDT pp239 +#define PP_NO_ACTION (PPNSTATE+PPNRULE+2) +#define PP_ACCEPT_ACTION (PPNSTATE+PPNRULE+1) +#define PP_ERROR_ACTION (PPNSTATE+PPNRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -94523,234 +96895,234 @@ typedef union { ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N < PPNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** PPNSTATE <= N < PPNSTATE+PPNRULE Reduce by rule N-PPNSTATE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N == PPNSTATE+PPNRULE A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == PPNSTATE+PPNRULE+1 The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. +** N == PPNSTATE+PPNRULE+2 No such action. Denotes unused +** slots in the pp_action[] table. ** -** The action table is constructed as a single large table named yy_action[]. +** The action table is constructed as a single large table named pp_action[]. ** Given state S and lookahead X, the action is computed as ** -** yy_action[ yy_shift_ofst[S] + X ] +** pp_action[ pp_shift_ofst[S] + X ] ** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. +** If the index value pp_shift_ofst[S]+X is out of range or if the value +** pp_lookahead[pp_shift_ofst[S]+X] is not equal to X or if pp_shift_ofst[S] +** is equal to PP_SHIFT_USE_DFLT, it means that the action is not in the table +** and that pp_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. +** a reduce action) then the pp_reduce_ofst[] array is used in place of +** the pp_shift_ofst[] array and PP_REDUCE_USE_DFLT is used in place of +** PP_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for +** pp_action[] A single table containing all actions. +** pp_lookahead[] A table containing the lookahead for each entry in +** pp_action. Used to detect hash collisions. +** pp_shift_ofst[] For each state, the offset into pp_action for ** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for +** pp_reduce_ofst[] For each state, the offset into pp_action for ** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. +** pp_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { +static PPACTIONTYPE pp_action[] = { /* 0 */ 72, 78, 50, 52, 54, 56, 58, 60, 40, 42, /* 10 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 20 */ 74, 69, 64, 145, 72, 78, 50, 52, 54, 56, + /* 20 */ 74, 69, 64, 64, 72, 78, 50, 52, 54, 56, /* 30 */ 58, 60, 40, 42, 62, 67, 44, 46, 48, 36, - /* 40 */ 34, 38, 32, 29, 74, 69, 64, 16, 17, 18, - /* 50 */ 249, 27, 28, 201, 192, 199, 150, 72, 78, 50, + /* 40 */ 34, 38, 32, 29, 74, 69, 64, 74, 69, 64, + /* 50 */ 167, 27, 28, 201, 192, 199, 150, 72, 78, 50, /* 60 */ 52, 54, 56, 58, 60, 40, 42, 62, 67, 44, /* 70 */ 46, 48, 36, 34, 38, 32, 29, 74, 69, 64, - /* 80 */ 36, 34, 38, 32, 29, 74, 69, 64, 83, 7, + /* 80 */ 36, 34, 38, 32, 29, 74, 69, 64, 83, 77, /* 90 */ 72, 78, 50, 52, 54, 56, 58, 60, 40, 42, /* 100 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 110 */ 74, 69, 64, 72, 78, 50, 52, 54, 56, 58, - /* 120 */ 60, 40, 42, 62, 67, 44, 46, 48, 36, 34, - /* 130 */ 38, 32, 29, 74, 69, 64, 40, 42, 62, 67, - /* 140 */ 44, 46, 48, 36, 34, 38, 32, 29, 74, 69, - /* 150 */ 64, 327, 89, 74, 69, 64, 158, 108, 156, 72, + /* 110 */ 74, 69, 64, 50, 52, 54, 56, 58, 60, 40, + /* 120 */ 42, 62, 67, 44, 46, 48, 36, 34, 38, 32, + /* 130 */ 29, 74, 69, 64, 108, 168, 72, 78, 50, 52, + /* 140 */ 54, 56, 58, 60, 40, 42, 62, 67, 44, 46, + /* 150 */ 48, 36, 34, 38, 32, 29, 74, 69, 64, 72, /* 160 */ 78, 50, 52, 54, 56, 58, 60, 40, 42, 62, /* 170 */ 67, 44, 46, 48, 36, 34, 38, 32, 29, 74, - /* 180 */ 69, 64, 50, 52, 54, 56, 58, 60, 40, 42, - /* 190 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 200 */ 74, 69, 64, 101, 203, 204, 30, 12, 250, 102, - /* 210 */ 104, 65, 128, 138, 101, 153, 93, 30, 324, 99, - /* 220 */ 102, 104, 130, 173, 189, 175, 177, 93, 181, 185, - /* 230 */ 106, 364, 173, 189, 175, 177, 76, 181, 185, 363, - /* 240 */ 172, 106, 170, 14, 110, 116, 117, 80, 86, 26, - /* 250 */ 113, 111, 112, 114, 115, 110, 116, 117, 80, 86, - /* 260 */ 26, 113, 111, 112, 114, 115, 194, 109, 71, 30, - /* 270 */ 23, 135, 102, 104, 251, 19, 92, 75, 109, 195, - /* 280 */ 30, 8, 25, 102, 104, 124, 109, 92, 208, 216, - /* 290 */ 93, 252, 99, 106, 98, 92, 253, 96, 118, 32, - /* 300 */ 29, 74, 69, 64, 106, 136, 9, 110, 116, 117, - /* 310 */ 80, 86, 127, 113, 111, 112, 114, 115, 110, 116, - /* 320 */ 117, 80, 86, 120, 113, 111, 112, 114, 115, 62, - /* 330 */ 67, 44, 46, 48, 36, 34, 38, 32, 29, 74, - /* 340 */ 69, 64, 44, 46, 48, 36, 34, 38, 32, 29, - /* 350 */ 74, 69, 64, 71, 143, 389, 1, 2, 3, 4, - /* 360 */ 5, 6, 162, 163, 164, 235, 242, 238, 10, 71, - /* 370 */ 180, 109, 109, 178, 237, 238, 21, 140, 144, 126, - /* 380 */ 92, 92, 214, 118, 11, 149, 227, 109, 202, 198, - /* 390 */ 254, 210, 243, 124, 215, 132, 92, 152, 147, 118, - /* 400 */ 109, 161, 190, 163, 164, 214, 94, 109, 71, 92, - /* 410 */ 143, 13, 15, 205, 221, 151, 92, 215, 232, 191, - /* 420 */ 246, 193, 198, 109, 155, 241, 109, 214, 109, 134, - /* 430 */ 31, 120, 92, 33, 142, 92, 159, 92, 100, 213, - /* 440 */ 109, 35, 22, 109, 240, 109, 37, 109, 109, 92, - /* 450 */ 154, 109, 92, 165, 92, 155, 92, 92, 39, 109, - /* 460 */ 92, 41, 196, 99, 109, 159, 43, 159, 92, 45, - /* 470 */ 325, 47, 49, 92, 51, 94, 109, 53, 184, 109, - /* 480 */ 20, 182, 326, 133, 109, 92, 64, 109, 92, 109, - /* 490 */ 109, 55, 109, 92, 57, 109, 92, 59, 92, 92, - /* 500 */ 120, 92, 61, 197, 92, 63, 24, 66, 68, 109, - /* 510 */ 73, 188, 109, 79, 186, 109, 125, 70, 92, 212, - /* 520 */ 109, 92, 223, 109, 92, 109, 109, 82, 109, 92, - /* 530 */ 88, 109, 92, 103, 92, 92, 329, 92, 105, 211, - /* 540 */ 92, 107, 218, 129, 169, 109, 137, 217, 109, 146, - /* 550 */ 226, 109, 212, 77, 92, 81, 109, 92, 233, 109, - /* 560 */ 92, 109, 109, 155, 109, 92, 207, 109, 92, 248, - /* 570 */ 92, 92, 222, 92, 155, 159, 92, 84, 159, 85, - /* 580 */ 90, 87, 119, 91, 95, 97, 159, 121, 131, 122, - /* 590 */ 123, 125, 230, 139, 141, 148, 160, 157, 166, 168, - /* 600 */ 167, 171, 174, 277, 176, 278, 179, 279, 280, 281, - /* 610 */ 183, 282, 283, 284, 187, 285, 200, 288, 209, 225, - /* 620 */ 289, 224, 229, 228, 296, 328, 206, 231, 236, 239, - /* 630 */ 219, 244, 220, 245, 302, 247, 260, 234, + /* 180 */ 69, 64, 101, 217, 196, 30, 226, 21, 102, 104, + /* 190 */ 16, 17, 18, 101, 153, 93, 30, 94, 89, 102, + /* 200 */ 104, 79, 173, 189, 175, 177, 93, 181, 185, 106, + /* 210 */ 364, 173, 189, 175, 177, 188, 181, 185, 186, 109, + /* 220 */ 106, 324, 120, 110, 116, 117, 80, 86, 92, 113, + /* 230 */ 111, 112, 114, 115, 110, 116, 117, 80, 86, 166, + /* 240 */ 113, 111, 112, 114, 115, 194, 14, 71, 30, 65, + /* 250 */ 128, 102, 104, 32, 29, 74, 69, 64, 195, 30, + /* 260 */ 130, 10, 102, 104, 124, 109, 235, 242, 238, 93, + /* 270 */ 171, 99, 106, 98, 92, 152, 96, 118, 19, 161, + /* 280 */ 190, 163, 164, 106, 237, 238, 110, 116, 117, 80, + /* 290 */ 86, 133, 113, 111, 112, 114, 115, 110, 116, 117, + /* 300 */ 80, 86, 120, 113, 111, 112, 114, 115, 40, 42, + /* 310 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, + /* 320 */ 74, 69, 64, 62, 67, 44, 46, 48, 36, 34, + /* 330 */ 38, 32, 29, 74, 69, 64, 44, 46, 48, 36, + /* 340 */ 34, 38, 32, 29, 74, 69, 64, 26, 76, 124, + /* 350 */ 160, 158, 143, 156, 214, 389, 1, 2, 3, 4, + /* 360 */ 5, 6, 94, 210, 71, 109, 215, 174, 23, 135, + /* 370 */ 109, 81, 109, 207, 92, 140, 144, 71, 176, 92, + /* 380 */ 149, 92, 109, 202, 198, 159, 227, 120, 214, 75, + /* 390 */ 132, 92, 243, 180, 118, 109, 178, 221, 241, 147, + /* 400 */ 215, 329, 109, 126, 92, 26, 109, 118, 165, 151, + /* 410 */ 143, 92, 11, 191, 205, 92, 109, 240, 155, 232, + /* 420 */ 159, 246, 71, 109, 105, 92, 214, 25, 109, 73, + /* 430 */ 159, 254, 92, 179, 142, 193, 198, 92, 213, 277, + /* 440 */ 109, 107, 109, 82, 109, 233, 33, 109, 41, 92, + /* 450 */ 155, 92, 100, 92, 109, 183, 92, 230, 43, 109, + /* 460 */ 278, 109, 159, 92, 109, 35, 109, 279, 92, 146, + /* 470 */ 92, 134, 66, 92, 251, 92, 109, 45, 162, 163, + /* 480 */ 164, 203, 204, 109, 37, 92, 24, 109, 47, 109, + /* 490 */ 109, 59, 92, 327, 49, 109, 92, 9, 92, 92, + /* 500 */ 154, 85, 109, 197, 92, 155, 109, 169, 31, 109, + /* 510 */ 51, 92, 109, 212, 248, 92, 125, 159, 92, 155, + /* 520 */ 172, 92, 170, 63, 68, 109, 109, 53, 109, 39, + /* 530 */ 137, 159, 99, 211, 92, 92, 280, 92, 208, 216, + /* 540 */ 55, 109, 109, 61, 223, 109, 212, 109, 109, 12, + /* 550 */ 92, 92, 127, 103, 92, 57, 92, 92, 109, 129, + /* 560 */ 88, 109, 184, 99, 218, 182, 222, 92, 187, 84, + /* 570 */ 92, 109, 281, 109, 282, 87, 283, 109, 109, 284, + /* 580 */ 92, 285, 92, 363, 90, 91, 92, 92, 13, 119, + /* 590 */ 200, 70, 95, 157, 206, 97, 288, 209, 225, 219, + /* 600 */ 15, 220, 289, 136, 224, 148, 325, 145, 228, 296, + /* 610 */ 231, 229, 328, 252, 234, 236, 131, 250, 239, 253, + /* 620 */ 22, 245, 8, 244, 302, 141, 247, 249, 139, 122, + /* 630 */ 326, 121, 138, 123, 125, 260, 20, 7, }; -static YYCODETYPE yy_lookahead[] = { +static PPCODETYPE pp_lookahead[] = { /* 0 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* 10 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 20 */ 21, 22, 23, 49, 1, 2, 3, 4, 5, 6, + /* 20 */ 21, 22, 23, 23, 1, 2, 3, 4, 5, 6, /* 30 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 40 */ 17, 18, 19, 20, 21, 22, 23, 58, 59, 60, - /* 50 */ 0, 52, 53, 30, 25, 32, 27, 1, 2, 3, + /* 40 */ 17, 18, 19, 20, 21, 22, 23, 21, 22, 23, + /* 50 */ 96, 52, 53, 30, 25, 32, 27, 1, 2, 3, /* 60 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, /* 70 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 80 */ 16, 17, 18, 19, 20, 21, 22, 23, 32, 78, + /* 80 */ 16, 17, 18, 19, 20, 21, 22, 23, 32, 64, /* 90 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* 100 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 110 */ 21, 22, 23, 1, 2, 3, 4, 5, 6, 7, - /* 120 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 130 */ 18, 19, 20, 21, 22, 23, 9, 10, 11, 12, - /* 140 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 150 */ 23, 0, 63, 21, 22, 23, 30, 45, 32, 1, + /* 110 */ 21, 22, 23, 3, 4, 5, 6, 7, 8, 9, + /* 120 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 130 */ 20, 21, 22, 23, 45, 40, 1, 2, 3, 4, + /* 140 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 150 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, /* 160 */ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, /* 170 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 180 */ 22, 23, 3, 4, 5, 6, 7, 8, 9, 10, - /* 190 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 200 */ 21, 22, 23, 17, 28, 29, 20, 56, 0, 23, - /* 210 */ 24, 11, 12, 54, 17, 25, 30, 20, 0, 25, - /* 220 */ 23, 24, 22, 33, 34, 35, 36, 30, 38, 39, - /* 230 */ 44, 45, 33, 34, 35, 36, 23, 38, 39, 45, - /* 240 */ 30, 44, 32, 25, 58, 59, 60, 61, 62, 88, - /* 250 */ 64, 65, 66, 67, 68, 58, 59, 60, 61, 62, - /* 260 */ 88, 64, 65, 66, 67, 68, 17, 106, 88, 20, - /* 270 */ 109, 110, 23, 24, 0, 57, 115, 64, 106, 30, - /* 280 */ 20, 79, 110, 23, 24, 31, 106, 115, 43, 44, - /* 290 */ 30, 0, 25, 44, 114, 115, 0, 117, 118, 19, - /* 300 */ 20, 21, 22, 23, 44, 55, 80, 58, 59, 60, - /* 310 */ 61, 62, 45, 64, 65, 66, 67, 68, 58, 59, - /* 320 */ 60, 61, 62, 69, 64, 65, 66, 67, 68, 11, - /* 330 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 340 */ 22, 23, 13, 14, 15, 16, 17, 18, 19, 20, - /* 350 */ 21, 22, 23, 88, 88, 71, 72, 73, 74, 75, - /* 360 */ 76, 77, 91, 92, 93, 104, 105, 106, 81, 88, - /* 370 */ 34, 106, 106, 37, 105, 106, 50, 111, 112, 114, - /* 380 */ 115, 115, 88, 118, 82, 84, 102, 106, 87, 88, - /* 390 */ 0, 97, 108, 31, 100, 114, 115, 86, 26, 118, - /* 400 */ 106, 90, 91, 92, 93, 88, 44, 106, 88, 115, - /* 410 */ 88, 113, 113, 41, 97, 85, 115, 100, 46, 89, - /* 420 */ 48, 87, 88, 106, 94, 88, 106, 88, 106, 88, - /* 430 */ 88, 69, 115, 88, 112, 115, 106, 115, 118, 100, - /* 440 */ 106, 88, 51, 106, 107, 106, 88, 106, 106, 115, - /* 450 */ 89, 106, 115, 94, 115, 94, 115, 115, 88, 106, - /* 460 */ 115, 88, 31, 25, 106, 106, 88, 106, 115, 88, - /* 470 */ 0, 88, 88, 115, 88, 44, 106, 88, 34, 106, - /* 480 */ 113, 37, 0, 45, 106, 115, 23, 106, 115, 106, - /* 490 */ 106, 88, 106, 115, 88, 106, 115, 88, 115, 115, - /* 500 */ 69, 115, 88, 17, 115, 88, 25, 88, 88, 106, - /* 510 */ 88, 34, 106, 88, 37, 106, 30, 44, 115, 25, - /* 520 */ 106, 115, 25, 106, 115, 106, 106, 88, 106, 115, - /* 530 */ 88, 106, 115, 88, 115, 115, 0, 115, 88, 45, - /* 540 */ 115, 88, 45, 88, 88, 106, 88, 98, 106, 88, - /* 550 */ 101, 106, 25, 64, 115, 44, 106, 115, 89, 106, - /* 560 */ 115, 106, 106, 94, 106, 115, 94, 106, 115, 89, - /* 570 */ 115, 115, 45, 115, 94, 106, 115, 30, 106, 45, - /* 580 */ 30, 44, 28, 45, 116, 45, 106, 30, 44, 31, - /* 590 */ 30, 30, 56, 51, 25, 83, 30, 30, 95, 40, - /* 600 */ 96, 30, 34, 30, 34, 30, 34, 30, 30, 30, - /* 610 */ 34, 30, 30, 30, 34, 30, 30, 0, 44, 30, - /* 620 */ 0, 101, 103, 78, 0, 0, 42, 113, 25, 3, - /* 630 */ 43, 78, 44, 103, 0, 27, 119, 47, + /* 180 */ 22, 23, 17, 98, 31, 20, 101, 50, 23, 24, + /* 190 */ 58, 59, 60, 17, 25, 30, 20, 44, 63, 23, + /* 200 */ 24, 88, 33, 34, 35, 36, 30, 38, 39, 44, + /* 210 */ 45, 33, 34, 35, 36, 34, 38, 39, 37, 106, + /* 220 */ 44, 0, 69, 58, 59, 60, 61, 62, 115, 64, + /* 230 */ 65, 66, 67, 68, 58, 59, 60, 61, 62, 95, + /* 240 */ 64, 65, 66, 67, 68, 17, 25, 88, 20, 11, + /* 250 */ 12, 23, 24, 19, 20, 21, 22, 23, 30, 20, + /* 260 */ 22, 81, 23, 24, 31, 106, 104, 105, 106, 30, + /* 270 */ 30, 25, 44, 114, 115, 86, 117, 118, 57, 90, + /* 280 */ 91, 92, 93, 44, 105, 106, 58, 59, 60, 61, + /* 290 */ 62, 45, 64, 65, 66, 67, 68, 58, 59, 60, + /* 300 */ 61, 62, 69, 64, 65, 66, 67, 68, 9, 10, + /* 310 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 320 */ 21, 22, 23, 11, 12, 13, 14, 15, 16, 17, + /* 330 */ 18, 19, 20, 21, 22, 23, 13, 14, 15, 16, + /* 340 */ 17, 18, 19, 20, 21, 22, 23, 88, 23, 31, + /* 350 */ 30, 30, 88, 32, 88, 71, 72, 73, 74, 75, + /* 360 */ 76, 77, 44, 97, 88, 106, 100, 34, 109, 110, + /* 370 */ 106, 44, 106, 94, 115, 111, 112, 88, 34, 115, + /* 380 */ 84, 115, 106, 87, 88, 106, 102, 69, 88, 64, + /* 390 */ 114, 115, 108, 34, 118, 106, 37, 97, 88, 26, + /* 400 */ 100, 0, 106, 114, 115, 88, 106, 118, 94, 85, + /* 410 */ 88, 115, 82, 89, 41, 115, 106, 107, 94, 46, + /* 420 */ 106, 48, 88, 106, 88, 115, 88, 110, 106, 88, + /* 430 */ 106, 0, 115, 34, 112, 87, 88, 115, 100, 30, + /* 440 */ 106, 88, 106, 88, 106, 89, 88, 106, 88, 115, + /* 450 */ 94, 115, 118, 115, 106, 34, 115, 56, 88, 106, + /* 460 */ 30, 106, 106, 115, 106, 88, 106, 30, 115, 88, + /* 470 */ 115, 88, 88, 115, 0, 115, 106, 88, 91, 92, + /* 480 */ 93, 28, 29, 106, 88, 115, 25, 106, 88, 106, + /* 490 */ 106, 88, 115, 0, 88, 106, 115, 80, 115, 115, + /* 500 */ 89, 45, 106, 17, 115, 94, 106, 88, 88, 106, + /* 510 */ 88, 115, 106, 25, 89, 115, 30, 106, 115, 94, + /* 520 */ 30, 115, 32, 88, 88, 106, 106, 88, 106, 88, + /* 530 */ 88, 106, 25, 45, 115, 115, 30, 115, 43, 44, + /* 540 */ 88, 106, 106, 88, 25, 106, 25, 106, 106, 56, + /* 550 */ 115, 115, 45, 88, 115, 88, 115, 115, 106, 88, + /* 560 */ 88, 106, 34, 25, 45, 37, 45, 115, 34, 30, + /* 570 */ 115, 106, 30, 106, 30, 44, 30, 106, 106, 30, + /* 580 */ 115, 30, 115, 45, 30, 45, 115, 115, 113, 28, + /* 590 */ 30, 44, 116, 30, 42, 45, 0, 44, 30, 43, + /* 600 */ 113, 44, 0, 55, 101, 83, 0, 49, 78, 0, + /* 610 */ 113, 103, 0, 0, 47, 25, 44, 0, 3, 0, + /* 620 */ 51, 103, 79, 78, 0, 25, 27, 0, 51, 31, + /* 630 */ 0, 30, 54, 30, 30, 119, 113, 78, }; -#define YY_SHIFT_USE_DFLT (-27) -static short yy_shift_ofst[] = { - /* 0 */ 372, 50, 208, 274, 291, 296, -26, 159, 250, 326, - /* 10 */ 151, 390, -11, 218, -11, 470, -27, -27, -27, -11, - /* 20 */ 482, 391, 260, 481, 260, -27, -1, -27, -27, 260, - /* 30 */ 260, 132, 260, 132, 260, 280, 260, 280, 260, 280, - /* 40 */ 260, 318, 260, 318, 260, 64, 260, 64, 260, 64, - /* 50 */ 260, 127, 260, 127, 260, 127, 260, 127, 260, 127, - /* 60 */ 260, 127, 260, 329, 200, 260, 463, 260, 329, 473, - /* 70 */ 197, 158, 260, 158, 213, -27, 489, -27, 260, 179, - /* 80 */ 511, 260, 56, 547, 534, -27, 537, 260, 89, 550, - /* 90 */ 538, -27, -27, 362, 554, 186, 540, -27, 194, 197, - /* 100 */ -27, -27, 260, 463, 260, 463, 260, 112, -27, -27, - /* 110 */ -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, - /* 120 */ 557, 558, 560, -27, 561, -27, 267, -27, 260, 463, - /* 130 */ 544, 197, 438, -27, 132, -27, 260, 158, 542, 260, - /* 140 */ 569, 260, -27, 158, -27, 260, 158, 176, 249, 29, - /* 150 */ 566, 190, -27, 566, -27, 126, 567, -27, -27, -27, - /* 160 */ 254, 199, -27, -27, 566, 210, 559, -27, 260, 158, - /* 170 */ 571, -27, -27, 568, 573, 570, 575, 336, 572, 577, - /* 180 */ 578, 444, 576, 579, 581, 477, 580, 582, 583, 585, - /* 190 */ -27, -27, 249, -27, -27, 431, 486, -27, 23, 586, - /* 200 */ -27, -27, -27, -27, -27, 584, 566, 245, 574, 260, - /* 210 */ 494, 617, 260, -27, 158, -27, 589, 497, 587, 588, - /* 220 */ 260, 527, 620, 589, -27, -27, -27, -26, 536, 624, - /* 230 */ -11, 625, 566, 590, 566, 603, 566, -27, 626, 260, - /* 240 */ -27, 158, -27, -26, 536, 634, 608, 566, -27, +#define PP_SHIFT_USE_DFLT (-2) +static short pp_shift_ofst[] = { + /* 0 */ 373, 627, 617, 474, 613, 619, 558, 578, 548, 137, + /* 10 */ 493, 431, 132, 221, 132, 606, -2, -2, -2, 132, + /* 20 */ 630, 569, 239, 461, 239, -2, -1, -2, -2, 239, + /* 30 */ 239, 26, 239, 26, 239, 234, 239, 234, 239, 234, + /* 40 */ 239, 312, 239, 312, 239, 64, 239, 64, 239, 64, + /* 50 */ 239, 299, 239, 299, 239, 299, 239, 299, 239, 299, + /* 60 */ 239, 299, 239, 323, 238, 239, 0, 239, 323, 547, + /* 70 */ 176, 158, 239, 158, 325, -2, 25, -2, 239, 110, + /* 80 */ 327, 239, 56, 539, 456, -2, 531, 239, 135, 554, + /* 90 */ 540, -2, -2, 318, 561, 165, 550, -2, 538, 176, + /* 100 */ -2, -2, 239, 0, 239, 0, 239, 89, -2, -2, + /* 110 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, + /* 120 */ 601, 598, 603, -2, 604, -2, 507, -2, 239, 0, + /* 130 */ 572, 176, 246, -2, 26, -2, 239, 158, 577, 239, + /* 140 */ 600, 239, -2, 158, -2, 239, 158, 453, 228, 29, + /* 150 */ 320, 169, -2, 320, -2, 321, 563, -2, -2, -2, + /* 160 */ 233, 178, -2, -2, 320, 490, 95, -2, 239, 158, + /* 170 */ 240, -2, -2, 333, 409, 344, 430, 359, 399, 437, + /* 180 */ 506, 528, 421, 542, 544, 181, 534, 546, 549, 551, + /* 190 */ -2, -2, 228, -2, -2, 153, 486, -2, 23, 560, + /* 200 */ -2, -2, -2, -2, -2, 552, 320, 495, 553, 239, + /* 210 */ 488, 596, 239, -2, 158, -2, 568, 519, 556, 557, + /* 220 */ 239, 521, 602, 568, -2, -2, -2, 558, 401, 609, + /* 230 */ 132, 612, 320, 567, 320, 590, 320, -2, 615, 239, + /* 240 */ -2, 158, -2, 558, 401, 624, 599, 320, -2, }; -#define YY_REDUCE_USE_DFLT (-1) -static short yy_reduce_ofst[] = { - /* 0 */ 284, -1, -1, -1, -1, -1, 11, 202, 226, 287, - /* 10 */ 302, -1, 298, -1, 299, -1, -1, -1, -1, 367, - /* 20 */ -1, -1, 161, -1, 172, -1, -1, -1, -1, 341, - /* 30 */ 342, -1, 345, -1, 353, -1, 358, -1, 370, -1, - /* 40 */ 373, -1, 378, -1, 381, -1, 383, -1, 384, -1, - /* 50 */ 386, -1, 389, -1, 403, -1, 406, -1, 409, -1, - /* 60 */ 414, -1, 417, -1, -1, 419, -1, 420, -1, -1, - /* 70 */ 265, -1, 422, -1, -1, -1, -1, -1, 425, -1, - /* 80 */ -1, 439, -1, -1, -1, -1, -1, 442, -1, -1, - /* 90 */ -1, -1, -1, -1, 468, 180, -1, -1, -1, 320, - /* 100 */ -1, -1, 445, -1, 450, -1, 453, -1, -1, -1, - /* 110 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 120 */ -1, -1, -1, -1, -1, -1, -1, -1, 455, -1, - /* 130 */ -1, 281, -1, -1, -1, -1, 458, -1, -1, 266, - /* 140 */ -1, 322, -1, -1, -1, 461, -1, 512, 301, -1, - /* 150 */ 330, 311, -1, 361, -1, -1, -1, -1, -1, -1, - /* 160 */ -1, 271, -1, -1, 359, 503, 504, -1, 456, -1, - /* 170 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 180 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 190 */ -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, - /* 200 */ -1, -1, -1, -1, -1, -1, 472, -1, -1, 294, - /* 210 */ -1, -1, 339, -1, -1, -1, 449, -1, -1, -1, - /* 220 */ 317, -1, -1, 520, -1, -1, -1, 545, 519, -1, - /* 230 */ 514, -1, 469, -1, 261, -1, 269, -1, -1, 337, - /* 240 */ -1, -1, -1, 553, 530, -1, -1, 480, -1, +#define PP_REDUCE_USE_DFLT (-47) +static short pp_reduce_ofst[] = { + /* 0 */ 284, -47, -47, -47, -47, -47, 559, 543, 417, 180, + /* 10 */ 330, -47, 475, -47, 487, -47, -47, -47, -47, 523, + /* 20 */ -47, -47, 259, -47, 317, -47, -47, -47, -47, 383, + /* 30 */ 420, -47, 358, -47, 377, -47, 396, -47, 441, -47, + /* 40 */ 360, -47, 370, -47, 389, -47, 400, -47, 406, -47, + /* 50 */ 422, -47, 439, -47, 452, -47, 467, -47, 403, -47, + /* 60 */ 455, -47, 435, -47, -47, 384, -47, 436, -47, -47, + /* 70 */ 289, -47, 341, -47, -47, -47, -47, -47, 113, -47, + /* 80 */ -47, 355, -47, -47, -47, -47, -47, 472, -47, -47, + /* 90 */ -47, -47, -47, -47, 476, 159, -47, -47, -47, 334, + /* 100 */ -47, -47, 465, -47, 336, -47, 353, -47, -47, -47, + /* 110 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 120 */ -47, -47, -47, -47, -47, -47, -47, -47, 471, -47, + /* 130 */ -47, 276, -47, -47, -47, -47, 442, -47, -47, 264, + /* 140 */ -47, 322, -47, -47, -47, 381, -47, 522, 296, -47, + /* 150 */ 324, 189, -47, 411, -47, -47, -47, -47, -47, -47, + /* 160 */ -47, 387, -47, -47, 314, 144, -46, -47, 419, -47, + /* 170 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 180 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 190 */ -47, -47, 348, -47, -47, -47, -47, -47, -47, -47, + /* 200 */ -47, -47, -47, -47, -47, -47, 279, -47, -47, 266, + /* 210 */ -47, -47, 338, -47, -47, -47, 85, -47, -47, -47, + /* 220 */ 300, -47, -47, 503, -47, -47, -47, 530, 508, -47, + /* 230 */ 497, -47, 356, -47, 162, -47, 179, -47, -47, 310, + /* 240 */ -47, -47, -47, 545, 518, -47, -47, 425, -47, }; -static YYACTIONTYPE yy_default[] = { +static PPACTIONTYPE pp_default[] = { /* 0 */ 388, 388, 388, 388, 388, 388, 309, 318, 323, 311, /* 10 */ 388, 388, 388, 388, 388, 388, 330, 331, 332, 388, /* 20 */ 388, 388, 388, 310, 388, 312, 314, 315, 316, 388, @@ -94777,7 +97149,7 @@ static YYACTIONTYPE yy_default[] = { /* 230 */ 388, 388, 388, 388, 388, 297, 388, 298, 388, 388, /* 240 */ 300, 301, 299, 309, 388, 388, 388, 388, 303, }; -#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) +#define PP_SZ_ACTTAB (sizeof(pp_action)/sizeof(pp_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: @@ -94789,10 +97161,10 @@ static YYACTIONTYPE yy_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { +#ifdef PPFALLBACK +static const PPCODETYPE ppFallback[] = { }; -#endif /* YYFALLBACK */ +#endif /* PPFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -94806,44 +97178,44 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { +struct ppStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This + PPMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct yyStackEntry yyStackEntry; +typedef struct ppStackEntry ppStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ - int yyerrcnt; /* Shifts left before out of the error */ +struct ppParser { + int ppidx; /* Index of top element in stack */ + int pperrcnt; /* Shifts left before out of the error */ phql_ARG_SDECL /* A place to hold %extra_argument */ - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + ppStackEntry ppstack[PPSTACKDEPTH]; /* The parser's stack */ }; -typedef struct yyParser yyParser; +typedef struct ppParser ppParser; #ifndef NDEBUG #include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; +static FILE *ppTraceFILE = 0; +static char *ppTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phql_Trace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; + ppTraceFILE = TraceFILE; + ppTracePrompt = zTracePrompt; + if( ppTraceFILE==0 ) ppTracePrompt = 0; + else if( ppTracePrompt==0 ) ppTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *ppTokenName[] = { "$", "AGAINST", "BETWEEN", "EQUALS", "NOTEQUALS", "LESS", "GREATER", "GREATEREQUAL", "LESSEQUAL", "AND", "OR", "LIKE", @@ -94880,7 +97252,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *ppRuleName[] = { /* 0 */ "program ::= query_language", /* 1 */ "query_language ::= select_statement", /* 2 */ "query_language ::= insert_statement", @@ -95025,8 +97397,8 @@ static const char *yyRuleName[] = { const char *phql_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ - return yyTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(ppTokenName)/sizeof(ppTokenName[0])) ){ + return ppTokenName[tokenType]; }else{ return "Unknown"; } @@ -95036,21 +97408,21 @@ const char *phql_TokenName(int tokenType){ } void *phql_Alloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + ppParser *pParser; + pParser = (ppParser*)(*mallocProc)( (size_t)sizeof(ppParser) ); if( pParser ){ - pParser->yyidx = -1; + pParser->ppidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to +** "ppmajor" is the symbol code, and "pppminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ - switch( yymajor ){ +static void pp_destructor(PPCODETYPE ppmajor, PPMINORTYPE *pppminor){ + switch( ppmajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -95132,11 +97504,11 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 69: // 541 "parser.lemon" { - if ((yypminor->yy0)) { - if ((yypminor->yy0)->free_flag) { - efree((yypminor->yy0)->token); + if ((pppminor->pp0)) { + if ((pppminor->pp0)->free_flag) { + efree((pppminor->pp0)->token); } - efree((yypminor->yy0)); + efree((pppminor->pp0)); } } // 1171 "parser.c" @@ -95173,7 +97545,7 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 115: case 118: // 554 "parser.lemon" -{ zval_ptr_dtor(&(yypminor->yy92)); } +{ zval_ptr_dtor(&(pppminor->pp92)); } // 1206 "parser.c" break; case 78: @@ -95188,133 +97560,133 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 116: case 117: // 842 "parser.lemon" -{ zephir_safe_zval_ptr_dtor((yypminor->yy92)); } +{ zephir_safe_zval_ptr_dtor((pppminor->pp92)); } // 1221 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int pp_pop_parser_stack(ppParser *pParser){ + PPCODETYPE ppmajor; + ppStackEntry *pptos = &pParser->ppstack[pParser->ppidx]; - if( pParser->yyidx<0 ) return 0; + if( pParser->ppidx<0 ) return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); + if( ppTraceFILE && pParser->ppidx>=0 ){ + fprintf(ppTraceFILE,"%sPopping %s\n", + ppTracePrompt, + ppTokenName[pptos->major]); } #endif - yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + ppmajor = pptos->major; + pp_destructor( ppmajor, &pptos->minor); + pParser->ppidx--; + return ppmajor; } static void phql_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - yyParser *pParser = (yyParser*)p; + ppParser *pParser = (ppParser*)p; if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + while( pParser->ppidx>=0 ) pp_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ +static int pp_find_shift_action( + ppParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ - i = yy_shift_ofst[stateno]; - if( i==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; + /* if( pParser->ppidx<0 ) return PP_NO_ACTION; */ + i = pp_shift_ofst[stateno]; + if( i==PP_SHIFT_USE_DFLT ){ + return pp_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ -#ifdef YYFALLBACK + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ +#ifdef PPFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE, "%sFALLBACK %s => %s\n", + ppTracePrompt, ppTokenName[iLookAhead], ppTokenName[iFallback]); } #endif - return yy_find_shift_action(pParser, iFallback); + return pp_find_shift_action(pParser, iFallback); } #endif - return yy_default[stateno]; + return pp_default[stateno]; }else{ - return yy_action[i]; + return pp_action[i]; } } -static int yy_find_reduce_action( - yyParser *pParser, /* The parser */ +static int pp_find_reduce_action( + ppParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - i = yy_reduce_ofst[stateno]; - if( i==YY_REDUCE_USE_DFLT ){ - return yy_default[stateno]; + i = pp_reduce_ofst[stateno]; + if( i==PP_REDUCE_USE_DFLT ){ + return pp_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ + return pp_default[stateno]; }else{ - return yy_action[i]; + return pp_action[i]; } } -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +static void pp_shift( + ppParser *pppParser, /* The parser to be shifted */ + int ppNewState, /* The new state to shift in */ + int ppMajor, /* The major token to shift in */ + PPMINORTYPE *pppMinor /* Pointer ot the minor token to shift in */ ){ - yyStackEntry *yytos; - yypParser->yyidx++; - if( yypParser->yyidx>=YYSTACKDEPTH ){ + ppStackEntry *pptos; + pppParser->ppidx++; + if( pppParser->ppidx>=PPSTACKDEPTH ){ phql_ARG_FETCH; - yypParser->yyidx--; + pppParser->ppidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sStack Overflow!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; - yytos->minor = *yypMinor; + pptos = &pppParser->ppstack[pppParser->ppidx]; + pptos->stateno = ppNewState; + pptos->major = ppMajor; + pptos->minor = *pppMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ + if( ppTraceFILE && pppParser->ppidx>0 ){ int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); + fprintf(ppTraceFILE,"%sShift %d\n",ppTracePrompt,ppNewState); + fprintf(ppTraceFILE,"%sStack:",ppTracePrompt); + for(i=1; i<=pppParser->ppidx; i++) + fprintf(ppTraceFILE," %s",ppTokenName[pppParser->ppstack[i].major]); + fprintf(ppTraceFILE,"\n"); } #endif } @@ -95323,9 +97695,9 @@ static void yy_shift( ** is used during the reduce. */ static struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + PPCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { +} ppRuleInfo[] = { { 71, 1 }, { 72, 1 }, { 72, 1 }, @@ -95467,28 +97839,28 @@ static struct { { 106, 1 }, }; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void pp_accept(ppParser*); /* Forward Declaration */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ +static void pp_reduce( + ppParser *pppParser, /* The parser */ + int ppruleno /* Number of the rule by which to reduce */ ){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ + int ppgoto; /* The next state */ + int ppact; /* The next action */ + PPMINORTYPE ppgotominor; /* The LHS of the rule reduced */ + ppStackEntry *ppmsp; /* The top of the parser's stack */ + int ppsize; /* Amount to pop the stack */ phql_ARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; + ppmsp = &pppParser->ppstack[pppParser->ppidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno=0 + && pprulenoret = yymsp[0].minor.yy92; + status->ret = ppmsp[0].minor.pp92; } // 1577 "parser.c" break; @@ -95525,39 +97897,39 @@ static void yy_reduce( case 126: // 556 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; + ppgotominor.pp92 = ppmsp[0].minor.pp92; } // 1602 "parser.c" break; case 5: // 574 "parser.lemon" { - yygotominor.yy92 = phql_ret_select_statement(yymsp[-5].minor.yy92, yymsp[-4].minor.yy92, yymsp[-1].minor.yy92, yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_select_statement(ppmsp[-5].minor.pp92, ppmsp[-4].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[-3].minor.pp92, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); } // 1609 "parser.c" break; case 6: // 580 "parser.lemon" { - yygotominor.yy92 = phql_ret_select_clause(yymsp[-4].minor.yy92, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(26,&yymsp[-5].minor); - yy_destructor(27,&yymsp[-2].minor); + ppgotominor.pp92 = phql_ret_select_clause(ppmsp[-4].minor.pp92, ppmsp[-3].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(26,&ppmsp[-5].minor); + pp_destructor(27,&ppmsp[-2].minor); } // 1618 "parser.c" break; case 7: // 586 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct_all(1); - yy_destructor(28,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct_all(1); + pp_destructor(28,&ppmsp[0].minor); } // 1626 "parser.c" break; case 8: // 590 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct_all(0); - yy_destructor(29,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct_all(0); + pp_destructor(29,&ppmsp[0].minor); } // 1634 "parser.c" break; @@ -95575,7 +97947,7 @@ static void yy_reduce( case 115: // 594 "parser.lemon" { - yygotominor.yy92 = NULL; + ppgotominor.pp92 = NULL; } // 1652 "parser.c" break; @@ -95589,8 +97961,8 @@ static void yy_reduce( case 116: // 600 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(25,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(25,&ppmsp[-1].minor); } // 1667 "parser.c" break; @@ -95600,7 +97972,7 @@ static void yy_reduce( case 117: // 604 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[0].minor.yy92, NULL); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[0].minor.pp92, NULL); } // 1677 "parser.c" break; @@ -95608,61 +97980,61 @@ static void yy_reduce( case 118: // 610 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_STARALL, NULL, NULL, NULL); - yy_destructor(17,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_STARALL, NULL, NULL, NULL); + pp_destructor(17,&ppmsp[0].minor); } // 1686 "parser.c" break; case 13: // 614 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_DOMAINALL, NULL, yymsp[-2].minor.yy0, NULL); - yy_destructor(31,&yymsp[-1].minor); - yy_destructor(17,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_DOMAINALL, NULL, ppmsp[-2].minor.pp0, NULL); + pp_destructor(31,&ppmsp[-1].minor); + pp_destructor(17,&ppmsp[0].minor); } // 1695 "parser.c" break; case 14: // 618 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[-2].minor.yy92, NULL, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[-2].minor.pp92, NULL, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1703 "parser.c" break; case 15: // 622 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[-1].minor.yy92, NULL, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[-1].minor.pp92, NULL, ppmsp[0].minor.pp0); } // 1710 "parser.c" break; case 16: // 626 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[0].minor.yy92, NULL, NULL); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[0].minor.pp92, NULL, NULL); } // 1717 "parser.c" break; case 21: // 650 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1724 "parser.c" break; case 24: // 667 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_item(yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_join_item(ppmsp[-3].minor.pp92, ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1731 "parser.c" break; case 25: // 673 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, NULL, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, NULL, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1739 "parser.c" break; @@ -95671,243 +98043,243 @@ static void yy_reduce( case 138: // 677 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, NULL, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, NULL, ppmsp[0].minor.pp0); } // 1748 "parser.c" break; case 28: // 687 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_INNERJOIN); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_INNERJOIN); + pp_destructor(33,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1757 "parser.c" break; case 29: // 691 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_CROSSJOIN); - yy_destructor(35,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_CROSSJOIN); + pp_destructor(35,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1766 "parser.c" break; case 30: // 695 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_LEFTJOIN); - yy_destructor(36,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_LEFTJOIN); + pp_destructor(36,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1776 "parser.c" break; case 31: // 699 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_LEFTJOIN); - yy_destructor(36,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_LEFTJOIN); + pp_destructor(36,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1785 "parser.c" break; case 32: // 703 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); - yy_destructor(38,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); + pp_destructor(38,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1795 "parser.c" break; case 33: // 707 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); - yy_destructor(38,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); + pp_destructor(38,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1804 "parser.c" break; case 34: // 711 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_FULLJOIN); - yy_destructor(39,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_FULLJOIN); + pp_destructor(39,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1814 "parser.c" break; case 35: // 715 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_FULLJOIN); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_FULLJOIN); + pp_destructor(39,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1823 "parser.c" break; case 36: // 719 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_INNERJOIN); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_INNERJOIN); + pp_destructor(34,&ppmsp[0].minor); } // 1831 "parser.c" break; case 37: // 725 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(40,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(40,&ppmsp[-1].minor); } // 1839 "parser.c" break; case 39: // 736 "parser.lemon" { - yygotominor.yy92 = phql_ret_insert_statement(yymsp[-4].minor.yy92, NULL, yymsp[-1].minor.yy92); - yy_destructor(41,&yymsp[-6].minor); - yy_destructor(42,&yymsp[-5].minor); - yy_destructor(43,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_insert_statement(ppmsp[-4].minor.pp92, NULL, ppmsp[-1].minor.pp92); + pp_destructor(41,&ppmsp[-6].minor); + pp_destructor(42,&ppmsp[-5].minor); + pp_destructor(43,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 1851 "parser.c" break; case 40: // 740 "parser.lemon" { - yygotominor.yy92 = phql_ret_insert_statement(yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(41,&yymsp[-9].minor); - yy_destructor(42,&yymsp[-8].minor); - yy_destructor(44,&yymsp[-6].minor); - yy_destructor(45,&yymsp[-4].minor); - yy_destructor(43,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_insert_statement(ppmsp[-7].minor.pp92, ppmsp[-5].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(41,&ppmsp[-9].minor); + pp_destructor(42,&ppmsp[-8].minor); + pp_destructor(44,&ppmsp[-6].minor); + pp_destructor(45,&ppmsp[-4].minor); + pp_destructor(43,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 1865 "parser.c" break; case 47: // 778 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_statement(yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_update_statement(ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1872 "parser.c" break; case 48: // 784 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_clause(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(46,&yymsp[-3].minor); - yy_destructor(47,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_update_clause(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(46,&ppmsp[-3].minor); + pp_destructor(47,&ppmsp[-1].minor); } // 1881 "parser.c" break; case 51: // 800 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_item(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(3,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_update_item(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(3,&ppmsp[-1].minor); } // 1889 "parser.c" break; case 53: // 812 "parser.lemon" { - yygotominor.yy92 = phql_ret_delete_statement(yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_delete_statement(ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1896 "parser.c" break; case 54: // 818 "parser.lemon" { - yygotominor.yy92 = phql_ret_delete_clause(yymsp[0].minor.yy92); - yy_destructor(48,&yymsp[-2].minor); - yy_destructor(27,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_delete_clause(ppmsp[0].minor.pp92); + pp_destructor(48,&ppmsp[-2].minor); + pp_destructor(27,&ppmsp[-1].minor); } // 1905 "parser.c" break; case 55: // 824 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[-2].minor.yy92, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1913 "parser.c" break; case 56: // 828 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[-1].minor.yy92, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[-1].minor.pp92, ppmsp[0].minor.pp0); } // 1920 "parser.c" break; case 57: // 832 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[0].minor.yy92, NULL); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[0].minor.pp92, NULL); } // 1927 "parser.c" break; case 59: // 844 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(49,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(49,&ppmsp[-1].minor); } // 1935 "parser.c" break; case 61: // 854 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(50,&yymsp[-2].minor); - yy_destructor(51,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(50,&ppmsp[-2].minor); + pp_destructor(51,&ppmsp[-1].minor); } // 1944 "parser.c" break; case 65: // 874 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[0].minor.yy92, 0); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[0].minor.pp92, 0); } // 1951 "parser.c" break; case 66: // 878 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[-1].minor.yy92, PHQL_T_ASC); - yy_destructor(52,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[-1].minor.pp92, PHQL_T_ASC); + pp_destructor(52,&ppmsp[0].minor); } // 1959 "parser.c" break; case 67: // 882 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[-1].minor.yy92, PHQL_T_DESC); - yy_destructor(53,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[-1].minor.pp92, PHQL_T_DESC); + pp_destructor(53,&ppmsp[0].minor); } // 1967 "parser.c" break; case 68: // 888 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(54,&yymsp[-2].minor); - yy_destructor(51,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(54,&ppmsp[-2].minor); + pp_destructor(51,&ppmsp[-1].minor); } // 1976 "parser.c" break; case 73: // 914 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(55,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(55,&ppmsp[-1].minor); } // 1984 "parser.c" break; @@ -95915,26 +98287,26 @@ static void yy_reduce( case 79: // 924 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[0].minor.yy92, NULL); - yy_destructor(56,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[0].minor.pp92, NULL); + pp_destructor(56,&ppmsp[-1].minor); } // 1993 "parser.c" break; case 76: // 928 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[0].minor.yy92, yymsp[-2].minor.yy92); - yy_destructor(56,&yymsp[-3].minor); - yy_destructor(25,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[0].minor.pp92, ppmsp[-2].minor.pp92); + pp_destructor(56,&ppmsp[-3].minor); + pp_destructor(25,&ppmsp[-1].minor); } // 2002 "parser.c" break; case 77: // 932 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(56,&yymsp[-3].minor); - yy_destructor(57,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(56,&ppmsp[-3].minor); + pp_destructor(57,&ppmsp[-1].minor); } // 2011 "parser.c" break; @@ -95942,7 +98314,7 @@ static void yy_reduce( case 127: // 950 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_INTEGER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_INTEGER, ppmsp[0].minor.pp0); } // 2019 "parser.c" break; @@ -95950,7 +98322,7 @@ static void yy_reduce( case 133: // 954 "parser.lemon" { - yygotominor.yy92 = phql_ret_placeholder_zval(PHQL_T_NPLACEHOLDER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_placeholder_zval(PHQL_T_NPLACEHOLDER, ppmsp[0].minor.pp0); } // 2027 "parser.c" break; @@ -95958,397 +98330,397 @@ static void yy_reduce( case 134: // 958 "parser.lemon" { - yygotominor.yy92 = phql_ret_placeholder_zval(PHQL_T_SPLACEHOLDER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_placeholder_zval(PHQL_T_SPLACEHOLDER, ppmsp[0].minor.pp0); } // 2035 "parser.c" break; case 84: // 964 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MINUS, NULL, yymsp[0].minor.yy92); - yy_destructor(20,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MINUS, NULL, ppmsp[0].minor.pp92); + pp_destructor(20,&ppmsp[-1].minor); } // 2043 "parser.c" break; case 85: // 968 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_SUB, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(20,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_SUB, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(20,&ppmsp[-1].minor); } // 2051 "parser.c" break; case 86: // 972 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ADD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(19,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ADD, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(19,&ppmsp[-1].minor); } // 2059 "parser.c" break; case 87: // 976 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MUL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(17,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MUL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(17,&ppmsp[-1].minor); } // 2067 "parser.c" break; case 88: // 980 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_DIV, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(16,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_DIV, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(16,&ppmsp[-1].minor); } // 2075 "parser.c" break; case 89: // 984 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MOD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(18,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MOD, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(18,&ppmsp[-1].minor); } // 2083 "parser.c" break; case 90: // 988 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(9,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_AND, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(9,&ppmsp[-1].minor); } // 2091 "parser.c" break; case 91: // 992 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(10,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_OR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(10,&ppmsp[-1].minor); } // 2099 "parser.c" break; case 92: // 996 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(13,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_AND, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(13,&ppmsp[-1].minor); } // 2107 "parser.c" break; case 93: // 1000 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(14,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_OR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(14,&ppmsp[-1].minor); } // 2115 "parser.c" break; case 94: // 1004 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_XOR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(15,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_XOR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(15,&ppmsp[-1].minor); } // 2123 "parser.c" break; case 95: // 1008 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_EQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(3,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_EQUALS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(3,&ppmsp[-1].minor); } // 2131 "parser.c" break; case 96: // 1012 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOTEQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(4,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOTEQUALS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(4,&ppmsp[-1].minor); } // 2139 "parser.c" break; case 97: // 1016 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LESS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(5,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LESS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(5,&ppmsp[-1].minor); } // 2147 "parser.c" break; case 98: // 1020 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_GREATER, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(6,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_GREATER, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(6,&ppmsp[-1].minor); } // 2155 "parser.c" break; case 99: // 1024 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_GREATEREQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(7,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_GREATEREQUAL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(7,&ppmsp[-1].minor); } // 2163 "parser.c" break; case 100: // 1028 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LESSEQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(8,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LESSEQUAL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(8,&ppmsp[-1].minor); } // 2171 "parser.c" break; case 101: // 1032 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LIKE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(11,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LIKE, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(11,&ppmsp[-1].minor); } // 2179 "parser.c" break; case 102: // 1036 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NLIKE, yymsp[-3].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-2].minor); - yy_destructor(11,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NLIKE, ppmsp[-3].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-2].minor); + pp_destructor(11,&ppmsp[-1].minor); } // 2188 "parser.c" break; case 103: // 1040 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ILIKE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(12,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ILIKE, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(12,&ppmsp[-1].minor); } // 2196 "parser.c" break; case 104: // 1044 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NILIKE, yymsp[-3].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-2].minor); - yy_destructor(12,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NILIKE, ppmsp[-3].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-2].minor); + pp_destructor(12,&ppmsp[-1].minor); } // 2205 "parser.c" break; case 105: // 1048 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_IN, yymsp[-4].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(22,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_IN, ppmsp[-4].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(22,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2215 "parser.c" break; case 106: // 1052 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOTIN, yymsp[-5].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(23,&yymsp[-4].minor); - yy_destructor(22,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOTIN, ppmsp[-5].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(23,&ppmsp[-4].minor); + pp_destructor(22,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2226 "parser.c" break; case 107: // 1056 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_AGAINST, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(1,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_AGAINST, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(1,&ppmsp[-1].minor); } // 2234 "parser.c" break; case 108: // 1060 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_CAST, yymsp[-3].minor.yy92, phql_ret_raw_qualified_name(yymsp[-1].minor.yy0, NULL)); - yy_destructor(61,&yymsp[-5].minor); - yy_destructor(44,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_CAST, ppmsp[-3].minor.pp92, phql_ret_raw_qualified_name(ppmsp[-1].minor.pp0, NULL)); + pp_destructor(61,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-4].minor); + pp_destructor(32,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2245 "parser.c" break; case 109: // 1064 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_CONVERT, yymsp[-3].minor.yy92, phql_ret_raw_qualified_name(yymsp[-1].minor.yy0, NULL)); - yy_destructor(62,&yymsp[-5].minor); - yy_destructor(44,&yymsp[-4].minor); - yy_destructor(63,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_CONVERT, ppmsp[-3].minor.pp92, phql_ret_raw_qualified_name(ppmsp[-1].minor.pp0, NULL)); + pp_destructor(62,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-4].minor); + pp_destructor(63,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2256 "parser.c" break; case 111: // 1074 "parser.lemon" { - yygotominor.yy92 = phql_ret_func_call(yymsp[-4].minor.yy0, yymsp[-1].minor.yy92, yymsp[-2].minor.yy92); - yy_destructor(44,&yymsp[-3].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_func_call(ppmsp[-4].minor.pp0, ppmsp[-1].minor.pp92, ppmsp[-2].minor.pp92); + pp_destructor(44,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2265 "parser.c" break; case 112: // 1080 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct(); - yy_destructor(28,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct(); + pp_destructor(28,&ppmsp[0].minor); } // 2273 "parser.c" break; case 120: // 1118 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ISNULL, yymsp[-2].minor.yy92, NULL); - yy_destructor(21,&yymsp[-1].minor); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ISNULL, ppmsp[-2].minor.pp92, NULL); + pp_destructor(21,&ppmsp[-1].minor); + pp_destructor(64,&ppmsp[0].minor); } // 2282 "parser.c" break; case 121: // 1122 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ISNOTNULL, yymsp[-3].minor.yy92, NULL); - yy_destructor(21,&yymsp[-2].minor); - yy_destructor(23,&yymsp[-1].minor); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ISNOTNULL, ppmsp[-3].minor.pp92, NULL); + pp_destructor(21,&ppmsp[-2].minor); + pp_destructor(23,&ppmsp[-1].minor); + pp_destructor(64,&ppmsp[0].minor); } // 2292 "parser.c" break; case 122: // 1126 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BETWEEN, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(2,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BETWEEN, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(2,&ppmsp[-1].minor); } // 2300 "parser.c" break; case 123: // 1130 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOT, NULL, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOT, NULL, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-1].minor); } // 2308 "parser.c" break; case 124: // 1134 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_NOT, NULL, yymsp[0].minor.yy92); - yy_destructor(24,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_NOT, NULL, ppmsp[0].minor.pp92); + pp_destructor(24,&ppmsp[-1].minor); } // 2316 "parser.c" break; case 125: // 1138 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ENCLOSED, yymsp[-1].minor.yy92, NULL); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ENCLOSED, ppmsp[-1].minor.pp92, NULL); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2325 "parser.c" break; case 128: // 1150 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_STRING, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_STRING, ppmsp[0].minor.pp0); } // 2332 "parser.c" break; case 129: // 1154 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_DOUBLE, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_DOUBLE, ppmsp[0].minor.pp0); } // 2339 "parser.c" break; case 130: // 1158 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_NULL, NULL); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_NULL, NULL); + pp_destructor(64,&ppmsp[0].minor); } // 2347 "parser.c" break; case 131: // 1162 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_TRUE, NULL); - yy_destructor(67,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_TRUE, NULL); + pp_destructor(67,&ppmsp[0].minor); } // 2355 "parser.c" break; case 132: // 1166 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_FALSE, NULL); - yy_destructor(68,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_FALSE, NULL); + pp_destructor(68,&ppmsp[0].minor); } // 2363 "parser.c" break; case 135: // 1180 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(yymsp[-4].minor.yy0, yymsp[-2].minor.yy0, yymsp[0].minor.yy0); - yy_destructor(69,&yymsp[-3].minor); - yy_destructor(31,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(ppmsp[-4].minor.pp0, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(69,&ppmsp[-3].minor); + pp_destructor(31,&ppmsp[-1].minor); } // 2372 "parser.c" break; case 136: // 1184 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(yymsp[-2].minor.yy0, NULL, yymsp[0].minor.yy0); - yy_destructor(69,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(ppmsp[-2].minor.pp0, NULL, ppmsp[0].minor.pp0); + pp_destructor(69,&ppmsp[-1].minor); } // 2380 "parser.c" break; case 137: // 1188 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, yymsp[-2].minor.yy0, yymsp[0].minor.yy0); - yy_destructor(31,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(31,&ppmsp[-1].minor); } // 2388 "parser.c" break; }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yypParser,yygoto); - if( yyact < YYNSTATE ){ - yy_shift(yypParser,yyact,yygoto,&yygotominor); - }else if( yyact == YYNSTATE + YYNRULE + 1 ){ - yy_accept(yypParser); + ppgoto = ppRuleInfo[ppruleno].lhs; + ppsize = ppRuleInfo[ppruleno].nrhs; + pppParser->ppidx -= ppsize; + ppact = pp_find_reduce_action(pppParser,ppgoto); + if( ppact < PPNSTATE ){ + pp_shift(pppParser,ppact,ppgoto,&ppgotominor); + }else if( ppact == PPNSTATE + PPNRULE + 1 ){ + pp_accept(pppParser); } } -static void yy_parse_failed( - yyParser *yypParser /* The parser */ +static void pp_parse_failed( + ppParser *pppParser /* The parser */ ){ phql_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sFail!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ +static void pp_syntax_error( + ppParser *pppParser, /* The parser */ + int ppmajor, /* The major type of the error token */ + PPMINORTYPE ppminor /* The minor type of the error token */ ){ phql_ARG_FETCH; -#define TOKEN (yyminor.yy0) +#define TOKEN (ppminor.pp0) // 474 "parser.lemon" if (status->scanner_state->start_length) { @@ -96420,16 +98792,16 @@ static void yy_syntax_error( phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_accept( - yyParser *yypParser /* The parser */ +static void pp_accept( + ppParser *pppParser /* The parser */ ){ phql_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sAccept!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -96455,56 +98827,56 @@ static void yy_accept( ** None. */ static void phql_( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - phql_TOKENTYPE yyminor /* The value for the token */ + void *ppp, /* The parser */ + int ppmajor, /* The major token code number */ + phql_TOKENTYPE ppminor /* The value for the token */ phql_ARG_PDECL /* Optional %extra_argument parameter */ ){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ - int yyerrorhit = 0; /* True if yymajor has invoked an error */ - yyParser *yypParser; /* The parser */ + PPMINORTYPE ppminorunion; + int ppact; /* The parser action. */ + int ppendofinput; /* True if we are at the end of input */ + int pperrorhit = 0; /* True if ppmajor has invoked an error */ + ppParser *pppParser; /* The parser */ /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ - if( yymajor==0 ) return; - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + pppParser = (ppParser*)ppp; + if( pppParser->ppidx<0 ){ + if( ppmajor==0 ) return; + pppParser->ppidx = 0; + pppParser->pperrcnt = -1; + pppParser->ppstack[0].stateno = 0; + pppParser->ppstack[0].major = 0; } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); + ppminorunion.pp0 = ppminor; + ppendofinput = (ppmajor==0); phql_ARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sInput %s\n",ppTracePrompt,ppTokenName[ppmajor]); } #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); - if( yyactyyerrcnt--; - if( yyendofinput && yypParser->yyidx>=0 ){ - yymajor = 0; + ppact = pp_find_shift_action(pppParser,ppmajor); + if( ppactpperrcnt--; + if( ppendofinput && pppParser->ppidx>=0 ){ + ppmajor = 0; }else{ - yymajor = YYNOCODE; + ppmajor = PPNOCODE; } - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else if( yyact == YY_ERROR_ACTION ){ - int yymx; + }else if( ppact < PPNSTATE + PPNRULE ){ + pp_reduce(pppParser,ppact-PPNSTATE); + }else if( ppact == PP_ERROR_ACTION ){ + int ppmx; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sSyntax Error!\n",ppTracePrompt); } #endif -#ifdef YYERRORSYMBOL +#ifdef PPERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -96524,40 +98896,40 @@ static void phql_( ** shifted successfully. ** */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( pppParser->pperrcnt<0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + ppmx = pppParser->ppstack[pppParser->ppidx].major; + if( ppmx==PPERRORSYMBOL || pperrorhit ){ #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sDiscard input token %s\n", + ppTracePrompt,ppTokenName[ppmajor]); } #endif - yy_destructor(yymajor,&yyminorunion); - yymajor = YYNOCODE; + pp_destructor(ppmajor,&ppminorunion); + ppmajor = PPNOCODE; }else{ while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE + pppParser->ppidx >= 0 && + ppmx != PPERRORSYMBOL && + (ppact = pp_find_shift_action(pppParser,PPERRORSYMBOL)) >= PPNSTATE ){ - yy_pop_parser_stack(yypParser); + pp_pop_parser_stack(pppParser); } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + if( pppParser->ppidx < 0 || ppmajor==0 ){ + pp_destructor(ppmajor,&ppminorunion); + pp_parse_failed(pppParser); + ppmajor = PPNOCODE; + }else if( ppmx!=PPERRORSYMBOL ){ + PPMINORTYPE u2; + u2.PPERRSYMDT = 0; + pp_shift(pppParser,ppact,PPERRORSYMBOL,&u2); } } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#else /* YYERRORSYMBOL is not defined */ + pppParser->pperrcnt = 3; + pperrorhit = 1; +#else /* PPERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -96567,21 +98939,21 @@ static void phql_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( pppParser->pperrcnt<=0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); } - yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); + pppParser->pperrcnt = 3; + pp_destructor(ppmajor,&ppminorunion); + if( ppendofinput ){ + pp_parse_failed(pppParser); } - yymajor = YYNOCODE; + ppmajor = PPNOCODE; #endif }else{ - yy_accept(yypParser); - yymajor = YYNOCODE; + pp_accept(pppParser); + ppmajor = PPNOCODE; } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + }while( ppmajor!=PPNOCODE && pppParser->ppidx>=0 ); return; } @@ -97128,7 +99500,7 @@ static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql } -/* Generated by re2c 0.13.5 on Mon Apr 27 09:01:41 2015 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:07:52 2015 */ // 1 "scanner.re" @@ -97137,14 +99509,14 @@ static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql -#define YYCTYPE unsigned char -#define YYCURSOR (s->start) -#define YYLIMIT (s->end) -#define YYMARKER q +#define PPCTYPE unsigned char +#define PPCURSOR (s->start) +#define PPLIMIT (s->end) +#define PPMARKER q static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { - char *q = YYCURSOR; + char *q = PPCURSOR; int status = PHQL_SCANNER_RETCODE_IMPOSSIBLE; while (PHQL_SCANNER_RETCODE_IMPOSSIBLE == status) { @@ -97152,29 +99524,29 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { // 45 "scanner.c" { - YYCTYPE yych; - unsigned int yyaccept = 0; + PPCTYPE ppch; + unsigned int ppaccept = 0; - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy69; + ppch = *PPCURSOR; + switch (ppch) { + case 0x00: goto pp69; case '\t': case '\n': case '\r': - case ' ': goto yy67; - case '!': goto yy50; - case '"': goto yy29; - case '%': goto yy42; - case '&': goto yy61; - case '\'': goto yy30; - case '(': goto yy46; - case ')': goto yy48; - case '*': goto yy38; - case '+': goto yy34; - case ',': goto yy44; - case '-': goto yy36; - case '.': goto yy4; - case '/': goto yy40; + case ' ': goto pp67; + case '!': goto pp50; + case '"': goto pp29; + case '%': goto pp42; + case '&': goto pp61; + case '\'': goto pp30; + case '(': goto pp46; + case ')': goto pp48; + case '*': goto pp38; + case '+': goto pp34; + case ',': goto pp44; + case '-': goto pp36; + case '.': goto pp4; + case '/': goto pp40; case '0': case '1': case '2': @@ -97184,21 +99556,21 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy2; - case ':': goto yy8; - case '<': goto yy52; - case '=': goto yy56; - case '>': goto yy54; - case '?': goto yy6; - case '@': goto yy58; + case '9': goto pp2; + case ':': goto pp8; + case '<': goto pp52; + case '=': goto pp56; + case '>': goto pp54; + case '?': goto pp6; + case '@': goto pp58; case 'A': - case 'a': goto yy15; + case 'a': goto pp15; case 'B': - case 'b': goto yy20; + case 'b': goto pp20; case 'C': - case 'c': goto yy27; + case 'c': goto pp27; case 'D': - case 'd': goto yy13; + case 'd': goto pp13; case 'E': case 'K': case 'M': @@ -97215,46 +99587,46 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'q': case 'x': case 'y': - case 'z': goto yy32; + case 'z': goto pp32; case 'F': - case 'f': goto yy14; + case 'f': goto pp14; case 'G': - case 'g': goto yy21; + case 'g': goto pp21; case 'H': - case 'h': goto yy22; + case 'h': goto pp22; case 'I': - case 'i': goto yy16; + case 'i': goto pp16; case 'J': - case 'j': goto yy25; + case 'j': goto pp25; case 'L': - case 'l': goto yy23; + case 'l': goto pp23; case 'N': - case 'n': goto yy24; + case 'n': goto pp24; case 'O': - case 'o': goto yy19; + case 'o': goto pp19; case 'R': - case 'r': goto yy26; + case 'r': goto pp26; case 'S': - case 's': goto yy12; + case 's': goto pp12; case 'T': - case 't': goto yy28; + case 't': goto pp28; case 'U': - case 'u': goto yy10; + case 'u': goto pp10; case 'V': - case 'v': goto yy17; + case 'v': goto pp17; case 'W': - case 'w': goto yy18; - case '[': goto yy33; - case '\\': goto yy31; - case '^': goto yy65; - case '|': goto yy59; - case '~': goto yy63; - default: goto yy71; - } -yy2: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '.': goto yy302; + case 'w': goto pp18; + case '[': goto pp33; + case '\\': goto pp31; + case '^': goto pp65; + case '|': goto pp59; + case '~': goto pp63; + default: goto pp71; + } +pp2: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '.': goto pp302; case '0': case '1': case '2': @@ -97264,22 +99636,22 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy304; - default: goto yy3; + case '9': goto pp304; + default: goto pp3; } -yy3: +pp3: // 46 "scanner.re" { token->opcode = PHQL_T_INTEGER; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } // 171 "scanner.c" -yy4: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp4: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -97289,19 +99661,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy299; - default: goto yy5; + case '9': goto pp299; + default: goto pp5; } -yy5: +pp5: // 358 "scanner.re" { token->opcode = PHQL_T_DOT; return 0; } // 193 "scanner.c" -yy6: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp6: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -97311,20 +99683,20 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy296; - default: goto yy7; + case '9': goto pp296; + default: goto pp7; } -yy7: +pp7: // 483 "scanner.re" { status = PHQL_SCANNER_RETCODE_ERR; break; } // 215 "scanner.c" -yy8: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { +pp8: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { case '-': case '0': case '1': @@ -97388,209 +99760,209 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy292; - default: goto yy9; + case 'z': goto pp292; + default: goto pp9; } -yy9: +pp9: // 363 "scanner.re" { token->opcode = PHQL_T_COLON; return 0; } // 292 "scanner.c" -yy10: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp10: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case 'P': - case 'p': goto yy281; + case 'p': goto pp281; case 'S': - case 's': goto yy282; - default: goto yy98; + case 's': goto pp282; + default: goto pp98; } -yy11: +pp11: // 306 "scanner.re" { token->opcode = PHQL_T_IDENTIFIER; - if ((YYCURSOR - q) > 1) { + if ((PPCURSOR - q) > 1) { if (q[0] == '\\') { - token->value = estrndup(q + 1, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; + token->value = estrndup(q + 1, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; } else { - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } } else { - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } - q = YYCURSOR; + q = PPCURSOR; return 0; } // 321 "scanner.c" -yy12: - yych = *++YYCURSOR; - switch (yych) { +pp12: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy273; - default: goto yy98; + case 'e': goto pp273; + default: goto pp98; } -yy13: - yych = *++YYCURSOR; - switch (yych) { +pp13: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy256; + case 'e': goto pp256; case 'I': - case 'i': goto yy257; - default: goto yy98; + case 'i': goto pp257; + default: goto pp98; } -yy14: - yych = *++YYCURSOR; - switch (yych) { +pp14: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy243; + case 'a': goto pp243; case 'R': - case 'r': goto yy244; + case 'r': goto pp244; case 'U': - case 'u': goto yy245; - default: goto yy98; + case 'u': goto pp245; + default: goto pp98; } -yy15: - yych = *++YYCURSOR; - switch (yych) { +pp15: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy226; + case 'g': goto pp226; case 'L': - case 'l': goto yy227; + case 'l': goto pp227; case 'N': - case 'n': goto yy228; + case 'n': goto pp228; case 'S': - case 's': goto yy229; - default: goto yy98; + case 's': goto pp229; + default: goto pp98; } -yy16: - yych = *++YYCURSOR; - switch (yych) { +pp16: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy205; + case 'l': goto pp205; case 'N': - case 'n': goto yy206; + case 'n': goto pp206; case 'S': - case 's': goto yy208; - default: goto yy98; + case 's': goto pp208; + default: goto pp98; } -yy17: - yych = *++YYCURSOR; - switch (yych) { +pp17: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy199; - default: goto yy98; + case 'a': goto pp199; + default: goto pp98; } -yy18: - yych = *++YYCURSOR; - switch (yych) { +pp18: + ppch = *++PPCURSOR; + switch (ppch) { case 'H': - case 'h': goto yy194; - default: goto yy98; + case 'h': goto pp194; + default: goto pp98; } -yy19: - yych = *++YYCURSOR; - switch (yych) { +pp19: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy175; + case 'f': goto pp175; case 'N': - case 'n': goto yy176; + case 'n': goto pp176; case 'R': - case 'r': goto yy178; + case 'r': goto pp178; case 'U': - case 'u': goto yy180; - default: goto yy98; + case 'u': goto pp180; + default: goto pp98; } -yy20: - yych = *++YYCURSOR; - switch (yych) { +pp20: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy166; + case 'e': goto pp166; case 'Y': - case 'y': goto yy167; - default: goto yy98; + case 'y': goto pp167; + default: goto pp98; } -yy21: - yych = *++YYCURSOR; - switch (yych) { +pp21: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy161; - default: goto yy98; + case 'r': goto pp161; + default: goto pp98; } -yy22: - yych = *++YYCURSOR; - switch (yych) { +pp22: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy155; - default: goto yy98; + case 'a': goto pp155; + default: goto pp98; } -yy23: - yych = *++YYCURSOR; - switch (yych) { +pp23: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy143; + case 'e': goto pp143; case 'I': - case 'i': goto yy144; - default: goto yy98; + case 'i': goto pp144; + default: goto pp98; } -yy24: - yych = *++YYCURSOR; - switch (yych) { +pp24: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy136; + case 'o': goto pp136; case 'U': - case 'u': goto yy137; - default: goto yy98; + case 'u': goto pp137; + default: goto pp98; } -yy25: - yych = *++YYCURSOR; - switch (yych) { +pp25: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy132; - default: goto yy98; + case 'o': goto pp132; + default: goto pp98; } -yy26: - yych = *++YYCURSOR; - switch (yych) { +pp26: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy127; - default: goto yy98; + case 'i': goto pp127; + default: goto pp98; } -yy27: - yych = *++YYCURSOR; - switch (yych) { +pp27: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy111; + case 'a': goto pp111; case 'O': - case 'o': goto yy112; + case 'o': goto pp112; case 'R': - case 'r': goto yy113; - default: goto yy98; + case 'r': goto pp113; + default: goto pp98; } -yy28: - yych = *++YYCURSOR; - switch (yych) { +pp28: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy107; - default: goto yy98; - } -yy29: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy7; - goto yy105; -yy30: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy7; - goto yy100; -yy31: - yych = *++YYCURSOR; - switch (yych) { + case 'r': goto pp107; + default: goto pp98; + } +pp29: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp7; + goto pp105; +pp30: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp7; + goto pp100; +pp31: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': case 'B': case 'C': @@ -97643,16 +100015,16 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy7; - } -yy32: - yych = *++YYCURSOR; - goto yy98; -yy33: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { + case 'z': goto pp97; + default: goto pp7; + } +pp32: + ppch = *++PPCURSOR; + goto pp98; +pp33: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { case 'A': case 'B': case 'C': @@ -97706,280 +100078,280 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy92; - default: goto yy7; + case 'z': goto pp92; + default: goto pp7; } -yy34: - ++YYCURSOR; +pp34: + ++PPCURSOR; // 333 "scanner.re" { token->opcode = PHQL_T_ADD; return 0; } // 611 "scanner.c" -yy36: - ++YYCURSOR; +pp36: + ++PPCURSOR; // 338 "scanner.re" { token->opcode = PHQL_T_SUB; return 0; } // 619 "scanner.c" -yy38: - ++YYCURSOR; +pp38: + ++PPCURSOR; // 343 "scanner.re" { token->opcode = PHQL_T_MUL; return 0; } // 627 "scanner.c" -yy40: - ++YYCURSOR; +pp40: + ++PPCURSOR; // 348 "scanner.re" { token->opcode = PHQL_T_DIV; return 0; } // 635 "scanner.c" -yy42: - ++YYCURSOR; +pp42: + ++PPCURSOR; // 353 "scanner.re" { token->opcode = PHQL_T_MOD; return 0; } // 643 "scanner.c" -yy44: - ++YYCURSOR; +pp44: + ++PPCURSOR; // 368 "scanner.re" { token->opcode = PHQL_T_COMMA; return 0; } // 651 "scanner.c" -yy46: - ++YYCURSOR; +pp46: + ++PPCURSOR; // 373 "scanner.re" { token->opcode = PHQL_T_PARENTHESES_OPEN; return 0; } // 659 "scanner.c" -yy48: - ++YYCURSOR; +pp48: + ++PPCURSOR; // 378 "scanner.re" { token->opcode = PHQL_T_PARENTHESES_CLOSE; return 0; } // 667 "scanner.c" -yy50: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '!': goto yy88; - case '=': goto yy90; - default: goto yy51; - } -yy51: +pp50: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '!': goto pp88; + case '=': goto pp90; + default: goto pp51; + } +pp51: // 448 "scanner.re" { token->opcode = PHQL_T_NOT; return 0; } // 681 "scanner.c" -yy52: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy84; - case '>': goto yy86; - default: goto yy53; - } -yy53: +pp52: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '=': goto pp84; + case '>': goto pp86; + default: goto pp53; + } +pp53: // 403 "scanner.re" { token->opcode = PHQL_T_LESS; return 0; } // 695 "scanner.c" -yy54: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy82; - default: goto yy55; +pp54: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '=': goto pp82; + default: goto pp55; } -yy55: +pp55: // 408 "scanner.re" { token->opcode = PHQL_T_GREATER; return 0; } // 708 "scanner.c" -yy56: - ++YYCURSOR; +pp56: + ++PPCURSOR; // 413 "scanner.re" { token->opcode = PHQL_T_EQUALS; return 0; } // 716 "scanner.c" -yy58: - yych = *++YYCURSOR; - switch (yych) { - case '>': goto yy78; - case '@': goto yy80; - default: goto yy7; - } -yy59: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '|': goto yy76; - default: goto yy60; - } -yy60: +pp58: + ppch = *++PPCURSOR; + switch (ppch) { + case '>': goto pp78; + case '@': goto pp80; + default: goto pp7; + } +pp59: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '|': goto pp76; + default: goto pp60; + } +pp60: // 468 "scanner.re" { token->opcode = PHQL_T_BITWISE_OR; return 0; } // 736 "scanner.c" -yy61: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '&': goto yy74; - default: goto yy62; +pp61: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '&': goto pp74; + default: goto pp62; } -yy62: +pp62: // 463 "scanner.re" { token->opcode = PHQL_T_BITWISE_AND; return 0; } // 749 "scanner.c" -yy63: - ++YYCURSOR; +pp63: + ++PPCURSOR; // 453 "scanner.re" { token->opcode = PHQL_T_BITWISE_NOT; return 0; } // 757 "scanner.c" -yy65: - ++YYCURSOR; +pp65: + ++PPCURSOR; // 458 "scanner.re" { token->opcode = PHQL_T_BITWISE_XOR; return 0; } // 765 "scanner.c" -yy67: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy73; -yy68: +pp67: + ++PPCURSOR; + ppch = *PPCURSOR; + goto pp73; +pp68: // 473 "scanner.re" { token->opcode = PHQL_T_IGNORE; return 0; } // 776 "scanner.c" -yy69: - ++YYCURSOR; +pp69: + ++PPCURSOR; // 478 "scanner.re" { status = PHQL_SCANNER_RETCODE_EOF; break; } // 784 "scanner.c" -yy71: - yych = *++YYCURSOR; - goto yy7; -yy72: - ++YYCURSOR; - yych = *YYCURSOR; -yy73: - switch (yych) { +pp71: + ppch = *++PPCURSOR; + goto pp7; +pp72: + ++PPCURSOR; + ppch = *PPCURSOR; +pp73: + switch (ppch) { case '\t': case '\n': case '\r': - case ' ': goto yy72; - default: goto yy68; + case ' ': goto pp72; + default: goto pp68; } -yy74: - ++YYCURSOR; +pp74: + ++PPCURSOR; // 428 "scanner.re" { token->opcode = PHQL_T_TS_AND; return 0; } // 806 "scanner.c" -yy76: - ++YYCURSOR; +pp76: + ++PPCURSOR; // 423 "scanner.re" { token->opcode = PHQL_T_TS_OR; return 0; } // 814 "scanner.c" -yy78: - ++YYCURSOR; +pp78: + ++PPCURSOR; // 438 "scanner.re" { token->opcode = PHQL_T_TS_CONTAINS_ANOTHER; return 0; } // 822 "scanner.c" -yy80: - ++YYCURSOR; +pp80: + ++PPCURSOR; // 418 "scanner.re" { token->opcode = PHQL_T_TS_MATCHES; return 0; } // 830 "scanner.c" -yy82: - ++YYCURSOR; +pp82: + ++PPCURSOR; // 398 "scanner.re" { token->opcode = PHQL_T_GREATEREQUAL; return 0; } // 838 "scanner.c" -yy84: - ++YYCURSOR; +pp84: + ++PPCURSOR; // 393 "scanner.re" { token->opcode = PHQL_T_LESSEQUAL; return 0; } // 846 "scanner.c" -yy86: - ++YYCURSOR; +pp86: + ++PPCURSOR; // 388 "scanner.re" { token->opcode = PHQL_T_NOTEQUALS; return 0; } // 854 "scanner.c" -yy88: - ++YYCURSOR; +pp88: + ++PPCURSOR; // 433 "scanner.re" { token->opcode = PHQL_T_TS_NEGATE; return 0; } // 862 "scanner.c" -yy90: - ++YYCURSOR; +pp90: + ++PPCURSOR; // 383 "scanner.re" { token->opcode = PHQL_T_NOTEQUALS; return 0; } // 870 "scanner.c" -yy92: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +pp92: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -98043,32 +100415,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy92; - case ']': goto yy95; - default: goto yy94; - } -yy94: - YYCURSOR = YYMARKER; - switch (yyaccept) { - case 0: goto yy9; - case 1: goto yy7; - } -yy95: - ++YYCURSOR; + case 'z': goto pp92; + case ']': goto pp95; + default: goto pp94; + } +pp94: + PPCURSOR = PPMARKER; + if (ppaccept == 0) { + goto pp9; + } else { + goto pp7; + } +pp95: + ++PPCURSOR; // 325 "scanner.re" { token->opcode = PHQL_T_IDENTIFIER; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 958 "scanner.c" -yy97: - ++YYCURSOR; - yych = *YYCURSOR; -yy98: - switch (yych) { +// 959 "scanner.c" +pp97: + ++PPCURSOR; + ppch = *PPCURSOR; +pp98: + switch (ppch) { case '0': case '1': case '2': @@ -98132,71 +100505,71 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy11; - } -yy99: - ++YYCURSOR; - yych = *YYCURSOR; -yy100: - switch (yych) { - case 0x00: goto yy94; - case '\'': goto yy102; - case '\\': goto yy101; - default: goto yy99; - } -yy101: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '\n': goto yy94; - default: goto yy99; - } -yy102: - ++YYCURSOR; + case 'z': goto pp97; + default: goto pp11; + } +pp99: + ++PPCURSOR; + ppch = *PPCURSOR; +pp100: + switch (ppch) { + case 0x00: goto pp94; + case '\'': goto pp102; + case '\\': goto pp101; + default: goto pp99; + } +pp101: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '\n': goto pp94; + default: goto pp99; + } +pp102: + ++PPCURSOR; // 297 "scanner.re" { token->opcode = PHQL_T_STRING; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 1057 "scanner.c" -yy104: - ++YYCURSOR; - yych = *YYCURSOR; -yy105: - switch (yych) { - case 0x00: goto yy94; - case '"': goto yy102; - case '\\': goto yy106; - default: goto yy104; - } -yy106: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '\n': goto yy94; - default: goto yy104; - } -yy107: - yych = *++YYCURSOR; - switch (yych) { +// 1058 "scanner.c" +pp104: + ++PPCURSOR; + ppch = *PPCURSOR; +pp105: + switch (ppch) { + case 0x00: goto pp94; + case '"': goto pp102; + case '\\': goto pp106; + default: goto pp104; + } +pp106: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '\n': goto pp94; + default: goto pp104; + } +pp107: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy108; - default: goto yy98; + case 'u': goto pp108; + default: goto pp98; } -yy108: - yych = *++YYCURSOR; - switch (yych) { +pp108: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy109; - default: goto yy98; + case 'e': goto pp109; + default: goto pp98; } -yy109: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp109: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98260,54 +100633,54 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy110; + case 'z': goto pp97; + default: goto pp110; } -yy110: +pp110: // 286 "scanner.re" { token->opcode = PHQL_T_TRUE; return 0; } -// 1164 "scanner.c" -yy111: - yych = *++YYCURSOR; - switch (yych) { +// 1165 "scanner.c" +pp111: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy124; - default: goto yy98; + case 's': goto pp124; + default: goto pp98; } -yy112: - yych = *++YYCURSOR; - switch (yych) { +pp112: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy118; - default: goto yy98; + case 'n': goto pp118; + default: goto pp98; } -yy113: - yych = *++YYCURSOR; - switch (yych) { +pp113: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy114; - default: goto yy98; + case 'o': goto pp114; + default: goto pp98; } -yy114: - yych = *++YYCURSOR; - switch (yych) { +pp114: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy115; - default: goto yy98; + case 's': goto pp115; + default: goto pp98; } -yy115: - yych = *++YYCURSOR; - switch (yych) { +pp115: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy116; - default: goto yy98; + case 's': goto pp116; + default: goto pp98; } -yy116: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp116: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98371,47 +100744,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy117; + case 'z': goto pp97; + default: goto pp117; } -yy117: +pp117: // 231 "scanner.re" { token->opcode = PHQL_T_CROSS; return 0; } -// 1275 "scanner.c" -yy118: - yych = *++YYCURSOR; - switch (yych) { +// 1276 "scanner.c" +pp118: + ppch = *++PPCURSOR; + switch (ppch) { case 'V': - case 'v': goto yy119; - default: goto yy98; + case 'v': goto pp119; + default: goto pp98; } -yy119: - yych = *++YYCURSOR; - switch (yych) { +pp119: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy120; - default: goto yy98; + case 'e': goto pp120; + default: goto pp98; } -yy120: - yych = *++YYCURSOR; - switch (yych) { +pp120: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy121; - default: goto yy98; + case 'r': goto pp121; + default: goto pp98; } -yy121: - yych = *++YYCURSOR; - switch (yych) { +pp121: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy122; - default: goto yy98; + case 't': goto pp122; + default: goto pp98; } -yy122: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp122: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98475,26 +100848,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy123; + case 'z': goto pp97; + default: goto pp123; } -yy123: +pp123: // 276 "scanner.re" { token->opcode = PHQL_T_CONVERT; return 0; } -// 1379 "scanner.c" -yy124: - yych = *++YYCURSOR; - switch (yych) { +// 1380 "scanner.c" +pp124: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy125; - default: goto yy98; + case 't': goto pp125; + default: goto pp98; } -yy125: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp125: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98558,40 +100931,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy126; + case 'z': goto pp97; + default: goto pp126; } -yy126: +pp126: // 271 "scanner.re" { token->opcode = PHQL_T_CAST; return 0; } -// 1462 "scanner.c" -yy127: - yych = *++YYCURSOR; - switch (yych) { +// 1463 "scanner.c" +pp127: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy128; - default: goto yy98; + case 'g': goto pp128; + default: goto pp98; } -yy128: - yych = *++YYCURSOR; - switch (yych) { +pp128: + ppch = *++PPCURSOR; + switch (ppch) { case 'H': - case 'h': goto yy129; - default: goto yy98; + case 'h': goto pp129; + default: goto pp98; } -yy129: - yych = *++YYCURSOR; - switch (yych) { +pp129: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy130; - default: goto yy98; + case 't': goto pp130; + default: goto pp98; } -yy130: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp130: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98655,33 +101028,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy131; + case 'z': goto pp97; + default: goto pp131; } -yy131: +pp131: // 226 "scanner.re" { token->opcode = PHQL_T_RIGHT; return 0; } -// 1559 "scanner.c" -yy132: - yych = *++YYCURSOR; - switch (yych) { +// 1560 "scanner.c" +pp132: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy133; - default: goto yy98; + case 'i': goto pp133; + default: goto pp98; } -yy133: - yych = *++YYCURSOR; - switch (yych) { +pp133: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy134; - default: goto yy98; + case 'n': goto pp134; + default: goto pp98; } -yy134: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp134: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98745,40 +101118,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy135; + case 'z': goto pp97; + default: goto pp135; } -yy135: +pp135: // 211 "scanner.re" { token->opcode = PHQL_T_JOIN; return 0; } -// 1649 "scanner.c" -yy136: - yych = *++YYCURSOR; - switch (yych) { +// 1650 "scanner.c" +pp136: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy141; - default: goto yy98; + case 't': goto pp141; + default: goto pp98; } -yy137: - yych = *++YYCURSOR; - switch (yych) { +pp137: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy138; - default: goto yy98; + case 'l': goto pp138; + default: goto pp98; } -yy138: - yych = *++YYCURSOR; - switch (yych) { +pp138: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy139; - default: goto yy98; + case 'l': goto pp139; + default: goto pp98; } -yy139: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp139: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98842,19 +101215,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy140; + case 'z': goto pp97; + default: goto pp140; } -yy140: +pp140: // 251 "scanner.re" { token->opcode = PHQL_T_NULL; return 0; } -// 1746 "scanner.c" -yy141: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 1747 "scanner.c" +pp141: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98918,49 +101291,49 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy142; + case 'z': goto pp97; + default: goto pp142; } -yy142: +pp142: // 171 "scanner.re" { token->opcode = PHQL_T_NOT; return 0; } -// 1822 "scanner.c" -yy143: - yych = *++YYCURSOR; - switch (yych) { +// 1823 "scanner.c" +pp143: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy152; - default: goto yy98; + case 'f': goto pp152; + default: goto pp98; } -yy144: - yych = *++YYCURSOR; - switch (yych) { +pp144: + ppch = *++PPCURSOR; + switch (ppch) { case 'K': - case 'k': goto yy146; + case 'k': goto pp146; case 'M': - case 'm': goto yy145; - default: goto yy98; + case 'm': goto pp145; + default: goto pp98; } -yy145: - yych = *++YYCURSOR; - switch (yych) { +pp145: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy149; - default: goto yy98; + case 'i': goto pp149; + default: goto pp98; } -yy146: - yych = *++YYCURSOR; - switch (yych) { +pp146: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy147; - default: goto yy98; + case 'e': goto pp147; + default: goto pp98; } -yy147: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp147: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99024,26 +101397,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy148; + case 'z': goto pp97; + default: goto pp148; } -yy148: +pp148: // 186 "scanner.re" { token->opcode = PHQL_T_LIKE; return 0; } -// 1928 "scanner.c" -yy149: - yych = *++YYCURSOR; - switch (yych) { +// 1929 "scanner.c" +pp149: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy150; - default: goto yy98; + case 't': goto pp150; + default: goto pp98; } -yy150: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp150: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99107,26 +101480,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy151; + case 'z': goto pp97; + default: goto pp151; } -yy151: +pp151: // 161 "scanner.re" { token->opcode = PHQL_T_LIMIT; return 0; } -// 2011 "scanner.c" -yy152: - yych = *++YYCURSOR; - switch (yych) { +// 2012 "scanner.c" +pp152: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy153; - default: goto yy98; + case 't': goto pp153; + default: goto pp98; } -yy153: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp153: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99190,47 +101563,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy154; + case 'z': goto pp97; + default: goto pp154; } -yy154: +pp154: // 221 "scanner.re" { token->opcode = PHQL_T_LEFT; return 0; } -// 2094 "scanner.c" -yy155: - yych = *++YYCURSOR; - switch (yych) { +// 2095 "scanner.c" +pp155: + ppch = *++PPCURSOR; + switch (ppch) { case 'V': - case 'v': goto yy156; - default: goto yy98; + case 'v': goto pp156; + default: goto pp98; } -yy156: - yych = *++YYCURSOR; - switch (yych) { +pp156: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy157; - default: goto yy98; + case 'i': goto pp157; + default: goto pp98; } -yy157: - yych = *++YYCURSOR; - switch (yych) { +pp157: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy158; - default: goto yy98; + case 'n': goto pp158; + default: goto pp98; } -yy158: - yych = *++YYCURSOR; - switch (yych) { +pp158: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy159; - default: goto yy98; + case 'g': goto pp159; + default: goto pp98; } -yy159: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp159: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99294,40 +101667,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy160; + case 'z': goto pp97; + default: goto pp160; } -yy160: +pp160: // 156 "scanner.re" { token->opcode = PHQL_T_HAVING; return 0; } -// 2198 "scanner.c" -yy161: - yych = *++YYCURSOR; - switch (yych) { +// 2199 "scanner.c" +pp161: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy162; - default: goto yy98; + case 'o': goto pp162; + default: goto pp98; } -yy162: - yych = *++YYCURSOR; - switch (yych) { +pp162: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy163; - default: goto yy98; + case 'u': goto pp163; + default: goto pp98; } -yy163: - yych = *++YYCURSOR; - switch (yych) { +pp163: + ppch = *++PPCURSOR; + switch (ppch) { case 'P': - case 'p': goto yy164; - default: goto yy98; + case 'p': goto pp164; + default: goto pp98; } -yy164: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp164: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99391,26 +101764,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy165; + case 'z': goto pp97; + default: goto pp165; } -yy165: +pp165: // 151 "scanner.re" { token->opcode = PHQL_T_GROUP; return 0; } -// 2295 "scanner.c" -yy166: - yych = *++YYCURSOR; - switch (yych) { +// 2296 "scanner.c" +pp166: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy169; - default: goto yy98; + case 't': goto pp169; + default: goto pp98; } -yy167: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp167: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99474,47 +101847,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy168; + case 'z': goto pp97; + default: goto pp168; } -yy168: +pp168: // 136 "scanner.re" { token->opcode = PHQL_T_BY; return 0; } -// 2378 "scanner.c" -yy169: - yych = *++YYCURSOR; - switch (yych) { +// 2379 "scanner.c" +pp169: + ppch = *++PPCURSOR; + switch (ppch) { case 'W': - case 'w': goto yy170; - default: goto yy98; + case 'w': goto pp170; + default: goto pp98; } -yy170: - yych = *++YYCURSOR; - switch (yych) { +pp170: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy171; - default: goto yy98; + case 'e': goto pp171; + default: goto pp98; } -yy171: - yych = *++YYCURSOR; - switch (yych) { +pp171: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy172; - default: goto yy98; + case 'e': goto pp172; + default: goto pp98; } -yy172: - yych = *++YYCURSOR; - switch (yych) { +pp172: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy173; - default: goto yy98; + case 'n': goto pp173; + default: goto pp98; } -yy173: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp173: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99578,26 +101951,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy174; + case 'z': goto pp97; + default: goto pp174; } -yy174: +pp174: // 266 "scanner.re" { token->opcode = PHQL_T_BETWEEN; return 0; } -// 2482 "scanner.c" -yy175: - yych = *++YYCURSOR; - switch (yych) { +// 2483 "scanner.c" +pp175: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy189; - default: goto yy98; + case 'f': goto pp189; + default: goto pp98; } -yy176: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp176: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99661,19 +102034,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy177; + case 'z': goto pp97; + default: goto pp177; } -yy177: +pp177: // 206 "scanner.re" { token->opcode = PHQL_T_ON; return 0; } -// 2565 "scanner.c" -yy178: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 2566 "scanner.c" +pp178: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99735,42 +102108,42 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'D': - case 'd': goto yy185; - default: goto yy179; + case 'd': goto pp185; + default: goto pp179; } -yy179: +pp179: // 181 "scanner.re" { token->opcode = PHQL_T_OR; return 0; } -// 2641 "scanner.c" -yy180: - yych = *++YYCURSOR; - switch (yych) { +// 2642 "scanner.c" +pp180: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy181; - default: goto yy98; + case 't': goto pp181; + default: goto pp98; } -yy181: - yych = *++YYCURSOR; - switch (yych) { +pp181: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy182; - default: goto yy98; + case 'e': goto pp182; + default: goto pp98; } -yy182: - yych = *++YYCURSOR; - switch (yych) { +pp182: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy183; - default: goto yy98; + case 'r': goto pp183; + default: goto pp98; } -yy183: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp183: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99834,33 +102207,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy184; + case 'z': goto pp97; + default: goto pp184; } -yy184: +pp184: // 236 "scanner.re" { token->opcode = PHQL_T_OUTER; return 0; } -// 2738 "scanner.c" -yy185: - yych = *++YYCURSOR; - switch (yych) { +// 2739 "scanner.c" +pp185: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy186; - default: goto yy98; + case 'e': goto pp186; + default: goto pp98; } -yy186: - yych = *++YYCURSOR; - switch (yych) { +pp186: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy187; - default: goto yy98; + case 'r': goto pp187; + default: goto pp98; } -yy187: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp187: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99924,40 +102297,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy188; + case 'z': goto pp97; + default: goto pp188; } -yy188: +pp188: // 131 "scanner.re" { token->opcode = PHQL_T_ORDER; return 0; } -// 2828 "scanner.c" -yy189: - yych = *++YYCURSOR; - switch (yych) { +// 2829 "scanner.c" +pp189: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy190; - default: goto yy98; + case 's': goto pp190; + default: goto pp98; } -yy190: - yych = *++YYCURSOR; - switch (yych) { +pp190: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy191; - default: goto yy98; + case 'e': goto pp191; + default: goto pp98; } -yy191: - yych = *++YYCURSOR; - switch (yych) { +pp191: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy192; - default: goto yy98; + case 't': goto pp192; + default: goto pp98; } -yy192: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp192: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100021,40 +102394,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy193; + case 'z': goto pp97; + default: goto pp193; } -yy193: +pp193: // 166 "scanner.re" { token->opcode = PHQL_T_OFFSET; return 0; } -// 2925 "scanner.c" -yy194: - yych = *++YYCURSOR; - switch (yych) { +// 2926 "scanner.c" +pp194: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy195; - default: goto yy98; + case 'e': goto pp195; + default: goto pp98; } -yy195: - yych = *++YYCURSOR; - switch (yych) { +pp195: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy196; - default: goto yy98; + case 'r': goto pp196; + default: goto pp98; } -yy196: - yych = *++YYCURSOR; - switch (yych) { +pp196: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy197; - default: goto yy98; + case 'e': goto pp197; + default: goto pp98; } -yy197: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp197: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100118,47 +102491,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy198; + case 'z': goto pp97; + default: goto pp198; } -yy198: +pp198: // 121 "scanner.re" { token->opcode = PHQL_T_WHERE; return 0; } -// 3022 "scanner.c" -yy199: - yych = *++YYCURSOR; - switch (yych) { +// 3023 "scanner.c" +pp199: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy200; - default: goto yy98; + case 'l': goto pp200; + default: goto pp98; } -yy200: - yych = *++YYCURSOR; - switch (yych) { +pp200: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy201; - default: goto yy98; + case 'u': goto pp201; + default: goto pp98; } -yy201: - yych = *++YYCURSOR; - switch (yych) { +pp201: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy202; - default: goto yy98; + case 'e': goto pp202; + default: goto pp98; } -yy202: - yych = *++YYCURSOR; - switch (yych) { +pp202: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy203; - default: goto yy98; + case 's': goto pp203; + default: goto pp98; } -yy203: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp203: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100222,26 +102595,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy204; + case 'z': goto pp97; + default: goto pp204; } -yy204: +pp204: // 116 "scanner.re" { token->opcode = PHQL_T_VALUES; return 0; } -// 3126 "scanner.c" -yy205: - yych = *++YYCURSOR; - switch (yych) { +// 3127 "scanner.c" +pp205: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy222; - default: goto yy98; + case 'i': goto pp222; + default: goto pp98; } -yy206: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp206: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100299,25 +102672,25 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'N': - case 'n': goto yy212; + case 'n': goto pp212; case 'S': - case 's': goto yy210; + case 's': goto pp210; case 'T': - case 't': goto yy211; - default: goto yy207; + case 't': goto pp211; + default: goto pp207; } -yy207: +pp207: // 201 "scanner.re" { token->opcode = PHQL_T_IN; return 0; } -// 3209 "scanner.c" -yy208: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3210 "scanner.c" +pp208: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100381,47 +102754,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy209; + case 'z': goto pp97; + default: goto pp209; } -yy209: +pp209: // 246 "scanner.re" { token->opcode = PHQL_T_IS; return 0; } -// 3285 "scanner.c" -yy210: - yych = *++YYCURSOR; - switch (yych) { +// 3286 "scanner.c" +pp210: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy218; - default: goto yy98; + case 'e': goto pp218; + default: goto pp98; } -yy211: - yych = *++YYCURSOR; - switch (yych) { +pp211: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy216; - default: goto yy98; + case 'o': goto pp216; + default: goto pp98; } -yy212: - yych = *++YYCURSOR; - switch (yych) { +pp212: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy213; - default: goto yy98; + case 'e': goto pp213; + default: goto pp98; } -yy213: - yych = *++YYCURSOR; - switch (yych) { +pp213: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy214; - default: goto yy98; + case 'r': goto pp214; + default: goto pp98; } -yy214: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp214: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100485,19 +102858,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy215; + case 'z': goto pp97; + default: goto pp215; } -yy215: +pp215: // 216 "scanner.re" { token->opcode = PHQL_T_INNER; return 0; } -// 3389 "scanner.c" -yy216: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3390 "scanner.c" +pp216: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100561,33 +102934,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy217; + case 'z': goto pp97; + default: goto pp217; } -yy217: +pp217: // 111 "scanner.re" { token->opcode = PHQL_T_INTO; return 0; } -// 3465 "scanner.c" -yy218: - yych = *++YYCURSOR; - switch (yych) { +// 3466 "scanner.c" +pp218: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy219; - default: goto yy98; + case 'r': goto pp219; + default: goto pp98; } -yy219: - yych = *++YYCURSOR; - switch (yych) { +pp219: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy220; - default: goto yy98; + case 't': goto pp220; + default: goto pp98; } -yy220: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp220: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100651,33 +103024,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy221; + case 'z': goto pp97; + default: goto pp221; } -yy221: +pp221: // 106 "scanner.re" { token->opcode = PHQL_T_INSERT; return 0; } -// 3555 "scanner.c" -yy222: - yych = *++YYCURSOR; - switch (yych) { +// 3556 "scanner.c" +pp222: + ppch = *++PPCURSOR; + switch (ppch) { case 'K': - case 'k': goto yy223; - default: goto yy98; + case 'k': goto pp223; + default: goto pp98; } -yy223: - yych = *++YYCURSOR; - switch (yych) { +pp223: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy224; - default: goto yy98; + case 'e': goto pp224; + default: goto pp98; } -yy224: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp224: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100741,40 +103114,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy225; + case 'z': goto pp97; + default: goto pp225; } -yy225: +pp225: // 191 "scanner.re" { token->opcode = PHQL_T_ILIKE; return 0; } -// 3645 "scanner.c" -yy226: - yych = *++YYCURSOR; - switch (yych) { +// 3646 "scanner.c" +pp226: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy237; - default: goto yy98; + case 'a': goto pp237; + default: goto pp98; } -yy227: - yych = *++YYCURSOR; - switch (yych) { +pp227: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy235; - default: goto yy98; + case 'l': goto pp235; + default: goto pp98; } -yy228: - yych = *++YYCURSOR; - switch (yych) { +pp228: + ppch = *++PPCURSOR; + switch (ppch) { case 'D': - case 'd': goto yy233; - default: goto yy98; + case 'd': goto pp233; + default: goto pp98; } -yy229: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp229: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100836,21 +103209,21 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'C': - case 'c': goto yy231; - default: goto yy230; + case 'c': goto pp231; + default: goto pp230; } -yy230: +pp230: // 101 "scanner.re" { token->opcode = PHQL_T_AS; return 0; } -// 3742 "scanner.c" -yy231: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3743 "scanner.c" +pp231: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100914,19 +103287,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy232; + case 'z': goto pp97; + default: goto pp232; } -yy232: +pp232: // 141 "scanner.re" { token->opcode = PHQL_T_ASC; return 0; } -// 3818 "scanner.c" -yy233: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3819 "scanner.c" +pp233: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100990,19 +103363,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy234; + case 'z': goto pp97; + default: goto pp234; } -yy234: +pp234: // 176 "scanner.re" { token->opcode = PHQL_T_AND; return 0; } -// 3894 "scanner.c" -yy235: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3895 "scanner.c" +pp235: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101066,47 +103439,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy236; + case 'z': goto pp97; + default: goto pp236; } -yy236: +pp236: // 261 "scanner.re" { token->opcode = PHQL_T_ALL; return 0; } -// 3970 "scanner.c" -yy237: - yych = *++YYCURSOR; - switch (yych) { +// 3971 "scanner.c" +pp237: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy238; - default: goto yy98; + case 'i': goto pp238; + default: goto pp98; } -yy238: - yych = *++YYCURSOR; - switch (yych) { +pp238: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy239; - default: goto yy98; + case 'n': goto pp239; + default: goto pp98; } -yy239: - yych = *++YYCURSOR; - switch (yych) { +pp239: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy240; - default: goto yy98; + case 's': goto pp240; + default: goto pp98; } -yy240: - yych = *++YYCURSOR; - switch (yych) { +pp240: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy241; - default: goto yy98; + case 't': goto pp241; + default: goto pp98; } -yy241: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp241: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101170,47 +103543,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy242; + case 'z': goto pp97; + default: goto pp242; } -yy242: +pp242: // 196 "scanner.re" { token->opcode = PHQL_T_AGAINST; return 0; } -// 4074 "scanner.c" -yy243: - yych = *++YYCURSOR; - switch (yych) { +// 4075 "scanner.c" +pp243: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy252; - default: goto yy98; + case 'l': goto pp252; + default: goto pp98; } -yy244: - yych = *++YYCURSOR; - switch (yych) { +pp244: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy249; - default: goto yy98; + case 'o': goto pp249; + default: goto pp98; } -yy245: - yych = *++YYCURSOR; - switch (yych) { +pp245: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy246; - default: goto yy98; + case 'l': goto pp246; + default: goto pp98; } -yy246: - yych = *++YYCURSOR; - switch (yych) { +pp246: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy247; - default: goto yy98; + case 'l': goto pp247; + default: goto pp98; } -yy247: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp247: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101274,26 +103647,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy248; + case 'z': goto pp97; + default: goto pp248; } -yy248: +pp248: // 241 "scanner.re" { token->opcode = PHQL_T_FULL; return 0; } -// 4178 "scanner.c" -yy249: - yych = *++YYCURSOR; - switch (yych) { +// 4179 "scanner.c" +pp249: + ppch = *++PPCURSOR; + switch (ppch) { case 'M': - case 'm': goto yy250; - default: goto yy98; + case 'm': goto pp250; + default: goto pp98; } -yy250: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp250: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101357,33 +103730,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy251; + case 'z': goto pp97; + default: goto pp251; } -yy251: +pp251: // 96 "scanner.re" { token->opcode = PHQL_T_FROM; return 0; } -// 4261 "scanner.c" -yy252: - yych = *++YYCURSOR; - switch (yych) { +// 4262 "scanner.c" +pp252: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy253; - default: goto yy98; + case 's': goto pp253; + default: goto pp98; } -yy253: - yych = *++YYCURSOR; - switch (yych) { +pp253: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy254; - default: goto yy98; + case 'e': goto pp254; + default: goto pp98; } -yy254: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp254: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101447,70 +103820,70 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy255; + case 'z': goto pp97; + default: goto pp255; } -yy255: +pp255: // 291 "scanner.re" { token->opcode = PHQL_T_FALSE; return 0; } -// 4351 "scanner.c" -yy256: - yych = *++YYCURSOR; - switch (yych) { +// 4352 "scanner.c" +pp256: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy265; + case 'l': goto pp265; case 'S': - case 's': goto yy266; - default: goto yy98; + case 's': goto pp266; + default: goto pp98; } -yy257: - yych = *++YYCURSOR; - switch (yych) { +pp257: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy258; - default: goto yy98; + case 's': goto pp258; + default: goto pp98; } -yy258: - yych = *++YYCURSOR; - switch (yych) { +pp258: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy259; - default: goto yy98; + case 't': goto pp259; + default: goto pp98; } -yy259: - yych = *++YYCURSOR; - switch (yych) { +pp259: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy260; - default: goto yy98; + case 'i': goto pp260; + default: goto pp98; } -yy260: - yych = *++YYCURSOR; - switch (yych) { +pp260: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy261; - default: goto yy98; + case 'n': goto pp261; + default: goto pp98; } -yy261: - yych = *++YYCURSOR; - switch (yych) { +pp261: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy262; - default: goto yy98; + case 'c': goto pp262; + default: goto pp98; } -yy262: - yych = *++YYCURSOR; - switch (yych) { +pp262: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy263; - default: goto yy98; + case 't': goto pp263; + default: goto pp98; } -yy263: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp263: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101574,33 +103947,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy264; + case 'z': goto pp97; + default: goto pp264; } -yy264: +pp264: // 256 "scanner.re" { token->opcode = PHQL_T_DISTINCT; return 0; } -// 4478 "scanner.c" -yy265: - yych = *++YYCURSOR; - switch (yych) { +// 4479 "scanner.c" +pp265: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy269; - default: goto yy98; + case 'e': goto pp269; + default: goto pp98; } -yy266: - yych = *++YYCURSOR; - switch (yych) { +pp266: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy267; - default: goto yy98; + case 'c': goto pp267; + default: goto pp98; } -yy267: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp267: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101664,33 +104037,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy268; + case 'z': goto pp97; + default: goto pp268; } -yy268: +pp268: // 146 "scanner.re" { token->opcode = PHQL_T_DESC; return 0; } -// 4568 "scanner.c" -yy269: - yych = *++YYCURSOR; - switch (yych) { +// 4569 "scanner.c" +pp269: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy270; - default: goto yy98; + case 't': goto pp270; + default: goto pp98; } -yy270: - yych = *++YYCURSOR; - switch (yych) { +pp270: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy271; - default: goto yy98; + case 'e': goto pp271; + default: goto pp98; } -yy271: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp271: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101754,28 +104127,28 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy272; + case 'z': goto pp97; + default: goto pp272; } -yy272: +pp272: // 91 "scanner.re" { token->opcode = PHQL_T_DELETE; return 0; } -// 4658 "scanner.c" -yy273: - yych = *++YYCURSOR; - switch (yych) { +// 4659 "scanner.c" +pp273: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy276; + case 'l': goto pp276; case 'T': - case 't': goto yy274; - default: goto yy98; + case 't': goto pp274; + default: goto pp98; } -yy274: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp274: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101839,40 +104212,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy275; + case 'z': goto pp97; + default: goto pp275; } -yy275: +pp275: // 86 "scanner.re" { token->opcode = PHQL_T_SET; return 0; } -// 4743 "scanner.c" -yy276: - yych = *++YYCURSOR; - switch (yych) { +// 4744 "scanner.c" +pp276: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy277; - default: goto yy98; + case 'e': goto pp277; + default: goto pp98; } -yy277: - yych = *++YYCURSOR; - switch (yych) { +pp277: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy278; - default: goto yy98; + case 'c': goto pp278; + default: goto pp98; } -yy278: - yych = *++YYCURSOR; - switch (yych) { +pp278: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy279; - default: goto yy98; + case 't': goto pp279; + default: goto pp98; } -yy279: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp279: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101936,47 +104309,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy280; + case 'z': goto pp97; + default: goto pp280; } -yy280: +pp280: // 126 "scanner.re" { token->opcode = PHQL_T_SELECT; return 0; } -// 4840 "scanner.c" -yy281: - yych = *++YYCURSOR; - switch (yych) { +// 4841 "scanner.c" +pp281: + ppch = *++PPCURSOR; + switch (ppch) { case 'D': - case 'd': goto yy287; - default: goto yy98; + case 'd': goto pp287; + default: goto pp98; } -yy282: - yych = *++YYCURSOR; - switch (yych) { +pp282: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy283; - default: goto yy98; + case 'i': goto pp283; + default: goto pp98; } -yy283: - yych = *++YYCURSOR; - switch (yych) { +pp283: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy284; - default: goto yy98; + case 'n': goto pp284; + default: goto pp98; } -yy284: - yych = *++YYCURSOR; - switch (yych) { +pp284: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy285; - default: goto yy98; + case 'g': goto pp285; + default: goto pp98; } -yy285: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp285: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -102040,40 +104413,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy286; + case 'z': goto pp97; + default: goto pp286; } -yy286: +pp286: // 281 "scanner.re" { token->opcode = PHQL_T_USING; return 0; } -// 4944 "scanner.c" -yy287: - yych = *++YYCURSOR; - switch (yych) { +// 4945 "scanner.c" +pp287: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy288; - default: goto yy98; + case 'a': goto pp288; + default: goto pp98; } -yy288: - yych = *++YYCURSOR; - switch (yych) { +pp288: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy289; - default: goto yy98; + case 't': goto pp289; + default: goto pp98; } -yy289: - yych = *++YYCURSOR; - switch (yych) { +pp289: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy290; - default: goto yy98; + case 'e': goto pp290; + default: goto pp98; } -yy290: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp290: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -102137,20 +104510,20 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy291; + case 'z': goto pp97; + default: goto pp291; } -yy291: +pp291: // 81 "scanner.re" { token->opcode = PHQL_T_UPDATE; return 0; } -// 5041 "scanner.c" -yy292: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5042 "scanner.c" +pp292: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '-': case '0': case '1': @@ -102214,25 +104587,25 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy292; - case ':': goto yy294; - default: goto yy94; + case 'z': goto pp292; + case ':': goto pp294; + default: goto pp94; } -yy294: - ++YYCURSOR; +pp294: + ++PPCURSOR; // 73 "scanner.re" { token->opcode = PHQL_T_SPLACEHOLDER; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 5123 "scanner.c" -yy296: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5124 "scanner.c" +pp296: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102242,23 +104615,23 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy296; - default: goto yy298; + case '9': goto pp296; + default: goto pp298; } -yy298: +pp298: // 64 "scanner.re" { token->opcode = PHQL_T_NPLACEHOLDER; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } -// 5149 "scanner.c" -yy299: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5150 "scanner.c" +pp299: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102268,23 +104641,23 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy299; - default: goto yy301; + case '9': goto pp299; + default: goto pp301; } -yy301: +pp301: // 55 "scanner.re" { token->opcode = PHQL_T_DOUBLE; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } -// 5175 "scanner.c" -yy302: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5176 "scanner.c" +pp302: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102294,14 +104667,14 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy302; - default: goto yy301; - } -yy304: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '.': goto yy302; + case '9': goto pp302; + default: goto pp301; + } +pp304: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '.': goto pp302; case '0': case '1': case '2': @@ -102311,8 +104684,8 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy304; - default: goto yy3; + case '9': goto pp304; + default: goto pp3; } } // 488 "scanner.re" @@ -102483,173 +104856,177 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, valid) { +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current) { - zephir_fcall_cache_entry *_10 = NULL, *_13 = NULL; - HashTable *_4, *_7; - HashPosition _3, _6; - zend_bool _2; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL; + zephir_fcall_cache_entry *_13 = NULL, *_16 = NULL; + HashTable *_7, *_10; + HashPosition _6, _9; + zend_bool _5; int dirtyState, ZEPHIR_LAST_CALL_STATUS; - zval *result, *rows, *row = NULL, *underscore, *hydrateMode, *alias = NULL, *activeRow = NULL, *type = NULL, *columnTypes, *column = NULL, *columnValue = NULL, *value = NULL, *attribute = NULL, *source = NULL, *attributes = NULL, *columnMap = NULL, *rowModel = NULL, *keepSnapshots = NULL, *sqlAlias = NULL, *isPartial, **_5, **_8, *_9 = NULL, *_11, *_12 = NULL, _14 = zval_used_for_init; + zval *result, *row = NULL, *underscore, *hydrateMode, *alias = NULL, *activeRow = NULL, *type = NULL, *columnTypes, *column = NULL, *columnValue = NULL, *value = NULL, *attribute = NULL, *source = NULL, *attributes = NULL, *columnMap = NULL, *rowModel = NULL, *keepSnapshots = NULL, *sqlAlias = NULL, *isPartial, *_0, *_1 = NULL, *_2, *_3, *_4, **_8, **_11, *_12 = NULL, *_14, *_15 = NULL, _17 = zval_used_for_init; ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(activeRow); + zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); + if (Z_TYPE_P(activeRow) != IS_NULL) { + RETURN_CCTOR(activeRow); + } ZEPHIR_OBS_VAR(isPartial); zephir_read_property_this(&isPartial, this_ptr, SL("_type"), PH_NOISY_CC); if (zephir_is_true(isPartial)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL, result); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(row); - ZVAL_BOOL(row, 0); - } + ZEPHIR_OBS_VAR(row); + zephir_read_property_this(&row, this_ptr, SL("_row"), PH_NOISY_CC); } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(&row, "current", &_0, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - if (Z_TYPE_P(row) == IS_OBJECT) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_1, rows); - Z_UNSET_ISREF_P(rows); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_0) == IS_NULL) { + ZEPHIR_OBS_VAR(result); + zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); + if (Z_TYPE_P(result) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_1, result, "fetchall", NULL); zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_rows"), _1 TSRMLS_CC); + } + } + ZEPHIR_OBS_VAR(_2); + zephir_read_property_this(&_2, this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_2) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(row); + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&row, _3, _4, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(row); + ZVAL_BOOL(row, 0); } } else { ZEPHIR_INIT_NVAR(row); ZVAL_BOOL(row, 0); } } - _2 = Z_TYPE_P(row) == IS_OBJECT; - if (!(_2)) { - _2 = Z_TYPE_P(row) == IS_ARRAY; + _5 = Z_TYPE_P(row) != IS_OBJECT; + if (_5) { + _5 = Z_TYPE_P(row) != IS_ARRAY; } - if (_2) { - if (zephir_is_true(isPartial)) { - ZEPHIR_OBS_VAR(hydrateMode); - zephir_read_property_this(&hydrateMode, this_ptr, SL("_hydrateMode"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(underscore); - ZVAL_STRING(underscore, "_", 1); + if (_5) { + zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + RETURN_MM_BOOL(0); + } + if (!(zephir_is_true(isPartial))) { + zephir_update_property_this(this_ptr, SL("_activeRow"), row TSRMLS_CC); + RETURN_CCTOR(row); + } + ZEPHIR_OBS_VAR(hydrateMode); + zephir_read_property_this(&hydrateMode, this_ptr, SL("_hydrateMode"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(underscore); + ZVAL_STRING(underscore, "_", 1); + do { + if (ZEPHIR_IS_LONG(hydrateMode, 0)) { + ZEPHIR_INIT_NVAR(activeRow); + object_init_ex(activeRow, phalcon_mvc_model_row_ce); + if (zephir_has_constructor(activeRow TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, activeRow, "__construct", NULL); + zephir_check_call_status(); + } + break; + } + if (ZEPHIR_IS_LONG(hydrateMode, 1)) { + ZEPHIR_INIT_NVAR(activeRow); + array_init(activeRow); + break; + } + ZEPHIR_INIT_NVAR(activeRow); + object_init(activeRow); + break; + } while(0); + + ZEPHIR_OBS_VAR(columnTypes); + zephir_read_property_this(&columnTypes, this_ptr, SL("_columnTypes"), PH_NOISY_CC); + dirtyState = 0; + zephir_is_iterable(columnTypes, &_7, &_6, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 272); + for ( + ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS + ; zephir_hash_move_forward_ex(_7, &_6) + ) { + ZEPHIR_GET_HMKEY(alias, _7, _6); + ZEPHIR_GET_HVALUE(column, _8); + if (Z_TYPE_P(column) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/mvc/model/resultset/complex.zep", 173); + return; + } + ZEPHIR_OBS_NVAR(type); + zephir_array_fetch_string(&type, column, SL("type"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 176 TSRMLS_CC); + if (ZEPHIR_IS_STRING(type, "object")) { + ZEPHIR_OBS_NVAR(source); + zephir_array_fetch_string(&source, column, SL("column"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 182 TSRMLS_CC); + ZEPHIR_OBS_NVAR(attributes); + zephir_array_fetch_string(&attributes, column, SL("attributes"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 183 TSRMLS_CC); + ZEPHIR_OBS_NVAR(columnMap); + zephir_array_fetch_string(&columnMap, column, SL("columnMap"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 184 TSRMLS_CC); + ZEPHIR_INIT_NVAR(rowModel); + array_init(rowModel); + zephir_is_iterable(attributes, &_10, &_9, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 202); + for ( + ; zephir_hash_get_current_data_ex(_10, (void**) &_11, &_9) == SUCCESS + ; zephir_hash_move_forward_ex(_10, &_9) + ) { + ZEPHIR_GET_HVALUE(attribute, _11); + ZEPHIR_OBS_NVAR(columnValue); + ZEPHIR_INIT_LNVAR(_12); + ZEPHIR_CONCAT_VVVV(_12, underscore, source, underscore, attribute); + zephir_array_fetch(&columnValue, row, _12, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 195 TSRMLS_CC); + zephir_array_update_zval(&rowModel, attribute, &columnValue, PH_COPY | PH_SEPARATE); + } do { if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - ZEPHIR_INIT_VAR(activeRow); - object_init_ex(activeRow, phalcon_mvc_model_row_ce); - if (zephir_has_constructor(activeRow TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, activeRow, "__construct", NULL); - zephir_check_call_status(); + ZEPHIR_OBS_NVAR(keepSnapshots); + if (!(zephir_array_isset_string_fetch(&keepSnapshots, column, SS("keepSnapshots"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(keepSnapshots); + ZVAL_BOOL(keepSnapshots, 0); } + zephir_array_fetch_string(&_14, column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 217 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_15); + ZVAL_LONG(_15, dirtyState); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_13, _14, rowModel, columnMap, _15, keepSnapshots); + zephir_check_call_status(); break; } - if (ZEPHIR_IS_LONG(hydrateMode, 1)) { - ZEPHIR_INIT_NVAR(activeRow); - array_init(activeRow); - break; - } - ZEPHIR_INIT_NVAR(activeRow); - object_init(activeRow); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_16, rowModel, columnMap, hydrateMode); + zephir_check_call_status(); break; } while(0); - ZEPHIR_OBS_VAR(columnTypes); - zephir_read_property_this(&columnTypes, this_ptr, SL("_columnTypes"), PH_NOISY_CC); - dirtyState = 0; - zephir_is_iterable(columnTypes, &_4, &_3, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 266); - for ( - ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS - ; zephir_hash_move_forward_ex(_4, &_3) - ) { - ZEPHIR_GET_HMKEY(alias, _4, _3); - ZEPHIR_GET_HVALUE(column, _5); - if (Z_TYPE_P(column) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/mvc/model/resultset/complex.zep", 167); - return; - } - ZEPHIR_OBS_NVAR(type); - zephir_array_fetch_string(&type, column, SL("type"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 170 TSRMLS_CC); - if (ZEPHIR_IS_STRING(type, "object")) { - ZEPHIR_OBS_NVAR(source); - zephir_array_fetch_string(&source, column, SL("column"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 176 TSRMLS_CC); - ZEPHIR_OBS_NVAR(attributes); - zephir_array_fetch_string(&attributes, column, SL("attributes"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 177 TSRMLS_CC); - ZEPHIR_OBS_NVAR(columnMap); - zephir_array_fetch_string(&columnMap, column, SL("columnMap"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 178 TSRMLS_CC); - ZEPHIR_INIT_NVAR(rowModel); - array_init(rowModel); - zephir_is_iterable(attributes, &_7, &_6, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 196); - for ( - ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS - ; zephir_hash_move_forward_ex(_7, &_6) - ) { - ZEPHIR_GET_HVALUE(attribute, _8); - ZEPHIR_OBS_NVAR(columnValue); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_VVVV(_9, underscore, source, underscore, attribute); - zephir_array_fetch(&columnValue, row, _9, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 189 TSRMLS_CC); - zephir_array_update_zval(&rowModel, attribute, &columnValue, PH_COPY | PH_SEPARATE); - } - do { - if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - ZEPHIR_OBS_NVAR(keepSnapshots); - if (!(zephir_array_isset_string_fetch(&keepSnapshots, column, SS("keepSnapshots"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(keepSnapshots); - ZVAL_BOOL(keepSnapshots, 0); - } - zephir_array_fetch_string(&_11, column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 211 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_12); - ZVAL_LONG(_12, dirtyState); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_10, _11, rowModel, columnMap, _12, keepSnapshots); - zephir_check_call_status(); - break; - } - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_13, rowModel, columnMap, hydrateMode); - zephir_check_call_status(); - break; - } while(0); - - ZEPHIR_OBS_NVAR(attribute); - zephir_array_fetch_string(&attribute, column, SL("balias"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 225 TSRMLS_CC); - } else { - ZEPHIR_OBS_NVAR(sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, column, SS("sqlAlias"), 0 TSRMLS_CC)) { - ZEPHIR_OBS_NVAR(value); - zephir_array_fetch(&value, row, sqlAlias, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 233 TSRMLS_CC); - } else { - ZEPHIR_OBS_NVAR(value); - zephir_array_isset_fetch(&value, row, alias, 0 TSRMLS_CC); - } - if (zephir_array_isset_string(column, SS("balias"))) { - ZEPHIR_CPY_WRT(attribute, alias); - } else { - ZEPHIR_INIT_NVAR(attribute); - ZEPHIR_SINIT_NVAR(_14); - ZVAL_STRING(&_14, "", 0); - zephir_fast_str_replace(&attribute, underscore, &_14, alias TSRMLS_CC); - } - } - do { - if (ZEPHIR_IS_LONG(hydrateMode, 1)) { - zephir_array_update_zval(&activeRow, attribute, &value, PH_COPY | PH_SEPARATE); - break; - } - zephir_update_property_zval_zval(activeRow, attribute, value TSRMLS_CC); - break; - } while(0); - - } - zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); + ZEPHIR_OBS_NVAR(attribute); + zephir_array_fetch_string(&attribute, column, SL("balias"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 231 TSRMLS_CC); } else { - zephir_update_property_this(this_ptr, SL("_activeRow"), row TSRMLS_CC); + ZEPHIR_OBS_NVAR(sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, column, SS("sqlAlias"), 0 TSRMLS_CC)) { + ZEPHIR_OBS_NVAR(value); + zephir_array_fetch(&value, row, sqlAlias, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 239 TSRMLS_CC); + } else { + ZEPHIR_OBS_NVAR(value); + zephir_array_isset_fetch(&value, row, alias, 0 TSRMLS_CC); + } + if (zephir_array_isset_string(column, SS("balias"))) { + ZEPHIR_CPY_WRT(attribute, alias); + } else { + ZEPHIR_INIT_NVAR(attribute); + ZEPHIR_SINIT_NVAR(_17); + ZVAL_STRING(&_17, "", 0); + zephir_fast_str_replace(&attribute, underscore, &_17, alias TSRMLS_CC); + } } - RETURN_MM_BOOL(1); + do { + if (ZEPHIR_IS_LONG(hydrateMode, 1)) { + zephir_array_update_zval(&activeRow, attribute, &value, PH_COPY | PH_SEPARATE); + break; + } + zephir_update_property_zval_zval(activeRow, attribute, value TSRMLS_CC); + break; + } while(0); + } - zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - RETURN_MM_BOOL(0); + zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); + RETURN_CCTOR(activeRow); } @@ -102670,7 +105047,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(current, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_append(&records, current, PH_SEPARATE, "phalcon/mvc/model/resultset/complex.zep", 294); + zephir_array_append(&records, current, PH_SEPARATE, "phalcon/mvc/model/resultset/complex.zep", 285); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); @@ -102713,11 +105090,23 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; - zval *data, *resultset = NULL, *_0, *_2, *_3, *_4, *_5; + zval *data_param = NULL, *resultset = NULL, *_0, *_2, *_3, *_4, *_5; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + if (unlikely(Z_TYPE_P(data_param) != IS_STRING && Z_TYPE_P(data_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'data' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(data_param) == IS_STRING)) { + zephir_get_strval(data, data_param); + } else { + ZEPHIR_INIT_VAR(data); + ZVAL_EMPTY_STRING(data); + } ZEPHIR_INIT_ZVAL_NREF(_0); @@ -102726,16 +105115,16 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) { ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", &_1, data); zephir_check_call_status(); if (Z_TYPE_P(resultset) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/complex.zep", 347); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/complex.zep", 339); return; } - zephir_array_fetch_string(&_2, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 350 TSRMLS_CC); + zephir_array_fetch_string(&_2, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 342 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_rows"), _2 TSRMLS_CC); - zephir_array_fetch_string(&_3, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 351 TSRMLS_CC); + zephir_array_fetch_string(&_3, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 343 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_cache"), _3 TSRMLS_CC); - zephir_array_fetch_string(&_4, resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 352 TSRMLS_CC); + zephir_array_fetch_string(&_4, resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 344 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_columnTypes"), _4 TSRMLS_CC); - zephir_array_fetch_string(&_5, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 353 TSRMLS_CC); + zephir_array_fetch_string(&_5, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 345 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_hydrateMode"), _5 TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -102818,49 +105207,43 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current) { - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL, *_4 = NULL, *_8 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_8 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *result = NULL, *row = NULL, *rows = NULL, *hydrateMode, *columnMap, *activeRow = NULL, *_0, *_1 = NULL, *_5, *_6, *_7; + zval *result, *row = NULL, *hydrateMode, *columnMap, *activeRow = NULL, *_0, *_1, *_2 = NULL, *_3, *_4, *_5, *_7; ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(activeRow); + zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); + if (Z_TYPE_P(activeRow) != IS_NULL) { + RETURN_CCTOR(activeRow); + } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); if (zephir_is_true(_0)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL, result); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(row); - ZVAL_BOOL(row, 0); - } + ZEPHIR_OBS_VAR(row); + zephir_read_property_this(&row, this_ptr, SL("_row"), PH_NOISY_CC); } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) != IS_ARRAY) { - ZEPHIR_OBS_NVAR(result); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_1) == IS_NULL) { + ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_1, result, "fetchall", NULL); + ZEPHIR_CALL_METHOD(&_2, result, "fetchall", NULL); zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), _1 TSRMLS_CC); - ZEPHIR_OBS_NVAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); + zephir_update_property_this(this_ptr, SL("_rows"), _2 TSRMLS_CC); } } - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(&row, "current", &_2, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(row)) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(_3); + zephir_read_property_this(&_3, this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_3) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(row); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&row, _4, _5, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(row); + ZVAL_BOOL(row, 0); } } else { ZEPHIR_INIT_NVAR(row); @@ -102877,11 +105260,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { zephir_read_property_this(&columnMap, this_ptr, SL("_columnMap"), PH_NOISY_CC); do { if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_model"), PH_NOISY_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_keepSnapshots"), PH_NOISY_CC); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_model"), PH_NOISY_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_keepSnapshots"), PH_NOISY_CC); ZEPHIR_INIT_VAR(_7); ZVAL_LONG(_7, 0); - ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_4, _5, row, columnMap, _7, _6); + ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_6, _1, row, columnMap, _7, _4); zephir_check_call_status(); break; } @@ -102891,7 +105274,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { } while(0); zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); - RETURN_MM_BOOL(1); + RETURN_CCTOR(activeRow); } @@ -102901,7 +105284,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { HashTable *_3, *_6; HashPosition _2, _5; int ZEPHIR_LAST_CALL_STATUS; - zval *renameColumns_param = NULL, *result = NULL, *activeRow = NULL, *records = NULL, *record = NULL, *renamed = NULL, *renamedKey = NULL, *key = NULL, *value = NULL, *renamedRecords, *columnMap, *_0, *_1, **_4, **_7, *_8 = NULL, *_9 = NULL; + zval *renameColumns_param = NULL, *result = NULL, *records = NULL, *record = NULL, *renamed = NULL, *renamedKey = NULL, *key = NULL, *value = NULL, *renamedRecords, *columnMap, *_0, *_1, **_4, **_7, *_8 = NULL, *_9 = NULL; zend_bool renameColumns; ZEPHIR_MM_GROW(); @@ -102919,14 +105302,14 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_OBS_VAR(activeRow); - zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(activeRow) != IS_NULL) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + if (Z_TYPE_P(_1) != IS_NULL) { ZEPHIR_CALL_METHOD(NULL, result, "execute", NULL); zephir_check_call_status(); } ZEPHIR_CALL_METHOD(&records, result, "fetchall", NULL); zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(records); array_init(records); @@ -102938,18 +105321,9 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_OBS_NVAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(activeRow); - zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(activeRow) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, result, "execute", NULL); - zephir_check_call_status(); - } ZEPHIR_CALL_METHOD(&records, result, "fetchall", NULL); zephir_check_call_status(); zephir_update_property_this(this_ptr, SL("_rows"), records TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, zephir_fast_count_int(records TSRMLS_CC)); - zephir_update_property_this(this_ptr, SL("_count"), _1 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(records); array_init(records); @@ -102965,7 +105339,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_INIT_VAR(renamedRecords); array_init(renamedRecords); if (Z_TYPE_P(records) == IS_ARRAY) { - zephir_is_iterable(records, &_3, &_2, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 276); + zephir_is_iterable(records, &_3, &_2, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 263); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -102973,7 +105347,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_GET_HVALUE(record, _4); ZEPHIR_INIT_NVAR(renamed); array_init(renamed); - zephir_is_iterable(record, &_6, &_5, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 274); + zephir_is_iterable(record, &_6, &_5, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 261); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -102988,13 +105362,13 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_CONCAT_SVS(_9, "Column '", key, "' is not part of the column map"); ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/mvc/model/resultset/simple.zep", 262 TSRMLS_CC); + zephir_throw_exception_debug(_8, "phalcon/mvc/model/resultset/simple.zep", 249 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } zephir_array_update_zval(&renamed, renamedKey, &value, PH_COPY | PH_SEPARATE); } - zephir_array_append(&renamedRecords, renamed, PH_SEPARATE, "phalcon/mvc/model/resultset/simple.zep", 274); + zephir_array_append(&renamedRecords, renamed, PH_SEPARATE, "phalcon/mvc/model/resultset/simple.zep", 261); } } RETURN_CCTOR(renamedRecords); @@ -103012,7 +105386,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize) { ZEPHIR_MM_GROW(); - zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); ZEPHIR_INIT_VAR(_0); zephir_create_array(_0, 5, 0 TSRMLS_CC); ZEPHIR_OBS_VAR(_1); @@ -103067,18 +105440,18 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize) { ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", &_1, data); zephir_check_call_status(); if (Z_TYPE_P(resultset) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/simple.zep", 317); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/simple.zep", 302); return; } - zephir_array_fetch_string(&_2, resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 320 TSRMLS_CC); + zephir_array_fetch_string(&_2, resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 305 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_model"), _2 TSRMLS_CC); - zephir_array_fetch_string(&_3, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 321 TSRMLS_CC); + zephir_array_fetch_string(&_3, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 306 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_rows"), _3 TSRMLS_CC); - zephir_array_fetch_string(&_4, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 322 TSRMLS_CC); + zephir_array_fetch_string(&_4, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 307 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_cache"), _4 TSRMLS_CC); - zephir_array_fetch_string(&_5, resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 323 TSRMLS_CC); + zephir_array_fetch_string(&_5, resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 308 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_columnMap"), _5 TSRMLS_CC); - zephir_array_fetch_string(&_6, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 324 TSRMLS_CC); + zephir_array_fetch_string(&_6, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 309 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_hydrateMode"), _6 TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -103698,7 +106071,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Email, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/email.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/email.zep", 63); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104019,7 +106392,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Numericality, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/numericality.zep", 63); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/numericality.zep", 62); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104104,7 +106477,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_PresenceOf, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/presenceof.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/presenceof.zep", 63); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104185,7 +106558,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/regex.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/regex.zep", 63); return; } ZEPHIR_INIT_NVAR(_0); @@ -104194,7 +106567,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Validator requires a perl-compatible regex pattern", "phalcon/mvc/model/validator/regex.zep", 71); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Validator requires a perl-compatible regex pattern", "phalcon/mvc/model/validator/regex.zep", 70); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104222,7 +106595,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { ZEPHIR_INIT_NVAR(_0); zephir_preg_match(_0, pattern, value, matches, 0, 0 , 0 TSRMLS_CC); if (zephir_is_true(_0)) { - zephir_array_fetch_long(&_4, matches, 0, PH_NOISY | PH_READONLY, "phalcon/mvc/model/validator/regex.zep", 90 TSRMLS_CC); + zephir_array_fetch_long(&_4, matches, 0, PH_NOISY | PH_READONLY, "phalcon/mvc/model/validator/regex.zep", 89 TSRMLS_CC); failed = !ZEPHIR_IS_EQUAL(_4, value); } else { failed = 1; @@ -104295,7 +106668,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_StringLength, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/stringlength.zep", 68); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/stringlength.zep", 67); return; } ZEPHIR_INIT_NVAR(_0); @@ -104313,7 +106686,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_StringLength, validate) { _1 = !zephir_is_true(isSetMax); } if (_1) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A minimum or maximum must be set", "phalcon/mvc/model/validator/stringlength.zep", 78); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A minimum or maximum must be set", "phalcon/mvc/model/validator/stringlength.zep", 77); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104468,7 +106841,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) == IS_ARRAY) { - zephir_is_iterable(field, &_2, &_1, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 121); + zephir_is_iterable(field, &_2, &_1, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 120); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -104483,7 +106856,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_4, "Column '", composeField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 98 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 97 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104498,7 +106871,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_4, "Column '", columnField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 108 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104506,11 +106879,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZVAL_LONG(&_6, number); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SVSV(_7, "[", composeField, "] = ?", &_6); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 114); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 113); ZEPHIR_CALL_METHOD(&_8, record, "readattribute", &_9, composeField); zephir_check_call_status(); - zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 115); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 116); + zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 114); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 115); number++; } } else { @@ -104523,7 +106896,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 128 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 127 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104538,17 +106911,17 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", columnField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 138 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 137 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SVS(_7, "[", field, "] = ?0"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 144); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 143); ZEPHIR_CALL_METHOD(&_8, record, "readattribute", &_9, field); zephir_check_call_status(); - zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 145); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 146); + zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 144); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 145); number++; } ZEPHIR_CALL_METHOD(&_10, record, "getoperationmade", NULL); @@ -104563,7 +106936,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { } ZEPHIR_CALL_METHOD(&_8, metaData, "getprimarykeyattributes", NULL, record); zephir_check_call_status(); - zephir_is_iterable(_8, &_12, &_11, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 191); + zephir_is_iterable(_8, &_12, &_11, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 190); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -104577,7 +106950,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 168 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 167 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104590,7 +106963,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_14, "Column '", primaryField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 176 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 175 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104601,11 +106974,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZVAL_LONG(&_6, number); ZEPHIR_INIT_LNVAR(_4); ZEPHIR_CONCAT_SVSV(_4, "[", attributeField, "] <> ?", &_6); - zephir_array_append(&conditions, _4, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 185); + zephir_array_append(&conditions, _4, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 184); ZEPHIR_CALL_METHOD(&_15, record, "readattribute", &_9, primaryField); zephir_check_call_status(); - zephir_array_append(&bindParams, _15, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 186); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 187); + zephir_array_append(&bindParams, _15, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 185); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 186); number++; } } @@ -104699,7 +107072,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Url, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/url.zep", 63); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/url.zep", 62); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -108362,26 +110735,31 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, convertEncoding) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { - zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; - zend_bool _2; - zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_5 = NULL, *_8 = NULL; - int position, ZEPHIR_LAST_CALL_STATUS; - zval *value, *start, *end = NULL, *length = NULL, *slice, *_0 = NULL, *_3 = NULL, *_6; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL, *_7 = NULL; + zend_bool _1; + int start, position, ZEPHIR_LAST_CALL_STATUS; + zval *value, *start_param = NULL, *end = NULL, *length, *slice, *_0 = NULL, *_2 = NULL, _5 = zval_used_for_init; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &value, &start, &end); + zephir_fetch_params(1, 1, 2, &value, &start_param, &end); + if (!start_param) { + start = 0; + } else { + start = zephir_get_intval(start_param); + } if (!end) { - end = ZEPHIR_GLOBAL(global_null); + ZEPHIR_CPY_WRT(end, ZEPHIR_GLOBAL(global_null)); + } else { + ZEPHIR_SEPARATE_PARAM(end); } if (Z_TYPE_P(value) == IS_OBJECT) { if (Z_TYPE_P(end) == IS_NULL) { - ZEPHIR_INIT_VAR(length); - ZVAL_LONG(length, zephir_fast_count_int(value TSRMLS_CC)); - } else { - ZEPHIR_CPY_WRT(length, end); + ZEPHIR_INIT_NVAR(end); + ZVAL_LONG(end, (zephir_fast_count_int(value TSRMLS_CC) - 1)); } position = 0; ZEPHIR_INIT_VAR(slice); @@ -108389,54 +110767,62 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_0, value, "valid", &_1); + ZEPHIR_CALL_METHOD(&_0, value, "valid", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { break; } - _2 = ZEPHIR_LT_LONG(start, position); - if (_2) { - _2 = ZEPHIR_GE_LONG(length, position); + _1 = position >= start; + if (_1) { + _1 = ZEPHIR_GE_LONG(end, position); } - if (_2) { - ZEPHIR_CALL_METHOD(&_3, value, "current", &_4); + if (_1) { + ZEPHIR_CALL_METHOD(&_2, value, "current", &_3); zephir_check_call_status(); - zephir_array_append(&slice, _3, PH_SEPARATE, "phalcon/mvc/view/engine/volt.zep", 239); + zephir_array_append(&slice, _2, PH_SEPARATE, "phalcon/mvc/view/engine/volt.zep", 233); } - ZEPHIR_CALL_METHOD(NULL, value, "next", &_5); + ZEPHIR_CALL_METHOD(NULL, value, "next", &_4); zephir_check_call_status(); position++; } RETURN_CCTOR(slice); } - ZEPHIR_INIT_NVAR(length); + ZEPHIR_INIT_VAR(length); if (Z_TYPE_P(end) != IS_NULL) { - ZEPHIR_INIT_VAR(_6); - sub_function(_6, end, start TSRMLS_CC); - ZVAL_LONG(length, (zephir_get_numberval(_6) + 1)); + ZVAL_LONG(length, (((zephir_get_numberval(end) - start)) + 1)); } else { ZVAL_NULL(length); } if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_RETURN_CALL_FUNCTION("array_slice", &_7, value, start, length); + ZEPHIR_SINIT_VAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("array_slice", &_6, value, &_5, length); zephir_check_call_status(); RETURN_MM(); } if ((zephir_function_exists_ex(SS("mb_substr") TSRMLS_CC) == SUCCESS)) { if (Z_TYPE_P(length) != IS_NULL) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_8, value, start, length); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_7, value, &_5, length); zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_8, value, start); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_7, value, &_5); zephir_check_call_status(); RETURN_MM(); } if (Z_TYPE_P(length) != IS_NULL) { - zephir_substr(return_value, value, zephir_get_intval(start), zephir_get_intval(length), 0); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + zephir_substr(return_value, value, zephir_get_intval(&_5), zephir_get_intval(length), 0); RETURN_MM(); } - zephir_substr(return_value, value, zephir_get_intval(start), 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + zephir_substr(return_value, value, zephir_get_intval(&_5), 0, ZEPHIR_SUBSTR_NO_LENGTH); RETURN_MM(); } @@ -108673,7 +111059,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, fireExtensionEvent) { ZEPHIR_OBS_VAR(extensions); zephir_read_property_this(&extensions, this_ptr, SL("_extensions"), PH_NOISY_CC); if (Z_TYPE_P(extensions) == IS_ARRAY) { - zephir_is_iterable(extensions, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 191); + zephir_is_iterable(extensions, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 189); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -108718,7 +111104,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addExtension) { if (Z_TYPE_P(extension) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The extension is not valid", "phalcon/mvc/view/engine/volt/compiler.zep", 203); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The extension is not valid", "phalcon/mvc/view/engine/volt/compiler.zep", 201); return; } if ((zephir_method_exists_ex(extension, SS("initialize") TSRMLS_CC) == SUCCESS)) { @@ -108858,7 +111244,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) { } } if (Z_TYPE_P(prefix) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The unique compilation prefix is invalid", "phalcon/mvc/view/engine/volt/compiler.zep", 311); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The unique compilation prefix is invalid", "phalcon/mvc/view/engine/volt/compiler.zep", 303); return; } RETURN_CCTOR(prefix); @@ -108867,9 +111253,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { + zend_bool _5; zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *exprCode, *left, *leftType, *variable, *level, *dependencyInjector, *leftCode = NULL, *right, *_0, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_5, *_6; + zval *expr_param = NULL, *exprCode, *left, *leftType, *variable, *level, *dependencyInjector, *leftCode = NULL, *right, *_0, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_6, *_7; zval *expr = NULL; ZEPHIR_MM_GROW(); @@ -108882,11 +111269,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { ZEPHIR_INIT_VAR(exprCode); ZVAL_NULL(exprCode); ZEPHIR_OBS_VAR(left); - zephir_array_fetch_string(&left, expr, SL("left"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 327 TSRMLS_CC); - zephir_array_fetch_string(&_0, left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 329 TSRMLS_CC); + zephir_array_fetch_string(&left, expr, SL("left"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 319 TSRMLS_CC); + zephir_array_fetch_string(&_0, left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 321 TSRMLS_CC); if (ZEPHIR_IS_LONG(_0, 265)) { ZEPHIR_OBS_VAR(variable); - zephir_array_fetch_string(&variable, left, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 331 TSRMLS_CC); + zephir_array_fetch_string(&variable, left, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 323 TSRMLS_CC); if (ZEPHIR_IS_STRING(variable, "loop")) { ZEPHIR_OBS_VAR(level); zephir_read_property_this(&level, this_ptr, SL("_foreachLevel"), PH_NOISY_CC); @@ -108921,26 +111308,26 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", &_4, left); zephir_check_call_status(); ZEPHIR_OBS_VAR(leftType); - zephir_array_fetch_string(&leftType, left, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 358 TSRMLS_CC); - if (!ZEPHIR_IS_LONG(leftType, '.')) { - if (!ZEPHIR_IS_LONG(leftType, 350)) { - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SVS(_2, "(", leftCode, ")"); - zephir_concat_self(&exprCode, _2 TSRMLS_CC); - } else { - zephir_concat_self(&exprCode, leftCode TSRMLS_CC); - } + zephir_array_fetch_string(&leftType, left, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 350 TSRMLS_CC); + _5 = !ZEPHIR_IS_LONG(leftType, '.'); + if (_5) { + _5 = !ZEPHIR_IS_LONG(leftType, 350); + } + if (_5) { + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SVS(_2, "(", leftCode, ")"); + zephir_concat_self(&exprCode, _2 TSRMLS_CC); } else { zephir_concat_self(&exprCode, leftCode TSRMLS_CC); } } zephir_concat_self_str(&exprCode, SL("->") TSRMLS_CC); ZEPHIR_OBS_VAR(right); - zephir_array_fetch_string(&right, expr, SL("right"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 372 TSRMLS_CC); - zephir_array_fetch_string(&_5, right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 374 TSRMLS_CC); - if (ZEPHIR_IS_LONG(_5, 265)) { - zephir_array_fetch_string(&_6, right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 375 TSRMLS_CC); - zephir_concat_self(&exprCode, _6 TSRMLS_CC); + zephir_array_fetch_string(&right, expr, SL("right"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 360 TSRMLS_CC); + zephir_array_fetch_string(&_6, right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 362 TSRMLS_CC); + if (ZEPHIR_IS_LONG(_6, 265)) { + zephir_array_fetch_string(&_7, right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 363 TSRMLS_CC); + zephir_concat_self(&exprCode, _7 TSRMLS_CC); } else { ZEPHIR_CALL_METHOD(&_1, this_ptr, "expression", &_4, right); zephir_check_call_status(); @@ -108952,9 +111339,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL; + zend_bool _8; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL, *_9 = NULL, *_10 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *code = NULL, *funcArguments = NULL, *arguments = NULL, *nameExpr, *nameType, *name, *extensions, *functions, *definition, *macros, *extendedBlocks, *block, *currentBlock, *exprLevel, *escapedCode = NULL, *method = NULL, *arrayHelpers = NULL, *className, *_2 = NULL, *_4, *_5, *_6 = NULL, *_10 = NULL; + zval *expr_param = NULL, *code = NULL, *funcArguments = NULL, *arguments = NULL, *nameExpr, *nameType, *name, *extensions, *functions, *definition, *macros, *extendedBlocks, *block, *currentBlock, *exprLevel, *escapedCode = NULL, *method = NULL, *arrayHelpers = NULL, *className, *_2 = NULL, *_4, *_5, *_6 = NULL, *_11 = NULL; zval *expr = NULL, *_1 = NULL; ZEPHIR_MM_GROW(); @@ -108977,12 +111365,12 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZVAL_STRING(arguments, "", 1); } ZEPHIR_OBS_VAR(nameExpr); - zephir_array_fetch_string(&nameExpr, expr, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 402 TSRMLS_CC); + zephir_array_fetch_string(&nameExpr, expr, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 390 TSRMLS_CC); ZEPHIR_OBS_VAR(nameType); - zephir_array_fetch_string(&nameType, nameExpr, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 402 TSRMLS_CC); + zephir_array_fetch_string(&nameType, nameExpr, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 390 TSRMLS_CC); if (ZEPHIR_IS_LONG(nameType, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, nameExpr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 409 TSRMLS_CC); + zephir_array_fetch_string(&name, nameExpr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 397 TSRMLS_CC); ZEPHIR_OBS_VAR(extensions); zephir_read_property_this(&extensions, this_ptr, SL("_extensions"), PH_NOISY_CC); if (Z_TYPE_P(extensions) == IS_ARRAY) { @@ -109022,13 +111410,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); - zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); + zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); + zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); ZEPHIR_INIT_VAR(_6); ZEPHIR_CONCAT_SVSVSV(_6, "Invalid definition for user function '", name, "' in ", _4, " on line ", _5); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -109039,10 +111427,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZEPHIR_CONCAT_SVSVS(return_value, "vmacro_", name, "(array(", arguments, "))"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "get_content")) { - RETURN_MM_STRING("$this->getContent()", 1); + _8 = ZEPHIR_IS_STRING(name, "get_content"); + if (!(_8)) { + _8 = ZEPHIR_IS_STRING(name, "content"); } - if (ZEPHIR_IS_STRING(name, "content")) { + if (_8) { RETURN_MM_STRING("$this->getContent()", 1); } if (ZEPHIR_IS_STRING(name, "partial")) { @@ -109060,7 +111449,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZEPHIR_OBS_VAR(exprLevel); zephir_read_property_this(&exprLevel, this_ptr, SL("_exprLevel"), PH_NOISY_CC); if (Z_TYPE_P(block) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&code, this_ptr, "_statementlistorextends", &_8, block); + ZEPHIR_CALL_METHOD(&code, this_ptr, "_statementlistorextends", &_9, block); zephir_check_call_status(); if (ZEPHIR_IS_LONG(exprLevel, 1)) { ZEPHIR_CPY_WRT(escapedCode, code); @@ -109087,7 +111476,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); zephir_camelize(_2, name); - ZEPHIR_CALL_FUNCTION(&method, "lcfirst", &_9, _2); + ZEPHIR_CALL_FUNCTION(&method, "lcfirst", &_10, _2); zephir_check_call_status(); ZEPHIR_INIT_VAR(className); ZVAL_STRING(className, "Phalcon\\Tag", 1); @@ -109153,19 +111542,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); - zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); + zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); + zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_6); ZEPHIR_CONCAT_SVSVSV(_6, "Undefined function '", name, "' in ", _4, " on line ", _5); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_CALL_METHOD(&_10, this_ptr, "expression", &_0, nameExpr); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "expression", &_0, nameExpr); zephir_check_call_status(); - ZEPHIR_CONCAT_VSVS(return_value, _10, "(", arguments, ")"); + ZEPHIR_CONCAT_VSVS(return_value, _11, "(", arguments, ")"); RETURN_MM(); } @@ -109187,10 +111576,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { ZEPHIR_OBS_VAR(type); - zephir_array_fetch_string(&type, test, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 615 TSRMLS_CC); + zephir_array_fetch_string(&type, test, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 596 TSRMLS_CC); if (ZEPHIR_IS_LONG(type, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, test, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 622 TSRMLS_CC); + zephir_array_fetch_string(&name, test, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 603 TSRMLS_CC); if (ZEPHIR_IS_STRING(name, "empty")) { ZEPHIR_CONCAT_SVS(return_value, "empty(", left, ")"); RETURN_MM(); @@ -109218,25 +111607,25 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { } if (ZEPHIR_IS_LONG(type, 350)) { ZEPHIR_OBS_VAR(testName); - zephir_array_fetch_string(&testName, test, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 673 TSRMLS_CC); + zephir_array_fetch_string(&testName, test, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 654 TSRMLS_CC); ZEPHIR_OBS_NVAR(name); if (zephir_array_isset_string_fetch(&name, testName, SS("value"), 0 TSRMLS_CC)) { if (ZEPHIR_IS_STRING(name, "divisibleby")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 677 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 658 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "(((", left, ") % (", _0, ")) == 0)"); RETURN_MM(); } if (ZEPHIR_IS_STRING(name, "sameas")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 684 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 665 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "(", left, ") === (", _0, ")"); RETURN_MM(); } if (ZEPHIR_IS_STRING(name, "type")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 691 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 672 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "gettype(", left, ") === (", _0, ")"); @@ -109253,6 +111642,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { + zend_bool _10, _11, _12; zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL; int ZEPHIR_LAST_CALL_STATUS; zval *left = NULL; @@ -109270,28 +111660,28 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_INIT_VAR(code); ZVAL_NULL(code); ZEPHIR_OBS_VAR(type); - zephir_array_fetch_string(&type, filter, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 710 TSRMLS_CC); + zephir_array_fetch_string(&type, filter, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 691 TSRMLS_CC); if (ZEPHIR_IS_LONG(type, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, filter, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 716 TSRMLS_CC); + zephir_array_fetch_string(&name, filter, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 697 TSRMLS_CC); } else { if (!ZEPHIR_IS_LONG(type, 350)) { ZEPHIR_INIT_VAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); ZEPHIR_INIT_VAR(_3); ZEPHIR_CONCAT_SVSV(_3, "Unknown filter type in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(functionName); - zephir_array_fetch_string(&functionName, filter, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 727 TSRMLS_CC); + zephir_array_fetch_string(&functionName, filter, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 708 TSRMLS_CC); ZEPHIR_OBS_NVAR(name); - zephir_array_fetch_string(&name, functionName, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 728 TSRMLS_CC); + zephir_array_fetch_string(&name, functionName, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 709 TSRMLS_CC); } ZEPHIR_INIT_VAR(funcArguments); ZVAL_NULL(funcArguments); @@ -109301,9 +111691,9 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { if (zephir_array_isset_string_fetch(&funcArguments, filter, SS("arguments"), 0 TSRMLS_CC)) { if (!ZEPHIR_IS_STRING(name, "default")) { ZEPHIR_OBS_VAR(file); - zephir_array_fetch_string(&file, filter, SL("file"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&file, filter, SL("file"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); ZEPHIR_OBS_VAR(line); - zephir_array_fetch_string(&line, filter, SL("line"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&line, filter, SL("line"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); ZEPHIR_INIT_VAR(_5); zephir_create_array(_5, 3, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_6); @@ -109364,13 +111754,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { } ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); ZEPHIR_CONCAT_SVSVSV(_3, "Invalid definition for user filter '", name, "' in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -109379,11 +111769,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_CONCAT_SVS(return_value, "$this->length(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "e")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", arguments, ")"); - RETURN_MM(); + _10 = ZEPHIR_IS_STRING(name, "e"); + if (!(_10)) { + _10 = ZEPHIR_IS_STRING(name, "escape"); } - if (ZEPHIR_IS_STRING(name, "escape")) { + if (_10) { ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", arguments, ")"); RETURN_MM(); } @@ -109439,19 +111829,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_CONCAT_SVS(return_value, "join(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "lowercase")) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", arguments, ")"); - RETURN_MM(); + _11 = ZEPHIR_IS_STRING(name, "lower"); + if (!(_11)) { + _11 = ZEPHIR_IS_STRING(name, "lowercase"); } - if (ZEPHIR_IS_STRING(name, "lower")) { + if (_11) { ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "uppercase")) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", arguments, ")"); - RETURN_MM(); + _12 = ZEPHIR_IS_STRING(name, "upper"); + if (!(_12)) { + _12 = ZEPHIR_IS_STRING(name, "uppercase"); } - if (ZEPHIR_IS_STRING(name, "upper")) { + if (_12) { ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", arguments, ")"); RETURN_MM(); } @@ -109493,13 +111883,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { } ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); ZEPHIR_CONCAT_SVSVSV(_3, "Unknown filter \"", name, "\" in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -109545,22 +111935,22 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { if (!(zephir_array_isset_string_fetch(&type, expr, SS("type"), 0 TSRMLS_CC))) { ZEPHIR_INIT_NVAR(items); array_init(items); - zephir_is_iterable(expr, &_4, &_3, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1057); + zephir_is_iterable(expr, &_4, &_3, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1017); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) ) { ZEPHIR_GET_HVALUE(singleExpr, _5); - zephir_array_fetch_string(&_6, singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1050 TSRMLS_CC); + zephir_array_fetch_string(&_6, singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1010 TSRMLS_CC); ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, _6); zephir_check_call_status(); ZEPHIR_OBS_NVAR(name); if (zephir_array_isset_string_fetch(&name, singleExpr, SS("name"), 0 TSRMLS_CC)) { ZEPHIR_INIT_LNVAR(_8); ZEPHIR_CONCAT_SVSV(_8, "'", name, "' => ", singleExprCode); - zephir_array_append(&items, _8, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1052); + zephir_array_append(&items, _8, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1012); } else { - zephir_array_append(&items, singleExprCode, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1054); + zephir_array_append(&items, singleExprCode, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1014); } } ZEPHIR_INIT_NVAR(exprCode); @@ -109578,13 +111968,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { zephir_check_call_status(); } if (ZEPHIR_IS_LONG(type, 311)) { - zephir_array_fetch_string(&_6, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1080 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1040 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvetest", &_10, _6, leftCode); zephir_check_call_status(); break; } if (ZEPHIR_IS_LONG(type, 124)) { - zephir_array_fetch_string(&_11, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1088 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1048 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvefilter", &_12, _11, leftCode); zephir_check_call_status(); break; @@ -109663,17 +112053,17 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { } if (ZEPHIR_IS_LONG(type, 258)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1155 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1115 TSRMLS_CC); break; } if (ZEPHIR_IS_LONG(type, 259)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1159 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1119 TSRMLS_CC); break; } if (ZEPHIR_IS_LONG(type, 260)) { ZEPHIR_INIT_NVAR(_1); - zephir_array_fetch_string(&_6, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1163 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1123 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_13); ZVAL_STRING(&_13, "'", 0); ZEPHIR_SINIT_NVAR(_14); @@ -109699,7 +112089,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { break; } if (ZEPHIR_IS_LONG(type, 265)) { - zephir_array_fetch_string(&_11, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1179 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1139 TSRMLS_CC); ZEPHIR_INIT_NVAR(exprCode); ZEPHIR_CONCAT_SV(exprCode, "$", _11); break; @@ -109866,7 +112256,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { break; } if (ZEPHIR_IS_LONG(type, 366)) { - zephir_array_fetch_string(&_6, expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1318 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1278 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_16, this_ptr, "expression", &_7, _6); zephir_check_call_status(); ZEPHIR_INIT_NVAR(exprCode); @@ -109885,18 +112275,18 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { } if (ZEPHIR_IS_LONG(type, 364)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1330 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1290 TSRMLS_CC); break; } ZEPHIR_INIT_NVAR(_1); object_init_ex(_1, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_11, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); - zephir_array_fetch_string(&_17, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); + zephir_array_fetch_string(&_17, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_8); ZEPHIR_CONCAT_SVSVSV(_8, "Unknown expression ", type, " in ", _11, " on line ", _17); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_18, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } while(0); @@ -109928,7 +112318,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, _statementListOrExtends } isStatementList = 1; if (!(zephir_array_isset_string(statements, SS("type")))) { - zephir_is_iterable(statements, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1374); + zephir_is_iterable(statements, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1334); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -109973,7 +112363,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { if (!(zephir_array_isset_string(statement, SS("expr")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1402); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1362); return; } ZEPHIR_INIT_VAR(compilation); @@ -109988,15 +112378,15 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { ZEPHIR_INIT_VAR(prefixLevel); ZEPHIR_CONCAT_VV(prefixLevel, prefix, level); ZEPHIR_OBS_VAR(expr); - zephir_array_fetch_string(&expr, statement, SL("expr"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1420 TSRMLS_CC); + zephir_array_fetch_string(&expr, statement, SL("expr"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1380 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", &_0, expr); zephir_check_call_status(); ZEPHIR_OBS_VAR(blockStatements); - zephir_array_fetch_string(&blockStatements, statement, SL("block_statements"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1426 TSRMLS_CC); + zephir_array_fetch_string(&blockStatements, statement, SL("block_statements"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1386 TSRMLS_CC); ZEPHIR_INIT_NVAR(forElse); ZVAL_BOOL(forElse, 0); if (Z_TYPE_P(blockStatements) == IS_ARRAY) { - zephir_is_iterable(blockStatements, &_2, &_1, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1452); + zephir_is_iterable(blockStatements, &_2, &_1, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1412); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -110054,7 +112444,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { ZEPHIR_CPY_WRT(iterator, exprCode); } ZEPHIR_OBS_VAR(variable); - zephir_array_fetch_string(&variable, statement, SL("variable"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1481 TSRMLS_CC); + zephir_array_fetch_string(&variable, statement, SL("variable"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1441 TSRMLS_CC); ZEPHIR_OBS_VAR(key); if (zephir_array_isset_string_fetch(&key, statement, SS("key"), 0 TSRMLS_CC)) { ZEPHIR_INIT_LNVAR(_6); @@ -110163,12 +112553,12 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileIf) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1573); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1533); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_1, expr); zephir_check_call_status(); - zephir_array_fetch_string(&_3, statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1579 TSRMLS_CC); + zephir_array_fetch_string(&_3, statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1539 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_2, this_ptr, "_statementlist", &_4, _3, (extendsMode ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); ZEPHIR_INIT_VAR(compilation); @@ -110202,7 +112592,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileElseIf) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1608); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1568); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_1, expr); @@ -110234,7 +112624,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCache) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1628); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1588); return; } ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", &_0, expr); @@ -110259,7 +112649,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCache) { ZEPHIR_INIT_LNVAR(_2); ZEPHIR_CONCAT_SVS(_2, "if ($_cacheKey[", exprCode, "] === null) { ?>"); zephir_concat_self(&compilation, _2 TSRMLS_CC); - zephir_array_fetch_string(&_5, statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1647 TSRMLS_CC); + zephir_array_fetch_string(&_5, statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1607 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_4, this_ptr, "_statementlist", &_6, _5, (extendsMode ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); zephir_concat_self(&compilation, _4 TSRMLS_CC); @@ -110298,22 +112688,22 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSet) { ZEPHIR_OBS_VAR(assignments); if (!(zephir_array_isset_string_fetch(&assignments, statement, SS("assignments"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1673); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1633); return; } ZEPHIR_INIT_VAR(compilation); ZVAL_STRING(compilation, " +// 42 "parser.lemon" #ifdef HAVE_CONFIG_H @@ -111945,6 +114334,7 @@ static zval *phvolt_ret_macro_call_statement(zval *expr, zval *arguments, zval * } +// 570 "parser.c" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -111955,58 +114345,58 @@ static zval *phvolt_ret_macro_call_statement(zval *expr, zval *arguments, zval * #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal +** VVCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds +** VVNOCODE is a number of type VVCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. -** YYFALLBACK If defined, this indicates that one or more tokens +** VVFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal +** VVACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** phvolt_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. +** VVMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is phvolt_TOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. +** for base tokens is called "vv0". +** VVSTACKDEPTH is the maximum depth of the parser's stack. ** phvolt_ARG_SDECL A static variable declaration for the %extra_argument ** phvolt_ARG_PDECL A parameter declaration for the %extra_argument -** phvolt_ARG_STORE Code to store %extra_argument into yypParser -** phvolt_ARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not +** phvolt_ARG_STORE Code to store %extra_argument into vvpParser +** phvolt_ARG_FETCH Code to extract %extra_argument from vvpParser +** VVNSTATE the combined number of states. +** VVNRULE the number of rules in the grammar +** VVERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define YYCODETYPE unsigned char -#define YYNOCODE 120 -#define YYACTIONTYPE unsigned short int +#define VVCODETYPE unsigned char +#define VVNOCODE 120 +#define VVACTIONTYPE unsigned short int #define phvolt_TOKENTYPE phvolt_parser_token* typedef union { - phvolt_TOKENTYPE yy0; - zval* yy92; - int yy239; -} YYMINORTYPE; -#define YYSTACKDEPTH 100 + phvolt_TOKENTYPE vv0; + zval* vv92; + int vv239; +} VVMINORTYPE; +#define VVSTACKDEPTH 100 #define phvolt_ARG_SDECL phvolt_parser_status *status; #define phvolt_ARG_PDECL ,phvolt_parser_status *status -#define phvolt_ARG_FETCH phvolt_parser_status *status = yypParser->status -#define phvolt_ARG_STORE yypParser->status = status -#define YYNSTATE 333 -#define YYNRULE 145 -#define YYERRORSYMBOL 83 -#define YYERRSYMDT yy239 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define phvolt_ARG_FETCH phvolt_parser_status *status = vvpParser->status +#define phvolt_ARG_STORE vvpParser->status = status +#define VVNSTATE 333 +#define VVNRULE 145 +#define VVERRORSYMBOL 83 +#define VVERRSYMDT vv239 +#define VV_NO_ACTION (VVNSTATE+VVNRULE+2) +#define VV_ACCEPT_ACTION (VVNSTATE+VVNRULE+1) +#define VV_ERROR_ACTION (VVNSTATE+VVNRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -112016,566 +114406,562 @@ typedef union { ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N < VVNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** VVNSTATE <= N < VVNSTATE+VVNRULE Reduce by rule N-VVNSTATE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N == VVNSTATE+VVNRULE A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == VVNSTATE+VVNRULE+1 The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. +** N == VVNSTATE+VVNRULE+2 No such action. Denotes unused +** slots in the vv_action[] table. ** -** The action table is constructed as a single large table named yy_action[]. +** The action table is constructed as a single large table named vv_action[]. ** Given state S and lookahead X, the action is computed as ** -** yy_action[ yy_shift_ofst[S] + X ] +** vv_action[ vv_shift_ofst[S] + X ] ** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. +** If the index value vv_shift_ofst[S]+X is out of range or if the value +** vv_lookahead[vv_shift_ofst[S]+X] is not equal to X or if vv_shift_ofst[S] +** is equal to VV_SHIFT_USE_DFLT, it means that the action is not in the table +** and that vv_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. +** a reduce action) then the vv_reduce_ofst[] array is used in place of +** the vv_shift_ofst[] array and VV_REDUCE_USE_DFLT is used in place of +** VV_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for +** vv_action[] A single table containing all actions. +** vv_lookahead[] A table containing the lookahead for each entry in +** vv_action. Used to detect hash collisions. +** vv_shift_ofst[] For each state, the offset into vv_action for ** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for +** vv_reduce_ofst[] For each state, the offset into vv_action for ** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. +** vv_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { - /* 0 */ 82, 92, 23, 60, 52, 54, 66, 62, 64, 72, +static VVACTIONTYPE vv_action[] = { + /* 0 */ 82, 92, 181, 60, 52, 54, 66, 62, 64, 72, /* 10 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 20 */ 56, 89, 58, 84, 87, 88, 96, 80, 299, 173, - /* 30 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 20 */ 56, 89, 58, 84, 87, 88, 96, 80, 315, 310, + /* 30 */ 82, 92, 180, 60, 52, 54, 66, 62, 64, 72, /* 40 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 50 */ 56, 89, 58, 84, 87, 88, 96, 80, 255, 224, - /* 60 */ 48, 46, 50, 43, 40, 56, 89, 58, 84, 87, - /* 70 */ 88, 96, 80, 258, 306, 171, 266, 179, 194, 333, - /* 80 */ 82, 92, 30, 60, 52, 54, 66, 62, 64, 72, - /* 90 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 100 */ 56, 89, 58, 84, 87, 88, 96, 80, 32, 234, - /* 110 */ 82, 92, 112, 60, 52, 54, 66, 62, 64, 72, - /* 120 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 130 */ 56, 89, 58, 84, 87, 88, 96, 80, 315, 310, - /* 140 */ 82, 92, 235, 60, 52, 54, 66, 62, 64, 72, + /* 50 */ 56, 89, 58, 84, 87, 88, 96, 80, 299, 173, + /* 60 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 70 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 80 */ 56, 89, 58, 84, 87, 88, 96, 80, 213, 234, + /* 90 */ 82, 92, 287, 60, 52, 54, 66, 62, 64, 72, + /* 100 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 110 */ 56, 89, 58, 84, 87, 88, 96, 80, 246, 224, + /* 120 */ 179, 194, 235, 48, 46, 50, 43, 40, 56, 89, + /* 130 */ 58, 84, 87, 88, 96, 80, 266, 281, 245, 260, + /* 140 */ 82, 92, 112, 60, 52, 54, 66, 62, 64, 72, /* 150 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 160 */ 56, 89, 58, 84, 87, 88, 96, 80, 181, 26, - /* 170 */ 82, 92, 36, 60, 52, 54, 66, 62, 64, 72, + /* 160 */ 56, 89, 58, 84, 87, 88, 96, 80, 209, 301, + /* 170 */ 82, 92, 250, 60, 52, 54, 66, 62, 64, 72, /* 180 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 190 */ 56, 89, 58, 84, 87, 88, 96, 80, 180, 39, - /* 200 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 190 */ 56, 89, 58, 84, 87, 88, 96, 80, 252, 243, + /* 200 */ 82, 92, 254, 60, 52, 54, 66, 62, 64, 72, /* 210 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 220 */ 56, 89, 58, 84, 87, 88, 96, 80, 82, 92, - /* 230 */ 94, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 240 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 250 */ 58, 84, 87, 88, 96, 80, 27, 259, 4, 5, - /* 260 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 270 */ 16, 17, 18, 19, 20, 21, 22, 91, 280, 298, - /* 280 */ 107, 82, 92, 128, 60, 52, 54, 66, 62, 64, - /* 290 */ 72, 74, 76, 78, 68, 70, 48, 46, 50, 43, - /* 300 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 43, - /* 310 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 292, - /* 320 */ 293, 294, 295, 296, 297, 102, 245, 260, 127, 82, - /* 330 */ 92, 85, 60, 52, 54, 66, 62, 64, 72, 74, - /* 340 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 350 */ 89, 58, 84, 87, 88, 96, 80, 115, 237, 82, - /* 360 */ 92, 136, 60, 52, 54, 66, 62, 64, 72, 74, - /* 370 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 380 */ 89, 58, 84, 87, 88, 96, 80, 131, 240, 82, - /* 390 */ 92, 137, 60, 52, 54, 66, 62, 64, 72, 74, - /* 400 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 410 */ 89, 58, 84, 87, 88, 96, 80, 458, 243, 82, - /* 420 */ 92, 459, 60, 52, 54, 66, 62, 64, 72, 74, - /* 430 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 440 */ 89, 58, 84, 87, 88, 96, 80, 92, 143, 60, + /* 220 */ 56, 89, 58, 84, 87, 88, 96, 80, 92, 136, + /* 230 */ 60, 52, 54, 66, 62, 64, 72, 74, 76, 78, + /* 240 */ 68, 70, 48, 46, 50, 43, 40, 56, 89, 58, + /* 250 */ 84, 87, 88, 96, 80, 257, 108, 280, 298, 82, + /* 260 */ 92, 332, 60, 52, 54, 66, 62, 64, 72, 74, + /* 270 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, + /* 280 */ 89, 58, 84, 87, 88, 96, 80, 82, 92, 261, + /* 290 */ 60, 52, 54, 66, 62, 64, 72, 74, 76, 78, + /* 300 */ 68, 70, 48, 46, 50, 43, 40, 56, 89, 58, + /* 310 */ 84, 87, 88, 96, 80, 131, 26, 43, 40, 56, + /* 320 */ 89, 58, 84, 87, 88, 96, 80, 89, 58, 84, + /* 330 */ 87, 88, 96, 80, 107, 137, 91, 306, 171, 321, + /* 340 */ 82, 92, 458, 60, 52, 54, 66, 62, 64, 72, + /* 350 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 360 */ 56, 89, 58, 84, 87, 88, 96, 80, 267, 39, + /* 370 */ 82, 92, 94, 60, 52, 54, 66, 62, 64, 72, + /* 380 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 390 */ 56, 89, 58, 84, 87, 88, 96, 80, 82, 92, + /* 400 */ 128, 60, 52, 54, 66, 62, 64, 72, 74, 76, + /* 410 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, + /* 420 */ 58, 84, 87, 88, 96, 80, 292, 293, 294, 295, + /* 430 */ 296, 297, 184, 186, 188, 190, 192, 84, 87, 88, + /* 440 */ 96, 80, 102, 459, 30, 127, 82, 92, 203, 60, /* 450 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, /* 460 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, - /* 470 */ 87, 88, 96, 80, 257, 141, 144, 458, 82, 92, - /* 480 */ 168, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 490 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 500 */ 58, 84, 87, 88, 96, 80, 459, 301, 82, 92, - /* 510 */ 177, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 520 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 530 */ 58, 84, 87, 88, 96, 80, 170, 317, 82, 92, - /* 540 */ 183, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 550 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 560 */ 58, 84, 87, 88, 96, 80, 82, 92, 182, 60, - /* 570 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, - /* 580 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, - /* 590 */ 87, 88, 206, 80, 60, 52, 54, 66, 62, 64, - /* 600 */ 72, 74, 76, 78, 68, 70, 48, 46, 50, 43, - /* 610 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 52, - /* 620 */ 54, 66, 62, 64, 72, 74, 76, 78, 68, 70, - /* 630 */ 48, 46, 50, 43, 40, 56, 89, 58, 84, 87, - /* 640 */ 88, 96, 80, 479, 1, 2, 259, 4, 5, 6, - /* 650 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 660 */ 17, 18, 19, 20, 21, 22, 66, 62, 64, 72, - /* 670 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 680 */ 56, 89, 58, 84, 87, 88, 96, 80, 33, 259, - /* 690 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 700 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 174, - /* 710 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 720 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 730 */ 200, 259, 4, 5, 6, 7, 8, 9, 10, 11, - /* 740 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 750 */ 22, 210, 259, 4, 5, 6, 7, 8, 9, 10, - /* 760 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 770 */ 21, 22, 218, 259, 4, 5, 6, 7, 8, 9, - /* 780 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 790 */ 20, 21, 22, 225, 259, 4, 5, 6, 7, 8, - /* 800 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 810 */ 19, 20, 21, 22, 247, 259, 4, 5, 6, 7, - /* 820 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 830 */ 18, 19, 20, 21, 22, 262, 259, 4, 5, 6, - /* 840 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 850 */ 17, 18, 19, 20, 21, 22, 268, 259, 4, 5, - /* 860 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 870 */ 16, 17, 18, 19, 20, 21, 22, 283, 259, 4, - /* 880 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 890 */ 15, 16, 17, 18, 19, 20, 21, 22, 302, 259, - /* 900 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 910 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 311, - /* 920 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 930 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 940 */ 318, 259, 4, 5, 6, 7, 8, 9, 10, 11, - /* 950 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 960 */ 22, 3, 4, 5, 6, 7, 8, 9, 10, 11, - /* 970 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 980 */ 22, 44, 41, 196, 103, 90, 98, 25, 197, 100, - /* 990 */ 216, 44, 41, 140, 103, 117, 98, 117, 118, 100, - /* 1000 */ 89, 58, 84, 87, 88, 96, 80, 325, 118, 119, - /* 1010 */ 120, 121, 122, 123, 124, 199, 203, 128, 209, 119, - /* 1020 */ 120, 121, 122, 123, 124, 84, 87, 88, 96, 80, - /* 1030 */ 28, 230, 38, 154, 155, 156, 157, 158, 159, 160, - /* 1040 */ 166, 109, 117, 147, 148, 149, 150, 151, 152, 153, - /* 1050 */ 117, 109, 24, 214, 29, 31, 37, 167, 169, 334, - /* 1060 */ 23, 178, 208, 255, 104, 42, 139, 195, 184, 186, - /* 1070 */ 188, 190, 192, 125, 117, 117, 204, 138, 258, 287, - /* 1080 */ 215, 289, 222, 213, 229, 232, 255, 238, 241, 244, - /* 1090 */ 198, 251, 253, 24, 214, 326, 328, 37, 167, 169, - /* 1100 */ 97, 258, 178, 97, 217, 221, 126, 277, 195, 97, - /* 1110 */ 117, 134, 228, 117, 129, 207, 255, 204, 231, 117, - /* 1120 */ 134, 215, 322, 222, 281, 229, 232, 246, 238, 241, - /* 1130 */ 244, 258, 251, 253, 24, 214, 35, 104, 37, 167, - /* 1140 */ 169, 104, 34, 178, 106, 139, 113, 117, 111, 195, - /* 1150 */ 113, 117, 278, 175, 250, 165, 138, 289, 204, 252, - /* 1160 */ 254, 261, 215, 265, 222, 117, 229, 232, 267, 238, - /* 1170 */ 241, 244, 201, 251, 253, 24, 214, 271, 255, 37, - /* 1180 */ 167, 169, 45, 176, 178, 162, 47, 142, 274, 211, - /* 1190 */ 195, 276, 117, 258, 49, 117, 117, 279, 255, 204, - /* 1200 */ 282, 286, 288, 215, 117, 222, 291, 229, 232, 255, - /* 1210 */ 238, 241, 244, 258, 251, 253, 24, 214, 290, 51, - /* 1220 */ 37, 167, 169, 305, 258, 178, 308, 53, 255, 117, - /* 1230 */ 272, 195, 300, 202, 307, 219, 314, 117, 321, 324, - /* 1240 */ 204, 327, 117, 258, 215, 255, 222, 329, 229, 232, - /* 1250 */ 330, 238, 241, 244, 226, 251, 253, 24, 214, 332, - /* 1260 */ 258, 37, 167, 169, 55, 248, 178, 266, 331, 266, - /* 1270 */ 57, 266, 195, 59, 117, 266, 266, 266, 266, 266, - /* 1280 */ 117, 204, 212, 117, 266, 215, 255, 222, 266, 229, - /* 1290 */ 232, 255, 238, 241, 244, 263, 251, 253, 24, 214, - /* 1300 */ 266, 258, 37, 167, 169, 266, 258, 178, 266, 266, - /* 1310 */ 255, 266, 269, 195, 266, 266, 266, 266, 266, 61, - /* 1320 */ 266, 255, 204, 266, 266, 258, 215, 220, 222, 117, - /* 1330 */ 229, 232, 284, 238, 241, 244, 258, 251, 253, 24, - /* 1340 */ 214, 266, 266, 37, 167, 169, 266, 266, 178, 266, - /* 1350 */ 309, 255, 63, 303, 195, 266, 266, 266, 266, 266, - /* 1360 */ 117, 266, 117, 204, 266, 266, 258, 215, 255, 222, - /* 1370 */ 227, 229, 232, 312, 238, 241, 244, 319, 251, 253, - /* 1380 */ 24, 214, 65, 258, 37, 167, 169, 266, 255, 178, - /* 1390 */ 67, 69, 117, 266, 266, 195, 266, 71, 266, 266, - /* 1400 */ 117, 117, 266, 258, 204, 266, 266, 117, 215, 255, - /* 1410 */ 222, 266, 229, 232, 266, 238, 241, 244, 249, 251, - /* 1420 */ 253, 24, 214, 266, 258, 37, 167, 169, 266, 255, - /* 1430 */ 178, 266, 266, 255, 266, 266, 195, 73, 266, 266, - /* 1440 */ 75, 266, 77, 266, 258, 204, 266, 117, 258, 215, - /* 1450 */ 117, 222, 117, 229, 232, 266, 238, 241, 244, 264, - /* 1460 */ 251, 253, 24, 214, 266, 266, 37, 167, 169, 266, - /* 1470 */ 79, 178, 266, 266, 81, 83, 266, 195, 86, 266, - /* 1480 */ 117, 93, 266, 266, 117, 117, 204, 266, 117, 266, - /* 1490 */ 215, 117, 222, 270, 229, 232, 95, 238, 241, 244, - /* 1500 */ 99, 251, 253, 24, 214, 101, 117, 37, 167, 169, - /* 1510 */ 117, 116, 178, 266, 266, 117, 132, 266, 195, 266, - /* 1520 */ 164, 117, 266, 266, 172, 266, 117, 204, 266, 266, - /* 1530 */ 117, 215, 273, 222, 117, 229, 232, 185, 238, 241, - /* 1540 */ 244, 187, 251, 253, 24, 214, 266, 117, 37, 167, - /* 1550 */ 169, 117, 189, 178, 266, 191, 193, 205, 266, 195, - /* 1560 */ 223, 285, 117, 266, 266, 117, 117, 117, 204, 266, - /* 1570 */ 117, 266, 215, 266, 222, 266, 229, 232, 233, 238, - /* 1580 */ 241, 244, 236, 251, 253, 24, 214, 266, 117, 37, - /* 1590 */ 167, 169, 117, 304, 178, 266, 239, 266, 242, 266, - /* 1600 */ 195, 256, 316, 266, 266, 266, 117, 266, 117, 204, - /* 1610 */ 266, 117, 117, 215, 266, 222, 266, 229, 232, 266, - /* 1620 */ 238, 241, 244, 266, 251, 253, 24, 214, 266, 266, - /* 1630 */ 37, 167, 169, 266, 313, 178, 266, 266, 266, 266, - /* 1640 */ 266, 195, 266, 266, 266, 266, 266, 266, 266, 266, - /* 1650 */ 204, 266, 266, 266, 215, 266, 222, 266, 229, 232, - /* 1660 */ 266, 238, 241, 244, 266, 251, 253, 24, 214, 266, - /* 1670 */ 266, 37, 167, 169, 266, 320, 178, 266, 266, 266, - /* 1680 */ 266, 266, 195, 266, 266, 266, 266, 266, 266, 266, - /* 1690 */ 266, 204, 266, 266, 266, 215, 266, 222, 266, 229, - /* 1700 */ 232, 266, 238, 241, 244, 266, 251, 253, 24, 214, - /* 1710 */ 323, 266, 37, 167, 169, 266, 266, 178, 266, 266, - /* 1720 */ 266, 266, 266, 195, 266, 266, 266, 266, 266, 266, - /* 1730 */ 266, 266, 204, 266, 266, 266, 215, 266, 222, 266, - /* 1740 */ 229, 232, 266, 238, 241, 244, 266, 251, 253, 24, - /* 1750 */ 214, 266, 266, 37, 167, 169, 266, 266, 178, 266, - /* 1760 */ 266, 266, 266, 266, 195, 266, 266, 266, 266, 266, - /* 1770 */ 266, 266, 266, 204, 266, 266, 266, 215, 266, 222, - /* 1780 */ 266, 229, 232, 266, 238, 241, 244, 266, 251, 253, - /* 1790 */ 266, 266, 266, 163, 266, 44, 41, 266, 103, 266, - /* 1800 */ 98, 266, 266, 100, 266, 266, 266, 266, 266, 266, - /* 1810 */ 266, 266, 118, 266, 266, 266, 266, 266, 266, 266, - /* 1820 */ 266, 266, 266, 119, 120, 121, 122, 123, 124, 266, - /* 1830 */ 266, 161, 266, 266, 44, 41, 266, 103, 266, 98, - /* 1840 */ 266, 266, 100, 266, 266, 266, 266, 266, 266, 266, - /* 1850 */ 266, 118, 266, 266, 266, 109, 266, 135, 266, 266, - /* 1860 */ 266, 266, 119, 120, 121, 122, 123, 124, 266, 266, - /* 1870 */ 266, 266, 266, 44, 41, 266, 103, 266, 98, 266, - /* 1880 */ 266, 100, 266, 266, 266, 266, 266, 266, 266, 266, - /* 1890 */ 146, 266, 266, 266, 109, 266, 266, 266, 266, 266, - /* 1900 */ 266, 145, 120, 121, 122, 123, 124, 266, 266, 266, - /* 1910 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, - /* 1920 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, - /* 1930 */ 266, 266, 266, 109, 266, 266, 266, 266, 133, 266, - /* 1940 */ 119, 130, 121, 122, 123, 124, 266, 266, 266, 266, - /* 1950 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, - /* 1960 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, - /* 1970 */ 266, 266, 109, 266, 266, 266, 266, 266, 266, 119, - /* 1980 */ 114, 121, 122, 123, 124, 266, 266, 266, 266, 266, - /* 1990 */ 44, 41, 266, 103, 266, 98, 266, 266, 100, 266, - /* 2000 */ 266, 266, 266, 266, 266, 266, 266, 118, 266, 266, - /* 2010 */ 105, 109, 266, 266, 266, 266, 266, 266, 119, 114, - /* 2020 */ 121, 122, 123, 124, 266, 266, 266, 266, 266, 44, - /* 2030 */ 41, 266, 103, 266, 98, 266, 266, 100, 266, 266, - /* 2040 */ 266, 266, 266, 266, 266, 266, 118, 266, 266, 266, - /* 2050 */ 109, 110, 266, 266, 266, 275, 266, 119, 130, 121, - /* 2060 */ 122, 123, 124, 266, 266, 266, 266, 266, 44, 41, - /* 2070 */ 266, 103, 266, 98, 266, 266, 100, 266, 266, 266, - /* 2080 */ 266, 266, 266, 266, 266, 118, 266, 266, 266, 109, - /* 2090 */ 266, 266, 266, 266, 266, 266, 119, 120, 121, 122, - /* 2100 */ 123, 124, 266, 266, 266, 266, 266, 44, 41, 266, - /* 2110 */ 103, 266, 98, 266, 266, 100, 266, 266, 266, 266, - /* 2120 */ 266, 266, 266, 266, 118, 266, 266, 266, 109, 266, - /* 2130 */ 266, 266, 266, 266, 266, 119, 114, 121, 122, 123, - /* 2140 */ 124, 266, 266, 266, 266, 266, 44, 41, 266, 103, - /* 2150 */ 266, 98, 266, 266, 100, 266, 266, 266, 266, 266, - /* 2160 */ 266, 266, 266, 118, 266, 266, 266, 109, 266, 266, - /* 2170 */ 266, 266, 266, 266, 119, 130, 121, 122, 123, 124, - /* 2180 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 2190 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 2200 */ 266, 266, 266, 266, 266, 266, 109, + /* 470 */ 87, 88, 96, 80, 265, 317, 82, 92, 199, 60, + /* 480 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 490 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 500 */ 87, 88, 96, 80, 271, 237, 82, 92, 274, 60, + /* 510 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 520 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 530 */ 87, 88, 96, 80, 183, 240, 82, 92, 36, 60, + /* 540 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 550 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 560 */ 87, 88, 96, 80, 82, 92, 276, 60, 52, 54, + /* 570 */ 66, 62, 64, 72, 74, 76, 78, 68, 70, 48, + /* 580 */ 46, 50, 43, 40, 56, 89, 58, 84, 87, 88, + /* 590 */ 206, 80, 60, 52, 54, 66, 62, 64, 72, 74, + /* 600 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, + /* 610 */ 89, 58, 84, 87, 88, 96, 80, 52, 54, 66, + /* 620 */ 62, 64, 72, 74, 76, 78, 68, 70, 48, 46, + /* 630 */ 50, 43, 40, 56, 89, 58, 84, 87, 88, 96, + /* 640 */ 80, 479, 1, 2, 259, 4, 5, 6, 7, 8, + /* 650 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 660 */ 19, 20, 21, 22, 66, 62, 64, 72, 74, 76, + /* 670 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, + /* 680 */ 58, 84, 87, 88, 96, 80, 247, 259, 4, 5, + /* 690 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 700 */ 16, 17, 18, 19, 20, 21, 22, 302, 259, 4, + /* 710 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 720 */ 15, 16, 17, 18, 19, 20, 21, 22, 218, 259, + /* 730 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 740 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 210, + /* 750 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 760 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 770 */ 27, 259, 4, 5, 6, 7, 8, 9, 10, 11, + /* 780 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 790 */ 22, 225, 259, 4, 5, 6, 7, 8, 9, 10, + /* 800 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 810 */ 21, 22, 311, 259, 4, 5, 6, 7, 8, 9, + /* 820 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 830 */ 20, 21, 22, 268, 259, 4, 5, 6, 7, 8, + /* 840 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 850 */ 19, 20, 21, 22, 262, 259, 4, 5, 6, 7, + /* 860 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 870 */ 18, 19, 20, 21, 22, 200, 259, 4, 5, 6, + /* 880 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 890 */ 17, 18, 19, 20, 21, 22, 283, 259, 4, 5, + /* 900 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 910 */ 16, 17, 18, 19, 20, 21, 22, 318, 259, 4, + /* 920 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 930 */ 15, 16, 17, 18, 19, 20, 21, 22, 33, 259, + /* 940 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 950 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 174, + /* 960 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 970 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 980 */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 990 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 1000 */ 44, 41, 141, 103, 128, 98, 59, 277, 100, 143, + /* 1010 */ 44, 41, 104, 103, 97, 98, 117, 118, 100, 111, + /* 1020 */ 126, 113, 117, 278, 117, 134, 34, 118, 119, 120, + /* 1030 */ 121, 122, 123, 124, 303, 239, 177, 104, 119, 120, + /* 1040 */ 121, 122, 123, 124, 106, 117, 113, 117, 144, 208, + /* 1050 */ 279, 90, 147, 148, 149, 150, 151, 152, 153, 140, + /* 1060 */ 109, 117, 154, 155, 156, 157, 158, 159, 160, 282, + /* 1070 */ 109, 24, 214, 326, 328, 37, 167, 169, 334, 23, + /* 1080 */ 178, 97, 255, 97, 324, 23, 195, 207, 65, 197, + /* 1090 */ 255, 117, 134, 117, 129, 204, 196, 258, 117, 215, + /* 1100 */ 458, 222, 286, 229, 232, 258, 238, 241, 244, 23, + /* 1110 */ 251, 253, 24, 214, 29, 31, 37, 167, 169, 104, + /* 1120 */ 201, 178, 459, 223, 316, 289, 139, 195, 125, 117, + /* 1130 */ 289, 288, 139, 117, 117, 255, 204, 138, 290, 198, + /* 1140 */ 215, 255, 222, 138, 229, 232, 291, 238, 241, 244, + /* 1150 */ 258, 251, 253, 24, 214, 323, 258, 37, 167, 169, + /* 1160 */ 45, 269, 178, 242, 168, 255, 327, 312, 195, 300, + /* 1170 */ 117, 85, 61, 117, 142, 329, 255, 204, 305, 117, + /* 1180 */ 258, 215, 117, 222, 308, 229, 232, 219, 238, 241, + /* 1190 */ 244, 258, 251, 253, 24, 214, 172, 170, 37, 167, + /* 1200 */ 169, 330, 320, 178, 221, 165, 117, 307, 115, 195, + /* 1210 */ 333, 53, 230, 216, 182, 117, 228, 255, 204, 217, + /* 1220 */ 266, 117, 215, 255, 222, 231, 229, 232, 32, 238, + /* 1230 */ 241, 244, 258, 251, 253, 24, 214, 49, 258, 37, + /* 1240 */ 167, 169, 132, 255, 178, 205, 314, 117, 331, 266, + /* 1250 */ 195, 73, 117, 266, 266, 117, 67, 266, 258, 204, + /* 1260 */ 212, 117, 266, 215, 266, 222, 117, 229, 232, 226, + /* 1270 */ 238, 241, 244, 272, 251, 253, 24, 214, 42, 266, + /* 1280 */ 37, 167, 169, 266, 176, 178, 266, 81, 117, 38, + /* 1290 */ 266, 195, 266, 266, 266, 309, 266, 117, 266, 117, + /* 1300 */ 204, 266, 266, 266, 215, 117, 222, 266, 229, 232, + /* 1310 */ 319, 238, 241, 244, 211, 251, 253, 24, 214, 35, + /* 1320 */ 266, 37, 167, 169, 266, 255, 178, 266, 266, 255, + /* 1330 */ 266, 266, 195, 266, 266, 266, 266, 266, 187, 266, + /* 1340 */ 258, 204, 266, 266, 258, 215, 322, 222, 117, 229, + /* 1350 */ 232, 248, 238, 241, 244, 284, 251, 253, 24, 214, + /* 1360 */ 266, 266, 37, 167, 169, 266, 255, 178, 101, 83, + /* 1370 */ 255, 266, 266, 195, 193, 266, 266, 266, 117, 117, + /* 1380 */ 266, 258, 204, 266, 117, 258, 215, 220, 222, 266, + /* 1390 */ 229, 232, 263, 238, 241, 244, 325, 251, 253, 24, + /* 1400 */ 214, 266, 255, 37, 167, 169, 266, 255, 178, 266, + /* 1410 */ 266, 255, 266, 175, 195, 266, 266, 258, 266, 266, + /* 1420 */ 266, 266, 258, 204, 266, 266, 258, 215, 273, 222, + /* 1430 */ 266, 229, 232, 28, 238, 241, 244, 191, 251, 253, + /* 1440 */ 24, 214, 266, 266, 37, 167, 169, 117, 255, 178, + /* 1450 */ 266, 266, 255, 266, 266, 195, 75, 266, 266, 266, + /* 1460 */ 266, 266, 266, 258, 204, 266, 117, 258, 215, 255, + /* 1470 */ 222, 270, 229, 232, 266, 238, 241, 244, 189, 251, + /* 1480 */ 253, 24, 214, 266, 258, 37, 167, 169, 117, 255, + /* 1490 */ 178, 266, 166, 185, 266, 266, 195, 266, 266, 266, + /* 1500 */ 47, 266, 117, 117, 258, 204, 266, 266, 266, 215, + /* 1510 */ 117, 222, 227, 229, 232, 164, 238, 241, 244, 266, + /* 1520 */ 251, 253, 24, 214, 266, 117, 37, 167, 169, 266, + /* 1530 */ 304, 178, 266, 266, 69, 77, 266, 195, 266, 266, + /* 1540 */ 266, 86, 266, 116, 117, 117, 204, 266, 266, 266, + /* 1550 */ 215, 117, 222, 117, 229, 232, 95, 238, 241, 244, + /* 1560 */ 71, 251, 253, 24, 214, 266, 117, 37, 167, 169, + /* 1570 */ 117, 63, 178, 266, 55, 93, 233, 266, 195, 79, + /* 1580 */ 285, 117, 266, 266, 117, 117, 117, 204, 266, 117, + /* 1590 */ 266, 215, 266, 222, 266, 229, 232, 57, 238, 241, + /* 1600 */ 244, 99, 251, 253, 24, 214, 266, 117, 37, 167, + /* 1610 */ 169, 117, 256, 178, 266, 266, 266, 236, 266, 195, + /* 1620 */ 51, 202, 117, 162, 266, 25, 266, 117, 204, 266, + /* 1630 */ 117, 266, 215, 117, 222, 117, 229, 232, 266, 238, + /* 1640 */ 241, 244, 266, 251, 253, 24, 214, 266, 266, 37, + /* 1650 */ 167, 169, 266, 266, 178, 266, 266, 266, 266, 266, + /* 1660 */ 195, 266, 266, 266, 266, 266, 266, 266, 266, 204, + /* 1670 */ 266, 266, 266, 215, 266, 222, 266, 229, 232, 266, + /* 1680 */ 238, 241, 244, 264, 251, 253, 24, 214, 266, 266, + /* 1690 */ 37, 167, 169, 266, 266, 178, 266, 266, 266, 266, + /* 1700 */ 266, 195, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1710 */ 204, 266, 266, 266, 215, 266, 222, 266, 229, 232, + /* 1720 */ 266, 238, 241, 244, 249, 251, 253, 24, 214, 266, + /* 1730 */ 266, 37, 167, 169, 266, 313, 178, 266, 266, 266, + /* 1740 */ 266, 266, 195, 266, 266, 266, 266, 266, 266, 266, + /* 1750 */ 266, 204, 266, 266, 266, 215, 266, 222, 266, 229, + /* 1760 */ 232, 266, 238, 241, 244, 266, 251, 253, 24, 214, + /* 1770 */ 266, 266, 37, 167, 169, 266, 266, 178, 266, 266, + /* 1780 */ 266, 266, 266, 195, 266, 44, 41, 266, 103, 266, + /* 1790 */ 98, 266, 204, 100, 266, 266, 215, 266, 222, 266, + /* 1800 */ 229, 232, 118, 238, 241, 244, 266, 251, 253, 266, + /* 1810 */ 266, 266, 266, 119, 114, 121, 122, 123, 124, 266, + /* 1820 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 1830 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, + /* 1840 */ 266, 266, 266, 266, 266, 109, 110, 266, 133, 266, + /* 1850 */ 119, 130, 121, 122, 123, 124, 135, 266, 266, 266, + /* 1860 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1870 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 1880 */ 100, 266, 109, 266, 266, 266, 266, 266, 266, 146, + /* 1890 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1900 */ 145, 120, 121, 122, 123, 124, 266, 266, 161, 266, + /* 1910 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, + /* 1920 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, + /* 1930 */ 44, 41, 109, 103, 266, 98, 266, 266, 100, 119, + /* 1940 */ 120, 121, 122, 123, 124, 266, 266, 118, 266, 266, + /* 1950 */ 266, 266, 266, 266, 266, 266, 266, 266, 119, 114, + /* 1960 */ 121, 122, 123, 124, 266, 44, 41, 266, 103, 266, + /* 1970 */ 98, 109, 266, 100, 266, 266, 266, 266, 266, 266, + /* 1980 */ 266, 266, 118, 266, 266, 266, 266, 266, 266, 105, + /* 1990 */ 109, 275, 266, 119, 130, 121, 122, 123, 124, 266, + /* 2000 */ 266, 266, 163, 266, 44, 41, 266, 103, 266, 98, + /* 2010 */ 266, 266, 100, 266, 266, 266, 266, 266, 266, 266, + /* 2020 */ 266, 118, 266, 266, 266, 109, 266, 266, 266, 266, + /* 2030 */ 266, 266, 119, 120, 121, 122, 123, 124, 266, 266, + /* 2040 */ 266, 266, 266, 44, 41, 266, 103, 266, 98, 266, + /* 2050 */ 266, 100, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2060 */ 118, 266, 266, 266, 109, 266, 266, 266, 266, 266, + /* 2070 */ 266, 119, 114, 121, 122, 123, 124, 266, 266, 266, + /* 2080 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 2090 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, + /* 2100 */ 266, 266, 266, 109, 266, 266, 266, 266, 266, 266, + /* 2110 */ 119, 120, 121, 122, 123, 124, 266, 266, 266, 266, + /* 2120 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, + /* 2130 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, + /* 2140 */ 266, 266, 109, 266, 266, 266, 266, 266, 266, 119, + /* 2150 */ 130, 121, 122, 123, 124, 266, 266, 266, 266, 266, + /* 2160 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2170 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2180 */ 266, 109, }; -static YYCODETYPE yy_lookahead[] = { - /* 0 */ 3, 4, 1, 6, 7, 8, 9, 10, 11, 12, +static VVCODETYPE vv_lookahead[] = { + /* 0 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, /* 10 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 20 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 30 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 30 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 40 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 57, 32, - /* 60 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 70 */ 28, 29, 30, 72, 2, 3, 49, 108, 109, 0, - /* 80 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, - /* 90 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 100 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, - /* 110 */ 3, 4, 82, 6, 7, 8, 9, 10, 11, 12, - /* 120 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 130 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 140 */ 3, 4, 65, 6, 7, 8, 9, 10, 11, 12, + /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 60 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 70 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 80 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 90 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 100 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 110 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 120 */ 108, 109, 65, 18, 19, 20, 21, 22, 23, 24, + /* 130 */ 25, 26, 27, 28, 29, 30, 49, 47, 53, 54, + /* 140 */ 3, 4, 82, 6, 7, 8, 9, 10, 11, 12, /* 150 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 160 */ 23, 24, 25, 26, 27, 28, 29, 30, 2, 32, + /* 160 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, /* 170 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 180 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 190 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, - /* 200 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 200 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 210 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 220 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 4, - /* 230 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 240 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 250 */ 25, 26, 27, 28, 29, 30, 86, 87, 88, 89, - /* 260 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - /* 270 */ 100, 101, 102, 103, 104, 105, 106, 80, 110, 111, - /* 280 */ 80, 3, 4, 2, 6, 7, 8, 9, 10, 11, - /* 290 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 300 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, - /* 310 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 49, - /* 320 */ 50, 51, 52, 53, 54, 47, 53, 54, 47, 3, - /* 330 */ 4, 3, 6, 7, 8, 9, 10, 11, 12, 13, - /* 340 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 350 */ 24, 25, 26, 27, 28, 29, 30, 5, 32, 3, - /* 360 */ 4, 115, 6, 7, 8, 9, 10, 11, 12, 13, - /* 370 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 380 */ 24, 25, 26, 27, 28, 29, 30, 5, 32, 3, - /* 390 */ 4, 80, 6, 7, 8, 9, 10, 11, 12, 13, - /* 400 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 410 */ 24, 25, 26, 27, 28, 29, 30, 80, 32, 3, - /* 420 */ 4, 80, 6, 7, 8, 9, 10, 11, 12, 13, - /* 430 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 440 */ 24, 25, 26, 27, 28, 29, 30, 4, 115, 6, + /* 220 */ 23, 24, 25, 26, 27, 28, 29, 30, 4, 115, + /* 230 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 240 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 250 */ 26, 27, 28, 29, 30, 58, 2, 110, 111, 3, + /* 260 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13, + /* 270 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 280 */ 24, 25, 26, 27, 28, 29, 30, 3, 4, 32, + /* 290 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 300 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 310 */ 26, 27, 28, 29, 30, 5, 32, 21, 22, 23, + /* 320 */ 24, 25, 26, 27, 28, 29, 30, 24, 25, 26, + /* 330 */ 27, 28, 29, 30, 80, 80, 80, 2, 3, 32, + /* 340 */ 3, 4, 80, 6, 7, 8, 9, 10, 11, 12, + /* 350 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 360 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 370 */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 380 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 390 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 4, + /* 400 */ 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 410 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 420 */ 25, 26, 27, 28, 29, 30, 49, 50, 51, 52, + /* 430 */ 53, 54, 41, 42, 43, 44, 45, 26, 27, 28, + /* 440 */ 29, 30, 47, 80, 32, 47, 3, 4, 32, 6, /* 450 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, /* 460 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 470 */ 27, 28, 29, 30, 58, 5, 80, 5, 3, 4, - /* 480 */ 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 490 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 500 */ 25, 26, 27, 28, 29, 30, 5, 32, 3, 4, - /* 510 */ 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 520 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 530 */ 25, 26, 27, 28, 29, 30, 38, 32, 3, 4, - /* 540 */ 38, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 550 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 560 */ 25, 26, 27, 28, 29, 30, 3, 4, 109, 6, - /* 570 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 580 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 590 */ 27, 28, 29, 30, 6, 7, 8, 9, 10, 11, - /* 600 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 610 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 7, - /* 620 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 630 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 640 */ 28, 29, 30, 84, 85, 86, 87, 88, 89, 90, - /* 650 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 660 */ 101, 102, 103, 104, 105, 106, 9, 10, 11, 12, - /* 670 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 680 */ 23, 24, 25, 26, 27, 28, 29, 30, 86, 87, - /* 690 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 700 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, - /* 710 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 730 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 740 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 750 */ 106, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 760 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 770 */ 105, 106, 86, 87, 88, 89, 90, 91, 92, 93, - /* 780 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 790 */ 104, 105, 106, 86, 87, 88, 89, 90, 91, 92, - /* 800 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 810 */ 103, 104, 105, 106, 86, 87, 88, 89, 90, 91, - /* 820 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - /* 830 */ 102, 103, 104, 105, 106, 86, 87, 88, 89, 90, - /* 840 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 850 */ 101, 102, 103, 104, 105, 106, 86, 87, 88, 89, - /* 860 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - /* 870 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, - /* 880 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 890 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, - /* 900 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 910 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, - /* 920 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 930 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 940 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 950 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 960 */ 106, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 970 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 980 */ 106, 21, 22, 38, 24, 107, 26, 107, 29, 29, - /* 990 */ 38, 21, 22, 115, 24, 117, 26, 117, 38, 29, - /* 1000 */ 24, 25, 26, 27, 28, 29, 30, 1, 38, 49, - /* 1010 */ 50, 51, 52, 53, 54, 32, 32, 2, 32, 49, - /* 1020 */ 50, 51, 52, 53, 54, 26, 27, 28, 29, 30, - /* 1030 */ 1, 50, 107, 73, 74, 75, 76, 77, 78, 79, - /* 1040 */ 107, 81, 117, 73, 74, 75, 76, 77, 78, 79, - /* 1050 */ 117, 81, 31, 32, 33, 34, 35, 36, 37, 0, - /* 1060 */ 1, 40, 47, 57, 107, 107, 38, 46, 41, 42, - /* 1070 */ 43, 44, 45, 116, 117, 117, 55, 49, 72, 2, - /* 1080 */ 59, 38, 61, 32, 63, 64, 57, 66, 67, 68, - /* 1090 */ 47, 70, 71, 31, 32, 33, 34, 35, 36, 37, - /* 1100 */ 107, 72, 40, 107, 32, 32, 113, 1, 46, 107, - /* 1110 */ 117, 118, 32, 117, 118, 113, 57, 55, 32, 117, - /* 1120 */ 118, 59, 1, 61, 47, 63, 64, 32, 66, 67, - /* 1130 */ 68, 72, 70, 71, 31, 32, 33, 107, 35, 36, - /* 1140 */ 37, 107, 1, 40, 114, 38, 116, 117, 114, 46, - /* 1150 */ 116, 117, 56, 1, 32, 107, 49, 38, 55, 32, - /* 1160 */ 32, 32, 59, 32, 61, 117, 63, 64, 32, 66, - /* 1170 */ 67, 68, 1, 70, 71, 31, 32, 32, 57, 35, - /* 1180 */ 36, 37, 107, 39, 40, 107, 107, 80, 32, 1, - /* 1190 */ 46, 32, 117, 72, 107, 117, 117, 32, 57, 55, - /* 1200 */ 32, 32, 111, 59, 117, 61, 112, 63, 64, 57, - /* 1210 */ 66, 67, 68, 72, 70, 71, 31, 32, 41, 107, - /* 1220 */ 35, 36, 37, 32, 72, 40, 3, 107, 57, 117, - /* 1230 */ 1, 46, 107, 48, 38, 1, 32, 117, 32, 32, - /* 1240 */ 55, 32, 117, 72, 59, 57, 61, 32, 63, 64, - /* 1250 */ 1, 66, 67, 68, 1, 70, 71, 31, 32, 32, - /* 1260 */ 72, 35, 36, 37, 107, 1, 40, 119, 33, 119, - /* 1270 */ 107, 119, 46, 107, 117, 119, 119, 119, 119, 119, - /* 1280 */ 117, 55, 56, 117, 119, 59, 57, 61, 119, 63, - /* 1290 */ 64, 57, 66, 67, 68, 1, 70, 71, 31, 32, - /* 1300 */ 119, 72, 35, 36, 37, 119, 72, 40, 119, 119, - /* 1310 */ 57, 119, 1, 46, 119, 119, 119, 119, 119, 107, - /* 1320 */ 119, 57, 55, 119, 119, 72, 59, 60, 61, 117, - /* 1330 */ 63, 64, 1, 66, 67, 68, 72, 70, 71, 31, - /* 1340 */ 32, 119, 119, 35, 36, 37, 119, 119, 40, 119, - /* 1350 */ 107, 57, 107, 1, 46, 119, 119, 119, 119, 119, - /* 1360 */ 117, 119, 117, 55, 119, 119, 72, 59, 57, 61, - /* 1370 */ 62, 63, 64, 1, 66, 67, 68, 1, 70, 71, - /* 1380 */ 31, 32, 107, 72, 35, 36, 37, 119, 57, 40, - /* 1390 */ 107, 107, 117, 119, 119, 46, 119, 107, 119, 119, - /* 1400 */ 117, 117, 119, 72, 55, 119, 119, 117, 59, 57, - /* 1410 */ 61, 119, 63, 64, 119, 66, 67, 68, 69, 70, - /* 1420 */ 71, 31, 32, 119, 72, 35, 36, 37, 119, 57, - /* 1430 */ 40, 119, 119, 57, 119, 119, 46, 107, 119, 119, - /* 1440 */ 107, 119, 107, 119, 72, 55, 119, 117, 72, 59, - /* 1450 */ 117, 61, 117, 63, 64, 119, 66, 67, 68, 69, - /* 1460 */ 70, 71, 31, 32, 119, 119, 35, 36, 37, 119, - /* 1470 */ 107, 40, 119, 119, 107, 107, 119, 46, 107, 119, - /* 1480 */ 117, 107, 119, 119, 117, 117, 55, 119, 117, 119, - /* 1490 */ 59, 117, 61, 62, 63, 64, 107, 66, 67, 68, - /* 1500 */ 107, 70, 71, 31, 32, 107, 117, 35, 36, 37, - /* 1510 */ 117, 107, 40, 119, 119, 117, 107, 119, 46, 119, - /* 1520 */ 107, 117, 119, 119, 107, 119, 117, 55, 119, 119, - /* 1530 */ 117, 59, 60, 61, 117, 63, 64, 107, 66, 67, - /* 1540 */ 68, 107, 70, 71, 31, 32, 119, 117, 35, 36, - /* 1550 */ 37, 117, 107, 40, 119, 107, 107, 107, 119, 46, - /* 1560 */ 107, 48, 117, 119, 119, 117, 117, 117, 55, 119, - /* 1570 */ 117, 119, 59, 119, 61, 119, 63, 64, 107, 66, - /* 1580 */ 67, 68, 107, 70, 71, 31, 32, 119, 117, 35, - /* 1590 */ 36, 37, 117, 39, 40, 119, 107, 119, 107, 119, - /* 1600 */ 46, 107, 107, 119, 119, 119, 117, 119, 117, 55, - /* 1610 */ 119, 117, 117, 59, 119, 61, 119, 63, 64, 119, - /* 1620 */ 66, 67, 68, 119, 70, 71, 31, 32, 119, 119, - /* 1630 */ 35, 36, 37, 119, 39, 40, 119, 119, 119, 119, - /* 1640 */ 119, 46, 119, 119, 119, 119, 119, 119, 119, 119, - /* 1650 */ 55, 119, 119, 119, 59, 119, 61, 119, 63, 64, - /* 1660 */ 119, 66, 67, 68, 119, 70, 71, 31, 32, 119, - /* 1670 */ 119, 35, 36, 37, 119, 39, 40, 119, 119, 119, - /* 1680 */ 119, 119, 46, 119, 119, 119, 119, 119, 119, 119, - /* 1690 */ 119, 55, 119, 119, 119, 59, 119, 61, 119, 63, - /* 1700 */ 64, 119, 66, 67, 68, 119, 70, 71, 31, 32, - /* 1710 */ 33, 119, 35, 36, 37, 119, 119, 40, 119, 119, - /* 1720 */ 119, 119, 119, 46, 119, 119, 119, 119, 119, 119, - /* 1730 */ 119, 119, 55, 119, 119, 119, 59, 119, 61, 119, - /* 1740 */ 63, 64, 119, 66, 67, 68, 119, 70, 71, 31, - /* 1750 */ 32, 119, 119, 35, 36, 37, 119, 119, 40, 119, - /* 1760 */ 119, 119, 119, 119, 46, 119, 119, 119, 119, 119, - /* 1770 */ 119, 119, 119, 55, 119, 119, 119, 59, 119, 61, - /* 1780 */ 119, 63, 64, 119, 66, 67, 68, 119, 70, 71, - /* 1790 */ 119, 119, 119, 19, 119, 21, 22, 119, 24, 119, - /* 1800 */ 26, 119, 119, 29, 119, 119, 119, 119, 119, 119, - /* 1810 */ 119, 119, 38, 119, 119, 119, 119, 119, 119, 119, - /* 1820 */ 119, 119, 119, 49, 50, 51, 52, 53, 54, 119, - /* 1830 */ 119, 18, 119, 119, 21, 22, 119, 24, 119, 26, - /* 1840 */ 119, 119, 29, 119, 119, 119, 119, 119, 119, 119, - /* 1850 */ 119, 38, 119, 119, 119, 81, 119, 5, 119, 119, - /* 1860 */ 119, 119, 49, 50, 51, 52, 53, 54, 119, 119, - /* 1870 */ 119, 119, 119, 21, 22, 119, 24, 119, 26, 119, - /* 1880 */ 119, 29, 119, 119, 119, 119, 119, 119, 119, 119, - /* 1890 */ 38, 119, 119, 119, 81, 119, 119, 119, 119, 119, - /* 1900 */ 119, 49, 50, 51, 52, 53, 54, 119, 119, 119, - /* 1910 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, - /* 1920 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, - /* 1930 */ 119, 119, 119, 81, 119, 119, 119, 119, 47, 119, - /* 1940 */ 49, 50, 51, 52, 53, 54, 119, 119, 119, 119, - /* 1950 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, - /* 1960 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, - /* 1970 */ 119, 119, 81, 119, 119, 119, 119, 119, 119, 49, - /* 1980 */ 50, 51, 52, 53, 54, 119, 119, 119, 119, 119, - /* 1990 */ 21, 22, 119, 24, 119, 26, 119, 119, 29, 119, - /* 2000 */ 119, 119, 119, 119, 119, 119, 119, 38, 119, 119, - /* 2010 */ 80, 81, 119, 119, 119, 119, 119, 119, 49, 50, - /* 2020 */ 51, 52, 53, 54, 119, 119, 119, 119, 119, 21, - /* 2030 */ 22, 119, 24, 119, 26, 119, 119, 29, 119, 119, - /* 2040 */ 119, 119, 119, 119, 119, 119, 38, 119, 119, 119, - /* 2050 */ 81, 82, 119, 119, 119, 47, 119, 49, 50, 51, - /* 2060 */ 52, 53, 54, 119, 119, 119, 119, 119, 21, 22, - /* 2070 */ 119, 24, 119, 26, 119, 119, 29, 119, 119, 119, - /* 2080 */ 119, 119, 119, 119, 119, 38, 119, 119, 119, 81, - /* 2090 */ 119, 119, 119, 119, 119, 119, 49, 50, 51, 52, - /* 2100 */ 53, 54, 119, 119, 119, 119, 119, 21, 22, 119, - /* 2110 */ 24, 119, 26, 119, 119, 29, 119, 119, 119, 119, - /* 2120 */ 119, 119, 119, 119, 38, 119, 119, 119, 81, 119, - /* 2130 */ 119, 119, 119, 119, 119, 49, 50, 51, 52, 53, - /* 2140 */ 54, 119, 119, 119, 119, 119, 21, 22, 119, 24, - /* 2150 */ 119, 26, 119, 119, 29, 119, 119, 119, 119, 119, - /* 2160 */ 119, 119, 119, 38, 119, 119, 119, 81, 119, 119, - /* 2170 */ 119, 119, 119, 119, 49, 50, 51, 52, 53, 54, - /* 2180 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - /* 2190 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - /* 2200 */ 119, 119, 119, 119, 119, 119, 81, + /* 470 */ 27, 28, 29, 30, 32, 32, 3, 4, 32, 6, + /* 480 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 490 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 500 */ 27, 28, 29, 30, 32, 32, 3, 4, 32, 6, + /* 510 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 520 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 530 */ 27, 28, 29, 30, 38, 32, 3, 4, 32, 6, + /* 540 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 550 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 560 */ 27, 28, 29, 30, 3, 4, 32, 6, 7, 8, + /* 570 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 580 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + /* 590 */ 29, 30, 6, 7, 8, 9, 10, 11, 12, 13, + /* 600 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 610 */ 24, 25, 26, 27, 28, 29, 30, 7, 8, 9, + /* 620 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 630 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + /* 640 */ 30, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 650 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 660 */ 103, 104, 105, 106, 9, 10, 11, 12, 13, 14, + /* 670 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 680 */ 25, 26, 27, 28, 29, 30, 86, 87, 88, 89, + /* 690 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 700 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, + /* 710 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + /* 720 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, + /* 730 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + /* 740 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, + /* 750 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 760 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 770 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 780 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 790 */ 106, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 800 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 810 */ 105, 106, 86, 87, 88, 89, 90, 91, 92, 93, + /* 820 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + /* 830 */ 104, 105, 106, 86, 87, 88, 89, 90, 91, 92, + /* 840 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 850 */ 103, 104, 105, 106, 86, 87, 88, 89, 90, 91, + /* 860 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + /* 870 */ 102, 103, 104, 105, 106, 86, 87, 88, 89, 90, + /* 880 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 890 */ 101, 102, 103, 104, 105, 106, 86, 87, 88, 89, + /* 900 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 910 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, + /* 920 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + /* 930 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, + /* 940 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + /* 950 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, + /* 960 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 970 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 980 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 990 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 1000 */ 21, 22, 5, 24, 2, 26, 107, 1, 29, 115, + /* 1010 */ 21, 22, 107, 24, 107, 26, 117, 38, 29, 114, + /* 1020 */ 113, 116, 117, 56, 117, 118, 1, 38, 49, 50, + /* 1030 */ 51, 52, 53, 54, 1, 107, 32, 107, 49, 50, + /* 1040 */ 51, 52, 53, 54, 114, 117, 116, 117, 80, 47, + /* 1050 */ 32, 107, 73, 74, 75, 76, 77, 78, 79, 115, + /* 1060 */ 81, 117, 73, 74, 75, 76, 77, 78, 79, 32, + /* 1070 */ 81, 31, 32, 33, 34, 35, 36, 37, 0, 1, + /* 1080 */ 40, 107, 57, 107, 32, 1, 46, 113, 107, 29, + /* 1090 */ 57, 117, 118, 117, 118, 55, 38, 72, 117, 59, + /* 1100 */ 5, 61, 32, 63, 64, 72, 66, 67, 68, 1, + /* 1110 */ 70, 71, 31, 32, 33, 34, 35, 36, 37, 107, + /* 1120 */ 1, 40, 5, 107, 107, 38, 38, 46, 116, 117, + /* 1130 */ 38, 111, 38, 117, 117, 57, 55, 49, 41, 47, + /* 1140 */ 59, 57, 61, 49, 63, 64, 112, 66, 67, 68, + /* 1150 */ 72, 70, 71, 31, 32, 33, 72, 35, 36, 37, + /* 1160 */ 107, 1, 40, 107, 32, 57, 32, 1, 46, 107, + /* 1170 */ 117, 3, 107, 117, 80, 32, 57, 55, 32, 117, + /* 1180 */ 72, 59, 117, 61, 3, 63, 64, 1, 66, 67, + /* 1190 */ 68, 72, 70, 71, 31, 32, 107, 38, 35, 36, + /* 1200 */ 37, 1, 39, 40, 32, 107, 117, 38, 5, 46, + /* 1210 */ 0, 107, 50, 38, 109, 117, 32, 57, 55, 32, + /* 1220 */ 119, 117, 59, 57, 61, 32, 63, 64, 32, 66, + /* 1230 */ 67, 68, 72, 70, 71, 31, 32, 107, 72, 35, + /* 1240 */ 36, 37, 107, 57, 40, 107, 32, 117, 33, 119, + /* 1250 */ 46, 107, 117, 119, 119, 117, 107, 119, 72, 55, + /* 1260 */ 56, 117, 119, 59, 119, 61, 117, 63, 64, 1, + /* 1270 */ 66, 67, 68, 1, 70, 71, 31, 32, 107, 119, + /* 1280 */ 35, 36, 37, 119, 39, 40, 119, 107, 117, 107, + /* 1290 */ 119, 46, 119, 119, 119, 107, 119, 117, 119, 117, + /* 1300 */ 55, 119, 119, 119, 59, 117, 61, 119, 63, 64, + /* 1310 */ 1, 66, 67, 68, 1, 70, 71, 31, 32, 33, + /* 1320 */ 119, 35, 36, 37, 119, 57, 40, 119, 119, 57, + /* 1330 */ 119, 119, 46, 119, 119, 119, 119, 119, 107, 119, + /* 1340 */ 72, 55, 119, 119, 72, 59, 1, 61, 117, 63, + /* 1350 */ 64, 1, 66, 67, 68, 1, 70, 71, 31, 32, + /* 1360 */ 119, 119, 35, 36, 37, 119, 57, 40, 107, 107, + /* 1370 */ 57, 119, 119, 46, 107, 119, 119, 119, 117, 117, + /* 1380 */ 119, 72, 55, 119, 117, 72, 59, 60, 61, 119, + /* 1390 */ 63, 64, 1, 66, 67, 68, 1, 70, 71, 31, + /* 1400 */ 32, 119, 57, 35, 36, 37, 119, 57, 40, 119, + /* 1410 */ 119, 57, 119, 1, 46, 119, 119, 72, 119, 119, + /* 1420 */ 119, 119, 72, 55, 119, 119, 72, 59, 60, 61, + /* 1430 */ 119, 63, 64, 1, 66, 67, 68, 107, 70, 71, + /* 1440 */ 31, 32, 119, 119, 35, 36, 37, 117, 57, 40, + /* 1450 */ 119, 119, 57, 119, 119, 46, 107, 119, 119, 119, + /* 1460 */ 119, 119, 119, 72, 55, 119, 117, 72, 59, 57, + /* 1470 */ 61, 62, 63, 64, 119, 66, 67, 68, 107, 70, + /* 1480 */ 71, 31, 32, 119, 72, 35, 36, 37, 117, 57, + /* 1490 */ 40, 119, 107, 107, 119, 119, 46, 119, 119, 119, + /* 1500 */ 107, 119, 117, 117, 72, 55, 119, 119, 119, 59, + /* 1510 */ 117, 61, 62, 63, 64, 107, 66, 67, 68, 119, + /* 1520 */ 70, 71, 31, 32, 119, 117, 35, 36, 37, 119, + /* 1530 */ 39, 40, 119, 119, 107, 107, 119, 46, 119, 119, + /* 1540 */ 119, 107, 119, 107, 117, 117, 55, 119, 119, 119, + /* 1550 */ 59, 117, 61, 117, 63, 64, 107, 66, 67, 68, + /* 1560 */ 107, 70, 71, 31, 32, 119, 117, 35, 36, 37, + /* 1570 */ 117, 107, 40, 119, 107, 107, 107, 119, 46, 107, + /* 1580 */ 48, 117, 119, 119, 117, 117, 117, 55, 119, 117, + /* 1590 */ 119, 59, 119, 61, 119, 63, 64, 107, 66, 67, + /* 1600 */ 68, 107, 70, 71, 31, 32, 119, 117, 35, 36, + /* 1610 */ 37, 117, 107, 40, 119, 119, 119, 107, 119, 46, + /* 1620 */ 107, 48, 117, 107, 119, 107, 119, 117, 55, 119, + /* 1630 */ 117, 119, 59, 117, 61, 117, 63, 64, 119, 66, + /* 1640 */ 67, 68, 119, 70, 71, 31, 32, 119, 119, 35, + /* 1650 */ 36, 37, 119, 119, 40, 119, 119, 119, 119, 119, + /* 1660 */ 46, 119, 119, 119, 119, 119, 119, 119, 119, 55, + /* 1670 */ 119, 119, 119, 59, 119, 61, 119, 63, 64, 119, + /* 1680 */ 66, 67, 68, 69, 70, 71, 31, 32, 119, 119, + /* 1690 */ 35, 36, 37, 119, 119, 40, 119, 119, 119, 119, + /* 1700 */ 119, 46, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1710 */ 55, 119, 119, 119, 59, 119, 61, 119, 63, 64, + /* 1720 */ 119, 66, 67, 68, 69, 70, 71, 31, 32, 119, + /* 1730 */ 119, 35, 36, 37, 119, 39, 40, 119, 119, 119, + /* 1740 */ 119, 119, 46, 119, 119, 119, 119, 119, 119, 119, + /* 1750 */ 119, 55, 119, 119, 119, 59, 119, 61, 119, 63, + /* 1760 */ 64, 119, 66, 67, 68, 119, 70, 71, 31, 32, + /* 1770 */ 119, 119, 35, 36, 37, 119, 119, 40, 119, 119, + /* 1780 */ 119, 119, 119, 46, 119, 21, 22, 119, 24, 119, + /* 1790 */ 26, 119, 55, 29, 119, 119, 59, 119, 61, 119, + /* 1800 */ 63, 64, 38, 66, 67, 68, 119, 70, 71, 119, + /* 1810 */ 119, 119, 119, 49, 50, 51, 52, 53, 54, 119, + /* 1820 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 1830 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, + /* 1840 */ 119, 119, 119, 119, 119, 81, 82, 119, 47, 119, + /* 1850 */ 49, 50, 51, 52, 53, 54, 5, 119, 119, 119, + /* 1860 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1870 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 1880 */ 29, 119, 81, 119, 119, 119, 119, 119, 119, 38, + /* 1890 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1900 */ 49, 50, 51, 52, 53, 54, 119, 119, 18, 119, + /* 1910 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, + /* 1920 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, + /* 1930 */ 21, 22, 81, 24, 119, 26, 119, 119, 29, 49, + /* 1940 */ 50, 51, 52, 53, 54, 119, 119, 38, 119, 119, + /* 1950 */ 119, 119, 119, 119, 119, 119, 119, 119, 49, 50, + /* 1960 */ 51, 52, 53, 54, 119, 21, 22, 119, 24, 119, + /* 1970 */ 26, 81, 119, 29, 119, 119, 119, 119, 119, 119, + /* 1980 */ 119, 119, 38, 119, 119, 119, 119, 119, 119, 80, + /* 1990 */ 81, 47, 119, 49, 50, 51, 52, 53, 54, 119, + /* 2000 */ 119, 119, 19, 119, 21, 22, 119, 24, 119, 26, + /* 2010 */ 119, 119, 29, 119, 119, 119, 119, 119, 119, 119, + /* 2020 */ 119, 38, 119, 119, 119, 81, 119, 119, 119, 119, + /* 2030 */ 119, 119, 49, 50, 51, 52, 53, 54, 119, 119, + /* 2040 */ 119, 119, 119, 21, 22, 119, 24, 119, 26, 119, + /* 2050 */ 119, 29, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2060 */ 38, 119, 119, 119, 81, 119, 119, 119, 119, 119, + /* 2070 */ 119, 49, 50, 51, 52, 53, 54, 119, 119, 119, + /* 2080 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 2090 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, + /* 2100 */ 119, 119, 119, 81, 119, 119, 119, 119, 119, 119, + /* 2110 */ 49, 50, 51, 52, 53, 54, 119, 119, 119, 119, + /* 2120 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, + /* 2130 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, + /* 2140 */ 119, 119, 81, 119, 119, 119, 119, 119, 119, 49, + /* 2150 */ 50, 51, 52, 53, 54, 119, 119, 119, 119, 119, + /* 2160 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2170 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2180 */ 119, 81, }; -#define YY_SHIFT_USE_DFLT (-4) -static short yy_shift_ofst[] = { - /* 0 */ 1, 79, 1059, -4, -4, -4, -4, -4, -4, -4, +#define VV_SHIFT_USE_DFLT (-4) +static short vv_shift_ofst[] = { + /* 0 */ 1084, 1210, 1078, -4, -4, -4, -4, -4, -4, -4, /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 20 */ -4, -4, -4, 1718, 2047, 137, 1006, 1029, 1021, 50, - /* 30 */ -4, 76, 1121, 1141, 1103, 140, -4, 2047, 167, -4, - /* 40 */ 2047, 2047, 976, 2047, 2047, 976, 1774, 288, 1813, 288, - /* 50 */ 2047, 288, 2047, 657, 2047, 657, 2047, 976, 2047, 999, - /* 60 */ 2047, 612, 2047, 42, 960, 42, 970, 42, 2047, 42, - /* 70 */ 2047, 42, 2047, 42, 2047, 42, 2047, 42, 2047, 42, - /* 80 */ 2047, -4, 2047, 443, 328, 2047, 999, -4, -4, 1852, - /* 90 */ 197, -4, 2047, 225, 2047, 588, 1891, 535, 2047, 999, - /* 100 */ 2047, 278, -4, 1930, 535, -4, 200, -4, 2086, 1969, - /* 110 */ -4, 30, -4, -4, 352, 2047, 535, -4, -4, -4, - /* 120 */ -4, -4, -4, -4, -4, -4, 281, -4, 2125, -4, - /* 130 */ 382, 2047, 535, -4, -4, 1028, 311, -4, 337, 341, - /* 140 */ 470, 1107, -4, 396, -4, 472, 501, -4, -4, -4, + /* 20 */ -4, -4, -4, 1737, 2061, 284, 1395, 1432, 1081, 412, + /* 30 */ -4, 1196, 1345, 1025, 1286, 506, -4, 2061, 337, -4, + /* 40 */ 2061, 2061, 303, 2061, 2061, 303, 1983, 296, 1890, 296, + /* 50 */ 2061, 296, 2061, 655, 2061, 655, 2061, 303, 2061, 411, + /* 60 */ 2061, 610, 2061, 105, 989, 105, 979, 105, 2061, 105, + /* 70 */ 2061, 105, 2061, 105, 2061, 105, 2061, 105, 2061, 105, + /* 80 */ 2061, -4, 2061, 224, 1168, 2061, 411, -4, -4, 1851, + /* 90 */ 256, -4, 2061, 367, 2061, 586, 1801, 533, 2061, 411, + /* 100 */ 2061, 395, -4, 1909, 533, -4, 254, -4, 2022, 1764, + /* 110 */ -4, 60, -4, -4, 1203, 2061, 533, -4, -4, -4, + /* 120 */ -4, -4, -4, -4, -4, -4, 398, -4, 2100, -4, + /* 130 */ 310, 2061, 533, -4, -4, 1088, 255, -4, 262, 363, + /* 140 */ 997, 1094, -4, 968, -4, 1095, 1117, -4, -4, -4, /* 150 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 160 */ -4, 2047, 288, 2047, 288, 976, 976, 448, -4, 498, - /* 170 */ 72, 2047, -3, 1, 1152, 1144, 478, -4, 502, 166, - /* 180 */ -4, 502, -4, 1027, 2047, 535, 2047, 535, 2047, 535, - /* 190 */ 2047, 535, 2047, 535, -4, 945, 959, 1043, 983, 1, - /* 200 */ 1171, 1185, 984, -4, 2047, 563, 2008, 1015, 986, 1, - /* 210 */ 1188, 1226, 1051, -4, -4, 952, 1072, 1229, 1234, 1267, - /* 220 */ 1073, -4, 2047, 27, 1, 1253, 1308, 1080, -4, 981, - /* 230 */ 1086, -4, 2047, 77, -4, 2047, 326, -4, 2047, 356, - /* 240 */ -4, 2047, 386, -4, 273, 1095, 1, 1264, 1349, 1122, - /* 250 */ -4, 1127, -4, 1128, -4, 2047, 416, -4, -4, -4, - /* 260 */ 1129, 1, 1294, 1390, 1131, -4, 1136, 1, 1311, 1431, - /* 270 */ 1145, -4, 1472, 1156, -4, 1159, 1106, 1096, 1165, -4, - /* 280 */ 1077, 1168, 1, 1331, 1513, 1169, -4, 1119, -4, 1177, - /* 290 */ 270, -4, -4, -4, -4, -4, -4, -4, -4, 2047, - /* 300 */ 475, 1, 1352, 1554, 1191, -4, 1196, 1223, 2047, 107, - /* 310 */ 1, 1372, 1595, 1204, -4, 2047, 505, 1, 1376, 1636, - /* 320 */ 1206, -4, 1677, 1207, -4, 1062, 1209, -4, 1215, 1249, - /* 330 */ 1235, 1227, -4, + /* 160 */ -4, 2061, 296, 2061, 296, 303, 303, 1132, -4, 1159, + /* 170 */ 335, 2061, 27, 1108, 1412, 1245, 1004, -4, 496, 0, + /* 180 */ -4, 496, -4, 391, 2061, 533, 2061, 533, 2061, 533, + /* 190 */ 2061, 533, 2061, 533, -4, 1058, 1060, 1092, 446, 1108, + /* 200 */ 1119, 1573, 416, -4, 2061, 561, 1944, 1002, 136, 1084, + /* 210 */ 1313, 1204, 56, -4, -4, 1175, 1187, 1272, 1186, 1327, + /* 220 */ 1172, -4, 2061, 87, 1108, 1268, 1450, 1184, -4, 1162, + /* 230 */ 1193, -4, 2061, 57, -4, 2061, 473, -4, 2061, 503, + /* 240 */ -4, 2061, 167, -4, 85, 86, 1084, 1350, 1655, 140, + /* 250 */ -4, 166, -4, 170, -4, 2061, 197, -4, -4, -4, + /* 260 */ 257, 1084, 1391, 1614, 442, -4, 336, 1108, 1160, 1409, + /* 270 */ 472, -4, 1368, 476, -4, 534, 1006, 967, 1018, -4, + /* 280 */ 90, 1037, 1084, 1354, 1532, 1070, -4, 1087, -4, 1097, + /* 290 */ 377, -4, -4, -4, -4, -4, -4, -4, -4, 2061, + /* 300 */ 137, 1084, 1033, 1491, 1146, -4, 1169, 1181, 2061, -3, + /* 310 */ 1108, 1166, 1696, 1214, -4, 2061, 443, 1084, 1309, 1163, + /* 320 */ 307, -4, 1122, 1052, -4, 1040, 1134, -4, 1143, 1200, + /* 330 */ 1215, 229, -4, }; -#define YY_REDUCE_USE_DFLT (-32) -static short yy_reduce_ofst[] = { - /* 0 */ 559, -32, 874, -32, -32, -32, -32, -32, -32, -32, - /* 10 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 20 */ -32, -32, -32, -32, 880, -32, 170, 874, -32, -32, - /* 30 */ -32, -32, 602, 874, -32, -32, -32, 925, -32, -32, - /* 40 */ 933, 958, -32, 1048, 1075, -32, 1079, -32, 1087, -32, - /* 50 */ 1112, -32, 1120, -32, 1157, -32, 1163, -32, 1166, -32, - /* 60 */ 1212, -32, 1245, -32, 1275, -32, 1283, -32, 1284, -32, - /* 70 */ 1290, -32, 1330, -32, 1333, -32, 1335, -32, 1363, -32, - /* 80 */ 1367, -32, 1368, -32, -32, 1371, -32, -32, -32, 878, - /* 90 */ -32, -32, 1374, -32, 1389, -32, 993, -32, 1393, -32, - /* 100 */ 1398, -32, -32, 1030, -32, -32, -32, -32, 957, 1034, - /* 110 */ -32, -32, -32, -32, -32, 1404, -32, -32, -32, -32, - /* 120 */ -32, -32, -32, -32, -32, -32, -32, -32, 996, -32, - /* 130 */ -32, 1409, -32, -32, -32, 246, -32, -32, -32, -32, - /* 140 */ -32, 333, -32, -32, -32, -32, -32, -32, -32, -32, - /* 150 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 160 */ -32, 1078, -32, 1413, -32, -32, -32, -32, -32, -32, - /* 170 */ -32, 1417, -32, 623, 874, -32, -32, -32, -31, -32, - /* 180 */ -32, 459, -32, -32, 1430, -32, 1434, -32, 1445, -32, - /* 190 */ 1448, -32, 1449, -32, -32, -32, -32, 168, -32, 644, - /* 200 */ 874, -32, -32, -32, 1450, -32, 1002, -32, -32, 665, - /* 210 */ 874, -32, -32, -32, -32, -32, -32, 686, 874, -32, - /* 220 */ -32, -32, 1453, -32, 707, 874, -32, -32, -32, -32, - /* 230 */ -32, -32, 1471, -32, -32, 1475, -32, -32, 1489, -32, - /* 240 */ -32, 1491, -32, -32, -32, -32, 728, 874, -32, -32, - /* 250 */ -32, -32, -32, -32, -32, 1494, -32, -32, -32, -32, - /* 260 */ -32, 749, 874, -32, -32, -32, -32, 770, 874, -32, - /* 270 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 280 */ -32, -32, 791, 874, -32, -32, -32, 1091, -32, -32, - /* 290 */ 1094, -32, -32, -32, -32, -32, -32, -32, -32, 1125, - /* 300 */ -32, 812, 874, -32, -32, -32, -32, -32, 1243, -32, - /* 310 */ 833, 874, -32, -32, -32, 1495, -32, 854, 874, -32, - /* 320 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 330 */ -32, -32, -32, +#define VV_REDUCE_USE_DFLT (-1) +static short vv_reduce_ofst[] = { + /* 0 */ 557, -1, 893, -1, -1, -1, -1, -1, -1, -1, + /* 10 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 20 */ -1, -1, -1, -1, 1518, -1, 684, 893, -1, -1, + /* 30 */ -1, -1, 852, 893, -1, -1, -1, 1182, -1, -1, + /* 40 */ 1385, 1171, -1, 1098, 1053, -1, 1393, -1, 1130, -1, + /* 50 */ 1513, -1, 1104, -1, 1467, -1, 1490, -1, 899, -1, + /* 60 */ 1065, -1, 1464, -1, 981, -1, 1149, -1, 1427, -1, + /* 70 */ 1453, -1, 1144, -1, 1349, -1, 1428, -1, 1472, -1, + /* 80 */ 1180, -1, 1262, -1, -1, 1434, -1, -1, -1, 944, + /* 90 */ -1, -1, 1468, -1, 1449, -1, 907, -1, 1494, -1, + /* 100 */ 1261, -1, -1, 930, -1, -1, -1, -1, 1012, 905, + /* 110 */ -1, -1, -1, -1, -1, 1436, -1, -1, -1, -1, + /* 120 */ -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, + /* 130 */ -1, 1135, -1, -1, -1, 114, -1, -1, -1, -1, + /* 140 */ -1, 894, -1, -1, -1, -1, -1, -1, -1, -1, + /* 150 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 160 */ -1, 1516, -1, 1408, -1, -1, -1, -1, -1, -1, + /* 170 */ -1, 1089, -1, 873, 893, -1, -1, -1, 12, -1, + /* 180 */ -1, 1105, -1, -1, 1386, -1, 1231, -1, 1371, -1, + /* 190 */ 1330, -1, 1267, -1, -1, -1, -1, 147, -1, 789, + /* 200 */ 893, -1, -1, -1, 1138, -1, 974, -1, -1, 663, + /* 210 */ 893, -1, -1, -1, -1, -1, -1, 642, 893, -1, + /* 220 */ -1, -1, 1016, -1, 705, 893, -1, -1, -1, -1, + /* 230 */ -1, -1, 1469, -1, -1, 1510, -1, -1, 928, -1, + /* 240 */ -1, 1056, -1, -1, -1, -1, 600, 893, -1, -1, + /* 250 */ -1, -1, -1, -1, -1, 1505, -1, -1, -1, -1, + /* 260 */ -1, 768, 893, -1, -1, -1, -1, 747, 893, -1, + /* 270 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 280 */ -1, -1, 810, 893, -1, -1, -1, 1020, -1, -1, + /* 290 */ 1034, -1, -1, -1, -1, -1, -1, -1, -1, 1062, + /* 300 */ -1, 621, 893, -1, -1, -1, -1, -1, 1188, -1, + /* 310 */ 726, 893, -1, -1, -1, 1017, -1, 831, 893, -1, + /* 320 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 330 */ -1, -1, -1, }; -static YYACTIONTYPE yy_default[] = { +static VVACTIONTYPE vv_default[] = { /* 0 */ 478, 478, 478, 335, 337, 338, 339, 340, 341, 342, /* 10 */ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, /* 20 */ 353, 354, 355, 478, 478, 478, 478, 478, 478, 478, @@ -112611,7 +114997,7 @@ static YYACTIONTYPE yy_default[] = { /* 320 */ 478, 366, 478, 478, 359, 478, 478, 357, 478, 478, /* 330 */ 478, 478, 360, }; -#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) +#define VV_SZ_ACTTAB (sizeof(vv_action)/sizeof(vv_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: @@ -112623,10 +115009,10 @@ static YYACTIONTYPE yy_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { +#ifdef VVFALLBACK +static const VVCODETYPE vvFallback[] = { }; -#endif /* YYFALLBACK */ +#endif /* VVFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -112640,44 +115026,44 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { +struct vvStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This + VVMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct yyStackEntry yyStackEntry; +typedef struct vvStackEntry vvStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ - int yyerrcnt; /* Shifts left before out of the error */ +struct vvParser { + int vvidx; /* Index of top element in stack */ + int vverrcnt; /* Shifts left before out of the error */ phvolt_ARG_SDECL /* A place to hold %extra_argument */ - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + vvStackEntry vvstack[VVSTACKDEPTH]; /* The parser's stack */ }; -typedef struct yyParser yyParser; +typedef struct vvParser vvParser; #ifndef NDEBUG #include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; +static FILE *vvTraceFILE = 0; +static char *vvTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phvolt_Trace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; + vvTraceFILE = TraceFILE; + vvTracePrompt = zTracePrompt; + if( vvTraceFILE==0 ) vvTracePrompt = 0; + else if( vvTracePrompt==0 ) vvTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *vvTokenName[] = { "$", "OPEN_DELIMITER", "COMMA", "IN", "QUESTION", "COLON", "RANGE", "AND", "OR", "IS", "EQUALS", "NOTEQUALS", @@ -112714,7 +115100,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *vvRuleName[] = { /* 0 */ "program ::= volt_language", /* 1 */ "volt_language ::= statement_list", /* 2 */ "statement_list ::= statement_list statement", @@ -112865,8 +115251,8 @@ static const char *yyRuleName[] = { const char *phvolt_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ - return yyTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(vvTokenName)/sizeof(vvTokenName[0])) ){ + return vvTokenName[tokenType]; }else{ return "Unknown"; } @@ -112876,21 +115262,21 @@ const char *phvolt_TokenName(int tokenType){ } void *phvolt_Alloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + vvParser *pParser; + pParser = (vvParser*)(*mallocProc)( (size_t)sizeof(vvParser) ); if( pParser ){ - pParser->yyidx = -1; + pParser->vvidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to +** "vvmajor" is the symbol code, and "vvpminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ - switch( yymajor ){ +static void vv_destructor(VVCODETYPE vvmajor, VVMINORTYPE *vvpminor){ + switch( vvmajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -112983,14 +115369,16 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 80: case 81: case 82: +// 702 "parser.lemon" { - if ((yypminor->yy0)) { - if ((yypminor->yy0)->free_flag) { - efree((yypminor->yy0)->token); + if ((vvpminor->vv0)) { + if ((vvpminor->vv0)->free_flag) { + efree((vvpminor->vv0)->token); } - efree((yypminor->yy0)); + efree((vvpminor->vv0)); } } +// 1654 "parser.c" break; case 86: case 87: @@ -113024,132 +115412,134 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 116: case 117: case 118: -{ zval_ptr_dtor(&(yypminor->yy92)); } +// 719 "parser.lemon" +{ zval_ptr_dtor(&(vvpminor->vv92)); } +// 1690 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int vv_pop_parser_stack(vvParser *pParser){ + VVCODETYPE vvmajor; + vvStackEntry *vvtos = &pParser->vvstack[pParser->vvidx]; - if( pParser->yyidx<0 ) return 0; + if( pParser->vvidx<0 ) return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); + if( vvTraceFILE && pParser->vvidx>=0 ){ + fprintf(vvTraceFILE,"%sPopping %s\n", + vvTracePrompt, + vvTokenName[vvtos->major]); } #endif - yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + vvmajor = vvtos->major; + vv_destructor( vvmajor, &vvtos->minor); + pParser->vvidx--; + return vvmajor; } static void phvolt_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - yyParser *pParser = (yyParser*)p; + vvParser *pParser = (vvParser*)p; if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + while( pParser->vvidx>=0 ) vv_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ +static int vv_find_shift_action( + vvParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ - i = yy_shift_ofst[stateno]; - if( i==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; + /* if( pParser->vvidx<0 ) return VV_NO_ACTION; */ + i = vv_shift_ofst[stateno]; + if( i==VV_SHIFT_USE_DFLT ){ + return vv_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ -#ifdef YYFALLBACK + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ +#ifdef VVFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE, "%sFALLBACK %s => %s\n", + vvTracePrompt, vvTokenName[iLookAhead], vvTokenName[iFallback]); } #endif - return yy_find_shift_action(pParser, iFallback); + return vv_find_shift_action(pParser, iFallback); } #endif - return yy_default[stateno]; + return vv_default[stateno]; }else{ - return yy_action[i]; + return vv_action[i]; } } -static int yy_find_reduce_action( - yyParser *pParser, /* The parser */ +static int vv_find_reduce_action( + vvParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - i = yy_reduce_ofst[stateno]; - if( i==YY_REDUCE_USE_DFLT ){ - return yy_default[stateno]; + i = vv_reduce_ofst[stateno]; + if( i==VV_REDUCE_USE_DFLT ){ + return vv_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ + return vv_default[stateno]; }else{ - return yy_action[i]; + return vv_action[i]; } } -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +static void vv_shift( + vvParser *vvpParser, /* The parser to be shifted */ + int vvNewState, /* The new state to shift in */ + int vvMajor, /* The major token to shift in */ + VVMINORTYPE *vvpMinor /* Pointer ot the minor token to shift in */ ){ - yyStackEntry *yytos; - yypParser->yyidx++; - if( yypParser->yyidx>=YYSTACKDEPTH ){ + vvStackEntry *vvtos; + vvpParser->vvidx++; + if( vvpParser->vvidx>=VVSTACKDEPTH ){ phvolt_ARG_FETCH; - yypParser->yyidx--; + vvpParser->vvidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sStack Overflow!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; - yytos->minor = *yypMinor; + vvtos = &vvpParser->vvstack[vvpParser->vvidx]; + vvtos->stateno = vvNewState; + vvtos->major = vvMajor; + vvtos->minor = *vvpMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ + if( vvTraceFILE && vvpParser->vvidx>0 ){ int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); + fprintf(vvTraceFILE,"%sShift %d\n",vvTracePrompt,vvNewState); + fprintf(vvTraceFILE,"%sStack:",vvTracePrompt); + for(i=1; i<=vvpParser->vvidx; i++) + fprintf(vvTraceFILE," %s",vvTokenName[vvpParser->vvstack[i].major]); + fprintf(vvTraceFILE,"\n"); } #endif } @@ -113158,9 +115548,9 @@ static void yy_shift( ** is used during the reduce. */ static struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + VVCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { +} vvRuleInfo[] = { { 84, 1 }, { 85, 1 }, { 86, 2 }, @@ -113308,40 +115698,42 @@ static struct { { 107, 1 }, }; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void vv_accept(vvParser*); /* Forward Declaration */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ +static void vv_reduce( + vvParser *vvpParser, /* The parser */ + int vvruleno /* Number of the rule by which to reduce */ ){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ + int vvgoto; /* The next state */ + int vvact; /* The next action */ + VVMINORTYPE vvgotominor; /* The LHS of the rule reduced */ + vvStackEntry *vvmsp; /* The top of the parser's stack */ + int vvsize; /* Amount to pop the stack */ phvolt_ARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; + vvmsp = &vvpParser->vvstack[vvpParser->vvidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno=0 + && vvruleno + ** // ** { ... } // User supplied code - ** #line + ** // ** break; */ case 0: +// 711 "parser.lemon" { - status->ret = yymsp[0].minor.yy92; + status->ret = vvmsp[0].minor.vv92; } +// 2052 "parser.c" break; case 1: case 4: @@ -113364,865 +115756,1080 @@ static void yy_reduce( case 21: case 22: case 131: +// 715 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; + vvgotominor.vv92 = vvmsp[0].minor.vv92; } +// 2079 "parser.c" break; case 2: +// 721 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + vvgotominor.vv92 = phvolt_ret_zval_list(vvmsp[-1].minor.vv92, vvmsp[0].minor.vv92); } +// 2086 "parser.c" break; case 3: case 36: case 45: case 128: case 135: +// 725 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(NULL, yymsp[0].minor.yy92); + vvgotominor.vv92 = phvolt_ret_zval_list(NULL, vvmsp[0].minor.vv92); } +// 2097 "parser.c" break; case 23: +// 809 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2110 "parser.c" break; case 24: +// 813 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-4].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(31,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-4].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(31,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2123 "parser.c" break; case 25: +// 817 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-9].minor.yy92, yymsp[-7].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(31,&yymsp[-10].minor); - yy_destructor(32,&yymsp[-8].minor); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(34,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-9].minor.vv92, vvmsp[-7].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(31,&vvmsp[-10].minor); + vv_destructor(32,&vvmsp[-8].minor); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(34,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2139 "parser.c" break; case 26: +// 821 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-8].minor.yy92, yymsp[-6].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(31,&yymsp[-9].minor); - yy_destructor(32,&yymsp[-7].minor); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(34,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-8].minor.vv92, vvmsp[-6].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(31,&vvmsp[-9].minor); + vv_destructor(32,&vvmsp[-7].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2155 "parser.c" break; case 27: +// 825 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-7].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(31,&yymsp[-8].minor); - yy_destructor(32,&yymsp[-6].minor); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(34,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-7].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(31,&vvmsp[-8].minor); + vv_destructor(32,&vvmsp[-6].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2171 "parser.c" break; case 28: +// 831 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_elseif_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(35,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_elseif_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(35,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2181 "parser.c" break; case 29: +// 837 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_elsefor_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(36,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_elsefor_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(36,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2191 "parser.c" break; case 30: +// 843 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, NULL, yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(37,&yymsp[-8].minor); - yy_destructor(3,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-7].minor.vv0, NULL, vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(37,&vvmsp[-8].minor); + vv_destructor(3,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2205 "parser.c" break; case 31: +// 847 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, NULL, yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(37,&yymsp[-10].minor); - yy_destructor(3,&yymsp[-8].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-9].minor.vv0, NULL, vvmsp[-7].minor.vv92, vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(3,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2220 "parser.c" break; case 32: +// 851 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, yymsp[-9].minor.yy0, yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(37,&yymsp[-10].minor); - yy_destructor(2,&yymsp[-8].minor); - yy_destructor(3,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-7].minor.vv0, vvmsp[-9].minor.vv0, vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(2,&vvmsp[-8].minor); + vv_destructor(3,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2235 "parser.c" break; case 33: +// 855 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, yymsp[-11].minor.yy0, yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-13].minor); - yy_destructor(37,&yymsp[-12].minor); - yy_destructor(2,&yymsp[-10].minor); - yy_destructor(3,&yymsp[-8].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-9].minor.vv0, vvmsp[-11].minor.vv0, vvmsp[-7].minor.vv92, vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-13].minor); + vv_destructor(37,&vvmsp[-12].minor); + vv_destructor(2,&vvmsp[-10].minor); + vv_destructor(3,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2251 "parser.c" break; case 34: +// 861 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_statement(yymsp[-1].minor.yy92); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(40,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_set_statement(vvmsp[-1].minor.vv92); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(40,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2261 "parser.c" break; case 35: case 44: case 127: case 134: +// 867 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(2,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_zval_list(vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92); + vv_destructor(2,&vvmsp[-1].minor); } +// 2272 "parser.c" break; case 37: +// 877 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(41,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(41,&vvmsp[-1].minor); } +// 2280 "parser.c" break; case 38: +// 881 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_ADD_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(42,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_ADD_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(42,&vvmsp[-1].minor); } +// 2288 "parser.c" break; case 39: +// 885 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_SUB_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(43,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_SUB_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(43,&vvmsp[-1].minor); } +// 2296 "parser.c" break; case 40: +// 889 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_MUL_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(44,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_MUL_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(44,&vvmsp[-1].minor); } +// 2304 "parser.c" break; case 41: +// 893 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_DIV_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(45,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_DIV_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(45,&vvmsp[-1].minor); } +// 2312 "parser.c" break; case 42: +// 899 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_statement(yymsp[-7].minor.yy0, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(46,&yymsp[-8].minor); - yy_destructor(29,&yymsp[-6].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(48,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_statement(vvmsp[-7].minor.vv0, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(46,&vvmsp[-8].minor); + vv_destructor(29,&vvmsp[-6].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(48,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2327 "parser.c" break; case 43: +// 903 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_statement(yymsp[-8].minor.yy0, yymsp[-6].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(46,&yymsp[-9].minor); - yy_destructor(29,&yymsp[-7].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(48,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_statement(vvmsp[-8].minor.vv0, vvmsp[-6].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(46,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(48,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2342 "parser.c" break; case 46: +// 919 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_parameter(yymsp[0].minor.yy0, NULL, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_macro_parameter(vvmsp[0].minor.vv0, NULL, status->scanner_state); } +// 2349 "parser.c" break; case 47: +// 923 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_parameter(yymsp[-2].minor.yy0, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(41,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_macro_parameter(vvmsp[-2].minor.vv0, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(41,&vvmsp[-1].minor); } +// 2357 "parser.c" break; case 48: case 125: case 139: +// 927 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, vvmsp[0].minor.vv0, status->scanner_state); } +// 2366 "parser.c" break; case 49: case 140: +// 931 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_STRING, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_STRING, vvmsp[0].minor.vv0, status->scanner_state); } +// 2374 "parser.c" break; case 50: case 141: +// 935 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, vvmsp[0].minor.vv0, status->scanner_state); } +// 2382 "parser.c" break; case 51: case 142: +// 939 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state); - yy_destructor(52,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state); + vv_destructor(52,&vvmsp[0].minor); } +// 2391 "parser.c" break; case 52: case 143: +// 943 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state); - yy_destructor(53,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state); + vv_destructor(53,&vvmsp[0].minor); } +// 2400 "parser.c" break; case 53: case 144: +// 947 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state); - yy_destructor(54,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state); + vv_destructor(54,&vvmsp[0].minor); } +// 2409 "parser.c" break; case 54: +// 953 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_call_statement(yymsp[-8].minor.yy92, yymsp[-6].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(55,&yymsp[-9].minor); - yy_destructor(29,&yymsp[-7].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(56,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_call_statement(vvmsp[-8].minor.vv92, vvmsp[-6].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(55,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(56,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2424 "parser.c" break; case 55: +// 957 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_call_statement(yymsp[-6].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-8].minor); - yy_destructor(55,&yymsp[-7].minor); - yy_destructor(29,&yymsp[-5].minor); - yy_destructor(47,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(56,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_call_statement(vvmsp[-6].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(55,&vvmsp[-7].minor); + vv_destructor(29,&vvmsp[-5].minor); + vv_destructor(47,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(56,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2439 "parser.c" break; case 56: +// 963 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_empty_statement(status->scanner_state); - yy_destructor(1,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_empty_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2448 "parser.c" break; case 57: +// 969 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_echo_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(57,&yymsp[-2].minor); - yy_destructor(58,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_echo_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(57,&vvmsp[-2].minor); + vv_destructor(58,&vvmsp[0].minor); } +// 2457 "parser.c" break; case 58: +// 975 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_block_statement(yymsp[-5].minor.yy0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(59,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(60,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_block_statement(vvmsp[-5].minor.vv0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(59,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(60,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2470 "parser.c" break; case 59: +// 979 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_block_statement(yymsp[-4].minor.yy0, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(59,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(60,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_block_statement(vvmsp[-4].minor.vv0, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(59,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(60,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2483 "parser.c" break; case 60: +// 985 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_cache_statement(yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(61,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(62,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_cache_statement(vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(61,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(62,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2496 "parser.c" break; case 61: +// 989 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_cache_statement(yymsp[-6].minor.yy92, yymsp[-5].minor.yy0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-8].minor); - yy_destructor(61,&yymsp[-7].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(62,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_cache_statement(vvmsp[-6].minor.vv92, vvmsp[-5].minor.vv0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(61,&vvmsp[-7].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(62,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2509 "parser.c" break; case 62: +// 995 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_extends_statement(yymsp[-1].minor.yy0, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(63,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_extends_statement(vvmsp[-1].minor.vv0, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(63,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2519 "parser.c" break; case 63: +// 1001 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_include_statement(yymsp[-1].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(64,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_include_statement(vvmsp[-1].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(64,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2529 "parser.c" break; case 64: +// 1005 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_include_statement(yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(64,&yymsp[-4].minor); - yy_destructor(65,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_include_statement(vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(64,&vvmsp[-4].minor); + vv_destructor(65,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2540 "parser.c" break; case 65: +// 1011 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_do_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(66,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_do_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(66,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2550 "parser.c" break; case 66: +// 1017 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_return_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(67,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_return_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(67,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2560 "parser.c" break; case 67: +// 1023 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_autoescape_statement(0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(68,&yymsp[-6].minor); - yy_destructor(53,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(69,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_autoescape_statement(0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(68,&vvmsp[-6].minor); + vv_destructor(53,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2574 "parser.c" break; case 68: +// 1027 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_autoescape_statement(1, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(68,&yymsp[-6].minor); - yy_destructor(54,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(69,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_autoescape_statement(1, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(68,&vvmsp[-6].minor); + vv_destructor(54,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2588 "parser.c" break; case 69: +// 1033 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_break_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(70,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_break_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(70,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2598 "parser.c" break; case 70: +// 1039 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_continue_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(71,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_continue_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(71,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2608 "parser.c" break; case 71: +// 1045 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, vvmsp[0].minor.vv0, status->scanner_state); } +// 2615 "parser.c" break; case 72: +// 1051 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(22,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } +// 2623 "parser.c" break; case 73: +// 1055 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(21,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } +// 2631 "parser.c" break; case 74: +// 1059 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_SUB, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(22,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_SUB, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } +// 2639 "parser.c" break; case 75: +// 1063 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ADD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(21,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ADD, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } +// 2647 "parser.c" break; case 76: +// 1067 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MUL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(19,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MUL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-1].minor); } +// 2655 "parser.c" break; case 77: +// 1071 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_POW, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(19,&yymsp[-2].minor); - yy_destructor(19,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_POW, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-2].minor); + vv_destructor(19,&vvmsp[-1].minor); } +// 2664 "parser.c" break; case 78: +// 1075 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DIV, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(18,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DIV, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-1].minor); } +// 2672 "parser.c" break; case 79: +// 1079 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(18,&yymsp[-2].minor); - yy_destructor(18,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MOD, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-2].minor); + vv_destructor(18,&vvmsp[-1].minor); } +// 2681 "parser.c" break; case 80: +// 1083 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(20,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MOD, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(20,&vvmsp[-1].minor); } +// 2689 "parser.c" break; case 81: +// 1087 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(7,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_AND, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(7,&vvmsp[-1].minor); } +// 2697 "parser.c" break; case 82: +// 1091 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(8,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_OR, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(8,&vvmsp[-1].minor); } +// 2705 "parser.c" break; case 83: +// 1095 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_CONCAT, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(23,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_CONCAT, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(23,&vvmsp[-1].minor); } +// 2713 "parser.c" break; case 84: +// 1099 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_PIPE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(25,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_PIPE, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(25,&vvmsp[-1].minor); } +// 2721 "parser.c" break; case 85: +// 1103 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_RANGE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(6,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_RANGE, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(6,&vvmsp[-1].minor); } +// 2729 "parser.c" break; case 86: +// 1107 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_EQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(10,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_EQUALS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(10,&vvmsp[-1].minor); } +// 2737 "parser.c" break; case 87: +// 1111 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(73,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(73,&vvmsp[0].minor); } +// 2746 "parser.c" break; case 88: +// 1115 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISSET, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(73,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISSET, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(73,&vvmsp[0].minor); } +// 2755 "parser.c" break; case 89: +// 1119 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(74,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(74,&vvmsp[0].minor); } +// 2764 "parser.c" break; case 90: +// 1123 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(74,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(74,&vvmsp[0].minor); } +// 2773 "parser.c" break; case 91: +// 1127 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(75,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(75,&vvmsp[0].minor); } +// 2782 "parser.c" break; case 92: +// 1131 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISEVEN, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(75,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISEVEN, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(75,&vvmsp[0].minor); } +// 2791 "parser.c" break; case 93: +// 1135 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(76,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(76,&vvmsp[0].minor); } +// 2800 "parser.c" break; case 94: +// 1139 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISODD, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(76,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISODD, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(76,&vvmsp[0].minor); } +// 2809 "parser.c" break; case 95: +// 1143 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(77,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(77,&vvmsp[0].minor); } +// 2818 "parser.c" break; case 96: +// 1147 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(77,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(77,&vvmsp[0].minor); } +// 2827 "parser.c" break; case 97: +// 1151 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(78,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(78,&vvmsp[0].minor); } +// 2836 "parser.c" break; case 98: +// 1155 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(78,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(78,&vvmsp[0].minor); } +// 2845 "parser.c" break; case 99: +// 1159 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(79,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(79,&vvmsp[0].minor); } +// 2854 "parser.c" break; case 100: +// 1163 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(79,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(79,&vvmsp[0].minor); } +// 2863 "parser.c" break; case 101: +// 1167 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); } +// 2871 "parser.c" break; case 102: +// 1171 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); } +// 2879 "parser.c" break; case 103: +// 1175 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(16,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(16,&vvmsp[-1].minor); } +// 2887 "parser.c" break; case 104: +// 1179 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(17,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(17,&vvmsp[-1].minor); } +// 2895 "parser.c" break; case 105: +// 1183 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_LESS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(12,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_LESS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(12,&vvmsp[-1].minor); } +// 2903 "parser.c" break; case 106: +// 1187 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_GREATER, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(13,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_GREATER, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(13,&vvmsp[-1].minor); } +// 2911 "parser.c" break; case 107: +// 1191 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(14,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(14,&vvmsp[-1].minor); } +// 2919 "parser.c" break; case 108: +// 1195 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(15,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(15,&vvmsp[-1].minor); } +// 2927 "parser.c" break; case 109: +// 1199 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DOT, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(30,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DOT, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(30,&vvmsp[-1].minor); } +// 2935 "parser.c" break; case 110: +// 1203 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IN, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(3,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IN, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(3,&vvmsp[-1].minor); } +// 2943 "parser.c" break; case 111: +// 1207 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_IN, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(26,&yymsp[-2].minor); - yy_destructor(3,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_IN, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-2].minor); + vv_destructor(3,&vvmsp[-1].minor); } +// 2952 "parser.c" break; case 112: +// 1211 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(26,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-1].minor); } +// 2960 "parser.c" break; case 113: +// 1215 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_INCR, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(27,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_INCR, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(27,&vvmsp[0].minor); } +// 2968 "parser.c" break; case 114: +// 1219 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DECR, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(28,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DECR, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(28,&vvmsp[0].minor); } +// 2976 "parser.c" break; case 115: +// 1223 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(29,&yymsp[-2].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 2985 "parser.c" break; case 116: +// 1227 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-1].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 2994 "parser.c" break; case 117: +// 1231 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3003 "parser.c" break; case 118: +// 1235 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - yy_destructor(81,&yymsp[-1].minor); - yy_destructor(82,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(81,&vvmsp[-1].minor); + vv_destructor(82,&vvmsp[0].minor); } +// 3012 "parser.c" break; case 119: +// 1239 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(81,&yymsp[-2].minor); - yy_destructor(82,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(81,&vvmsp[-2].minor); + vv_destructor(82,&vvmsp[0].minor); } +// 3021 "parser.c" break; case 120: +// 1243 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3030 "parser.c" break; case 121: +// 1247 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_TERNARY, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, yymsp[-4].minor.yy92, status->scanner_state); - yy_destructor(4,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_TERNARY, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, vvmsp[-4].minor.vv92, status->scanner_state); + vv_destructor(4,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-1].minor); } +// 3039 "parser.c" break; case 122: +// 1251 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-4].minor.yy92, NULL, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(24,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-4].minor.vv92, NULL, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3049 "parser.c" break; case 123: +// 1255 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-4].minor.yy92, yymsp[-2].minor.yy92, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-1].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-4].minor.vv92, vvmsp[-2].minor.vv92, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3059 "parser.c" break; case 124: +// 1259 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(24,&yymsp[-4].minor); - yy_destructor(5,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(24,&vvmsp[-4].minor); + vv_destructor(5,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3069 "parser.c" break; case 126: case 138: +// 1269 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, vvmsp[0].minor.vv0, status->scanner_state); } +// 3077 "parser.c" break; case 129: case 137: +// 1285 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_named_item(yymsp[-2].minor.yy0, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(5,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_named_item(vvmsp[-2].minor.vv0, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(5,&vvmsp[-1].minor); } +// 3086 "parser.c" break; case 130: case 136: +// 1289 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_named_item(NULL, yymsp[0].minor.yy92, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_named_item(NULL, vvmsp[0].minor.vv92, status->scanner_state); } +// 3094 "parser.c" break; case 132: +// 1299 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_func_call(yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(29,&yymsp[-2].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_func_call(vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 3103 "parser.c" break; case 133: +// 1303 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_func_call(yymsp[-2].minor.yy92, NULL, status->scanner_state); - yy_destructor(29,&yymsp[-1].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_func_call(vvmsp[-2].minor.vv92, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-1].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 3112 "parser.c" break; }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yypParser,yygoto); - if( yyact < YYNSTATE ){ - yy_shift(yypParser,yyact,yygoto,&yygotominor); - }else if( yyact == YYNSTATE + YYNRULE + 1 ){ - yy_accept(yypParser); + vvgoto = vvRuleInfo[vvruleno].lhs; + vvsize = vvRuleInfo[vvruleno].nrhs; + vvpParser->vvidx -= vvsize; + vvact = vv_find_reduce_action(vvpParser,vvgoto); + if( vvact < VVNSTATE ){ + vv_shift(vvpParser,vvact,vvgoto,&vvgotominor); + }else if( vvact == VVNSTATE + VVNRULE + 1 ){ + vv_accept(vvpParser); } } -static void yy_parse_failed( - yyParser *yypParser /* The parser */ +static void vv_parse_failed( + vvParser *vvpParser /* The parser */ ){ phvolt_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sFail!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ +static void vv_syntax_error( + vvParser *vvpParser, /* The parser */ + int vvmajor, /* The major type of the error token */ + VVMINORTYPE vvminor /* The minor type of the error token */ ){ phvolt_ARG_FETCH; -#define TOKEN (yyminor.yy0) +#define TOKEN (vvminor.vv0) +// 604 "parser.lemon" { @@ -114320,19 +116927,20 @@ static void yy_syntax_error( status->status = PHVOLT_PARSING_FAILED; +// 3252 "parser.c" phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_accept( - yyParser *yypParser /* The parser */ +static void vv_accept( + vvParser *vvpParser /* The parser */ ){ phvolt_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sAccept!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -114358,56 +116966,56 @@ static void yy_accept( ** None. */ static void phvolt_( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - phvolt_TOKENTYPE yyminor /* The value for the token */ + void *vvp, /* The parser */ + int vvmajor, /* The major token code number */ + phvolt_TOKENTYPE vvminor /* The value for the token */ phvolt_ARG_PDECL /* Optional %extra_argument parameter */ ){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ - int yyerrorhit = 0; /* True if yymajor has invoked an error */ - yyParser *yypParser; /* The parser */ + VVMINORTYPE vvminorunion; + int vvact; /* The parser action. */ + int vvendofinput; /* True if we are at the end of input */ + int vverrorhit = 0; /* True if vvmajor has invoked an error */ + vvParser *vvpParser; /* The parser */ /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ - if( yymajor==0 ) return; - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + vvpParser = (vvParser*)vvp; + if( vvpParser->vvidx<0 ){ + if( vvmajor==0 ) return; + vvpParser->vvidx = 0; + vvpParser->vverrcnt = -1; + vvpParser->vvstack[0].stateno = 0; + vvpParser->vvstack[0].major = 0; } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); + vvminorunion.vv0 = vvminor; + vvendofinput = (vvmajor==0); phvolt_ARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sInput %s\n",vvTracePrompt,vvTokenName[vvmajor]); } #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); - if( yyactyyerrcnt--; - if( yyendofinput && yypParser->yyidx>=0 ){ - yymajor = 0; + vvact = vv_find_shift_action(vvpParser,vvmajor); + if( vvactvverrcnt--; + if( vvendofinput && vvpParser->vvidx>=0 ){ + vvmajor = 0; }else{ - yymajor = YYNOCODE; + vvmajor = VVNOCODE; } - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else if( yyact == YY_ERROR_ACTION ){ - int yymx; + }else if( vvact < VVNSTATE + VVNRULE ){ + vv_reduce(vvpParser,vvact-VVNSTATE); + }else if( vvact == VV_ERROR_ACTION ){ + int vvmx; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sSyntax Error!\n",vvTracePrompt); } #endif -#ifdef YYERRORSYMBOL +#ifdef VVERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -114427,40 +117035,40 @@ static void phvolt_( ** shifted successfully. ** */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( vvpParser->vverrcnt<0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + vvmx = vvpParser->vvstack[vvpParser->vvidx].major; + if( vvmx==VVERRORSYMBOL || vverrorhit ){ #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sDiscard input token %s\n", + vvTracePrompt,vvTokenName[vvmajor]); } #endif - yy_destructor(yymajor,&yyminorunion); - yymajor = YYNOCODE; + vv_destructor(vvmajor,&vvminorunion); + vvmajor = VVNOCODE; }else{ while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE + vvpParser->vvidx >= 0 && + vvmx != VVERRORSYMBOL && + (vvact = vv_find_shift_action(vvpParser,VVERRORSYMBOL)) >= VVNSTATE ){ - yy_pop_parser_stack(yypParser); + vv_pop_parser_stack(vvpParser); } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + if( vvpParser->vvidx < 0 || vvmajor==0 ){ + vv_destructor(vvmajor,&vvminorunion); + vv_parse_failed(vvpParser); + vvmajor = VVNOCODE; + }else if( vvmx!=VVERRORSYMBOL ){ + VVMINORTYPE u2; + u2.VVERRSYMDT = 0; + vv_shift(vvpParser,vvact,VVERRORSYMBOL,&u2); } } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#else /* YYERRORSYMBOL is not defined */ + vvpParser->vverrcnt = 3; + vverrorhit = 1; +#else /* VVERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -114470,21 +117078,21 @@ static void phvolt_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( vvpParser->vverrcnt<=0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); } - yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); + vvpParser->vverrcnt = 3; + vv_destructor(vvmajor,&vvminorunion); + if( vvendofinput ){ + vv_parse_failed(vvpParser); } - yymajor = YYNOCODE; + vvmajor = VVNOCODE; #endif }else{ - yy_accept(yypParser); - yymajor = YYNOCODE; + vv_accept(vvpParser); + vvmajor = VVNOCODE; } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + }while( vvmajor!=VVNOCODE && vvpParser->vvidx>=0 ); return; } @@ -115182,14 +117790,15 @@ static int phvolt_internal_parse_view(zval **result, zval *view_code, zval *temp } -/* Generated by re2c 0.13.5 on Wed Apr 29 17:20:28 2015 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:07:41 2015 */ +// 1 "scanner.re" -#define YYCTYPE unsigned char -#define YYCURSOR (s->start) -#define YYLIMIT (s->end) -#define YYMARKER q +#define VVCTYPE unsigned char +#define VVCURSOR (s->start) +#define VVLIMIT (s->end) +#define VVMARKER q static void phvolt_rtrim(phvolt_scanner_token *token) { @@ -115256,7 +117865,7 @@ static void phvolt_ltrim(phvolt_scanner_token *token) { static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token) { unsigned char next, double_next; - char *q = YYCURSOR, *start = YYCURSOR; + char *q = VVCURSOR, *start = VVCURSOR; int status = PHVOLT_SCANNER_RETCODE_IMPOSSIBLE; while (PHVOLT_SCANNER_RETCODE_IMPOSSIBLE == status) { @@ -115266,18 +117875,18 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token next = '\0'; double_next = '\0'; - if (*YYCURSOR == '\n') { + if (*VVCURSOR == '\n') { s->active_line++; } - if (*YYCURSOR != '\0') { - next = *(YYCURSOR + 1); + if (*VVCURSOR != '\0') { + next = *(VVCURSOR + 1); if (next != '\0') { - double_next = *(YYCURSOR + 2); + double_next = *(VVCURSOR + 2); } } - if (*YYCURSOR == '\0' || (*YYCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { + if (*VVCURSOR == '\0' || (*VVCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { if (next != '#') { @@ -115301,16 +117910,16 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token } s->raw_buffer_cursor = 0; - q = YYCURSOR; + q = VVCURSOR; } else { token->opcode = PHVOLT_T_IGNORE; } } else { - while ((next = *(++YYCURSOR))) { - if (next == '#' && *(YYCURSOR + 1) == '}') { - YYCURSOR+=2; + while ((next = *(++VVCURSOR))) { + if (next == '#' && *(VVCURSOR + 1) == '}') { + VVCURSOR+=2; token->opcode = PHVOLT_T_IGNORE; return 0; } else { @@ -115332,72 +117941,4299 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token s->raw_buffer = erealloc(s->raw_buffer, s->raw_buffer_size); } - memcpy(s->raw_buffer+s->raw_buffer_cursor, YYCURSOR, 1); + memcpy(s->raw_buffer+s->raw_buffer_cursor, VVCURSOR, 1); s->raw_buffer_cursor++; - ++YYCURSOR; + ++VVCURSOR; + } + + } else { + + +// 181 "scanner.c" + { + VVCTYPE vvch; + unsigned int vvaccept = 0; + + vvch = *VVCURSOR; + switch (vvch) { + case 0x00: goto vv71; + case '\t': + case '\r': + case ' ': goto vv67; + case '\n': goto vv69; + case '!': goto vv59; + case '"': goto vv28; + case '%': goto vv22; + case '\'': goto vv30; + case '(': goto vv45; + case ')': goto vv47; + case '*': goto vv35; + case '+': goto vv33; + case ',': goto vv43; + case '-': goto vv24; + case '.': goto vv41; + case '/': goto vv37; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv2; + case ':': goto vv63; + case '<': goto vv53; + case '=': goto vv55; + case '>': goto vv57; + case '?': goto vv65; + case 'A': + case 'a': goto vv12; + case 'B': + case 'b': goto vv14; + case 'C': + case 'c': goto vv16; + case 'D': + case 'd': goto vv19; + case 'E': + case 'e': goto vv7; + case 'F': + case 'f': goto vv8; + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'P': + case 'Q': + case 'U': + case 'V': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'p': + case 'q': + case 'u': + case 'v': + case 'x': + case 'y': + case 'z': goto vv32; + case 'I': goto vv4; + case 'M': + case 'm': goto vv15; + case 'N': + case 'n': goto vv10; + case 'O': + case 'o': goto vv13; + case 'R': + case 'r': goto vv18; + case 'S': + case 's': goto vv9; + case 'T': + case 't': goto vv11; + case 'W': + case 'w': goto vv17; + case '[': goto vv49; + case '\\': goto vv31; + case ']': goto vv51; + case 'i': goto vv6; + case '{': goto vv20; + case '|': goto vv61; + case '}': goto vv26; + case '~': goto vv39; + default: goto vv73; + } +vv2: + vvaccept = 0; + vvch = *(VVMARKER = ++VVCURSOR); + goto vv341; +vv3: +// 182 "scanner.re" + { + token->opcode = PHVOLT_T_INTEGER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; + return 0; + } +// 295 "scanner.c" +vv4: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case 'F': + case 'f': goto vv303; + case 'N': + case 'n': goto vv305; + case 'S': + case 's': goto vv307; + case 'T': + case 't': goto vv309; + default: goto vv101; + } +vv5: +// 495 "scanner.re" + { + token->opcode = PHVOLT_T_IDENTIFIER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; + return 0; + } +// 318 "scanner.c" +vv6: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv303; + case 'N': + case 'n': goto vv305; + case 'S': goto vv307; + case 'T': + case 't': goto vv309; + case 's': goto vv310; + default: goto vv101; + } +vv7: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv235; + case 'M': + case 'm': goto vv236; + case 'N': + case 'n': goto vv237; + case 'V': + case 'v': goto vv238; + case 'X': + case 'x': goto vv239; + default: goto vv101; + } +vv8: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv227; + case 'O': + case 'o': goto vv228; + default: goto vv101; + } +vv9: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv218; + case 'E': + case 'e': goto vv219; + default: goto vv101; + } +vv10: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv205; + case 'U': + case 'u': goto vv206; + default: goto vv101; + } +vv11: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv201; + default: goto vv101; + } +vv12: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv188; + case 'U': + case 'u': goto vv189; + default: goto vv101; + } +vv13: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv183; + case 'R': + case 'r': goto vv184; + default: goto vv101; + } +vv14: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv173; + case 'R': + case 'r': goto vv174; + default: goto vv101; + } +vv15: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv168; + default: goto vv101; + } +vv16: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv152; + case 'O': + case 'o': goto vv153; + default: goto vv101; + } +vv17: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv148; + default: goto vv101; + } +vv18: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv142; + default: goto vv101; + } +vv19: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv133; + case 'O': + case 'o': goto vv134; + default: goto vv101; + } +vv20: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '%': goto vv127; + case '{': goto vv125; + default: goto vv21; + } +vv21: +// 578 "scanner.re" + { + token->opcode = PHVOLT_T_CBRACKET_OPEN; + return 0; + } +// 460 "scanner.c" +vv22: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '}': goto vv123; + default: goto vv23; + } +vv23: +// 523 "scanner.re" + { + token->opcode = PHVOLT_T_MOD; + return 0; + } +// 473 "scanner.c" +vv24: + vvaccept = 1; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case '%': goto vv118; + case '-': goto vv115; + case '=': goto vv113; + case '}': goto vv117; + default: goto vv25; + } +vv25: +// 508 "scanner.re" + { + token->opcode = PHVOLT_T_SUB; + return 0; + } +// 490 "scanner.c" +vv26: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '}': goto vv111; + default: goto vv27; + } +vv27: +// 583 "scanner.re" + { + token->opcode = PHVOLT_T_CBRACKET_CLOSE; + return 0; + } +// 503 "scanner.c" +vv28: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch >= 0x01) goto vv109; +vv29: +// 694 "scanner.re" + { + status = PHVOLT_SCANNER_RETCODE_ERR; + break; + } +// 514 "scanner.c" +vv30: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch <= 0x00) goto vv29; + goto vv103; +vv31: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv29; + } +vv32: + vvch = *++VVCURSOR; + goto vv101; +vv33: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '+': goto vv98; + case '=': goto vv96; + default: goto vv34; + } +vv34: +// 503 "scanner.re" + { + token->opcode = PHVOLT_T_ADD; + return 0; + } +// 594 "scanner.c" +vv35: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv94; + default: goto vv36; + } +vv36: +// 513 "scanner.re" + { + token->opcode = PHVOLT_T_MUL; + return 0; + } +// 607 "scanner.c" +vv37: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv92; + default: goto vv38; + } +vv38: +// 518 "scanner.re" + { + token->opcode = PHVOLT_T_DIV; + return 0; + } +// 620 "scanner.c" +vv39: + ++VVCURSOR; +// 538 "scanner.re" + { + token->opcode = PHVOLT_T_CONCAT; + return 0; + } +// 628 "scanner.c" +vv41: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '.': goto vv90; + default: goto vv42; + } +vv42: +// 548 "scanner.re" + { + token->opcode = PHVOLT_T_DOT; + return 0; + } +// 641 "scanner.c" +vv43: + ++VVCURSOR; +// 553 "scanner.re" + { + token->opcode = PHVOLT_T_COMMA; + return 0; + } +// 649 "scanner.c" +vv45: + ++VVCURSOR; +// 558 "scanner.re" + { + token->opcode = PHVOLT_T_PARENTHESES_OPEN; + return 0; + } +// 657 "scanner.c" +vv47: + ++VVCURSOR; +// 563 "scanner.re" + { + token->opcode = PHVOLT_T_PARENTHESES_CLOSE; + return 0; + } +// 665 "scanner.c" +vv49: + ++VVCURSOR; +// 568 "scanner.re" + { + token->opcode = PHVOLT_T_SBRACKET_OPEN; + return 0; + } +// 673 "scanner.c" +vv51: + ++VVCURSOR; +// 573 "scanner.re" + { + token->opcode = PHVOLT_T_SBRACKET_CLOSE; + return 0; + } +// 681 "scanner.c" +vv53: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv88; + case '>': goto vv86; + default: goto vv54; + } +vv54: +// 653 "scanner.re" + { + token->opcode = PHVOLT_T_LESS; + return 0; + } +// 695 "scanner.c" +vv55: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv82; + default: goto vv56; + } +vv56: +// 593 "scanner.re" + { + token->opcode = PHVOLT_T_ASSIGN; + return 0; + } +// 708 "scanner.c" +vv57: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv80; + default: goto vv58; + } +vv58: +// 658 "scanner.re" + { + token->opcode = PHVOLT_T_GREATER; + return 0; + } +// 721 "scanner.c" +vv59: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv76; + default: goto vv60; + } +vv60: +// 648 "scanner.re" + { + token->opcode = PHVOLT_T_NOT; + return 0; + } +// 734 "scanner.c" +vv61: + ++VVCURSOR; +// 663 "scanner.re" + { + token->opcode = PHVOLT_T_PIPE; + return 0; + } +// 742 "scanner.c" +vv63: + ++VVCURSOR; +// 668 "scanner.re" + { + token->opcode = PHVOLT_T_COLON; + return 0; + } +// 750 "scanner.c" +vv65: + ++VVCURSOR; +// 673 "scanner.re" + { + token->opcode = PHVOLT_T_QUESTION; + return 0; + } +// 758 "scanner.c" +vv67: + ++VVCURSOR; + vvch = *VVCURSOR; + goto vv75; +vv68: +// 678 "scanner.re" + { + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +// 769 "scanner.c" +vv69: + ++VVCURSOR; +// 683 "scanner.re" + { + s->active_line++; + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +// 778 "scanner.c" +vv71: + ++VVCURSOR; +// 689 "scanner.re" + { + status = PHVOLT_SCANNER_RETCODE_EOF; + break; + } +// 786 "scanner.c" +vv73: + vvch = *++VVCURSOR; + goto vv29; +vv74: + ++VVCURSOR; + vvch = *VVCURSOR; +vv75: + switch (vvch) { + case '\t': + case '\r': + case ' ': goto vv74; + default: goto vv68; + } +vv76: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv78; + default: goto vv77; + } +vv77: +// 628 "scanner.re" + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +// 812 "scanner.c" +vv78: + ++VVCURSOR; +// 643 "scanner.re" + { + token->opcode = PHVOLT_T_NOTIDENTICAL; + return 0; + } +// 820 "scanner.c" +vv80: + ++VVCURSOR; +// 618 "scanner.re" + { + token->opcode = PHVOLT_T_GREATEREQUAL; + return 0; + } +// 828 "scanner.c" +vv82: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv84; + default: goto vv83; + } +vv83: +// 623 "scanner.re" + { + token->opcode = PHVOLT_T_EQUALS; + return 0; + } +// 841 "scanner.c" +vv84: + ++VVCURSOR; +// 638 "scanner.re" + { + token->opcode = PHVOLT_T_IDENTICAL; + return 0; + } +// 849 "scanner.c" +vv86: + ++VVCURSOR; +// 633 "scanner.re" + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +// 857 "scanner.c" +vv88: + ++VVCURSOR; +// 588 "scanner.re" + { + token->opcode = PHVOLT_T_LESSEQUAL; + return 0; + } +// 865 "scanner.c" +vv90: + ++VVCURSOR; +// 543 "scanner.re" + { + token->opcode = PHVOLT_T_RANGE; + return 0; + } +// 873 "scanner.c" +vv92: + ++VVCURSOR; +// 613 "scanner.re" + { + token->opcode = PHVOLT_T_DIV_ASSIGN; + return 0; + } +// 881 "scanner.c" +vv94: + ++VVCURSOR; +// 608 "scanner.re" + { + token->opcode = PHVOLT_T_MUL_ASSIGN; + return 0; + } +// 889 "scanner.c" +vv96: + ++VVCURSOR; +// 598 "scanner.re" + { + token->opcode = PHVOLT_T_ADD_ASSIGN; + return 0; + } +// 897 "scanner.c" +vv98: + ++VVCURSOR; +// 528 "scanner.re" + { + token->opcode = PHVOLT_T_INCR; + return 0; + } +// 905 "scanner.c" +vv100: + ++VVCURSOR; + vvch = *VVCURSOR; +vv101: + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv5; + } +vv102: + ++VVCURSOR; + vvch = *VVCURSOR; +vv103: + switch (vvch) { + case 0x00: goto vv104; + case '\'': goto vv106; + case '\\': goto vv105; + default: goto vv102; + } +vv104: + VVCURSOR = VVMARKER; + switch (vvaccept) { + case 0: goto vv3; + case 1: goto vv25; + case 2: goto vv29; + default: goto vv308; + } +vv105: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '\n': goto vv104; + default: goto vv102; + } +vv106: + ++VVCURSOR; +// 486 "scanner.re" + { + token->opcode = PHVOLT_T_STRING; + token->value = estrndup(q, VVCURSOR - q - 1); + token->len = VVCURSOR - q - 1; + q = VVCURSOR; + return 0; + } +// 1012 "scanner.c" +vv108: + ++VVCURSOR; + vvch = *VVCURSOR; +vv109: + switch (vvch) { + case 0x00: goto vv104; + case '"': goto vv106; + case '\\': goto vv110; + default: goto vv108; + } +vv110: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '\n': goto vv104; + default: goto vv108; + } +vv111: + ++VVCURSOR; +// 465 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; + } +// 1038 "scanner.c" +vv113: + ++VVCURSOR; +// 603 "scanner.re" + { + token->opcode = PHVOLT_T_SUB_ASSIGN; + return 0; + } +// 1046 "scanner.c" +vv115: + ++VVCURSOR; +// 533 "scanner.re" + { + token->opcode = PHVOLT_T_DECR; + return 0; + } +// 1054 "scanner.c" +vv117: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv121; + default: goto vv104; + } +vv118: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv119; + default: goto vv104; + } +vv119: + ++VVCURSOR; +// 451 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; + } +// 1076 "scanner.c" +vv121: + ++VVCURSOR; +// 478 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; + } +// 1086 "scanner.c" +vv123: + ++VVCURSOR; +// 439 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; + } +// 1095 "scanner.c" +vv125: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '-': goto vv131; + default: goto vv126; + } +vv126: +// 458 "scanner.re" + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; + } +// 1110 "scanner.c" +vv127: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '-': goto vv129; + default: goto vv128; + } +vv128: +// 433 "scanner.re" + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; + } +// 1124 "scanner.c" +vv129: + ++VVCURSOR; +// 445 "scanner.re" + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; + } +// 1133 "scanner.c" +vv131: + ++VVCURSOR; +// 471 "scanner.re" + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; + } +// 1143 "scanner.c" +vv133: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv136; + default: goto vv101; + } +vv134: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv135; + } +vv135: +// 403 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_DO; + return 0; + } +// 1227 "scanner.c" +vv136: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv137; + default: goto vv101; + } +vv137: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv138; + default: goto vv101; + } +vv138: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv139; + default: goto vv101; + } +vv139: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv140; + default: goto vv101; + } +vv140: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv141; + } +vv141: +// 344 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_DEFINED; + return 0; + } +// 1332 "scanner.c" +vv142: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv143; + default: goto vv101; + } +vv143: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv144; + default: goto vv101; + } +vv144: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv145; + default: goto vv101; + } +vv145: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv146; + default: goto vv101; + } +vv146: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv147; + } +vv147: +// 309 "scanner.re" + { + token->opcode = PHVOLT_T_RETURN; + return 0; + } +// 1436 "scanner.c" +vv148: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv149; + default: goto vv101; + } +vv149: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv150; + default: goto vv101; + } +vv150: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv151; + } +vv151: +// 304 "scanner.re" + { + token->opcode = PHVOLT_T_WITH; + return 0; + } +// 1526 "scanner.c" +vv152: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv162; + case 'L': + case 'l': goto vv161; + default: goto vv101; + } +vv153: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv154; + default: goto vv101; + } +vv154: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv155; + default: goto vv101; + } +vv155: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv156; + default: goto vv101; + } +vv156: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv157; + default: goto vv101; + } +vv157: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv158; + default: goto vv101; + } +vv158: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv159; + default: goto vv101; + } +vv159: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv160; + } +vv160: +// 421 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CONTINUE; + return 0; + } +// 1654 "scanner.c" +vv161: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv166; + default: goto vv101; + } +vv162: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv163; + default: goto vv101; + } +vv163: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv164; + default: goto vv101; + } +vv164: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv165; + } +vv165: +// 392 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CACHE; + return 0; + } +// 1752 "scanner.c" +vv166: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv167; + } +vv167: +// 293 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CALL; + return 0; + } +// 1829 "scanner.c" +vv168: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv169; + default: goto vv101; + } +vv169: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv170; + default: goto vv101; + } +vv170: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv171; + default: goto vv101; + } +vv171: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv172; + } +vv172: +// 282 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_MACRO; + return 0; + } +// 1927 "scanner.c" +vv173: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv179; + default: goto vv101; + } +vv174: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv175; + default: goto vv101; + } +vv175: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv176; + default: goto vv101; + } +vv176: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv177; + default: goto vv101; + } +vv177: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv178; + } +vv178: +// 427 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_BREAK; + return 0; + } +// 2032 "scanner.c" +vv179: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv180; + default: goto vv101; + } +vv180: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv181; + default: goto vv101; + } +vv181: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv182; + } +vv182: +// 271 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_BLOCK; + return 0; + } +// 2123 "scanner.c" +vv183: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv186; + default: goto vv101; + } +vv184: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv185; + } +vv185: +// 266 "scanner.re" + { + token->opcode = PHVOLT_T_OR; + return 0; + } +// 2206 "scanner.c" +vv186: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv187; + } +vv187: +// 368 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_ODD; + return 0; + } +// 2283 "scanner.c" +vv188: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv199; + default: goto vv101; + } +vv189: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv190; + default: goto vv101; + } +vv190: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv191; + default: goto vv101; + } +vv191: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv192; + default: goto vv101; + } +vv192: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv193; + default: goto vv101; + } +vv193: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv194; + default: goto vv101; + } +vv194: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv195; + default: goto vv101; + } +vv195: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv196; + default: goto vv101; + } +vv196: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv197; + default: goto vv101; + } +vv197: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv198; + } +vv198: +// 409 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_AUTOESCAPE; + return 0; + } +// 2423 "scanner.c" +vv199: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv200; + } +vv200: +// 261 "scanner.re" + { + token->opcode = PHVOLT_T_AND; + return 0; + } +// 2499 "scanner.c" +vv201: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv202; + default: goto vv101; + } +vv202: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv203; + default: goto vv101; + } +vv203: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv204; + } +vv204: +// 256 "scanner.re" + { + token->opcode = PHVOLT_T_TRUE; + return 0; + } +// 2589 "scanner.c" +vv205: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv216; + default: goto vv101; + } +vv206: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv207; + case 'M': + case 'm': goto vv208; + default: goto vv101; + } +vv207: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv214; + default: goto vv101; + } +vv208: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv209; + default: goto vv101; + } +vv209: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv210; + default: goto vv101; + } +vv210: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv211; + default: goto vv101; + } +vv211: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv212; + default: goto vv101; + } +vv212: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv213; + } +vv213: +// 374 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_NUMERIC; + return 0; + } +// 2717 "scanner.c" +vv214: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv215; + } +vv215: +// 246 "scanner.re" + { + token->opcode = PHVOLT_T_NULL; + return 0; + } +// 2793 "scanner.c" +vv216: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv217; + } +vv217: +// 338 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_NOT; + return 0; + } +// 2870 "scanner.c" +vv218: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv222; + default: goto vv101; + } +vv219: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv220; + default: goto vv101; + } +vv220: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv221; + } +vv221: +// 241 "scanner.re" + { + token->opcode = PHVOLT_T_SET; + return 0; + } +// 2960 "scanner.c" +vv222: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv223; + default: goto vv101; + } +vv223: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv224; + default: goto vv101; + } +vv224: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv225; + default: goto vv101; + } +vv225: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv226; + } +vv226: +// 380 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_SCALAR; + return 0; + } +// 3058 "scanner.c" +vv227: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv231; + default: goto vv101; + } +vv228: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv229; + default: goto vv101; + } +vv229: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv230; + } +vv230: +// 225 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_FOR; + return 0; + } +// 3149 "scanner.c" +vv231: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv232; + default: goto vv101; + } +vv232: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv233; + default: goto vv101; + } +vv233: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv234; + } +vv234: +// 251 "scanner.re" + { + token->opcode = PHVOLT_T_FALSE; + return 0; + } +// 3239 "scanner.c" +vv235: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv293; + default: goto vv101; + } +vv236: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv289; + default: goto vv101; + } +vv237: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv249; + default: goto vv101; + } +vv238: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv246; + default: goto vv101; + } +vv239: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv240; + default: goto vv101; + } +vv240: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv241; + default: goto vv101; + } +vv241: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv242; + default: goto vv101; + } +vv242: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv243; + default: goto vv101; + } +vv243: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv244; + default: goto vv101; + } +vv244: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv245; + } +vv245: +// 314 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EXTENDS; + return 0; + } +// 3379 "scanner.c" +vv246: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv247; + default: goto vv101; + } +vv247: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv248; + } +vv248: +// 362 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EVEN; + return 0; + } +// 3463 "scanner.c" +vv249: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv250; + case 'B': + case 'b': goto vv251; + case 'C': + case 'c': goto vv252; + case 'F': + case 'f': goto vv253; + case 'I': + case 'i': goto vv254; + case 'M': + case 'm': goto vv255; + default: goto vv101; + } +vv250: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv279; + default: goto vv101; + } +vv251: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv274; + default: goto vv101; + } +vv252: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv266; + default: goto vv101; + } +vv253: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv263; + default: goto vv101; + } +vv254: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv261; + default: goto vv101; + } +vv255: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv256; + default: goto vv101; + } +vv256: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv257; + default: goto vv101; + } +vv257: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv258; + default: goto vv101; + } +vv258: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv259; + default: goto vv101; + } +vv259: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv260; + } +vv260: +// 288 "scanner.re" + { + token->opcode = PHVOLT_T_ENDMACRO; + return 0; + } +// 3619 "scanner.c" +vv261: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv262; + } +vv262: +// 220 "scanner.re" + { + token->opcode = PHVOLT_T_ENDIF; + return 0; + } +// 3695 "scanner.c" +vv263: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv264; + default: goto vv101; + } +vv264: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv265; + } +vv265: +// 231 "scanner.re" + { + token->opcode = PHVOLT_T_ENDFOR; + return 0; + } +// 3778 "scanner.c" +vv266: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv267; + case 'L': + case 'l': goto vv268; + default: goto vv101; + } +vv267: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv271; + default: goto vv101; + } +vv268: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv269; + default: goto vv101; + } +vv269: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv270; + } +vv270: +// 299 "scanner.re" + { + token->opcode = PHVOLT_T_ENDCALL; + return 0; + } +// 3877 "scanner.c" +vv271: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv272; + default: goto vv101; + } +vv272: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv273; + } +vv273: +// 398 "scanner.re" + { + token->opcode = PHVOLT_T_ENDCACHE; + return 0; + } +// 3960 "scanner.c" +vv274: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv275; + default: goto vv101; + } +vv275: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv276; + default: goto vv101; + } +vv276: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv277; + default: goto vv101; + } +vv277: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv278; + } +vv278: +// 277 "scanner.re" + { + token->opcode = PHVOLT_T_ENDBLOCK; + return 0; + } +// 4057 "scanner.c" +vv279: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv280; + default: goto vv101; + } +vv280: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv281; + default: goto vv101; + } +vv281: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv282; + default: goto vv101; + } +vv282: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv283; + default: goto vv101; + } +vv283: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv284; + default: goto vv101; + } +vv284: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv285; + default: goto vv101; + } +vv285: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv286; + default: goto vv101; + } +vv286: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv287; + default: goto vv101; + } +vv287: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv288; + } +vv288: +// 415 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_ENDAUTOESCAPE; + return 0; + } +// 4190 "scanner.c" +vv289: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv290; + default: goto vv101; + } +vv290: + vvch = *++VVCURSOR; + switch (vvch) { + case 'Y': + case 'y': goto vv291; + default: goto vv101; + } +vv291: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv292; + } +vv292: +// 356 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EMPTY; + return 0; + } +// 4281 "scanner.c" +vv293: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv294; + default: goto vv101; + } +vv294: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + case 'F': + case 'f': goto vv296; + case 'I': + case 'i': goto vv297; + default: goto vv295; + } +vv295: +// 205 "scanner.re" + { + token->opcode = PHVOLT_T_ELSE; + return 0; + } +// 4364 "scanner.c" +vv296: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv300; + default: goto vv101; + } +vv297: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv298; + default: goto vv101; + } +vv298: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv299; } - - } else { - - - { - YYCTYPE yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = { - 0, 48, 48, 48, 48, 48, 48, 48, - 48, 52, 48, 48, 48, 52, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 116, 48, 16, 48, 48, 48, 48, 32, - 48, 48, 48, 48, 48, 48, 48, 48, - 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 48, 48, 48, 48, 48, 48, - 48, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 48, 8, 48, 48, 56, - 48, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - }; - - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy71; - case '\t': - case '\r': - case ' ': goto yy67; - case '\n': goto yy69; - case '!': goto yy59; - case '"': goto yy28; - case '%': goto yy22; - case '\'': goto yy30; - case '(': goto yy45; - case ')': goto yy47; - case '*': goto yy35; - case '+': goto yy33; - case ',': goto yy43; - case '-': goto yy24; - case '.': goto yy41; - case '/': goto yy37; +vv299: +// 215 "scanner.re" + { + token->opcode = PHVOLT_T_ELSEIF; + return 0; + } +// 4454 "scanner.c" +vv300: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv301; + default: goto vv101; + } +vv301: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { case '0': case '1': case '2': @@ -115407,1761 +122243,744 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case '6': case '7': case '8': - case '9': goto yy2; - case ':': goto yy63; - case '<': goto yy53; - case '=': goto yy55; - case '>': goto yy57; - case '?': goto yy65; + case '9': case 'A': - case 'a': goto yy12; case 'B': - case 'b': goto yy14; case 'C': - case 'c': goto yy16; case 'D': - case 'd': goto yy19; case 'E': - case 'e': goto yy7; case 'F': - case 'f': goto yy8; case 'G': case 'H': + case 'I': case 'J': case 'K': case 'L': + case 'M': + case 'N': + case 'O': case 'P': case 'Q': + case 'R': + case 'S': + case 'T': case 'U': case 'V': + case 'W': case 'X': case 'Y': case 'Z': + case '\\': case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': case 'g': case 'h': + case 'i': case 'j': case 'k': case 'l': + case 'm': + case 'n': + case 'o': case 'p': case 'q': + case 'r': + case 's': + case 't': case 'u': case 'v': + case 'w': case 'x': case 'y': - case 'z': goto yy32; - case 'I': goto yy4; + case 'z': goto vv100; + default: goto vv302; + } +vv302: +// 210 "scanner.re" + { + token->opcode = PHVOLT_T_ELSEFOR; + return 0; + } +// 4537 "scanner.c" +vv303: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': case 'M': - case 'm': goto yy15; case 'N': - case 'n': goto yy10; case 'O': - case 'o': goto yy13; + case 'P': + case 'Q': case 'R': - case 'r': goto yy18; case 'S': - case 's': goto yy9; case 'T': - case 't': goto yy11; + case 'U': + case 'V': case 'W': - case 'w': goto yy17; - case '[': goto yy49; - case '\\': goto yy31; - case ']': goto yy51; - case 'i': goto yy6; - case '{': goto yy20; - case '|': goto yy61; - case '}': goto yy26; - case '~': goto yy39; - default: goto yy73; - } -yy2: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy341; -yy3: - { - token->opcode = PHVOLT_T_INTEGER; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; - return 0; - } -yy4: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'T') { - if (yych <= 'M') { - if (yych == 'F') goto yy303; - goto yy101; - } else { - if (yych <= 'N') goto yy305; - if (yych <= 'R') goto yy101; - if (yych <= 'S') goto yy307; - goto yy309; - } - } else { - if (yych <= 'n') { - if (yych == 'f') goto yy303; - if (yych <= 'm') goto yy101; - goto yy305; - } else { - if (yych <= 'r') goto yy101; - if (yych <= 's') goto yy307; - if (yych <= 't') goto yy309; - goto yy101; - } - } -yy5: - { - token->opcode = PHVOLT_T_IDENTIFIER; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; - return 0; - } -yy6: - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'M') { - if (yych == 'F') goto yy303; - goto yy101; - } else { - if (yych <= 'N') goto yy305; - if (yych <= 'R') goto yy101; - if (yych <= 'S') goto yy307; - goto yy309; - } - } else { - if (yych <= 'n') { - if (yych == 'f') goto yy303; - if (yych <= 'm') goto yy101; - goto yy305; - } else { - if (yych <= 'r') goto yy101; - if (yych <= 's') goto yy310; - if (yych <= 't') goto yy309; - goto yy101; - } - } -yy7: - yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych <= 'N') { - if (yych <= 'K') goto yy101; - if (yych <= 'L') goto yy235; - if (yych <= 'M') goto yy236; - goto yy237; - } else { - if (yych == 'V') goto yy238; - if (yych <= 'W') goto yy101; - goto yy239; - } - } else { - if (yych <= 'n') { - if (yych <= 'k') goto yy101; - if (yych <= 'l') goto yy235; - if (yych <= 'm') goto yy236; - goto yy237; - } else { - if (yych <= 'v') { - if (yych <= 'u') goto yy101; - goto yy238; - } else { - if (yych == 'x') goto yy239; - goto yy101; - } - } - } -yy8: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy227; - if (yych <= 'N') goto yy101; - goto yy228; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy101; - goto yy227; - } else { - if (yych == 'o') goto yy228; - goto yy101; - } - } -yy9: - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'C') goto yy218; - if (yych <= 'D') goto yy101; - goto yy219; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - goto yy218; - } else { - if (yych == 'e') goto yy219; - goto yy101; - } - } -yy10: - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'O') goto yy205; - if (yych <= 'T') goto yy101; - goto yy206; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy101; - goto yy205; - } else { - if (yych == 'u') goto yy206; - goto yy101; - } - } -yy11: - yych = *++YYCURSOR; - if (yych == 'R') goto yy201; - if (yych == 'r') goto yy201; - goto yy101; -yy12: - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'N') goto yy188; - if (yych <= 'T') goto yy101; - goto yy189; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy101; - goto yy188; - } else { - if (yych == 'u') goto yy189; - goto yy101; - } - } -yy13: - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'D') goto yy183; - if (yych <= 'Q') goto yy101; - goto yy184; - } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy101; - goto yy183; - } else { - if (yych == 'r') goto yy184; - goto yy101; - } - } -yy14: - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'L') goto yy173; - if (yych <= 'Q') goto yy101; - goto yy174; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy101; - goto yy173; - } else { - if (yych == 'r') goto yy174; - goto yy101; - } - } -yy15: - yych = *++YYCURSOR; - if (yych == 'A') goto yy168; - if (yych == 'a') goto yy168; - goto yy101; -yy16: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy152; - if (yych <= 'N') goto yy101; - goto yy153; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy101; - goto yy152; - } else { - if (yych == 'o') goto yy153; - goto yy101; - } - } -yy17: - yych = *++YYCURSOR; - if (yych == 'I') goto yy148; - if (yych == 'i') goto yy148; - goto yy101; -yy18: - yych = *++YYCURSOR; - if (yych == 'E') goto yy142; - if (yych == 'e') goto yy142; - goto yy101; -yy19: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'E') goto yy133; - if (yych <= 'N') goto yy101; - goto yy134; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy101; - goto yy133; - } else { - if (yych == 'o') goto yy134; - goto yy101; - } - } -yy20: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '%') goto yy127; - if (yych == '{') goto yy125; - { - token->opcode = PHVOLT_T_CBRACKET_OPEN; - return 0; - } -yy22: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '}') goto yy123; - { - token->opcode = PHVOLT_T_MOD; - return 0; - } -yy24: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { - if (yych == '%') goto yy118; - if (yych >= '-') goto yy115; - } else { - if (yych <= '=') { - if (yych >= '=') goto yy113; - } else { - if (yych == '}') goto yy117; - } - } -yy25: - { - token->opcode = PHVOLT_T_SUB; - return 0; - } -yy26: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '}') goto yy111; - { - token->opcode = PHVOLT_T_CBRACKET_CLOSE; - return 0; - } -yy28: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych >= 0x01) goto yy109; -yy29: - { - status = PHVOLT_SCANNER_RETCODE_ERR; - break; - } -yy30: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy29; - goto yy103; -yy31: - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') goto yy29; - if (yych <= 'Z') goto yy100; - goto yy29; - } else { - if (yych == '`') goto yy29; - if (yych <= 'z') goto yy100; - goto yy29; - } -yy32: - yych = *++YYCURSOR; - goto yy101; -yy33: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '+') goto yy98; - if (yych == '=') goto yy96; - { - token->opcode = PHVOLT_T_ADD; - return 0; - } -yy35: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy94; - { - token->opcode = PHVOLT_T_MUL; - return 0; - } -yy37: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy92; - { - token->opcode = PHVOLT_T_DIV; - return 0; - } -yy39: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_CONCAT; - return 0; - } -yy41: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '.') goto yy90; - { - token->opcode = PHVOLT_T_DOT; - return 0; - } -yy43: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_COMMA; - return 0; - } -yy45: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_OPEN; - return 0; - } -yy47: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_CLOSE; - return 0; - } -yy49: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_OPEN; - return 0; - } -yy51: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_CLOSE; - return 0; - } -yy53: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '<') goto yy54; - if (yych <= '=') goto yy88; - if (yych <= '>') goto yy86; -yy54: - { - token->opcode = PHVOLT_T_LESS; - return 0; - } -yy55: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy82; - { - token->opcode = PHVOLT_T_ASSIGN; - return 0; - } -yy57: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy80; - { - token->opcode = PHVOLT_T_GREATER; - return 0; - } -yy59: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy76; - { - token->opcode = PHVOLT_T_NOT; - return 0; - } -yy61: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PIPE; - return 0; - } -yy63: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_COLON; - return 0; - } -yy65: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_QUESTION; - return 0; - } -yy67: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy75; -yy68: - { - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -yy69: - ++YYCURSOR; - { - s->active_line++; - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -yy71: - ++YYCURSOR; - { - status = PHVOLT_SCANNER_RETCODE_EOF; - break; - } -yy73: - yych = *++YYCURSOR; - goto yy29; -yy74: - ++YYCURSOR; - yych = *YYCURSOR; -yy75: - if (yybm[0+yych] & 4) { - goto yy74; - } - goto yy68; -yy76: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy78; - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy78: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_NOTIDENTICAL; - return 0; - } -yy80: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_GREATEREQUAL; - return 0; - } -yy82: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy84; - { - token->opcode = PHVOLT_T_EQUALS; - return 0; - } -yy84: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_IDENTICAL; - return 0; - } -yy86: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy88: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_LESSEQUAL; - return 0; - } -yy90: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_RANGE; - return 0; - } -yy92: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_DIV_ASSIGN; - return 0; - } -yy94: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_MUL_ASSIGN; - return 0; - } -yy96: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_ADD_ASSIGN; - return 0; - } -yy98: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_INCR; - return 0; - } -yy100: - ++YYCURSOR; - yych = *YYCURSOR; -yy101: - if (yybm[0+yych] & 8) { - goto yy100; - } - goto yy5; -yy102: - ++YYCURSOR; - yych = *YYCURSOR; -yy103: - if (yybm[0+yych] & 16) { - goto yy102; - } - if (yych <= 0x00) goto yy104; - if (yych <= '[') goto yy106; - goto yy105; -yy104: - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy3; - } else { - goto yy25; - } - } else { - if (yyaccept <= 2) { - goto yy29; - } else { - goto yy308; - } - } -yy105: - ++YYCURSOR; - yych = *YYCURSOR; - if (yych == '\n') goto yy104; - goto yy102; -yy106: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_STRING; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; - return 0; - } -yy108: - ++YYCURSOR; - yych = *YYCURSOR; -yy109: - if (yybm[0+yych] & 32) { - goto yy108; - } - if (yych <= 0x00) goto yy104; - if (yych <= '[') goto yy106; - ++YYCURSOR; - yych = *YYCURSOR; - if (yych == '\n') goto yy104; - goto yy108; -yy111: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -yy113: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SUB_ASSIGN; - return 0; - } -yy115: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_DECR; - return 0; - } -yy117: - yych = *++YYCURSOR; - if (yych == '}') goto yy121; - goto yy104; -yy118: - yych = *++YYCURSOR; - if (yych != '}') goto yy104; - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -yy121: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -yy123: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -yy125: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy131; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -yy127: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy129; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -yy129: - ++YYCURSOR; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -yy131: - ++YYCURSOR; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -yy133: - yych = *++YYCURSOR; - if (yych == 'F') goto yy136; - if (yych == 'f') goto yy136; - goto yy101; -yy134: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_DO; - return 0; - } -yy136: - yych = *++YYCURSOR; - if (yych == 'I') goto yy137; - if (yych != 'i') goto yy101; -yy137: - yych = *++YYCURSOR; - if (yych == 'N') goto yy138; - if (yych != 'n') goto yy101; -yy138: - yych = *++YYCURSOR; - if (yych == 'E') goto yy139; - if (yych != 'e') goto yy101; -yy139: - yych = *++YYCURSOR; - if (yych == 'D') goto yy140; - if (yych != 'd') goto yy101; -yy140: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_DEFINED; - return 0; - } -yy142: - yych = *++YYCURSOR; - if (yych == 'T') goto yy143; - if (yych != 't') goto yy101; -yy143: - yych = *++YYCURSOR; - if (yych == 'U') goto yy144; - if (yych != 'u') goto yy101; -yy144: - yych = *++YYCURSOR; - if (yych == 'R') goto yy145; - if (yych != 'r') goto yy101; -yy145: - yych = *++YYCURSOR; - if (yych == 'N') goto yy146; - if (yych != 'n') goto yy101; -yy146: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_RETURN; - return 0; - } -yy148: - yych = *++YYCURSOR; - if (yych == 'T') goto yy149; - if (yych != 't') goto yy101; -yy149: - yych = *++YYCURSOR; - if (yych == 'H') goto yy150; - if (yych != 'h') goto yy101; -yy150: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_WITH; - return 0; - } -yy152: - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == 'C') goto yy162; - if (yych <= 'K') goto yy101; - goto yy161; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - goto yy162; - } else { - if (yych == 'l') goto yy161; - goto yy101; - } - } -yy153: - yych = *++YYCURSOR; - if (yych == 'N') goto yy154; - if (yych != 'n') goto yy101; -yy154: - yych = *++YYCURSOR; - if (yych == 'T') goto yy155; - if (yych != 't') goto yy101; -yy155: - yych = *++YYCURSOR; - if (yych == 'I') goto yy156; - if (yych != 'i') goto yy101; -yy156: - yych = *++YYCURSOR; - if (yych == 'N') goto yy157; - if (yych != 'n') goto yy101; -yy157: - yych = *++YYCURSOR; - if (yych == 'U') goto yy158; - if (yych != 'u') goto yy101; -yy158: - yych = *++YYCURSOR; - if (yych == 'E') goto yy159; - if (yych != 'e') goto yy101; -yy159: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CONTINUE; - return 0; - } -yy161: - yych = *++YYCURSOR; - if (yych == 'L') goto yy166; - if (yych == 'l') goto yy166; - goto yy101; -yy162: - yych = *++YYCURSOR; - if (yych == 'H') goto yy163; - if (yych != 'h') goto yy101; -yy163: - yych = *++YYCURSOR; - if (yych == 'E') goto yy164; - if (yych != 'e') goto yy101; -yy164: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CACHE; - return 0; - } -yy166: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CALL; - return 0; - } -yy168: - yych = *++YYCURSOR; - if (yych == 'C') goto yy169; - if (yych != 'c') goto yy101; -yy169: - yych = *++YYCURSOR; - if (yych == 'R') goto yy170; - if (yych != 'r') goto yy101; -yy170: - yych = *++YYCURSOR; - if (yych == 'O') goto yy171; - if (yych != 'o') goto yy101; -yy171: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_MACRO; - return 0; - } -yy173: - yych = *++YYCURSOR; - if (yych == 'O') goto yy179; - if (yych == 'o') goto yy179; - goto yy101; -yy174: - yych = *++YYCURSOR; - if (yych == 'E') goto yy175; - if (yych != 'e') goto yy101; -yy175: - yych = *++YYCURSOR; - if (yych == 'A') goto yy176; - if (yych != 'a') goto yy101; -yy176: - yych = *++YYCURSOR; - if (yych == 'K') goto yy177; - if (yych != 'k') goto yy101; -yy177: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_BREAK; - return 0; - } -yy179: - yych = *++YYCURSOR; - if (yych == 'C') goto yy180; - if (yych != 'c') goto yy101; -yy180: - yych = *++YYCURSOR; - if (yych == 'K') goto yy181; - if (yych != 'k') goto yy101; -yy181: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_BLOCK; - return 0; - } -yy183: - yych = *++YYCURSOR; - if (yych == 'D') goto yy186; - if (yych == 'd') goto yy186; - goto yy101; -yy184: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_OR; - return 0; - } -yy186: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_ODD; - return 0; - } -yy188: - yych = *++YYCURSOR; - if (yych == 'D') goto yy199; - if (yych == 'd') goto yy199; - goto yy101; -yy189: - yych = *++YYCURSOR; - if (yych == 'T') goto yy190; - if (yych != 't') goto yy101; -yy190: - yych = *++YYCURSOR; - if (yych == 'O') goto yy191; - if (yych != 'o') goto yy101; -yy191: - yych = *++YYCURSOR; - if (yych == 'E') goto yy192; - if (yych != 'e') goto yy101; -yy192: - yych = *++YYCURSOR; - if (yych == 'S') goto yy193; - if (yych != 's') goto yy101; -yy193: - yych = *++YYCURSOR; - if (yych == 'C') goto yy194; - if (yych != 'c') goto yy101; -yy194: - yych = *++YYCURSOR; - if (yych == 'A') goto yy195; - if (yych != 'a') goto yy101; -yy195: - yych = *++YYCURSOR; - if (yych == 'P') goto yy196; - if (yych != 'p') goto yy101; -yy196: - yych = *++YYCURSOR; - if (yych == 'E') goto yy197; - if (yych != 'e') goto yy101; -yy197: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv304; } +vv304: +// 199 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_AUTOESCAPE; - return 0; - } -yy199: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_AND; + token->opcode = PHVOLT_T_IF; return 0; } -yy201: - yych = *++YYCURSOR; - if (yych == 'U') goto yy202; - if (yych != 'u') goto yy101; -yy202: - yych = *++YYCURSOR; - if (yych == 'E') goto yy203; - if (yych != 'e') goto yy101; -yy203: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4614 "scanner.c" +vv305: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + case 'C': + case 'c': goto vv333; + default: goto vv306; } +vv306: +// 236 "scanner.re" { - token->opcode = PHVOLT_T_TRUE; + token->opcode = PHVOLT_T_IN; return 0; } -yy205: - yych = *++YYCURSOR; - if (yych == 'T') goto yy216; - if (yych == 't') goto yy216; - goto yy101; -yy206: - yych = *++YYCURSOR; - if (yych <= 'M') { - if (yych <= 'K') goto yy101; - if (yych >= 'M') goto yy208; - } else { - if (yych <= 'k') goto yy101; - if (yych <= 'l') goto yy207; - if (yych <= 'm') goto yy208; - goto yy101; - } -yy207: - yych = *++YYCURSOR; - if (yych == 'L') goto yy214; - if (yych == 'l') goto yy214; - goto yy101; -yy208: - yych = *++YYCURSOR; - if (yych == 'E') goto yy209; - if (yych != 'e') goto yy101; -yy209: - yych = *++YYCURSOR; - if (yych == 'R') goto yy210; - if (yych != 'r') goto yy101; -yy210: - yych = *++YYCURSOR; - if (yych == 'I') goto yy211; - if (yych != 'i') goto yy101; -yy211: - yych = *++YYCURSOR; - if (yych == 'C') goto yy212; - if (yych != 'c') goto yy101; -yy212: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4690 "scanner.c" +vv307: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv332; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv308; } +vv308: +// 332 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_NUMERIC; + token->opcode = PHVOLT_T_IS; return 0; } -yy214: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4769 "scanner.c" +vv309: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv325; + default: goto vv101; + } +vv310: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv311; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv308; + } +vv311: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': goto vv315; + case 'n': goto vv312; + default: goto vv314; + } +vv312: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': goto vv316; + case 'o': goto vv323; + default: goto vv104; + } +vv313: + ++VVCURSOR; + vvch = *VVCURSOR; +vv314: + switch (vvch) { + case ' ': goto vv313; + case 'n': goto vv319; + default: goto vv104; + } +vv315: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv316; + default: goto vv104; } - { - token->opcode = PHVOLT_T_NULL; - return 0; - } -yy216: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv316: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv317; + default: goto vv104; } +vv317: + ++VVCURSOR; +vv318: +// 320 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_NOT; - return 0; - } -yy218: - yych = *++YYCURSOR; - if (yych == 'A') goto yy222; - if (yych == 'a') goto yy222; - goto yy101; -yy219: - yych = *++YYCURSOR; - if (yych == 'T') goto yy220; - if (yych != 't') goto yy101; -yy220: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_SET; + token->opcode = PHVOLT_T_NOTEQUALS; return 0; } -yy222: - yych = *++YYCURSOR; - if (yych == 'L') goto yy223; - if (yych != 'l') goto yy101; -yy223: - yych = *++YYCURSOR; - if (yych == 'A') goto yy224; - if (yych != 'a') goto yy101; -yy224: - yych = *++YYCURSOR; - if (yych == 'R') goto yy225; - if (yych != 'r') goto yy101; -yy225: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } +// 4894 "scanner.c" +vv319: + vvch = *++VVCURSOR; + switch (vvch) { + case 'o': goto vv320; + default: goto vv104; + } +vv320: + vvch = *++VVCURSOR; + switch (vvch) { + case 't': goto vv321; + default: goto vv104; + } +vv321: + ++VVCURSOR; +// 326 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_SCALAR; + token->opcode = PHVOLT_T_NOTEQUALS; return 0; } -yy227: - yych = *++YYCURSOR; - if (yych == 'L') goto yy231; - if (yych == 'l') goto yy231; - goto yy101; -yy228: - yych = *++YYCURSOR; - if (yych == 'R') goto yy229; - if (yych != 'r') goto yy101; -yy229: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4915 "scanner.c" +vv323: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': goto vv317; + case 't': goto vv324; + default: goto vv104; + } +vv324: + vvch = *++VVCURSOR; + goto vv318; +vv325: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv326; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_FOR; - return 0; - } -yy231: - yych = *++YYCURSOR; - if (yych == 'S') goto yy232; - if (yych != 's') goto yy101; -yy232: - yych = *++YYCURSOR; - if (yych == 'E') goto yy233; - if (yych != 'e') goto yy101; -yy233: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv326: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv327; + default: goto vv101; } - { - token->opcode = PHVOLT_T_FALSE; - return 0; - } -yy235: - yych = *++YYCURSOR; - if (yych == 'S') goto yy293; - if (yych == 's') goto yy293; - goto yy101; -yy236: - yych = *++YYCURSOR; - if (yych == 'P') goto yy289; - if (yych == 'p') goto yy289; - goto yy101; -yy237: - yych = *++YYCURSOR; - if (yych == 'D') goto yy249; - if (yych == 'd') goto yy249; - goto yy101; -yy238: - yych = *++YYCURSOR; - if (yych == 'E') goto yy246; - if (yych == 'e') goto yy246; - goto yy101; -yy239: - yych = *++YYCURSOR; - if (yych == 'T') goto yy240; - if (yych != 't') goto yy101; -yy240: - yych = *++YYCURSOR; - if (yych == 'E') goto yy241; - if (yych != 'e') goto yy101; -yy241: - yych = *++YYCURSOR; - if (yych == 'N') goto yy242; - if (yych != 'n') goto yy101; -yy242: - yych = *++YYCURSOR; - if (yych == 'D') goto yy243; - if (yych != 'd') goto yy101; -yy243: - yych = *++YYCURSOR; - if (yych == 'S') goto yy244; - if (yych != 's') goto yy101; -yy244: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv327: + vvch = *++VVCURSOR; + switch (vvch) { + case 'B': + case 'b': goto vv328; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_EXTENDS; - return 0; - } -yy246: - yych = *++YYCURSOR; - if (yych == 'N') goto yy247; - if (yych != 'n') goto yy101; -yy247: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv328: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv329; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_EVEN; - return 0; - } -yy249: - yych = *++YYCURSOR; - switch (yych) { +vv329: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv330; + default: goto vv101; + } +vv330: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': case 'A': - case 'a': goto yy250; case 'B': - case 'b': goto yy251; case 'C': - case 'c': goto yy252; + case 'D': + case 'E': case 'F': - case 'f': goto yy253; + case 'G': + case 'H': case 'I': - case 'i': goto yy254; + case 'J': + case 'K': + case 'L': case 'M': - case 'm': goto yy255; - default: goto yy101; - } -yy250: - yych = *++YYCURSOR; - if (yych == 'U') goto yy279; - if (yych == 'u') goto yy279; - goto yy101; -yy251: - yych = *++YYCURSOR; - if (yych == 'L') goto yy274; - if (yych == 'l') goto yy274; - goto yy101; -yy252: - yych = *++YYCURSOR; - if (yych == 'A') goto yy266; - if (yych == 'a') goto yy266; - goto yy101; -yy253: - yych = *++YYCURSOR; - if (yych == 'O') goto yy263; - if (yych == 'o') goto yy263; - goto yy101; -yy254: - yych = *++YYCURSOR; - if (yych == 'F') goto yy261; - if (yych == 'f') goto yy261; - goto yy101; -yy255: - yych = *++YYCURSOR; - if (yych == 'A') goto yy256; - if (yych != 'a') goto yy101; -yy256: - yych = *++YYCURSOR; - if (yych == 'C') goto yy257; - if (yych != 'c') goto yy101; -yy257: - yych = *++YYCURSOR; - if (yych == 'R') goto yy258; - if (yych != 'r') goto yy101; -yy258: - yych = *++YYCURSOR; - if (yych == 'O') goto yy259; - if (yych != 'o') goto yy101; -yy259: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDMACRO; - return 0; - } -yy261: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDIF; - return 0; - } -yy263: - yych = *++YYCURSOR; - if (yych == 'R') goto yy264; - if (yych != 'r') goto yy101; -yy264: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDFOR; - return 0; - } -yy266: - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == 'C') goto yy267; - if (yych <= 'K') goto yy101; - goto yy268; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - } else { - if (yych == 'l') goto yy268; - goto yy101; - } - } -yy267: - yych = *++YYCURSOR; - if (yych == 'H') goto yy271; - if (yych == 'h') goto yy271; - goto yy101; -yy268: - yych = *++YYCURSOR; - if (yych == 'L') goto yy269; - if (yych != 'l') goto yy101; -yy269: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDCALL; - return 0; - } -yy271: - yych = *++YYCURSOR; - if (yych == 'E') goto yy272; - if (yych != 'e') goto yy101; -yy272: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDCACHE; - return 0; - } -yy274: - yych = *++YYCURSOR; - if (yych == 'O') goto yy275; - if (yych != 'o') goto yy101; -yy275: - yych = *++YYCURSOR; - if (yych == 'C') goto yy276; - if (yych != 'c') goto yy101; -yy276: - yych = *++YYCURSOR; - if (yych == 'K') goto yy277; - if (yych != 'k') goto yy101; -yy277: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDBLOCK; - return 0; - } -yy279: - yych = *++YYCURSOR; - if (yych == 'T') goto yy280; - if (yych != 't') goto yy101; -yy280: - yych = *++YYCURSOR; - if (yych == 'O') goto yy281; - if (yych != 'o') goto yy101; -yy281: - yych = *++YYCURSOR; - if (yych == 'E') goto yy282; - if (yych != 'e') goto yy101; -yy282: - yych = *++YYCURSOR; - if (yych == 'S') goto yy283; - if (yych != 's') goto yy101; -yy283: - yych = *++YYCURSOR; - if (yych == 'C') goto yy284; - if (yych != 'c') goto yy101; -yy284: - yych = *++YYCURSOR; - if (yych == 'A') goto yy285; - if (yych != 'a') goto yy101; -yy285: - yych = *++YYCURSOR; - if (yych == 'P') goto yy286; - if (yych != 'p') goto yy101; -yy286: - yych = *++YYCURSOR; - if (yych == 'E') goto yy287; - if (yych != 'e') goto yy101; -yy287: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_ENDAUTOESCAPE; - return 0; - } -yy289: - yych = *++YYCURSOR; - if (yych == 'T') goto yy290; - if (yych != 't') goto yy101; -yy290: - yych = *++YYCURSOR; - if (yych == 'Y') goto yy291; - if (yych != 'y') goto yy101; -yy291: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv331; } +vv331: +// 386 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_EMPTY; + token->opcode = PHVOLT_T_ITERABLE; return 0; } -yy293: - yych = *++YYCURSOR; - if (yych == 'E') goto yy294; - if (yych != 'e') goto yy101; -yy294: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '[') { - if (yych <= 'E') { - if (yych <= '/') goto yy295; - if (yych <= '9') goto yy100; - if (yych >= 'A') goto yy100; - } else { - if (yych <= 'H') { - if (yych <= 'F') goto yy296; - goto yy100; - } else { - if (yych <= 'I') goto yy297; - if (yych <= 'Z') goto yy100; - } - } - } else { - if (yych <= 'e') { - if (yych <= '^') { - if (yych <= '\\') goto yy100; - } else { - if (yych != '`') goto yy100; - } - } else { - if (yych <= 'h') { - if (yych <= 'f') goto yy296; - goto yy100; - } else { - if (yych <= 'i') goto yy297; - if (yych <= 'z') goto yy100; - } - } +// 5037 "scanner.c" +vv332: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv315; + default: goto vv104; } -yy295: - { - token->opcode = PHVOLT_T_ELSE; - return 0; - } -yy296: - yych = *++YYCURSOR; - if (yych == 'O') goto yy300; - if (yych == 'o') goto yy300; - goto yy101; -yy297: - yych = *++YYCURSOR; - if (yych == 'F') goto yy298; - if (yych != 'f') goto yy101; -yy298: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv333: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv334; + default: goto vv101; } - { - token->opcode = PHVOLT_T_ELSEIF; - return 0; - } -yy300: - yych = *++YYCURSOR; - if (yych == 'R') goto yy301; - if (yych != 'r') goto yy101; -yy301: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv334: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv335; + default: goto vv101; } - { - token->opcode = PHVOLT_T_ELSEFOR; - return 0; - } -yy303: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv335: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv336; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_IF; - return 0; - } -yy305: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '[') { - if (yych <= '@') { - if (yych <= '/') goto yy306; - if (yych <= '9') goto yy100; - } else { - if (yych == 'C') goto yy333; - if (yych <= 'Z') goto yy100; - } - } else { - if (yych <= '`') { - if (yych <= '\\') goto yy100; - if (yych == '_') goto yy100; - } else { - if (yych == 'c') goto yy333; - if (yych <= 'z') goto yy100; - } +vv336: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv337; + default: goto vv101; } -yy306: - { - token->opcode = PHVOLT_T_IN; - return 0; - } -yy307: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy100; +vv337: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv338; } - if (yych == ' ') goto yy332; -yy308: +vv338: +// 350 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_IS; - return 0; - } -yy309: - yych = *++YYCURSOR; - if (yych == 'E') goto yy325; - if (yych == 'e') goto yy325; - goto yy101; -yy310: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy100; - } - if (yych != ' ') goto yy308; - yych = *++YYCURSOR; - if (yych == 'N') goto yy315; - if (yych != 'n') goto yy314; - yych = *++YYCURSOR; - if (yych == 'O') goto yy316; - if (yych == 'o') goto yy323; - goto yy104; -yy313: - ++YYCURSOR; - yych = *YYCURSOR; -yy314: - if (yybm[0+yych] & 64) { - goto yy313; - } - if (yych == 'n') goto yy319; - goto yy104; -yy315: - yych = *++YYCURSOR; - if (yych == 'O') goto yy316; - if (yych != 'o') goto yy104; -yy316: - yych = *++YYCURSOR; - if (yych == 'T') goto yy317; - if (yych != 't') goto yy104; -yy317: - ++YYCURSOR; -yy318: - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy319: - yych = *++YYCURSOR; - if (yych != 'o') goto yy104; - yych = *++YYCURSOR; - if (yych != 't') goto yy104; - ++YYCURSOR; - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; + token->opcode = PHVOLT_T_INCLUDE; return 0; } -yy323: - yych = *++YYCURSOR; - if (yych == 'T') goto yy317; - if (yych != 't') goto yy104; - yych = *++YYCURSOR; - goto yy318; -yy325: - yych = *++YYCURSOR; - if (yych == 'R') goto yy326; - if (yych != 'r') goto yy101; -yy326: - yych = *++YYCURSOR; - if (yych == 'A') goto yy327; - if (yych != 'a') goto yy101; -yy327: - yych = *++YYCURSOR; - if (yych == 'B') goto yy328; - if (yych != 'b') goto yy101; -yy328: - yych = *++YYCURSOR; - if (yych == 'L') goto yy329; - if (yych != 'l') goto yy101; -yy329: - yych = *++YYCURSOR; - if (yych == 'E') goto yy330; - if (yych != 'e') goto yy101; -yy330: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 5149 "scanner.c" +vv339: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv342; + default: goto vv104; + } +vv340: + vvaccept = 0; + VVMARKER = ++VVCURSOR; + vvch = *VVCURSOR; +vv341: + switch (vvch) { + case '.': goto vv339; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv340; + default: goto vv3; } - { - s->statement_position++; - token->opcode = PHVOLT_T_ITERABLE; - return 0; - } -yy332: - yych = *++YYCURSOR; - if (yych == 'N') goto yy315; - if (yych == 'n') goto yy315; - goto yy104; -yy333: - yych = *++YYCURSOR; - if (yych == 'L') goto yy334; - if (yych != 'l') goto yy101; -yy334: - yych = *++YYCURSOR; - if (yych == 'U') goto yy335; - if (yych != 'u') goto yy101; -yy335: - yych = *++YYCURSOR; - if (yych == 'D') goto yy336; - if (yych != 'd') goto yy101; -yy336: - yych = *++YYCURSOR; - if (yych == 'E') goto yy337; - if (yych != 'e') goto yy101; -yy337: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv342: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv342; + default: goto vv344; } - { - s->statement_position++; - token->opcode = PHVOLT_T_INCLUDE; - return 0; - } -yy339: - yych = *++YYCURSOR; - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy342; - goto yy104; -yy340: - yyaccept = 0; - YYMARKER = ++YYCURSOR; - yych = *YYCURSOR; -yy341: - if (yybm[0+yych] & 128) { - goto yy340; - } - if (yych == '.') goto yy339; - goto yy3; -yy342: - ++YYCURSOR; - yych = *YYCURSOR; - if (yych <= '/') goto yy344; - if (yych <= '9') goto yy342; -yy344: +vv344: +// 191 "scanner.re" { token->opcode = PHVOLT_T_DOUBLE; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; return 0; } +// 5209 "scanner.c" } +// 699 "scanner.re" } @@ -117172,58 +122991,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_AdapterInterface) { - - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, AdapterInterface, phalcon, paginator_adapterinterface, phalcon_paginator_adapterinterface_method_entry); - - return SUCCESS; - -} - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, __construct); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setCurrentPage); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getPaginate); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setLimit); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getLimit); - - - - -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { - - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; - -} - - - - #ifdef HAVE_CONFIG_H #endif @@ -117235,43 +123002,19 @@ ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_model_method_entry, 0); +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter) { - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator, Adapter, phalcon, paginator_adapter, phalcon_paginator_adapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_paginator_adapter_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_paginator_adapter_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_model_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { - - zval *config_param = NULL, *page, *limit; - zval *config = NULL; - - zephir_fetch_params(0, 1, 0, &config_param); - - config = config_param; - - - - zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); - if (zephir_array_isset_string_fetch(&limit, config, SS("limit"), 1 TSRMLS_CC)) { - zephir_update_property_this(this_ptr, SL("_limitRows"), limit TSRMLS_CC); - } - if (zephir_array_isset_string_fetch(&page, config, SS("page"), 1 TSRMLS_CC)) { - zephir_update_property_this(this_ptr, SL("_page"), page TSRMLS_CC); - } - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage) { +static PHP_METHOD(Phalcon_Paginator_Adapter, setCurrentPage) { zval *page_param = NULL, *_0; int page; @@ -117288,7 +123031,7 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit) { +static PHP_METHOD(Phalcon_Paginator_Adapter, setLimit) { zval *limitRows_param = NULL, *_0; int limitRows; @@ -117305,18 +123048,116 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getLimit) { +static PHP_METHOD(Phalcon_Paginator_Adapter, getLimit) { RETURN_MEMBER(this_ptr, "_limitRows"); } + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_AdapterInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, AdapterInterface, phalcon, paginator_adapterinterface, phalcon_paginator_adapterinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, __construct); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setCurrentPage); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getPaginate); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setLimit); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getLimit); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_model_method_entry, 0); + + zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_paginator_adapter_model_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { + + zval *config_param = NULL, *page, *limit; + zval *config = NULL; + + zephir_fetch_params(0, 1, 0, &config_param); + + config = config_param; + + + + zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); + if (zephir_array_isset_string_fetch(&limit, config, SS("limit"), 1 TSRMLS_CC)) { + zephir_update_property_this(this_ptr, SL("_limitRows"), limit TSRMLS_CC); + } + if (zephir_array_isset_string_fetch(&page, config, SS("page"), 1 TSRMLS_CC)) { + zephir_update_property_this(this_ptr, SL("_page"), page TSRMLS_CC); + } + +} + static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { - zephir_fcall_cache_entry *_3 = NULL, *_5 = NULL; - int pageNumber, show, n, start, lastShowPage, i, next, pagesTotal, before, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *pageItems, *page, *valid = NULL, *_0, *_1, *_2 = NULL, *_4 = NULL, *_6; + zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; + int pageNumber, show, n, start, lastShowPage, i, next, totalPages, before, ZEPHIR_LAST_CALL_STATUS; + zval *config, *items, *pageItems, *page, *_0, *_1, *_2 = NULL, *_3 = NULL, *_4 = NULL, *_7; ZEPHIR_MM_GROW(); @@ -117326,19 +123167,19 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_OBS_VAR(config); zephir_read_property_this(&config, this_ptr, SL("_config"), PH_NOISY_CC); ZEPHIR_OBS_VAR(items); - zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/model.zep", 115 TSRMLS_CC); + zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/model.zep", 80 TSRMLS_CC); ZEPHIR_OBS_VAR(_1); zephir_read_property_this(&_1, this_ptr, SL("_page"), PH_NOISY_CC); pageNumber = zephir_get_intval(_1); if (Z_TYPE_P(items) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/model.zep", 119); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/model.zep", 84); return; } if (pageNumber <= 0) { pageNumber = 1; } if (show <= 0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "The start page number is zero or less", "phalcon/paginator/adapter/model.zep", 129); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "The start page number is zero or less", "phalcon/paginator/adapter/model.zep", 94); return; } n = zephir_fast_count_int(items TSRMLS_CC); @@ -117347,9 +123188,9 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(pageItems); array_init(pageItems); if (zephir_safe_mod_long_long(n, show TSRMLS_CC) != 0) { - pagesTotal = (int) ((zephir_safe_div_long_long(n, show TSRMLS_CC) + (double) (1))); + totalPages = (int) ((zephir_safe_div_long_long(n, show TSRMLS_CC) + (double) (1))); } else { - pagesTotal = (int) (zephir_safe_div_long_long(n, show TSRMLS_CC)); + totalPages = (int) (zephir_safe_div_long_long(n, show TSRMLS_CC)); } if (n > 0) { if (start <= n) { @@ -117366,23 +123207,25 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { } i = 1; while (1) { - ZEPHIR_CALL_METHOD(&valid, items, "valid", &_3); + ZEPHIR_CALL_METHOD(&_3, items, "valid", NULL); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(valid)) { + if (!(zephir_is_true(_3))) { break; } ZEPHIR_CALL_METHOD(&_4, items, "current", &_5); zephir_check_call_status(); - zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 162); + zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 121); if (i >= show) { break; } i++; + ZEPHIR_CALL_METHOD(NULL, items, "next", &_6); + zephir_check_call_status(); } } next = (pageNumber + 1); - if (next > pagesTotal) { - next = pagesTotal; + if (next > totalPages) { + next = totalPages; } if (pageNumber > 1) { before = (pageNumber - 1); @@ -117392,29 +123235,29 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(page); object_init(page); zephir_update_property_zval(page, SL("items"), pageItems TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, 1); - zephir_update_property_zval(page, SL("first"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, before); - zephir_update_property_zval(page, SL("before"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pageNumber); - zephir_update_property_zval(page, SL("current"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pagesTotal); - zephir_update_property_zval(page, SL("last"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, next); - zephir_update_property_zval(page, SL("next"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pagesTotal); - zephir_update_property_zval(page, SL("total_pages"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, n); - zephir_update_property_zval(page, SL("total_items"), _6 TSRMLS_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _6 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, 1); + zephir_update_property_zval(page, SL("first"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, before); + zephir_update_property_zval(page, SL("before"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, pageNumber); + zephir_update_property_zval(page, SL("current"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("last"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, next); + zephir_update_property_zval(page, SL("next"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("total_pages"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, n); + zephir_update_property_zval(page, SL("total_items"), _7 TSRMLS_CC); + _7 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _7 TSRMLS_CC); RETURN_CCTOR(page); } @@ -117435,14 +123278,10 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_nativearray_method_entry, 0); - - zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_nativearray_method_entry, 0); zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_nativearray_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; @@ -117470,61 +123309,21 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, __construct) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage) { - - zval *page_param = NULL, *_0; - int page; - - zephir_fetch_params(0, 1, 0, &page_param); - - page = zephir_get_intval(page_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, page); - zephir_update_property_this(this_ptr, SL("_page"), _0 TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setLimit) { - - zval *limitRows_param = NULL, *_0; - int limitRows; - - zephir_fetch_params(0, 1, 0, &limitRows_param); - - limitRows = zephir_get_intval(limitRows_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, limitRows); - zephir_update_property_this(this_ptr, SL("_limitRows"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getLimit) { - - - RETURN_MEMBER(this_ptr, "_limitRows"); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; double roundedTotal; int show, pageNumber, totalPages, number, before, next, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *page, *_0, *_1, _2 = zval_used_for_init, *_3 = NULL, _5, *_6 = NULL, *_8; + zval *config, *items = NULL, *page, *_0, *_1, _2 = zval_used_for_init, *_3 = NULL, _5, *_6 = NULL, *_8; ZEPHIR_MM_GROW(); ZEPHIR_OBS_VAR(config); zephir_read_property_this(&config, this_ptr, SL("_config"), PH_NOISY_CC); ZEPHIR_OBS_VAR(items); - zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/nativearray.zep", 120 TSRMLS_CC); + zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/nativearray.zep", 87 TSRMLS_CC); if (Z_TYPE_P(items) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/nativearray.zep", 123); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/nativearray.zep", 90); return; } ZEPHIR_OBS_VAR(_0); @@ -117536,8 +123335,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { if (pageNumber <= 0) { pageNumber = 1; } - ZEPHIR_INIT_VAR(page); - object_init(page); number = zephir_fast_count_int(items TSRMLS_CC); ZEPHIR_SINIT_VAR(_2); ZVAL_LONG(&_2, show); @@ -117554,20 +123351,20 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZVAL_LONG(&_5, show); ZEPHIR_CALL_FUNCTION(&_6, "array_slice", &_7, items, &_2, &_5); zephir_check_call_status(); - zephir_update_property_zval(page, SL("items"), _6 TSRMLS_CC); + ZEPHIR_CPY_WRT(items, _6); if (pageNumber < totalPages) { next = (pageNumber + 1); } else { next = totalPages; } - ZEPHIR_INIT_ZVAL_NREF(_8); - ZVAL_LONG(_8, next); - zephir_update_property_zval(page, SL("next"), _8 TSRMLS_CC); if (pageNumber > 1) { before = (pageNumber - 1); } else { before = 1; } + ZEPHIR_INIT_VAR(page); + object_init(page); + zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); ZVAL_LONG(_8, 1); zephir_update_property_zval(page, SL("first"), _8 TSRMLS_CC); @@ -117581,6 +123378,9 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZVAL_LONG(_8, totalPages); zephir_update_property_zval(page, SL("last"), _8 TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); + ZVAL_LONG(_8, next); + zephir_update_property_zval(page, SL("next"), _8 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_8); ZVAL_LONG(_8, totalPages); zephir_update_property_zval(page, SL("total_pages"), _8 TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); @@ -117608,16 +123408,12 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_querybuilder_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_querybuilder_method_entry, 0); zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_builder"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_long(phalcon_paginator_adapter_querybuilder_ce, SL("_page"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_querybuilder_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; @@ -117638,20 +123434,18 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); ZEPHIR_OBS_VAR(builder); if (!(zephir_array_isset_string_fetch(&builder, config, SS("builder"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/paginator/adapter/querybuilder.zep", 76); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/paginator/adapter/querybuilder.zep", 67); return; - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, builder); - zephir_check_call_status(); } ZEPHIR_OBS_VAR(limit); if (!(zephir_array_isset_string_fetch(&limit, config, SS("limit"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/paginator/adapter/querybuilder.zep", 82); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/paginator/adapter/querybuilder.zep", 71); return; - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, limit); - zephir_check_call_status(); } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, builder); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, limit); + zephir_check_call_status(); ZEPHIR_OBS_VAR(page); if (zephir_array_isset_string_fetch(&page, config, SS("page"), 0 TSRMLS_CC)) { ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcurrentpage", NULL, page); @@ -117661,23 +123455,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage) { - - zval *currentPage_param = NULL, *_0; - int currentPage; - - zephir_fetch_params(0, 1, 0, ¤tPage_param); - - currentPage = zephir_get_intval(currentPage_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, currentPage); - zephir_update_property_this(this_ptr, SL("_page"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) { @@ -117685,30 +123462,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setLimit) { - - zval *limitRows_param = NULL, *_0; - int limitRows; - - zephir_fetch_params(0, 1, 0, &limitRows_param); - - limitRows = zephir_get_intval(limitRows_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, limitRows); - zephir_update_property_this(this_ptr, SL("_limitRows"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getLimit) { - - - RETURN_MEMBER(this_ptr, "_limitRows"); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder) { zval *builder; @@ -117732,7 +123485,7 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder) { static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { int numberPage, before, ZEPHIR_LAST_CALL_STATUS; - zval *originalBuilder, *builder, *totalBuilder, *totalPages, *limit, *number, *query = NULL, *page, *items = NULL, *totalQuery = NULL, *result = NULL, *row = NULL, *rowcount, *next = NULL, *_0, *_1, *_2 = NULL, *_3, _4, _5; + zval *originalBuilder, *builder, *totalBuilder, *totalPages, *limit, *number, *query = NULL, *page, *items = NULL, *totalQuery = NULL, *result = NULL, *row = NULL, *rowcount, *next = NULL, *_0, *_1 = NULL, *_2, _3, _4, *_5; ZEPHIR_MM_GROW(); @@ -117765,30 +123518,21 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { } ZEPHIR_CALL_METHOD(&query, builder, "getquery", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(page); - object_init(page); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 1); - zephir_update_property_zval(page, SL("first"), _1 TSRMLS_CC); if (numberPage == 1) { before = 1; } else { before = (numberPage - 1); } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, before); - zephir_update_property_zval(page, SL("before"), _1 TSRMLS_CC); ZEPHIR_CALL_METHOD(&items, query, "execute", NULL); zephir_check_call_status(); - zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "COUNT(*) [rowcount]", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(NULL, totalBuilder, "columns", NULL, _2); - zephir_check_temp_parameter(_2); + ZEPHIR_INIT_VAR(_1); + ZVAL_STRING(_1, "COUNT(*) [rowcount]", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(NULL, totalBuilder, "columns", NULL, _1); + zephir_check_temp_parameter(_1); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_2); - ZVAL_NULL(_2); - ZEPHIR_CALL_METHOD(NULL, totalBuilder, "orderby", NULL, _2); + ZEPHIR_INIT_NVAR(_1); + ZVAL_NULL(_1); + ZEPHIR_CALL_METHOD(NULL, totalBuilder, "orderby", NULL, _1); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&totalQuery, totalBuilder, "getquery", NULL); zephir_check_call_status(); @@ -117796,31 +123540,40 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&row, result, "getfirst", NULL); zephir_check_call_status(); - ZEPHIR_OBS_VAR(_3); - zephir_read_property(&_3, row, SL("rowcount"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(_2); + zephir_read_property(&_2, row, SL("rowcount"), PH_NOISY_CC); ZEPHIR_INIT_VAR(rowcount); - ZVAL_LONG(rowcount, zephir_get_intval(_3)); + ZVAL_LONG(rowcount, zephir_get_intval(_2)); + ZEPHIR_SINIT_VAR(_3); + div_function(&_3, rowcount, limit TSRMLS_CC); ZEPHIR_SINIT_VAR(_4); - div_function(&_4, rowcount, limit TSRMLS_CC); - ZEPHIR_SINIT_VAR(_5); - ZVAL_DOUBLE(&_5, zephir_ceil(&_4 TSRMLS_CC)); + ZVAL_DOUBLE(&_4, zephir_ceil(&_3 TSRMLS_CC)); ZEPHIR_INIT_VAR(totalPages); - ZVAL_LONG(totalPages, zephir_get_intval(&_5)); + ZVAL_LONG(totalPages, zephir_get_intval(&_4)); if (ZEPHIR_GT_LONG(totalPages, numberPage)) { ZEPHIR_INIT_VAR(next); ZVAL_LONG(next, (numberPage + 1)); } else { ZEPHIR_CPY_WRT(next, totalPages); } - zephir_update_property_zval(page, SL("next"), next TSRMLS_CC); + ZEPHIR_INIT_VAR(page); + object_init(page); + zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, 1); + zephir_update_property_zval(page, SL("first"), _5 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, before); + zephir_update_property_zval(page, SL("before"), _5 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, numberPage); + zephir_update_property_zval(page, SL("current"), _5 TSRMLS_CC); zephir_update_property_zval(page, SL("last"), totalPages TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, numberPage); - zephir_update_property_zval(page, SL("current"), _1 TSRMLS_CC); + zephir_update_property_zval(page, SL("next"), next TSRMLS_CC); zephir_update_property_zval(page, SL("total_pages"), totalPages TSRMLS_CC); zephir_update_property_zval(page, SL("total_items"), rowcount TSRMLS_CC); - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _1 TSRMLS_CC); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _5 TSRMLS_CC); RETURN_CCTOR(page); } @@ -117925,10 +123678,11 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, connect) { static PHP_METHOD(Phalcon_Queue_Beanstalk, put) { + zend_bool _4; zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_4; + zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_5; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &data, &options); @@ -117966,15 +123720,15 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, put) { ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_3); zephir_check_call_status(); zephir_array_fetch_long(&status, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 128 TSRMLS_CC); - if (ZEPHIR_IS_STRING(status, "INSERTED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 131 TSRMLS_CC); - RETURN_CTOR(_4); + _4 = !ZEPHIR_IS_STRING(status, "INSERTED"); + if (_4) { + _4 = !ZEPHIR_IS_STRING(status, "BURIED"); } - if (ZEPHIR_IS_STRING(status, "BURIED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 135 TSRMLS_CC); - RETURN_CTOR(_4); + if (_4) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_5, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 134 TSRMLS_CC); + RETURN_CTOR(_5); } @@ -118002,20 +123756,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, reserve) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_0); zephir_check_call_status(); - zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 157 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_1, "RESERVED")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 153 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_1, "RESERVED")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); + zephir_check_call_status(); + RETURN_MM(); } @@ -118048,12 +123802,12 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, choose) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 181 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "USING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 182 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 176 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "USING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 180 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -118086,12 +123840,12 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, watch) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 198 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "WATCHING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 199 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 193 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "WATCHING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 197 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -118110,20 +123864,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, peekReady) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 215 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 210 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -118142,20 +123896,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, peekBuried) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 232 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 227 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -118208,9 +123962,9 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, read) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_2, "stream_get_meta_data", &_3, connection); zephir_check_call_status(); - zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 273 TSRMLS_CC); + zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 268 TSRMLS_CC); if (zephir_is_true(_4)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 274); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 269); return; } ZEPHIR_SINIT_NVAR(_0); @@ -118636,12 +124390,10 @@ static PHP_METHOD(Phalcon_Session_Adapter, get) { ZEPHIR_OBS_VAR(value); zephir_get_global(&_SESSION, SS("_SESSION") TSRMLS_CC); if (zephir_array_isset_fetch(&value, _SESSION, key, 0 TSRMLS_CC)) { - if (!(ZEPHIR_IS_EMPTY(value))) { - if (remove) { - zephir_array_unset(&_SESSION, key, PH_SEPARATE); - } - RETURN_CCTOR(value); + if (remove) { + zephir_array_unset(&_SESSION, key, PH_SEPARATE); } + RETURN_CCTOR(value); } RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); @@ -124345,6 +130097,7 @@ zend_class_entry *phalcon_validation_validatorinterface_ce; zend_class_entry *phalcon_mvc_model_validatorinterface_ce; zend_class_entry *phalcon_cache_backendinterface_ce; zend_class_entry *phalcon_cache_frontendinterface_ce; +zend_class_entry *phalcon_db_dialectinterface_ce; zend_class_entry *phalcon_dispatcherinterface_ce; zend_class_entry *phalcon_mvc_model_metadatainterface_ce; zend_class_entry *phalcon_annotations_adapterinterface_ce; @@ -124353,7 +130106,6 @@ zend_class_entry *phalcon_logger_adapterinterface_ce; zend_class_entry *phalcon_logger_formatterinterface_ce; zend_class_entry *phalcon_mvc_model_resultsetinterface_ce; zend_class_entry *phalcon_assets_filterinterface_ce; -zend_class_entry *phalcon_db_dialectinterface_ce; zend_class_entry *phalcon_diinterface_ce; zend_class_entry *phalcon_mvc_viewbaseinterface_ce; zend_class_entry *phalcon_paginator_adapterinterface_ce; @@ -124423,6 +130175,7 @@ zend_class_entry *phalcon_db_dialect_ce; zend_class_entry *phalcon_logger_adapter_ce; zend_class_entry *phalcon_logger_formatter_ce; zend_class_entry *phalcon_mvc_model_exception_ce; +zend_class_entry *phalcon_paginator_adapter_ce; zend_class_entry *phalcon_session_adapter_ce; zend_class_entry *phalcon_translate_adapter_ce; zend_class_entry *phalcon_assets_inline_ce; @@ -124705,6 +130458,7 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Mvc_Model_ValidatorInterface); ZEPHIR_INIT(Phalcon_Cache_BackendInterface); ZEPHIR_INIT(Phalcon_Cache_FrontendInterface); + ZEPHIR_INIT(Phalcon_Db_DialectInterface); ZEPHIR_INIT(Phalcon_DispatcherInterface); ZEPHIR_INIT(Phalcon_Mvc_Model_MetaDataInterface); ZEPHIR_INIT(Phalcon_Annotations_AdapterInterface); @@ -124713,7 +130467,6 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Logger_FormatterInterface); ZEPHIR_INIT(Phalcon_Mvc_Model_ResultsetInterface); ZEPHIR_INIT(Phalcon_Assets_FilterInterface); - ZEPHIR_INIT(Phalcon_Db_DialectInterface); ZEPHIR_INIT(Phalcon_DiInterface); ZEPHIR_INIT(Phalcon_Mvc_ViewBaseInterface); ZEPHIR_INIT(Phalcon_Paginator_AdapterInterface); @@ -124783,6 +130536,7 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Logger_Adapter); ZEPHIR_INIT(Phalcon_Logger_Formatter); ZEPHIR_INIT(Phalcon_Mvc_Model_Exception); + ZEPHIR_INIT(Phalcon_Paginator_Adapter); ZEPHIR_INIT(Phalcon_Session_Adapter); ZEPHIR_INIT(Phalcon_Translate_Adapter); ZEPHIR_INIT(Phalcon_Assets_Inline); diff --git a/build/32bits/phalcon.zep.h b/build/32bits/phalcon.zep.h index fb0c8902e23..6fe9fcc6d17 100644 --- a/build/32bits/phalcon.zep.h +++ b/build/32bits/phalcon.zep.h @@ -1604,6 +1604,8 @@ static PHP_METHOD(Phalcon_Cache_Backend_Memory, exists); static PHP_METHOD(Phalcon_Cache_Backend_Memory, increment); static PHP_METHOD(Phalcon_Cache_Backend_Memory, decrement); static PHP_METHOD(Phalcon_Cache_Backend_Memory, flush); +static PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize); +static PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_get, 0, 0, 1) ZEND_ARG_INFO(0, keyName) @@ -1640,6 +1642,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_decrement, 0, 0, 0) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_unserialize, 0, 0, 1) + ZEND_ARG_INFO(0, data) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, get, arginfo_phalcon_cache_backend_memory_get, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, save, arginfo_phalcon_cache_backend_memory_save, ZEND_ACC_PUBLIC) @@ -1649,6 +1655,8 @@ ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, increment, arginfo_phalcon_cache_backend_memory_increment, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, decrement, arginfo_phalcon_cache_backend_memory_decrement, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, flush, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, serialize, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, unserialize, arginfo_phalcon_cache_backend_memory_unserialize, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -2255,7 +2263,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_addmodules, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_handle, 0, 0, 0) - ZEND_ARG_INFO(0, arguments) + ZEND_ARG_ARRAY_INFO(0, arguments, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_setargument, 0, 0, 0) @@ -3211,13 +3219,13 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapter_pdo_query, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, bindParams) + ZEND_ARG_ARRAY_INFO(0, bindParams, 1) ZEND_ARG_INFO(0, bindTypes) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapter_pdo_execute, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, bindParams) + ZEND_ARG_ARRAY_INFO(0, bindParams, 1) ZEND_ARG_INFO(0, bindTypes) ZEND_END_ARG_INFO() @@ -3559,13 +3567,13 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_query, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, placeholders) + ZEND_ARG_ARRAY_INFO(0, placeholders, 1) ZEND_ARG_INFO(0, dataTypes) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_execute, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, placeholders) + ZEND_ARG_ARRAY_INFO(0, placeholders, 1) ZEND_ARG_INFO(0, dataTypes) ZEND_END_ARG_INFO() @@ -3789,10 +3797,12 @@ zend_class_entry *phalcon_db_dialect_ce; ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect); +static PHP_METHOD(Phalcon_Db_Dialect, escape); static PHP_METHOD(Phalcon_Db_Dialect, limit); static PHP_METHOD(Phalcon_Db_Dialect, forUpdate); static PHP_METHOD(Phalcon_Db_Dialect, sharedLock); static PHP_METHOD(Phalcon_Db_Dialect, getColumnList); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn); static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression); static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable); static PHP_METHOD(Phalcon_Db_Dialect, select); @@ -3801,6 +3811,31 @@ static PHP_METHOD(Phalcon_Db_Dialect, supportsReleaseSavepoints); static PHP_METHOD(Phalcon_Db_Dialect, createSavepoint); static PHP_METHOD(Phalcon_Db_Dialect, releaseSavepoint); static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit); +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias); +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable); +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_escape, 0, 0, 1) + ZEND_ARG_INFO(0, str) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_limit, 0, 0, 2) ZEND_ARG_INFO(0, sqlQuery) @@ -3819,6 +3854,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getcolumnlist, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, columnList, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlcolumn, 0, 0, 1) + ZEND_ARG_INFO(0, column) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpression, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, expression, 0) ZEND_ARG_INFO(0, escapeChar) @@ -3845,11 +3884,116 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_rollbacksavepoint, 0, 0, 1) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionscalar, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionobject, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionqualified, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionbinaryoperations, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionunaryoperations, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionfunctioncall, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionlist, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionall, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressioncastvalue, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionconvertvalue, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionfrom, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionjoins, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionwhere, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressiongroupby, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionhaving, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionorderby, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionlimit, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparecolumnalias, 0, 0, 1) + ZEND_ARG_INFO(0, qualified) + ZEND_ARG_INFO(0, alias) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparetable, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) + ZEND_ARG_INFO(0, alias) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparequalified, 0, 0, 1) + ZEND_ARG_INFO(0, column) + ZEND_ARG_INFO(0, domain) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_db_dialect_method_entry) { + PHP_ME(Phalcon_Db_Dialect, escape, arginfo_phalcon_db_dialect_escape, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, limit, arginfo_phalcon_db_dialect_limit, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, forUpdate, arginfo_phalcon_db_dialect_forupdate, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, sharedLock, arginfo_phalcon_db_dialect_sharedlock, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, getColumnList, arginfo_phalcon_db_dialect_getcolumnlist, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlColumn, arginfo_phalcon_db_dialect_getsqlcolumn, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, getSqlExpression, arginfo_phalcon_db_dialect_getsqlexpression, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, getSqlTable, arginfo_phalcon_db_dialect_getsqltable, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, select, arginfo_phalcon_db_dialect_select, ZEND_ACC_PUBLIC) @@ -3858,6 +4002,26 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_method_entry) { PHP_ME(Phalcon_Db_Dialect, createSavepoint, arginfo_phalcon_db_dialect_createsavepoint, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, releaseSavepoint, arginfo_phalcon_db_dialect_releasesavepoint, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, rollbackSavepoint, arginfo_phalcon_db_dialect_rollbacksavepoint, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionScalar, arginfo_phalcon_db_dialect_getsqlexpressionscalar, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionObject, arginfo_phalcon_db_dialect_getsqlexpressionobject, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionQualified, arginfo_phalcon_db_dialect_getsqlexpressionqualified, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations, arginfo_phalcon_db_dialect_getsqlexpressionbinaryoperations, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations, arginfo_phalcon_db_dialect_getsqlexpressionunaryoperations, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionFunctionCall, arginfo_phalcon_db_dialect_getsqlexpressionfunctioncall, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionList, arginfo_phalcon_db_dialect_getsqlexpressionlist, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionAll, arginfo_phalcon_db_dialect_getsqlexpressionall, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionCastValue, arginfo_phalcon_db_dialect_getsqlexpressioncastvalue, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionConvertValue, arginfo_phalcon_db_dialect_getsqlexpressionconvertvalue, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionFrom, arginfo_phalcon_db_dialect_getsqlexpressionfrom, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionJoins, arginfo_phalcon_db_dialect_getsqlexpressionjoins, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionWhere, arginfo_phalcon_db_dialect_getsqlexpressionwhere, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionGroupBy, arginfo_phalcon_db_dialect_getsqlexpressiongroupby, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionHaving, arginfo_phalcon_db_dialect_getsqlexpressionhaving, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionOrderBy, arginfo_phalcon_db_dialect_getsqlexpressionorderby, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionLimit, arginfo_phalcon_db_dialect_getsqlexpressionlimit, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, prepareColumnAlias, arginfo_phalcon_db_dialect_preparecolumnalias, ZEND_ACC_PROTECTED) + PHP_ME(Phalcon_Db_Dialect, prepareTable, arginfo_phalcon_db_dialect_preparetable, ZEND_ACC_PROTECTED) + PHP_ME(Phalcon_Db_Dialect, prepareQualified, arginfo_phalcon_db_dialect_preparequalified, ZEND_ACC_PROTECTED) PHP_FE_END }; @@ -3875,7 +4039,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView); @@ -3888,6 +4051,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listViews); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions); +static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_getcolumndefinition, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) @@ -3946,29 +4110,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropforeignkey, 0, 0, 3) ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4012,6 +4172,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_tableoptions, 0, 0, 1) ZEND_ARG_INFO(0, schema) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql__gettableoptions, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, definition, 0) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, getColumnDefinition, arginfo_phalcon_db_dialect_mysql_getcolumndefinition, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, addColumn, arginfo_phalcon_db_dialect_mysql_addcolumn, ZEND_ACC_PUBLIC) @@ -4023,7 +4187,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, dropPrimaryKey, arginfo_phalcon_db_dialect_mysql_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, addForeignKey, arginfo_phalcon_db_dialect_mysql_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, dropForeignKey, arginfo_phalcon_db_dialect_mysql_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_MySQL, _getTableOptions, arginfo_phalcon_db_dialect_mysql__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_MySQL, createTable, arginfo_phalcon_db_dialect_mysql_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, dropTable, arginfo_phalcon_db_dialect_mysql_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, createView, arginfo_phalcon_db_dialect_mysql_createview, ZEND_ACC_PUBLIC) @@ -4036,6 +4199,7 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, describeIndexes, arginfo_phalcon_db_dialect_mysql_describeindexes, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, describeReferences, arginfo_phalcon_db_dialect_mysql_describereferences, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, tableOptions, arginfo_phalcon_db_dialect_mysql_tableoptions, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_MySQL, _getTableOptions, arginfo_phalcon_db_dialect_mysql__gettableoptions, ZEND_ACC_PROTECTED) PHP_FE_END }; @@ -4043,6 +4207,184 @@ zend_class_entry *phalcon_db_dialect_oracle_ce; ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, limit); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, getColumnDefinition); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, modifyColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addIndex); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropIndex); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addPrimaryKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropPrimaryKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addForeignKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropForeignKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createTable); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropTable); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createView); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropView); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, viewExists); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listViews); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableExists); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeColumns); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listTables); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeIndexes); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeReferences); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableOptions); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsSavepoints); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_limit, 0, 0, 2) + ZEND_ARG_INFO(0, sqlQuery) + ZEND_ARG_INFO(0, number) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_getcolumndefinition, 0, 0, 1) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addcolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_modifycolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropcolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, columnName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addindex, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, index, Phalcon\\Db\\IndexInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropindex, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, indexName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addprimarykey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, index, Phalcon\\Db\\IndexInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropprimarykey, 0, 0, 2) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addforeignkey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, reference, Phalcon\\Db\\ReferenceInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropforeignkey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, referenceName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_createtable, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_droptable, 0, 0, 2) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_createview, 0, 0, 2) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropview, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_viewexists, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_listviews, 0, 0, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_tableexists, 0, 0, 1) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describecolumns, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_listtables, 0, 0, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describeindexes, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describereferences, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_tableoptions, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_db_dialect_oracle_method_entry) { + PHP_ME(Phalcon_Db_Dialect_Oracle, limit, arginfo_phalcon_db_dialect_oracle_limit, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, getColumnDefinition, arginfo_phalcon_db_dialect_oracle_getcolumndefinition, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addColumn, arginfo_phalcon_db_dialect_oracle_addcolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, modifyColumn, arginfo_phalcon_db_dialect_oracle_modifycolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropColumn, arginfo_phalcon_db_dialect_oracle_dropcolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addIndex, arginfo_phalcon_db_dialect_oracle_addindex, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropIndex, arginfo_phalcon_db_dialect_oracle_dropindex, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addPrimaryKey, arginfo_phalcon_db_dialect_oracle_addprimarykey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropPrimaryKey, arginfo_phalcon_db_dialect_oracle_dropprimarykey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addForeignKey, arginfo_phalcon_db_dialect_oracle_addforeignkey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropForeignKey, arginfo_phalcon_db_dialect_oracle_dropforeignkey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, createTable, arginfo_phalcon_db_dialect_oracle_createtable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropTable, arginfo_phalcon_db_dialect_oracle_droptable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, createView, arginfo_phalcon_db_dialect_oracle_createview, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropView, arginfo_phalcon_db_dialect_oracle_dropview, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, viewExists, arginfo_phalcon_db_dialect_oracle_viewexists, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, listViews, arginfo_phalcon_db_dialect_oracle_listviews, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, tableExists, arginfo_phalcon_db_dialect_oracle_tableexists, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeColumns, arginfo_phalcon_db_dialect_oracle_describecolumns, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, listTables, arginfo_phalcon_db_dialect_oracle_listtables, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeIndexes, arginfo_phalcon_db_dialect_oracle_describeindexes, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeReferences, arginfo_phalcon_db_dialect_oracle_describereferences, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, tableOptions, arginfo_phalcon_db_dialect_oracle_tableoptions, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, supportsSavepoints, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; zend_class_entry *phalcon_db_dialect_postgresql_ce; @@ -4058,7 +4400,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView); @@ -4129,29 +4470,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropforeignkey, 0, ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4206,7 +4543,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_postgresql_method_entry) { PHP_ME(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey, arginfo_phalcon_db_dialect_postgresql_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, addForeignKey, arginfo_phalcon_db_dialect_postgresql_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, dropForeignKey, arginfo_phalcon_db_dialect_postgresql_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_Postgresql, _getTableOptions, arginfo_phalcon_db_dialect_postgresql__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_Postgresql, createTable, arginfo_phalcon_db_dialect_postgresql_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, dropTable, arginfo_phalcon_db_dialect_postgresql_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, createView, arginfo_phalcon_db_dialect_postgresql_createview, ZEND_ACC_PUBLIC) @@ -4236,7 +4572,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView); @@ -4308,29 +4643,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropforeignkey, 0, 0, 3 ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4389,7 +4720,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_sqlite_method_entry) { PHP_ME(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey, arginfo_phalcon_db_dialect_sqlite_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, addForeignKey, arginfo_phalcon_db_dialect_sqlite_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, dropForeignKey, arginfo_phalcon_db_dialect_sqlite_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_Sqlite, _getTableOptions, arginfo_phalcon_db_dialect_sqlite__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_Sqlite, createTable, arginfo_phalcon_db_dialect_sqlite_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, dropTable, arginfo_phalcon_db_dialect_sqlite_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, createView, arginfo_phalcon_db_dialect_sqlite_createview, ZEND_ACC_PUBLIC) @@ -4494,16 +4824,33 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_createtable, 0, 0, 3) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_createview, 0, 0, 2) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_droptable, 0, 0, 2) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_dropview, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_tableexists, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_viewexists, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_describecolumns, 0, 0, 1) ZEND_ARG_INFO(0, table) ZEND_ARG_INFO(0, schema) @@ -4557,8 +4904,11 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialectinterface_method_entry) { PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, addForeignKey, arginfo_phalcon_db_dialectinterface_addforeignkey) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropForeignKey, arginfo_phalcon_db_dialectinterface_dropforeignkey) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, createTable, arginfo_phalcon_db_dialectinterface_createtable) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, createView, arginfo_phalcon_db_dialectinterface_createview) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropTable, arginfo_phalcon_db_dialectinterface_droptable) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropView, arginfo_phalcon_db_dialectinterface_dropview) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, tableExists, arginfo_phalcon_db_dialectinterface_tableexists) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, viewExists, arginfo_phalcon_db_dialectinterface_viewexists) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, describeColumns, arginfo_phalcon_db_dialectinterface_describecolumns) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, listTables, arginfo_phalcon_db_dialectinterface_listtables) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, describeIndexes, arginfo_phalcon_db_dialectinterface_describeindexes) @@ -4985,8 +5335,8 @@ static PHP_METHOD(Phalcon_Debug_Dump, getStyle); static PHP_METHOD(Phalcon_Debug_Dump, setStyles); static PHP_METHOD(Phalcon_Debug_Dump, one); static PHP_METHOD(Phalcon_Debug_Dump, output); -static PHP_METHOD(Phalcon_Debug_Dump, var); -static PHP_METHOD(Phalcon_Debug_Dump, vars); +static PHP_METHOD(Phalcon_Debug_Dump, variable); +static PHP_METHOD(Phalcon_Debug_Dump, variables); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_setdetailed, 0, 0, 1) ZEND_ARG_INFO(0, detailed) @@ -5016,7 +5366,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_output, 0, 0, 1) ZEND_ARG_INFO(0, tab) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_var, 0, 0, 1) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_variable, 0, 0, 1) ZEND_ARG_INFO(0, variable) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() @@ -5030,8 +5380,8 @@ ZEPHIR_INIT_FUNCS(phalcon_debug_dump_method_entry) { PHP_ME(Phalcon_Debug_Dump, setStyles, arginfo_phalcon_debug_dump_setstyles, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Debug_Dump, one, arginfo_phalcon_debug_dump_one, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Debug_Dump, output, arginfo_phalcon_debug_dump_output, ZEND_ACC_PROTECTED) - PHP_ME(Phalcon_Debug_Dump, var, arginfo_phalcon_debug_dump_var, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Debug_Dump, vars, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Debug_Dump, variable, arginfo_phalcon_debug_dump_variable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Debug_Dump, variables, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -6987,6 +7337,7 @@ static PHP_METHOD(Phalcon_Http_Request, get); static PHP_METHOD(Phalcon_Http_Request, getPost); static PHP_METHOD(Phalcon_Http_Request, getPut); static PHP_METHOD(Phalcon_Http_Request, getQuery); +static PHP_METHOD(Phalcon_Http_Request, getHelper); static PHP_METHOD(Phalcon_Http_Request, getServer); static PHP_METHOD(Phalcon_Http_Request, has); static PHP_METHOD(Phalcon_Http_Request, hasPost); @@ -7068,6 +7419,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getquery, 0, 0, 0) ZEND_ARG_INFO(0, noRecursive) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_gethelper, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, source, 0) + ZEND_ARG_INFO(0, name) + ZEND_ARG_INFO(0, filters) + ZEND_ARG_INFO(0, defaultValue) + ZEND_ARG_INFO(0, notAllowEmpty) + ZEND_ARG_INFO(0, noRecursive) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getserver, 0, 0, 1) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() @@ -7114,7 +7474,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_hasfilehelper, 0, 0, 2) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getuploadedfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_smoothfiles, 0, 0, 6) @@ -7143,6 +7503,7 @@ ZEPHIR_INIT_FUNCS(phalcon_http_request_method_entry) { PHP_ME(Phalcon_Http_Request, getPost, arginfo_phalcon_http_request_getpost, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, getPut, arginfo_phalcon_http_request_getput, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, getQuery, arginfo_phalcon_http_request_getquery, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Http_Request, getHelper, arginfo_phalcon_http_request_gethelper, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Http_Request, getServer, arginfo_phalcon_http_request_getserver, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, has, arginfo_phalcon_http_request_has, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, hasPost, arginfo_phalcon_http_request_haspost, ZEND_ACC_PUBLIC) @@ -7314,11 +7675,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_ismethod, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_hasfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_getuploadedfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_requestinterface_method_entry) { @@ -7631,7 +7992,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers_remove, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headers_method_entry) { @@ -7664,7 +8025,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface_setraw, 0, ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headersinterface_method_entry) { @@ -7681,7 +8042,7 @@ zend_class_entry *phalcon_http_responseinterface_ce; ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface); -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 1) ZEND_ARG_INFO(0, code) ZEND_ARG_INFO(0, message) ZEND_END_ARG_INFO() @@ -9106,19 +9467,19 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_findbyid, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_findfirst, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_find, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_count, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_aggregate, 0, 0, 1) - ZEND_ARG_INFO(0, parameters) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_aggregate, 0, 0, 0) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_summatory, 0, 0, 1) @@ -9414,15 +9775,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_findbyid, 0, 0, 1 ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_findfirst, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_find, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_count, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_collectioninterface_method_entry) { @@ -12851,6 +13212,7 @@ zend_class_entry *phalcon_mvc_model_resultset_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek); @@ -12867,7 +13229,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, isFresh); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setHydrateMode); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getHydrateMode); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete); @@ -12917,6 +13278,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset, next, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset, valid, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, key, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, rewind, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset, seek, arginfo_phalcon_mvc_model_resultset_seek, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) @@ -12933,7 +13295,6 @@ ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset, setHydrateMode, arginfo_phalcon_mvc_model_resultset_sethydratemode, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, getHydrateMode, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, getCache, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Mvc_Model_Resultset, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset, getMessages, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, update, arginfo_phalcon_mvc_model_resultset_update, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, delete, arginfo_phalcon_mvc_model_resultset_delete, ZEND_ACC_PUBLIC) @@ -12946,7 +13307,7 @@ zend_class_entry *phalcon_mvc_model_resultset_complex_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Complex); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, valid); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, serialize); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize); @@ -12963,7 +13324,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_complex_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, __construct, arginfo_phalcon_mvc_model_resultset_complex___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, valid, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, toArray, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, serialize, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, unserialize, arginfo_phalcon_mvc_model_resultset_complex_unserialize, ZEND_ACC_PUBLIC) @@ -12975,7 +13336,7 @@ zend_class_entry *phalcon_mvc_model_resultset_simple_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Simple); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize); @@ -12998,7 +13359,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_simple_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, __construct, arginfo_phalcon_mvc_model_resultset_simple___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, valid, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, toArray, arginfo_phalcon_mvc_model_resultset_simple_toarray, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, serialize, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, unserialize, arginfo_phalcon_mvc_model_resultset_simple_unserialize, ZEND_ACC_PUBLIC) @@ -13315,6 +13676,21 @@ zend_class_entry *phalcon_mvc_model_validationfailed_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_validationfailed___construct, 0, 0, 2) + ZEND_ARG_OBJ_INFO(0, model, Phalcon\\Mvc\\Model, 0) + ZEND_ARG_ARRAY_INFO(0, validationMessages, 0) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_mvc_model_validationfailed_method_entry) { + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, __construct, arginfo_phalcon_mvc_model_validationfailed___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, getModel, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, getMessages, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; zend_class_entry *phalcon_mvc_model_validator_ce; @@ -14841,7 +15217,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_convertencoding, 0, ZEND_ARG_INFO(0, to) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_slice, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_slice, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_ARG_INFO(0, start) ZEND_ARG_INFO(0, end) @@ -15032,12 +15408,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler_compilemacr ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler_compilecall, 0, 0, 2) - ZEND_ARG_INFO(0, statement) + ZEND_ARG_ARRAY_INFO(0, statement, 0) ZEND_ARG_INFO(0, extendsMode) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler__statementlist, 0, 0, 1) - ZEND_ARG_INFO(0, statements) + ZEND_ARG_ARRAY_INFO(0, statements, 0) ZEND_ARG_INFO(0, extendsMode) ZEND_END_ARG_INFO() @@ -15394,33 +15770,42 @@ ZEPHIR_INIT_FUNCS(phalcon_mvc_viewinterface_method_entry) { PHP_FE_END }; +zend_class_entry *phalcon_paginator_adapter_ce; + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter); + +static PHP_METHOD(Phalcon_Paginator_Adapter, setCurrentPage); +static PHP_METHOD(Phalcon_Paginator_Adapter, setLimit); +static PHP_METHOD(Phalcon_Paginator_Adapter, getLimit); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_setcurrentpage, 0, 0, 1) + ZEND_ARG_INFO(0, page) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_setlimit, 0, 0, 1) + ZEND_ARG_INFO(0, limitRows) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_method_entry) { + PHP_ME(Phalcon_Paginator_Adapter, setCurrentPage, arginfo_phalcon_paginator_adapter_setcurrentpage, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Paginator_Adapter, setLimit, arginfo_phalcon_paginator_adapter_setlimit, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Paginator_Adapter, getLimit, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; + zend_class_entry *phalcon_paginator_adapter_model_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model); static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model___construct, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, page) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_model_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_Model, __construct, arginfo_phalcon_paginator_adapter_model___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_Model, setCurrentPage, arginfo_phalcon_paginator_adapter_model_setcurrentpage, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_Model, setLimit, arginfo_phalcon_paginator_adapter_model_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_Model, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_Model, getPaginate, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -15430,28 +15815,14 @@ zend_class_entry *phalcon_paginator_adapter_nativearray_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray); static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray___construct, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, page) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_nativearray_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_NativeArray, __construct, arginfo_phalcon_paginator_adapter_nativearray___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage, arginfo_phalcon_paginator_adapter_nativearray_setcurrentpage, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, setLimit, arginfo_phalcon_paginator_adapter_nativearray_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_NativeArray, getPaginate, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -15461,10 +15832,7 @@ zend_class_entry *phalcon_paginator_adapter_querybuilder_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate); @@ -15473,24 +15841,13 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder___construc ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, currentPage) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setquerybuilder, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, builder, Phalcon\\Mvc\\Model\\Query\\Builder, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_querybuilder_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, __construct, arginfo_phalcon_paginator_adapter_querybuilder___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage, arginfo_phalcon_paginator_adapter_querybuilder_setcurrentpage, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setLimit, arginfo_phalcon_paginator_adapter_querybuilder_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder, arginfo_phalcon_paginator_adapter_querybuilder_setquerybuilder, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate, NULL, ZEND_ACC_PUBLIC) diff --git a/build/64bits/phalcon.zep.c b/build/64bits/phalcon.zep.c index 6282f3b7c17..a6a8e9246b7 100644 --- a/build/64bits/phalcon.zep.c +++ b/build/64bits/phalcon.zep.c @@ -3435,11 +3435,6 @@ static void zephir_pow(zval *return_value, zval *op1, zval *op2 TSRMLS_DC); #define ZEPHIR_SCONCAT_VSVV(result, op1, op2, op3, op4) \ zephir_concat_vsvv(&result, op1, op2, sizeof(op2)-1, op3, op4, 1 TSRMLS_CC); -#define ZEPHIR_CONCAT_VSVVV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vsvvv(&result, op1, op2, sizeof(op2)-1, op3, op4, op5, 0 TSRMLS_CC); -#define ZEPHIR_SCONCAT_VSVVV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vsvvv(&result, op1, op2, sizeof(op2)-1, op3, op4, op5, 1 TSRMLS_CC); - #define ZEPHIR_CONCAT_VV(result, op1, op2) \ zephir_concat_vv(&result, op1, op2, 0 TSRMLS_CC); #define ZEPHIR_SCONCAT_VV(result, op1, op2) \ @@ -3460,11 +3455,6 @@ static void zephir_pow(zval *return_value, zval *op1, zval *op2 TSRMLS_DC); #define ZEPHIR_SCONCAT_VVV(result, op1, op2, op3) \ zephir_concat_vvv(&result, op1, op2, op3, 1 TSRMLS_CC); -#define ZEPHIR_CONCAT_VVVSV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vvvsv(&result, op1, op2, op3, op4, sizeof(op4)-1, op5, 0 TSRMLS_CC); -#define ZEPHIR_SCONCAT_VVVSV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vvvsv(&result, op1, op2, op3, op4, sizeof(op4)-1, op5, 1 TSRMLS_CC); - #define ZEPHIR_CONCAT_VVVV(result, op1, op2, op3, op4) \ zephir_concat_vvvv(&result, op1, op2, op3, op4, 0 TSRMLS_CC); #define ZEPHIR_SCONCAT_VVVV(result, op1, op2, op3, op4) \ @@ -3501,12 +3491,10 @@ static void zephir_concat_vsvsv(zval **result, zval *op1, const char *op2, zend_ static void zephir_concat_vsvsvs(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, const char *op4, zend_uint op4_len, zval *op5, const char *op6, zend_uint op6_len, int self_var TSRMLS_DC); static void zephir_concat_vsvsvsv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, const char *op4, zend_uint op4_len, zval *op5, const char *op6, zend_uint op6_len, zval *op7, int self_var TSRMLS_DC); static void zephir_concat_vsvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, int self_var TSRMLS_DC); -static void zephir_concat_vsvvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC); static void zephir_concat_vv(zval **result, zval *op1, zval *op2, int self_var TSRMLS_DC); static void zephir_concat_vvs(zval **result, zval *op1, zval *op2, const char *op3, zend_uint op3_len, int self_var TSRMLS_DC); static void zephir_concat_vvsv(zval **result, zval *op1, zval *op2, const char *op3, zend_uint op3_len, zval *op4, int self_var TSRMLS_DC); static void zephir_concat_vvv(zval **result, zval *op1, zval *op2, zval *op3, int self_var TSRMLS_DC); -static void zephir_concat_vvvsv(zval **result, zval *op1, zval *op2, zval *op3, const char *op4, zend_uint op4_len, zval *op5, int self_var TSRMLS_DC); static void zephir_concat_vvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var TSRMLS_DC); static void zephir_concat_vvvvsvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, const char *op5, zend_uint op5_len, zval *op6, zval *op7, int self_var TSRMLS_DC); static void zephir_concat_vvvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC); @@ -14991,89 +14979,6 @@ static void zephir_concat_vsvv(zval **result, zval *op1, const char *op2, zend_u } -static void zephir_concat_vsvvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC){ - - zval result_copy, op1_copy, op3_copy, op4_copy, op5_copy; - int use_copy = 0, use_copy1 = 0, use_copy3 = 0, use_copy4 = 0, use_copy5 = 0; - uint offset = 0, length; - - if (Z_TYPE_P(op1) != IS_STRING) { - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - if (use_copy1) { - op1 = &op1_copy; - } - } - - if (Z_TYPE_P(op3) != IS_STRING) { - zend_make_printable_zval(op3, &op3_copy, &use_copy3); - if (use_copy3) { - op3 = &op3_copy; - } - } - - if (Z_TYPE_P(op4) != IS_STRING) { - zend_make_printable_zval(op4, &op4_copy, &use_copy4); - if (use_copy4) { - op4 = &op4_copy; - } - } - - if (Z_TYPE_P(op5) != IS_STRING) { - zend_make_printable_zval(op5, &op5_copy, &use_copy5); - if (use_copy5) { - op5 = &op5_copy; - } - } - - length = Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3) + Z_STRLEN_P(op4) + Z_STRLEN_P(op5); - if (self_var) { - - if (Z_TYPE_PP(result) != IS_STRING) { - zend_make_printable_zval(*result, &result_copy, &use_copy); - if (use_copy) { - ZEPHIR_CPY_WRT_CTOR(*result, (&result_copy)); - } - } - - offset = Z_STRLEN_PP(result); - length += offset; - Z_STRVAL_PP(result) = (char *) str_erealloc(Z_STRVAL_PP(result), length + 1); - - } else { - Z_STRVAL_PP(result) = (char *) emalloc(length + 1); - } - - memcpy(Z_STRVAL_PP(result) + offset, Z_STRVAL_P(op1), Z_STRLEN_P(op1)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1), op2, op2_len); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len, Z_STRVAL_P(op3), Z_STRLEN_P(op3)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3), Z_STRVAL_P(op4), Z_STRLEN_P(op4)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3) + Z_STRLEN_P(op4), Z_STRVAL_P(op5), Z_STRLEN_P(op5)); - Z_STRVAL_PP(result)[length] = 0; - Z_TYPE_PP(result) = IS_STRING; - Z_STRLEN_PP(result) = length; - - if (use_copy1) { - zval_dtor(op1); - } - - if (use_copy3) { - zval_dtor(op3); - } - - if (use_copy4) { - zval_dtor(op4); - } - - if (use_copy5) { - zval_dtor(op5); - } - - if (use_copy) { - zval_dtor(&result_copy); - } - -} - static void zephir_concat_vv(zval **result, zval *op1, zval *op2, int self_var TSRMLS_DC){ zval result_copy, op1_copy, op2_copy; @@ -15332,89 +15237,6 @@ static void zephir_concat_vvv(zval **result, zval *op1, zval *op2, zval *op3, in } -static void zephir_concat_vvvsv(zval **result, zval *op1, zval *op2, zval *op3, const char *op4, zend_uint op4_len, zval *op5, int self_var TSRMLS_DC){ - - zval result_copy, op1_copy, op2_copy, op3_copy, op5_copy; - int use_copy = 0, use_copy1 = 0, use_copy2 = 0, use_copy3 = 0, use_copy5 = 0; - uint offset = 0, length; - - if (Z_TYPE_P(op1) != IS_STRING) { - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - if (use_copy1) { - op1 = &op1_copy; - } - } - - if (Z_TYPE_P(op2) != IS_STRING) { - zend_make_printable_zval(op2, &op2_copy, &use_copy2); - if (use_copy2) { - op2 = &op2_copy; - } - } - - if (Z_TYPE_P(op3) != IS_STRING) { - zend_make_printable_zval(op3, &op3_copy, &use_copy3); - if (use_copy3) { - op3 = &op3_copy; - } - } - - if (Z_TYPE_P(op5) != IS_STRING) { - zend_make_printable_zval(op5, &op5_copy, &use_copy5); - if (use_copy5) { - op5 = &op5_copy; - } - } - - length = Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3) + op4_len + Z_STRLEN_P(op5); - if (self_var) { - - if (Z_TYPE_PP(result) != IS_STRING) { - zend_make_printable_zval(*result, &result_copy, &use_copy); - if (use_copy) { - ZEPHIR_CPY_WRT_CTOR(*result, (&result_copy)); - } - } - - offset = Z_STRLEN_PP(result); - length += offset; - Z_STRVAL_PP(result) = (char *) str_erealloc(Z_STRVAL_PP(result), length + 1); - - } else { - Z_STRVAL_PP(result) = (char *) emalloc(length + 1); - } - - memcpy(Z_STRVAL_PP(result) + offset, Z_STRVAL_P(op1), Z_STRLEN_P(op1)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1), Z_STRVAL_P(op2), Z_STRLEN_P(op2)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2), Z_STRVAL_P(op3), Z_STRLEN_P(op3)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3), op4, op4_len); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3) + op4_len, Z_STRVAL_P(op5), Z_STRLEN_P(op5)); - Z_STRVAL_PP(result)[length] = 0; - Z_TYPE_PP(result) = IS_STRING; - Z_STRLEN_PP(result) = length; - - if (use_copy1) { - zval_dtor(op1); - } - - if (use_copy2) { - zval_dtor(op2); - } - - if (use_copy3) { - zval_dtor(op3); - } - - if (use_copy5) { - zval_dtor(op5); - } - - if (use_copy) { - zval_dtor(&result_copy); - } - -} - static void zephir_concat_vvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var TSRMLS_DC){ zval result_copy, op1_copy, op2_copy, op3_copy, op4_copy; @@ -16983,11 +16805,11 @@ ZEPHIR_INIT_CLASS(Phalcon_Config) { static PHP_METHOD(Phalcon_Config, __construct) { + zephir_fcall_cache_entry *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_6 = NULL; HashTable *_1; HashPosition _0; - zval *arrayConfig_param = NULL, *key = NULL, *value = NULL, **_2, *_3 = NULL, *_5 = NULL; + zval *arrayConfig_param = NULL, *key = NULL, *value = NULL, **_2; zval *arrayConfig = NULL; ZEPHIR_MM_GROW(); @@ -17002,25 +16824,15 @@ static PHP_METHOD(Phalcon_Config, __construct) { } - zephir_is_iterable(arrayConfig, &_1, &_0, 0, 0, "phalcon/config.zep", 68); + zephir_is_iterable(arrayConfig, &_1, &_0, 0, 0, "phalcon/config.zep", 62); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HMKEY(key, _1, _0); ZEPHIR_GET_HVALUE(value, _2); - ZEPHIR_CALL_FUNCTION(&_3, "strval", &_4, key); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "offsetset", &_3, key, value); zephir_check_call_status(); - ZEPHIR_CPY_WRT(key, _3); - if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(_5); - object_init_ex(_5, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_6, value); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, key, _5 TSRMLS_CC); - } else { - zephir_update_property_zval_zval(this_ptr, key, value TSRMLS_CC); - } } ZEPHIR_MM_RESTORE(); @@ -17028,57 +16840,45 @@ static PHP_METHOD(Phalcon_Config, __construct) { static PHP_METHOD(Phalcon_Config, offsetExists) { - zval *index_param = NULL; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); RETURN_MM_BOOL(zephir_isset_property_zval(this_ptr, index TSRMLS_CC)); } static PHP_METHOD(Phalcon_Config, get) { - zval *index_param = NULL, *defaultValue = NULL, *_0; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *defaultValue = NULL, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &index_param, &defaultValue); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 1, &index, &defaultValue); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); if (!defaultValue) { defaultValue = ZEPHIR_GLOBAL(global_null); } + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); if (zephir_isset_property_zval(this_ptr, index TSRMLS_CC)) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_zval(&_0, this_ptr, index, PH_NOISY_CC); - RETURN_CCTOR(_0); + ZEPHIR_OBS_VAR(_2); + zephir_read_property_zval(&_2, this_ptr, index, PH_NOISY_CC); + RETURN_CCTOR(_2); } RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); @@ -17087,60 +16887,46 @@ static PHP_METHOD(Phalcon_Config, get) { static PHP_METHOD(Phalcon_Config, offsetGet) { - zval *index_param = NULL, *_0; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); - ZEPHIR_OBS_VAR(_0); - zephir_read_property_zval(&_0, this_ptr, index, PH_NOISY_CC); - RETURN_CCTOR(_0); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); + ZEPHIR_OBS_VAR(_2); + zephir_read_property_zval(&_2, this_ptr, index, PH_NOISY_CC); + RETURN_CCTOR(_2); } static PHP_METHOD(Phalcon_Config, offsetSet) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *index_param = NULL, *value, *_0; - zval *index = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *index = NULL, *value, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &index_param, &value); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 2, 0, &index, &value); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_VAR(_0); - object_init_ex(_0, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_1, value); + ZEPHIR_INIT_VAR(_2); + object_init_ex(_2, phalcon_config_ce); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_3, value); zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, index, _0 TSRMLS_CC); + zephir_update_property_zval_zval(this_ptr, index, _2 TSRMLS_CC); } else { zephir_update_property_zval_zval(this_ptr, index, value TSRMLS_CC); } @@ -17150,25 +16936,19 @@ static PHP_METHOD(Phalcon_Config, offsetSet) { static PHP_METHOD(Phalcon_Config, offsetUnset) { - zval *index_param = NULL; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); zephir_update_property_zval_zval(this_ptr, index, ZEPHIR_GLOBAL(global_null) TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -17205,7 +16985,7 @@ static PHP_METHOD(Phalcon_Config, toArray) { array_init(arrayConfig); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 179); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 180); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -17289,7 +17069,7 @@ static PHP_METHOD(Phalcon_Config, _merge) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, config); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 238); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 239); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -18853,7 +18633,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_CPY_WRT(html, _1); if (zephir_array_isset_string(trace, SS("class"))) { ZEPHIR_OBS_VAR(className); - zephir_array_fetch_string(&className, trace, SL("class"), PH_NOISY, "phalcon/debug.zep", 356 TSRMLS_CC); + zephir_array_fetch_string(&className, trace, SL("class"), PH_NOISY, "phalcon/debug.zep", 355 TSRMLS_CC); ZEPHIR_INIT_VAR(_2); ZEPHIR_INIT_VAR(_3); ZEPHIR_SINIT_VAR(_4); @@ -18888,11 +18668,11 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { zephir_concat_self(&html, _10 TSRMLS_CC); } } - zephir_array_fetch_string(&_11, trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/debug.zep", 397 TSRMLS_CC); + zephir_array_fetch_string(&_11, trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/debug.zep", 396 TSRMLS_CC); zephir_concat_self(&html, _11 TSRMLS_CC); } ZEPHIR_OBS_VAR(functionName); - zephir_array_fetch_string(&functionName, trace, SL("function"), PH_NOISY, "phalcon/debug.zep", 403 TSRMLS_CC); + zephir_array_fetch_string(&functionName, trace, SL("function"), PH_NOISY, "phalcon/debug.zep", 402 TSRMLS_CC); if (zephir_array_isset_string(trace, SS("class"))) { ZEPHIR_INIT_LNVAR(_5); ZEPHIR_CONCAT_SVS(_5, "", functionName, ""); @@ -18924,11 +18704,11 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { } if (zephir_array_isset_string(trace, SS("args"))) { ZEPHIR_OBS_VAR(traceArgs); - zephir_array_fetch_string(&traceArgs, trace, SL("args"), PH_NOISY, "phalcon/debug.zep", 437 TSRMLS_CC); + zephir_array_fetch_string(&traceArgs, trace, SL("args"), PH_NOISY, "phalcon/debug.zep", 436 TSRMLS_CC); if (zephir_fast_count_int(traceArgs TSRMLS_CC)) { ZEPHIR_INIT_VAR(arguments); array_init(arguments); - zephir_is_iterable(traceArgs, &_15, &_14, 0, 0, "phalcon/debug.zep", 452); + zephir_is_iterable(traceArgs, &_15, &_14, 0, 0, "phalcon/debug.zep", 451); for ( ; zephir_hash_get_current_data_ex(_15, (void**) &_16, &_14) == SUCCESS ; zephir_hash_move_forward_ex(_15, &_14) @@ -18938,7 +18718,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_5); ZEPHIR_CONCAT_SVS(_5, "", _7, ""); - zephir_array_append(&arguments, _5, PH_SEPARATE, "phalcon/debug.zep", 446); + zephir_array_append(&arguments, _5, PH_SEPARATE, "phalcon/debug.zep", 445); } ZEPHIR_INIT_NVAR(_3); zephir_fast_join_str(_3, SL(", "), arguments TSRMLS_CC); @@ -18952,7 +18732,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_OBS_VAR(filez); if (zephir_array_isset_string_fetch(&filez, trace, SS("file"), 0 TSRMLS_CC)) { ZEPHIR_OBS_VAR(_18); - zephir_array_fetch_string(&_18, trace, SL("line"), PH_NOISY, "phalcon/debug.zep", 463 TSRMLS_CC); + zephir_array_fetch_string(&_18, trace, SL("line"), PH_NOISY, "phalcon/debug.zep", 462 TSRMLS_CC); zephir_get_strval(_19, _18); ZEPHIR_CPY_WRT(line, _19); ZEPHIR_INIT_LNVAR(_5); @@ -19016,7 +18796,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_SINIT_NVAR(linePosition); ZVAL_LONG(&linePosition, (i - 1)); ZEPHIR_OBS_NVAR(currentLine); - zephir_array_fetch(¤tLine, lines, &linePosition, PH_NOISY, "phalcon/debug.zep", 551 TSRMLS_CC); + zephir_array_fetch(¤tLine, lines, &linePosition, PH_NOISY, "phalcon/debug.zep", 550 TSRMLS_CC); if (zephir_is_true(showFileFragment)) { if (i == firstLine) { ZEPHIR_INIT_NVAR(_23); @@ -19076,7 +18856,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtLowSeverity) { ZVAL_LONG(_4, 0); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, message, _4, severity, file, line); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/debug.zep", 594 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/debug.zep", 593 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -19158,7 +18938,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
KeyValue
") TSRMLS_CC); ZEPHIR_CALL_METHOD(&_11, exception, "gettrace", NULL); zephir_check_call_status(); - zephir_is_iterable(_11, &_13, &_12, 0, 0, "phalcon/debug.zep", 688); + zephir_is_iterable(_11, &_13, &_12, 0, 0, "phalcon/debug.zep", 687); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -19173,7 +18953,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); zephir_get_global(&_REQUEST, SS("_REQUEST") TSRMLS_CC); - zephir_is_iterable(_REQUEST, &_18, &_17, 0, 0, "phalcon/debug.zep", 698); + zephir_is_iterable(_REQUEST, &_18, &_17, 0, 0, "phalcon/debug.zep", 697); for ( ; zephir_hash_get_current_data_ex(_18, (void**) &_19, &_17) == SUCCESS ; zephir_hash_move_forward_ex(_18, &_17) @@ -19188,7 +18968,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
KeyValue
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); - zephir_is_iterable(_SERVER, &_22, &_21, 0, 0, "phalcon/debug.zep", 708); + zephir_is_iterable(_SERVER, &_22, &_21, 0, 0, "phalcon/debug.zep", 707); for ( ; zephir_hash_get_current_data_ex(_22, (void**) &_23, &_21) == SUCCESS ; zephir_hash_move_forward_ex(_22, &_21) @@ -19204,7 +18984,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("") TSRMLS_CC); ZEPHIR_CALL_FUNCTION(&_15, "get_included_files", &_24); zephir_check_call_status(); - zephir_is_iterable(_15, &_26, &_25, 0, 0, "phalcon/debug.zep", 719); + zephir_is_iterable(_15, &_26, &_25, 0, 0, "phalcon/debug.zep", 718); for ( ; zephir_hash_get_current_data_ex(_26, (void**) &_27, &_25) == SUCCESS ; zephir_hash_move_forward_ex(_26, &_25) @@ -19226,14 +19006,14 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { if (Z_TYPE_P(dataVars) == IS_ARRAY) { zephir_concat_self_str(&html, SL("
KeyValue
#Path
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); - zephir_is_iterable(dataVars, &_30, &_29, 0, 0, "phalcon/debug.zep", 737); + zephir_is_iterable(dataVars, &_30, &_29, 0, 0, "phalcon/debug.zep", 736); for ( ; zephir_hash_get_current_data_ex(_30, (void**) &_31, &_29) == SUCCESS ; zephir_hash_move_forward_ex(_30, &_29) ) { ZEPHIR_GET_HMKEY(keyVar, _30, _29); ZEPHIR_GET_HVALUE(dataVar, _31); - zephir_array_fetch_long(&_33, dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/debug.zep", 735 TSRMLS_CC); + zephir_array_fetch_long(&_33, dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/debug.zep", 734 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_32, this_ptr, "_getvardump", &_34, _33); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_35); @@ -27197,9 +26977,11 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addRole) { static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + HashTable *_7; + HashPosition _6; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_9 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *roleToInherit, *roleInheritName = NULL, *rolesNames, *_0 = NULL, *_3, *_4; + zval *roleName_param = NULL, *roleToInherit, *roleInheritName = NULL, *rolesNames, *deepInheritName = NULL, *_0 = NULL, *_3, *_4, *_5, **_8, *_10; zval *roleName = NULL, *_1; ZEPHIR_MM_GROW(); @@ -27217,7 +26999,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { ZEPHIR_CONCAT_SVS(_1, "Role '", roleName, "' does not exist in the role list"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _1); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 193 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 192 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27227,14 +27009,28 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { } else { ZEPHIR_CPY_WRT(roleInheritName, roleToInherit); } + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_roleInherits"), PH_NOISY_CC); + if (zephir_array_isset(_3, roleInheritName)) { + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_roleInherits"), PH_NOISY_CC); + zephir_array_fetch(&_5, _4, roleInheritName, PH_NOISY | PH_READONLY, "phalcon/acl/adapter/memory.zep", 205 TSRMLS_CC); + zephir_is_iterable(_5, &_7, &_6, 0, 0, "phalcon/acl/adapter/memory.zep", 208); + for ( + ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS + ; zephir_hash_move_forward_ex(_7, &_6) + ) { + ZEPHIR_GET_HVALUE(deepInheritName, _8); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinherit", &_9, roleName, deepInheritName); + zephir_check_call_status(); + } + } if (!(zephir_array_isset(rolesNames, roleInheritName))) { ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(_3); - ZEPHIR_CONCAT_SVS(_3, "Role '", roleInheritName, "' (to inherit) does not exist in the role list"); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _3); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SVS(_10, "Role '", roleInheritName, "' (to inherit) does not exist in the role list"); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _10); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 206 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 214 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27339,7 +27135,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addResourceAccess) { ZEPHIR_CONCAT_SVS(_2, "Resource '", resourceName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 288 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 296 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27348,12 +27144,12 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addResourceAccess) { _4 = Z_TYPE_P(accessList) != IS_STRING; } if (_4) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/acl/adapter/memory.zep", 292); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/acl/adapter/memory.zep", 300); return; } exists = 1; if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 303); + zephir_is_iterable(accessList, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 311); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -27394,7 +27190,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, dropResourceAccess) { if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, &_1, &_0, 0, 0, "phalcon/acl/adapter/memory.zep", 329); + zephir_is_iterable(accessList, &_1, &_0, 0, 0, "phalcon/acl/adapter/memory.zep", 337); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -27445,7 +27241,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVS(_2, "Role '", roleName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 347 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 355 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27457,7 +27253,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVS(_2, "Resource '", resourceName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 351 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 359 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27468,7 +27264,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_OBS_VAR(internalAccess); zephir_read_property_this(&internalAccess, this_ptr, SL("_access"), PH_NOISY_CC); if (Z_TYPE_P(access) == IS_ARRAY) { - zephir_is_iterable(access, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 367); + zephir_is_iterable(access, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 375); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -27483,12 +27279,12 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVSVS(_8, "Access '", accessName, "' does not exist in resource '", resourceName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 363 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 371 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } } - zephir_is_iterable(access, &_10, &_9, 0, 0, "phalcon/acl/adapter/memory.zep", 380); + zephir_is_iterable(access, &_10, &_9, 0, 0, "phalcon/acl/adapter/memory.zep", 388); for ( ; zephir_hash_get_current_data_ex(_10, (void**) &_11, &_9) == SUCCESS ; zephir_hash_move_forward_ex(_10, &_9) @@ -27517,7 +27313,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVSVS(_8, "Access '", access, "' does not exist in resource '", resourceName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 385 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 393 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27564,7 +27360,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, allow) { } else { _2 = zephir_fetch_nproperty_this(this_ptr, SL("_rolesNames"), PH_NOISY_CC); ZEPHIR_INIT_NVAR(_0); - zephir_is_iterable(_2, &_4, &_3, 0, 0, "phalcon/acl/adapter/memory.zep", 441); + zephir_is_iterable(_2, &_4, &_3, 0, 0, "phalcon/acl/adapter/memory.zep", 449); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -27606,7 +27402,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, deny) { } else { _1 = zephir_fetch_nproperty_this(this_ptr, SL("_rolesNames"), PH_NOISY_CC); ZEPHIR_INIT_NVAR(_0); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/acl/adapter/memory.zep", 474); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/acl/adapter/memory.zep", 482); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -27669,7 +27465,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 520 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 528 TSRMLS_CC); } if (Z_TYPE_P(haveAccess) == IS_NULL) { ZEPHIR_OBS_VAR(roleInherits); @@ -27677,7 +27473,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_OBS_VAR(inheritedRoles); if (zephir_array_isset_fetch(&inheritedRoles, roleInherits, roleName, 0 TSRMLS_CC)) { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_5, &_4, 0, 0, "phalcon/acl/adapter/memory.zep", 541); + zephir_is_iterable(inheritedRoles, &_5, &_4, 0, 0, "phalcon/acl/adapter/memory.zep", 549); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -27687,7 +27483,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VSVSV(accessKey, inheritedRole, "!", resourceName, "!", access); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 538 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 546 TSRMLS_CC); } } } @@ -27699,10 +27495,10 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 556 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 564 TSRMLS_CC); } else { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_8, &_7, 0, 0, "phalcon/acl/adapter/memory.zep", 570); + zephir_is_iterable(inheritedRoles, &_8, &_7, 0, 0, "phalcon/acl/adapter/memory.zep", 578); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -27712,7 +27508,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VSVS(accessKey, inheritedRole, "!", resourceName, "!*"); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 566 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 574 TSRMLS_CC); break; } } @@ -27725,10 +27521,10 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 585 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 593 TSRMLS_CC); } else { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_11, &_10, 0, 0, "phalcon/acl/adapter/memory.zep", 599); + zephir_is_iterable(inheritedRoles, &_11, &_10, 0, 0, "phalcon/acl/adapter/memory.zep", 607); for ( ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS ; zephir_hash_move_forward_ex(_11, &_10) @@ -27738,7 +27534,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VS(accessKey, inheritedRole, "!*!*"); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 595 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 603 TSRMLS_CC); break; } } @@ -28715,155 +28511,153 @@ static zval *phannot_ret_annotation(phannot_parser_token *name, zval *arguments, #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** JJCODETYPE is the data type used for storing terminal +** AACODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** JJNOCODE is a number of type JJCODETYPE which corresponds +** AANOCODE is a number of type AACODETYPE which corresponds ** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash +** number is used to fill in empty slots of the hash ** table. -** JJFALLBACK If defined, this indicates that one or more tokens +** AAFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** JJACTIONTYPE is the data type used for storing terminal +** AAACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. -** phannot_JTOKENTYPE is the data type used for minor tokens given +** phannot_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** JJMINORTYPE is the data type used for all minor tokens. +** AAMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of -** which is phannot_JTOKENTYPE. The entry in the union -** for base tokens is called "jj0". -** JJSTACKDEPTH is the maximum depth of the parser's stack. +** which is phannot_TOKENTYPE. The entry in the union +** for base tokens is called "aa0". +** AASTACKDEPTH is the maximum depth of the parser's stack. ** phannot_ARG_SDECL A static variable declaration for the %extra_argument ** phannot_ARG_PDECL A parameter declaration for the %extra_argument -** phannot_ARG_STORE Code to store %extra_argument into jjpParser -** phannot_ARG_FETCH Code to extract %extra_argument from jjpParser -** JJNSTATE the combined number of states. -** JJNRULE the number of rules in the grammar -** JJERRORSYMBOL is the code number of the error symbol. If not +** phannot_ARG_STORE Code to store %extra_argument into aapParser +** phannot_ARG_FETCH Code to extract %extra_argument from aapParser +** AANSTATE the combined number of states. +** AANRULE the number of rules in the grammar +** AAERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define JJCODETYPE unsigned char -#define JJNOCODE 28 -#define JJACTIONTYPE unsigned char -#define phannot_JTOKENTYPE phannot_parser_token* +#define AACODETYPE unsigned char +#define AANOCODE 28 +#define AAACTIONTYPE unsigned char +#define phannot_TOKENTYPE phannot_parser_token* typedef union { - phannot_JTOKENTYPE jj0; - zval* jj36; - int jj55; -} JJMINORTYPE; -#define JJSTACKDEPTH 100 + phannot_TOKENTYPE aa0; + zval* aa36; + int aa55; +} AAMINORTYPE; +#define AASTACKDEPTH 100 #define phannot_ARG_SDECL phannot_parser_status *status; #define phannot_ARG_PDECL ,phannot_parser_status *status -#define phannot_ARG_FETCH phannot_parser_status *status = jjpParser->status -#define phannot_ARG_STORE jjpParser->status = status -#define JJNSTATE 40 -#define JJNRULE 25 -#define JJERRORSYMBOL 18 -#define JJERRSYMDT jj55 -#define JJ_NO_ACTION (JJNSTATE+JJNRULE+2) -#define JJ_ACCEPT_ACTION (JJNSTATE+JJNRULE+1) -#define JJ_ERROR_ACTION (JJNSTATE+JJNRULE) +#define phannot_ARG_FETCH phannot_parser_status *status = aapParser->status +#define phannot_ARG_STORE aapParser->status = status +#define AANSTATE 40 +#define AANRULE 25 +#define AAERRORSYMBOL 18 +#define AAERRSYMDT aa55 +#define AA_NO_ACTION (AANSTATE+AANRULE+2) +#define AA_ACCEPT_ACTION (AANSTATE+AANRULE+1) +#define AA_ERROR_ACTION (AANSTATE+AANRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an -** action integer. +** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < JJNSTATE Shift N. That is, push the lookahead +** 0 <= N < AANSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** JJNSTATE <= N < JJNSTATE+JJNRULE Reduce by rule N-JJNSTATE. +** AANSTATE <= N < AANSTATE+AANRULE Reduce by rule N-AANSTATE. ** -** N == JJNSTATE+JJNRULE A syntax error has occurred. +** N == AANSTATE+AANRULE A syntax error has occurred. ** -** N == JJNSTATE+JJNRULE+1 The parser accepts its input. +** N == AANSTATE+AANRULE+1 The parser accepts its input. ** -** N == JJNSTATE+JJNRULE+2 No such action. Denotes unused -** slots in the jj_action[] table. +** N == AANSTATE+AANRULE+2 No such action. Denotes unused +** slots in the aa_action[] table. ** -** The action table is constructed as a single large table named jj_action[]. +** The action table is constructed as a single large table named aa_action[]. ** Given state S and lookahead X, the action is computed as ** -** jj_action[ jj_shift_ofst[S] + X ] +** aa_action[ aa_shift_ofst[S] + X ] ** -** If the index value jj_shift_ofst[S]+X is out of range or if the value -** jj_lookahead[jj_shift_ofst[S]+X] is not equal to X or if jj_shift_ofst[S] -** is equal to JJ_SHIFT_USE_DFLT, it means that the action is not in the table -** and that jj_default[S] should be used instead. +** If the index value aa_shift_ofst[S]+X is out of range or if the value +** aa_lookahead[aa_shift_ofst[S]+X] is not equal to X or if aa_shift_ofst[S] +** is equal to AA_SHIFT_USE_DFLT, it means that the action is not in the table +** and that aa_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the jj_reduce_ofst[] array is used in place of -** the jj_shift_ofst[] array and JJ_REDUCE_USE_DFLT is used in place of -** JJ_SHIFT_USE_DFLT. +** a reduce action) then the aa_reduce_ofst[] array is used in place of +** the aa_shift_ofst[] array and AA_REDUCE_USE_DFLT is used in place of +** AA_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** jj_action[] A single table containing all actions. -** jj_lookahead[] A table containing the lookahead for each entry in -** jj_action. Used to detect hash collisions. -** jj_shift_ofst[] For each state, the offset into jj_action for +** aa_action[] A single table containing all actions. +** aa_lookahead[] A table containing the lookahead for each entry in +** aa_action. Used to detect hash collisions. +** aa_shift_ofst[] For each state, the offset into aa_action for ** shifting terminals. -** jj_reduce_ofst[] For each state, the offset into jj_action for +** aa_reduce_ofst[] For each state, the offset into aa_action for ** shifting non-terminals after a reduce. -** jj_default[] Default action for each state. +** aa_default[] Default action for each state. */ -static JJACTIONTYPE jj_action[] = { - /* 0 */ 4, 28, 15, 38, 12, 14, 16, 18, 20, 21, - /* 10 */ 22, 23, 24, 4, 31, 4, 28, 15, 40, 12, - /* 20 */ 30, 16, 18, 20, 21, 22, 23, 24, 3, 31, - /* 30 */ 4, 17, 15, 6, 19, 35, 16, 18, 20, 21, - /* 40 */ 22, 23, 24, 5, 31, 15, 7, 27, 11, 16, - /* 50 */ 54, 54, 15, 25, 27, 11, 16, 15, 32, 27, - /* 60 */ 11, 16, 66, 1, 2, 39, 41, 15, 4, 10, - /* 70 */ 11, 16, 15, 9, 9, 37, 16, 8, 13, 36, - /* 80 */ 9, 29, 34, 54, 54, 54, 54, 54, 26, 54, - /* 90 */ 54, 54, 54, 54, 54, 54, 33, +static AAACTIONTYPE aa_action[] = { + /* 0 */ 4, 28, 15, 38, 12, 37, 16, 18, 20, 21, + /* 10 */ 22, 23, 24, 4, 31, 4, 17, 15, 40, 19, + /* 20 */ 35, 16, 18, 20, 21, 22, 23, 24, 3, 31, + /* 30 */ 4, 28, 15, 6, 12, 30, 16, 18, 20, 21, + /* 40 */ 22, 23, 24, 54, 31, 15, 25, 27, 11, 16, + /* 50 */ 13, 36, 15, 7, 27, 11, 16, 15, 32, 27, + /* 60 */ 11, 16, 15, 9, 10, 11, 16, 66, 1, 2, + /* 70 */ 39, 15, 9, 5, 14, 16, 41, 26, 4, 9, + /* 80 */ 29, 34, 54, 8, 54, 54, 54, 54, 33, }; -static JJCODETYPE jj_lookahead[] = { +static AACODETYPE aa_lookahead[] = { /* 0 */ 2, 3, 22, 5, 6, 25, 26, 9, 10, 11, /* 10 */ 12, 13, 14, 2, 16, 2, 3, 22, 0, 6, /* 20 */ 25, 26, 9, 10, 11, 12, 13, 14, 22, 16, /* 30 */ 2, 3, 22, 4, 6, 25, 26, 9, 10, 11, - /* 40 */ 12, 13, 14, 3, 16, 22, 23, 24, 25, 26, - /* 50 */ 27, 27, 22, 23, 24, 25, 26, 22, 23, 24, - /* 60 */ 25, 26, 19, 20, 21, 22, 0, 22, 2, 24, - /* 70 */ 25, 26, 22, 1, 1, 25, 26, 5, 7, 8, - /* 80 */ 1, 7, 8, 27, 27, 27, 27, 27, 15, 27, - /* 90 */ 27, 27, 27, 27, 27, 27, 17, + /* 40 */ 12, 13, 14, 27, 16, 22, 23, 24, 25, 26, + /* 50 */ 7, 8, 22, 23, 24, 25, 26, 22, 23, 24, + /* 60 */ 25, 26, 22, 1, 24, 25, 26, 19, 20, 21, + /* 70 */ 22, 22, 1, 3, 25, 26, 0, 15, 2, 1, + /* 80 */ 7, 8, 27, 5, 27, 27, 27, 27, 17, }; -#define JJ_SHIFT_USE_DFLT (-3) -static signed char jj_shift_ofst[] = { - /* 0 */ 11, 18, 66, -3, 40, 29, -2, 72, -3, 13, - /* 10 */ -3, -3, 71, 28, -3, -3, -3, -3, -3, -3, - /* 20 */ -3, -3, -3, -3, 13, 73, -3, -3, 74, 28, - /* 30 */ -3, 13, 79, -3, 28, -3, 28, -3, -3, -3, +#define AA_SHIFT_USE_DFLT (-3) +static signed char aa_shift_ofst[] = { + /* 0 */ 11, 18, 76, -3, 70, 29, -2, 78, -3, 28, + /* 10 */ -3, -3, 43, 13, -3, -3, -3, -3, -3, -3, + /* 20 */ -3, -3, -3, -3, 28, 62, -3, -3, 73, 13, + /* 30 */ -3, 28, 71, -3, 13, -3, 13, -3, -3, -3, }; -#define JJ_REDUCE_USE_DFLT (-21) -static signed char jj_reduce_ofst[] = { - /* 0 */ 43, -21, 6, -21, -21, -21, 23, -21, -21, 45, - /* 10 */ -21, -21, -21, -20, -21, -21, -21, -21, -21, -21, - /* 20 */ -21, -21, -21, -21, 30, -21, -21, -21, -21, -5, - /* 30 */ -21, 35, -21, -21, 10, -21, 50, -21, -21, -21, +#define AA_REDUCE_USE_DFLT (-21) +static signed char aa_reduce_ofst[] = { + /* 0 */ 48, -21, 6, -21, -21, -21, 30, -21, -21, 40, + /* 10 */ -21, -21, -21, 49, -21, -21, -21, -21, -21, -21, + /* 20 */ -21, -21, -21, -21, 23, -21, -21, -21, -21, 10, + /* 30 */ -21, 35, -21, -21, -5, -21, -20, -21, -21, -21, }; -static JJACTIONTYPE jj_default[] = { +static AAACTIONTYPE aa_default[] = { /* 0 */ 65, 65, 65, 42, 65, 46, 65, 65, 44, 65, /* 10 */ 47, 49, 58, 65, 50, 54, 55, 56, 57, 58, /* 20 */ 59, 60, 61, 62, 65, 65, 63, 48, 56, 65, /* 30 */ 52, 65, 65, 64, 65, 53, 65, 51, 45, 43, }; -#define JJ_SZ_ACTTAB (sizeof(jj_action)/sizeof(jj_action[0])) +#define AA_SZ_ACTTAB (sizeof(aa_action)/sizeof(aa_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: -** +** ** %fallback ID X Y Z. ** ** appears in the grammer, then ID becomes a fallback token for X, Y, @@ -28871,10 +28665,10 @@ static JJACTIONTYPE jj_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef JJFALLBACK -static const JJCODETYPE jjFallback[] = { +#ifdef AAFALLBACK +static const AACODETYPE aaFallback[] = { }; -#endif /* JJFALLBACK */ +#endif /* AAFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -28888,58 +28682,58 @@ static const JJCODETYPE jjFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct jjStackEntry { +struct aaStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - JJMINORTYPE minor; /* The user-supplied minor token value. This + AAMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct jjStackEntry jjStackEntry; +typedef struct aaStackEntry aaStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct jjParser { - int jjidx; /* Index of top element in stack */ - int jjerrcnt; /* Shifts left before out of the error */ +struct aaParser { + int aaidx; /* Index of top element in stack */ + int aaerrcnt; /* Shifts left before out of the error */ phannot_ARG_SDECL /* A place to hold %extra_argument */ - jjStackEntry jjstack[JJSTACKDEPTH]; /* The parser's stack */ + aaStackEntry aastack[AASTACKDEPTH]; /* The parser's stack */ }; -typedef struct jjParser jjParser; +typedef struct aaParser aaParser; #ifndef NDEBUG #include -static FILE *jjTraceFILE = 0; -static char *jjTracePrompt = 0; +static FILE *aaTraceFILE = 0; +static char *aaTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phannot_Trace(FILE *TraceFILE, char *zTracePrompt){ - jjTraceFILE = TraceFILE; - jjTracePrompt = zTracePrompt; - if( jjTraceFILE==0 ) jjTracePrompt = 0; - else if( jjTracePrompt==0 ) jjTraceFILE = 0; + aaTraceFILE = TraceFILE; + aaTracePrompt = zTracePrompt; + if( aaTraceFILE==0 ) aaTracePrompt = 0; + else if( aaTracePrompt==0 ) aaTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *jjTokenName[] = { - "$", "COMMA", "AT", "IDENTIFIER", - "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", - "COLON", "INTEGER", "DOUBLE", "NULL", +static const char *aaTokenName[] = { + "$", "COMMA", "AT", "IDENTIFIER", + "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", + "COLON", "INTEGER", "DOUBLE", "NULL", "FALSE", "TRUE", "BRACKET_OPEN", "BRACKET_CLOSE", - "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", + "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", "annotation_language", "annotation_list", "annotation", "argument_list", - "argument_item", "expr", "array", + "argument_item", "expr", "array", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *jjRuleName[] = { +static const char *aaRuleName[] = { /* 0 */ "program ::= annotation_language", /* 1 */ "annotation_language ::= annotation_list", /* 2 */ "annotation_list ::= annotation_list annotation", @@ -28970,8 +28764,8 @@ static const char *jjRuleName[] = { const char *phannot_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(jjTokenName)/sizeof(jjTokenName[0])) ){ - return jjTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(aaTokenName)/sizeof(aaTokenName[0])) ){ + return aaTokenName[tokenType]; }else{ return "Unknown"; } @@ -28981,25 +28775,25 @@ const char *phannot_TokenName(int tokenType){ } void *phannot_Alloc(void *(*mallocProc)(size_t)){ - jjParser *pParser; - pParser = (jjParser*)(*mallocProc)( (size_t)sizeof(jjParser) ); + aaParser *pParser; + pParser = (aaParser*)(*mallocProc)( (size_t)sizeof(aaParser) ); if( pParser ){ - pParser->jjidx = -1; + pParser->aaidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "jjmajor" is the symbol code, and "jjpminor" is a pointer to +** "aamajor" is the symbol code, and "aapminor" is a pointer to ** the value. */ -static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ - switch( jjmajor ){ +static void aa_destructor(AACODETYPE aamajor, AAMINORTYPE *aapminor){ + switch( aamajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is + ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those @@ -29025,14 +28819,14 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ case 17: // 222 "parser.lemon" { - if ((jjpminor->jj0)) { - if ((jjpminor->jj0)->free_flag) { - efree((jjpminor->jj0)->token); + if ((aapminor->aa0)) { + if ((aapminor->aa0)->free_flag) { + efree((aapminor->aa0)->token); } - efree((jjpminor->jj0)); + efree((aapminor->aa0)); } } -// 507 "parser.c" +// 505 "parser.c" break; case 20: case 21: @@ -29041,133 +28835,133 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ case 24: case 25: // 235 "parser.lemon" -{ zval_ptr_dtor(&(jjpminor->jj36)); } -// 517 "parser.c" +{ zval_ptr_dtor(&(aapminor->aa36)); } +// 515 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int jj_pop_parser_stack(jjParser *pParser){ - JJCODETYPE jjmajor; - jjStackEntry *jjtos = &pParser->jjstack[pParser->jjidx]; +static int aa_pop_parser_stack(aaParser *pParser){ + AACODETYPE aamajor; + aaStackEntry *aatos = &pParser->aastack[pParser->aaidx]; - if( pParser->jjidx<0 ) return 0; + if( pParser->aaidx<0 ) return 0; #ifndef NDEBUG - if( jjTraceFILE && pParser->jjidx>=0 ){ - fprintf(jjTraceFILE,"%sPopping %s\n", - jjTracePrompt, - jjTokenName[jjtos->major]); + if( aaTraceFILE && pParser->aaidx>=0 ){ + fprintf(aaTraceFILE,"%sPopping %s\n", + aaTracePrompt, + aaTokenName[aatos->major]); } #endif - jjmajor = jjtos->major; - jj_destructor( jjmajor, &jjtos->minor); - pParser->jjidx--; - return jjmajor; + aamajor = aatos->major; + aa_destructor( aamajor, &aatos->minor); + pParser->aaidx--; + return aamajor; } static void phannot_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - jjParser *pParser = (jjParser*)p; + aaParser *pParser = (aaParser*)p; if( pParser==0 ) return; - while( pParser->jjidx>=0 ) jj_pop_parser_stack(pParser); + while( pParser->aaidx>=0 ) aa_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int jj_find_shift_action( - jjParser *pParser, /* The parser */ +static int aa_find_shift_action( + aaParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->jjstack[pParser->jjidx].stateno; - - /* if( pParser->jjidx<0 ) return JJ_NO_ACTION; */ - i = jj_shift_ofst[stateno]; - if( i==JJ_SHIFT_USE_DFLT ){ - return jj_default[stateno]; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + /* if( pParser->aaidx<0 ) return AA_NO_ACTION; */ + i = aa_shift_ofst[stateno]; + if( i==AA_SHIFT_USE_DFLT ){ + return aa_default[stateno]; } - if( iLookAhead==JJNOCODE ){ - return JJ_NO_ACTION; + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){ -#ifdef JJFALLBACK + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ +#ifdef AAFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - jjTracePrompt, jjTokenName[iLookAhead], jjTokenName[iFallback]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE, "%sFALLBACK %s => %s\n", + aaTracePrompt, aaTokenName[iLookAhead], aaTokenName[iFallback]); } #endif - return jj_find_shift_action(pParser, iFallback); + return aa_find_shift_action(pParser, iFallback); } #endif - return jj_default[stateno]; + return aa_default[stateno]; }else{ - return jj_action[i]; + return aa_action[i]; } } -static int jj_find_reduce_action( - jjParser *pParser, /* The parser */ +static int aa_find_reduce_action( + aaParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->jjstack[pParser->jjidx].stateno; - - i = jj_reduce_ofst[stateno]; - if( i==JJ_REDUCE_USE_DFLT ){ - return jj_default[stateno]; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + i = aa_reduce_ofst[stateno]; + if( i==AA_REDUCE_USE_DFLT ){ + return aa_default[stateno]; } - if( iLookAhead==JJNOCODE ){ - return JJ_NO_ACTION; + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){ - return jj_default[stateno]; + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ + return aa_default[stateno]; }else{ - return jj_action[i]; + return aa_action[i]; } } -static void jj_shift( - jjParser *jjpParser, /* The parser to be shifted */ - int jjNewState, /* The new state to shift in */ - int jjMajor, /* The major token to shift in */ - JJMINORTYPE *jjpMinor /* Pointer ot the minor token to shift in */ +static void aa_shift( + aaParser *aapParser, /* The parser to be shifted */ + int aaNewState, /* The new state to shift in */ + int aaMajor, /* The major token to shift in */ + AAMINORTYPE *aapMinor /* Pointer ot the minor token to shift in */ ){ - jjStackEntry *jjtos; - jjpParser->jjidx++; - if( jjpParser->jjidx>=JJSTACKDEPTH ){ + aaStackEntry *aatos; + aapParser->aaidx++; + if( aapParser->aaidx>=AASTACKDEPTH ){ phannot_ARG_FETCH; - jjpParser->jjidx--; + aapParser->aaidx--; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sStack Overflow!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sStack Overflow!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - jjtos = &jjpParser->jjstack[jjpParser->jjidx]; - jjtos->stateno = jjNewState; - jjtos->major = jjMajor; - jjtos->minor = *jjpMinor; + aatos = &aapParser->aastack[aapParser->aaidx]; + aatos->stateno = aaNewState; + aatos->major = aaMajor; + aatos->minor = *aapMinor; #ifndef NDEBUG - if( jjTraceFILE && jjpParser->jjidx>0 ){ + if( aaTraceFILE && aapParser->aaidx>0 ){ int i; - fprintf(jjTraceFILE,"%sShift %d\n",jjTracePrompt,jjNewState); - fprintf(jjTraceFILE,"%sStack:",jjTracePrompt); - for(i=1; i<=jjpParser->jjidx; i++) - fprintf(jjTraceFILE," %s",jjTokenName[jjpParser->jjstack[i].major]); - fprintf(jjTraceFILE,"\n"); + fprintf(aaTraceFILE,"%sShift %d\n",aaTracePrompt,aaNewState); + fprintf(aaTraceFILE,"%sStack:",aaTracePrompt); + for(i=1; i<=aapParser->aaidx; i++) + fprintf(aaTraceFILE," %s",aaTokenName[aapParser->aastack[i].major]); + fprintf(aaTraceFILE,"\n"); } #endif } @@ -29176,9 +28970,9 @@ static void jj_shift( ** is used during the reduce. */ static struct { - JJCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + AACODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} jjRuleInfo[] = { +} aaRuleInfo[] = { { 19, 1 }, { 20, 1 }, { 21, 2 }, @@ -29206,28 +29000,28 @@ static struct { { 26, 3 }, }; -static void jj_accept(jjParser*); /* Forward Declaration */ +static void aa_accept(aaParser*); /* Forward Declaration */ -static void jj_reduce( - jjParser *jjpParser, /* The parser */ - int jjruleno /* Number of the rule by which to reduce */ +static void aa_reduce( + aaParser *aapParser, /* The parser */ + int aaruleno /* Number of the rule by which to reduce */ ){ - int jjgoto; /* The next state */ - int jjact; /* The next action */ - JJMINORTYPE jjgotominor; /* The LHS of the rule reduced */ - jjStackEntry *jjmsp; /* The top of the parser's stack */ - int jjsize; /* Amount to pop the stack */ + int aagoto; /* The next state */ + int aaact; /* The next action */ + AAMINORTYPE aagotominor; /* The LHS of the rule reduced */ + aaStackEntry *aamsp; /* The top of the parser's stack */ + int aasize; /* Amount to pop the stack */ phannot_ARG_FETCH; - jjmsp = &jjpParser->jjstack[jjpParser->jjidx]; + aamsp = &aapParser->aastack[aapParser->aaidx]; #ifndef NDEBUG - if( jjTraceFILE && jjruleno>=0 - && jjruleno=0 + && aarulenoret = jjmsp[0].minor.jj36; + status->ret = aamsp[0].minor.aa36; } -// 759 "parser.c" +// 757 "parser.c" break; case 1: case 14: case 15: // 237 "parser.lemon" { - jjgotominor.jj36 = jjmsp[0].minor.jj36; + aagotominor.aa36 = aamsp[0].minor.aa36; } -// 768 "parser.c" +// 766 "parser.c" break; case 2: // 243 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-1].minor.jj36, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_zval_list(aamsp[-1].minor.aa36, aamsp[0].minor.aa36); } -// 775 "parser.c" +// 773 "parser.c" break; case 3: case 8: // 247 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(NULL, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_zval_list(NULL, aamsp[0].minor.aa36); } -// 783 "parser.c" +// 781 "parser.c" break; case 4: // 254 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-3].minor.jj0, jjmsp[-1].minor.jj36, status->scanner_state); - jj_destructor(2,&jjmsp[-4].minor); - jj_destructor(4,&jjmsp[-2].minor); - jj_destructor(5,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[-3].minor.aa0, aamsp[-1].minor.aa36, status->scanner_state); + aa_destructor(2,&aamsp[-4].minor); + aa_destructor(4,&aamsp[-2].minor); + aa_destructor(5,&aamsp[0].minor); } -// 793 "parser.c" +// 791 "parser.c" break; case 5: // 258 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-2].minor.jj0, NULL, status->scanner_state); - jj_destructor(2,&jjmsp[-3].minor); - jj_destructor(4,&jjmsp[-1].minor); - jj_destructor(5,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[-2].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-3].minor); + aa_destructor(4,&aamsp[-1].minor); + aa_destructor(5,&aamsp[0].minor); } -// 803 "parser.c" +// 801 "parser.c" break; case 6: // 262 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[0].minor.jj0, NULL, status->scanner_state); - jj_destructor(2,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[0].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-1].minor); } -// 811 "parser.c" +// 809 "parser.c" break; case 7: // 268 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-2].minor.jj36, jjmsp[0].minor.jj36); - jj_destructor(1,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_zval_list(aamsp[-2].minor.aa36, aamsp[0].minor.aa36); + aa_destructor(1,&aamsp[-1].minor); } -// 819 "parser.c" +// 817 "parser.c" break; case 9: // 278 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(NULL, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_named_item(NULL, aamsp[0].minor.aa36); } -// 826 "parser.c" +// 824 "parser.c" break; case 10: case 12: // 282 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36); - jj_destructor(7,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_named_item(aamsp[-2].minor.aa0, aamsp[0].minor.aa36); + aa_destructor(7,&aamsp[-1].minor); } -// 835 "parser.c" +// 833 "parser.c" break; case 11: case 13: // 286 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36); - jj_destructor(8,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_named_item(aamsp[-2].minor.aa0, aamsp[0].minor.aa36); + aa_destructor(8,&aamsp[-1].minor); } -// 844 "parser.c" +// 842 "parser.c" break; case 16: // 308 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, aamsp[0].minor.aa0); } -// 851 "parser.c" +// 849 "parser.c" break; case 17: // 312 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, aamsp[0].minor.aa0); } -// 858 "parser.c" +// 856 "parser.c" break; case 18: // 316 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_STRING, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_STRING, aamsp[0].minor.aa0); } -// 865 "parser.c" +// 863 "parser.c" break; case 19: // 320 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, aamsp[0].minor.aa0); } -// 872 "parser.c" +// 870 "parser.c" break; case 20: // 324 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL); - jj_destructor(11,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL); + aa_destructor(11,&aamsp[0].minor); } -// 880 "parser.c" +// 878 "parser.c" break; case 21: // 328 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL); - jj_destructor(12,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL); + aa_destructor(12,&aamsp[0].minor); } -// 888 "parser.c" +// 886 "parser.c" break; case 22: // 332 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL); - jj_destructor(13,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL); + aa_destructor(13,&aamsp[0].minor); } -// 896 "parser.c" +// 894 "parser.c" break; case 23: // 336 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36); - jj_destructor(14,&jjmsp[-2].minor); - jj_destructor(15,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_array(aamsp[-1].minor.aa36); + aa_destructor(14,&aamsp[-2].minor); + aa_destructor(15,&aamsp[0].minor); } -// 905 "parser.c" +// 903 "parser.c" break; case 24: // 340 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36); - jj_destructor(16,&jjmsp[-2].minor); - jj_destructor(17,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_array(aamsp[-1].minor.aa36); + aa_destructor(16,&aamsp[-2].minor); + aa_destructor(17,&aamsp[0].minor); } -// 914 "parser.c" +// 912 "parser.c" break; }; - jjgoto = jjRuleInfo[jjruleno].lhs; - jjsize = jjRuleInfo[jjruleno].nrhs; - jjpParser->jjidx -= jjsize; - jjact = jj_find_reduce_action(jjpParser,jjgoto); - if( jjact < JJNSTATE ){ - jj_shift(jjpParser,jjact,jjgoto,&jjgotominor); - }else if( jjact == JJNSTATE + JJNRULE + 1 ){ - jj_accept(jjpParser); + aagoto = aaRuleInfo[aaruleno].lhs; + aasize = aaRuleInfo[aaruleno].nrhs; + aapParser->aaidx -= aasize; + aaact = aa_find_reduce_action(aapParser,aagoto); + if( aaact < AANSTATE ){ + aa_shift(aapParser,aaact,aagoto,&aagotominor); + }else if( aaact == AANSTATE + AANRULE + 1 ){ + aa_accept(aapParser); } } -static void jj_parse_failed( - jjParser *jjpParser /* The parser */ +static void aa_parse_failed( + aaParser *aapParser /* The parser */ ){ phannot_ARG_FETCH; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sFail!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sFail!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void jj_syntax_error( - jjParser *jjpParser, /* The parser */ - int jjmajor, /* The major type of the error token */ - JJMINORTYPE jjminor /* The minor type of the error token */ +static void aa_syntax_error( + aaParser *aapParser, /* The parser */ + int aamajor, /* The major type of the error token */ + AAMINORTYPE aaminor /* The minor type of the error token */ ){ phannot_ARG_FETCH; -#define JTOKEN (jjminor.jj0) +#define TOKEN (aaminor.aa0) // 159 "parser.lemon" if (status->scanner_state->start_length) { @@ -29495,20 +29289,20 @@ static void jj_syntax_error( status->status = PHANNOT_PARSING_FAILED; -// 1019 "parser.c" +// 1017 "parser.c" phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void jj_accept( - jjParser *jjpParser /* The parser */ +static void aa_accept( + aaParser *aapParser /* The parser */ ){ phannot_ARG_FETCH; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sAccept!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sAccept!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -29534,59 +29328,59 @@ static void jj_accept( ** None. */ static void phannot_( - void *jjp, /* The parser */ - int jjmajor, /* The major token code number */ - phannot_JTOKENTYPE jjminor /* The value for the token */ + void *aap, /* The parser */ + int aamajor, /* The major token code number */ + phannot_TOKENTYPE aaminor /* The value for the token */ phannot_ARG_PDECL /* Optional %extra_argument parameter */ ){ - JJMINORTYPE jjminorunion; - int jjact; /* The parser action. */ - int jjendofinput; /* True if we are at the end of input */ - int jjerrorhit = 0; /* True if jjmajor has invoked an error */ - jjParser *jjpParser; /* The parser */ + AAMINORTYPE aaminorunion; + int aaact; /* The parser action. */ + int aaendofinput; /* True if we are at the end of input */ + int aaerrorhit = 0; /* True if aamajor has invoked an error */ + aaParser *aapParser; /* The parser */ /* (re)initialize the parser, if necessary */ - jjpParser = (jjParser*)jjp; - if( jjpParser->jjidx<0 ){ - if( jjmajor==0 ) return; - jjpParser->jjidx = 0; - jjpParser->jjerrcnt = -1; - jjpParser->jjstack[0].stateno = 0; - jjpParser->jjstack[0].major = 0; + aapParser = (aaParser*)aap; + if( aapParser->aaidx<0 ){ + if( aamajor==0 ) return; + aapParser->aaidx = 0; + aapParser->aaerrcnt = -1; + aapParser->aastack[0].stateno = 0; + aapParser->aastack[0].major = 0; } - jjminorunion.jj0 = jjminor; - jjendofinput = (jjmajor==0); + aaminorunion.aa0 = aaminor; + aaendofinput = (aamajor==0); phannot_ARG_STORE; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sInput %s\n",jjTracePrompt,jjTokenName[jjmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sInput %s\n",aaTracePrompt,aaTokenName[aamajor]); } #endif do{ - jjact = jj_find_shift_action(jjpParser,jjmajor); - if( jjactjjerrcnt--; - if( jjendofinput && jjpParser->jjidx>=0 ){ - jjmajor = 0; + aaact = aa_find_shift_action(aapParser,aamajor); + if( aaactaaerrcnt--; + if( aaendofinput && aapParser->aaidx>=0 ){ + aamajor = 0; }else{ - jjmajor = JJNOCODE; + aamajor = AANOCODE; } - }else if( jjact < JJNSTATE + JJNRULE ){ - jj_reduce(jjpParser,jjact-JJNSTATE); - }else if( jjact == JJ_ERROR_ACTION ){ - int jjmx; + }else if( aaact < AANSTATE + AANRULE ){ + aa_reduce(aapParser,aaact-AANSTATE); + }else if( aaact == AA_ERROR_ACTION ){ + int aamx; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sSyntax Error!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sSyntax Error!\n",aaTracePrompt); } #endif -#ifdef JJERRORSYMBOL +#ifdef AAERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". + ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** @@ -29603,40 +29397,40 @@ static void phannot_( ** shifted successfully. ** */ - if( jjpParser->jjerrcnt<0 ){ - jj_syntax_error(jjpParser,jjmajor,jjminorunion); + if( aapParser->aaerrcnt<0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - jjmx = jjpParser->jjstack[jjpParser->jjidx].major; - if( jjmx==JJERRORSYMBOL || jjerrorhit ){ + aamx = aapParser->aastack[aapParser->aaidx].major; + if( aamx==AAERRORSYMBOL || aaerrorhit ){ #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sDiscard input token %s\n", - jjTracePrompt,jjTokenName[jjmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sDiscard input token %s\n", + aaTracePrompt,aaTokenName[aamajor]); } #endif - jj_destructor(jjmajor,&jjminorunion); - jjmajor = JJNOCODE; + aa_destructor(aamajor,&aaminorunion); + aamajor = AANOCODE; }else{ while( - jjpParser->jjidx >= 0 && - jjmx != JJERRORSYMBOL && - (jjact = jj_find_shift_action(jjpParser,JJERRORSYMBOL)) >= JJNSTATE + aapParser->aaidx >= 0 && + aamx != AAERRORSYMBOL && + (aaact = aa_find_shift_action(aapParser,AAERRORSYMBOL)) >= AANSTATE ){ - jj_pop_parser_stack(jjpParser); + aa_pop_parser_stack(aapParser); } - if( jjpParser->jjidx < 0 || jjmajor==0 ){ - jj_destructor(jjmajor,&jjminorunion); - jj_parse_failed(jjpParser); - jjmajor = JJNOCODE; - }else if( jjmx!=JJERRORSYMBOL ){ - JJMINORTYPE u2; - u2.JJERRSYMDT = 0; - jj_shift(jjpParser,jjact,JJERRORSYMBOL,&u2); + if( aapParser->aaidx < 0 || aamajor==0 ){ + aa_destructor(aamajor,&aaminorunion); + aa_parse_failed(aapParser); + aamajor = AANOCODE; + }else if( aamx!=AAERRORSYMBOL ){ + AAMINORTYPE u2; + u2.AAERRSYMDT = 0; + aa_shift(aapParser,aaact,AAERRORSYMBOL,&u2); } } - jjpParser->jjerrcnt = 3; - jjerrorhit = 1; -#else /* JJERRORSYMBOL is not defined */ + aapParser->aaerrcnt = 3; + aaerrorhit = 1; +#else /* AAERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -29646,21 +29440,21 @@ static void phannot_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( jjpParser->jjerrcnt<=0 ){ - jj_syntax_error(jjpParser,jjmajor,jjminorunion); + if( aapParser->aaerrcnt<=0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - jjpParser->jjerrcnt = 3; - jj_destructor(jjmajor,&jjminorunion); - if( jjendofinput ){ - jj_parse_failed(jjpParser); + aapParser->aaerrcnt = 3; + aa_destructor(aamajor,&aaminorunion); + if( aaendofinput ){ + aa_parse_failed(aapParser); } - jjmajor = JJNOCODE; + aamajor = AANOCODE; #endif }else{ - jj_accept(jjpParser); - jjmajor = JJNOCODE; + aa_accept(aapParser); + aamajor = AANOCODE; } - }while( jjmajor!=JJNOCODE && jjpParser->jjidx>=0 ); + }while( aamajor!=AANOCODE && aapParser->aaidx>=0 ); return; } @@ -29873,7 +29667,7 @@ static int phannot_internal_parse_annotations(zval **result, zval *comment, zval if (Z_STRLEN(processed_comment) < 2) { ZVAL_BOOL(*result, 0); - str_efree(Z_STRVAL(processed_comment)); + efree(Z_STRVAL(processed_comment)); return SUCCESS; } @@ -30422,67 +30216,64 @@ static PHP_METHOD(Phalcon_Annotations_Reflection, __set_state) { -/* Generated by re2c 0.13.5 on Fri Jun 28 19:00:52 2013 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:38:13 2015 */ // 1 "scanner.re" -#ifdef HAVE_CONFIG_H -#endif - -#define JJCTYPE unsigned char -#define JJCURSOR (s->start) -#define JJLIMIT (s->end) -#define JJMARKER q +#define AACTYPE unsigned char +#define AACURSOR (s->start) +#define AALIMIT (s->end) +#define AAMARKER q static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *token) { - char next, *q = JJCURSOR, *start = JJCURSOR; + char next, *q = AACURSOR, *start = AACURSOR; int status = PHANNOT_SCANNER_RETCODE_IMPOSSIBLE; while (PHANNOT_SCANNER_RETCODE_IMPOSSIBLE == status) { if (s->mode == PHANNOT_MODE_RAW) { - if (*JJCURSOR == '\n') { + if (*AACURSOR == '\n') { s->active_line++; } - next = *(JJCURSOR+1); + next = *(AACURSOR+1); - if (*JJCURSOR == '\0' || *JJCURSOR == '@') { + if (*AACURSOR == '\0' || *AACURSOR == '@') { if ((next >= 'A' && next <= 'Z') || (next >= 'a' && next <= 'z')) { s->mode = PHANNOT_MODE_ANNOTATION; continue; } } - ++JJCURSOR; + ++AACURSOR; token->opcode = PHANNOT_T_IGNORE; return 0; } else { - -// 66 "scanner.c" + +// 61 "scanner.c" { - JJCTYPE jjch; - unsigned int jjaccept = 0; + AACTYPE aach; + unsigned int aaaccept = 0; - jjch = *JJCURSOR; - switch (jjch) { - case 0x00: goto jj38; + aach = *AACURSOR; + switch (aach) { + case 0x00: goto aa38; case '\t': case '\r': - case ' ': goto jj34; - case '\n': goto jj36; - case '"': goto jj10; - case '\'': goto jj11; - case '(': goto jj14; - case ')': goto jj16; - case ',': goto jj32; - case '-': goto jj2; + case ' ': goto aa34; + case '\n': goto aa36; + case '"': goto aa10; + case '\'': goto aa11; + case '(': goto aa14; + case ')': goto aa16; + case ',': goto aa32; + case '-': goto aa2; case '0': case '1': case '2': @@ -30492,10 +30283,10 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj4; - case ':': goto jj30; - case '=': goto jj28; - case '@': goto jj26; + case '9': goto aa4; + case ':': goto aa30; + case '=': goto aa28; + case '@': goto aa26; case 'A': case 'B': case 'C': @@ -30542,23 +30333,23 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj13; + case 'z': goto aa13; case 'F': - case 'f': goto jj8; + case 'f': goto aa8; case 'N': - case 'n': goto jj6; + case 'n': goto aa6; case 'T': - case 't': goto jj9; - case '[': goto jj22; - case '\\': goto jj12; - case ']': goto jj24; - case '{': goto jj18; - case '}': goto jj20; - default: goto jj40; - } -jj2: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { + case 't': goto aa9; + case '[': goto aa22; + case '\\': goto aa12; + case ']': goto aa24; + case '{': goto aa18; + case '}': goto aa20; + default: goto aa40; + } +aa2: + ++AACURSOR; + switch ((aach = *AACURSOR)) { case '0': case '1': case '2': @@ -30568,203 +30359,263 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj68; - default: goto jj3; + case '9': goto aa71; + default: goto aa3; } -jj3: -// 183 "scanner.re" +aa3: +// 178 "scanner.re" { status = PHANNOT_SCANNER_RETCODE_ERR; break; } -// 178 "scanner.c" -jj4: - jjaccept = 0; - jjch = *(JJMARKER = ++JJCURSOR); - goto jj69; -jj5: -// 67 "scanner.re" +// 173 "scanner.c" +aa4: + aaaccept = 0; + aach = *(AAMARKER = ++AACURSOR); + goto aa72; +aa5: +// 62 "scanner.re" { token->opcode = PHANNOT_T_INTEGER; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 192 "scanner.c" -jj6: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +// 187 "scanner.c" +aa6: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'U': - case 'u': goto jj63; - default: goto jj44; + case 'u': goto aa66; + default: goto aa44; } -jj7: -// 109 "scanner.re" +aa7: +// 104 "scanner.re" { token->opcode = PHANNOT_T_IDENTIFIER; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 209 "scanner.c" -jj8: - jjch = *++JJCURSOR; - switch (jjch) { +// 205 "scanner.c" +aa8: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'A': - case 'a': goto jj58; - default: goto jj44; + case 'a': goto aa61; + default: goto aa44; } -jj9: - jjch = *++JJCURSOR; - switch (jjch) { +aa9: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'R': - case 'r': goto jj54; - default: goto jj44; - } -jj10: - jjaccept = 1; - jjch = *(JJMARKER = ++JJCURSOR); - if (jjch <= 0x00) goto jj3; - goto jj52; -jj11: - jjaccept = 1; - jjch = *(JJMARKER = ++JJCURSOR); - if (jjch <= 0x00) goto jj3; - goto jj46; -jj12: - jjch = *++JJCURSOR; - goto jj44; -jj13: - jjch = *++JJCURSOR; - goto jj44; -jj14: - ++JJCURSOR; -// 117 "scanner.re" + case 'r': goto aa57; + default: goto aa44; + } +aa10: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa3; + goto aa55; +aa11: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa3; + goto aa50; +aa12: + aach = *++AACURSOR; + switch (aach) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa43; + default: goto aa3; + } +aa13: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + goto aa44; +aa14: + ++AACURSOR; +// 112 "scanner.re" { token->opcode = PHANNOT_T_PARENTHESES_OPEN; return 0; } -// 247 "scanner.c" -jj16: - ++JJCURSOR; -// 122 "scanner.re" +// 301 "scanner.c" +aa16: + ++AACURSOR; +// 117 "scanner.re" { token->opcode = PHANNOT_T_PARENTHESES_CLOSE; return 0; } -// 255 "scanner.c" -jj18: - ++JJCURSOR; -// 127 "scanner.re" +// 309 "scanner.c" +aa18: + ++AACURSOR; +// 122 "scanner.re" { token->opcode = PHANNOT_T_BRACKET_OPEN; return 0; } -// 263 "scanner.c" -jj20: - ++JJCURSOR; -// 132 "scanner.re" +// 317 "scanner.c" +aa20: + ++AACURSOR; +// 127 "scanner.re" { token->opcode = PHANNOT_T_BRACKET_CLOSE; return 0; } -// 271 "scanner.c" -jj22: - ++JJCURSOR; -// 137 "scanner.re" +// 325 "scanner.c" +aa22: + ++AACURSOR; +// 132 "scanner.re" { token->opcode = PHANNOT_T_SBRACKET_OPEN; return 0; } -// 279 "scanner.c" -jj24: - ++JJCURSOR; -// 142 "scanner.re" +// 333 "scanner.c" +aa24: + ++AACURSOR; +// 137 "scanner.re" { token->opcode = PHANNOT_T_SBRACKET_CLOSE; return 0; } -// 287 "scanner.c" -jj26: - ++JJCURSOR; -// 147 "scanner.re" +// 341 "scanner.c" +aa26: + ++AACURSOR; +// 142 "scanner.re" { token->opcode = PHANNOT_T_AT; return 0; } -// 295 "scanner.c" -jj28: - ++JJCURSOR; -// 152 "scanner.re" +// 349 "scanner.c" +aa28: + ++AACURSOR; +// 147 "scanner.re" { token->opcode = PHANNOT_T_EQUALS; return 0; } -// 303 "scanner.c" -jj30: - ++JJCURSOR; -// 157 "scanner.re" +// 357 "scanner.c" +aa30: + ++AACURSOR; +// 152 "scanner.re" { token->opcode = PHANNOT_T_COLON; return 0; } -// 311 "scanner.c" -jj32: - ++JJCURSOR; -// 162 "scanner.re" +// 365 "scanner.c" +aa32: + ++AACURSOR; +// 157 "scanner.re" { token->opcode = PHANNOT_T_COMMA; return 0; } -// 319 "scanner.c" -jj34: - ++JJCURSOR; - jjch = *JJCURSOR; - goto jj42; -jj35: -// 167 "scanner.re" +// 373 "scanner.c" +aa34: + ++AACURSOR; + aach = *AACURSOR; + goto aa42; +aa35: +// 162 "scanner.re" { token->opcode = PHANNOT_T_IGNORE; return 0; } -// 330 "scanner.c" -jj36: - ++JJCURSOR; -// 172 "scanner.re" +// 384 "scanner.c" +aa36: + ++AACURSOR; +// 167 "scanner.re" { s->active_line++; token->opcode = PHANNOT_T_IGNORE; return 0; } -// 339 "scanner.c" -jj38: - ++JJCURSOR; -// 178 "scanner.re" +// 393 "scanner.c" +aa38: + ++AACURSOR; +// 173 "scanner.re" { status = PHANNOT_SCANNER_RETCODE_EOF; break; } -// 347 "scanner.c" -jj40: - jjch = *++JJCURSOR; - goto jj3; -jj41: - ++JJCURSOR; - jjch = *JJCURSOR; -jj42: - switch (jjch) { +// 401 "scanner.c" +aa40: + aach = *++AACURSOR; + goto aa3; +aa41: + ++AACURSOR; + aach = *AACURSOR; +aa42: + switch (aach) { case '\t': case '\r': - case ' ': goto jj41; - default: goto jj35; - } -jj43: - ++JJCURSOR; - jjch = *JJCURSOR; -jj44: - switch (jjch) { + case ' ': goto aa41; + default: goto aa35; + } +aa43: + aaaccept = 1; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; +aa44: + switch (aach) { case '0': case '1': case '2': @@ -30801,7 +30652,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -30828,77 +30678,215 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj7; - } -jj45: - ++JJCURSOR; - jjch = *JJCURSOR; -jj46: - switch (jjch) { - case 0x00: goto jj47; - case '\'': goto jj49; - case '\\': goto jj48; - default: goto jj45; - } -jj47: - JJCURSOR = JJMARKER; - switch (jjaccept) { - case 0: goto jj5; - case 1: goto jj3; - } -jj48: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { - case '\n': goto jj47; - default: goto jj45; - } -jj49: - ++JJCURSOR; -// 100 "scanner.re" + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa7; + } +aa45: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa47; + default: goto aa46; + } +aa46: + AACURSOR = AAMARKER; + switch (aaaccept) { + case 0: goto aa5; + case 1: goto aa7; + case 2: goto aa3; + case 3: goto aa60; + case 4: goto aa65; + default: goto aa69; + } +aa47: + aaaccept = 1; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa47; + case '\\': goto aa45; + default: goto aa7; + } +aa49: + ++AACURSOR; + aach = *AACURSOR; +aa50: + switch (aach) { + case 0x00: goto aa46; + case '\'': goto aa52; + case '\\': goto aa51; + default: goto aa49; + } +aa51: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa49; + } +aa52: + ++AACURSOR; +// 95 "scanner.re" { token->opcode = PHANNOT_T_STRING; - token->value = estrndup(q, JJCURSOR - q - 1); - token->len = JJCURSOR - q - 1; - q = JJCURSOR; + token->value = estrndup(q, AACURSOR - q - 1); + token->len = AACURSOR - q - 1; + q = AACURSOR; return 0; } -// 465 "scanner.c" -jj51: - ++JJCURSOR; - jjch = *JJCURSOR; -jj52: - switch (jjch) { - case 0x00: goto jj47; - case '"': goto jj49; - case '\\': goto jj53; - default: goto jj51; - } -jj53: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { - case '\n': goto jj47; - default: goto jj51; - } -jj54: - jjch = *++JJCURSOR; - switch (jjch) { +// 654 "scanner.c" +aa54: + ++AACURSOR; + aach = *AACURSOR; +aa55: + switch (aach) { + case 0x00: goto aa46; + case '"': goto aa52; + case '\\': goto aa56; + default: goto aa54; + } +aa56: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa54; + } +aa57: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'U': - case 'u': goto jj55; - default: goto jj44; + case 'u': goto aa58; + default: goto aa44; } -jj55: - jjch = *++JJCURSOR; - switch (jjch) { +aa58: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'E': - case 'e': goto jj56; - default: goto jj44; + case 'e': goto aa59; + default: goto aa44; } -jj56: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa59: + aaaccept = 3; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -30935,7 +30923,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -30962,40 +30949,45 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj57; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa60; } -jj57: -// 94 "scanner.re" +aa60: +// 89 "scanner.re" { token->opcode = PHANNOT_T_TRUE; return 0; } -// 572 "scanner.c" -jj58: - jjch = *++JJCURSOR; - switch (jjch) { +// 764 "scanner.c" +aa61: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj59; - default: goto jj44; + case 'l': goto aa62; + default: goto aa44; } -jj59: - jjch = *++JJCURSOR; - switch (jjch) { +aa62: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'S': - case 's': goto jj60; - default: goto jj44; + case 's': goto aa63; + default: goto aa44; } -jj60: - jjch = *++JJCURSOR; - switch (jjch) { +aa63: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'E': - case 'e': goto jj61; - default: goto jj44; + case 'e': goto aa64; + default: goto aa44; } -jj61: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa64: + aaaccept = 4; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -31032,7 +31024,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -31059,33 +31050,37 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj62; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa65; } -jj62: -// 89 "scanner.re" +aa65: +// 84 "scanner.re" { token->opcode = PHANNOT_T_FALSE; return 0; } -// 669 "scanner.c" -jj63: - jjch = *++JJCURSOR; - switch (jjch) { +// 865 "scanner.c" +aa66: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj64; - default: goto jj44; + case 'l': goto aa67; + default: goto aa44; } -jj64: - jjch = *++JJCURSOR; - switch (jjch) { +aa67: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj65; - default: goto jj44; + case 'l': goto aa68; + default: goto aa44; } -jj65: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa68: + aaaccept = 5; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -31122,7 +31117,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -31149,19 +31143,20 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj66; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa69; } -jj66: -// 84 "scanner.re" +aa69: +// 79 "scanner.re" { token->opcode = PHANNOT_T_NULL; return 0; } -// 759 "scanner.c" -jj67: - jjch = *++JJCURSOR; - switch (jjch) { +// 958 "scanner.c" +aa70: + aach = *++AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -31171,16 +31166,16 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj70; - default: goto jj47; - } -jj68: - jjaccept = 0; - JJMARKER = ++JJCURSOR; - jjch = *JJCURSOR; -jj69: - switch (jjch) { - case '.': goto jj67; + case '9': goto aa73; + default: goto aa46; + } +aa71: + aaaccept = 0; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; +aa72: + switch (aach) { + case '.': goto aa70; case '0': case '1': case '2': @@ -31190,13 +31185,13 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj68; - default: goto jj5; + case '9': goto aa71; + default: goto aa5; } -jj70: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { +aa73: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -31206,21 +31201,21 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj70; - default: goto jj72; + case '9': goto aa73; + default: goto aa75; } -jj72: -// 76 "scanner.re" +aa75: +// 71 "scanner.re" { token->opcode = PHANNOT_T_DOUBLE; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 819 "scanner.c" +// 1018 "scanner.c" } -// 188 "scanner.re" +// 183 "scanner.re" } @@ -33066,7 +33061,7 @@ static PHP_METHOD(Phalcon_Assets_Manager, output) { zephir_check_call_status(); if (zephir_fast_count_int(filters TSRMLS_CC)) { if (zephir_is_true(local)) { - ZEPHIR_CALL_METHOD(&sourcePath, resource, "getrealsourcepath", NULL); + ZEPHIR_CALL_METHOD(&sourcePath, resource, "getrealsourcepath", NULL, completeSourcePath); zephir_check_call_status(); if (!(zephir_is_true(sourcePath))) { ZEPHIR_CALL_METHOD(&sourcePath, resource, "getpath", NULL); @@ -36953,6 +36948,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Cache_Backend_Memory) { zend_declare_property_null(phalcon_cache_backend_memory_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, phalcon_cache_backendinterface_ce); + zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, zend_ce_serializable); return SUCCESS; } @@ -37249,6 +37245,49 @@ static PHP_METHOD(Phalcon_Cache_Backend_Memory, flush) { } +static PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + zval *_1; + zval *_0; + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 1, 0 TSRMLS_CC); + ZEPHIR_OBS_VAR(_1); + zephir_read_property_this(&_1, this_ptr, SL("_frontend"), PH_NOISY_CC); + zephir_array_update_string(&_0, SL("frontend"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", &_2, _0); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *data, *unserialized = NULL, *_1; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + + ZEPHIR_CALL_FUNCTION(&unserialized, "unserialize", &_0, data); + zephir_check_call_status(); + if (Z_TYPE_P(unserialized) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(zend_exception_get_default(TSRMLS_C), "Unserialized data must be an array", "phalcon/cache/backend/memory.zep", 295); + return; + } + zephir_array_fetch_string(&_1, unserialized, SL("frontend"), PH_NOISY | PH_READONLY, "phalcon/cache/backend/memory.zep", 298 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_frontend"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + @@ -38150,7 +38189,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, save) { static PHP_METHOD(Phalcon_Cache_Backend_Redis, delete) { int ZEPHIR_LAST_CALL_STATUS; - zval *keyName, *redis = NULL, *prefix, *prefixedKey, *lastKey, *options, *specialKey, *_0 = NULL; + zval *keyName, *redis = NULL, *prefix, *prefixedKey, *lastKey, *options, *specialKey; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &keyName); @@ -38181,12 +38220,9 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, delete) { zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 296 TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, redis, "srem", NULL, specialKey, prefixedKey); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, redis, "delete", NULL, lastKey); + ZEPHIR_RETURN_CALL_METHOD(redis, "delete", NULL, lastKey); zephir_check_call_status(); - if (!ZEPHIR_IS_LONG(_0, 1)) { - RETURN_MM_BOOL(0); - } - RETURN_MM_BOOL(1); + RETURN_MM(); } @@ -38196,7 +38232,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, queryKeys) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *prefix = NULL, *redis = NULL, *options, *keys = NULL, *specialKey, *key = NULL, **_2; + zval *prefix = NULL, *redis = NULL, *options, *keys = NULL, *specialKey, *key = NULL, *value = NULL, **_2; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, &prefix); @@ -38217,23 +38253,24 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, queryKeys) { ZEPHIR_OBS_VAR(options); zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); if (!(zephir_array_isset_string(options, SS("statsKey")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 329); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 326); return; } ZEPHIR_OBS_VAR(specialKey); - zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 332 TSRMLS_CC); + zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 329 TSRMLS_CC); ZEPHIR_CALL_METHOD(&keys, redis, "smembers", NULL, specialKey); zephir_check_call_status(); if (Z_TYPE_P(keys) == IS_ARRAY) { - zephir_is_iterable(keys, &_1, &_0, 1, 0, "phalcon/cache/backend/redis.zep", 344); + zephir_is_iterable(keys, &_1, &_0, 1, 0, "phalcon/cache/backend/redis.zep", 341); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { - ZEPHIR_GET_HVALUE(key, _2); + ZEPHIR_GET_HMKEY(key, _1, _0); + ZEPHIR_GET_HVALUE(value, _2); _3 = zephir_is_true(prefix); if (_3) { - _3 = !(zephir_start_with(key, prefix, NULL)); + _3 = !(zephir_start_with(value, prefix, NULL)); } if (_3) { zephir_array_unset(&keys, key, PH_SEPARATE); @@ -38394,11 +38431,11 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, flush) { ZEPHIR_OBS_VAR(options); zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); if (!(zephir_array_isset_string(options, SS("statsKey")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 459); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 456); return; } ZEPHIR_OBS_VAR(specialKey); - zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 462 TSRMLS_CC); + zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 459 TSRMLS_CC); ZEPHIR_OBS_VAR(redis); zephir_read_property_this(&redis, this_ptr, SL("_redis"), PH_NOISY_CC); if (Z_TYPE_P(redis) != IS_OBJECT) { @@ -38410,7 +38447,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, flush) { ZEPHIR_CALL_METHOD(&keys, redis, "smembers", NULL, specialKey); zephir_check_call_status(); if (Z_TYPE_P(keys) == IS_ARRAY) { - zephir_is_iterable(keys, &_1, &_0, 0, 0, "phalcon/cache/backend/redis.zep", 478); + zephir_is_iterable(keys, &_1, &_0, 0, 0, "phalcon/cache/backend/redis.zep", 475); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -39683,20 +39720,24 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; zend_bool _3; int ZEPHIR_LAST_CALL_STATUS; - zval *arguments = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments_param = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &arguments); + zephir_fetch_params(1, 0, 1, &arguments_param); - if (!arguments) { - arguments = ZEPHIR_GLOBAL(global_null); + if (!arguments_param) { + ZEPHIR_INIT_VAR(arguments); + array_init(arguments); + } else { + zephir_get_arrval(arguments, arguments_param); } ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 155); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 152); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_eventsManager"), PH_NOISY_CC); @@ -39707,7 +39748,7 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_check_temp_parameter(_2); zephir_check_call_status(); ZEPHIR_CPY_WRT(router, _1); - _3 = !zephir_is_true(arguments); + _3 = !(zephir_fast_count_int(arguments TSRMLS_CC)); if (_3) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_arguments"), PH_NOISY_CC); _3 = zephir_is_true(_0); @@ -39742,14 +39783,14 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module '", moduleName, "' isn't registered in the console container"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 179 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 176 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(module); - zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 182 TSRMLS_CC); + zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 179 TSRMLS_CC); if (Z_TYPE_P(module) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 184); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 181); return; } ZEPHIR_OBS_VAR(path); @@ -39761,7 +39802,7 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module definition path '", path, "' doesn't exist"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 189 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 186 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -39894,7 +39935,7 @@ static PHP_METHOD(Phalcon_Cli_Console, setArgument) { Z_UNSET_ISREF_P(arguments); zephir_check_call_status(); } - zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 270); + zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 267); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -39951,11 +39992,11 @@ static PHP_METHOD(Phalcon_Cli_Console, setArgument) { zephir_substr(_9, arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, _9, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 262); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 259); } } } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 266); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 263); } } if (str) { @@ -42214,9 +42255,8 @@ static PHP_METHOD(Phalcon_Db_Adapter, fetchAll) { zephir_check_call_status(); if (!(zephir_is_true(row))) { break; - } else { - zephir_array_append(&results, row, PH_SEPARATE, "phalcon/db/adapter.zep", 238); } + zephir_array_append(&results, row, PH_SEPARATE, "phalcon/db/adapter.zep", 239); } } RETURN_CCTOR(results); @@ -43731,13 +43771,28 @@ static PHP_METHOD(Phalcon_Db_Adapter, describeReferences) { static PHP_METHOD(Phalcon_Db_Adapter, tableOptions) { int ZEPHIR_LAST_CALL_STATUS; - zval *tableName, *schemaName = NULL, *sql = NULL, *_0, *_1 = NULL, *_2, *_3; + zval *tableName_param = NULL, *schemaName_param = NULL, *sql = NULL, *_0, *_1 = NULL, *_2, *_3; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } @@ -43749,7 +43804,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, tableOptions) { ZVAL_LONG(_2, 1); ZEPHIR_CALL_METHOD(&_1, this_ptr, "fetchall", NULL, sql, _2); zephir_check_call_status(); - zephir_array_fetch_long(&_3, _1, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter.zep", 979 TSRMLS_CC); + zephir_array_fetch_long(&_3, _1, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter.zep", 975 TSRMLS_CC); RETURN_CTOR(_3); } array_init(return_value); @@ -43784,7 +43839,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, createSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/db/adapter.zep", 994); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/db/adapter.zep", 990); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "createsavepoint", NULL, name); @@ -43822,7 +43877,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, releaseSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1010); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1006); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "supportsreleasesavepoints", NULL); @@ -43865,7 +43920,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, rollbackSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1030); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1026); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "rollbacksavepoint", NULL, name); @@ -43890,14 +43945,14 @@ static PHP_METHOD(Phalcon_Db_Adapter, setNestedTransactionsWithSavepoints) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_transactionLevel"), PH_NOISY_CC); if (ZEPHIR_GT_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/db/adapter.zep", 1043); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/db/adapter.zep", 1039); return; } _1 = zephir_fetch_nproperty_this(this_ptr, SL("_dialect"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(&_2, _1, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1047); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1043); return; } zephir_update_property_this(this_ptr, SL("_transactionsWithSavepoints"), nestedTransactionsWithSavepoints ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -44612,18 +44667,108 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect) { zend_declare_property_null(phalcon_db_dialect_ce, SL("_escapeChar"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_class_implements(phalcon_db_dialect_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } +static PHP_METHOD(Phalcon_Db_Dialect, escape) { + + HashTable *_6; + HashPosition _5; + zval *_4 = NULL; + zend_bool isEscape, _8, _9, _10; + zval *str_param = NULL, *escapeChar_param = NULL, *parts = NULL, *key = NULL, *part = NULL, *newParts = NULL, *_0, *_2, *_3, **_7, *_11 = NULL; + zval *str = NULL, *escapeChar = NULL, *_1 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(str_param) == IS_STRING)) { + zephir_get_strval(str, str_param); + } else { + ZEPHIR_INIT_VAR(str); + ZVAL_EMPTY_STRING(str); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (ZEPHIR_IS_STRING(escapeChar, "")) { + ZEPHIR_OBS_VAR(_0); + zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); + zephir_get_strval(_1, _0); + ZEPHIR_CPY_WRT(escapeChar, _1); + } + isEscape = ZEPHIR_GLOBAL(db).escape_identifiers; + if (!(zephir_memnstr_str(str, SL("."), "phalcon/db/dialect.zep", 47))) { + if (isEscape) { + if (ZEPHIR_IS_STRING(escapeChar, "")) { + RETURN_CTOR(str); + } + if (ZEPHIR_IS_STRING(str, "*")) { + RETURN_CTOR(str); + } + ZEPHIR_CONCAT_VVV(return_value, escapeChar, str, escapeChar); + RETURN_MM(); + } + RETURN_CTOR(str); + } + ZEPHIR_INIT_VAR(_2); + ZEPHIR_INIT_VAR(_3); + zephir_fast_trim(_3, str, escapeChar, ZEPHIR_TRIM_BOTH TSRMLS_CC); + zephir_fast_explode_str(_2, SL("."), _3, LONG_MAX TSRMLS_CC); + zephir_get_arrval(_4, _2); + ZEPHIR_CPY_WRT(parts, _4); + ZEPHIR_CPY_WRT(newParts, parts); + zephir_is_iterable(parts, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 77); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HMKEY(key, _6, _5); + ZEPHIR_GET_HVALUE(part, _7); + _8 = ZEPHIR_IS_STRING(escapeChar, ""); + if (!(_8)) { + _8 = !isEscape; + } + _9 = _8; + if (!(_9)) { + _9 = ZEPHIR_IS_STRING(part, ""); + } + _10 = _9; + if (!(_10)) { + _10 = ZEPHIR_IS_STRING(part, "*"); + } + if (_10) { + continue; + } + ZEPHIR_INIT_LNVAR(_11); + ZEPHIR_CONCAT_VVV(_11, escapeChar, part, escapeChar); + zephir_array_update_zval(&newParts, key, &_11, PH_COPY | PH_SEPARATE); + } + zephir_fast_join_str(return_value, SL("."), newParts TSRMLS_CC); + RETURN_MM(); + +} + static PHP_METHOD(Phalcon_Db_Dialect, limit) { - int number; - zval *sqlQuery_param = NULL, *number_param = NULL, _0, _1; + zend_bool _2; + zval *sqlQuery_param = NULL, *number, *_0, *_1, *_3, *_4, *_5; zval *sqlQuery = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number_param); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); if (unlikely(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be a string") TSRMLS_CC); @@ -44636,18 +44781,28 @@ static PHP_METHOD(Phalcon_Db_Dialect, limit) { ZEPHIR_INIT_VAR(sqlQuery); ZVAL_EMPTY_STRING(sqlQuery); } - number = zephir_get_intval(number_param); - ZEPHIR_SINIT_VAR(_0); - ZVAL_LONG(&_0, number); - if (zephir_is_numeric(&_0)) { - ZEPHIR_SINIT_VAR(_1); - ZVAL_LONG(&_1, number); - ZEPHIR_CONCAT_VSV(return_value, sqlQuery, " LIMIT ", &_1); - RETURN_MM(); + if (Z_TYPE_P(number) == IS_ARRAY) { + zephir_array_fetch_long(&_0, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 95 TSRMLS_CC); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_SV(_1, " LIMIT ", _0); + zephir_concat_self(&sqlQuery, _1 TSRMLS_CC); + _2 = zephir_array_isset_long(number, 1); + if (_2) { + zephir_array_fetch_long(&_3, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 97 TSRMLS_CC); + _2 = (zephir_fast_strlen_ev(_3)) ? 1 : 0; + } + if (_2) { + zephir_array_fetch_long(&_4, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 98 TSRMLS_CC); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SV(_5, " OFFSET ", _4); + zephir_concat_self(&sqlQuery, _5 TSRMLS_CC); + } + RETURN_CTOR(sqlQuery); } - RETURN_CTOR(sqlQuery); + ZEPHIR_CONCAT_VSV(return_value, sqlQuery, " LIMIT ", number); + RETURN_MM(); } @@ -44705,9 +44860,11 @@ static PHP_METHOD(Phalcon_Db_Dialect, sharedLock) { static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; HashTable *_1; HashPosition _0; - zval *columnList_param = NULL, *strList, *escapeChar, *column = NULL, **_2, *_3 = NULL; + zval *columnList_param = NULL, *columns, *column = NULL, **_2, *_3 = NULL; zval *columnList = NULL; ZEPHIR_MM_GROW(); @@ -44717,33 +44874,103 @@ static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { - ZEPHIR_INIT_VAR(strList); - array_init(strList); - ZEPHIR_OBS_VAR(escapeChar); - zephir_read_property_this(&escapeChar, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 90); + ZEPHIR_INIT_VAR(columns); + array_init(columns); + zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 149); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HVALUE(column, _2); - ZEPHIR_INIT_LNVAR(_3); - ZEPHIR_CONCAT_VVV(_3, escapeChar, column, escapeChar); - zephir_array_append(&strList, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 88); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlcolumn", &_4, column); + zephir_check_call_status(); + zephir_array_append(&columns, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 146); } - zephir_fast_join_str(return_value, SL(", "), strList TSRMLS_CC); + zephir_fast_join_str(return_value, SL(", "), columns TSRMLS_CC); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn) { + + zephir_fcall_cache_entry *_2 = NULL; + zend_bool _0, _1; + int ZEPHIR_LAST_CALL_STATUS; + zval *column = NULL, *columnExpression = NULL, *columnAlias = NULL, *columnField, *columnDomain; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + ZEPHIR_SEPARATE_PARAM(column); + + + if (Z_TYPE_P(column) != IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, column); + zephir_check_call_status(); + RETURN_MM(); + } + if (!(zephir_array_isset_string(column, SS("type")))) { + ZEPHIR_OBS_VAR(columnField); + zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 168 TSRMLS_CC); + if (Z_TYPE_P(columnField) == IS_ARRAY) { + ZEPHIR_INIT_VAR(columnExpression); + zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("scalar"), 1); + zephir_array_update_string(&columnExpression, SL("value"), &columnField, PH_COPY | PH_SEPARATE); + } else if (ZEPHIR_IS_STRING(columnField, "*")) { + ZEPHIR_INIT_NVAR(columnExpression); + zephir_create_array(columnExpression, 1, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("all"), 1); + } else { + ZEPHIR_INIT_NVAR(columnExpression); + zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("qualified"), 1); + zephir_array_update_string(&columnExpression, SL("name"), &columnField, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(columnDomain); + _0 = zephir_array_isset_long_fetch(&columnDomain, column, 1, 0 TSRMLS_CC); + if (_0) { + _0 = !ZEPHIR_IS_STRING(columnDomain, ""); + } + if (_0) { + zephir_array_update_string(&columnExpression, SL("domain"), &columnDomain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(columnAlias); + _1 = zephir_array_isset_long_fetch(&columnAlias, column, 2, 0 TSRMLS_CC); + if (_1) { + _1 = zephir_is_true(columnAlias); + } + if (_1) { + zephir_array_update_string(&columnExpression, SL("sqlAlias"), &columnAlias, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(columnExpression, column); + } + ZEPHIR_CALL_METHOD(&column, this_ptr, "getsqlexpression", NULL, columnExpression); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(columnAlias); + _0 = zephir_array_isset_string_fetch(&columnAlias, columnExpression, SS("sqlAlias"), 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(columnAlias); + _0 = zephir_array_isset_string_fetch(&columnAlias, columnExpression, SS("alias"), 0 TSRMLS_CC); + } + if (_0) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", &_2, column, columnAlias); + zephir_check_call_status(); + RETURN_MM(); + } else { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", &_2, column); + zephir_check_call_status(); + RETURN_MM(); + } + +} + static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { - HashTable *_8, *_13; - HashPosition _7, _12; - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_17 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL, *_11 = NULL, *_12 = NULL, *_15 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_1 = NULL; - zval *expression_param = NULL, *escapeChar = NULL, *type, *domain, *operator, *left = NULL, *right = NULL, *name = NULL, *sqlItems, *escapedName = NULL, *sqlArguments, *arguments, *argument = NULL, *item = NULL, *_0, *_2, *_4, *_5, *_6 = NULL, **_9, *_10 = NULL, *_11 = NULL, **_14, *_15 = NULL, *_16; + zval *expression_param = NULL, *escapeChar = NULL, *type, *_3, *_6 = NULL, *_13, *_14; zval *expression = NULL; ZEPHIR_MM_GROW(); @@ -44752,177 +44979,86 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { expression = expression_param; if (!escapeChar) { - ZEPHIR_CPY_WRT(escapeChar, ZEPHIR_GLOBAL(global_null)); - } else { - ZEPHIR_SEPARATE_PARAM(escapeChar); + escapeChar = ZEPHIR_GLOBAL(global_null); } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - if (Z_TYPE_P(escapeChar) == IS_NULL) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_get_strval(_1, _0); - ZEPHIR_CPY_WRT(escapeChar, _1); - } - } ZEPHIR_OBS_VAR(type); if (!(zephir_array_isset_string_fetch(&type, expression, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 112); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 228); return; } - if (ZEPHIR_IS_STRING(type, "qualified")) { - ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 120 TSRMLS_CC); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_VAR(escapedName); - ZEPHIR_CONCAT_VVV(escapedName, escapeChar, name, escapeChar); - } else { - ZEPHIR_CPY_WRT(escapedName, name); + do { + if (ZEPHIR_IS_STRING(type, "scalar")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionscalar", &_0, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_OBS_VAR(domain); - if (zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC)) { - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(return_value, escapeChar, domain, escapeChar, ".", escapedName); - RETURN_MM(); - } else { - ZEPHIR_CONCAT_VSV(return_value, domain, ".", escapedName); - RETURN_MM(); - } + if (ZEPHIR_IS_STRING(type, "object")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionobject", &_1, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); } - RETURN_CCTOR(escapedName); - } - if (ZEPHIR_IS_STRING(type, "literal")) { - zephir_array_fetch_string(&_2, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 145 TSRMLS_CC); - RETURN_CTOR(_2); - } - if (ZEPHIR_IS_STRING(type, "binary-op")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 153 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 154 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_5, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 156 TSRMLS_CC); - ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _5, " ", right); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "unary-op")) { - ZEPHIR_OBS_VAR(operator); - zephir_array_fetch_string(&operator, expression, SL("op"), PH_NOISY, "phalcon/db/dialect.zep", 164 TSRMLS_CC); - ZEPHIR_OBS_NVAR(left); - if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, left, escapeChar); + if (ZEPHIR_IS_STRING(type, "qualified")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionqualified", &_2, expression, escapeChar); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, _6, operator); RETURN_MM(); } - ZEPHIR_OBS_NVAR(right); - if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, right, escapeChar); + if (ZEPHIR_IS_STRING(type, "literal") || ZEPHIR_IS_STRING(type, "placeholder")) { + zephir_array_fetch_string(&_3, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 256 TSRMLS_CC); + RETURN_CTOR(_3); + } + if (ZEPHIR_IS_STRING(type, "binary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionbinaryoperations", &_4, expression, escapeChar); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, operator, _6); RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 180); - return; - } - if (ZEPHIR_IS_STRING(type, "placeholder")) { - zephir_array_fetch_string(&_2, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 187 TSRMLS_CC); - RETURN_CTOR(_2); - } - if (ZEPHIR_IS_STRING(type, "parentheses")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 194 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "functionCall")) { - ZEPHIR_OBS_NVAR(name); - zephir_array_fetch_string(&name, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 201 TSRMLS_CC); - ZEPHIR_INIT_VAR(sqlArguments); - array_init(sqlArguments); - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, expression, SS("arguments"), 0 TSRMLS_CC)) { - zephir_is_iterable(arguments, &_8, &_7, 0, 0, "phalcon/db/dialect.zep", 207); - for ( - ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS - ; zephir_hash_move_forward_ex(_8, &_7) - ) { - ZEPHIR_GET_HVALUE(argument, _9); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "getsqlexpression", &_3, argument, escapeChar); - zephir_check_call_status(); - zephir_array_append(&sqlArguments, _10, PH_SEPARATE, "phalcon/db/dialect.zep", 205); - } - if (zephir_array_isset_string(expression, SS("distinct"))) { - ZEPHIR_INIT_VAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(DISTINCT ", _11, ")"); - RETURN_MM(); - } else { - ZEPHIR_INIT_NVAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(", _11, ")"); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(", _11, ")"); + if (ZEPHIR_IS_STRING(type, "unary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionunaryoperations", &_5, expression, escapeChar); + zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_CONCAT_VS(return_value, name, "()"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "list")) { - ZEPHIR_INIT_VAR(sqlItems); - array_init(sqlItems); - zephir_array_fetch_long(&_2, expression, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 222 TSRMLS_CC); - zephir_is_iterable(_2, &_13, &_12, 0, 0, "phalcon/db/dialect.zep", 225); - for ( - ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS - ; zephir_hash_move_forward_ex(_13, &_12) - ) { - ZEPHIR_GET_HVALUE(item, _14); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, item, escapeChar); + if (ZEPHIR_IS_STRING(type, "parentheses")) { + zephir_array_fetch_string(&_3, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 274 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_7, _3, escapeChar); zephir_check_call_status(); - zephir_array_append(&sqlItems, _6, PH_SEPARATE, "phalcon/db/dialect.zep", 223); + ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); + RETURN_MM(); } - ZEPHIR_INIT_VAR(_15); - zephir_fast_join_str(_15, SL(", "), sqlItems TSRMLS_CC); - ZEPHIR_CONCAT_SVS(return_value, "(", _15, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "all")) { - RETURN_MM_STRING("*", 1); - } - if (ZEPHIR_IS_STRING(type, "cast")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 240 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 241 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "convert")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 251 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 252 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_15); - object_init_ex(_15, phalcon_db_exception_ce); - ZEPHIR_INIT_VAR(_16); - ZEPHIR_CONCAT_SVS(_16, "Invalid SQL expression type '", type, "'"); - ZEPHIR_CALL_METHOD(NULL, _15, "__construct", &_17, _16); + if (ZEPHIR_IS_STRING(type, "functionCall")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionfunctioncall", &_8, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "list")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionlist", &_9, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "all")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionall", &_10, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "cast")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncastvalue", &_11, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "convert")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionconvertvalue", &_12, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + } while(0); + + ZEPHIR_INIT_VAR(_13); + object_init_ex(_13, phalcon_db_exception_ce); + ZEPHIR_INIT_VAR(_14); + ZEPHIR_CONCAT_SVS(_14, "Invalid SQL expression type '", type, "'"); + ZEPHIR_CALL_METHOD(NULL, _13, "__construct", &_15, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_15, "phalcon/db/dialect.zep", 260 TSRMLS_CC); + zephir_throw_exception_debug(_13, "phalcon/db/dialect.zep", 310 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -44930,9 +45066,9 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { - zend_bool _2; - zval *escapeChar = NULL, *_1 = NULL; - zval *table, *escapeChar_param = NULL, *sqlTable = NULL, *sqlSchema = NULL, *aliasName, *sqlTableAlias = NULL, *schemaName, *tableName, *_0; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *table, *escapeChar_param = NULL, *tableName, *schemaName = NULL, *aliasName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &table, &escapeChar_param); @@ -44945,68 +45081,36 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { } - if (ZEPHIR_IS_STRING_IDENTICAL(escapeChar, "")) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_get_strval(_1, _0); - ZEPHIR_CPY_WRT(escapeChar, _1); - } if (Z_TYPE_P(table) == IS_ARRAY) { ZEPHIR_OBS_VAR(tableName); - zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 284 TSRMLS_CC); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_VAR(sqlTable); - ZEPHIR_CONCAT_VVV(sqlTable, escapeChar, tableName, escapeChar); - } else { - ZEPHIR_CPY_WRT(sqlTable, tableName); - } + zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 329 TSRMLS_CC); ZEPHIR_OBS_VAR(schemaName); - zephir_array_fetch_long(&schemaName, table, 1, PH_NOISY, "phalcon/db/dialect.zep", 295 TSRMLS_CC); - _2 = Z_TYPE_P(schemaName) != IS_NULL; - if (_2) { - _2 = !ZEPHIR_IS_STRING(schemaName, ""); - } - if (_2) { - ZEPHIR_INIT_VAR(sqlSchema); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(sqlSchema, escapeChar, schemaName, escapeChar, ".", sqlTable); - } else { - ZEPHIR_CONCAT_VSV(sqlSchema, schemaName, ".", sqlTable); - } - } else { - ZEPHIR_CPY_WRT(sqlSchema, sqlTable); + if (!(zephir_array_isset_long_fetch(&schemaName, table, 1, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(schemaName); + ZVAL_NULL(schemaName); } ZEPHIR_OBS_VAR(aliasName); - if (zephir_array_isset_long_fetch(&aliasName, table, 2, 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(sqlTableAlias); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VSVVV(sqlTableAlias, sqlSchema, " AS ", escapeChar, aliasName, escapeChar); - } else { - ZEPHIR_CONCAT_VSV(sqlTableAlias, sqlSchema, " AS ", aliasName); - } - } else { - ZEPHIR_CPY_WRT(sqlTableAlias, sqlSchema); + if (!(zephir_array_isset_long_fetch(&aliasName, table, 2, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(aliasName); + ZVAL_NULL(aliasName); } - RETURN_CCTOR(sqlTableAlias); - } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVV(return_value, escapeChar, table, escapeChar); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparetable", NULL, tableName, schemaName, aliasName, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + RETVAL_ZVAL(table, 1, 0); RETURN_MM(); } - RETVAL_ZVAL(table, 1, 0); - RETURN_MM(); } static PHP_METHOD(Phalcon_Db_Dialect, select) { - zephir_nts_static zephir_fcall_cache_entry *_8 = NULL; - zephir_fcall_cache_entry *_3 = NULL; + zend_bool _6, _11, _13, _15, _17, _19; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_9 = NULL, *_12 = NULL, *_14 = NULL, *_16 = NULL, *_18 = NULL, *_21 = NULL; int ZEPHIR_LAST_CALL_STATUS; - HashTable *_1, *_5, *_11, *_16, *_23, *_27; - HashPosition _0, _4, _10, _15, _22, _26; - zval *definition_param = NULL, *tables, *columns, *escapeChar = NULL, *columnItem = NULL, *column = NULL, *selectedColumns, *columnSql = NULL, *columnDomainSql = NULL, *columnAlias = NULL, *selectedTables, *sqlJoin = NULL, *joinExpressions = NULL, *joinCondition = NULL, *joinConditionsArray = NULL, *tablesSql = NULL, *columnDomain = NULL, *columnAliasSql = NULL, *columnsSql = NULL, *table = NULL, *distinct, *sql = NULL, *joins, *join = NULL, *sqlTable = NULL, *whereConditions, *groupFields, *groupField = NULL, *groupItems, *havingConditions, *orderFields, *orderItem = NULL, *orderItems, *orderSqlItem = NULL, *sqlOrderType = NULL, *orderSqlItemType = NULL, *limitValue, *limitNumber = NULL, *limitNumberValue, *offset, *offsetNumber = NULL, **_2, **_6, *_7 = NULL, *_9 = NULL, **_12, *_13, *_14, **_17, *_18 = NULL, *_19 = NULL, *_20 = NULL, *_21 = NULL, **_24, *_25 = NULL, **_28, *_29; - zval *definition = NULL; + zval *definition_param = NULL, *tables, *columns, *sql = NULL, *distinct, *joins, *where, *groupBy, *having, *orderBy, *limit, *_0 = NULL, *_2, *_3 = NULL, *_5, *_7 = NULL, *_8, *_10 = NULL; + zval *definition = NULL, *_20; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &definition_param); @@ -45017,287 +45121,109 @@ static PHP_METHOD(Phalcon_Db_Dialect, select) { ZEPHIR_OBS_VAR(tables); if (!(zephir_array_isset_string_fetch(&tables, definition, SS("tables"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 345); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 360); return; } ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 349); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 364); return; } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_OBS_VAR(escapeChar); - zephir_read_property_this(&escapeChar, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - } else { - ZEPHIR_INIT_NVAR(escapeChar); - ZVAL_NULL(escapeChar); - } - if (Z_TYPE_P(columns) == IS_ARRAY) { - ZEPHIR_INIT_VAR(selectedColumns); - array_init(selectedColumns); - zephir_is_iterable(columns, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 416); - for ( - ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS - ; zephir_hash_move_forward_ex(_1, &_0) - ) { - ZEPHIR_GET_HVALUE(column, _2); - ZEPHIR_OBS_NVAR(columnItem); - zephir_array_fetch_long(&columnItem, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 366 TSRMLS_CC); - if (Z_TYPE_P(columnItem) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "getsqlexpression", &_3, columnItem, escapeChar); - zephir_check_call_status(); - } else { - if (ZEPHIR_IS_STRING(columnItem, "*")) { - ZEPHIR_CPY_WRT(columnSql, columnItem); - } else { - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_NVAR(columnSql); - ZEPHIR_CONCAT_VVV(columnSql, escapeChar, columnItem, escapeChar); - } else { - ZEPHIR_CPY_WRT(columnSql, columnItem); - } - } - } - ZEPHIR_OBS_NVAR(columnDomain); - if (zephir_array_isset_long_fetch(&columnDomain, column, 1, 0 TSRMLS_CC)) { - if (zephir_is_true(columnDomain)) { - ZEPHIR_INIT_NVAR(columnDomainSql); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(columnDomainSql, escapeChar, columnDomain, escapeChar, ".", columnSql); - } else { - ZEPHIR_CONCAT_VSV(columnDomainSql, columnDomain, ".", columnSql); - } - } else { - ZEPHIR_CPY_WRT(columnDomainSql, columnSql); - } - } else { - ZEPHIR_CPY_WRT(columnDomainSql, columnSql); - } - ZEPHIR_OBS_NVAR(columnAlias); - if (zephir_array_isset_long_fetch(&columnAlias, column, 2, 0 TSRMLS_CC)) { - if (zephir_is_true(columnAlias)) { - ZEPHIR_INIT_NVAR(columnAliasSql); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VSVVV(columnAliasSql, columnDomainSql, " AS ", escapeChar, columnAlias, escapeChar); - } else { - ZEPHIR_CONCAT_VSV(columnAliasSql, columnDomainSql, " AS ", columnAlias); - } - } else { - ZEPHIR_CPY_WRT(columnAliasSql, columnDomainSql); - } - } else { - ZEPHIR_CPY_WRT(columnAliasSql, columnDomainSql); - } - zephir_array_append(&selectedColumns, columnAliasSql, PH_SEPARATE, "phalcon/db/dialect.zep", 414); - } - ZEPHIR_INIT_VAR(columnsSql); - zephir_fast_join_str(columnsSql, SL(", "), selectedColumns TSRMLS_CC); - } else { - ZEPHIR_CPY_WRT(columnsSql, columns); - } - if (Z_TYPE_P(tables) == IS_ARRAY) { - ZEPHIR_INIT_VAR(selectedTables); - array_init(selectedTables); - zephir_is_iterable(tables, &_5, &_4, 0, 0, "phalcon/db/dialect.zep", 429); - for ( - ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS - ; zephir_hash_move_forward_ex(_5, &_4) - ) { - ZEPHIR_GET_HVALUE(table, _6); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqltable", &_8, table, escapeChar); - zephir_check_call_status(); - zephir_array_append(&selectedTables, _7, PH_SEPARATE, "phalcon/db/dialect.zep", 427); - } - ZEPHIR_INIT_VAR(tablesSql); - zephir_fast_join_str(tablesSql, SL(", "), selectedTables TSRMLS_CC); - } else { - ZEPHIR_CPY_WRT(tablesSql, tables); - } ZEPHIR_OBS_VAR(distinct); if (zephir_array_isset_string_fetch(&distinct, definition, SS("distinct"), 0 TSRMLS_CC)) { - if (ZEPHIR_IS_LONG(distinct, 0)) { - ZEPHIR_INIT_VAR(sql); - ZVAL_STRING(sql, "SELECT ALL ", 1); + ZEPHIR_INIT_VAR(sql); + if (zephir_is_true(distinct)) { + ZVAL_STRING(sql, "SELECT DISTINCT", 1); } else { - ZEPHIR_INIT_NVAR(sql); - if (ZEPHIR_IS_LONG(distinct, 1)) { - ZVAL_STRING(sql, "SELECT DISTINCT ", 1); - } else { - ZVAL_STRING(sql, "SELECT ", 1); - } + ZVAL_STRING(sql, "SELECT ALL", 1); } } else { ZEPHIR_INIT_NVAR(sql); - ZVAL_STRING(sql, "SELECT ", 1); + ZVAL_STRING(sql, "SELECT", 1); } - ZEPHIR_INIT_VAR(_9); - ZEPHIR_CONCAT_VVSV(_9, sql, columnsSql, " FROM ", tablesSql); - ZEPHIR_CPY_WRT(sql, _9); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_1, columns); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SV(_2, " ", _0); + zephir_concat_self(&sql, _2 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpressionfrom", &_4, tables); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SV(_5, " ", _3); + zephir_concat_self(&sql, _5 TSRMLS_CC); ZEPHIR_OBS_VAR(joins); - if (zephir_array_isset_string_fetch(&joins, definition, SS("joins"), 0 TSRMLS_CC)) { - zephir_is_iterable(joins, &_11, &_10, 0, 0, "phalcon/db/dialect.zep", 478); - for ( - ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS - ; zephir_hash_move_forward_ex(_11, &_10) - ) { - ZEPHIR_GET_HVALUE(join, _12); - zephir_array_fetch_string(&_13, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 456 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&sqlTable, this_ptr, "getsqltable", &_8, _13, escapeChar); - zephir_check_call_status(); - zephir_array_append(&selectedTables, sqlTable, PH_SEPARATE, "phalcon/db/dialect.zep", 457); - zephir_array_fetch_string(&_14, join, SL("type"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 458 TSRMLS_CC); - ZEPHIR_INIT_NVAR(sqlJoin); - ZEPHIR_CONCAT_SVSV(sqlJoin, " ", _14, " JOIN ", sqlTable); - ZEPHIR_OBS_NVAR(joinConditionsArray); - if (zephir_array_isset_string_fetch(&joinConditionsArray, join, SS("conditions"), 0 TSRMLS_CC)) { - if (zephir_fast_count_int(joinConditionsArray TSRMLS_CC)) { - if (!(zephir_array_isset_long(joinConditionsArray, 0))) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, joinConditionsArray, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SVS(_9, " ON ", _7, " "); - zephir_concat_self(&sqlJoin, _9 TSRMLS_CC); - } else { - ZEPHIR_INIT_NVAR(joinExpressions); - array_init(joinExpressions); - zephir_is_iterable(joinConditionsArray, &_16, &_15, 0, 0, "phalcon/db/dialect.zep", 472); - for ( - ; zephir_hash_get_current_data_ex(_16, (void**) &_17, &_15) == SUCCESS - ; zephir_hash_move_forward_ex(_16, &_15) - ) { - ZEPHIR_GET_HVALUE(joinCondition, _17); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getsqlexpression", &_3, joinCondition, escapeChar); - zephir_check_call_status(); - zephir_array_append(&joinExpressions, _18, PH_SEPARATE, "phalcon/db/dialect.zep", 470); - } - ZEPHIR_INIT_NVAR(_19); - zephir_fast_join_str(_19, SL(" AND "), joinExpressions TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_SVS(_20, " ON ", _19, " "); - zephir_concat_self(&sqlJoin, _20 TSRMLS_CC); - } - } - } - zephir_concat_self(&sql, sqlJoin TSRMLS_CC); - } + _6 = zephir_array_isset_string_fetch(&joins, definition, SS("joins"), 0 TSRMLS_CC); + if (_6) { + _6 = zephir_is_true(joins); } - ZEPHIR_OBS_VAR(whereConditions); - if (zephir_array_isset_string_fetch(&whereConditions, definition, SS("where"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(whereConditions) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, whereConditions, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_SV(_20, " WHERE ", _7); - zephir_concat_self(&sql, _20 TSRMLS_CC); - } else { - ZEPHIR_INIT_VAR(_21); - ZEPHIR_CONCAT_SV(_21, " WHERE ", whereConditions); - zephir_concat_self(&sql, _21 TSRMLS_CC); - } + if (_6) { + zephir_array_fetch_string(&_8, definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 393 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionjoins", &_9, _8); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); } - ZEPHIR_OBS_VAR(groupFields); - if (zephir_array_isset_string_fetch(&groupFields, definition, SS("group"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(groupItems); - array_init(groupItems); - zephir_is_iterable(groupFields, &_23, &_22, 0, 0, "phalcon/db/dialect.zep", 504); - for ( - ; zephir_hash_get_current_data_ex(_23, (void**) &_24, &_22) == SUCCESS - ; zephir_hash_move_forward_ex(_23, &_22) - ) { - ZEPHIR_GET_HVALUE(groupField, _24); - if (Z_TYPE_P(groupField) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, groupField, escapeChar); - zephir_check_call_status(); - zephir_array_append(&groupItems, _7, PH_SEPARATE, "phalcon/db/dialect.zep", 499); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 501); - return; - } - } - ZEPHIR_INIT_NVAR(_19); - zephir_fast_join_str(_19, SL(", "), groupItems TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " GROUP BY ", _19); - zephir_concat_self(&sql, _21 TSRMLS_CC); - ZEPHIR_OBS_VAR(havingConditions); - if (zephir_array_isset_string_fetch(&havingConditions, definition, SS("having"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(havingConditions) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, havingConditions, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_25); - ZEPHIR_CONCAT_SV(_25, " HAVING ", _7); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 513); - return; - } - } + ZEPHIR_OBS_VAR(where); + _11 = zephir_array_isset_string_fetch(&where, definition, SS("where"), 0 TSRMLS_CC); + if (_11) { + _11 = zephir_is_true(where); } - ZEPHIR_OBS_VAR(orderFields); - if (zephir_array_isset_string_fetch(&orderFields, definition, SS("order"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(orderItems); - array_init(orderItems); - zephir_is_iterable(orderFields, &_27, &_26, 0, 0, "phalcon/db/dialect.zep", 542); - for ( - ; zephir_hash_get_current_data_ex(_27, (void**) &_28, &_26) == SUCCESS - ; zephir_hash_move_forward_ex(_27, &_26) - ) { - ZEPHIR_GET_HVALUE(orderItem, _28); - if (Z_TYPE_P(orderItem) == IS_ARRAY) { - zephir_array_fetch_long(&_13, orderItem, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 526 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&orderSqlItem, this_ptr, "getsqlexpression", &_3, _13, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 528); - return; - } - ZEPHIR_OBS_NVAR(sqlOrderType); - if (zephir_array_isset_long_fetch(&sqlOrderType, orderItem, 1, 0 TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(orderSqlItemType); - ZEPHIR_CONCAT_VSV(orderSqlItemType, orderSqlItem, " ", sqlOrderType); - } else { - ZEPHIR_CPY_WRT(orderSqlItemType, orderSqlItem); - } - zephir_array_append(&orderItems, orderSqlItemType, PH_SEPARATE, "phalcon/db/dialect.zep", 540); - } - ZEPHIR_INIT_VAR(_29); - zephir_fast_join_str(_29, SL(", "), orderItems TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " ORDER BY ", _29); - zephir_concat_self(&sql, _21 TSRMLS_CC); + if (_11) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionwhere", &_12, where); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); } - ZEPHIR_OBS_VAR(limitValue); - if (zephir_array_isset_string_fetch(&limitValue, definition, SS("limit"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(limitValue) == IS_ARRAY) { - ZEPHIR_OBS_VAR(limitNumberValue); - zephir_array_fetch_string(&limitNumberValue, limitValue, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 552 TSRMLS_CC); - if (Z_TYPE_P(limitNumberValue) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&limitNumber, this_ptr, "getsqlexpression", &_3, limitNumberValue, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(limitNumber, limitNumberValue); - } - ZEPHIR_OBS_VAR(offset); - if (zephir_array_isset_string_fetch(&offset, limitValue, SS("offset"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(offset) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&offsetNumber, this_ptr, "getsqlexpression", &_3, offset, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(offsetNumber, offset); - } - ZEPHIR_INIT_LNVAR(_25); - ZEPHIR_CONCAT_SVSV(_25, " LIMIT ", limitNumber, " OFFSET ", offsetNumber); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } else { - ZEPHIR_INIT_LNVAR(_25); - ZEPHIR_CONCAT_SV(_25, " LIMIT ", limitNumber); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } - } else { - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " LIMIT ", limitValue); - zephir_concat_self(&sql, _21 TSRMLS_CC); - } + ZEPHIR_OBS_VAR(groupBy); + _13 = zephir_array_isset_string_fetch(&groupBy, definition, SS("group"), 0 TSRMLS_CC); + if (_13) { + _13 = zephir_is_true(groupBy); + } + if (_13) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressiongroupby", &_14, groupBy); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(having); + _15 = zephir_array_isset_string_fetch(&having, definition, SS("having"), 0 TSRMLS_CC); + if (_15) { + _15 = zephir_is_true(having); + } + if (_15) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionhaving", &_16, having); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(orderBy); + _17 = zephir_array_isset_string_fetch(&orderBy, definition, SS("order"), 0 TSRMLS_CC); + if (_17) { + _17 = zephir_is_true(orderBy); + } + if (_17) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionorderby", &_18, orderBy); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(limit); + _19 = zephir_array_isset_string_fetch(&limit, definition, SS("limit"), 0 TSRMLS_CC); + if (_19) { + _19 = zephir_is_true(limit); + } + if (_19) { + ZEPHIR_INIT_VAR(_20); + zephir_create_array(_20, 2, 0 TSRMLS_CC); + zephir_array_update_string(&_20, SL("sql"), &sql, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_20, SL("value"), &limit, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&sql, this_ptr, "getsqlexpressionlimit", &_21, _20); + zephir_check_call_status(); } RETURN_CCTOR(sql); @@ -45400,307 +45326,1243 @@ static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint) { } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar) { + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *value, *_0; + zval *expression = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include - - + expression = expression_param; -ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); - return SUCCESS; + if (zephir_array_isset_string(expression, SS("column"))) { + zephir_array_fetch_string(&_0, expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 482 TSRMLS_CC); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlcolumn", &_1, _0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_string_fetch(&value, expression, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 486); + return; + } + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, value, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + RETURN_CCTOR(value); + } } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _0, _1; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *domain = NULL, *objectExpression; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(domain); + ZVAL_NULL(domain); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); + ZEPHIR_INIT_VAR(objectExpression); + zephir_create_array(objectExpression, 1, 0 TSRMLS_CC); + add_assoc_stringl_ex(objectExpression, SS("type"), SL("all"), 1); + ZEPHIR_OBS_NVAR(domain); + _0 = zephir_array_isset_string_fetch(&domain, expression, SS("balias"), 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(domain); + _0 = zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC); + } + _1 = _0; + if (_1) { + _1 = !ZEPHIR_IS_STRING(domain, ""); + } + if (_1) { + zephir_array_update_string(&objectExpression, SL("domain"), &domain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, objectExpression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *column, *domain = NULL; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); + ZEPHIR_OBS_VAR(column); + zephir_array_fetch_string(&column, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 520 TSRMLS_CC); + ZEPHIR_OBS_VAR(domain); + if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(domain); + ZVAL_NULL(domain); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, column, domain, escapeChar); + zephir_check_call_status(); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2, *_3; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 539 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 540 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_3, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 542 TSRMLS_CC); + ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _3, " ", right); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left, *right, *_0 = NULL, *_2; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); + expression = expression_param; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_OBS_VAR(left); + if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, left, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 556 TSRMLS_CC); + ZEPHIR_CONCAT_VSV(return_value, _0, " ", _2); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(right); + if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 563 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, right, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, _2, " ", _0); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 566); + return; -#ifdef HAVE_CONFIG_H -#endif +} -#include +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall) { -#include -#include -#include + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _0, _2; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *arguments = NULL, *_3, *_4; + zval *expression = NULL, *_1; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); + expression = expression_param; -ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); - return SUCCESS; + ZEPHIR_OBS_VAR(arguments); + _0 = zephir_array_isset_string_fetch(&arguments, expression, SS("arguments"), 0 TSRMLS_CC); + if (_0) { + _0 = Z_TYPE_P(arguments) == IS_ARRAY; + } + if (_0) { + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + add_assoc_stringl_ex(_1, SS("type"), SL("list"), 1); + zephir_array_update_string(&_1, SL("parentheses"), &ZEPHIR_GLOBAL(global_false), PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("value"), &arguments, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&arguments, this_ptr, "getsqlexpression", NULL, _1, escapeChar); + zephir_check_call_status(); + _2 = zephir_array_isset_string(expression, SS("distinct")); + if (_2) { + zephir_array_fetch_string(&_3, expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 584 TSRMLS_CC); + _2 = zephir_is_true(_3); + } + if (_2) { + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 585 TSRMLS_CC); + ZEPHIR_CONCAT_VSVS(return_value, _4, "(DISTINCT ", arguments, ")"); + RETURN_MM(); + } else { + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 587 TSRMLS_CC); + ZEPHIR_CONCAT_VSVS(return_value, _4, "(", arguments, ")"); + RETURN_MM(); + } + } + zephir_array_fetch_string(&_3, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 592 TSRMLS_CC); + ZEPHIR_CONCAT_VS(return_value, _3, "()"); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { + zephir_fcall_cache_entry *_6 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_3; + HashPosition _2; + zend_bool _0, _1, _7; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *items, *item = NULL, *values = NULL, *separator = NULL, **_4, *_5 = NULL, *_8, *_9; + zval *expression = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - + expression = expression_param; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Db_Index) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + ZEPHIR_INIT_VAR(items); + array_init(items); + ZEPHIR_INIT_VAR(separator); + ZVAL_STRING(separator, ", ", 1); + if (zephir_array_isset_string(expression, SS("separator"))) { + ZEPHIR_OBS_NVAR(separator); + zephir_array_fetch_string(&separator, expression, SL("separator"), PH_NOISY, "phalcon/db/dialect.zep", 606 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(values); + _0 = zephir_array_isset_long_fetch(&values, expression, 0, 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(values); + _0 = zephir_array_isset_string_fetch(&values, expression, SS("value"), 0 TSRMLS_CC); + } + _1 = _0; + if (_1) { + _1 = Z_TYPE_P(values) == IS_ARRAY; + } + if (_1) { + zephir_is_iterable(values, &_3, &_2, 0, 0, "phalcon/db/dialect.zep", 615); + for ( + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) + ) { + ZEPHIR_GET_HVALUE(item, _4); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getsqlexpression", &_6, item, escapeChar); + zephir_check_call_status(); + zephir_array_append(&items, _5, PH_SEPARATE, "phalcon/db/dialect.zep", 612); + } + _7 = zephir_array_isset_string(expression, SS("parentheses")); + if (_7) { + zephir_array_fetch_string(&_8, expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 615 TSRMLS_CC); + _7 = ZEPHIR_IS_FALSE_IDENTICAL(_8); + } + if (_7) { + zephir_fast_join(return_value, separator, items TSRMLS_CC); + RETURN_MM(); + } else { + ZEPHIR_INIT_VAR(_9); + zephir_fast_join(_9, separator, items TSRMLS_CC); + ZEPHIR_CONCAT_SVS(return_value, "(", _9, ")"); + RETURN_MM(); + } + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/db/dialect.zep", 622); + return; - zend_declare_property_null(phalcon_db_index_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_declare_property_null(phalcon_db_index_ce, SL("_columns"), ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll) { - zend_declare_property_null(phalcon_db_index_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *domain = NULL, *_0; + zval *expression = NULL; - zend_class_implements(phalcon_db_index_ce TSRMLS_CC, 1, phalcon_db_indexinterface_ce); - return SUCCESS; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -} + expression = expression_param; -static PHP_METHOD(Phalcon_Db_Index, getName) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - RETURN_MEMBER(this_ptr, "_name"); + ZEPHIR_OBS_VAR(domain); + if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(domain); + ZVAL_NULL(domain); + } + ZEPHIR_INIT_VAR(_0); + ZVAL_STRING(_0, "*", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, _0, domain, escapeChar); + zephir_check_temp_parameter(_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, getColumns) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue) { + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2; + zval *expression = NULL; - RETURN_MEMBER(this_ptr, "_columns"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -} + expression = expression_param; -static PHP_METHOD(Phalcon_Db_Index, getType) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - RETURN_MEMBER(this_ptr, "_type"); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 646 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 647 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue) { - zval *columns = NULL; - zval *name_param = NULL, *columns_param = NULL, *type = NULL; - zval *name = NULL, *_0 = NULL; + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2; + zval *expression = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); - if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + expression = expression_param; - if (likely(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(name, name_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); } else { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); - } - columns = columns_param; - - if (!type) { - type = ZEPHIR_GLOBAL(global_null); + zephir_get_strval(escapeChar, escapeChar_param); } - zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_columns"), columns TSRMLS_CC); - zephir_get_strval(_0, type); - zephir_update_property_this(this_ptr, SL("_type"), _0 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 659 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 660 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, __set_state) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *indexName, *columns, *type = NULL; - zval *data = NULL; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *table = NULL, *tables = NULL, **_2, *_3 = NULL, *_5; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data_param); - - data = data_param; + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_OBS_VAR(indexName); - if (!(zephir_array_isset_string_fetch(&indexName, data, SS("_name"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_name parameter is required", "phalcon/db/index.zep", 71); - return; - } - ZEPHIR_OBS_VAR(columns); - if (!(zephir_array_isset_string_fetch(&columns, data, SS("_columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_columns parameter is required", "phalcon/db/index.zep", 75); - return; - } - ZEPHIR_OBS_VAR(type); - if (!(zephir_array_isset_string_fetch(&type, data, SS("_type"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "", 1); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(tables); + array_init(tables); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 680); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(table, _2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqltable", &_4, table); + zephir_check_call_status(); + zephir_array_append(&tables, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 677); + } + ZEPHIR_INIT_VAR(_5); + zephir_fast_join_str(_5, SL(", "), tables TSRMLS_CC); + ZEPHIR_CPY_WRT(tables, _5); + } else { + ZEPHIR_CPY_WRT(tables, expression); } - object_init_ex(return_value, phalcon_db_index_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, indexName, columns, type); - zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "FROM ", tables); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { + zephir_nts_static zephir_fcall_cache_entry *_12 = NULL; + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _3, _10; + HashTable *_1, *_6; + HashPosition _0, _5; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *join = NULL, *sql, *joinCondition = NULL, *joinTable = NULL, *joinType = NULL, *joinConditionsArray = NULL, **_2, *condition = NULL, **_7, *_8 = NULL, *_9 = NULL, *_11, *_13 = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "", 1); + ZEPHIR_INIT_VAR(joinType); + ZVAL_STRING(joinType, "", 1); -#include -#include + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 729); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(join, _2); + ZEPHIR_OBS_NVAR(joinConditionsArray); + _3 = zephir_array_isset_string_fetch(&joinConditionsArray, join, SS("conditions"), 0 TSRMLS_CC); + if (_3) { + _3 = !(ZEPHIR_IS_EMPTY(joinConditionsArray)); + } + if (_3) { + if (!(zephir_array_isset_long(joinConditionsArray, 0))) { + ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_4, joinConditionsArray, escapeChar); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(joinCondition); + array_init(joinCondition); + zephir_is_iterable(joinConditionsArray, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 714); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HVALUE(condition, _7); + ZEPHIR_CALL_METHOD(&_8, this_ptr, "getsqlexpression", &_4, condition, escapeChar); + zephir_check_call_status(); + zephir_array_append(&joinCondition, _8, PH_SEPARATE, "phalcon/db/dialect.zep", 711); + } + ZEPHIR_INIT_NVAR(_9); + zephir_fast_join_str(_9, SL(" AND "), joinCondition TSRMLS_CC); + ZEPHIR_CPY_WRT(joinCondition, _9); + } + } else { + ZEPHIR_INIT_NVAR(joinCondition); + ZVAL_LONG(joinCondition, 1); + } + ZEPHIR_OBS_NVAR(joinType); + _10 = zephir_array_isset_string_fetch(&joinType, join, SS("type"), 0 TSRMLS_CC); + if (_10) { + _10 = zephir_is_true(joinType); + } + if (_10) { + zephir_concat_self_str(&joinType, SL(" ") TSRMLS_CC); + } + zephir_array_fetch_string(&_11, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 724 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_12, _11, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_13); + ZEPHIR_CONCAT_SVSVSV(_13, " ", joinType, "JOIN ", joinTable, " ON ", joinCondition); + zephir_concat_self(&sql, _13 TSRMLS_CC); + } + RETURN_CCTOR(sql); +} +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere) { -ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) { + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *whereSql = NULL; - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - return SUCCESS; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&whereSql, this_ptr, "getsqlexpression", NULL, expression, escapeChar); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(whereSql, expression); + } + ZEPHIR_CONCAT_SV(return_value, "WHERE ", whereSql); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __construct); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy) { -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *filed = NULL, *fields = NULL, **_2, *_3 = NULL, *_5; -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __set_state); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(fields); + array_init(fields); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 767); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(filed, _2); + if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/db/dialect.zep", 761); + return; + } else { + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpression", &_4, filed, escapeChar); + zephir_check_call_status(); + zephir_array_append(&fields, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 763); + } + } + ZEPHIR_INIT_VAR(_5); + zephir_fast_join_str(_5, SL(", "), fields TSRMLS_CC); + ZEPHIR_CPY_WRT(fields, _5); + } else { + ZEPHIR_CPY_WRT(fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "GROUP BY ", fields); + RETURN_MM(); + +} +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving) { + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *_0 = NULL; -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -#include + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -#include -#include -#include + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, expression, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "HAVING ", _0); + RETURN_MM(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-HAVING expression", "phalcon/db/dialect.zep", 784); + return; + } +} -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + zend_bool _5; + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *filed = NULL, *fields = NULL, *type = NULL, *fieldSql = NULL, **_2, *_3, *_6 = NULL, *_7; - zend_declare_property_null(phalcon_db_profiler_ce, SL("_allProfiles"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - zend_declare_property_null(phalcon_db_profiler_ce, SL("_activeProfile"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(fieldSql); + ZVAL_NULL(fieldSql); - zend_declare_property_long(phalcon_db_profiler_ce, SL("_totalSeconds"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - return SUCCESS; + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(fields); + array_init(fields); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 817); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(filed, _2); + if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/db/dialect.zep", 802); + return; + } else { + zephir_array_fetch_long(&_3, filed, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 804 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_4, _3, escapeChar); + zephir_check_call_status(); + } + ZEPHIR_OBS_NVAR(type); + _5 = zephir_array_isset_long_fetch(&type, filed, 1, 0 TSRMLS_CC); + if (_5) { + _5 = !ZEPHIR_IS_STRING(type, ""); + } + if (_5) { + ZEPHIR_INIT_LNVAR(_6); + ZEPHIR_CONCAT_SV(_6, " ", type); + zephir_concat_self(&fieldSql, _6 TSRMLS_CC); + } + zephir_array_append(&fields, fieldSql, PH_SEPARATE, "phalcon/db/dialect.zep", 814); + } + ZEPHIR_INIT_VAR(_7); + zephir_fast_join_str(_7, SL(", "), fields TSRMLS_CC); + ZEPHIR_CPY_WRT(fields, _7); + } else { + ZEPHIR_CPY_WRT(fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "ORDER BY ", fields); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Profiler, startProfile) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL; + zval *_5; + zend_bool _3; + zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement, *sqlVariables = NULL, *sqlBindTypes = NULL, *activeProfile, *_3; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *sql = NULL, *value, *limit = NULL, *offset = NULL, *_0, *_1, *_4 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement, &sqlVariables, &sqlBindTypes); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - if (!sqlVariables) { - sqlVariables = ZEPHIR_GLOBAL(global_null); - } - if (!sqlBindTypes) { - sqlBindTypes = ZEPHIR_GLOBAL(global_null); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "", 1); + ZEPHIR_INIT_VAR(offset); + ZVAL_NULL(offset); - ZEPHIR_INIT_VAR(activeProfile); - object_init_ex(activeProfile, phalcon_db_profiler_item_ce); - if (zephir_has_constructor(activeProfile TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, activeProfile, "__construct", NULL); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(value); + zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/db/dialect.zep", 832 TSRMLS_CC); + if (zephir_array_isset_string(expression, SS("sql"))) { + ZEPHIR_OBS_NVAR(sql); + zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/db/dialect.zep", 835 TSRMLS_CC); } - ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlstatement", &_0, sqlStatement); + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_OBS_VAR(_0); + zephir_array_fetch_string(&_0, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 840 TSRMLS_CC); + if (Z_TYPE_P(_0) == IS_ARRAY) { + zephir_array_fetch_string(&_1, value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 841 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&limit, this_ptr, "getsqlexpression", &_2, _1); + zephir_check_call_status(); + } else { + ZEPHIR_OBS_NVAR(limit); + zephir_array_fetch_string(&limit, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 843 TSRMLS_CC); + } + ZEPHIR_OBS_NVAR(offset); + _3 = zephir_array_isset_string_fetch(&offset, value, SS("offset"), 0 TSRMLS_CC); + if (_3) { + _3 = Z_TYPE_P(offset) == IS_ARRAY; + } + if (_3) { + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getsqlexpression", &_2, offset); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(offset, _4); + } + } else { + ZEPHIR_CPY_WRT(limit, value); + } + ZEPHIR_INIT_VAR(_5); + zephir_create_array(_5, 2, 0 TSRMLS_CC); + zephir_array_fast_append(_5, limit); + zephir_array_fast_append(_5, offset); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "limit", NULL, sql, _5); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *qualified_param = NULL, *alias_param = NULL, *_0 = NULL; + zval *qualified = NULL, *alias = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &qualified_param, &alias_param); + + if (unlikely(Z_TYPE_P(qualified_param) != IS_STRING && Z_TYPE_P(qualified_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'qualified' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(qualified_param) == IS_STRING)) { + zephir_get_strval(qualified, qualified_param); + } else { + ZEPHIR_INIT_VAR(qualified); + ZVAL_EMPTY_STRING(qualified); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(alias); + ZVAL_EMPTY_STRING(alias); + } else { + zephir_get_strval(alias, alias_param); + } + + + if (!ZEPHIR_IS_STRING(alias, "")) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_1, alias); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, qualified, " AS ", _0); + RETURN_MM(); + } else { + RETURN_CTOR(qualified); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, *_0 = NULL, *_2 = NULL, *_3 = NULL; + zval *table = NULL, *schema = NULL, *alias = NULL, *escapeChar = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &table_param, &schema_param, &alias_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(alias); + ZVAL_EMPTY_STRING(alias); + } else { + zephir_get_strval(alias, alias_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_1, table, escapeChar); + zephir_check_call_status(); + zephir_get_strval(table, _0); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "escape", &_1, schema, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _2, ".", table); + zephir_get_strval(table, _3); + } + if (!ZEPHIR_IS_STRING(alias, "")) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "escape", &_1, alias, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_3); + ZEPHIR_CONCAT_VSV(_3, table, " AS ", _2); + zephir_get_strval(table, _3); + } + RETURN_CTOR(table); + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *domain_param = NULL, *escapeChar_param = NULL; + zval *column = NULL, *domain = NULL, *escapeChar = NULL, *_0; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &column_param, &domain_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(column_param) != IS_STRING && Z_TYPE_P(column_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'column' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(column_param) == IS_STRING)) { + zephir_get_strval(column, column_param); + } else { + ZEPHIR_INIT_VAR(column); + ZVAL_EMPTY_STRING(column); + } + if (!domain_param) { + ZEPHIR_INIT_VAR(domain); + ZVAL_EMPTY_STRING(domain); + } else { + zephir_get_strval(domain, domain_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (!ZEPHIR_IS_STRING(domain, "")) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, domain, ".", column); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", &_1, _0, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", &_1, column, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createView); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropView); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, viewExists); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Index) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + + zend_declare_property_null(phalcon_db_index_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_index_ce, SL("_columns"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_index_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_db_index_ce TSRMLS_CC, 1, phalcon_db_indexinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Db_Index, getName) { + + + RETURN_MEMBER(this_ptr, "_name"); + +} + +static PHP_METHOD(Phalcon_Db_Index, getColumns) { + + + RETURN_MEMBER(this_ptr, "_columns"); + +} + +static PHP_METHOD(Phalcon_Db_Index, getType) { + + + RETURN_MEMBER(this_ptr, "_type"); + +} + +static PHP_METHOD(Phalcon_Db_Index, __construct) { + + zval *columns = NULL; + zval *name_param = NULL, *columns_param = NULL, *type = NULL; + zval *name = NULL, *_0 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type); + + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + columns = columns_param; + + if (!type) { + type = ZEPHIR_GLOBAL(global_null); + } + + + zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_columns"), columns TSRMLS_CC); + zephir_get_strval(_0, type); + zephir_update_property_this(this_ptr, SL("_type"), _0 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Db_Index, __set_state) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *indexName, *columns, *type = NULL; + zval *data = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; + + + + ZEPHIR_OBS_VAR(indexName); + if (!(zephir_array_isset_string_fetch(&indexName, data, SS("_name"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_name parameter is required", "phalcon/db/index.zep", 71); + return; + } + ZEPHIR_OBS_VAR(columns); + if (!(zephir_array_isset_string_fetch(&columns, data, SS("_columns"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_columns parameter is required", "phalcon/db/index.zep", 75); + return; + } + ZEPHIR_OBS_VAR(type); + if (!(zephir_array_isset_string_fetch(&type, data, SS("_type"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "", 1); + } + object_init_ex(return_value, phalcon_db_index_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, indexName, columns, type); + zephir_check_call_status(); + RETURN_MM(); + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __construct); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __set_state); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("_allProfiles"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("_activeProfile"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_long(phalcon_db_profiler_ce, SL("_totalSeconds"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Db_Profiler, startProfile) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement, *sqlVariables = NULL, *sqlBindTypes = NULL, *activeProfile, *_3; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &sqlStatement, &sqlVariables, &sqlBindTypes); + + if (!sqlVariables) { + sqlVariables = ZEPHIR_GLOBAL(global_null); + } + if (!sqlBindTypes) { + sqlBindTypes = ZEPHIR_GLOBAL(global_null); + } + + + ZEPHIR_INIT_VAR(activeProfile); + object_init_ex(activeProfile, phalcon_db_profiler_item_ce); + if (zephir_has_constructor(activeProfile TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, activeProfile, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlstatement", &_0, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(sqlVariables) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlvariables", &_1, sqlVariables); @@ -46375,11 +47237,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *bindParams = NULL, *bindTypes = NULL, *eventsManager = NULL, *pdo = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; + zval *bindParams = NULL; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes = NULL, *eventsManager = NULL, *pdo = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; zval *sqlStatement = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams, &bindTypes); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes); if (unlikely(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be a string") TSRMLS_CC); @@ -46392,8 +47255,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { ZEPHIR_INIT_VAR(sqlStatement); ZVAL_EMPTY_STRING(sqlStatement); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(bindParams); + array_init(bindParams); + } else { + zephir_get_arrval(bindParams, bindParams_param); } if (!bindTypes) { bindTypes = ZEPHIR_GLOBAL(global_null); @@ -46417,7 +47283,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdo"), PH_NOISY_CC); ZEPHIR_CPY_WRT(pdo, _0); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { + if (1 == 1) { ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(statement) == IS_OBJECT) { @@ -46449,11 +47315,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *bindParams = NULL, *bindTypes = NULL, *eventsManager = NULL, *affectedRows = NULL, *pdo = NULL, *newStatement = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; + zval *bindParams = NULL; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes = NULL, *eventsManager = NULL, *affectedRows = NULL, *pdo = NULL, *newStatement = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; zval *sqlStatement = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams, &bindTypes); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes); if (unlikely(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be a string") TSRMLS_CC); @@ -46466,8 +47333,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { ZEPHIR_INIT_VAR(sqlStatement); ZVAL_EMPTY_STRING(sqlStatement); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(bindParams); + array_init(bindParams); + } else { + zephir_get_arrval(bindParams, bindParams_param); } if (!bindTypes) { bindTypes = ZEPHIR_GLOBAL(global_null); @@ -46493,7 +47363,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { ZVAL_LONG(affectedRows, 0); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdo"), PH_NOISY_CC); ZEPHIR_CPY_WRT(pdo, _0); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { + if (1 == 1) { ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(statement) == IS_OBJECT) { @@ -47059,7 +47929,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/mysql.zep", 271); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/mysql.zep", 267); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47069,15 +47939,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 115 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 111 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/mysql.zep", 122)) { + if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/mysql.zep", 118)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 5); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/mysql.zep", 130)) { + if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/mysql.zep", 126)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47087,19 +47957,19 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/mysql.zep", 140)) { + if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/mysql.zep", 136)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/mysql.zep", 148)) { + if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/mysql.zep", 144)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/mysql.zep", 156)) { + if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/mysql.zep", 152)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47109,25 +47979,25 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/mysql.zep", 166)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/mysql.zep", 162)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/mysql.zep", 174)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/mysql.zep", 170)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/mysql.zep", 182)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/mysql.zep", 178)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/mysql.zep", 190)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/mysql.zep", 186)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47142,7 +48012,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/mysql.zep", 207)) { + if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/mysql.zep", 203)) { ZEPHIR_INIT_NVAR(matches); ZVAL_NULL(matches); ZEPHIR_INIT_NVAR(_8); @@ -47162,7 +48032,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { } } } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/mysql.zep", 222)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/mysql.zep", 218)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -47170,30 +48040,30 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 238 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 234 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "PRI")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_11, field, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 245 TSRMLS_CC); + zephir_array_fetch_long(&_11, field, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 241 TSRMLS_CC); if (ZEPHIR_IS_STRING(_11, "NO")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 252 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 248 TSRMLS_CC); if (ZEPHIR_IS_STRING(_12, "auto_increment")) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } ZEPHIR_OBS_NVAR(_13); - zephir_array_fetch_long(&_13, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 255 TSRMLS_CC); if (Z_TYPE_P(_13) != IS_NULL) { - zephir_array_fetch_long(&_14, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 260 TSRMLS_CC); + zephir_array_fetch_long(&_14, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 256 TSRMLS_CC); zephir_array_update_string(&definition, SL("default"), &_14, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 262 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_15, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/mysql.zep", 267); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/mysql.zep", 263); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47276,11 +48146,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { HashTable *_5; HashPosition _4; int ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema = NULL, *columns, *oldColumn = NULL, *field = NULL, *definition = NULL, *columnSize = NULL, *columnPrecision = NULL, *columnScale = NULL, *columnType = NULL, *columnName, *_0 = NULL, *_1, *_2 = NULL, *_3 = NULL, **_6, *_7 = NULL, *_8 = NULL, *_9, *_10; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *columns, *oldColumn = NULL, *field = NULL, *definition = NULL, *columnSize = NULL, *columnPrecision = NULL, *columnScale = NULL, *columnType = NULL, *columnName, *_0 = NULL, *_1, *_2 = NULL, *_3 = NULL, **_6, *_7 = NULL, *_8 = NULL, *_9, *_10; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -47293,8 +48163,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } @@ -47309,7 +48182,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/oracle.zep", 207); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/oracle.zep", 203); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47319,15 +48192,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnSize); - zephir_array_fetch_long(&columnSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 106 TSRMLS_CC); + zephir_array_fetch_long(&columnSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 102 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnPrecision); - zephir_array_fetch_long(&columnPrecision, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 107 TSRMLS_CC); + zephir_array_fetch_long(&columnPrecision, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 103 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnScale); - zephir_array_fetch_long(&columnScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 108 TSRMLS_CC); + zephir_array_fetch_long(&columnScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 104 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 109 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 105 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("NUMBER"), "phalcon/db/adapter/pdo/oracle.zep", 116)) { + if (zephir_memnstr_str(columnType, SL("NUMBER"), "phalcon/db/adapter/pdo/oracle.zep", 112)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 3); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47339,7 +48212,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("INTEGER"), "phalcon/db/adapter/pdo/oracle.zep", 125)) { + if (zephir_memnstr_str(columnType, SL("INTEGER"), "phalcon/db/adapter/pdo/oracle.zep", 121)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47350,14 +48223,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("VARCHAR2"), "phalcon/db/adapter/pdo/oracle.zep", 133)) { + if (zephir_memnstr_str(columnType, SL("VARCHAR2"), "phalcon/db/adapter/pdo/oracle.zep", 129)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &columnSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("FLOAT"), "phalcon/db/adapter/pdo/oracle.zep", 139)) { + if (zephir_memnstr_str(columnType, SL("FLOAT"), "phalcon/db/adapter/pdo/oracle.zep", 135)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47369,31 +48242,31 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("TIMESTAMP"), "phalcon/db/adapter/pdo/oracle.zep", 148)) { + if (zephir_memnstr_str(columnType, SL("TIMESTAMP"), "phalcon/db/adapter/pdo/oracle.zep", 144)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("RAW"), "phalcon/db/adapter/pdo/oracle.zep", 153)) { + if (zephir_memnstr_str(columnType, SL("RAW"), "phalcon/db/adapter/pdo/oracle.zep", 149)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("BLOB"), "phalcon/db/adapter/pdo/oracle.zep", 158)) { + if (zephir_memnstr_str(columnType, SL("BLOB"), "phalcon/db/adapter/pdo/oracle.zep", 154)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("CLOB"), "phalcon/db/adapter/pdo/oracle.zep", 163)) { + if (zephir_memnstr_str(columnType, SL("CLOB"), "phalcon/db/adapter/pdo/oracle.zep", 159)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("CHAR"), "phalcon/db/adapter/pdo/oracle.zep", 168)) { + if (zephir_memnstr_str(columnType, SL("CHAR"), "phalcon/db/adapter/pdo/oracle.zep", 164)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47410,20 +48283,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_9, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 187 TSRMLS_CC); + zephir_array_fetch_long(&_9, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 183 TSRMLS_CC); if (ZEPHIR_IS_STRING(_9, "P")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 194 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 190 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "N")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 198 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 194 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8); object_init_ex(_8, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_11, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/oracle.zep", 203); + zephir_array_append(&columns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/oracle.zep", 199); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47433,13 +48306,17 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, lastInsertId) { int ZEPHIR_LAST_CALL_STATUS; - zval *sequenceName = NULL, *_0 = NULL, *_1, *_2, *_3; + zval *sequenceName_param = NULL, *_0 = NULL, *_2, *_3; + zval *sequenceName = NULL, *_1; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &sequenceName); + zephir_fetch_params(1, 0, 1, &sequenceName_param); - if (!sequenceName) { - sequenceName = ZEPHIR_GLOBAL(global_null); + if (!sequenceName_param) { + ZEPHIR_INIT_VAR(sequenceName); + ZVAL_EMPTY_STRING(sequenceName); + } else { + zephir_get_strval(sequenceName, sequenceName_param); } @@ -47449,7 +48326,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, lastInsertId) { ZVAL_LONG(_2, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _1, _2); zephir_check_call_status(); - zephir_array_fetch_long(&_3, _0, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 230 TSRMLS_CC); + zephir_array_fetch_long(&_3, _0, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 223 TSRMLS_CC); RETURN_CTOR(_3); } @@ -47598,7 +48475,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/postgresql.zep", 295); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/postgresql.zep", 291); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47608,15 +48485,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 119 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 115 TSRMLS_CC); ZEPHIR_OBS_NVAR(charSize); - zephir_array_fetch_long(&charSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 120 TSRMLS_CC); + zephir_array_fetch_long(&charSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 116 TSRMLS_CC); ZEPHIR_OBS_NVAR(numericSize); - zephir_array_fetch_long(&numericSize, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 121 TSRMLS_CC); + zephir_array_fetch_long(&numericSize, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 117 TSRMLS_CC); ZEPHIR_OBS_NVAR(numericScale); - zephir_array_fetch_long(&numericScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 122 TSRMLS_CC); + zephir_array_fetch_long(&numericScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 118 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("smallint(1)"), "phalcon/db/adapter/pdo/postgresql.zep", 129)) { + if (zephir_memnstr_str(columnType, SL("smallint(1)"), "phalcon/db/adapter/pdo/postgresql.zep", 125)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 8); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47625,7 +48502,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/postgresql.zep", 138)) { + if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/postgresql.zep", 134)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47636,14 +48513,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("varying"), "phalcon/db/adapter/pdo/postgresql.zep", 149)) { + if (zephir_memnstr_str(columnType, SL("varying"), "phalcon/db/adapter/pdo/postgresql.zep", 145)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/postgresql.zep", 158)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/postgresql.zep", 154)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47652,7 +48529,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("size"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("numeric"), "phalcon/db/adapter/pdo/postgresql.zep", 167)) { + if (zephir_memnstr_str(columnType, SL("numeric"), "phalcon/db/adapter/pdo/postgresql.zep", 163)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47664,14 +48541,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/postgresql.zep", 179)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/postgresql.zep", 175)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/postgresql.zep", 188)) { + if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/postgresql.zep", 184)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47680,14 +48557,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("size"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/postgresql.zep", 197)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/postgresql.zep", 193)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/postgresql.zep", 206)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/postgresql.zep", 202)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47698,7 +48575,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("bool"), "phalcon/db/adapter/pdo/postgresql.zep", 217)) { + if (zephir_memnstr_str(columnType, SL("bool"), "phalcon/db/adapter/pdo/postgresql.zep", 213)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 8); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47710,7 +48587,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("uuid"), "phalcon/db/adapter/pdo/postgresql.zep", 227)) { + if (zephir_memnstr_str(columnType, SL("uuid"), "phalcon/db/adapter/pdo/postgresql.zep", 223)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47724,7 +48601,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/postgresql.zep", 243)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/postgresql.zep", 239)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -47732,22 +48609,22 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 255 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "PRI")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_11, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&_11, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 262 TSRMLS_CC); if (ZEPHIR_IS_STRING(_11, "NO")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 7, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 273 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 7, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 269 TSRMLS_CC); if (ZEPHIR_IS_STRING(_12, "auto_increment")) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } ZEPHIR_OBS_NVAR(_13); - zephir_array_fetch_long(&_13, field, 9, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 280 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 9, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 276 TSRMLS_CC); if (Z_TYPE_P(_13) != IS_NULL) { - zephir_array_fetch_long(&_14, field, 9, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 281 TSRMLS_CC); + zephir_array_fetch_long(&_14, field, 9, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 277 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8); ZVAL_STRING(_8, "/^'|'?::[[:alnum:][:space:]]+$/", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_9); @@ -47757,7 +48634,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_check_temp_parameter(_9); zephir_check_call_status(); zephir_array_update_string(&definition, SL("default"), &_15, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_17, definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 282 TSRMLS_CC); + zephir_array_fetch_string(&_17, definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 278 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_18); ZVAL_STRING(&_18, "null", 0); ZEPHIR_CALL_FUNCTION(&_19, "strcasecmp", &_20, _17, &_18); @@ -47766,12 +48643,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("default"), &ZEPHIR_GLOBAL(global_null), PH_COPY | PH_SEPARATE); } } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 290 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 286 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_21, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/postgresql.zep", 291); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/postgresql.zep", 287); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47857,12 +48734,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, connect) { ZEPHIR_OBS_NVAR(descriptor); zephir_read_property_this(&descriptor, this_ptr, SL("_descriptor"), PH_NOISY_CC); } - if (!(zephir_array_isset_string(descriptor, SS("dbname")))) { + ZEPHIR_OBS_VAR(dbname); + if (!(zephir_array_isset_string_fetch(&dbname, descriptor, SS("dbname"), 0 TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "dbname must be specified", "phalcon/db/adapter/pdo/sqlite.zep", 69); return; } - ZEPHIR_OBS_VAR(dbname); - zephir_array_isset_string_fetch(&dbname, descriptor, SS("dbname"), 0 TSRMLS_CC); zephir_array_update_string(&descriptor, SL("dsn"), &dbname, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_sqlite_ce, this_ptr, "connect", &_0, descriptor); zephir_check_call_status(); @@ -47906,7 +48782,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 286); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 280); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47916,9 +48792,9 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 113 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 107 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("tinyint(1)"), "phalcon/db/adapter/pdo/sqlite.zep", 120)) { + if (zephir_memnstr_str(columnType, SL("tinyint(1)"), "phalcon/db/adapter/pdo/sqlite.zep", 114)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 8); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47929,9 +48805,9 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZVAL_STRING(columnType, "boolean", 1); break; } - _8 = zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/sqlite.zep", 130); + _8 = zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/sqlite.zep", 124); if (!(_8)) { - _8 = zephir_memnstr_str(columnType, SL("INT"), "phalcon/db/adapter/pdo/sqlite.zep", 130); + _8 = zephir_memnstr_str(columnType, SL("INT"), "phalcon/db/adapter/pdo/sqlite.zep", 124); } if (_8) { ZEPHIR_INIT_NVAR(_7); @@ -47941,31 +48817,31 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZEPHIR_INIT_NVAR(_9); ZVAL_LONG(_9, 1); zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 136 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 130 TSRMLS_CC); if (zephir_is_true(_10)) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } break; } - if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/sqlite.zep", 145)) { + if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/sqlite.zep", 139)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/sqlite.zep", 153)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/sqlite.zep", 147)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/sqlite.zep", 161)) { + if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/sqlite.zep", 155)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/sqlite.zep", 169)) { + if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/sqlite.zep", 163)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47975,25 +48851,25 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/sqlite.zep", 179)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/sqlite.zep", 173)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/sqlite.zep", 187)) { + if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/sqlite.zep", 181)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/sqlite.zep", 195)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/sqlite.zep", 189)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/sqlite.zep", 203)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/sqlite.zep", 197)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -48003,7 +48879,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/sqlite.zep", 213)) { + if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/sqlite.zep", 207)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -48014,7 +48890,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/sqlite.zep", 228)) { + if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/sqlite.zep", 222)) { ZEPHIR_INIT_NVAR(matches); ZVAL_NULL(matches); ZEPHIR_INIT_NVAR(_9); @@ -48034,7 +48910,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { } } } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/sqlite.zep", 243)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/sqlite.zep", 237)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -48042,26 +48918,26 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 253 TSRMLS_CC); if (zephir_is_true(_10)) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 260 TSRMLS_CC); if (zephir_is_true(_12)) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_13, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 274 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 268 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_14); ZVAL_STRING(&_14, "null", 0); ZEPHIR_CALL_FUNCTION(&_15, "strcasecmp", &_16, _13, &_14); zephir_check_call_status(); _8 = !ZEPHIR_IS_LONG(_15, 0); if (_8) { - zephir_array_fetch_long(&_17, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 274 TSRMLS_CC); + zephir_array_fetch_long(&_17, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 268 TSRMLS_CC); _8 = !ZEPHIR_IS_STRING(_17, ""); } if (_8) { - zephir_array_fetch_long(&_18, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 275 TSRMLS_CC); + zephir_array_fetch_long(&_18, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 269 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); ZVAL_STRING(_7, "/^'|'$/", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_9); @@ -48072,12 +48948,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_check_call_status(); zephir_array_update_string(&definition, SL("default"), &_19, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 1, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 281 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 1, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 275 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_21, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 282); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 276); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -48109,20 +48985,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 318); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 312); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(index, _6); ZEPHIR_OBS_NVAR(keyName); - zephir_array_fetch_long(&keyName, index, 1, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 304 TSRMLS_CC); + zephir_array_fetch_long(&keyName, index, 1, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 298 TSRMLS_CC); if (!(zephir_array_isset(indexes, keyName))) { ZEPHIR_INIT_NVAR(columns); array_init(columns); } else { ZEPHIR_OBS_NVAR(columns); - zephir_array_fetch(&columns, indexes, keyName, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 308 TSRMLS_CC); + zephir_array_fetch(&columns, indexes, keyName, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 302 TSRMLS_CC); } _8 = zephir_fetch_nproperty_this(this_ptr, SL("_dialect"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(&_9, _8, "describeindex", NULL, keyName); @@ -48131,20 +49007,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_7, this_ptr, "fetchall", &_10, _9, _3); zephir_check_call_status(); - zephir_is_iterable(_7, &_12, &_11, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 315); + zephir_is_iterable(_7, &_12, &_11, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 309); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) ) { ZEPHIR_GET_HVALUE(describe_index, _13); - zephir_array_fetch_long(&_14, describe_index, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 312 TSRMLS_CC); - zephir_array_append(&columns, _14, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 312); + zephir_array_fetch_long(&_14, describe_index, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 306 TSRMLS_CC); + zephir_array_append(&columns, _14, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 306); } zephir_array_update_zval(&indexes, keyName, &columns, PH_COPY | PH_SEPARATE); } ZEPHIR_INIT_VAR(indexObjects); array_init(indexObjects); - zephir_is_iterable(indexes, &_16, &_15, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 323); + zephir_is_iterable(indexes, &_16, &_15, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 317); for ( ; zephir_hash_get_current_data_ex(_16, (void**) &_17, &_15) == SUCCESS ; zephir_hash_move_forward_ex(_16, &_15) @@ -48187,7 +49063,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 368); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 362); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -48200,29 +49076,29 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZEPHIR_INIT_NVAR(referencedSchema); ZVAL_NULL(referencedSchema); ZEPHIR_OBS_NVAR(referencedTable); - zephir_array_fetch_long(&referencedTable, reference, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); + zephir_array_fetch_long(&referencedTable, reference, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 341 TSRMLS_CC); ZEPHIR_INIT_NVAR(columns); array_init(columns); ZEPHIR_INIT_NVAR(referencedColumns); array_init(referencedColumns); } else { - zephir_array_fetch(&_7, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); + zephir_array_fetch(&_7, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 345 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedSchema); - zephir_array_fetch_string(&referencedSchema, _7, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); - zephir_array_fetch(&_8, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); + zephir_array_fetch_string(&referencedSchema, _7, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 345 TSRMLS_CC); + zephir_array_fetch(&_8, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 346 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedTable); - zephir_array_fetch_string(&referencedTable, _8, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); - zephir_array_fetch(&_9, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 353 TSRMLS_CC); + zephir_array_fetch_string(&referencedTable, _8, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 346 TSRMLS_CC); + zephir_array_fetch(&_9, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); ZEPHIR_OBS_NVAR(columns); - zephir_array_fetch_string(&columns, _9, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 353 TSRMLS_CC); - zephir_array_fetch(&_10, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 354 TSRMLS_CC); + zephir_array_fetch_string(&columns, _9, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); + zephir_array_fetch(&_10, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 348 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedColumns); - zephir_array_fetch_string(&referencedColumns, _10, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 354 TSRMLS_CC); + zephir_array_fetch_string(&referencedColumns, _10, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 348 TSRMLS_CC); } - zephir_array_fetch_long(&_7, reference, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 357 TSRMLS_CC); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 357); - zephir_array_fetch_long(&_8, reference, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 358 TSRMLS_CC); - zephir_array_append(&referencedColumns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 358); + zephir_array_fetch_long(&_7, reference, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 351); + zephir_array_fetch_long(&_8, reference, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); + zephir_array_append(&referencedColumns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 352); ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 4, 0 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); @@ -48233,7 +49109,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { } ZEPHIR_INIT_VAR(referenceObjects); array_init(referenceObjects); - zephir_is_iterable(references, &_13, &_12, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 378); + zephir_is_iterable(references, &_13, &_12, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 372); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -48245,16 +49121,16 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 4, 0 TSRMLS_CC); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 371 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 365 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedSchema"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 372 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 366 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedTable"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 373 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 367 TSRMLS_CC); zephir_array_update_string(&_11, SL("columns"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 375 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 369 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedColumns"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_16, name, _11); zephir_check_call_status(); @@ -48291,7 +49167,6 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_MySQL) { zend_declare_property_string(phalcon_db_dialect_mysql_ce, SL("_escapeChar"), "`", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_mysql_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } @@ -48660,7 +49535,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropColumn) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } - zephir_get_strval(columnName, columnName_param); + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } ZEPHIR_INIT_VAR(sql); @@ -48816,8 +49701,28 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addPrimaryKey) { ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zephir_get_strval(tableName, tableName_param); - zephir_get_strval(schemaName, schemaName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } ZEPHIR_INIT_VAR(sql); @@ -48976,11 +49881,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addForeignKey) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName, *sql = NULL; - zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, *sql = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49004,6 +49909,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } ZEPHIR_INIT_VAR(sql); @@ -49021,58 +49937,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { } -static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions) { - - zval *definition, *options, *engine, *autoIncrement, *tableCollation, *collationParts, *tableOptions, *_0 = NULL, *_1, *_2; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition); - - - - ZEPHIR_OBS_VAR(options); - if (zephir_array_isset_string_fetch(&options, definition, SS("options"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(tableOptions); - array_init(tableOptions); - ZEPHIR_OBS_VAR(engine); - if (zephir_array_isset_string_fetch(&engine, options, SS("ENGINE"), 0 TSRMLS_CC)) { - if (zephir_is_true(engine)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SV(_0, "ENGINE=", engine); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 382); - } - } - ZEPHIR_OBS_VAR(autoIncrement); - if (zephir_array_isset_string_fetch(&autoIncrement, options, SS("AUTO_INCREMENT"), 0 TSRMLS_CC)) { - if (zephir_is_true(autoIncrement)) { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SV(_0, "AUTO_INCREMENT=", autoIncrement); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 391); - } - } - ZEPHIR_OBS_VAR(tableCollation); - if (zephir_array_isset_string_fetch(&tableCollation, options, SS("TABLE_COLLATION"), 0 TSRMLS_CC)) { - if (zephir_is_true(tableCollation)) { - ZEPHIR_INIT_VAR(collationParts); - zephir_fast_explode_str(collationParts, SL("_"), tableCollation, LONG_MAX TSRMLS_CC); - zephir_array_fetch_long(&_1, collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/mysql.zep", 401 TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SV(_0, "DEFAULT CHARSET=", _1); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 401); - ZEPHIR_INIT_VAR(_2); - ZEPHIR_CONCAT_SV(_2, "COLLATE=", tableCollation); - zephir_array_append(&tableOptions, _2, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 402); - } - } - if (zephir_fast_count_int(tableOptions TSRMLS_CC)) { - zephir_fast_join_str(return_value, SL(" "), tableOptions TSRMLS_CC); - RETURN_MM(); - } - } - RETURN_MM_STRING("", 1); - -} - static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { zephir_nts_static zephir_fcall_cache_entry *_9 = NULL, *_14 = NULL; @@ -49115,7 +49979,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect/mysql.zep", 425); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect/mysql.zep", 368); return; } ZEPHIR_INIT_VAR(table); @@ -49143,7 +50007,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { } ZEPHIR_INIT_VAR(createLines); array_init(createLines); - zephir_is_iterable(columns, &_2, &_1, 0, 0, "phalcon/db/dialect/mysql.zep", 488); + zephir_is_iterable(columns, &_2, &_1, 0, 0, "phalcon/db/dialect/mysql.zep", 431); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -49181,11 +50045,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { if (zephir_is_true(_8)) { zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY") TSRMLS_CC); } - zephir_array_append(&createLines, columnLine, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 482); + zephir_array_append(&createLines, columnLine, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 425); } ZEPHIR_OBS_VAR(indexes); if (zephir_array_isset_string_fetch(&indexes, definition, SS("indexes"), 0 TSRMLS_CC)) { - zephir_is_iterable(indexes, &_12, &_11, 0, 0, "phalcon/db/dialect/mysql.zep", 510); + zephir_is_iterable(indexes, &_12, &_11, 0, 0, "phalcon/db/dialect/mysql.zep", 453); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -49218,12 +50082,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_CONCAT_SVSVS(indexSql, "KEY `", indexName, "` (", _15, ")"); } } - zephir_array_append(&createLines, indexSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 508); + zephir_array_append(&createLines, indexSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 451); } } ZEPHIR_OBS_VAR(references); if (zephir_array_isset_string_fetch(&references, definition, SS("references"), 0 TSRMLS_CC)) { - zephir_is_iterable(references, &_18, &_17, 0, 0, "phalcon/db/dialect/mysql.zep", 532); + zephir_is_iterable(references, &_18, &_17, 0, 0, "phalcon/db/dialect/mysql.zep", 475); for ( ; zephir_hash_get_current_data_ex(_18, (void**) &_19, &_17) == SUCCESS ; zephir_hash_move_forward_ex(_18, &_17) @@ -49257,7 +50121,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_CONCAT_SV(_21, " ON UPDATE ", onUpdate); zephir_concat_self(&referenceSql, _21 TSRMLS_CC); } - zephir_array_append(&createLines, referenceSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 530); + zephir_array_append(&createLines, referenceSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 473); } } ZEPHIR_INIT_VAR(_22); @@ -49278,11 +50142,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists = NULL, *sql, *table = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *table = NULL; zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49295,19 +50160,21 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } @@ -49322,7 +50189,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { ZEPHIR_CPY_WRT(table, _0); } ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { + if (ifExists) { ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); } else { ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); @@ -49333,11 +50200,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView) { - zval *viewName_param = NULL, *definition, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql; zval *viewName = NULL, *schemaName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName_param, &definition, &schemaName_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49350,22 +50218,19 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + definition = definition_param; - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } ZEPHIR_OBS_VAR(viewSql); if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/mysql.zep", 582); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/mysql.zep", 515); return; } ZEPHIR_INIT_VAR(view); @@ -49390,7 +50255,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &schemaName_param, &ifExists_param); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49403,21 +50268,21 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } if (!ifExists_param) { ifExists = 1; } else { - ifExists = zephir_get_boolval(ifExists_param); + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } @@ -49440,11 +50305,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { - zval *tableName_param = NULL, *schemaName = NULL; - zval *tableName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49457,12 +50322,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { + if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`= '", tableName, "' AND `TABLE_SCHEMA` = '", schemaName, "'"); RETURN_MM(); } @@ -49473,11 +50341,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { - zval *viewName_param = NULL, *schemaName = NULL; - zval *viewName = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49490,12 +50358,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { + if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`= '", viewName, "' AND `TABLE_SCHEMA`='", schemaName, "'"); RETURN_MM(); } @@ -49506,11 +50377,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeColumns) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49523,12 +50394,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_SVSVS(return_value, "DESCRIBE `", schema, "`.`", table, "`"); RETURN_MM(); } @@ -49549,17 +50423,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listTables) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } } @@ -49607,11 +50471,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listViews) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49624,12 +50488,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_SVSVS(return_value, "SHOW INDEXES FROM `", schema, "`.`", table, "`"); RETURN_MM(); } @@ -49640,11 +50507,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { - zval *table_param = NULL, *schema = NULL, *sql, *_0; - zval *table = NULL, *_1; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49657,21 +50524,24 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } ZEPHIR_INIT_VAR(sql); ZVAL_STRING(sql, "SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_SCHEMA,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL AND ", 1); - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_INIT_VAR(_0); ZEPHIR_CONCAT_SVSVS(_0, "CONSTRAINT_SCHEMA = '", schema, "' AND TABLE_NAME = '", table, "'"); zephir_concat_self(&sql, _0 TSRMLS_CC); } else { - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_SVS(_1, "TABLE_NAME = '", table, "'"); - zephir_concat_self(&sql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "TABLE_NAME = '", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); } RETURN_CCTOR(sql); @@ -49679,11 +50549,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { - zval *table_param = NULL, *schema = NULL, *sql; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49696,14 +50566,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } ZEPHIR_INIT_VAR(sql); ZVAL_STRING(sql, "SELECT TABLES.TABLE_TYPE AS table_type,TABLES.AUTO_INCREMENT AS auto_increment,TABLES.ENGINE AS engine,TABLES.TABLE_COLLATION AS table_collation FROM INFORMATION_SCHEMA.TABLES WHERE ", 1); - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_VSVSVS(return_value, sql, "TABLES.TABLE_SCHEMA = '", schema, "' AND TABLES.TABLE_NAME = '", table, "'"); RETURN_MM(); } @@ -49712,6 +50585,61 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { } +static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions) { + + zval *definition_param = NULL, *options, *engine, *autoIncrement, *tableCollation, *collationParts, *tableOptions, *_0 = NULL, *_1, *_2; + zval *definition = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &definition_param); + + definition = definition_param; + + + + ZEPHIR_OBS_VAR(options); + if (zephir_array_isset_string_fetch(&options, definition, SS("options"), 0 TSRMLS_CC)) { + ZEPHIR_INIT_VAR(tableOptions); + array_init(tableOptions); + ZEPHIR_OBS_VAR(engine); + if (zephir_array_isset_string_fetch(&engine, options, SS("ENGINE"), 0 TSRMLS_CC)) { + if (zephir_is_true(engine)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SV(_0, "ENGINE=", engine); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 671); + } + } + ZEPHIR_OBS_VAR(autoIncrement); + if (zephir_array_isset_string_fetch(&autoIncrement, options, SS("AUTO_INCREMENT"), 0 TSRMLS_CC)) { + if (zephir_is_true(autoIncrement)) { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SV(_0, "AUTO_INCREMENT=", autoIncrement); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 680); + } + } + ZEPHIR_OBS_VAR(tableCollation); + if (zephir_array_isset_string_fetch(&tableCollation, options, SS("TABLE_COLLATION"), 0 TSRMLS_CC)) { + if (zephir_is_true(tableCollation)) { + ZEPHIR_INIT_VAR(collationParts); + zephir_fast_explode_str(collationParts, SL("_"), tableCollation, LONG_MAX TSRMLS_CC); + zephir_array_fetch_long(&_1, collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/mysql.zep", 690 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SV(_0, "DEFAULT CHARSET=", _1); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 690); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SV(_2, "COLLATE=", tableCollation); + zephir_array_append(&tableOptions, _2, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 691); + } + } + if (zephir_fast_count_int(tableOptions TSRMLS_CC)) { + zephir_fast_join_str(return_value, SL(" "), tableOptions TSRMLS_CC); + RETURN_MM(); + } + } + RETURN_MM_STRING("", 1); + +} + @@ -49728,7 +50656,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Oracle, phalcon, db_dialect_oracle, phalcon_db_dialect_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Oracle, phalcon, db_dialect_oracle, phalcon_db_dialect_ce, phalcon_db_dialect_oracle_method_entry, 0); zend_declare_property_string(phalcon_db_dialect_oracle_ce, SL("_escapeChar"), "", ZEND_ACC_PROTECTED TSRMLS_CC); @@ -49736,550 +50664,1038 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle) { } +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, limit) { + int limit, offset = 0; + zval *sqlQuery_param = NULL, *number, *_0 = NULL, *_1, _2 = zval_used_for_init, *_3, _4 = zval_used_for_init, _6; + zval *sqlQuery = NULL, *_5, *_7; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) { + if (unlikely(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); + if (likely(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(sqlQuery); + ZVAL_EMPTY_STRING(sqlQuery); + } - zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_postgresql_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); - return SUCCESS; + if (Z_TYPE_P(number) == IS_ARRAY) { + if (zephir_array_isset_long(number, 1)) { + ZEPHIR_INIT_VAR(_0); + zephir_array_fetch_long(&_1, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect/oracle.zep", 51 TSRMLS_CC); + ZEPHIR_SINIT_VAR(_2); + ZVAL_STRING(&_2, "'", 0); + zephir_fast_trim(_0, _1, &_2, ZEPHIR_TRIM_BOTH TSRMLS_CC); + offset = zephir_get_intval(_0); + } + ZEPHIR_INIT_NVAR(_0); + zephir_array_fetch_long(&_1, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/oracle.zep", 54 TSRMLS_CC); + ZEPHIR_SINIT_NVAR(_2); + ZVAL_STRING(&_2, "'", 0); + zephir_fast_trim(_0, _1, &_2, ZEPHIR_TRIM_BOTH TSRMLS_CC); + limit = (zephir_get_intval(_0) + offset); + } else { + ZEPHIR_INIT_VAR(_3); + ZEPHIR_SINIT_VAR(_4); + ZVAL_STRING(&_4, "'", 0); + zephir_fast_trim(_3, number, &_4, ZEPHIR_TRIM_BOTH TSRMLS_CC); + limit = zephir_get_intval(_3); + } + ZEPHIR_SINIT_NVAR(_4); + ZVAL_LONG(&_4, limit); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SVSVS(_5, "SELECT * FROM (SELECT Z1.*, ROWNUM PHALCON_RN FROM (", sqlQuery, ") Z1 WHERE ROWNUM <= ", &_4, ")"); + ZEPHIR_CPY_WRT(sqlQuery, _5); + if (offset != 0) { + ZEPHIR_SINIT_VAR(_6); + ZVAL_LONG(&_6, offset); + ZEPHIR_INIT_VAR(_7); + ZEPHIR_CONCAT_SV(_7, " WHERE PHALCON_RN >= ", &_6); + zephir_concat_self(&sqlQuery, _7 TSRMLS_CC); + } + RETURN_CTOR(sqlQuery); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, getColumnDefinition) { - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; - HashTable *_3; - HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *column, *size = NULL, *columnType = NULL, *columnSql, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *value = NULL, *valueSql, **_4, _5 = zval_used_for_init, _7 = zval_used_for_init, *_8, *_9 = NULL, *_10 = NULL; + zval *column, *columnSql = NULL, *size = NULL, *scale = NULL, *type = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); + ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL); + ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(columnSql); - ZVAL_STRING(columnSql, "", 1); - if (Z_TYPE_P(columnType) == IS_STRING) { - zephir_concat_self(&columnSql, columnType TSRMLS_CC); - ZEPHIR_CALL_METHOD(&columnType, column, "gettypereference", NULL); - zephir_check_call_status(); - } do { - if (ZEPHIR_IS_LONG(columnType, 0)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 0)) { + ZEPHIR_INIT_VAR(columnSql); + ZVAL_STRING(columnSql, "INTEGER", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 1)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 1)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "DATE", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 2)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING") TSRMLS_CC); - } - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + if (ZEPHIR_IS_LONG(type, 2)) { + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVS(columnSql, "VARCHAR2(", size, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 3)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL); + if (ZEPHIR_IS_LONG(type, 3)) { + ZEPHIR_CALL_METHOD(&scale, column, "getscale", NULL); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "(", size, ",", _1, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVSVS(columnSql, "NUMBER(", size, ",", scale, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 4)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 4)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TIMESTAMP", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 5)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); - } - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + if (ZEPHIR_IS_LONG(type, 5)) { + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVS(columnSql, "CHAR(", size, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 6)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 6)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TEXT", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 7)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 7)) { + ZEPHIR_CALL_METHOD(&scale, column, "getscale", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVSVS(columnSql, "FLOAT(", size, ",", scale, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 8)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("SMALLINT(1)") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 8)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TINYINT(1)", 1); break; } - if (ZEPHIR_IS_EMPTY(columnSql)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized PostgreSQL data type", "phalcon/db/dialect/postgresql.zep", 117); - return; - } - ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(typeValues))) { - if (Z_TYPE_P(typeValues) == IS_ARRAY) { - ZEPHIR_INIT_VAR(valueSql); - ZVAL_STRING(valueSql, "", 1); - zephir_is_iterable(typeValues, &_3, &_2, 0, 0, "phalcon/db/dialect/postgresql.zep", 128); - for ( - ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS - ; zephir_hash_move_forward_ex(_3, &_2) - ) { - ZEPHIR_GET_HVALUE(value, _4); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_1, "addcslashes", &_6, value, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "\"", _1, "\", "); - zephir_concat_self(&valueSql, _0 TSRMLS_CC); - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, 0); - ZEPHIR_SINIT_VAR(_7); - ZVAL_LONG(&_7, -2); - ZEPHIR_INIT_VAR(_8); - zephir_substr(_8, valueSql, 0 , -2 , 0); - ZEPHIR_INIT_VAR(_9); - ZEPHIR_CONCAT_SVS(_9, "(", _8, ")"); - zephir_concat_self(&columnSql, _9 TSRMLS_CC); - } else { - ZEPHIR_SINIT_NVAR(_7); - ZVAL_STRING(&_7, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_10, "addcslashes", &_6, typeValues, &_7); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SVS(_9, "(\"", _10, "\")"); - zephir_concat_self(&columnSql, _9 TSRMLS_CC); - } - } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized Oracle data type", "phalcon/db/dialect/oracle.zep", 120); + return; } while(0); RETURN_CCTOR(columnSql); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { - - zval *tableName, *schemaName, *column; - - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &column); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 148); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { - - zval *tableName, *schemaName, *column; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &column); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 161); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 131); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { - - zval *tableName, *schemaName, *columnName; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, modifyColumn) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &columnName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 174); - return; - -} + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - zval *tableName, *schemaName, *index; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &index); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 187); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 139); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { - - zval *tableName, *schemaName, *indexName; - - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &indexName); - - +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropColumn) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 200); - return; - -} + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - zval *tableName, *schemaName, *index; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &index); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + zephir_get_strval(columnName, columnName_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 213); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 147); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { - - zval *tableName, *schemaName; - - zephir_fetch_params(0, 2, 0, &tableName, &schemaName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 225); - return; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addIndex) { -} + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zval *tableName, *schemaName, *reference; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &reference); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 238); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 155); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { - - zval *tableName, *schemaName, *referenceName; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropIndex) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &referenceName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 251); - return; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, _getTableOptions) { + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zval *definition; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 1, 0, &definition); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(indexName); + ZVAL_EMPTY_STRING(indexName); + } - array_init(return_value); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 164); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { - - zval *definition = NULL; - zval *tableName, *schemaName, *definition_param = NULL; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addPrimaryKey) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &definition_param); + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; - definition = definition_param; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + zephir_get_strval(tableName, tableName_param); + zephir_get_strval(schemaName, schemaName_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 275); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 172); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropPrimaryKey) { - zval *tableName, *schemaName, *ifExists = NULL, *table = NULL, *sql; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName, &schemaName, &ifExists); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(table); - ZEPHIR_CONCAT_VSV(table, schemaName, ".", tableName); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(table, tableName); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); } else { - ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - RETURN_CCTOR(sql); + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 180); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addForeignKey) { - zval *viewName, *definition, *schemaName, *viewSql, *view = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName, &definition, &schemaName); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_OBS_VAR(viewSql); - if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/postgresql.zep", 316); - return; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(view); - ZEPHIR_CONCAT_VSV(view, viewName, ".", schemaName); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); } else { - ZEPHIR_CPY_WRT(view, viewName); + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); - RETURN_MM(); + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 188); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropForeignKey) { - zval *viewName, *schemaName, *ifExists = NULL, *view = NULL, *sql; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName, &schemaName, &ifExists); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(view); - ZEPHIR_CONCAT_VSV(view, viewName, ".", schemaName); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(view, viewName); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SV(sql, "DROP VIEW IF EXISTS ", view); - } else { - ZEPHIR_CONCAT_SV(sql, "DROP VIEW ", view); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - RETURN_CCTOR(sql); - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { - - zval *tableName, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &tableName, &schemaName); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", schemaName, "' AND table_name='", tableName, "'"); - return; - } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='", tableName, "'"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 196); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createTable) { - zval *viewName, *schemaName = NULL; + zval *definition = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &viewName, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "' AND schemaname='", schemaName, "'"); - return; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "'"); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { - - zval *table, *schema = NULL; - - zephir_fetch_params(0, 1, 1, &table, &schema); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } + definition = definition_param; - if (zephir_is_true(schema)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='", schema, "' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); - return; - } - ZEPHIR_CONCAT_SVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 204); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropTable) { - zval *schemaName = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *table = NULL, *_0 = NULL, *_1 = NULL, *_4 = NULL, *_5 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 0, 1, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", schemaName, "' ORDER BY table_name"); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_text_ce, "upper", &_2, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_3, _1); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_5, phalcon_text_ce, "upper", &_2, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "escape", &_3, _5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(table); + ZEPHIR_CONCAT_VSV(table, _0, ".", _4); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_2, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&table, this_ptr, "escape", &_3, _0); + zephir_check_call_status(); + } + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", table); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", table); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createView) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql, *_0 = NULL, *_2 = NULL, *_3; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + definition = definition_param; + + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + ZEPHIR_OBS_VAR(viewSql); + if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/oracle.zep", 235); return; } - RETURN_STRING("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name", 1); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _0, ".", _2); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _3); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _0); + zephir_check_call_status(); + } + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropView) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *view = NULL, *_0 = NULL, *_2 = NULL, *_3; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _0, ".", _2); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _3); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _0); + zephir_check_call_status(); + } + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", view); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", view); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, viewExists) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL, *_0 = NULL, *_2 = NULL; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_VIEWS WHERE VIEW_NAME='", _0, "' AND OWNER='", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_VIEWS WHERE VIEW_NAME='", _0, "'"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listViews) { + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *schemaName_param = NULL, *_0 = NULL; zval *schemaName = NULL; - zephir_fetch_params(0, 0, 1, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", schemaName, "' ORDER BY view_name"); - return; + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT VIEW_NAME FROM ALL_VIEWS WHERE OWNER='", _0, "' ORDER BY VIEW_NAME"); + RETURN_MM(); + } else { + RETURN_MM_STRING("SELECT VIEW_NAME FROM ALL_VIEWS VIEW_NAME", 1); } - RETURN_STRING("SELECT viewname AS view_name FROM pg_views WHERE schemaname = 'public' ORDER BY view_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableExists) { - zval *table, *schema = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *_0 = NULL, *_2 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &table, &schema); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } - ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", table, "' ORDER BY t.relname, i.relname;"); - return; + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_TABLES WHERE TABLE_NAME='", _0, "' AND OWNER = '", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, tableName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_TABLES WHERE TABLE_NAME='", _0, "'"); + RETURN_MM(); + } } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeColumns) { - zval *table, *schema = NULL, *sql, *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *_0 = NULL, *_2 = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - ZEPHIR_INIT_VAR(sql); - ZVAL_STRING(sql, "SELECT tc.table_name as TABLE_NAME, kcu.column_name as COLUMN_NAME, tc.constraint_name as CONSTRAINT_NAME, tc.table_catalog as REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ", 1); - if (zephir_is_true(schema)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "tc.table_schema = '", schema, "' AND tc.table_name='", table, "'"); - zephir_concat_self(&sql, _0 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT TC.COLUMN_NAME, TC.DATA_TYPE, TC.DATA_LENGTH, TC.DATA_PRECISION, TC.DATA_SCALE, TC.NULLABLE, C.CONSTRAINT_TYPE, TC.DATA_DEFAULT, CC.POSITION FROM ALL_TAB_COLUMNS TC LEFT JOIN (ALL_CONS_COLUMNS CC JOIN ALL_CONSTRAINTS C ON (CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND CC.TABLE_NAME = C.TABLE_NAME AND CC.OWNER = C.OWNER AND C.CONSTRAINT_TYPE = 'P')) ON TC.TABLE_NAME = CC.TABLE_NAME AND TC.COLUMN_NAME = CC.COLUMN_NAME WHERE TC.TABLE_NAME = '", _0, "' AND TC.OWNER = '", _2, "' ORDER BY TC.COLUMN_ID"); + RETURN_MM(); } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "tc.table_name='", table, "'"); - zephir_concat_self(&sql, _0 TSRMLS_CC); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT TC.COLUMN_NAME, TC.DATA_TYPE, TC.DATA_LENGTH, TC.DATA_PRECISION, TC.DATA_SCALE, TC.NULLABLE, C.CONSTRAINT_TYPE, TC.DATA_DEFAULT, CC.POSITION FROM ALL_TAB_COLUMNS TC LEFT JOIN (ALL_CONS_COLUMNS CC JOIN ALL_CONSTRAINTS C ON (CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND CC.TABLE_NAME = C.TABLE_NAME AND CC.OWNER = C.OWNER AND C.CONSTRAINT_TYPE = 'P')) ON TC.TABLE_NAME = CC.TABLE_NAME AND TC.COLUMN_NAME = CC.COLUMN_NAME WHERE TC.TABLE_NAME = '", _0, "' ORDER BY TC.COLUMN_ID"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listTables) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *schemaName_param = NULL, *_0 = NULL; + zval *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); + + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT TABLE_NAME, OWNER FROM ALL_TABLES WHERE OWNER='", _0, "' ORDER BY OWNER, TABLE_NAME"); + RETURN_MM(); + } else { + RETURN_MM_STRING("SELECT TABLE_NAME, OWNER FROM ALL_TABLES ORDER BY OWNER, TABLE_NAME", 1); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeIndexes) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *_0 = NULL, *_2 = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + + + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT I.TABLE_NAME, 0 AS C0, I.INDEX_NAME, IC.COLUMN_POSITION, IC.COLUMN_NAME FROM ALL_INDEXES I JOIN ALL_IND_COLUMNS IC ON I.INDEX_NAME = IC.INDEX_NAME WHERE I.TABLE_NAME = '", _0, "' AND IC.INDEX_OWNER = '", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT I.TABLE_NAME, 0 AS C0, I.INDEX_NAME, IC.COLUMN_POSITION, IC.COLUMN_NAME FROM ALL_INDEXES I JOIN ALL_IND_COLUMNS IC ON I.INDEX_NAME = IC.INDEX_NAME WHERE I.TABLE_NAME = '", _0, "'"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeReferences) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql, *_0 = NULL, *_2 = NULL, *_3 = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + + + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "SELECT AC.TABLE_NAME, CC.COLUMN_NAME, AC.CONSTRAINT_NAME, AC.R_OWNER, RCC.TABLE_NAME R_TABLE_NAME, RCC.COLUMN_NAME R_COLUMN_NAME FROM ALL_CONSTRAINTS AC JOIN ALL_CONS_COLUMNS CC ON AC.CONSTRAINT_NAME = CC.CONSTRAINT_NAME JOIN ALL_CONS_COLUMNS RCC ON AC.R_OWNER = RCC.OWNER AND AC.R_CONSTRAINT_NAME = RCC.CONSTRAINT_NAME WHERE AC.CONSTRAINT_TYPE='R' ", 1); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_SVSVS(_3, "AND AC.OWNER='", _0, "' AND AC.TABLE_NAME = '", _2, "'"); + zephir_concat_self(&sql, _3 TSRMLS_CC); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_3); + ZEPHIR_CONCAT_SVS(_3, "AND AC.TABLE_NAME = '", _0, "'"); + zephir_concat_self(&sql, _3 TSRMLS_CC); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableOptions) { - zval *table, *schema = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; - zephir_fetch_params(0, 1, 1, &table, &schema); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - RETURN_STRING("", 1); + RETURN_MM_STRING("", 1); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsSavepoints) { + + + RETURN_BOOL(0); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints) { + + + RETURN_BOOL(0); } @@ -50297,107 +51713,108 @@ static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); - zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_sqlite_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) { - zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; - HashTable *_4; - HashPosition _3; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + HashTable *_3; + HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *column, *columnSql, *type = NULL, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL, *value = NULL, *valueSql, **_5, _6 = zval_used_for_init, _8 = zval_used_for_init, *_9, *_10 = NULL; + zval *column, *size = NULL, *columnType = NULL, *columnSql, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *value = NULL, *valueSql, **_4, _5 = zval_used_for_init, _7 = zval_used_for_init, *_8, *_9 = NULL, *_10 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &column); + ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL); + zephir_check_call_status(); ZEPHIR_INIT_VAR(columnSql); ZVAL_STRING(columnSql, "", 1); - ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); - zephir_check_call_status(); - if (Z_TYPE_P(type) == IS_STRING) { - zephir_concat_self(&columnSql, type TSRMLS_CC); - ZEPHIR_CALL_METHOD(&type, column, "gettypereference", NULL); + if (Z_TYPE_P(columnType) == IS_STRING) { + zephir_concat_self(&columnSql, columnType TSRMLS_CC); + ZEPHIR_CALL_METHOD(&columnType, column, "gettypereference", NULL); zephir_check_call_status(); } do { - if (ZEPHIR_IS_LONG(type, 0)) { + if (ZEPHIR_IS_LONG(columnType, 0)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 1)) { + if (ZEPHIR_IS_LONG(columnType, 1)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 2)) { + if (ZEPHIR_IS_LONG(columnType, 2)) { if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("VARCHAR") TSRMLS_CC); + zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 3)) { + if (ZEPHIR_IS_LONG(columnType, 3)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, column, "getscale", NULL); + ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVSVS(_1, "(", _0, ",", _2, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "(", size, ",", _1, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 4)) { + if (ZEPHIR_IS_LONG(columnType, 4)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 5)) { + if (ZEPHIR_IS_LONG(columnType, 5)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 6)) { + if (ZEPHIR_IS_LONG(columnType, 6)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 7)) { + if (ZEPHIR_IS_LONG(columnType, 7)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); } break; } + if (ZEPHIR_IS_LONG(columnType, 8)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("SMALLINT(1)") TSRMLS_CC); + } + break; + } if (ZEPHIR_IS_EMPTY(columnSql)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized SQLite data type", "phalcon/db/dialect/sqlite.zep", 112); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized PostgreSQL data type", "phalcon/db/dialect/postgresql.zep", 117); return; } ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); @@ -50406,37 +51823,37 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { if (Z_TYPE_P(typeValues) == IS_ARRAY) { ZEPHIR_INIT_VAR(valueSql); ZVAL_STRING(valueSql, "", 1); - zephir_is_iterable(typeValues, &_4, &_3, 0, 0, "phalcon/db/dialect/sqlite.zep", 123); + zephir_is_iterable(typeValues, &_3, &_2, 0, 0, "phalcon/db/dialect/postgresql.zep", 128); for ( - ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS - ; zephir_hash_move_forward_ex(_4, &_3) + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) ) { - ZEPHIR_GET_HVALUE(value, _5); - ZEPHIR_SINIT_NVAR(_6); - ZVAL_STRING(&_6, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_0, "addcslashes", &_7, value, &_6); + ZEPHIR_GET_HVALUE(value, _4); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_1, "addcslashes", &_6, value, &_5); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVS(_1, "\"", _0, "\", "); - zephir_concat_self(&valueSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "\"", _1, "\", "); + zephir_concat_self(&valueSql, _0 TSRMLS_CC); } - ZEPHIR_SINIT_NVAR(_6); - ZVAL_LONG(&_6, 0); - ZEPHIR_SINIT_VAR(_8); - ZVAL_LONG(&_8, -2); - ZEPHIR_INIT_VAR(_9); - zephir_substr(_9, valueSql, 0 , -2 , 0); - ZEPHIR_INIT_VAR(_10); - ZEPHIR_CONCAT_SVS(_10, "(", _9, ")"); - zephir_concat_self(&columnSql, _10 TSRMLS_CC); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, 0); + ZEPHIR_SINIT_VAR(_7); + ZVAL_LONG(&_7, -2); + ZEPHIR_INIT_VAR(_8); + zephir_substr(_8, valueSql, 0 , -2 , 0); + ZEPHIR_INIT_VAR(_9); + ZEPHIR_CONCAT_SVS(_9, "(", _8, ")"); + zephir_concat_self(&columnSql, _9 TSRMLS_CC); } else { - ZEPHIR_SINIT_NVAR(_8); - ZVAL_STRING(&_8, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_2, "addcslashes", &_7, typeValues, &_8); + ZEPHIR_SINIT_NVAR(_7); + ZVAL_STRING(&_7, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_10, "addcslashes", &_6, typeValues, &_7); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_10); - ZEPHIR_CONCAT_SVS(_10, "(\"", _2, "\")"); - zephir_concat_self(&columnSql, _10 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SVS(_9, "(\"", _10, "\")"); + zephir_concat_self(&columnSql, _9 TSRMLS_CC); } } } while(0); @@ -50445,12 +51862,10 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, *sql = NULL, *defaultValue = NULL, *_1 = NULL, *_2 = NULL, *_3, _4, *_5 = NULL, *_7; - zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); @@ -50479,49 +51894,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { } - ZEPHIR_INIT_VAR(sql); - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "ALTER TABLE \"", schemaName, "\".\"", tableName, "\" ADD COLUMN "); - ZEPHIR_CPY_WRT(sql, _0); - } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "ALTER TABLE \"", tableName, "\" ADD COLUMN "); - ZEPHIR_CPY_WRT(sql, _0); - } - ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_3); - ZEPHIR_CONCAT_SVSV(_3, "\"", _1, "\" ", _2); - zephir_concat_self(&sql, _3 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(defaultValue))) { - ZEPHIR_SINIT_VAR(_4); - ZVAL_STRING(&_4, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_5, "addcslashes", &_6, defaultValue, &_4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_7); - ZEPHIR_CONCAT_SVS(_7, " DEFAULT \"", _5, "\""); - zephir_concat_self(&sql, _7 TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_5, column, "isnotnull", NULL); - zephir_check_call_status(); - if (zephir_is_true(_5)) { - zephir_concat_self_str(&sql, SL(" NOT NULL") TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_5, column, "isautoincrement", NULL); - zephir_check_call_status(); - if (zephir_is_true(_5)) { - zephir_concat_self_str(&sql, SL(" PRIMARY KEY AUTOINCREMENT") TSRMLS_CC); - } - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 143); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { zval *tableName_param = NULL, *schemaName_param = NULL, *column; zval *tableName = NULL, *schemaName = NULL; @@ -50553,12 +51931,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 169); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 151); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; @@ -50588,19 +51966,27 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } - zephir_get_strval(columnName, columnName_param); + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 177); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 159); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, *sql, *indexType = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *index; zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); @@ -50630,42 +52016,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { } - ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(sql); - if (!(ZEPHIR_IS_EMPTY(indexType))) { - ZEPHIR_CONCAT_SVS(sql, "CREATE ", indexType, " INDEX \""); - } else { - ZVAL_STRING(sql, "CREATE INDEX \"", 1); - } - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_VSVSVS(_1, schemaName, "\".\"", _0, "\" ON \"", tableName, "\" ("); - zephir_concat_self(&sql, _1 TSRMLS_CC); - } else { - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_VSVS(_1, _0, "\" ON \"", tableName, "\" ("); - zephir_concat_self(&sql, _1 TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_3, _2); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_VS(_1, _0, ")"); - zephir_concat_self(&sql, _1 TSRMLS_CC); - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 167); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, *sql = NULL; - zval *tableName = NULL, *schemaName = NULL, *indexName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); @@ -50705,21 +52064,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { } - ZEPHIR_INIT_VAR(sql); - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "DROP INDEX \"", schemaName, "\".\"", indexName, "\""); - ZEPHIR_CPY_WRT(sql, _0); - } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "DROP INDEX \"", indexName, "\""); - ZEPHIR_CPY_WRT(sql, _0); - } - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 175); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { zval *tableName_param = NULL, *schemaName_param = NULL, *index; zval *tableName = NULL, *schemaName = NULL; @@ -50727,16 +52077,36 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zephir_get_strval(tableName, tableName_param); - zephir_get_strval(schemaName, schemaName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 224); + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 183); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { zval *tableName_param = NULL, *schemaName_param = NULL; zval *tableName = NULL, *schemaName = NULL; @@ -50768,12 +52138,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 232); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 191); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { zval *tableName_param = NULL, *schemaName_param = NULL, *reference; zval *tableName = NULL, *schemaName = NULL; @@ -50805,18 +52175,18 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 240); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 199); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName; - zval *tableName = NULL, *schemaName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -50840,26 +52210,25 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 253); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, _getTableOptions) { - - zval *definition; - - zephir_fetch_params(0, 1, 0, &definition); - + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } - RETURN_STRING("", 1); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 207); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { zval *definition = NULL; zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; @@ -50894,18 +52263,19 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/sqlite.zep", 272); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 215); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists = NULL, *sql, *table = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *table = NULL, *sql; zval *tableName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -50918,46 +52288,49 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); } - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + + ifExists = Z_BVAL_P(ifExists_param); } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", tableName); + ZEPHIR_CONCAT_VSV(_0, schemaName, ".", tableName); ZEPHIR_CPY_WRT(table, _0); } else { ZEPHIR_CPY_WRT(table, tableName); } ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SVS(sql, "DROP TABLE IF EXISTS \"", table, "\""); + if (ifExists) { + ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); } else { - ZEPHIR_CONCAT_SVS(sql, "DROP TABLE \"", table, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { - zval *viewName_param = NULL, *definition, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *viewSql, *view = NULL; zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName_param, &definition, &schemaName_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -50970,44 +52343,41 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + definition = definition_param; - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } ZEPHIR_OBS_VAR(viewSql); if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/sqlite.zep", 315); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/postgresql.zep", 246); return; } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CONCAT_VSV(_0, viewName, ".", schemaName); ZEPHIR_CPY_WRT(view, _0); } else { ZEPHIR_CPY_WRT(view, viewName); } - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW \"", view, "\" AS ", viewSql); + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *view = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *view = NULL, *sql; zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &schemaName_param, &ifExists_param); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -51020,48 +52390,48 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } if (!ifExists_param) { ifExists = 1; } else { - ifExists = zephir_get_boolval(ifExists_param); + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CONCAT_VSV(_0, viewName, ".", schemaName); ZEPHIR_CPY_WRT(view, _0); } else { ZEPHIR_CPY_WRT(view, viewName); } ZEPHIR_INIT_VAR(sql); if (ifExists) { - ZEPHIR_CONCAT_SVS(sql, "DROP VIEW IF EXISTS \"", view, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP VIEW IF EXISTS ", view); } else { - ZEPHIR_CONCAT_SVS(sql, "DROP VIEW \"", view, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP VIEW ", view); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { - zval *tableName_param = NULL, *schemaName = NULL; - zval *tableName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -51074,23 +52444,30 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", tableName, "'"); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", schemaName, "' AND table_name='", tableName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='", tableName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { - zval *viewName_param = NULL, *schemaName = NULL; - zval *viewName = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -51103,23 +52480,30 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", viewName, "'"); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "' AND schemaname='", schemaName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51132,17 +52516,24 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", table, "')"); + if (schema && Z_STRLEN_P(schema)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='", schema, "' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { zval *schemaName_param = NULL; zval *schemaName = NULL; @@ -51154,61 +52545,44 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } } - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name", 1); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", schemaName, "' ORDER BY table_name"); + RETURN_MM(); + } + RETURN_MM_STRING("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { - zval *schemaName_param = NULL; zval *schemaName = NULL; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - - if (!schemaName_param) { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(0, 0, 1, &schemaName); - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } + if (!schemaName) { + schemaName = ZEPHIR_GLOBAL(global_null); } - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name", 1); + if (zephir_is_true(schemaName)) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", schemaName, "' ORDER BY view_name"); + return; + } + RETURN_STRING("SELECT viewname AS view_name FROM pg_views WHERE schemaname = 'public' ORDER BY view_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51221,49 +52595,26 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); - } - - - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", table, "')"); - RETURN_MM(); - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { - - zval *index_param = NULL; - zval *index = NULL; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); + zephir_get_strval(schema, schema_param); } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", index, "')"); + ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", table, "' ORDER BY t.relname, i.relname;"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51276,23 +52627,36 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "SELECT tc.table_name as TABLE_NAME, kcu.column_name as COLUMN_NAME, tc.constraint_name as CONSTRAINT_NAME, tc.table_catalog as REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ", 1); - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", table, "')"); - RETURN_MM(); + if (schema && Z_STRLEN_P(schema)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "tc.table_schema = '", schema, "' AND tc.table_name='", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "tc.table_name='", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51305,8 +52669,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } @@ -51328,1225 +52695,1057 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlVariables"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlBindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_initialTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_finalTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) { - - zval *sqlStatement; - - zephir_fetch_params(0, 1, 0, &sqlStatement); - - - - zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) { - - - RETURN_MEMBER(this_ptr, "_sqlStatement"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) { - - zval *sqlVariables; - - zephir_fetch_params(0, 1, 0, &sqlVariables); - - - - zephir_update_property_this(this_ptr, SL("_sqlVariables"), sqlVariables TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) { - - - RETURN_MEMBER(this_ptr, "_sqlVariables"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) { - - zval *sqlBindTypes; - - zephir_fetch_params(0, 1, 0, &sqlBindTypes); - - +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { - zephir_update_property_this(this_ptr, SL("_sqlBindTypes"), sqlBindTypes TSRMLS_CC); + zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; + HashTable *_4; + HashPosition _3; + int ZEPHIR_LAST_CALL_STATUS; + zval *column, *columnSql, *type = NULL, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL, *value = NULL, *valueSql, **_5, _6 = zval_used_for_init, _8 = zval_used_for_init, *_9, *_10 = NULL; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) { - - - RETURN_MEMBER(this_ptr, "_sqlBindTypes"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) { - - zval *initialTime; - - zephir_fetch_params(0, 1, 0, &initialTime); + ZEPHIR_INIT_VAR(columnSql); + ZVAL_STRING(columnSql, "", 1); + ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); + zephir_check_call_status(); + if (Z_TYPE_P(type) == IS_STRING) { + zephir_concat_self(&columnSql, type TSRMLS_CC); + ZEPHIR_CALL_METHOD(&type, column, "gettypereference", NULL); + zephir_check_call_status(); + } + do { + if (ZEPHIR_IS_LONG(type, 0)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 1)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 2)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("VARCHAR") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 3)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, column, "getscale", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVSVS(_1, "(", _0, ",", _2, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 4)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 5)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 6)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 7)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_EMPTY(columnSql)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized SQLite data type", "phalcon/db/dialect/sqlite.zep", 112); + return; + } + ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(typeValues))) { + if (Z_TYPE_P(typeValues) == IS_ARRAY) { + ZEPHIR_INIT_VAR(valueSql); + ZVAL_STRING(valueSql, "", 1); + zephir_is_iterable(typeValues, &_4, &_3, 0, 0, "phalcon/db/dialect/sqlite.zep", 123); + for ( + ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS + ; zephir_hash_move_forward_ex(_4, &_3) + ) { + ZEPHIR_GET_HVALUE(value, _5); + ZEPHIR_SINIT_NVAR(_6); + ZVAL_STRING(&_6, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_0, "addcslashes", &_7, value, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVS(_1, "\"", _0, "\", "); + zephir_concat_self(&valueSql, _1 TSRMLS_CC); + } + ZEPHIR_SINIT_NVAR(_6); + ZVAL_LONG(&_6, 0); + ZEPHIR_SINIT_VAR(_8); + ZVAL_LONG(&_8, -2); + ZEPHIR_INIT_VAR(_9); + zephir_substr(_9, valueSql, 0 , -2 , 0); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SVS(_10, "(", _9, ")"); + zephir_concat_self(&columnSql, _10 TSRMLS_CC); + } else { + ZEPHIR_SINIT_NVAR(_8); + ZVAL_STRING(&_8, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_2, "addcslashes", &_7, typeValues, &_8); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SVS(_10, "(\"", _2, "\")"); + zephir_concat_self(&columnSql, _10 TSRMLS_CC); + } + } + } while(0); - zephir_update_property_this(this_ptr, SL("_initialTime"), initialTime TSRMLS_CC); + RETURN_CCTOR(columnSql); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) { - - - RETURN_MEMBER(this_ptr, "_initialTime"); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { -} + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, *sql = NULL, *defaultValue = NULL, *_1 = NULL, *_2 = NULL, *_3, _4, *_5 = NULL, *_7; + zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; -static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - zval *finalTime; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 1, 0, &finalTime); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - zephir_update_property_this(this_ptr, SL("_finalTime"), finalTime TSRMLS_CC); + ZEPHIR_INIT_VAR(sql); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "ALTER TABLE \"", schemaName, "\".\"", tableName, "\" ADD COLUMN "); + ZEPHIR_CPY_WRT(sql, _0); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "ALTER TABLE \"", tableName, "\" ADD COLUMN "); + ZEPHIR_CPY_WRT(sql, _0); + } + ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_SVSV(_3, "\"", _1, "\" ", _2); + zephir_concat_self(&sql, _3 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(defaultValue))) { + ZEPHIR_SINIT_VAR(_4); + ZVAL_STRING(&_4, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_5, "addcslashes", &_6, defaultValue, &_4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_7); + ZEPHIR_CONCAT_SVS(_7, " DEFAULT \"", _5, "\""); + zephir_concat_self(&sql, _7 TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_5, column, "isnotnull", NULL); + zephir_check_call_status(); + if (zephir_is_true(_5)) { + zephir_concat_self_str(&sql, SL(" NOT NULL") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_5, column, "isautoincrement", NULL); + zephir_check_call_status(); + if (zephir_is_true(_5)) { + zephir_concat_self_str(&sql, SL(" PRIMARY KEY AUTOINCREMENT") TSRMLS_CC); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; - RETURN_MEMBER(this_ptr, "_finalTime"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zval *_0, *_1; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_finalTime"), PH_NOISY_CC); - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_initialTime"), PH_NOISY_CC); - sub_function(return_value, _0, _1 TSRMLS_CC); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 169); return; } +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -#include + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } -ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 177); + return; - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_connection"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_result"), ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { - zend_declare_property_long(phalcon_db_result_pdo_ce, SL("_fetchMode"), 4, ZEND_ACC_PROTECTED TSRMLS_CC); + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, *sql, *indexType = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_pdoStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindParams"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("_rowCount"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_result_pdo_ce TSRMLS_CC, 1, phalcon_db_resultinterface_ce); - return SUCCESS; + ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(sql); + if (!(ZEPHIR_IS_EMPTY(indexType))) { + ZEPHIR_CONCAT_SVS(sql, "CREATE ", indexType, " INDEX \""); + } else { + ZVAL_STRING(sql, "CREATE INDEX \"", 1); + } + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_VSVSVS(_1, schemaName, "\".\"", _0, "\" ON \"", tableName, "\" ("); + zephir_concat_self(&sql, _1 TSRMLS_CC); + } else { + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_VSVS(_1, _0, "\" ON \"", tableName, "\" ("); + zephir_concat_self(&sql, _1 TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_3, _2); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_VS(_1, _0, ")"); + zephir_concat_self(&sql, _1 TSRMLS_CC); + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { - zval *connection, *result, *sqlStatement = NULL, *bindParams = NULL, *bindTypes = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, *sql = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL, *_0 = NULL; - zephir_fetch_params(0, 2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); - if (!sqlStatement) { - sqlStatement = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (!bindTypes) { - bindTypes = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - zephir_update_property_this(this_ptr, SL("_connection"), connection TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_pdoStatement"), result TSRMLS_CC); - if (Z_TYPE_P(sqlStatement) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - if (Z_TYPE_P(bindParams) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_bindParams"), bindParams TSRMLS_CC); + if (unlikely(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(bindTypes) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_bindTypes"), bindTypes TSRMLS_CC); + + if (likely(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(indexName); + ZVAL_EMPTY_STRING(indexName); + } + + + ZEPHIR_INIT_VAR(sql); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "DROP INDEX \"", schemaName, "\".\"", indexName, "\""); + ZEPHIR_CPY_WRT(sql, _0); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "DROP INDEX \"", indexName, "\""); + ZEPHIR_CPY_WRT(sql, _0); } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "execute", NULL); - zephir_check_call_status(); - RETURN_MM(); - -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 224); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); - zephir_check_call_status(); - RETURN_MM(); - -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetchall", NULL); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 232); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { - zend_bool _0; - int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement, *rowCount = NULL, *connection, *type = NULL, *pdoStatement, *matches, *result = NULL, *row = NULL, *_1, _2, *_3, *_4, *_5, *_6; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - ZEPHIR_OBS_VAR(rowCount); - zephir_read_property_this(&rowCount, this_ptr, SL("_rowCount"), PH_NOISY_CC); - if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { - ZEPHIR_OBS_VAR(connection); - zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&type, connection, "gettype", NULL); - zephir_check_call_status(); - _0 = ZEPHIR_IS_STRING(type, "mysql"); - if (!(_0)) { - _0 = ZEPHIR_IS_STRING(type, "pgsql"); - } - if (_0) { - ZEPHIR_OBS_VAR(pdoStatement); - zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&rowCount, pdoStatement, "rowcount", NULL); - zephir_check_call_status(); - } - if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { - ZEPHIR_OBS_VAR(sqlStatement); - zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); - if (!(zephir_start_with_str(sqlStatement, SL("SELECT COUNT(*) ")))) { - ZEPHIR_INIT_VAR(matches); - ZVAL_NULL(matches); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_SINIT_VAR(_2); - ZVAL_STRING(&_2, "/^SELECT\\s+(.*)/i", 0); - zephir_preg_match(_1, &_2, sqlStatement, matches, 0, 0 , 0 TSRMLS_CC); - if (zephir_is_true(_1)) { - zephir_array_fetch_long(&_3, matches, 1, PH_NOISY | PH_READONLY, "phalcon/db/result/pdo.zep", 202 TSRMLS_CC); - ZEPHIR_INIT_VAR(_4); - ZEPHIR_CONCAT_SVS(_4, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", _3, ")"); - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_bindParams"), PH_NOISY_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&result, connection, "query", NULL, _4, _5, _6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(rowCount); - zephir_array_fetch_string(&rowCount, row, SL("numrows"), PH_NOISY, "phalcon/db/result/pdo.zep", 204 TSRMLS_CC); - } - } else { - ZEPHIR_INIT_NVAR(rowCount); - ZVAL_LONG(rowCount, 1); - } - } - zephir_update_property_this(this_ptr, SL("_rowCount"), rowCount TSRMLS_CC); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - RETURN_CCTOR(rowCount); + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 240); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *number_param = NULL, *connection, *pdo = NULL, *sqlStatement, *bindParams, *statement = NULL, *_0 = NULL, *_1; - long number; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &number_param); - - number = zephir_get_intval(number_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - { pdo_stmt_t *stmt; long n; - ZEPHIR_OBS_VAR(connection); - zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&pdo, connection, "getinternalhandler", NULL); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(sqlStatement); - zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(bindParams); - zephir_read_property_this(&bindParams, this_ptr, SL("_bindParams"), PH_NOISY_CC); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); - zephir_check_call_status(); - if (Z_TYPE_P(statement) == IS_OBJECT) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&_0, connection, "executeprepared", NULL, statement, bindParams, _1); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(statement, _0); - } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CALL_METHOD(&statement, pdo, "query", NULL, sqlStatement); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - zephir_update_property_this(this_ptr, SL("_pdoStatement"), statement TSRMLS_CC); - - - stmt = (pdo_stmt_t*) zend_object_store_get_object(statement TSRMLS_CC); - if (!stmt->dbh) { - ZEPHIR_MM_RESTORE(); - RETURN_FALSE; - } - - n = -1; - number--; - while (n != number) { - if (!stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) { - ZEPHIR_MM_RESTORE(); - RETURN_NULL(); - } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - n++; - } + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } - } - - ZEPHIR_MM_RESTORE(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 248); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - zval *fetchMode_param = NULL, *pdoStatement, *_0 = NULL, *_1; - int fetchMode, ZEPHIR_LAST_CALL_STATUS; + zval *definition = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &fetchMode_param); - - fetchMode = zephir_get_intval(fetchMode_param); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - ZEPHIR_OBS_VAR(pdoStatement); - zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - do { - if (fetchMode == 2) { - ZEPHIR_INIT_VAR(_0); - ZVAL_LONG(_0, 4); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 4); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 1) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 2); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 2); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 3) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 3); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 3); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 4) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 5); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 5); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - } while(0); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_MM_RESTORE(); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -} + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + definition = definition_param; -static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) { - RETURN_MEMBER(this_ptr, "_pdoStatement"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/sqlite.zep", 256); + return; } +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *table = NULL; + zval *tableName = NULL, *schemaName = NULL, *_0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); -#ifdef HAVE_CONFIG_H -#endif - -#include + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -#include -#include -#include + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + ifExists = Z_BVAL_P(ifExists_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Debug_Dump) { + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", tableName); + ZEPHIR_CPY_WRT(table, _0); + } else { + ZEPHIR_CPY_WRT(table, tableName); + } + ZEPHIR_INIT_VAR(sql); + if (ifExists) { + ZEPHIR_CONCAT_SVS(sql, "DROP TABLE IF EXISTS \"", table, "\""); + } else { + ZEPHIR_CONCAT_SVS(sql, "DROP TABLE \"", table, "\""); + } + RETURN_CCTOR(sql); - ZEPHIR_REGISTER_CLASS(Phalcon\\Debug, Dump, phalcon, debug_dump, phalcon_debug_dump_method_entry, 0); +} - zend_declare_property_bool(phalcon_debug_dump_ce, SL("_detailed"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { - zend_declare_property_null(phalcon_debug_dump_ce, SL("_methods"), ZEND_ACC_PROTECTED TSRMLS_CC); + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *viewName = NULL, *schemaName = NULL, *_0; - zend_declare_property_null(phalcon_debug_dump_ce, SL("_styles"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - return SUCCESS; + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -} + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + definition = definition_param; -static PHP_METHOD(Phalcon_Debug_Dump, getDetailed) { + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } - RETURN_MEMBER(this_ptr, "_detailed"); + ZEPHIR_OBS_VAR(viewSql); + if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/sqlite.zep", 289); + return; + } + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CPY_WRT(view, _0); + } else { + ZEPHIR_CPY_WRT(view, viewName); + } + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW \"", view, "\" AS ", viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, setDetailed) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { - zval *detailed; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *view = NULL; + zval *viewName = NULL, *schemaName = NULL, *_0; - zephir_fetch_params(0, 1, 0, &detailed); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_update_property_this(this_ptr, SL("_detailed"), detailed TSRMLS_CC); + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CPY_WRT(view, _0); + } else { + ZEPHIR_CPY_WRT(view, viewName); + } + ZEPHIR_INIT_VAR(sql); + if (ifExists) { + ZEPHIR_CONCAT_SVS(sql, "DROP VIEW IF EXISTS \"", view, "\""); + } else { + ZEPHIR_CONCAT_SVS(sql, "DROP VIEW \"", view, "\""); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Debug_Dump, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { - int ZEPHIR_LAST_CALL_STATUS; - zend_bool detailed, _0; - zval *styles_param = NULL, *detailed_param = NULL, *_1; - zval *styles = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!styles_param) { - ZEPHIR_INIT_VAR(styles); - array_init(styles); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - zephir_get_arrval(styles, styles_param); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (!detailed_param) { - detailed = 0; + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - detailed = zephir_get_boolval(detailed_param); + zephir_get_strval(schemaName, schemaName_param); } - _0 = zephir_is_true(styles); - if (_0) { - _0 = 1 != 1; - } - if (_0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 56); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, styles); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - array_init(_1); - zephir_update_property_this(this_ptr, SL("_methods"), _1 TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_detailed"), detailed ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", tableName, "'"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, all) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zval *_1, *_2 = NULL; - zval *_0; - int ZEPHIR_LAST_CALL_STATUS; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - ZEPHIR_INIT_VAR(_0); - zephir_create_array(_0, 2, 0 TSRMLS_CC); - zephir_array_fast_append(_0, this_ptr); - ZEPHIR_INIT_VAR(_1); - ZVAL_STRING(_1, "vars", 1); - zephir_array_fast_append(_0, _1); - ZEPHIR_CALL_FUNCTION(&_2, "func_get_args", &_3); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, _0, _2); - zephir_check_call_status(); + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, getStyle) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { - zval *type_param = NULL, *style, *_0; - zval *type = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); RETURN_MM_NULL(); } - if (likely(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(type, type_param); + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); } else { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - - - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_styles"), PH_NOISY_CC); - if (zephir_array_isset_fetch(&style, _0, type, 1 TSRMLS_CC)) { - RETURN_CTOR(style); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - RETURN_MM_STRING("color:gray", 1); + zephir_get_strval(schema, schema_param); } + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", table, "')"); + RETURN_MM(); + } -static PHP_METHOD(Phalcon_Debug_Dump, setStyles) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { - zval *styles = NULL, *defaultStyles, *_0; + zval *schemaName_param = NULL; + zval *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &styles); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!styles) { - ZEPHIR_CPY_WRT(styles, ZEPHIR_GLOBAL(global_null)); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - ZEPHIR_SEPARATE_PARAM(styles); + zephir_get_strval(schemaName, schemaName_param); } - if (Z_TYPE_P(styles) == IS_NULL) { - ZEPHIR_INIT_NVAR(styles); - array_init(styles); - } - if (Z_TYPE_P(styles) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 100); - return; - } - ZEPHIR_INIT_VAR(defaultStyles); - zephir_create_array(defaultStyles, 11, 0 TSRMLS_CC); - add_assoc_stringl_ex(defaultStyles, SS("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333"), 1); - add_assoc_stringl_ex(defaultStyles, SS("arr"), SL("color:red"), 1); - add_assoc_stringl_ex(defaultStyles, SS("bool"), SL("color:green"), 1); - add_assoc_stringl_ex(defaultStyles, SS("float"), SL("color:fuchsia"), 1); - add_assoc_stringl_ex(defaultStyles, SS("int"), SL("color:blue"), 1); - add_assoc_stringl_ex(defaultStyles, SS("null"), SL("color:black"), 1); - add_assoc_stringl_ex(defaultStyles, SS("num"), SL("color:navy"), 1); - add_assoc_stringl_ex(defaultStyles, SS("obj"), SL("color:purple"), 1); - add_assoc_stringl_ex(defaultStyles, SS("other"), SL("color:maroon"), 1); - add_assoc_stringl_ex(defaultStyles, SS("res"), SL("color:lime"), 1); - add_assoc_stringl_ex(defaultStyles, SS("str"), SL("color:teal"), 1); - ZEPHIR_INIT_VAR(_0); - zephir_fast_array_merge(_0, &(defaultStyles), &(styles) TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_styles"), _0 TSRMLS_CC); - RETURN_MM_MEMBER(this_ptr, "_styles"); + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name", 1); } -static PHP_METHOD(Phalcon_Debug_Dump, one) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { - int ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL; - zval *variable, *name_param = NULL; + zval *schemaName_param = NULL; + zval *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - zephir_get_strval(name, name_param); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "var", NULL, variable, name); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name", 1); } -static PHP_METHOD(Phalcon_Debug_Dump, output) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { - zend_bool _15, _16, _17; - HashTable *_8, *_25, *_37; - HashPosition _7, _24, _36; - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL, *_19 = NULL, *_21 = NULL, *_23 = NULL, *_29 = NULL, *_30 = NULL, *_31 = NULL, *_33 = NULL, *_34 = NULL, *_42 = NULL, *_44 = NULL, *_45 = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zval *_1 = NULL, *_12 = NULL, *_40 = NULL; - int tab, ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL, *_0; - zval *variable, *name_param = NULL, *tab_param = NULL, *key = NULL, *value = NULL, *output = NULL, *space, *type = NULL, *attr = NULL, *_2 = NULL, *_3 = NULL, _5 = zval_used_for_init, **_9, *_10 = NULL, *_13 = NULL, *_14 = NULL, *_18 = NULL, *_20 = NULL, *_22, **_26, *_27 = NULL, *_28 = NULL, *_32, *_35, **_38, *_39 = NULL, *_41 = NULL, _43; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); } else { - zephir_get_strval(name, name_param); + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - if (!tab_param) { - tab = 1; + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - tab = zephir_get_intval(tab_param); + zephir_get_strval(schema, schema_param); } - ZEPHIR_INIT_VAR(space); - ZVAL_STRING(space, " ", 1); - ZEPHIR_INIT_VAR(output); - ZVAL_STRING(output, "", 1); - if (name && Z_STRLEN_P(name)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VS(_0, name, " "); - ZEPHIR_CPY_WRT(output, _0); + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", table, "')"); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { + + zval *index_param = NULL; + zval *index = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &index_param); + + if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_ARRAY) { - ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_3); - ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":count"), zephir_fast_count_int(variable TSRMLS_CC)); - ZEPHIR_SINIT_VAR(_5); - ZVAL_STRING(&_5, "Array (:count) (\n", 0); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); - zephir_check_call_status(); - zephir_concat_self(&output, _2 TSRMLS_CC); - zephir_is_iterable(variable, &_8, &_7, 0, 0, "phalcon/debug/dump.zep", 154); - for ( - ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS - ; zephir_hash_move_forward_ex(_8, &_7) - ) { - ZEPHIR_GET_HMKEY(key, _8, _7); - ZEPHIR_GET_HVALUE(value, _9); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "[:key] => ", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - _15 = tab == 1; - if (_15) { - _15 = !ZEPHIR_IS_STRING(name, ""); - } - _16 = _15; - if (_16) { - _16 = !(Z_TYPE_P(key) == IS_LONG); - } - _17 = _16; - if (_17) { - _17 = ZEPHIR_IS_EQUAL(name, key); - } - if (_17) { - continue; - } else { - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); - RETURN_MM(); + + if (likely(Z_TYPE_P(index_param) == IS_STRING)) { + zephir_get_strval(index, index_param); + } else { + ZEPHIR_INIT_VAR(index); + ZVAL_EMPTY_STRING(index); } - if (Z_TYPE_P(variable) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - zephir_array_update_string(&_1, SL(":class"), &_3, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Object :class", 0); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); - zephir_check_call_status(); - zephir_concat_self(&output, _2 TSRMLS_CC); - ZEPHIR_CALL_FUNCTION(&_13, "get_parent_class", &_21, variable); - zephir_check_call_status(); - if (zephir_is_true(_13)) { - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_18, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_18, "get_parent_class", &_21, variable); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":parent"), &_18, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, " extends :parent", 0); - ZEPHIR_CALL_FUNCTION(&_18, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - zephir_concat_self(&output, _18 TSRMLS_CC); - } - zephir_concat_self_str(&output, SL(" (\n") TSRMLS_CC); - _22 = zephir_fetch_nproperty_this(this_ptr, SL("_detailed"), PH_NOISY_CC); - if (!(zephir_is_true(_22))) { - ZEPHIR_CALL_FUNCTION(&_10, "get_object_vars", &_23, variable); - zephir_check_call_status(); - zephir_is_iterable(_10, &_25, &_24, 0, 0, "phalcon/debug/dump.zep", 171); - for ( - ; zephir_hash_get_current_data_ex(_25, (void**) &_26, &_24) == SUCCESS - ; zephir_hash_move_forward_ex(_25, &_24) - ) { - ZEPHIR_GET_HMKEY(key, _25, _24); - ZEPHIR_GET_HVALUE(value, _26); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_13, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(_12, SS(":type"), SL("public"), 1); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:key (:type) = ", 0); - ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _13, _27); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _28, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - } else { - do { - Z_SET_ISREF_P(variable); - ZEPHIR_CALL_FUNCTION(&attr, "each", &_29, variable); - Z_UNSET_ISREF_P(variable); - zephir_check_call_status(); - if (!(zephir_is_true(attr))) { - continue; - } - ZEPHIR_OBS_NVAR(key); - zephir_array_fetch_string(&key, attr, SL("key"), PH_NOISY, "phalcon/debug/dump.zep", 178 TSRMLS_CC); - ZEPHIR_OBS_NVAR(value); - zephir_array_fetch_string(&value, attr, SL("value"), PH_NOISY, "phalcon/debug/dump.zep", 179 TSRMLS_CC); - if (!(zephir_is_true(key))) { - continue; - } - ZEPHIR_INIT_NVAR(_3); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "\\x00", 0); - ZEPHIR_CALL_FUNCTION(&_10, "ord", &_30, &_5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13, "chr", &_31, _10); - zephir_check_call_status(); - zephir_fast_explode(_3, _13, key, LONG_MAX TSRMLS_CC); - ZEPHIR_CPY_WRT(key, _3); - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "public", 1); - if (zephir_array_isset_long(key, 1)) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "private", 1); - zephir_array_fetch_long(&_32, key, 1, PH_NOISY | PH_READONLY, "phalcon/debug/dump.zep", 190 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_32, "*")) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "protected", 1); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); - Z_SET_ISREF_P(key); - ZEPHIR_CALL_FUNCTION(&_27, "end", &_33, key); - Z_UNSET_ISREF_P(key); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":key"), &_27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":type"), &type, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:key (:type) = ", 0); - ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _18, _27); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _28, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } while (zephir_is_true(attr)); - } - ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", &_34, variable); - zephir_check_call_status(); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - zephir_array_update_string(&_12, SL(":class"), &_3, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_12, SS(":count"), zephir_fast_count_int(attr TSRMLS_CC)); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, ":class methods: (:count) (\n", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - _35 = zephir_fetch_nproperty_this(this_ptr, SL("_methods"), PH_NOISY_CC); - if (zephir_fast_in_array(_3, _35 TSRMLS_CC)) { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, "[already listed]\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } else { - zephir_is_iterable(attr, &_37, &_36, 0, 0, "phalcon/debug/dump.zep", 214); - for ( - ; zephir_hash_get_current_data_ex(_37, (void**) &_38, &_36) == SUCCESS - ; zephir_hash_move_forward_ex(_37, &_36) - ) { - ZEPHIR_GET_HVALUE(value, _38); - ZEPHIR_INIT_NVAR(_39); - zephir_get_class(_39, variable, 0 TSRMLS_CC); - zephir_update_property_array_append(this_ptr, SL("_methods"), _39 TSRMLS_CC); - if (ZEPHIR_IS_STRING(value, "__construct")) { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_39); - ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _39); - zephir_check_temp_parameter(_39); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:method(); [constructor]\n", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - } else { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_27, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_40); - zephir_create_array(_40, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_39); - ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "getstyle", &_4, _39); - zephir_check_temp_parameter(_39); - zephir_check_call_status(); - zephir_array_update_string(&_40, SL(":style"), &_28, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_40, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:method();\n", 0); - ZEPHIR_CALL_FUNCTION(&_28, "strtr", &_6, &_5, _40); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_41); - ZEPHIR_CONCAT_VV(_41, _27, _28); - zephir_concat_self(&output, _41 TSRMLS_CC); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, ")\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); - RETURN_MM(); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", index, "')"); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { + + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_LONG) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "int", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Integer (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - ZEPHIR_CALL_FUNCTION(&_2, "is_float", &_42, variable); - zephir_check_call_status(); - if (zephir_is_true(_2)) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "float", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Float (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_numeric(variable)) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "num", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Numeric string (:length) \":var\"", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_STRING) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "str", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, 4); - ZEPHIR_SINIT_VAR(_43); - ZVAL_STRING(&_43, "utf-8", 0); - ZEPHIR_CALL_FUNCTION(&_2, "htmlentities", &_44, variable, &_5, &_43); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13, "nl2br", &_45, _2); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":var"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "String (:length) \":var\"", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_BOOL) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "bool", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_LNVAR(_14); - if (zephir_is_true(variable)) { - ZEPHIR_INIT_NVAR(_14); - ZVAL_STRING(_14, "TRUE", 1); - } else { - ZEPHIR_INIT_NVAR(_14); - ZVAL_STRING(_14, "FALSE", 1); - } - zephir_array_update_string(&_1, SL(":var"), &_14, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Boolean (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_NULL) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 1, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "null", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "NULL", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "other", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "(:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", table, "')"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, var) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; - zval *name = NULL; - zval *variable, *name_param = NULL, *_1 = NULL, *_2, _3; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); - } else { - zephir_get_strval(name, name_param); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } - ZEPHIR_INIT_VAR(_0); - zephir_create_array(_0, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "pre", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, variable, name); - zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_VAR(_3); - ZVAL_STRING(&_3, "
:output
", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_4, &_3, _0); - zephir_check_call_status(); - RETURN_MM(); - -} - -static PHP_METHOD(Phalcon_Debug_Dump, vars) { - - zephir_fcall_cache_entry *_7 = NULL; - HashTable *_3; - HashPosition _2; - int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; - zval *key = NULL, *value = NULL, *output, *_0 = NULL, **_4, *_5 = NULL, *_6 = NULL; - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(output); - ZVAL_STRING(output, "", 1); - ZEPHIR_CALL_FUNCTION(&_0, "func_get_args", &_1); - zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/debug/dump.zep", 283); - for ( - ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS - ; zephir_hash_move_forward_ex(_3, &_2) - ) { - ZEPHIR_GET_HMKEY(key, _3, _2); - ZEPHIR_GET_HVALUE(value, _4); - ZEPHIR_INIT_LNVAR(_6); - ZEPHIR_CONCAT_SV(_6, "var ", key); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "one", &_7, value, _6); - zephir_check_call_status(); - zephir_concat_self(&output, _5 TSRMLS_CC); - } - RETURN_CCTOR(output); + RETURN_MM_STRING("", 1); } @@ -52564,33 +53763,128 @@ static PHP_METHOD(Phalcon_Debug_Dump, vars) { -ZEPHIR_INIT_CLASS(Phalcon_Debug_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Debug, Exception, phalcon, debug_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlVariables"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlBindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_initialTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_finalTime"), ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; } +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) { + zval *sqlStatement; + zephir_fetch_params(0, 1, 0, &sqlStatement); -#ifdef HAVE_CONFIG_H -#endif -#include -#include -#include -#include + zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); +} +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) { -ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + RETURN_MEMBER(this_ptr, "_sqlStatement"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) { + + zval *sqlVariables; + + zephir_fetch_params(0, 1, 0, &sqlVariables); + + + + zephir_update_property_this(this_ptr, SL("_sqlVariables"), sqlVariables TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) { + + + RETURN_MEMBER(this_ptr, "_sqlVariables"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) { + + zval *sqlBindTypes; + + zephir_fetch_params(0, 1, 0, &sqlBindTypes); + + + + zephir_update_property_this(this_ptr, SL("_sqlBindTypes"), sqlBindTypes TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) { + + + RETURN_MEMBER(this_ptr, "_sqlBindTypes"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) { + + zval *initialTime; + + zephir_fetch_params(0, 1, 0, &initialTime); + + + + zephir_update_property_this(this_ptr, SL("_initialTime"), initialTime TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) { + + + RETURN_MEMBER(this_ptr, "_initialTime"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) { + + zval *finalTime; + + zephir_fetch_params(0, 1, 0, &finalTime); - return SUCCESS; + + + zephir_update_property_this(this_ptr, SL("_finalTime"), finalTime TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) { + + + RETURN_MEMBER(this_ptr, "_finalTime"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) { + + zval *_0, *_1; + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_finalTime"), PH_NOISY_CC); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_initialTime"), PH_NOISY_CC); + sub_function(return_value, _0, _1 TSRMLS_CC); + return; } @@ -52607,829 +53901,1087 @@ ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { #include +#include -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); +ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_connection"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_result"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_long(phalcon_db_result_pdo_ce, SL("_fetchMode"), 4, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_pdoStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindParams"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("_rowCount"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_db_result_pdo_ce TSRMLS_CC, 1, phalcon_db_resultinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { +static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) { + + zval *connection, *result, *sqlStatement = NULL, *bindParams = NULL, *bindTypes = NULL; + + zephir_fetch_params(0, 2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + + if (!sqlStatement) { + sqlStatement = ZEPHIR_GLOBAL(global_null); + } + if (!bindParams) { + bindParams = ZEPHIR_GLOBAL(global_null); + } + if (!bindTypes) { + bindTypes = ZEPHIR_GLOBAL(global_null); + } + + + zephir_update_property_this(this_ptr, SL("_connection"), connection TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_pdoStatement"), result TSRMLS_CC); + if (Z_TYPE_P(sqlStatement) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); + } + if (Z_TYPE_P(bindParams) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_bindParams"), bindParams TSRMLS_CC); + } + if (Z_TYPE_P(bindTypes) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_bindTypes"), bindTypes TSRMLS_CC); + } + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { - zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; - zval *_1; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_6 = NULL; + zval *_0; ZEPHIR_MM_GROW(); - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, this_ptr, "__construct", &_0); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "execute", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 21, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_VAR(_3); - ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_VAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Router", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_VAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "url", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Url", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetchall", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { + + zend_bool _0; + int ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement, *rowCount = NULL, *connection, *type = NULL, *pdoStatement, *matches, *result = NULL, *row = NULL, *_1, _2, *_3, *_4, *_5, *_6; + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(rowCount); + zephir_read_property_this(&rowCount, this_ptr, SL("_rowCount"), PH_NOISY_CC); + if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { + ZEPHIR_OBS_VAR(connection); + zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&type, connection, "gettype", NULL); + zephir_check_call_status(); + _0 = ZEPHIR_IS_STRING(type, "mysql"); + if (!(_0)) { + _0 = ZEPHIR_IS_STRING(type, "pgsql"); + } + if (_0) { + ZEPHIR_OBS_VAR(pdoStatement); + zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&rowCount, pdoStatement, "rowcount", NULL); + zephir_check_call_status(); + } + if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { + ZEPHIR_OBS_VAR(sqlStatement); + zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); + if (!(zephir_start_with_str(sqlStatement, SL("SELECT COUNT(*) ")))) { + ZEPHIR_INIT_VAR(matches); + ZVAL_NULL(matches); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_SINIT_VAR(_2); + ZVAL_STRING(&_2, "/^SELECT\\s+(.*)/i", 0); + zephir_preg_match(_1, &_2, sqlStatement, matches, 0, 0 , 0 TSRMLS_CC); + if (zephir_is_true(_1)) { + zephir_array_fetch_long(&_3, matches, 1, PH_NOISY | PH_READONLY, "phalcon/db/result/pdo.zep", 202 TSRMLS_CC); + ZEPHIR_INIT_VAR(_4); + ZEPHIR_CONCAT_SVS(_4, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", _3, ")"); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_bindParams"), PH_NOISY_CC); + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&result, connection, "query", NULL, _4, _5, _6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(rowCount); + zephir_array_fetch_string(&rowCount, row, SL("numrows"), PH_NOISY, "phalcon/db/result/pdo.zep", 204 TSRMLS_CC); + } + } else { + ZEPHIR_INIT_NVAR(rowCount); + ZVAL_LONG(rowCount, 1); + } + } + zephir_update_property_this(this_ptr, SL("_rowCount"), rowCount TSRMLS_CC); + } + RETURN_CCTOR(rowCount); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *number_param = NULL, *connection, *pdo = NULL, *sqlStatement, *bindParams, *statement = NULL, *_0 = NULL, *_1; + long number; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &number_param); + + number = zephir_get_intval(number_param); + + + { pdo_stmt_t *stmt; long n; + ZEPHIR_OBS_VAR(connection); + zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&pdo, connection, "getinternalhandler", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "modelsMetadata", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\MetaData\\Memory", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "response", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Response", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "cookies", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Response\\Cookies", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "request", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Request", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "escaper", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Escaper", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "crypt", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Crypt", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "flash", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Flash\\Direct", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "flashSession", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Flash\\Session", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "tag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Tag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "session", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Session\\Adapter\\Files", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("session"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Session\\Bag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("sessionBag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "transactions", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "assets", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Assets\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_OBS_VAR(sqlStatement); + zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(bindParams); + zephir_read_property_this(&bindParams, this_ptr, SL("_bindParams"), PH_NOISY_CC); + if (Z_TYPE_P(bindParams) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); + zephir_check_call_status(); + if (Z_TYPE_P(statement) == IS_OBJECT) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_0, connection, "executeprepared", NULL, statement, bindParams, _1); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(statement, _0); + } + } else { + ZEPHIR_CALL_METHOD(&statement, pdo, "query", NULL, sqlStatement); + zephir_check_call_status(); + } + zephir_update_property_this(this_ptr, SL("_pdoStatement"), statement TSRMLS_CC); + + + stmt = (pdo_stmt_t*) zend_object_store_get_object(statement TSRMLS_CC); + if (!stmt->dbh) { + ZEPHIR_MM_RESTORE(); + RETURN_FALSE; + } + + n = -1; + number--; + while (n != number) { + + if (!stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) { + ZEPHIR_MM_RESTORE(); + RETURN_NULL(); + } + + n++; + } + + } + + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) { + zval *fetchMode_param = NULL, *pdoStatement, *_0 = NULL, *_1; + int fetchMode, ZEPHIR_LAST_CALL_STATUS; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &fetchMode_param); -#ifdef HAVE_CONFIG_H -#endif + fetchMode = zephir_get_intval(fetchMode_param); -#include -#include -#include -#include + ZEPHIR_OBS_VAR(pdoStatement); + zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + do { + if (fetchMode == 2) { + ZEPHIR_INIT_VAR(_0); + ZVAL_LONG(_0, 4); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 4); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 1) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 2); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 2); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 3) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 3); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 3); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 4) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 5); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 5); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + } while(0); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) { +static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_di_injectable_ce, SL("_dependencyInjector"), ZEND_ACC_PROTECTED TSRMLS_CC); + RETURN_MEMBER(this_ptr, "_pdoStatement"); - zend_declare_property_null(phalcon_di_injectable_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_di_injectionawareinterface_ce); - zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; -} -static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zval *dependencyInjector; +#ifdef HAVE_CONFIG_H +#endif - zephir_fetch_params(0, 1, 0, &dependencyInjector); +#include +#include +#include +#include - zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); -} +ZEPHIR_INIT_CLASS(Phalcon_Debug_Dump) { -static PHP_METHOD(Phalcon_Di_Injectable, getDI) { + ZEPHIR_REGISTER_CLASS(Phalcon\\Debug, Dump, phalcon, debug_dump, phalcon_debug_dump_method_entry, 0); - int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; - zval *dependencyInjector = NULL; + zend_declare_property_bool(phalcon_debug_dump_ce, SL("_detailed"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - ZEPHIR_MM_GROW(); + zend_declare_property_null(phalcon_debug_dump_ce, SL("_methods"), ZEND_ACC_PROTECTED TSRMLS_CC); - ZEPHIR_OBS_VAR(dependencyInjector); - zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_0); - zephir_check_call_status(); - } - RETURN_CCTOR(dependencyInjector); + zend_declare_property_null(phalcon_debug_dump_ce, SL("_styles"), ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Di_Injectable, setEventsManager) { +static PHP_METHOD(Phalcon_Debug_Dump, getDetailed) { - zval *eventsManager; - zephir_fetch_params(0, 1, 0, &eventsManager); + RETURN_MEMBER(this_ptr, "_detailed"); +} +static PHP_METHOD(Phalcon_Debug_Dump, setDetailed) { - zephir_update_property_this(this_ptr, SL("_eventsManager"), eventsManager TSRMLS_CC); + zval *detailed; -} + zephir_fetch_params(0, 1, 0, &detailed); -static PHP_METHOD(Phalcon_Di_Injectable, getEventsManager) { - RETURN_MEMBER(this_ptr, "_eventsManager"); + zephir_update_property_this(this_ptr, SL("_detailed"), detailed TSRMLS_CC); } -static PHP_METHOD(Phalcon_Di_Injectable, __get) { +static PHP_METHOD(Phalcon_Debug_Dump, __construct) { - zval *_4; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_7 = NULL; - zval *propertyName_param = NULL, *dependencyInjector = NULL, *service = NULL, *persistent = NULL, *_0, *_2 = NULL, *_3 = NULL, *_5 = NULL; - zval *propertyName = NULL, *_6; + zend_bool detailed, _0; + zval *styles_param = NULL, *detailed_param = NULL, *_1; + zval *styles = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &propertyName_param); + zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); - if (unlikely(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + if (!styles_param) { + ZEPHIR_INIT_VAR(styles); + array_init(styles); + } else { + zephir_get_arrval(styles, styles_param); } - - if (likely(Z_TYPE_P(propertyName_param) == IS_STRING)) { - zephir_get_strval(propertyName, propertyName_param); + if (!detailed_param) { + detailed = 0; } else { - ZEPHIR_INIT_VAR(propertyName); - ZVAL_EMPTY_STRING(propertyName); + detailed = zephir_get_boolval(detailed_param); } - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); - zephir_check_call_status(); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services", "phalcon/di/injectable.zep", 127); - return; - } - } - ZEPHIR_CALL_METHOD(&_2, dependencyInjector, "has", NULL, propertyName); - zephir_check_call_status(); - if (zephir_is_true(_2)) { - ZEPHIR_CALL_METHOD(&service, dependencyInjector, "getshared", NULL, propertyName); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, propertyName, service TSRMLS_CC); - RETURN_CCTOR(service); - } - if (ZEPHIR_IS_STRING(propertyName, "di")) { - zephir_update_property_zval(this_ptr, SL("di"), dependencyInjector TSRMLS_CC); - RETURN_CCTOR(dependencyInjector); + _0 = zephir_is_true(styles); + if (_0) { + _0 = 1 != 1; } - if (ZEPHIR_IS_STRING(propertyName, "persistent")) { - ZEPHIR_INIT_VAR(_4); - zephir_create_array(_4, 1, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_5); - zephir_get_class(_5, this_ptr, 0 TSRMLS_CC); - zephir_array_fast_append(_4, _5); - ZEPHIR_INIT_NVAR(_5); - ZVAL_STRING(_5, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_3, dependencyInjector, "get", NULL, _5, _4); - zephir_check_temp_parameter(_5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(persistent, _3); - zephir_update_property_zval(this_ptr, SL("persistent"), persistent TSRMLS_CC); - RETURN_CCTOR(persistent); + if (_0) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 56); + return; } - ZEPHIR_INIT_VAR(_6); - ZEPHIR_CONCAT_SV(_6, "Access to undefined property ", propertyName); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", &_7, _6); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, styles); zephir_check_call_status(); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(_1); + array_init(_1); + zephir_update_property_this(this_ptr, SL("_methods"), _1 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_detailed"), detailed ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Debug_Dump, all) { + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zval *_1, *_2 = NULL; + zval *_0; + int ZEPHIR_LAST_CALL_STATUS; + ZEPHIR_MM_GROW(); -#ifdef HAVE_CONFIG_H -#endif - -#include + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 2, 0 TSRMLS_CC); + zephir_array_fast_append(_0, this_ptr); + ZEPHIR_INIT_VAR(_1); + ZVAL_STRING(_1, "variables", 1); + zephir_array_fast_append(_0, _1); + ZEPHIR_CALL_FUNCTION(&_2, "func_get_args", &_3); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, _0, _2); + zephir_check_call_status(); + RETURN_MM(); -#include +} +static PHP_METHOD(Phalcon_Debug_Dump, getStyle) { + zval *type_param = NULL, *style, *_0; + zval *type = NULL; -ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); + if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - return SUCCESS; + if (likely(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(type, type_param); + } else { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } -} -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_styles"), PH_NOISY_CC); + if (zephir_array_isset_fetch(&style, _0, type, 1 TSRMLS_CC)) { + RETURN_CTOR(style); + } else { + RETURN_MM_STRING("color:gray", 1); + } -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); +} +static PHP_METHOD(Phalcon_Debug_Dump, setStyles) { + zval *styles = NULL, *defaultStyles, *_0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &styles); -#ifdef HAVE_CONFIG_H -#endif + if (!styles) { + ZEPHIR_CPY_WRT(styles, ZEPHIR_GLOBAL(global_null)); + } else { + ZEPHIR_SEPARATE_PARAM(styles); + } -#include -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); - - zend_declare_property_null(phalcon_di_service_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_di_service_ce, SL("_definition"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_di_service_ce, SL("_shared"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_di_service_ce, SL("_resolved"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_di_service_ce, SL("_sharedInstance"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_class_implements(phalcon_di_service_ce TSRMLS_CC, 1, phalcon_di_serviceinterface_ce); - return SUCCESS; + if (Z_TYPE_P(styles) == IS_NULL) { + ZEPHIR_INIT_NVAR(styles); + array_init(styles); + } + if (Z_TYPE_P(styles) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 100); + return; + } + ZEPHIR_INIT_VAR(defaultStyles); + zephir_create_array(defaultStyles, 11, 0 TSRMLS_CC); + add_assoc_stringl_ex(defaultStyles, SS("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333"), 1); + add_assoc_stringl_ex(defaultStyles, SS("arr"), SL("color:red"), 1); + add_assoc_stringl_ex(defaultStyles, SS("bool"), SL("color:green"), 1); + add_assoc_stringl_ex(defaultStyles, SS("float"), SL("color:fuchsia"), 1); + add_assoc_stringl_ex(defaultStyles, SS("int"), SL("color:blue"), 1); + add_assoc_stringl_ex(defaultStyles, SS("null"), SL("color:black"), 1); + add_assoc_stringl_ex(defaultStyles, SS("num"), SL("color:navy"), 1); + add_assoc_stringl_ex(defaultStyles, SS("obj"), SL("color:purple"), 1); + add_assoc_stringl_ex(defaultStyles, SS("other"), SL("color:maroon"), 1); + add_assoc_stringl_ex(defaultStyles, SS("res"), SL("color:lime"), 1); + add_assoc_stringl_ex(defaultStyles, SS("str"), SL("color:teal"), 1); + ZEPHIR_INIT_VAR(_0); + zephir_fast_array_merge(_0, &(defaultStyles), &(styles) TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_styles"), _0 TSRMLS_CC); + RETURN_MM_MEMBER(this_ptr, "_styles"); } -static PHP_METHOD(Phalcon_Di_Service, __construct) { +static PHP_METHOD(Phalcon_Debug_Dump, one) { - zend_bool shared; - zval *name_param = NULL, *definition, *shared_param = NULL; + int ZEPHIR_LAST_CALL_STATUS; zval *name = NULL; + zval *variable, *name_param = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param); - - if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 1, &variable, &name_param); - if (likely(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(name, name_param); - } else { + if (!name_param) { ZEPHIR_INIT_VAR(name); ZVAL_EMPTY_STRING(name); - } - if (!shared_param) { - shared = 0; } else { - shared = zephir_get_boolval(shared_param); + zephir_get_strval(name, name_param); } - zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - -} - -static PHP_METHOD(Phalcon_Di_Service, getName) { - - - RETURN_MEMBER(this_ptr, "_name"); - -} - -static PHP_METHOD(Phalcon_Di_Service, setShared) { - - zval *shared_param = NULL; - zend_bool shared; - - zephir_fetch_params(0, 1, 0, &shared_param); - - shared = zephir_get_boolval(shared_param); - - - zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, isShared) { - - - RETURN_MEMBER(this_ptr, "_shared"); - -} - -static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { - - zval *sharedInstance; - - zephir_fetch_params(0, 1, 0, &sharedInstance); - - - - zephir_update_property_this(this_ptr, SL("_sharedInstance"), sharedInstance TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, setDefinition) { - - zval *definition; - - zephir_fetch_params(0, 1, 0, &definition); - - - - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - - - RETURN_MEMBER(this_ptr, "_definition"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "variable", NULL, variable, name); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, resolve) { +static PHP_METHOD(Phalcon_Debug_Dump, output) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_7 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zend_bool found; - zval *parameters = NULL, *dependencyInjector = NULL, *shared, *definition, *sharedInstance, *instance = NULL, *builder, *reflection = NULL, *_4, *_5, *_6; + zend_bool _15, _16, _17; + HashTable *_8, *_25, *_37; + HashPosition _7, _24, _36; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL, *_19 = NULL, *_21 = NULL, *_23 = NULL, *_29 = NULL, *_30 = NULL, *_31 = NULL, *_33 = NULL, *_34 = NULL, *_42 = NULL, *_44 = NULL, *_45 = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zval *_1 = NULL, *_12 = NULL, *_40 = NULL; + int tab, ZEPHIR_LAST_CALL_STATUS; + zval *name = NULL, *_0; + zval *variable, *name_param = NULL, *tab_param = NULL, *key = NULL, *value = NULL, *output = NULL, *space, *type = NULL, *attr = NULL, *_2 = NULL, *_3 = NULL, _5 = zval_used_for_init, **_9, *_10 = NULL, *_13 = NULL, *_14 = NULL, *_18 = NULL, *_20 = NULL, *_22, **_26, *_27 = NULL, *_28 = NULL, *_32, *_35, **_38, *_39 = NULL, *_41 = NULL, _43; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, ¶meters, &dependencyInjector); + zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + zephir_get_strval(name, name_param); } - if (!dependencyInjector) { - dependencyInjector = ZEPHIR_GLOBAL(global_null); + if (!tab_param) { + tab = 1; + } else { + tab = zephir_get_intval(tab_param); } - ZEPHIR_OBS_VAR(shared); - zephir_read_property_this(&shared, this_ptr, SL("_shared"), PH_NOISY_CC); - if (zephir_is_true(shared)) { - ZEPHIR_OBS_VAR(sharedInstance); - zephir_read_property_this(&sharedInstance, this_ptr, SL("_sharedInstance"), PH_NOISY_CC); - if (Z_TYPE_P(sharedInstance) != IS_NULL) { - RETURN_CCTOR(sharedInstance); - } + ZEPHIR_INIT_VAR(space); + ZVAL_STRING(space, " ", 1); + ZEPHIR_INIT_VAR(output); + ZVAL_STRING(output, "", 1); + if (name && Z_STRLEN_P(name)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VS(_0, name, " "); + ZEPHIR_CPY_WRT(output, _0); } - found = 1; - ZEPHIR_INIT_VAR(instance); - ZVAL_NULL(instance); - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) == IS_STRING) { - if (zephir_class_exists(definition, 1 TSRMLS_CC)) { - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters TSRMLS_CC)) { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_VAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, definition, parameters TSRMLS_CC); - zephir_check_call_status(); - } - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); - zephir_check_call_status(); - } - } + if (Z_TYPE_P(variable) == IS_ARRAY) { + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_3); + ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":count"), zephir_fast_count_int(variable TSRMLS_CC)); + ZEPHIR_SINIT_VAR(_5); + ZVAL_STRING(&_5, "Array (:count) (\n", 0); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); + zephir_check_call_status(); + zephir_concat_self(&output, _2 TSRMLS_CC); + zephir_is_iterable(variable, &_8, &_7, 0, 0, "phalcon/debug/dump.zep", 154); + for ( + ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS + ; zephir_hash_move_forward_ex(_8, &_7) + ) { + ZEPHIR_GET_HMKEY(key, _8, _7); + ZEPHIR_GET_HVALUE(value, _9); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "[:key] => ", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + _15 = tab == 1; + if (_15) { + _15 = !ZEPHIR_IS_STRING(name, ""); + } + _16 = _15; + if (_16) { + _16 = !(Z_TYPE_P(key) == IS_LONG); + } + _17 = _16; + if (_17) { + _17 = ZEPHIR_IS_EQUAL(name, key); + } + if (_17) { + continue; } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); - zephir_check_call_status(); - } + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); } - } else { - found = 0; } - } else { - if (Z_TYPE_P(definition) == IS_OBJECT) { - if (zephir_instance_of_ev(definition, zend_ce_closure TSRMLS_CC)) { - if (Z_TYPE_P(parameters) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_USER_FUNC_ARRAY(instance, definition, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_USER_FUNC(instance, definition); - zephir_check_call_status(); - } - } else { - ZEPHIR_CPY_WRT(instance, definition); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + zephir_array_update_string(&_1, SL(":class"), &_3, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Object :class", 0); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); + zephir_check_call_status(); + zephir_concat_self(&output, _2 TSRMLS_CC); + ZEPHIR_CALL_FUNCTION(&_13, "get_parent_class", &_21, variable); + zephir_check_call_status(); + if (zephir_is_true(_13)) { + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_18, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_18, "get_parent_class", &_21, variable); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":parent"), &_18, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, " extends :parent", 0); + ZEPHIR_CALL_FUNCTION(&_18, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + zephir_concat_self(&output, _18 TSRMLS_CC); + } + zephir_concat_self_str(&output, SL(" (\n") TSRMLS_CC); + _22 = zephir_fetch_nproperty_this(this_ptr, SL("_detailed"), PH_NOISY_CC); + if (!(zephir_is_true(_22))) { + ZEPHIR_CALL_FUNCTION(&_10, "get_object_vars", &_23, variable); + zephir_check_call_status(); + zephir_is_iterable(_10, &_25, &_24, 0, 0, "phalcon/debug/dump.zep", 171); + for ( + ; zephir_hash_get_current_data_ex(_25, (void**) &_26, &_24) == SUCCESS + ; zephir_hash_move_forward_ex(_25, &_24) + ) { + ZEPHIR_GET_HMKEY(key, _25, _24); + ZEPHIR_GET_HVALUE(value, _26); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_13, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(_12, SS(":type"), SL("public"), 1); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:key (:type) = ", 0); + ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _13, _27); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _28, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); } } else { - if (Z_TYPE_P(definition) == IS_ARRAY) { - ZEPHIR_INIT_VAR(builder); - object_init_ex(builder, phalcon_di_service_builder_ce); - if (zephir_has_constructor(builder TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, builder, "__construct", NULL); - zephir_check_call_status(); + do { + Z_SET_ISREF_P(variable); + ZEPHIR_CALL_FUNCTION(&attr, "each", &_29, variable); + Z_UNSET_ISREF_P(variable); + zephir_check_call_status(); + if (!(zephir_is_true(attr))) { + continue; } - ZEPHIR_CALL_METHOD(&instance, builder, "build", &_3, dependencyInjector, definition, parameters); + ZEPHIR_OBS_NVAR(key); + zephir_array_fetch_string(&key, attr, SL("key"), PH_NOISY, "phalcon/debug/dump.zep", 178 TSRMLS_CC); + ZEPHIR_OBS_NVAR(value); + zephir_array_fetch_string(&value, attr, SL("value"), PH_NOISY, "phalcon/debug/dump.zep", 179 TSRMLS_CC); + if (!(zephir_is_true(key))) { + continue; + } + ZEPHIR_INIT_NVAR(_3); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "\\x00", 0); + ZEPHIR_CALL_FUNCTION(&_10, "ord", &_30, &_5); zephir_check_call_status(); - } else { - found = 0; - } + ZEPHIR_CALL_FUNCTION(&_13, "chr", &_31, _10); + zephir_check_call_status(); + zephir_fast_explode(_3, _13, key, LONG_MAX TSRMLS_CC); + ZEPHIR_CPY_WRT(key, _3); + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "public", 1); + if (zephir_array_isset_long(key, 1)) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "private", 1); + zephir_array_fetch_long(&_32, key, 1, PH_NOISY | PH_READONLY, "phalcon/debug/dump.zep", 190 TSRMLS_CC); + if (ZEPHIR_IS_STRING(_32, "*")) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "protected", 1); + } + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); + Z_SET_ISREF_P(key); + ZEPHIR_CALL_FUNCTION(&_27, "end", &_33, key); + Z_UNSET_ISREF_P(key); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":key"), &_27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":type"), &type, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:key (:type) = ", 0); + ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _18, _27); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _28, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } while (zephir_is_true(attr)); } - } - if (found == 0) { - ZEPHIR_INIT_VAR(_4); - object_init_ex(_4, phalcon_di_exception_ce); - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(_6); - ZEPHIR_CONCAT_SVS(_6, "Service '", _5, "' cannot be resolved"); - ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_7, _6); + ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", &_34, variable); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/di/service.zep", 212 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_is_true(shared)) { - zephir_update_property_this(this_ptr, SL("_sharedInstance"), instance TSRMLS_CC); - } - zephir_update_property_this(this_ptr, SL("_resolved"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - RETURN_CCTOR(instance); - -} - -static PHP_METHOD(Phalcon_Di_Service, setParameter) { - - zval *parameter = NULL; - zval *position_param = NULL, *parameter_param = NULL, *definition, *arguments = NULL; - int position; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); - - position = zephir_get_intval(position_param); - parameter = parameter_param; - - - - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/di/service.zep", 236); - return; + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + zephir_array_update_string(&_12, SL(":class"), &_3, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_12, SS(":count"), zephir_fast_count_int(attr TSRMLS_CC)); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, ":class methods: (:count) (\n", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + _35 = zephir_fetch_nproperty_this(this_ptr, SL("_methods"), PH_NOISY_CC); + if (zephir_fast_in_array(_3, _35 TSRMLS_CC)) { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, "[already listed]\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } else { + zephir_is_iterable(attr, &_37, &_36, 0, 0, "phalcon/debug/dump.zep", 214); + for ( + ; zephir_hash_get_current_data_ex(_37, (void**) &_38, &_36) == SUCCESS + ; zephir_hash_move_forward_ex(_37, &_36) + ) { + ZEPHIR_GET_HVALUE(value, _38); + ZEPHIR_INIT_NVAR(_39); + zephir_get_class(_39, variable, 0 TSRMLS_CC); + zephir_update_property_array_append(this_ptr, SL("_methods"), _39 TSRMLS_CC); + if (ZEPHIR_IS_STRING(value, "__construct")) { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_39); + ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _39); + zephir_check_temp_parameter(_39); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:method(); [constructor]\n", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + } else { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_27, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_40); + zephir_create_array(_40, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_39); + ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "getstyle", &_4, _39); + zephir_check_temp_parameter(_39); + zephir_check_call_status(); + zephir_array_update_string(&_40, SL(":style"), &_28, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_40, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:method();\n", 0); + ZEPHIR_CALL_FUNCTION(&_28, "strtr", &_6, &_5, _40); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_41); + ZEPHIR_CONCAT_VV(_41, _27, _28); + zephir_concat_self(&output, _41 TSRMLS_CC); + } + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, ")\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); + RETURN_MM(); } - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE, "phalcon/di/service.zep", 243); - } else { - ZEPHIR_INIT_NVAR(arguments); - zephir_create_array(arguments, 1, 0 TSRMLS_CC); - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY, "phalcon/di/service.zep", 245); + if (Z_TYPE_P(variable) == IS_LONG) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "int", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Integer (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); } - zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - RETURN_THIS(); + ZEPHIR_CALL_FUNCTION(&_2, "is_float", &_42, variable); + zephir_check_call_status(); + if (zephir_is_true(_2)) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "float", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Float (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (zephir_is_numeric(variable)) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "num", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Numeric string (:length) \":var\"", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_STRING) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "str", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, 4); + ZEPHIR_SINIT_VAR(_43); + ZVAL_STRING(&_43, "utf-8", 0); + ZEPHIR_CALL_FUNCTION(&_2, "htmlentities", &_44, variable, &_5, &_43); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_13, "nl2br", &_45, _2); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":var"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "String (:length) \":var\"", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_BOOL) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "bool", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_LNVAR(_14); + if (zephir_is_true(variable)) { + ZEPHIR_INIT_NVAR(_14); + ZVAL_STRING(_14, "TRUE", 1); + } else { + ZEPHIR_INIT_NVAR(_14); + ZVAL_STRING(_14, "FALSE", 1); + } + zephir_array_update_string(&_1, SL(":var"), &_14, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Boolean (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_NULL) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 1, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "null", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "NULL", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "other", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "(:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, getParameter) { +static PHP_METHOD(Phalcon_Debug_Dump, variable) { - zval *position_param = NULL, *definition, *arguments, *parameter; - int position; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + zval *name = NULL; + zval *variable, *name_param = NULL, *_1 = NULL, *_2, _3; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &position_param); - - position = zephir_get_intval(position_param); - + zephir_fetch_params(1, 1, 1, &variable, &name_param); - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/di/service.zep", 273); - return; - } - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 1 TSRMLS_CC)) { - if (zephir_array_isset_long_fetch(¶meter, arguments, position, 1 TSRMLS_CC)) { - RETURN_CTOR(parameter); - } + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + zephir_get_strval(name, name_param); } - RETURN_MM_NULL(); - -} - -static PHP_METHOD(Phalcon_Di_Service, isResolved) { - RETURN_MEMBER(this_ptr, "_resolved"); + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_2); + ZVAL_STRING(_2, "pre", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, _2); + zephir_check_temp_parameter(_2); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, variable, name); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_VAR(_3); + ZVAL_STRING(&_3, "
:output
", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_4, &_3, _0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, __set_state) { +static PHP_METHOD(Phalcon_Debug_Dump, variables) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zephir_fcall_cache_entry *_7 = NULL; + HashTable *_3; + HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, *name, *definition, *shared; - zval *attributes = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *key = NULL, *value = NULL, *output, *_0 = NULL, **_4, *_5 = NULL, *_6 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - - attributes = attributes_param; - - - ZEPHIR_OBS_VAR(name); - if (!(zephir_array_isset_string_fetch(&name, attributes, SS("_name"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_name' is required", "phalcon/di/service.zep", 304); - return; - } - ZEPHIR_OBS_VAR(definition); - if (!(zephir_array_isset_string_fetch(&definition, attributes, SS("_definition"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_definition' is required", "phalcon/di/service.zep", 308); - return; - } - ZEPHIR_OBS_VAR(shared); - if (!(zephir_array_isset_string_fetch(&shared, attributes, SS("_shared"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_shared' is required", "phalcon/di/service.zep", 312); - return; - } - object_init_ex(return_value, phalcon_di_service_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, name, definition, shared); + ZEPHIR_INIT_VAR(output); + ZVAL_STRING(output, "", 1); + ZEPHIR_CALL_FUNCTION(&_0, "func_get_args", &_1); zephir_check_call_status(); - RETURN_MM(); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/debug/dump.zep", 283); + for ( + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) + ) { + ZEPHIR_GET_HMKEY(key, _3, _2); + ZEPHIR_GET_HVALUE(value, _4); + ZEPHIR_INIT_LNVAR(_6); + ZEPHIR_CONCAT_SV(_6, "var ", key); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "one", &_7, value, _6); + zephir_check_call_status(); + zephir_concat_self(&output, _5 TSRMLS_CC); + } + RETURN_CCTOR(output); } @@ -53441,33 +54993,41 @@ static PHP_METHOD(Phalcon_Di_Service, __set_state) { #include +#include #include +#include -ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { +ZEPHIR_INIT_CLASS(Phalcon_Debug_Exception) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Debug, Exception, phalcon, debug_exception, phalcon_exception_ce, NULL, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __construct); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); +#ifdef HAVE_CONFIG_H +#endif -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); +#include -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); +#include +#include +#include -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); + +ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} @@ -53483,15 +55043,15 @@ ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { +static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; zval *_1; @@ -53500,16 +55060,16 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_MM_GROW(); - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, this_ptr, "__construct", &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, this_ptr, "__construct", &_0); zephir_check_call_status(); ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 10, 0 TSRMLS_CC); + zephir_create_array(_1, 21, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_VAR(_3); ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_VAR(_4); - ZVAL_STRING(_4, "Phalcon\\CLI\\Router", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_VAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); @@ -53522,7 +55082,7 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\CLI\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); @@ -53533,6 +55093,19 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "url", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Url", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); @@ -53559,6 +55132,45 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "response", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Response", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "cookies", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Response\\Cookies", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "request", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Request", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); @@ -53585,6 +55197,32 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "crypt", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Crypt", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); @@ -53598,424 +55236,253 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "flash", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Flash\\Direct", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "flashSession", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Flash\\Session", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "transactionManager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "tag", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Tag", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - -} - - - - -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - - return SUCCESS; - -} - -static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameter) { - - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zval *_2 = NULL; - zval *argument = NULL; - int position, ZEPHIR_LAST_CALL_STATUS; - zval *dependencyInjector, *position_param = NULL, *argument_param = NULL, *type, *name = NULL, *value, *instanceArguments, *_0 = NULL, _1 = zval_used_for_init; + zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "session", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Session\\Adapter\\Files", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("session"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Session\\Bag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("sessionBag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "transactions", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "assets", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Assets\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &dependencyInjector, &position_param, &argument_param); +} - position = zephir_get_intval(position_param); - argument = argument_param; - ZEPHIR_OBS_VAR(type); - if (!(zephir_array_isset_string_fetch(&type, argument, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_VAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_VAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_VAR(_2); - ZEPHIR_CONCAT_SVS(_2, "Argument at position ", &_1, " must have a type"); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 49 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - do { - if (ZEPHIR_IS_STRING(type, "service")) { - ZEPHIR_OBS_VAR(name); - if (!(zephir_array_isset_string_fetch(&name, argument, SS("name"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'name' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 59 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 62); - return; - } - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "parameter")) { - ZEPHIR_OBS_VAR(value); - if (!(zephir_array_isset_string_fetch(&value, argument, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'value' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 71 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(value); - } - if (ZEPHIR_IS_STRING(type, "instance")) { - ZEPHIR_OBS_NVAR(name); - if (!(zephir_array_isset_string_fetch(&name, argument, SS("className"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'className' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 81 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 85); - return; - } - ZEPHIR_OBS_VAR(instanceArguments); - if (zephir_array_isset_string_fetch(&instanceArguments, argument, SS("arguments"), 0 TSRMLS_CC)) { - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name, instanceArguments); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Unknown service type in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 104 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } while(0); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_MM_RESTORE(); +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("_dependencyInjector"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_di_injectionawareinterface_ce); + zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameters) { +static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - HashTable *_1; - HashPosition _0; - zval *arguments = NULL; - zval *dependencyInjector, *arguments_param = NULL, *position = NULL, *argument = NULL, *buildArguments, **_2, *_3 = NULL; + zval *dependencyInjector; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &dependencyInjector, &arguments_param); + zephir_fetch_params(0, 1, 0, &dependencyInjector); - arguments = arguments_param; + zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); - ZEPHIR_INIT_VAR(buildArguments); - array_init(buildArguments); - zephir_is_iterable(arguments, &_1, &_0, 0, 0, "phalcon/di/service/builder.zep", 119); - for ( - ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS - ; zephir_hash_move_forward_ex(_1, &_0) - ) { - ZEPHIR_GET_HMKEY(position, _1, _0); - ZEPHIR_GET_HVALUE(argument, _2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_4, dependencyInjector, position, argument); +} + +static PHP_METHOD(Phalcon_Di_Injectable, getDI) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *dependencyInjector = NULL; + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(dependencyInjector); + zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_0); zephir_check_call_status(); - zephir_array_append(&buildArguments, _3, PH_SEPARATE, "phalcon/di/service/builder.zep", 117); } - RETURN_CCTOR(buildArguments); + RETURN_CCTOR(dependencyInjector); } -static PHP_METHOD(Phalcon_Di_Service_Builder, build) { +static PHP_METHOD(Phalcon_Di_Injectable, setEventsManager) { - zephir_fcall_cache_entry *_10 = NULL; - HashTable *_6, *_12; - HashPosition _5, _11; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_15 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *definition = NULL; - zval *dependencyInjector, *definition_param = NULL, *parameters = NULL, *className, *arguments = NULL, *paramCalls = NULL, *methodPosition = NULL, *method = NULL, *methodName = NULL, *methodCall = NULL, *instance = NULL, *propertyPosition = NULL, *property = NULL, *propertyName = NULL, *propertyValue = NULL, *reflection = NULL, *_3 = NULL, **_7, *_8 = NULL, *_9 = NULL, **_13, *_14 = NULL; + zval *eventsManager; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &dependencyInjector, &definition_param, ¶meters); + zephir_fetch_params(0, 1, 0, &eventsManager); - definition = definition_param; - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); - } + zephir_update_property_this(this_ptr, SL("_eventsManager"), eventsManager TSRMLS_CC); - ZEPHIR_OBS_VAR(className); - if (!(zephir_array_isset_string_fetch(&className, definition, SS("className"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/di/service/builder.zep", 140); - return; +} + +static PHP_METHOD(Phalcon_Di_Injectable, getEventsManager) { + + + RETURN_MEMBER(this_ptr, "_eventsManager"); + +} + +static PHP_METHOD(Phalcon_Di_Injectable, __get) { + + zval *_4; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_7 = NULL; + zval *propertyName_param = NULL, *dependencyInjector = NULL, *service = NULL, *persistent = NULL, *_0, *_2 = NULL, *_3 = NULL, *_5 = NULL; + zval *propertyName = NULL, *_6; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &propertyName_param); + + if (unlikely(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters TSRMLS_CC)) { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_VAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, parameters TSRMLS_CC); - zephir_check_call_status(); - } - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); - zephir_check_call_status(); - } - } + + if (likely(Z_TYPE_P(propertyName_param) == IS_STRING)) { + zephir_get_strval(propertyName, propertyName_param); } else { - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, _3 TSRMLS_CC); - zephir_check_call_status(); - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); - zephir_check_call_status(); - } - } + ZEPHIR_INIT_VAR(propertyName); + ZVAL_EMPTY_STRING(propertyName); } - ZEPHIR_OBS_VAR(paramCalls); - if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("calls"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(instance) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 192); - return; - } - if (Z_TYPE_P(paramCalls) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 196); + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(dependencyInjector, _0); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); + zephir_check_call_status(); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services", "phalcon/di/injectable.zep", 127); return; } - zephir_is_iterable(paramCalls, &_6, &_5, 0, 0, "phalcon/di/service/builder.zep", 250); - for ( - ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS - ; zephir_hash_move_forward_ex(_6, &_5) - ) { - ZEPHIR_GET_HMKEY(methodPosition, _6, _5); - ZEPHIR_GET_HVALUE(method, _7); - if (Z_TYPE_P(method) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Method call must be an array on position ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 208 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(methodName); - if (!(zephir_array_isset_string_fetch(&methodName, method, SS("method"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The method name is required on position ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 215 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(methodCall); - zephir_create_array(methodCall, 2, 0 TSRMLS_CC); - zephir_array_fast_append(methodCall, instance); - zephir_array_fast_append(methodCall, methodName); - ZEPHIR_OBS_NVAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, method, SS("arguments"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(arguments) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Call arguments must be an array ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 226 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_fast_count_int(arguments TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(_8); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(_8, methodCall, _3); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_INIT_NVAR(_8); - ZEPHIR_CALL_USER_FUNC(_8, methodCall); - zephir_check_call_status(); - } } - ZEPHIR_OBS_NVAR(paramCalls); - if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("properties"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(instance) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 258); - return; - } - if (Z_TYPE_P(paramCalls) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 262); - return; - } - zephir_is_iterable(paramCalls, &_12, &_11, 0, 0, "phalcon/di/service/builder.zep", 297); - for ( - ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS - ; zephir_hash_move_forward_ex(_12, &_11) - ) { - ZEPHIR_GET_HMKEY(propertyPosition, _12, _11); - ZEPHIR_GET_HVALUE(property, _13); - if (Z_TYPE_P(property) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_14); - object_init_ex(_14, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Property must be an array on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _14, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_14, "phalcon/di/service/builder.zep", 274 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(propertyName); - if (!(zephir_array_isset_string_fetch(&propertyName, property, SS("name"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The property name is required on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 281 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(propertyValue); - if (!(zephir_array_isset_string_fetch(&propertyValue, property, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The property value is required on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 288 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_15, dependencyInjector, propertyPosition, propertyValue); - zephir_check_call_status(); - zephir_update_property_zval_zval(instance, propertyName, _3 TSRMLS_CC); - } + ZEPHIR_CALL_METHOD(&_2, dependencyInjector, "has", NULL, propertyName); + zephir_check_call_status(); + if (zephir_is_true(_2)) { + ZEPHIR_CALL_METHOD(&service, dependencyInjector, "getshared", NULL, propertyName); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, propertyName, service TSRMLS_CC); + RETURN_CCTOR(service); } - RETURN_CCTOR(instance); + if (ZEPHIR_IS_STRING(propertyName, "di")) { + zephir_update_property_zval(this_ptr, SL("di"), dependencyInjector TSRMLS_CC); + RETURN_CCTOR(dependencyInjector); + } + if (ZEPHIR_IS_STRING(propertyName, "persistent")) { + ZEPHIR_INIT_VAR(_4); + zephir_create_array(_4, 1, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_5); + zephir_get_class(_5, this_ptr, 0 TSRMLS_CC); + zephir_array_fast_append(_4, _5); + ZEPHIR_INIT_NVAR(_5); + ZVAL_STRING(_5, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_3, dependencyInjector, "get", NULL, _5, _4); + zephir_check_temp_parameter(_5); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(persistent, _3); + zephir_update_property_zval(this_ptr, SL("persistent"), persistent TSRMLS_CC); + RETURN_CCTOR(persistent); + } + ZEPHIR_INIT_VAR(_6); + ZEPHIR_CONCAT_SV(_6, "Access to undefined property ", propertyName); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", &_7, _6); + zephir_check_call_status(); + RETURN_MM_NULL(); } @@ -54027,20 +55494,22 @@ static PHP_METHOD(Phalcon_Di_Service_Builder, build) { #include -#include #include -#include -ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); + +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); + @@ -54055,136 +55524,347 @@ ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Events_Event) { +ZEPHIR_INIT_CLASS(Phalcon_Di_Service) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); - zend_declare_property_null(phalcon_events_event_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_events_event_ce, SL("_source"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_definition"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_events_event_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(phalcon_di_service_ce, SL("_shared"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(phalcon_events_event_ce, SL("_stopped"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(phalcon_di_service_ce, SL("_resolved"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(phalcon_events_event_ce, SL("_cancelable"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_sharedInstance"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_class_implements(phalcon_di_service_ce TSRMLS_CC, 1, phalcon_di_serviceinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Event, setType) { +static PHP_METHOD(Phalcon_Di_Service, __construct) { - zval *type; + zend_bool shared; + zval *name_param = NULL, *definition, *shared_param = NULL; + zval *name = NULL; - zephir_fetch_params(0, 1, 0, &type); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param); + + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + if (!shared_param) { + shared = 0; + } else { + shared = zephir_get_boolval(shared_param); + } - zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Events_Event, getType) { +static PHP_METHOD(Phalcon_Di_Service, getName) { - RETURN_MEMBER(this_ptr, "_type"); + RETURN_MEMBER(this_ptr, "_name"); } -static PHP_METHOD(Phalcon_Events_Event, getSource) { +static PHP_METHOD(Phalcon_Di_Service, setShared) { + zval *shared_param = NULL; + zend_bool shared; - RETURN_MEMBER(this_ptr, "_source"); + zephir_fetch_params(0, 1, 0, &shared_param); + + shared = zephir_get_boolval(shared_param); + + + zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, setData) { +static PHP_METHOD(Phalcon_Di_Service, isShared) { - zval *data; - zephir_fetch_params(0, 1, 0, &data); + RETURN_MEMBER(this_ptr, "_shared"); + +} +static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { + zval *sharedInstance; - zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + zephir_fetch_params(0, 1, 0, &sharedInstance); + + + + zephir_update_property_this(this_ptr, SL("_sharedInstance"), sharedInstance TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, getData) { +static PHP_METHOD(Phalcon_Di_Service, setDefinition) { + zval *definition; - RETURN_MEMBER(this_ptr, "_data"); + zephir_fetch_params(0, 1, 0, &definition); + + + + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, getCancelable) { +static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - RETURN_MEMBER(this_ptr, "_cancelable"); + RETURN_MEMBER(this_ptr, "_definition"); } -static PHP_METHOD(Phalcon_Events_Event, __construct) { +static PHP_METHOD(Phalcon_Di_Service, resolve) { - zend_bool cancelable; - zval *type_param = NULL, *source, *data = NULL, *cancelable_param = NULL; - zval *type = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_7 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zend_bool found; + zval *parameters = NULL, *dependencyInjector = NULL, *shared, *definition, *sharedInstance, *instance = NULL, *builder, *reflection = NULL, *_4, *_5, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); + zephir_fetch_params(1, 0, 2, ¶meters, &dependencyInjector); - if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + if (!parameters) { + parameters = ZEPHIR_GLOBAL(global_null); + } + if (!dependencyInjector) { + dependencyInjector = ZEPHIR_GLOBAL(global_null); } - if (likely(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(type, type_param); + + ZEPHIR_OBS_VAR(shared); + zephir_read_property_this(&shared, this_ptr, SL("_shared"), PH_NOISY_CC); + if (zephir_is_true(shared)) { + ZEPHIR_OBS_VAR(sharedInstance); + zephir_read_property_this(&sharedInstance, this_ptr, SL("_sharedInstance"), PH_NOISY_CC); + if (Z_TYPE_P(sharedInstance) != IS_NULL) { + RETURN_CCTOR(sharedInstance); + } + } + found = 1; + ZEPHIR_INIT_VAR(instance); + ZVAL_NULL(instance); + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) == IS_STRING) { + if (zephir_class_exists(definition, 1 TSRMLS_CC)) { + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters TSRMLS_CC)) { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_VAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, definition, parameters TSRMLS_CC); + zephir_check_call_status(); + } + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + found = 0; + } } else { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); + if (Z_TYPE_P(definition) == IS_OBJECT) { + if (zephir_instance_of_ev(definition, zend_ce_closure TSRMLS_CC)) { + if (Z_TYPE_P(parameters) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_USER_FUNC_ARRAY(instance, definition, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_USER_FUNC(instance, definition); + zephir_check_call_status(); + } + } else { + ZEPHIR_CPY_WRT(instance, definition); + } + } else { + if (Z_TYPE_P(definition) == IS_ARRAY) { + ZEPHIR_INIT_VAR(builder); + object_init_ex(builder, phalcon_di_service_builder_ce); + if (zephir_has_constructor(builder TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, builder, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&instance, builder, "build", &_3, dependencyInjector, definition, parameters); + zephir_check_call_status(); + } else { + found = 0; + } + } } - if (!data) { - data = ZEPHIR_GLOBAL(global_null); + if (found == 0) { + ZEPHIR_INIT_VAR(_4); + object_init_ex(_4, phalcon_di_exception_ce); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(_6); + ZEPHIR_CONCAT_SVS(_6, "Service '", _5, "' cannot be resolved"); + ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_7, _6); + zephir_check_call_status(); + zephir_throw_exception_debug(_4, "phalcon/di/service.zep", 212 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - if (!cancelable_param) { - cancelable = 1; - } else { - cancelable = zephir_get_boolval(cancelable_param); + if (zephir_is_true(shared)) { + zephir_update_property_this(this_ptr, SL("_sharedInstance"), instance TSRMLS_CC); } + zephir_update_property_this(this_ptr, SL("_resolved"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + RETURN_CCTOR(instance); + +} +static PHP_METHOD(Phalcon_Di_Service, setParameter) { - zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_source"), source TSRMLS_CC); - if (Z_TYPE_P(data) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + zval *parameter = NULL; + zval *position_param = NULL, *parameter_param = NULL, *definition, *arguments = NULL; + int position; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); + + position = zephir_get_intval(position_param); + parameter = parameter_param; + + + + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/di/service.zep", 236); + return; } - if (cancelable != 1) { - zephir_update_property_this(this_ptr, SL("_cancelable"), cancelable ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_OBS_VAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE, "phalcon/di/service.zep", 243); + } else { + ZEPHIR_INIT_NVAR(arguments); + zephir_create_array(arguments, 1, 0 TSRMLS_CC); + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY, "phalcon/di/service.zep", 245); } - ZEPHIR_MM_RESTORE(); + zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Events_Event, stop) { +static PHP_METHOD(Phalcon_Di_Service, getParameter) { - zval *_0; + zval *position_param = NULL, *definition, *arguments, *parameter; + int position; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &position_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_cancelable"), PH_NOISY_CC); - if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/events/event.zep", 93); + position = zephir_get_intval(position_param); + + + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/di/service.zep", 273); return; } - zephir_update_property_this(this_ptr, SL("_stopped"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 1 TSRMLS_CC)) { + if (zephir_array_isset_long_fetch(¶meter, arguments, position, 1 TSRMLS_CC)) { + RETURN_CTOR(parameter); + } + } + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Events_Event, isStopped) { +static PHP_METHOD(Phalcon_Di_Service, isResolved) { - RETURN_MEMBER(this_ptr, "_stopped"); + RETURN_MEMBER(this_ptr, "_resolved"); + +} + +static PHP_METHOD(Phalcon_Di_Service, __set_state) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, *name, *definition, *shared; + zval *attributes = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + + attributes = attributes_param; + + + + ZEPHIR_OBS_VAR(name); + if (!(zephir_array_isset_string_fetch(&name, attributes, SS("_name"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_name' is required", "phalcon/di/service.zep", 304); + return; + } + ZEPHIR_OBS_VAR(definition); + if (!(zephir_array_isset_string_fetch(&definition, attributes, SS("_definition"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_definition' is required", "phalcon/di/service.zep", 308); + return; + } + ZEPHIR_OBS_VAR(shared); + if (!(zephir_array_isset_string_fetch(&shared, attributes, SS("_shared"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_shared' is required", "phalcon/di/service.zep", 312); + return; + } + object_init_ex(return_value, phalcon_di_service_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, name, definition, shared); + zephir_check_call_status(); + RETURN_MM(); } @@ -54200,17 +55880,29 @@ static PHP_METHOD(Phalcon_Events_Event, isStopped) { -ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) { +ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __construct); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getName); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); @@ -54226,14 +55918,162 @@ ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); -ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); return SUCCESS; } +static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { + + zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; + zval *_1; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_6 = NULL; + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, this_ptr, "__construct", &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 10, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_VAR(_3); + ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_VAR(_4); + ZVAL_STRING(_4, "Phalcon\\CLI\\Router", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_VAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\CLI\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "modelsMetadata", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\MetaData\\Memory", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "escaper", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Escaper", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "transactionManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + @@ -54248,234 +56088,487 @@ ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); - - zend_declare_property_null(phalcon_events_manager_ce, SL("_events"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("_collect"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("_enablePriorities"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); +ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - zend_declare_property_null(phalcon_events_manager_ce, SL("_responses"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - zend_class_implements(phalcon_events_manager_ce TSRMLS_CC, 1, phalcon_events_managerinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, attach) { +static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameter) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - int priority, ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, *priority_param = NULL, *priorityQueue = NULL, *_0, *_1, *_2 = NULL; - zval *eventType = NULL; + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zval *_2 = NULL; + zval *argument = NULL; + int position, ZEPHIR_LAST_CALL_STATUS; + zval *dependencyInjector, *position_param = NULL, *argument_param = NULL, *type, *name = NULL, *value, *instanceArguments, *_0 = NULL, _1 = zval_used_for_init; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); - - if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 3, 0, &dependencyInjector, &position_param, &argument_param); - if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(eventType); - ZVAL_EMPTY_STRING(eventType); - } - if (!priority_param) { - priority = 100; - } else { - if (unlikely(Z_TYPE_P(priority_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be a long/integer") TSRMLS_CC); - RETURN_MM_NULL(); - } + position = zephir_get_intval(position_param); + argument = argument_param; - priority = Z_LVAL_P(priority_param); - } - if (Z_TYPE_P(handler) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 56); + ZEPHIR_OBS_VAR(type); + if (!(zephir_array_isset_string_fetch(&type, argument, SS("type"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_VAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SVS(_2, "Argument at position ", &_1, " must have a type"); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 49 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_OBS_VAR(priorityQueue); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); - if (!(zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC))) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_enablePriorities"), PH_NOISY_CC); - ZEPHIR_INIT_NVAR(priorityQueue); - if (zephir_is_true(_1)) { - object_init_ex(priorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(priorityQueue TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "__construct", NULL); + do { + if (ZEPHIR_IS_STRING(type, "service")) { + ZEPHIR_OBS_VAR(name); + if (!(zephir_array_isset_string_fetch(&name, argument, SS("name"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'name' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 59 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, 1); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", &_3, _2); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 62); + return; + } + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); - } else { - array_init(priorityQueue); + RETURN_MM(); } - } - if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(_2); - ZVAL_LONG(_2, priority); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "insert", &_4, handler, _2); + if (ZEPHIR_IS_STRING(type, "parameter")) { + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_string_fetch(&value, argument, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'value' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 71 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(value); + } + if (ZEPHIR_IS_STRING(type, "instance")) { + ZEPHIR_OBS_NVAR(name); + if (!(zephir_array_isset_string_fetch(&name, argument, SS("className"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'className' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 81 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 85); + return; + } + ZEPHIR_OBS_VAR(instanceArguments); + if (zephir_array_isset_string_fetch(&instanceArguments, argument, SS("arguments"), 0 TSRMLS_CC)) { + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name, instanceArguments); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Unknown service type in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); zephir_check_call_status(); - } else { - zephir_array_append(&priorityQueue, handler, PH_SEPARATE, "phalcon/events/manager.zep", 82); - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); - } + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 104 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Events_Manager, detach) { +static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameters) { - zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_10 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, *priorityQueue, *newPriorityQueue, *key = NULL, *data = NULL, *_0, *_1 = NULL, *_3 = NULL, *_6, *_7, *_8; - zval *eventType = NULL; + HashTable *_1; + HashPosition _0; + zval *arguments = NULL; + zval *dependencyInjector, *arguments_param = NULL, *position = NULL, *argument = NULL, *buildArguments, **_2, *_3 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &eventType_param, &handler); + zephir_fetch_params(1, 2, 0, &dependencyInjector, &arguments_param); - if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + arguments = arguments_param; + + + + ZEPHIR_INIT_VAR(buildArguments); + array_init(buildArguments); + zephir_is_iterable(arguments, &_1, &_0, 0, 0, "phalcon/di/service/builder.zep", 119); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HMKEY(position, _1, _0); + ZEPHIR_GET_HVALUE(argument, _2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_4, dependencyInjector, position, argument); + zephir_check_call_status(); + zephir_array_append(&buildArguments, _3, PH_SEPARATE, "phalcon/di/service/builder.zep", 117); } + RETURN_CCTOR(buildArguments); - if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(eventType); - ZVAL_EMPTY_STRING(eventType); +} + +static PHP_METHOD(Phalcon_Di_Service_Builder, build) { + + zephir_fcall_cache_entry *_10 = NULL; + HashTable *_6, *_12; + HashPosition _5, _11; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_15 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *definition = NULL; + zval *dependencyInjector, *definition_param = NULL, *parameters = NULL, *className, *arguments = NULL, *paramCalls = NULL, *methodPosition = NULL, *method = NULL, *methodName = NULL, *methodCall = NULL, *instance = NULL, *propertyPosition = NULL, *property = NULL, *propertyName = NULL, *propertyValue = NULL, *reflection = NULL, *_3 = NULL, **_7, *_8 = NULL, *_9 = NULL, **_13, *_14 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &dependencyInjector, &definition_param, ¶meters); + + definition = definition_param; + + if (!parameters) { + parameters = ZEPHIR_GLOBAL(global_null); } - if (Z_TYPE_P(handler) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 99); + ZEPHIR_OBS_VAR(className); + if (!(zephir_array_isset_string_fetch(&className, definition, SS("className"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/di/service/builder.zep", 140); return; } - ZEPHIR_OBS_VAR(priorityQueue); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); - if (zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC)) { - if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { - ZEPHIR_INIT_VAR(newPriorityQueue); - object_init_ex(newPriorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(newPriorityQueue TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "__construct", NULL); + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters TSRMLS_CC)) { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_VAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, parameters TSRMLS_CC); zephir_check_call_status(); } - ZEPHIR_INIT_VAR(_1); - ZVAL_LONG(_1, 1); - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "setextractflags", &_2, _1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_1); - ZVAL_LONG(_1, 3); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", NULL, _1); + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + ZEPHIR_OBS_VAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "top", NULL); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, _3 TSRMLS_CC); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, priorityQueue, "valid", NULL); + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); zephir_check_call_status(); - if (!(zephir_is_true(_3))) { - break; - } - ZEPHIR_CALL_METHOD(&data, priorityQueue, "current", &_4); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "next", &_5); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); zephir_check_call_status(); - zephir_array_fetch_string(&_6, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 116 TSRMLS_CC); - if (!ZEPHIR_IS_IDENTICAL(_6, handler)) { - zephir_array_fetch_string(&_7, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); - zephir_array_fetch_string(&_8, data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "insert", &_9, _7, _8); + } + } + } + ZEPHIR_OBS_VAR(paramCalls); + if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("calls"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(instance) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 192); + return; + } + if (Z_TYPE_P(paramCalls) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 196); + return; + } + zephir_is_iterable(paramCalls, &_6, &_5, 0, 0, "phalcon/di/service/builder.zep", 250); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HMKEY(methodPosition, _6, _5); + ZEPHIR_GET_HVALUE(method, _7); + if (Z_TYPE_P(method) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Method call must be an array on position ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 208 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(methodName); + if (!(zephir_array_isset_string_fetch(&methodName, method, SS("method"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The method name is required on position ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 215 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(methodCall); + zephir_create_array(methodCall, 2, 0 TSRMLS_CC); + zephir_array_fast_append(methodCall, instance); + zephir_array_fast_append(methodCall, methodName); + ZEPHIR_OBS_NVAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, method, SS("arguments"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(arguments) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Call arguments must be an array ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 226 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_fast_count_int(arguments TSRMLS_CC)) { + ZEPHIR_INIT_NVAR(_8); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(_8, methodCall, _3); zephir_check_call_status(); + continue; } } - zephir_update_property_array(this_ptr, SL("_events"), eventType, newPriorityQueue TSRMLS_CC); - } else { - ZEPHIR_CALL_FUNCTION(&key, "array_search", &_10, handler, priorityQueue, ZEPHIR_GLOBAL(global_true)); + ZEPHIR_INIT_NVAR(_8); + ZEPHIR_CALL_USER_FUNC(_8, methodCall); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(key)) { - zephir_array_unset(&priorityQueue, key, PH_SEPARATE); + } + } + ZEPHIR_OBS_NVAR(paramCalls); + if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("properties"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(instance) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 258); + return; + } + if (Z_TYPE_P(paramCalls) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 262); + return; + } + zephir_is_iterable(paramCalls, &_12, &_11, 0, 0, "phalcon/di/service/builder.zep", 297); + for ( + ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS + ; zephir_hash_move_forward_ex(_12, &_11) + ) { + ZEPHIR_GET_HMKEY(propertyPosition, _12, _11); + ZEPHIR_GET_HVALUE(property, _13); + if (Z_TYPE_P(property) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_14); + object_init_ex(_14, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Property must be an array on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _14, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_14, "phalcon/di/service/builder.zep", 274 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + ZEPHIR_OBS_NVAR(propertyName); + if (!(zephir_array_isset_string_fetch(&propertyName, property, SS("name"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The property name is required on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 281 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(propertyValue); + if (!(zephir_array_isset_string_fetch(&propertyValue, property, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The property value is required on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 288 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_15, dependencyInjector, propertyPosition, propertyValue); + zephir_check_call_status(); + zephir_update_property_zval_zval(instance, propertyName, _3 TSRMLS_CC); } } - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(instance); } -static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) { - zval *enablePriorities_param = NULL; - zend_bool enablePriorities; - zephir_fetch_params(0, 1, 0, &enablePriorities_param); - enablePriorities = zephir_get_boolval(enablePriorities_param); +#ifdef HAVE_CONFIG_H +#endif +#include + +#include +#include +#include - zephir_update_property_this(this_ptr, SL("_enablePriorities"), enablePriorities ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + + +ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) { - RETURN_MEMBER(this_ptr, "_enablePriorities"); + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Event) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); + + zend_declare_property_null(phalcon_events_event_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_event_ce, SL("_source"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_event_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_event_ce, SL("_stopped"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_event_ce, SL("_cancelable"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, collectResponses) { +static PHP_METHOD(Phalcon_Events_Event, setType) { - zval *collect_param = NULL; - zend_bool collect; + zval *type; - zephir_fetch_params(0, 1, 0, &collect_param); + zephir_fetch_params(0, 1, 0, &type); - collect = zephir_get_boolval(collect_param); - zephir_update_property_this(this_ptr, SL("_collect"), collect ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Manager, isCollecting) { +static PHP_METHOD(Phalcon_Events_Event, getType) { - RETURN_MEMBER(this_ptr, "_collect"); + RETURN_MEMBER(this_ptr, "_type"); } -static PHP_METHOD(Phalcon_Events_Manager, getResponses) { +static PHP_METHOD(Phalcon_Events_Event, getSource) { - RETURN_MEMBER(this_ptr, "_responses"); + RETURN_MEMBER(this_ptr, "_source"); } -static PHP_METHOD(Phalcon_Events_Manager, detachAll) { +static PHP_METHOD(Phalcon_Events_Event, setData) { - zval *type_param = NULL, *_0, *_1; + zval *data; + + zephir_fetch_params(0, 1, 0, &data); + + + + zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Event, getData) { + + + RETURN_MEMBER(this_ptr, "_data"); + +} + +static PHP_METHOD(Phalcon_Events_Event, getCancelable) { + + + RETURN_MEMBER(this_ptr, "_cancelable"); + +} + +static PHP_METHOD(Phalcon_Events_Event, __construct) { + + zend_bool cancelable; + zval *type_param = NULL, *source, *data = NULL, *cancelable_param = NULL; zval *type = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &type_param); + zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); - if (!type_param) { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); - } else { if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); RETURN_MM_NULL(); @@ -54487,10 +56580,352 @@ static PHP_METHOD(Phalcon_Events_Manager, detachAll) { ZEPHIR_INIT_VAR(type); ZVAL_EMPTY_STRING(type); } + if (!data) { + data = ZEPHIR_GLOBAL(global_null); } - - - if (ZEPHIR_IS_STRING_IDENTICAL(type, "")) { + if (!cancelable_param) { + cancelable = 1; + } else { + cancelable = zephir_get_boolval(cancelable_param); + } + + + zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_source"), source TSRMLS_CC); + if (Z_TYPE_P(data) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + } + if (cancelable != 1) { + zephir_update_property_this(this_ptr, SL("_cancelable"), cancelable ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Event, stop) { + + zval *_0; + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_cancelable"), PH_NOISY_CC); + if (!(zephir_is_true(_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/events/event.zep", 93); + return; + } + zephir_update_property_this(this_ptr, SL("_stopped"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Event, isStopped) { + + + RETURN_MEMBER(this_ptr, "_stopped"); + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); + +ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); + + zend_declare_property_null(phalcon_events_manager_ce, SL("_events"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_manager_ce, SL("_collect"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_manager_ce, SL("_enablePriorities"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_manager_ce, SL("_responses"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_events_manager_ce TSRMLS_CC, 1, phalcon_events_managerinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Events_Manager, attach) { + + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; + int priority, ZEPHIR_LAST_CALL_STATUS; + zval *eventType_param = NULL, *handler, *priority_param = NULL, *priorityQueue = NULL, *_0, *_1, *_2 = NULL; + zval *eventType = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); + + if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { + zephir_get_strval(eventType, eventType_param); + } else { + ZEPHIR_INIT_VAR(eventType); + ZVAL_EMPTY_STRING(eventType); + } + if (!priority_param) { + priority = 100; + } else { + if (unlikely(Z_TYPE_P(priority_param) != IS_LONG)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be a long/integer") TSRMLS_CC); + RETURN_MM_NULL(); + } + + priority = Z_LVAL_P(priority_param); + } + + + if (Z_TYPE_P(handler) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 56); + return; + } + ZEPHIR_OBS_VAR(priorityQueue); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC))) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_enablePriorities"), PH_NOISY_CC); + ZEPHIR_INIT_NVAR(priorityQueue); + if (zephir_is_true(_1)) { + object_init_ex(priorityQueue, spl_ce_SplPriorityQueue); + if (zephir_has_constructor(priorityQueue TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(_2); + ZVAL_LONG(_2, 1); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", &_3, _2); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } else { + array_init(priorityQueue); + } + } + if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(_2); + ZVAL_LONG(_2, priority); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "insert", &_4, handler, _2); + zephir_check_call_status(); + } else { + zephir_array_append(&priorityQueue, handler, PH_SEPARATE, "phalcon/events/manager.zep", 82); + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Manager, detach) { + + zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_10 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *eventType_param = NULL, *handler, *priorityQueue, *newPriorityQueue, *key = NULL, *data = NULL, *_0, *_1 = NULL, *_3 = NULL, *_6, *_7, *_8; + zval *eventType = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &eventType_param, &handler); + + if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { + zephir_get_strval(eventType, eventType_param); + } else { + ZEPHIR_INIT_VAR(eventType); + ZVAL_EMPTY_STRING(eventType); + } + + + if (Z_TYPE_P(handler) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 99); + return; + } + ZEPHIR_OBS_VAR(priorityQueue); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); + if (zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC)) { + if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { + ZEPHIR_INIT_VAR(newPriorityQueue); + object_init_ex(newPriorityQueue, spl_ce_SplPriorityQueue); + if (zephir_has_constructor(newPriorityQueue TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(_1); + ZVAL_LONG(_1, 1); + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "setextractflags", &_2, _1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_1); + ZVAL_LONG(_1, 3); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", NULL, _1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "top", NULL); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, priorityQueue, "valid", NULL); + zephir_check_call_status(); + if (!(zephir_is_true(_3))) { + break; + } + ZEPHIR_CALL_METHOD(&data, priorityQueue, "current", &_4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "next", &_5); + zephir_check_call_status(); + zephir_array_fetch_string(&_6, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 116 TSRMLS_CC); + if (!ZEPHIR_IS_IDENTICAL(_6, handler)) { + zephir_array_fetch_string(&_7, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); + zephir_array_fetch_string(&_8, data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "insert", &_9, _7, _8); + zephir_check_call_status(); + } + } + zephir_update_property_array(this_ptr, SL("_events"), eventType, newPriorityQueue TSRMLS_CC); + } else { + ZEPHIR_CALL_FUNCTION(&key, "array_search", &_10, handler, priorityQueue, ZEPHIR_GLOBAL(global_true)); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(key)) { + zephir_array_unset(&priorityQueue, key, PH_SEPARATE); + } + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) { + + zval *enablePriorities_param = NULL; + zend_bool enablePriorities; + + zephir_fetch_params(0, 1, 0, &enablePriorities_param); + + enablePriorities = zephir_get_boolval(enablePriorities_param); + + + zephir_update_property_this(this_ptr, SL("_enablePriorities"), enablePriorities ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) { + + + RETURN_MEMBER(this_ptr, "_enablePriorities"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, collectResponses) { + + zval *collect_param = NULL; + zend_bool collect; + + zephir_fetch_params(0, 1, 0, &collect_param); + + collect = zephir_get_boolval(collect_param); + + + zephir_update_property_this(this_ptr, SL("_collect"), collect ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Manager, isCollecting) { + + + RETURN_MEMBER(this_ptr, "_collect"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, getResponses) { + + + RETURN_MEMBER(this_ptr, "_responses"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, detachAll) { + + zval *type_param = NULL, *_0, *_1; + zval *type = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &type_param); + + if (!type_param) { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } else { + if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(type, type_param); + } else { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } + } + + + if (ZEPHIR_IS_STRING_IDENTICAL(type, "")) { zephir_update_property_this(this_ptr, SL("_events"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } else { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); @@ -58394,8 +60829,8 @@ static PHP_METHOD(Phalcon_Http_Request, getDI) { static PHP_METHOD(Phalcon_Http_Request, get) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3, _4; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *request = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_REQUEST, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_REQUEST; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58436,68 +60871,17 @@ static PHP_METHOD(Phalcon_Http_Request, get) { zephir_get_global(&_REQUEST, SS("_REQUEST") TSRMLS_CC); - ZEPHIR_CPY_WRT(request, _REQUEST); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, request, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 96); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - _4 = _3; - if (!(_4)) { - _4 = ZEPHIR_IS_FALSE_IDENTICAL(value); - } - if (_4) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(request); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _REQUEST, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } static PHP_METHOD(Phalcon_Http_Request, getPost) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *post = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_POST, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_POST; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58538,56 +60922,9 @@ static PHP_METHOD(Phalcon_Http_Request, getPost) { zephir_get_global(&_POST, SS("_POST") TSRMLS_CC); - ZEPHIR_CPY_WRT(post, _POST); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, post, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 148); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(post); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _POST, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } @@ -58595,8 +60932,8 @@ static PHP_METHOD(Phalcon_Http_Request, getPut) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; - zend_bool notAllowEmpty, noRecursive, _6; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *put, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_0, _1, *_3, *_4 = NULL, *_5; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *put, *_0, _1; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58646,63 +60983,17 @@ static PHP_METHOD(Phalcon_Http_Request, getPut) { ZEPHIR_CALL_FUNCTION(NULL, "parse_str", &_2, _0, put); Z_UNSET_ISREF_P(put); zephir_check_call_status(); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, put, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _3 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _3); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 200); - return; - } - ZEPHIR_INIT_VAR(_5); - ZVAL_STRING(_5, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_4, dependencyInjector, "getshared", NULL, _5); - zephir_check_temp_parameter(_5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _4); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_4, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _4); - _6 = ZEPHIR_IS_EMPTY(value); - if (_6) { - _6 = notAllowEmpty == 1; - } - if (_6) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _6 = ZEPHIR_IS_EMPTY(value); - if (_6) { - _6 = notAllowEmpty == 1; - } - if (_6) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(put); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, put, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } static PHP_METHOD(Phalcon_Http_Request, getQuery) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *get = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_GET, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_GET; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58743,56 +61034,97 @@ static PHP_METHOD(Phalcon_Http_Request, getQuery) { zephir_get_global(&_GET, SS("_GET") TSRMLS_CC); - ZEPHIR_CPY_WRT(get, _GET); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, get, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 254); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _GET, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Http_Request, getHelper) { + + int ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive, _3; + zval *name = NULL; + zval *source_param = NULL, *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_0, *_1 = NULL, *_2; + zval *source = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 5, &source_param, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + + zephir_get_arrval(source, source_param); + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + } + if (!filters) { + filters = ZEPHIR_GLOBAL(global_null); + } + if (!defaultValue) { + defaultValue = ZEPHIR_GLOBAL(global_null); + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } + + + if (ZEPHIR_IS_STRING_IDENTICAL(name, "")) { + RETURN_CTOR(source); + } + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_fetch(&value, source, name, 0 TSRMLS_CC))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + if (Z_TYPE_P(filters) != IS_NULL) { + ZEPHIR_OBS_VAR(filter); + zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); + if (Z_TYPE_P(filter) != IS_OBJECT) { + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(dependencyInjector, _0); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 168); + return; } + ZEPHIR_INIT_VAR(_2); + ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); + zephir_check_temp_parameter(_2); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(filter, _1); + zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); } + ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(value, _1); + } + _3 = ZEPHIR_IS_EMPTY(value); + if (_3) { + _3 = notAllowEmpty == 1; + } + if (_3) { RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); } - RETURN_CCTOR(get); + RETURN_CCTOR(value); } @@ -59011,7 +61343,7 @@ static PHP_METHOD(Phalcon_Http_Request, isAjax) { zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); _0 = zephir_array_isset_string(_SERVER, SS("HTTP_X_REQUESTED_WITH")); if (_0) { - zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_REQUESTED_WITH"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 372 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_REQUESTED_WITH"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 274 TSRMLS_CC); _0 = ZEPHIR_IS_STRING_IDENTICAL(_1, "XMLHttpRequest"); } RETURN_BOOL(_0); @@ -59032,7 +61364,7 @@ static PHP_METHOD(Phalcon_Http_Request, isSoapRequested) { ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL); zephir_check_call_status(); if (!(ZEPHIR_IS_EMPTY(contentType))) { - RETURN_MM_BOOL(zephir_memnstr_str(contentType, SL("application/soap+xml"), "phalcon/http/request.zep", 387)); + RETURN_MM_BOOL(zephir_memnstr_str(contentType, SL("application/soap+xml"), "phalcon/http/request.zep", 289)); } } RETURN_MM_BOOL(0); @@ -59226,10 +61558,10 @@ static PHP_METHOD(Phalcon_Http_Request, getClientAddress) { zephir_array_isset_string_fetch(&address, _SERVER, SS("REMOTE_ADDR"), 0 TSRMLS_CC); } if (Z_TYPE_P(address) == IS_STRING) { - if (zephir_memnstr_str(address, SL(","), "phalcon/http/request.zep", 547)) { + if (zephir_memnstr_str(address, SL(","), "phalcon/http/request.zep", 449)) { ZEPHIR_INIT_VAR(_0); zephir_fast_explode_str(_0, SL(","), address, LONG_MAX TSRMLS_CC); - zephir_array_fetch_long(&_1, _0, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 551 TSRMLS_CC); + zephir_array_fetch_long(&_1, _0, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 453 TSRMLS_CC); RETURN_CTOR(_1); } RETURN_CCTOR(address); @@ -59283,7 +61615,7 @@ static PHP_METHOD(Phalcon_Http_Request, isMethod) { RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(methods, httpMethod)); } else { if (Z_TYPE_P(methods) == IS_ARRAY) { - zephir_is_iterable(methods, &_2, &_1, 0, 0, "phalcon/http/request.zep", 603); + zephir_is_iterable(methods, &_2, &_1, 0, 0, "phalcon/http/request.zep", 505); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -59421,7 +61753,7 @@ static PHP_METHOD(Phalcon_Http_Request, hasFiles) { if (Z_TYPE_P(files) != IS_ARRAY) { RETURN_MM_LONG(0); } - zephir_is_iterable(files, &_1, &_0, 0, 0, "phalcon/http/request.zep", 693); + zephir_is_iterable(files, &_1, &_0, 0, 0, "phalcon/http/request.zep", 595); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59467,7 +61799,7 @@ static PHP_METHOD(Phalcon_Http_Request, hasFileHelper) { if (Z_TYPE_P(data) != IS_ARRAY) { RETURN_MM_LONG(1); } - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/http/request.zep", 720); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/http/request.zep", 622); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59499,16 +61831,16 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { HashTable *_1, *_11; HashPosition _0, _10; zval *files; - zval *notErrored_param = NULL, *superFiles = NULL, *prefix = NULL, *input = NULL, *smoothInput = NULL, *file = NULL, *dataFile = NULL, *_FILES, **_2, *_3 = NULL, *_4, *_5, *_6, *_7, *_8, **_12, *_14, *_15 = NULL, *_16 = NULL, *_17; - zend_bool notErrored, _13; + zval *onlySuccessful_param = NULL, *superFiles = NULL, *prefix = NULL, *input = NULL, *smoothInput = NULL, *file = NULL, *dataFile = NULL, *_FILES, **_2, *_3 = NULL, *_4, *_5, *_6, *_7, *_8, **_12, *_14, *_15 = NULL, *_16 = NULL, *_17; + zend_bool onlySuccessful, _13; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¬Errored_param); + zephir_fetch_params(1, 0, 1, &onlySuccessful_param); - if (!notErrored_param) { - notErrored = 0; + if (!onlySuccessful_param) { + onlySuccessful = 0; } else { - notErrored = zephir_get_boolval(notErrored_param); + onlySuccessful = zephir_get_boolval(onlySuccessful_param); } ZEPHIR_INIT_VAR(files); array_init(files); @@ -59517,7 +61849,7 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { zephir_get_global(&_FILES, SS("_FILES") TSRMLS_CC); ZEPHIR_CPY_WRT(superFiles, _FILES); if (zephir_fast_count_int(superFiles TSRMLS_CC) > 0) { - zephir_is_iterable(superFiles, &_1, &_0, 0, 0, "phalcon/http/request.zep", 758); + zephir_is_iterable(superFiles, &_1, &_0, 0, 0, "phalcon/http/request.zep", 660); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59525,56 +61857,56 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { ZEPHIR_GET_HMKEY(prefix, _1, _0); ZEPHIR_GET_HVALUE(input, _2); ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, input, SL("name"), PH_NOISY, "phalcon/http/request.zep", 736 TSRMLS_CC); + zephir_array_fetch_string(&_3, input, SL("name"), PH_NOISY, "phalcon/http/request.zep", 638 TSRMLS_CC); if (Z_TYPE_P(_3) == IS_ARRAY) { - zephir_array_fetch_string(&_4, input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_5, input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_6, input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_7, input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_8, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); + zephir_array_fetch_string(&_4, input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_5, input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_6, input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_7, input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_8, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_9, _4, _5, _6, _7, _8, prefix); zephir_check_call_status(); - zephir_is_iterable(smoothInput, &_11, &_10, 0, 0, "phalcon/http/request.zep", 752); + zephir_is_iterable(smoothInput, &_11, &_10, 0, 0, "phalcon/http/request.zep", 654); for ( ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS ; zephir_hash_move_forward_ex(_11, &_10) ) { ZEPHIR_GET_HVALUE(file, _12); - _13 = notErrored == 0; + _13 = onlySuccessful == 0; if (!(_13)) { - zephir_array_fetch_string(&_14, file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 740 TSRMLS_CC); + zephir_array_fetch_string(&_14, file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 642 TSRMLS_CC); _13 = ZEPHIR_IS_LONG(_14, 0); } if (_13) { ZEPHIR_INIT_NVAR(dataFile); zephir_create_array(dataFile, 5, 0 TSRMLS_CC); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("name"), PH_NOISY, "phalcon/http/request.zep", 742 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("name"), PH_NOISY, "phalcon/http/request.zep", 644 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("name"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("type"), PH_NOISY, "phalcon/http/request.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("type"), PH_NOISY, "phalcon/http/request.zep", 645 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("type"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("tmp_name"), PH_NOISY, "phalcon/http/request.zep", 744 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("tmp_name"), PH_NOISY, "phalcon/http/request.zep", 646 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("tmp_name"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("size"), PH_NOISY, "phalcon/http/request.zep", 745 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("size"), PH_NOISY, "phalcon/http/request.zep", 647 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("size"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("error"), PH_NOISY, "phalcon/http/request.zep", 747 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("error"), PH_NOISY, "phalcon/http/request.zep", 649 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("error"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_16); object_init_ex(_16, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_17, file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 749 TSRMLS_CC); + zephir_array_fetch_string(&_17, file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 651 TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, _16, "__construct", &_18, dataFile, _17); zephir_check_call_status(); - zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 749); + zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 651); } } } else { - _13 = notErrored == 0; + _13 = onlySuccessful == 0; if (!(_13)) { - zephir_array_fetch_string(&_4, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 753 TSRMLS_CC); + zephir_array_fetch_string(&_4, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 655 TSRMLS_CC); _13 = ZEPHIR_IS_LONG(_4, 0); } if (_13) { @@ -59582,7 +61914,7 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { object_init_ex(_16, phalcon_http_request_file_ce); ZEPHIR_CALL_METHOD(NULL, _16, "__construct", &_18, input, prefix); zephir_check_call_status(); - zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 754); + zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 656); } } } @@ -59619,7 +61951,7 @@ static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { ZEPHIR_INIT_VAR(files); array_init(files); - zephir_is_iterable(names, &_1, &_0, 0, 0, "phalcon/http/request.zep", 796); + zephir_is_iterable(names, &_1, &_0, 0, 0, "phalcon/http/request.zep", 698); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59633,35 +61965,35 @@ static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { zephir_create_array(_3, 6, 0 TSRMLS_CC); zephir_array_update_string(&_3, SL("name"), &name, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, types, idx, PH_NOISY, "phalcon/http/request.zep", 779 TSRMLS_CC); + zephir_array_fetch(&_4, types, idx, PH_NOISY, "phalcon/http/request.zep", 681 TSRMLS_CC); zephir_array_update_string(&_3, SL("type"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, tmp_names, idx, PH_NOISY, "phalcon/http/request.zep", 780 TSRMLS_CC); + zephir_array_fetch(&_4, tmp_names, idx, PH_NOISY, "phalcon/http/request.zep", 682 TSRMLS_CC); zephir_array_update_string(&_3, SL("tmp_name"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, sizes, idx, PH_NOISY, "phalcon/http/request.zep", 781 TSRMLS_CC); + zephir_array_fetch(&_4, sizes, idx, PH_NOISY, "phalcon/http/request.zep", 683 TSRMLS_CC); zephir_array_update_string(&_3, SL("size"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, errors, idx, PH_NOISY, "phalcon/http/request.zep", 782 TSRMLS_CC); + zephir_array_fetch(&_4, errors, idx, PH_NOISY, "phalcon/http/request.zep", 684 TSRMLS_CC); zephir_array_update_string(&_3, SL("error"), &_4, PH_COPY | PH_SEPARATE); zephir_array_update_string(&_3, SL("key"), &p, PH_COPY | PH_SEPARATE); - zephir_array_append(&files, _3, PH_SEPARATE, "phalcon/http/request.zep", 784); + zephir_array_append(&files, _3, PH_SEPARATE, "phalcon/http/request.zep", 686); } if (Z_TYPE_P(name) == IS_ARRAY) { - zephir_array_fetch(&_5, names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_6, types, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_7, tmp_names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_8, sizes, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_9, errors, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); + zephir_array_fetch(&_5, names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_6, types, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_7, tmp_names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_8, sizes, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_9, errors, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_10, _5, _6, _7, _8, _9, p); zephir_check_call_status(); - zephir_is_iterable(parentFiles, &_12, &_11, 0, 0, "phalcon/http/request.zep", 793); + zephir_is_iterable(parentFiles, &_12, &_11, 0, 0, "phalcon/http/request.zep", 695); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) ) { ZEPHIR_GET_HVALUE(file, _13); - zephir_array_append(&files, file, PH_SEPARATE, "phalcon/http/request.zep", 791); + zephir_array_append(&files, file, PH_SEPARATE, "phalcon/http/request.zep", 693); } } } @@ -59687,7 +62019,7 @@ static PHP_METHOD(Phalcon_Http_Request, getHeaders) { zephir_array_update_string(&contentHeaders, SL("CONTENT_TYPE"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); zephir_array_update_string(&contentHeaders, SL("CONTENT_LENGTH"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); - zephir_is_iterable(_SERVER, &_1, &_0, 0, 0, "phalcon/http/request.zep", 822); + zephir_is_iterable(_SERVER, &_1, &_0, 0, 0, "phalcon/http/request.zep", 724); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59803,7 +62135,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { ZVAL_LONG(&_3, 1); ZEPHIR_CALL_FUNCTION(&_4, "preg_split", &_5, &_1, _0, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(_4, &_7, &_6, 0, 0, "phalcon/http/request.zep", 865); + zephir_is_iterable(_4, &_7, &_6, 0, 0, "phalcon/http/request.zep", 767); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -59821,7 +62153,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { ZVAL_LONG(&_3, 1); ZEPHIR_CALL_FUNCTION(&_10, "preg_split", &_5, &_1, _9, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/http/request.zep", 862); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/http/request.zep", 764); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -59834,17 +62166,17 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { if (!ZEPHIR_IS_FALSE_IDENTICAL(_14)) { ZEPHIR_INIT_NVAR(split); zephir_fast_explode_str(split, SL("="), headerPart, 2 TSRMLS_CC); - zephir_array_fetch_long(&_15, split, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 851 TSRMLS_CC); + zephir_array_fetch_long(&_15, split, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 753 TSRMLS_CC); if (ZEPHIR_IS_STRING_IDENTICAL(_15, "q")) { ZEPHIR_OBS_NVAR(_16); - zephir_array_fetch_long(&_16, split, 1, PH_NOISY, "phalcon/http/request.zep", 852 TSRMLS_CC); + zephir_array_fetch_long(&_16, split, 1, PH_NOISY, "phalcon/http/request.zep", 754 TSRMLS_CC); ZEPHIR_INIT_NVAR(_17); ZVAL_DOUBLE(_17, zephir_get_doubleval(_16)); zephir_array_update_string(&headerParts, SL("quality"), &_17, PH_COPY | PH_SEPARATE); } else { - zephir_array_fetch_long(&_18, split, 1, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 854 TSRMLS_CC); + zephir_array_fetch_long(&_18, split, 1, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 756 TSRMLS_CC); ZEPHIR_OBS_NVAR(_16); - zephir_array_fetch_long(&_16, split, 0, PH_NOISY, "phalcon/http/request.zep", 854 TSRMLS_CC); + zephir_array_fetch_long(&_16, split, 0, PH_NOISY, "phalcon/http/request.zep", 756 TSRMLS_CC); zephir_array_update_zval(&headerParts, _16, &_18, PH_COPY | PH_SEPARATE); } } else { @@ -59854,7 +62186,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { zephir_array_update_string(&headerParts, SL("quality"), &_17, PH_COPY | PH_SEPARATE); } } - zephir_array_append(&returnedParts, headerParts, PH_SEPARATE, "phalcon/http/request.zep", 862); + zephir_array_append(&returnedParts, headerParts, PH_SEPARATE, "phalcon/http/request.zep", 764); } RETURN_CCTOR(returnedParts); @@ -59891,7 +62223,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getBestQuality) { quality = 0.0; ZEPHIR_INIT_VAR(selectedName); ZVAL_STRING(selectedName, "", 1); - zephir_is_iterable(qualityParts, &_1, &_0, 0, 0, "phalcon/http/request.zep", 894); + zephir_is_iterable(qualityParts, &_1, &_0, 0, 0, "phalcon/http/request.zep", 796); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59899,18 +62231,18 @@ static PHP_METHOD(Phalcon_Http_Request, _getBestQuality) { ZEPHIR_GET_HVALUE(accept, _2); if (i == 0) { ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 883 TSRMLS_CC); + zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 785 TSRMLS_CC); quality = zephir_get_doubleval(_3); ZEPHIR_OBS_NVAR(selectedName); - zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 884 TSRMLS_CC); + zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 786 TSRMLS_CC); } else { ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 886 TSRMLS_CC); + zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 788 TSRMLS_CC); acceptQuality = zephir_get_doubleval(_3); if (acceptQuality > quality) { quality = acceptQuality; ZEPHIR_OBS_NVAR(selectedName); - zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 889 TSRMLS_CC); + zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 791 TSRMLS_CC); } } i++; @@ -60065,9 +62397,9 @@ static PHP_METHOD(Phalcon_Http_Request, getBasicAuth) { if (_0) { ZEPHIR_INIT_VAR(auth); array_init(auth); - zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 977 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 878 TSRMLS_CC); zephir_array_update_string(&auth, SL("username"), &_1, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 978 TSRMLS_CC); + zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 879 TSRMLS_CC); zephir_array_update_string(&auth, SL("password"), &_2, PH_COPY | PH_SEPARATE); RETURN_CCTOR(auth); } @@ -60106,15 +62438,15 @@ static PHP_METHOD(Phalcon_Http_Request, getDigestAuth) { RETURN_CTOR(auth); } if (Z_TYPE_P(matches) == IS_ARRAY) { - zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 1003); + zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 904); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(match, _6); - zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 1001 TSRMLS_CC); + zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 902 TSRMLS_CC); ZEPHIR_OBS_NVAR(_8); - zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 1001 TSRMLS_CC); + zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 902 TSRMLS_CC); zephir_array_update_zval(&auth, _8, &_7, PH_COPY | PH_SEPARATE); } } @@ -60716,20 +63048,22 @@ static PHP_METHOD(Phalcon_Http_Response, setEtag) { static PHP_METHOD(Phalcon_Http_Response, redirect) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zend_bool _0; int statusCode, ZEPHIR_LAST_CALL_STATUS; - zval *location = NULL, *externalRedirect = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; + zend_bool externalRedirect, _0; + zval *location = NULL, *externalRedirect_param = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &location, &externalRedirect, &statusCode_param); + zephir_fetch_params(1, 0, 3, &location, &externalRedirect_param, &statusCode_param); if (!location) { ZEPHIR_CPY_WRT(location, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(location); } - if (!externalRedirect) { - externalRedirect = ZEPHIR_GLOBAL(global_false); + if (!externalRedirect_param) { + externalRedirect = 0; + } else { + externalRedirect = zephir_get_boolval(externalRedirect_param); } if (!statusCode_param) { statusCode = 302; @@ -60742,7 +63076,7 @@ static PHP_METHOD(Phalcon_Http_Response, redirect) { ZEPHIR_INIT_NVAR(location); ZVAL_STRING(location, "", 1); } - if (zephir_is_true(externalRedirect)) { + if (externalRedirect) { ZEPHIR_CPY_WRT(header, location); } else { _0 = Z_TYPE_P(location) == IS_STRING; @@ -61921,10 +64255,13 @@ static PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *data, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data_param = NULL, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; @@ -61936,7 +64273,7 @@ static PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { } ZEPHIR_OBS_VAR(dataHeaders); if (zephir_array_isset_string_fetch(&dataHeaders, data, SS("_headers"), 0 TSRMLS_CC)) { - zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 135); + zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 130); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -69178,8 +71515,8 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _getResultset) { static PHP_METHOD(Phalcon_Mvc_Collection, _getGroupResultset) { + zend_bool _0, _1; int ZEPHIR_LAST_CALL_STATUS; - zend_bool simple; zval *params, *collection, *connection, *source = NULL, *mongoCollection = NULL, *conditions = NULL, *limit, *sort = NULL, *documentsCursor = NULL; ZEPHIR_MM_GROW(); @@ -69203,19 +71540,15 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _getGroupResultset) { array_init(conditions); } } - simple = 1; - if (zephir_array_isset_string(params, SS("limit"))) { - simple = 0; - } else { - if (zephir_array_isset_string(params, SS("sort"))) { - simple = 0; - } else { - if (zephir_array_isset_string(params, SS("skip"))) { - simple = 0; - } - } + _0 = zephir_array_isset_string(params, SS("limit")); + if (!(_0)) { + _0 = zephir_array_isset_string(params, SS("sort")); + } + _1 = _0; + if (!(_1)) { + _1 = zephir_array_isset_string(params, SS("skip")); } - if (simple == 0) { + if (_1) { ZEPHIR_CALL_METHOD(&documentsCursor, mongoCollection, "find", NULL, conditions); zephir_check_call_status(); ZEPHIR_OBS_VAR(limit); @@ -69245,14 +71578,17 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *dependencyInjector, *disableEvents, *exists, *eventName = NULL, *_0 = NULL, *_1 = NULL, *_3 = NULL, *_4 = NULL, *_5 = NULL; + zend_bool disableEvents, exists; + zval *dependencyInjector, *disableEvents_param = NULL, *exists_param = NULL, *eventName = NULL, *_0 = NULL, *_1 = NULL, *_3 = NULL, *_4 = NULL, *_5 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &dependencyInjector, &disableEvents, &exists); + zephir_fetch_params(1, 3, 0, &dependencyInjector, &disableEvents_param, &exists_param); + disableEvents = zephir_get_boolval(disableEvents_param); + exists = zephir_get_boolval(exists_param); - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_VAR(_1); ZVAL_STRING(_1, "beforeValidation", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fireeventcancel", &_2, _1); @@ -69262,7 +71598,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_VAR(eventName); - if (!(zephir_is_true(exists))) { + if (!(exists)) { ZVAL_STRING(eventName, "beforeValidationOnCreate", 1); } else { ZVAL_STRING(eventName, "beforeValidationOnUpdate", 1); @@ -69279,7 +71615,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { zephir_check_temp_parameter(_1); zephir_check_call_status(); if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_NVAR(_1); ZVAL_STRING(_1, "onValidationFails", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, _1); @@ -69288,9 +71624,9 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { } RETURN_MM_BOOL(0); } - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_NVAR(eventName); - if (!(zephir_is_true(exists))) { + if (!(exists)) { ZVAL_STRING(eventName, "afterValidationOnCreate", 1); } else { ZVAL_STRING(eventName, "afterValidationOnUpdate", 1); @@ -69317,7 +71653,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_NVAR(eventName); - if (zephir_is_true(exists)) { + if (exists) { ZVAL_STRING(eventName, "beforeUpdate", 1); } else { ZVAL_STRING(eventName, "beforeCreate", 1); @@ -69395,7 +71731,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 658); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 645); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -69598,13 +71934,13 @@ static PHP_METHOD(Phalcon_Mvc_Collection, save) { ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/collection.zep", 849); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/collection.zep", 836); return; } ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 854); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 841); return; } ZEPHIR_CALL_METHOD(&connection, this_ptr, "getconnection", NULL); @@ -69638,7 +71974,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, save) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&properties, "get_object_vars", &_4, this_ptr); zephir_check_call_status(); - zephir_is_iterable(properties, &_6, &_5, 0, 0, "phalcon/mvc/collection.zep", 909); + zephir_is_iterable(properties, &_6, &_5, 0, 0, "phalcon/mvc/collection.zep", 896); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -69737,22 +72073,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, findFirst) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *connection = NULL, *_0 = NULL, *_2; + zval *parameters_param = NULL, *className, *collection, *connection = NULL, *_0 = NULL, *_2; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for findFirst", "phalcon/mvc/collection.zep", 1002); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69777,22 +72111,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, find) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *_0 = NULL, *_2 = NULL, *_3; + zval *parameters_param = NULL, *className, *collection, *_0 = NULL, *_2 = NULL, *_3; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for find", "phalcon/mvc/collection.zep", 1059); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69817,22 +72149,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, count) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *connection = NULL, *_0 = NULL; + zval *parameters_param = NULL, *className, *collection, *connection = NULL, *_0 = NULL; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for count", "phalcon/mvc/collection.zep", 1084); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69855,19 +72185,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, aggregate) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters, *className, *model, *connection = NULL, *source = NULL, *_0 = NULL, *_2 = NULL; + zval *parameters_param = NULL, *className, *model, *connection = NULL, *source = NULL, *_0 = NULL, *_2 = NULL; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); + } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for aggregate", "phalcon/mvc/collection.zep", 1109); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(model); @@ -69883,7 +72214,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, aggregate) { ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1121); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1072); return; } ZEPHIR_CALL_METHOD(&_2, connection, "selectcollection", NULL, source); @@ -69938,7 +72269,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, summatory) { ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1148); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1099); return; } ZEPHIR_CALL_METHOD(&collection, connection, "selectcollection", NULL, source); @@ -69958,7 +72289,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, summatory) { if (zephir_array_isset_string_fetch(&retval, group, SS("retval"), 1 TSRMLS_CC)) { if (zephir_array_isset_long_fetch(&firstRetval, retval, 0, 1 TSRMLS_CC)) { if (zephir_array_isset_string(firstRetval, SS("summatory"))) { - zephir_array_fetch_string(&_3, firstRetval, SL("summatory"), PH_NOISY | PH_READONLY, "phalcon/mvc/collection.zep", 1172 TSRMLS_CC); + zephir_array_fetch_string(&_3, firstRetval, SL("summatory"), PH_NOISY | PH_READONLY, "phalcon/mvc/collection.zep", 1123 TSRMLS_CC); RETURN_CTOR(_3); } RETURN_CTOR(firstRetval); @@ -69980,7 +72311,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, delete) { ZEPHIR_OBS_VAR(id); if (!(zephir_fetch_property(&id, this_ptr, SL("_id"), PH_SILENT_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The document cannot be deleted because it doesn't exist", "phalcon/mvc/collection.zep", 1199); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The document cannot be deleted because it doesn't exist", "phalcon/mvc/collection.zep", 1150); return; } ZEPHIR_OBS_VAR(disableEvents); @@ -70000,7 +72331,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, delete) { ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1214); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1165); return; } ZEPHIR_CALL_METHOD(&collection, connection, "selectcollection", NULL, source); @@ -70067,7 +72398,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, toArray) { array_init(data); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 1292); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 1243); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -70135,7 +72466,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ODM", "phalcon/mvc/collection.zep", 1323); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ODM", "phalcon/mvc/collection.zep", 1272); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -70145,11 +72476,11 @@ static PHP_METHOD(Phalcon_Mvc_Collection, unserialize) { zephir_check_temp_parameter(_2); zephir_check_call_status(); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The injected service 'collectionManager' is not valid", "phalcon/mvc/collection.zep", 1336); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The injected service 'collectionManager' is not valid", "phalcon/mvc/collection.zep", 1285); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); - zephir_is_iterable(attributes, &_4, &_3, 0, 0, "phalcon/mvc/collection.zep", 1350); + zephir_is_iterable(attributes, &_4, &_3, 0, 0, "phalcon/mvc/collection.zep", 1299); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -72510,7 +74841,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, findFirst) { zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *_1, *_3 = NULL; + zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *resultset = NULL, *hydration, *_1, *_3 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, ¶meters); @@ -72561,9 +74892,16 @@ static PHP_METHOD(Phalcon_Mvc_Model, findFirst) { ZVAL_BOOL(_3, 1); ZEPHIR_CALL_METHOD(NULL, query, "setuniquerow", NULL, _3); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(query, "execute", NULL, bindParams, bindTypes); + ZEPHIR_CALL_METHOD(&resultset, query, "execute", NULL, bindParams, bindTypes); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(resultset) == IS_OBJECT) { + ZEPHIR_OBS_VAR(hydration); + if (zephir_array_isset_string_fetch(&hydration, params, SS("hydration"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, resultset, "sethydratemode", NULL, hydration); + zephir_check_call_status(); + } + } + RETURN_CCTOR(resultset); } @@ -72660,7 +74998,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { array_init(uniqueParams); ZEPHIR_INIT_NVAR(uniqueTypes); array_init(uniqueTypes); - zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 939); + zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 950); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -72675,7 +75013,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 903 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 914 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -72693,9 +75031,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { if (_6) { numberEmpty++; } - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 921); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 932); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 924); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 935); numberEmpty++; } ZEPHIR_OBS_NVAR(type); @@ -72706,16 +75044,16 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 929 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 940 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 932); + zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 943); ZEPHIR_CALL_METHOD(&_7, connection, "escapeidentifier", &_8, field); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_9); ZEPHIR_CONCAT_VS(_9, _7, " = ?"); - zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 933); + zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 944); } if (numberPrimary == numberEmpty) { RETURN_MM_BOOL(0); @@ -72763,7 +75101,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZVAL_NULL(_3); ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, _9, _3, uniqueParams, uniqueTypes); zephir_check_call_status(); - zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 989 TSRMLS_CC); + zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1000 TSRMLS_CC); if (zephir_is_true(_11)) { ZEPHIR_INIT_ZVAL_NREF(_12); ZVAL_LONG(_12, 0); @@ -72816,7 +75154,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _groupResult) { ZEPHIR_INIT_VAR(params); array_init(params); if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1016); + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1027); } } else { ZEPHIR_CPY_WRT(params, parameters); @@ -73131,7 +75469,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1311); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1322); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -73183,7 +75521,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_INIT_VAR(filtered); array_init(filtered); _1 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1378); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1389); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -73192,7 +75530,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_CALL_METHOD(&_5, message, "getfield", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EQUAL(_5, filter)) { - zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1375); + zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1386); } } RETURN_CCTOR(filtered); @@ -73219,7 +75557,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(belongsTo TSRMLS_CC)) { error = 0; - zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1498); + zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1509); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73232,7 +75570,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1422 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1433 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73250,7 +75588,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL); zephir_check_call_status(); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1453); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1464); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -73259,23 +75597,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1450 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1461 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1450); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1451); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1461); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1462); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1455); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1456); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1466); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1467); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1463); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1474); } ZEPHIR_INIT_NVAR(_13); zephir_create_array(_13, 2, 0 TSRMLS_CC); @@ -73345,7 +75683,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_CALL_METHOD(&relations, manager, "gethasoneandhasmany", NULL, this_ptr); zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1612); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1623); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73358,7 +75696,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1551 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1562 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73376,7 +75714,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1579); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1590); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -73385,23 +75723,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1576 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1587 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1576); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1577); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1587); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1588); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1581); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1582); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1592); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1593); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1589); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1600); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -73442,7 +75780,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { error = 0; - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1729); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1740); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73455,7 +75793,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1659 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1670 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73473,7 +75811,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1689); + zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1700); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -73482,23 +75820,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_GET_HVALUE(field, _8); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1686 TSRMLS_CC); + zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1697 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVSV(_10, "[", _9, "] = ?", position); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1686); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1687); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1697); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1698); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVS(_10, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1691); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1692); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1702); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1703); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1699); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1710); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -73618,7 +75956,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSave) { zephir_check_call_status(); } error = 0; - zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1879); + zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1890); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -73635,7 +75973,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSave) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1829 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1840 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73844,7 +76182,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2051); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2062); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -73860,7 +76198,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2015 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2026 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73868,7 +76206,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CPY_WRT(attributeField, field); } if (!ZEPHIR_IS_EQUAL(field, identityField)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2026); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2037); ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { ZEPHIR_OBS_NVAR(bindType); @@ -73879,15 +76217,15 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2037 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2048 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); } else { - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2042); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2042); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2053); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2053); } } } @@ -73899,7 +76237,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { zephir_check_call_status(); useExplicitIdentity = zephir_get_boolval(_6); if (useExplicitIdentity) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2060); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2071); } if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_OBS_NVAR(attributeField); @@ -73910,7 +76248,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2068 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73925,12 +76263,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { } if (_7) { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); } } else { if (!(useExplicitIdentity)) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2089); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2100); } ZEPHIR_OBS_NVAR(bindType); if (!(zephir_array_isset_fetch(&bindType, bindDataTypes, identityField, 0 TSRMLS_CC))) { @@ -73940,17 +76278,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn\\'t part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2096 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); } } else { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); } } } @@ -74035,7 +76373,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2290); + zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2301); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -74050,7 +76388,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2194 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2205 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74063,7 +76401,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2202 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2213 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74073,9 +76411,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { if (!(useDynamicUpdate)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2219); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2230); } else { ZEPHIR_OBS_NVAR(snapshotValue); if (!(zephir_array_isset_fetch(&snapshotValue, snapshot, attributeField, 0 TSRMLS_CC))) { @@ -74117,15 +76455,15 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } } if (changed) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2277); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2288); } } } else { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); } } } @@ -74142,12 +76480,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, this_ptr); zephir_check_call_status(); if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2309); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2320); return; } ZEPHIR_INIT_NVAR(uniqueParams); array_init(uniqueParams); - zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2333); + zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2344); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -74162,7 +76500,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2320 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2331 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74171,9 +76509,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2327); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2338); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2329); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2340); } } } @@ -74210,7 +76548,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2439); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2450); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -74227,7 +76565,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(record) != IS_OBJECT) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2388); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2399); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_7); @@ -74239,7 +76577,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2397); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2408); return; } ZEPHIR_CALL_METHOD(&_0, record, "save", NULL); @@ -74247,7 +76585,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (!(zephir_is_true(_0))) { ZEPHIR_CALL_METHOD(&_10, record, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2426); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2437); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -74294,7 +76632,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2628); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2639); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -74317,7 +76655,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (_6) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2489); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_8); @@ -74329,7 +76667,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2487); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2498); return; } if (Z_TYPE_P(record) == IS_OBJECT) { @@ -74349,7 +76687,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVS(_12, "The column '", columns, "' needs to be present in the model"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2501 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2512 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74364,7 +76702,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&intermediateReferencedFields, relation, "getintermediatereferencedfields", &_18); zephir_check_call_status(); } - zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2617); + zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2628); for ( ; zephir_hash_get_current_data_ex(_20, (void**) &_21, &_19) == SUCCESS ; zephir_hash_move_forward_ex(_20, &_19) @@ -74379,7 +76717,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_14))) { ZEPHIR_CALL_METHOD(&_22, recordAfter, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2559); + zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2570); for ( ; zephir_hash_get_current_data_ex(_24, (void**) &_25, &_23) == SUCCESS ; zephir_hash_move_forward_ex(_24, &_23) @@ -74412,7 +76750,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_22))) { ZEPHIR_CALL_METHOD(&_30, intermediateModel, "getmessages", &_31); zephir_check_call_status(); - zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2611); + zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2622); for ( ; zephir_hash_get_current_data_ex(_33, (void**) &_34, &_32) == SUCCESS ; zephir_hash_move_forward_ex(_33, &_32) @@ -74441,7 +76779,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVSVS(_12, "There are no defined relations for the model '", className, "' using alias '", name, "'"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2620 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2631 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74540,7 +76878,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, save) { _3 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_5, this_ptr, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2732 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2743 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74739,10 +77077,10 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZVAL_NULL(columnMap); } if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2925); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2936); return; } - zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2966); + zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2977); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -74756,7 +77094,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2937 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2948 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74769,7 +77107,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2945 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2956 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74784,17 +77122,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Cannot delete the record because the primary key attribute: '", attributeField, "' wasn't set"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2955 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2966 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2961); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2972); ZEPHIR_CALL_METHOD(&_2, writeConnection, "escapeidentifier", &_9, primaryKey); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_VS(_7, _2, " = ?"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2962); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2963); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2973); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2974); } if (ZEPHIR_GLOBAL(orm).events) { zephir_update_property_this(this_ptr, SL("_skipped"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -74864,13 +77202,13 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { HashTable *_3; HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *metaData = NULL, *readConnection = NULL, *schema = NULL, *source = NULL, *table = NULL, *uniqueKey = NULL, *uniqueParams, *dialect = NULL, *row = NULL, *fields, *attribute = NULL, *_0, *_1 = NULL, **_4, *_6 = NULL, *_7, *_8; + zval *metaData = NULL, *readConnection = NULL, *schema = NULL, *source = NULL, *table = NULL, *uniqueKey = NULL, *tables = NULL, *uniqueParams, *dialect = NULL, *row = NULL, *fields, *attribute = NULL, *_0, *_1 = NULL, **_4, *_6, *_7; ZEPHIR_MM_GROW(); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3041); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3052); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -74895,7 +77233,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_CALL_METHOD(&_1, this_ptr, "_exists", NULL, metaData, readConnection, table); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3063); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3074); return; } ZEPHIR_OBS_NVAR(uniqueKey); @@ -74904,14 +77242,14 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_OBS_VAR(uniqueParams); zephir_read_property_this(&uniqueParams, this_ptr, SL("_uniqueParams"), PH_NOISY_CC); if (Z_TYPE_P(uniqueParams) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3071); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3082); return; } ZEPHIR_INIT_VAR(fields); array_init(fields); ZEPHIR_CALL_METHOD(&_1, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3085); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3096); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -74920,28 +77258,28 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 1, 0 TSRMLS_CC); zephir_array_fast_append(_5, attribute); - zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3079); + zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3090); } ZEPHIR_CALL_METHOD(&dialect, readConnection, "getdialect", NULL); zephir_check_call_status(); ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 3, 0 TSRMLS_CC); zephir_array_update_string(&_5, SL("columns"), &fields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_6, readConnection, "escapeidentifier", NULL, table); + ZEPHIR_CALL_METHOD(&_1, readConnection, "escapeidentifier", NULL, table); zephir_check_call_status(); - zephir_array_update_string(&_5, SL("tables"), &_6, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5, SL("tables"), &_1, PH_COPY | PH_SEPARATE); zephir_array_update_string(&_5, SL("where"), &uniqueKey, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, dialect, "select", NULL, _5); + ZEPHIR_CALL_METHOD(&tables, dialect, "select", NULL, _5); zephir_check_call_status(); - _7 = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueTypes"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(_8); - ZVAL_LONG(_8, 1); - ZEPHIR_CALL_METHOD(&row, readConnection, "fetchone", NULL, _1, _8, uniqueParams, _7); + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueTypes"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(_7); + ZVAL_LONG(_7, 1); + ZEPHIR_CALL_METHOD(&row, readConnection, "fetchone", NULL, tables, _7, uniqueParams, _6); zephir_check_call_status(); if (Z_TYPE_P(row) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_6, metaData, "getcolumnmap", NULL, this_ptr); + ZEPHIR_CALL_METHOD(&_1, metaData, "getcolumnmap", NULL, this_ptr); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, row, _6); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, row, _1); zephir_check_call_status(); } RETURN_THIS(); @@ -75035,7 +77373,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributes) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3172); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3184); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75070,7 +77408,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3204); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3216); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75103,7 +77441,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3234); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3246); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75316,7 +77654,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_INIT_VAR(snapshot); array_init(snapshot); - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3457); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3469); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75334,7 +77672,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { ZEPHIR_CONCAT_SVS(_4, "Column '", key, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3451 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3463 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75384,12 +77722,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3496); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3508); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3503); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3515); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -75411,7 +77749,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3535 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75423,7 +77761,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3539 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3551 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75436,7 +77774,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not defined on the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3559 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75448,14 +77786,14 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_4, "The field '", fieldName, "' was not found in the snapshot"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3554 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3566 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } RETURN_MM_BOOL(!ZEPHIR_IS_EQUAL(value, originalValue)); } ZEPHIR_INIT_NVAR(_1); - zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3590); + zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3602); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -75490,12 +77828,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3603); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3615); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3610); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3622); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -75511,7 +77849,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_INIT_VAR(changed); array_init(changed); ZEPHIR_INIT_VAR(_1); - zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3664); + zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3676); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -75519,17 +77857,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_GET_HMKEY(name, _3, _2); ZEPHIR_GET_HVALUE(_1, _4); if (!(zephir_array_isset(snapshot, name))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3642); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3654); continue; } ZEPHIR_OBS_NVAR(value); if (!(zephir_fetch_property_zval(&value, this_ptr, name, PH_SILENT_CC))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3650); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3662); continue; } - zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3657 TSRMLS_CC); + zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3669 TSRMLS_CC); if (!ZEPHIR_IS_EQUAL(value, _5)) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3658); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3670); continue; } } @@ -75587,7 +77925,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getRelated) { ZEPHIR_CONCAT_SVSVS(_3, "There is no defined relations for the model '", className, "' using alias '", alias, "'"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3707 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3719 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75729,7 +78067,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __call) { ZEPHIR_CONCAT_SVSVS(_2, "The method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3799 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3811 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -75792,7 +78130,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVSVS(_2, "The static method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3850 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3862 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75804,7 +78142,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_4, "The static method '", method, "' requires one argument"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3854 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3866 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75841,7 +78179,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_2, "Cannot resolve attribute '", extraMethod, "' in the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3888 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3900 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75900,7 +78238,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __set) { zephir_check_call_status(); ZEPHIR_INIT_VAR(related); array_init(related); - zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3952); + zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3964); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -75909,7 +78247,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __set) { ZEPHIR_GET_HVALUE(item, _3); if (Z_TYPE_P(item) == IS_OBJECT) { if (zephir_instance_of_ev(item, phalcon_mvc_modelinterface_ce TSRMLS_CC)) { - zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3939); + zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3951); } } else { ZEPHIR_INIT_NVAR(lowerKey); @@ -76070,7 +78408,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, serialize) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4083); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4095); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -76085,7 +78423,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, serialize) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4067 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -76136,7 +78474,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4101); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4113); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -76147,13 +78485,13 @@ static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _2); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4114); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4126); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, manager, "initialize", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4133); + zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4145); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -76204,7 +78542,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, toArray) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4192); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4204); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -76219,7 +78557,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, toArray) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4173 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4185 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -77891,7 +80229,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { if (Z_TYPE_P(uri) == IS_ARRAY) { ZEPHIR_OBS_VAR(routeName); if (!(zephir_array_isset_string_fetch(&routeName, uri, SS("for"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 201); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 202); return; } _5 = zephir_fetch_nproperty_this(this_ptr, SL("_router"), PH_NOISY_CC); @@ -77900,7 +80238,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { _5 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); ZEPHIR_CPY_WRT(dependencyInjector, _5); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 213); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 214); return; } ZEPHIR_INIT_VAR(_6); @@ -77921,7 +80259,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { ZEPHIR_CONCAT_SVS(_7, "Cannot obtain a route using the name '", routeName, "'"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/url.zep", 225 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/url.zep", 226 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -89843,7 +92181,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { zend_declare_property_bool(phalcon_mvc_model_resultset_ce, SL("_isFresh"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_pointer"), -1, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_pointer"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_count"), ZEND_ACC_PROTECTED TSRMLS_CC); @@ -89851,6 +92189,8 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_rows"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_row"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_errorMessages"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_hydrateMode"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); @@ -89877,70 +92217,75 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next) { + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, _1; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(_0) + 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_2, &_1); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid) { + + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, *_1 = NULL; + + ZEPHIR_MM_GROW(); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "count", &_2); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_LT(_0, _1)); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key) { + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, *_1 = NULL; + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(this_ptr, "_pointer"); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "count", &_2); + zephir_check_call_status(); + if (ZEPHIR_GE(_0, _1)) { + RETURN_MM_NULL(); + } + RETURN_MM_MEMBER(this_ptr, "_pointer"); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *rows = NULL, *result = NULL, *_0, *_1, *_2; + zval _0; ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); - if (zephir_is_true(_0)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(_1) != IS_NULL) { - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, 0); - ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _2); - zephir_check_call_status(); - } - } - } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_NULL) { - ZEPHIR_OBS_NVAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), rows TSRMLS_CC); - } - } - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "reset", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 0); - zephir_update_property_this(this_ptr, SL("_pointer"), _1 TSRMLS_CC); + ZEPHIR_SINIT_VAR(_0); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_1, &_0); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - zval *position_param = NULL, *result = NULL, *rows = NULL, *_0, *_1, *_2, *_5; - int position, i, ZEPHIR_LAST_CALL_STATUS; + zend_bool _2, _5; + zval *position_param = NULL, *result, *_0, *_1, *_3, *_4, *_6, *_7, *_8 = NULL, *_9; + int position, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &position_param); @@ -89948,51 +92293,58 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { position = zephir_get_intval(position_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (!ZEPHIR_IS_LONG(_0, position)) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); - if (zephir_is_true(_1)) { + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); + if (zephir_is_true(_0)) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + _2 = Z_TYPE_P(_1) == IS_NULL; + if (!(_2)) { + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + _2 = !ZEPHIR_IS_LONG(_3, position); + } + if (_2) { ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, position); - ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _2); - zephir_check_call_status(); - } - } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_NULL) { - ZEPHIR_OBS_NVAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), rows TSRMLS_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + _5 = Z_TYPE_P(_4) == IS_NULL; + if (!(_5)) { + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + _5 = ZEPHIR_GT_LONG(_6, position); } - } - if (Z_TYPE_P(rows) == IS_ARRAY) { - i = 0; - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "reset", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - while (1) { - if (!(i < position)) { - break; - } - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_4, rows); - Z_UNSET_ISREF_P(rows); + if (_5) { + ZEPHIR_INIT_VAR(_7); + ZVAL_LONG(_7, position); + ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _7); zephir_check_call_status(); - i++; + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + } else { + while (1) { + _9 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(ZEPHIR_LT_LONG(_9, position))) { + break; + } + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); + } } } + ZEPHIR_INIT_ZVAL_NREF(_4); + ZVAL_LONG(_4, position); + zephir_update_property_this(this_ptr, SL("_pointer"), _4 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_activeRow"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); + } + } else { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!ZEPHIR_IS_LONG(_1, position)) { + ZEPHIR_INIT_ZVAL_NREF(_3); + ZVAL_LONG(_3, position); + zephir_update_property_this(this_ptr, SL("_pointer"), _3 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_activeRow"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } - ZEPHIR_INIT_ZVAL_NREF(_5); - ZVAL_LONG(_5, position); - zephir_update_property_this(this_ptr, SL("_pointer"), _5 TSRMLS_CC); } ZEPHIR_MM_RESTORE(); @@ -90061,8 +92413,8 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetExists) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL, *_5 = NULL; - zval *index_param = NULL, *_0 = NULL, *_2, _4, *_6 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *index_param = NULL, *_0 = NULL, _2; int index, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); @@ -90079,26 +92431,15 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); zephir_check_call_status(); if (ZEPHIR_GT_LONG(_0, index)) { - _2 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (ZEPHIR_IS_LONG(_2, index)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_3); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_SINIT_VAR(_4); - ZVAL_LONG(&_4, index); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_5, &_4); + ZEPHIR_SINIT_VAR(_2); + ZVAL_LONG(&_2, index); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_6)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_3); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 272); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 243); return; } @@ -90111,7 +92452,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetSet) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 283); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 254); return; } @@ -90126,7 +92467,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetUnset) { offset = zephir_get_intval(offset_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 291); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 262); return; } @@ -90140,53 +92481,47 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getType) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getFirst) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_0, *_3 = NULL; + zval *_0 = NULL, _2; ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); + zephir_check_call_status(); if (ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", &_2); + ZEPHIR_SINIT_VAR(_2); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_3)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_1); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getLast) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL, *_5 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_0 = NULL, _2, *_4 = NULL; + zval *count = NULL, _1; ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); + ZEPHIR_CALL_METHOD(&count, this_ptr, "count", &_0); zephir_check_call_status(); - ZEPHIR_SINIT_VAR(_2); - ZVAL_LONG(&_2, (zephir_get_numberval(_0) - 1)); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); + if (ZEPHIR_IS_LONG(count, 0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(count) - 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_2, &_1); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_4)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_5); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } @@ -90243,13 +92578,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, current) { - - - RETURN_MEMBER(this_ptr, "_activeRow"); - -} - static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages) { @@ -90286,7 +92614,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 415); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 372); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -90356,7 +92684,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 435); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -90420,7 +92748,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(record, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 547); + zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 504); ZEPHIR_INIT_NVAR(processedRecord); ZEPHIR_CALL_USER_FUNC_ARRAY(processedRecord, filter, parameters); zephir_check_call_status(); @@ -90429,7 +92757,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { continue; } } - zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 559); + zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 516); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); @@ -90925,7 +93253,7 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackedRecord); ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, phalcon_mvc_model_validationfailed_method_entry, 0); zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("_model"), ZEND_ACC_PROTECTED TSRMLS_CC); @@ -90935,6 +93263,50 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) { } +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *validationMessages = NULL; + zval *model, *validationMessages_param = NULL, *messageStr = NULL, *message; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &validationMessages_param); + + validationMessages = validationMessages_param; + + + + if (zephir_fast_count_int(validationMessages TSRMLS_CC) > 0) { + ZEPHIR_OBS_VAR(message); + zephir_array_fetch_long(&message, validationMessages, 0, PH_NOISY, "phalcon/mvc/model/validationfailed.zep", 51 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&messageStr, message, "getmessage", NULL); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(messageStr); + ZVAL_STRING(messageStr, "Validation failed", 1); + } + zephir_update_property_this(this_ptr, SL("_model"), model TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_messages"), validationMessages TSRMLS_CC); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_validationfailed_ce, this_ptr, "__construct", NULL, messageStr); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel) { + + + RETURN_MEMBER(this_ptr, "_model"); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages) { + + + RETURN_MEMBER(this_ptr, "_messages"); + +} + @@ -94462,58 +96834,58 @@ static zval *phql_ret_func_call(phql_parser_token *name, zval *arguments, zval * #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal +** PPCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds +** PPNOCODE is a number of type PPCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. -** YYFALLBACK If defined, this indicates that one or more tokens +** PPFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal +** PPACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** phql_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. +** PPMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is phql_TOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. +** for base tokens is called "pp0". +** PPSTACKDEPTH is the maximum depth of the parser's stack. ** phql_ARG_SDECL A static variable declaration for the %extra_argument ** phql_ARG_PDECL A parameter declaration for the %extra_argument -** phql_ARG_STORE Code to store %extra_argument into yypParser -** phql_ARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not +** phql_ARG_STORE Code to store %extra_argument into pppParser +** phql_ARG_FETCH Code to extract %extra_argument from pppParser +** PPNSTATE the combined number of states. +** PPNRULE the number of rules in the grammar +** PPERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define YYCODETYPE unsigned char -#define YYNOCODE 120 -#define YYACTIONTYPE unsigned short int +#define PPCODETYPE unsigned char +#define PPNOCODE 120 +#define PPACTIONTYPE unsigned short int #define phql_TOKENTYPE phql_parser_token* typedef union { - phql_TOKENTYPE yy0; - zval* yy92; - int yy239; -} YYMINORTYPE; -#define YYSTACKDEPTH 100 + phql_TOKENTYPE pp0; + zval* pp92; + int pp239; +} PPMINORTYPE; +#define PPSTACKDEPTH 100 #define phql_ARG_SDECL phql_parser_status *status; #define phql_ARG_PDECL ,phql_parser_status *status -#define phql_ARG_FETCH phql_parser_status *status = yypParser->status -#define phql_ARG_STORE yypParser->status = status -#define YYNSTATE 249 -#define YYNRULE 139 -#define YYERRORSYMBOL 70 -#define YYERRSYMDT yy239 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define phql_ARG_FETCH phql_parser_status *status = pppParser->status +#define phql_ARG_STORE pppParser->status = status +#define PPNSTATE 249 +#define PPNRULE 139 +#define PPERRORSYMBOL 70 +#define PPERRSYMDT pp239 +#define PP_NO_ACTION (PPNSTATE+PPNRULE+2) +#define PP_ACCEPT_ACTION (PPNSTATE+PPNRULE+1) +#define PP_ERROR_ACTION (PPNSTATE+PPNRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -94523,234 +96895,234 @@ typedef union { ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N < PPNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** PPNSTATE <= N < PPNSTATE+PPNRULE Reduce by rule N-PPNSTATE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N == PPNSTATE+PPNRULE A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == PPNSTATE+PPNRULE+1 The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. +** N == PPNSTATE+PPNRULE+2 No such action. Denotes unused +** slots in the pp_action[] table. ** -** The action table is constructed as a single large table named yy_action[]. +** The action table is constructed as a single large table named pp_action[]. ** Given state S and lookahead X, the action is computed as ** -** yy_action[ yy_shift_ofst[S] + X ] +** pp_action[ pp_shift_ofst[S] + X ] ** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. +** If the index value pp_shift_ofst[S]+X is out of range or if the value +** pp_lookahead[pp_shift_ofst[S]+X] is not equal to X or if pp_shift_ofst[S] +** is equal to PP_SHIFT_USE_DFLT, it means that the action is not in the table +** and that pp_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. +** a reduce action) then the pp_reduce_ofst[] array is used in place of +** the pp_shift_ofst[] array and PP_REDUCE_USE_DFLT is used in place of +** PP_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for +** pp_action[] A single table containing all actions. +** pp_lookahead[] A table containing the lookahead for each entry in +** pp_action. Used to detect hash collisions. +** pp_shift_ofst[] For each state, the offset into pp_action for ** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for +** pp_reduce_ofst[] For each state, the offset into pp_action for ** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. +** pp_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { +static PPACTIONTYPE pp_action[] = { /* 0 */ 72, 78, 50, 52, 54, 56, 58, 60, 40, 42, /* 10 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 20 */ 74, 69, 64, 145, 72, 78, 50, 52, 54, 56, + /* 20 */ 74, 69, 64, 64, 72, 78, 50, 52, 54, 56, /* 30 */ 58, 60, 40, 42, 62, 67, 44, 46, 48, 36, - /* 40 */ 34, 38, 32, 29, 74, 69, 64, 16, 17, 18, - /* 50 */ 249, 27, 28, 201, 192, 199, 150, 72, 78, 50, + /* 40 */ 34, 38, 32, 29, 74, 69, 64, 74, 69, 64, + /* 50 */ 167, 27, 28, 201, 192, 199, 150, 72, 78, 50, /* 60 */ 52, 54, 56, 58, 60, 40, 42, 62, 67, 44, /* 70 */ 46, 48, 36, 34, 38, 32, 29, 74, 69, 64, - /* 80 */ 36, 34, 38, 32, 29, 74, 69, 64, 83, 7, + /* 80 */ 36, 34, 38, 32, 29, 74, 69, 64, 83, 77, /* 90 */ 72, 78, 50, 52, 54, 56, 58, 60, 40, 42, /* 100 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 110 */ 74, 69, 64, 72, 78, 50, 52, 54, 56, 58, - /* 120 */ 60, 40, 42, 62, 67, 44, 46, 48, 36, 34, - /* 130 */ 38, 32, 29, 74, 69, 64, 40, 42, 62, 67, - /* 140 */ 44, 46, 48, 36, 34, 38, 32, 29, 74, 69, - /* 150 */ 64, 327, 89, 74, 69, 64, 158, 108, 156, 72, + /* 110 */ 74, 69, 64, 50, 52, 54, 56, 58, 60, 40, + /* 120 */ 42, 62, 67, 44, 46, 48, 36, 34, 38, 32, + /* 130 */ 29, 74, 69, 64, 108, 168, 72, 78, 50, 52, + /* 140 */ 54, 56, 58, 60, 40, 42, 62, 67, 44, 46, + /* 150 */ 48, 36, 34, 38, 32, 29, 74, 69, 64, 72, /* 160 */ 78, 50, 52, 54, 56, 58, 60, 40, 42, 62, /* 170 */ 67, 44, 46, 48, 36, 34, 38, 32, 29, 74, - /* 180 */ 69, 64, 50, 52, 54, 56, 58, 60, 40, 42, - /* 190 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 200 */ 74, 69, 64, 101, 203, 204, 30, 12, 250, 102, - /* 210 */ 104, 65, 128, 138, 101, 153, 93, 30, 324, 99, - /* 220 */ 102, 104, 130, 173, 189, 175, 177, 93, 181, 185, - /* 230 */ 106, 364, 173, 189, 175, 177, 76, 181, 185, 363, - /* 240 */ 172, 106, 170, 14, 110, 116, 117, 80, 86, 26, - /* 250 */ 113, 111, 112, 114, 115, 110, 116, 117, 80, 86, - /* 260 */ 26, 113, 111, 112, 114, 115, 194, 109, 71, 30, - /* 270 */ 23, 135, 102, 104, 251, 19, 92, 75, 109, 195, - /* 280 */ 30, 8, 25, 102, 104, 124, 109, 92, 208, 216, - /* 290 */ 93, 252, 99, 106, 98, 92, 253, 96, 118, 32, - /* 300 */ 29, 74, 69, 64, 106, 136, 9, 110, 116, 117, - /* 310 */ 80, 86, 127, 113, 111, 112, 114, 115, 110, 116, - /* 320 */ 117, 80, 86, 120, 113, 111, 112, 114, 115, 62, - /* 330 */ 67, 44, 46, 48, 36, 34, 38, 32, 29, 74, - /* 340 */ 69, 64, 44, 46, 48, 36, 34, 38, 32, 29, - /* 350 */ 74, 69, 64, 71, 143, 389, 1, 2, 3, 4, - /* 360 */ 5, 6, 162, 163, 164, 235, 242, 238, 10, 71, - /* 370 */ 180, 109, 109, 178, 237, 238, 21, 140, 144, 126, - /* 380 */ 92, 92, 214, 118, 11, 149, 227, 109, 202, 198, - /* 390 */ 254, 210, 243, 124, 215, 132, 92, 152, 147, 118, - /* 400 */ 109, 161, 190, 163, 164, 214, 94, 109, 71, 92, - /* 410 */ 143, 13, 15, 205, 221, 151, 92, 215, 232, 191, - /* 420 */ 246, 193, 198, 109, 155, 241, 109, 214, 109, 134, - /* 430 */ 31, 120, 92, 33, 142, 92, 159, 92, 100, 213, - /* 440 */ 109, 35, 22, 109, 240, 109, 37, 109, 109, 92, - /* 450 */ 154, 109, 92, 165, 92, 155, 92, 92, 39, 109, - /* 460 */ 92, 41, 196, 99, 109, 159, 43, 159, 92, 45, - /* 470 */ 325, 47, 49, 92, 51, 94, 109, 53, 184, 109, - /* 480 */ 20, 182, 326, 133, 109, 92, 64, 109, 92, 109, - /* 490 */ 109, 55, 109, 92, 57, 109, 92, 59, 92, 92, - /* 500 */ 120, 92, 61, 197, 92, 63, 24, 66, 68, 109, - /* 510 */ 73, 188, 109, 79, 186, 109, 125, 70, 92, 212, - /* 520 */ 109, 92, 223, 109, 92, 109, 109, 82, 109, 92, - /* 530 */ 88, 109, 92, 103, 92, 92, 329, 92, 105, 211, - /* 540 */ 92, 107, 218, 129, 169, 109, 137, 217, 109, 146, - /* 550 */ 226, 109, 212, 77, 92, 81, 109, 92, 233, 109, - /* 560 */ 92, 109, 109, 155, 109, 92, 207, 109, 92, 248, - /* 570 */ 92, 92, 222, 92, 155, 159, 92, 84, 159, 85, - /* 580 */ 90, 87, 119, 91, 95, 97, 159, 121, 131, 122, - /* 590 */ 123, 125, 230, 139, 141, 148, 160, 157, 166, 168, - /* 600 */ 167, 171, 174, 277, 176, 278, 179, 279, 280, 281, - /* 610 */ 183, 282, 283, 284, 187, 285, 200, 288, 209, 225, - /* 620 */ 289, 224, 229, 228, 296, 328, 206, 231, 236, 239, - /* 630 */ 219, 244, 220, 245, 302, 247, 260, 234, + /* 180 */ 69, 64, 101, 217, 196, 30, 226, 21, 102, 104, + /* 190 */ 16, 17, 18, 101, 153, 93, 30, 94, 89, 102, + /* 200 */ 104, 79, 173, 189, 175, 177, 93, 181, 185, 106, + /* 210 */ 364, 173, 189, 175, 177, 188, 181, 185, 186, 109, + /* 220 */ 106, 324, 120, 110, 116, 117, 80, 86, 92, 113, + /* 230 */ 111, 112, 114, 115, 110, 116, 117, 80, 86, 166, + /* 240 */ 113, 111, 112, 114, 115, 194, 14, 71, 30, 65, + /* 250 */ 128, 102, 104, 32, 29, 74, 69, 64, 195, 30, + /* 260 */ 130, 10, 102, 104, 124, 109, 235, 242, 238, 93, + /* 270 */ 171, 99, 106, 98, 92, 152, 96, 118, 19, 161, + /* 280 */ 190, 163, 164, 106, 237, 238, 110, 116, 117, 80, + /* 290 */ 86, 133, 113, 111, 112, 114, 115, 110, 116, 117, + /* 300 */ 80, 86, 120, 113, 111, 112, 114, 115, 40, 42, + /* 310 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, + /* 320 */ 74, 69, 64, 62, 67, 44, 46, 48, 36, 34, + /* 330 */ 38, 32, 29, 74, 69, 64, 44, 46, 48, 36, + /* 340 */ 34, 38, 32, 29, 74, 69, 64, 26, 76, 124, + /* 350 */ 160, 158, 143, 156, 214, 389, 1, 2, 3, 4, + /* 360 */ 5, 6, 94, 210, 71, 109, 215, 174, 23, 135, + /* 370 */ 109, 81, 109, 207, 92, 140, 144, 71, 176, 92, + /* 380 */ 149, 92, 109, 202, 198, 159, 227, 120, 214, 75, + /* 390 */ 132, 92, 243, 180, 118, 109, 178, 221, 241, 147, + /* 400 */ 215, 329, 109, 126, 92, 26, 109, 118, 165, 151, + /* 410 */ 143, 92, 11, 191, 205, 92, 109, 240, 155, 232, + /* 420 */ 159, 246, 71, 109, 105, 92, 214, 25, 109, 73, + /* 430 */ 159, 254, 92, 179, 142, 193, 198, 92, 213, 277, + /* 440 */ 109, 107, 109, 82, 109, 233, 33, 109, 41, 92, + /* 450 */ 155, 92, 100, 92, 109, 183, 92, 230, 43, 109, + /* 460 */ 278, 109, 159, 92, 109, 35, 109, 279, 92, 146, + /* 470 */ 92, 134, 66, 92, 251, 92, 109, 45, 162, 163, + /* 480 */ 164, 203, 204, 109, 37, 92, 24, 109, 47, 109, + /* 490 */ 109, 59, 92, 327, 49, 109, 92, 9, 92, 92, + /* 500 */ 154, 85, 109, 197, 92, 155, 109, 169, 31, 109, + /* 510 */ 51, 92, 109, 212, 248, 92, 125, 159, 92, 155, + /* 520 */ 172, 92, 170, 63, 68, 109, 109, 53, 109, 39, + /* 530 */ 137, 159, 99, 211, 92, 92, 280, 92, 208, 216, + /* 540 */ 55, 109, 109, 61, 223, 109, 212, 109, 109, 12, + /* 550 */ 92, 92, 127, 103, 92, 57, 92, 92, 109, 129, + /* 560 */ 88, 109, 184, 99, 218, 182, 222, 92, 187, 84, + /* 570 */ 92, 109, 281, 109, 282, 87, 283, 109, 109, 284, + /* 580 */ 92, 285, 92, 363, 90, 91, 92, 92, 13, 119, + /* 590 */ 200, 70, 95, 157, 206, 97, 288, 209, 225, 219, + /* 600 */ 15, 220, 289, 136, 224, 148, 325, 145, 228, 296, + /* 610 */ 231, 229, 328, 252, 234, 236, 131, 250, 239, 253, + /* 620 */ 22, 245, 8, 244, 302, 141, 247, 249, 139, 122, + /* 630 */ 326, 121, 138, 123, 125, 260, 20, 7, }; -static YYCODETYPE yy_lookahead[] = { +static PPCODETYPE pp_lookahead[] = { /* 0 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* 10 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 20 */ 21, 22, 23, 49, 1, 2, 3, 4, 5, 6, + /* 20 */ 21, 22, 23, 23, 1, 2, 3, 4, 5, 6, /* 30 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 40 */ 17, 18, 19, 20, 21, 22, 23, 58, 59, 60, - /* 50 */ 0, 52, 53, 30, 25, 32, 27, 1, 2, 3, + /* 40 */ 17, 18, 19, 20, 21, 22, 23, 21, 22, 23, + /* 50 */ 96, 52, 53, 30, 25, 32, 27, 1, 2, 3, /* 60 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, /* 70 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 80 */ 16, 17, 18, 19, 20, 21, 22, 23, 32, 78, + /* 80 */ 16, 17, 18, 19, 20, 21, 22, 23, 32, 64, /* 90 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* 100 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 110 */ 21, 22, 23, 1, 2, 3, 4, 5, 6, 7, - /* 120 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 130 */ 18, 19, 20, 21, 22, 23, 9, 10, 11, 12, - /* 140 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 150 */ 23, 0, 63, 21, 22, 23, 30, 45, 32, 1, + /* 110 */ 21, 22, 23, 3, 4, 5, 6, 7, 8, 9, + /* 120 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 130 */ 20, 21, 22, 23, 45, 40, 1, 2, 3, 4, + /* 140 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 150 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, /* 160 */ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, /* 170 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 180 */ 22, 23, 3, 4, 5, 6, 7, 8, 9, 10, - /* 190 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 200 */ 21, 22, 23, 17, 28, 29, 20, 56, 0, 23, - /* 210 */ 24, 11, 12, 54, 17, 25, 30, 20, 0, 25, - /* 220 */ 23, 24, 22, 33, 34, 35, 36, 30, 38, 39, - /* 230 */ 44, 45, 33, 34, 35, 36, 23, 38, 39, 45, - /* 240 */ 30, 44, 32, 25, 58, 59, 60, 61, 62, 88, - /* 250 */ 64, 65, 66, 67, 68, 58, 59, 60, 61, 62, - /* 260 */ 88, 64, 65, 66, 67, 68, 17, 106, 88, 20, - /* 270 */ 109, 110, 23, 24, 0, 57, 115, 64, 106, 30, - /* 280 */ 20, 79, 110, 23, 24, 31, 106, 115, 43, 44, - /* 290 */ 30, 0, 25, 44, 114, 115, 0, 117, 118, 19, - /* 300 */ 20, 21, 22, 23, 44, 55, 80, 58, 59, 60, - /* 310 */ 61, 62, 45, 64, 65, 66, 67, 68, 58, 59, - /* 320 */ 60, 61, 62, 69, 64, 65, 66, 67, 68, 11, - /* 330 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 340 */ 22, 23, 13, 14, 15, 16, 17, 18, 19, 20, - /* 350 */ 21, 22, 23, 88, 88, 71, 72, 73, 74, 75, - /* 360 */ 76, 77, 91, 92, 93, 104, 105, 106, 81, 88, - /* 370 */ 34, 106, 106, 37, 105, 106, 50, 111, 112, 114, - /* 380 */ 115, 115, 88, 118, 82, 84, 102, 106, 87, 88, - /* 390 */ 0, 97, 108, 31, 100, 114, 115, 86, 26, 118, - /* 400 */ 106, 90, 91, 92, 93, 88, 44, 106, 88, 115, - /* 410 */ 88, 113, 113, 41, 97, 85, 115, 100, 46, 89, - /* 420 */ 48, 87, 88, 106, 94, 88, 106, 88, 106, 88, - /* 430 */ 88, 69, 115, 88, 112, 115, 106, 115, 118, 100, - /* 440 */ 106, 88, 51, 106, 107, 106, 88, 106, 106, 115, - /* 450 */ 89, 106, 115, 94, 115, 94, 115, 115, 88, 106, - /* 460 */ 115, 88, 31, 25, 106, 106, 88, 106, 115, 88, - /* 470 */ 0, 88, 88, 115, 88, 44, 106, 88, 34, 106, - /* 480 */ 113, 37, 0, 45, 106, 115, 23, 106, 115, 106, - /* 490 */ 106, 88, 106, 115, 88, 106, 115, 88, 115, 115, - /* 500 */ 69, 115, 88, 17, 115, 88, 25, 88, 88, 106, - /* 510 */ 88, 34, 106, 88, 37, 106, 30, 44, 115, 25, - /* 520 */ 106, 115, 25, 106, 115, 106, 106, 88, 106, 115, - /* 530 */ 88, 106, 115, 88, 115, 115, 0, 115, 88, 45, - /* 540 */ 115, 88, 45, 88, 88, 106, 88, 98, 106, 88, - /* 550 */ 101, 106, 25, 64, 115, 44, 106, 115, 89, 106, - /* 560 */ 115, 106, 106, 94, 106, 115, 94, 106, 115, 89, - /* 570 */ 115, 115, 45, 115, 94, 106, 115, 30, 106, 45, - /* 580 */ 30, 44, 28, 45, 116, 45, 106, 30, 44, 31, - /* 590 */ 30, 30, 56, 51, 25, 83, 30, 30, 95, 40, - /* 600 */ 96, 30, 34, 30, 34, 30, 34, 30, 30, 30, - /* 610 */ 34, 30, 30, 30, 34, 30, 30, 0, 44, 30, - /* 620 */ 0, 101, 103, 78, 0, 0, 42, 113, 25, 3, - /* 630 */ 43, 78, 44, 103, 0, 27, 119, 47, + /* 180 */ 22, 23, 17, 98, 31, 20, 101, 50, 23, 24, + /* 190 */ 58, 59, 60, 17, 25, 30, 20, 44, 63, 23, + /* 200 */ 24, 88, 33, 34, 35, 36, 30, 38, 39, 44, + /* 210 */ 45, 33, 34, 35, 36, 34, 38, 39, 37, 106, + /* 220 */ 44, 0, 69, 58, 59, 60, 61, 62, 115, 64, + /* 230 */ 65, 66, 67, 68, 58, 59, 60, 61, 62, 95, + /* 240 */ 64, 65, 66, 67, 68, 17, 25, 88, 20, 11, + /* 250 */ 12, 23, 24, 19, 20, 21, 22, 23, 30, 20, + /* 260 */ 22, 81, 23, 24, 31, 106, 104, 105, 106, 30, + /* 270 */ 30, 25, 44, 114, 115, 86, 117, 118, 57, 90, + /* 280 */ 91, 92, 93, 44, 105, 106, 58, 59, 60, 61, + /* 290 */ 62, 45, 64, 65, 66, 67, 68, 58, 59, 60, + /* 300 */ 61, 62, 69, 64, 65, 66, 67, 68, 9, 10, + /* 310 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 320 */ 21, 22, 23, 11, 12, 13, 14, 15, 16, 17, + /* 330 */ 18, 19, 20, 21, 22, 23, 13, 14, 15, 16, + /* 340 */ 17, 18, 19, 20, 21, 22, 23, 88, 23, 31, + /* 350 */ 30, 30, 88, 32, 88, 71, 72, 73, 74, 75, + /* 360 */ 76, 77, 44, 97, 88, 106, 100, 34, 109, 110, + /* 370 */ 106, 44, 106, 94, 115, 111, 112, 88, 34, 115, + /* 380 */ 84, 115, 106, 87, 88, 106, 102, 69, 88, 64, + /* 390 */ 114, 115, 108, 34, 118, 106, 37, 97, 88, 26, + /* 400 */ 100, 0, 106, 114, 115, 88, 106, 118, 94, 85, + /* 410 */ 88, 115, 82, 89, 41, 115, 106, 107, 94, 46, + /* 420 */ 106, 48, 88, 106, 88, 115, 88, 110, 106, 88, + /* 430 */ 106, 0, 115, 34, 112, 87, 88, 115, 100, 30, + /* 440 */ 106, 88, 106, 88, 106, 89, 88, 106, 88, 115, + /* 450 */ 94, 115, 118, 115, 106, 34, 115, 56, 88, 106, + /* 460 */ 30, 106, 106, 115, 106, 88, 106, 30, 115, 88, + /* 470 */ 115, 88, 88, 115, 0, 115, 106, 88, 91, 92, + /* 480 */ 93, 28, 29, 106, 88, 115, 25, 106, 88, 106, + /* 490 */ 106, 88, 115, 0, 88, 106, 115, 80, 115, 115, + /* 500 */ 89, 45, 106, 17, 115, 94, 106, 88, 88, 106, + /* 510 */ 88, 115, 106, 25, 89, 115, 30, 106, 115, 94, + /* 520 */ 30, 115, 32, 88, 88, 106, 106, 88, 106, 88, + /* 530 */ 88, 106, 25, 45, 115, 115, 30, 115, 43, 44, + /* 540 */ 88, 106, 106, 88, 25, 106, 25, 106, 106, 56, + /* 550 */ 115, 115, 45, 88, 115, 88, 115, 115, 106, 88, + /* 560 */ 88, 106, 34, 25, 45, 37, 45, 115, 34, 30, + /* 570 */ 115, 106, 30, 106, 30, 44, 30, 106, 106, 30, + /* 580 */ 115, 30, 115, 45, 30, 45, 115, 115, 113, 28, + /* 590 */ 30, 44, 116, 30, 42, 45, 0, 44, 30, 43, + /* 600 */ 113, 44, 0, 55, 101, 83, 0, 49, 78, 0, + /* 610 */ 113, 103, 0, 0, 47, 25, 44, 0, 3, 0, + /* 620 */ 51, 103, 79, 78, 0, 25, 27, 0, 51, 31, + /* 630 */ 0, 30, 54, 30, 30, 119, 113, 78, }; -#define YY_SHIFT_USE_DFLT (-27) -static short yy_shift_ofst[] = { - /* 0 */ 372, 50, 208, 274, 291, 296, -26, 159, 250, 326, - /* 10 */ 151, 390, -11, 218, -11, 470, -27, -27, -27, -11, - /* 20 */ 482, 391, 260, 481, 260, -27, -1, -27, -27, 260, - /* 30 */ 260, 132, 260, 132, 260, 280, 260, 280, 260, 280, - /* 40 */ 260, 318, 260, 318, 260, 64, 260, 64, 260, 64, - /* 50 */ 260, 127, 260, 127, 260, 127, 260, 127, 260, 127, - /* 60 */ 260, 127, 260, 329, 200, 260, 463, 260, 329, 473, - /* 70 */ 197, 158, 260, 158, 213, -27, 489, -27, 260, 179, - /* 80 */ 511, 260, 56, 547, 534, -27, 537, 260, 89, 550, - /* 90 */ 538, -27, -27, 362, 554, 186, 540, -27, 194, 197, - /* 100 */ -27, -27, 260, 463, 260, 463, 260, 112, -27, -27, - /* 110 */ -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, - /* 120 */ 557, 558, 560, -27, 561, -27, 267, -27, 260, 463, - /* 130 */ 544, 197, 438, -27, 132, -27, 260, 158, 542, 260, - /* 140 */ 569, 260, -27, 158, -27, 260, 158, 176, 249, 29, - /* 150 */ 566, 190, -27, 566, -27, 126, 567, -27, -27, -27, - /* 160 */ 254, 199, -27, -27, 566, 210, 559, -27, 260, 158, - /* 170 */ 571, -27, -27, 568, 573, 570, 575, 336, 572, 577, - /* 180 */ 578, 444, 576, 579, 581, 477, 580, 582, 583, 585, - /* 190 */ -27, -27, 249, -27, -27, 431, 486, -27, 23, 586, - /* 200 */ -27, -27, -27, -27, -27, 584, 566, 245, 574, 260, - /* 210 */ 494, 617, 260, -27, 158, -27, 589, 497, 587, 588, - /* 220 */ 260, 527, 620, 589, -27, -27, -27, -26, 536, 624, - /* 230 */ -11, 625, 566, 590, 566, 603, 566, -27, 626, 260, - /* 240 */ -27, 158, -27, -26, 536, 634, 608, 566, -27, +#define PP_SHIFT_USE_DFLT (-2) +static short pp_shift_ofst[] = { + /* 0 */ 373, 627, 617, 474, 613, 619, 558, 578, 548, 137, + /* 10 */ 493, 431, 132, 221, 132, 606, -2, -2, -2, 132, + /* 20 */ 630, 569, 239, 461, 239, -2, -1, -2, -2, 239, + /* 30 */ 239, 26, 239, 26, 239, 234, 239, 234, 239, 234, + /* 40 */ 239, 312, 239, 312, 239, 64, 239, 64, 239, 64, + /* 50 */ 239, 299, 239, 299, 239, 299, 239, 299, 239, 299, + /* 60 */ 239, 299, 239, 323, 238, 239, 0, 239, 323, 547, + /* 70 */ 176, 158, 239, 158, 325, -2, 25, -2, 239, 110, + /* 80 */ 327, 239, 56, 539, 456, -2, 531, 239, 135, 554, + /* 90 */ 540, -2, -2, 318, 561, 165, 550, -2, 538, 176, + /* 100 */ -2, -2, 239, 0, 239, 0, 239, 89, -2, -2, + /* 110 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, + /* 120 */ 601, 598, 603, -2, 604, -2, 507, -2, 239, 0, + /* 130 */ 572, 176, 246, -2, 26, -2, 239, 158, 577, 239, + /* 140 */ 600, 239, -2, 158, -2, 239, 158, 453, 228, 29, + /* 150 */ 320, 169, -2, 320, -2, 321, 563, -2, -2, -2, + /* 160 */ 233, 178, -2, -2, 320, 490, 95, -2, 239, 158, + /* 170 */ 240, -2, -2, 333, 409, 344, 430, 359, 399, 437, + /* 180 */ 506, 528, 421, 542, 544, 181, 534, 546, 549, 551, + /* 190 */ -2, -2, 228, -2, -2, 153, 486, -2, 23, 560, + /* 200 */ -2, -2, -2, -2, -2, 552, 320, 495, 553, 239, + /* 210 */ 488, 596, 239, -2, 158, -2, 568, 519, 556, 557, + /* 220 */ 239, 521, 602, 568, -2, -2, -2, 558, 401, 609, + /* 230 */ 132, 612, 320, 567, 320, 590, 320, -2, 615, 239, + /* 240 */ -2, 158, -2, 558, 401, 624, 599, 320, -2, }; -#define YY_REDUCE_USE_DFLT (-1) -static short yy_reduce_ofst[] = { - /* 0 */ 284, -1, -1, -1, -1, -1, 11, 202, 226, 287, - /* 10 */ 302, -1, 298, -1, 299, -1, -1, -1, -1, 367, - /* 20 */ -1, -1, 161, -1, 172, -1, -1, -1, -1, 341, - /* 30 */ 342, -1, 345, -1, 353, -1, 358, -1, 370, -1, - /* 40 */ 373, -1, 378, -1, 381, -1, 383, -1, 384, -1, - /* 50 */ 386, -1, 389, -1, 403, -1, 406, -1, 409, -1, - /* 60 */ 414, -1, 417, -1, -1, 419, -1, 420, -1, -1, - /* 70 */ 265, -1, 422, -1, -1, -1, -1, -1, 425, -1, - /* 80 */ -1, 439, -1, -1, -1, -1, -1, 442, -1, -1, - /* 90 */ -1, -1, -1, -1, 468, 180, -1, -1, -1, 320, - /* 100 */ -1, -1, 445, -1, 450, -1, 453, -1, -1, -1, - /* 110 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 120 */ -1, -1, -1, -1, -1, -1, -1, -1, 455, -1, - /* 130 */ -1, 281, -1, -1, -1, -1, 458, -1, -1, 266, - /* 140 */ -1, 322, -1, -1, -1, 461, -1, 512, 301, -1, - /* 150 */ 330, 311, -1, 361, -1, -1, -1, -1, -1, -1, - /* 160 */ -1, 271, -1, -1, 359, 503, 504, -1, 456, -1, - /* 170 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 180 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 190 */ -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, - /* 200 */ -1, -1, -1, -1, -1, -1, 472, -1, -1, 294, - /* 210 */ -1, -1, 339, -1, -1, -1, 449, -1, -1, -1, - /* 220 */ 317, -1, -1, 520, -1, -1, -1, 545, 519, -1, - /* 230 */ 514, -1, 469, -1, 261, -1, 269, -1, -1, 337, - /* 240 */ -1, -1, -1, 553, 530, -1, -1, 480, -1, +#define PP_REDUCE_USE_DFLT (-47) +static short pp_reduce_ofst[] = { + /* 0 */ 284, -47, -47, -47, -47, -47, 559, 543, 417, 180, + /* 10 */ 330, -47, 475, -47, 487, -47, -47, -47, -47, 523, + /* 20 */ -47, -47, 259, -47, 317, -47, -47, -47, -47, 383, + /* 30 */ 420, -47, 358, -47, 377, -47, 396, -47, 441, -47, + /* 40 */ 360, -47, 370, -47, 389, -47, 400, -47, 406, -47, + /* 50 */ 422, -47, 439, -47, 452, -47, 467, -47, 403, -47, + /* 60 */ 455, -47, 435, -47, -47, 384, -47, 436, -47, -47, + /* 70 */ 289, -47, 341, -47, -47, -47, -47, -47, 113, -47, + /* 80 */ -47, 355, -47, -47, -47, -47, -47, 472, -47, -47, + /* 90 */ -47, -47, -47, -47, 476, 159, -47, -47, -47, 334, + /* 100 */ -47, -47, 465, -47, 336, -47, 353, -47, -47, -47, + /* 110 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 120 */ -47, -47, -47, -47, -47, -47, -47, -47, 471, -47, + /* 130 */ -47, 276, -47, -47, -47, -47, 442, -47, -47, 264, + /* 140 */ -47, 322, -47, -47, -47, 381, -47, 522, 296, -47, + /* 150 */ 324, 189, -47, 411, -47, -47, -47, -47, -47, -47, + /* 160 */ -47, 387, -47, -47, 314, 144, -46, -47, 419, -47, + /* 170 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 180 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 190 */ -47, -47, 348, -47, -47, -47, -47, -47, -47, -47, + /* 200 */ -47, -47, -47, -47, -47, -47, 279, -47, -47, 266, + /* 210 */ -47, -47, 338, -47, -47, -47, 85, -47, -47, -47, + /* 220 */ 300, -47, -47, 503, -47, -47, -47, 530, 508, -47, + /* 230 */ 497, -47, 356, -47, 162, -47, 179, -47, -47, 310, + /* 240 */ -47, -47, -47, 545, 518, -47, -47, 425, -47, }; -static YYACTIONTYPE yy_default[] = { +static PPACTIONTYPE pp_default[] = { /* 0 */ 388, 388, 388, 388, 388, 388, 309, 318, 323, 311, /* 10 */ 388, 388, 388, 388, 388, 388, 330, 331, 332, 388, /* 20 */ 388, 388, 388, 310, 388, 312, 314, 315, 316, 388, @@ -94777,7 +97149,7 @@ static YYACTIONTYPE yy_default[] = { /* 230 */ 388, 388, 388, 388, 388, 297, 388, 298, 388, 388, /* 240 */ 300, 301, 299, 309, 388, 388, 388, 388, 303, }; -#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) +#define PP_SZ_ACTTAB (sizeof(pp_action)/sizeof(pp_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: @@ -94789,10 +97161,10 @@ static YYACTIONTYPE yy_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { +#ifdef PPFALLBACK +static const PPCODETYPE ppFallback[] = { }; -#endif /* YYFALLBACK */ +#endif /* PPFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -94806,44 +97178,44 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { +struct ppStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This + PPMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct yyStackEntry yyStackEntry; +typedef struct ppStackEntry ppStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ - int yyerrcnt; /* Shifts left before out of the error */ +struct ppParser { + int ppidx; /* Index of top element in stack */ + int pperrcnt; /* Shifts left before out of the error */ phql_ARG_SDECL /* A place to hold %extra_argument */ - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + ppStackEntry ppstack[PPSTACKDEPTH]; /* The parser's stack */ }; -typedef struct yyParser yyParser; +typedef struct ppParser ppParser; #ifndef NDEBUG #include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; +static FILE *ppTraceFILE = 0; +static char *ppTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phql_Trace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; + ppTraceFILE = TraceFILE; + ppTracePrompt = zTracePrompt; + if( ppTraceFILE==0 ) ppTracePrompt = 0; + else if( ppTracePrompt==0 ) ppTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *ppTokenName[] = { "$", "AGAINST", "BETWEEN", "EQUALS", "NOTEQUALS", "LESS", "GREATER", "GREATEREQUAL", "LESSEQUAL", "AND", "OR", "LIKE", @@ -94880,7 +97252,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *ppRuleName[] = { /* 0 */ "program ::= query_language", /* 1 */ "query_language ::= select_statement", /* 2 */ "query_language ::= insert_statement", @@ -95025,8 +97397,8 @@ static const char *yyRuleName[] = { const char *phql_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ - return yyTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(ppTokenName)/sizeof(ppTokenName[0])) ){ + return ppTokenName[tokenType]; }else{ return "Unknown"; } @@ -95036,21 +97408,21 @@ const char *phql_TokenName(int tokenType){ } void *phql_Alloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + ppParser *pParser; + pParser = (ppParser*)(*mallocProc)( (size_t)sizeof(ppParser) ); if( pParser ){ - pParser->yyidx = -1; + pParser->ppidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to +** "ppmajor" is the symbol code, and "pppminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ - switch( yymajor ){ +static void pp_destructor(PPCODETYPE ppmajor, PPMINORTYPE *pppminor){ + switch( ppmajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -95132,11 +97504,11 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 69: // 541 "parser.lemon" { - if ((yypminor->yy0)) { - if ((yypminor->yy0)->free_flag) { - efree((yypminor->yy0)->token); + if ((pppminor->pp0)) { + if ((pppminor->pp0)->free_flag) { + efree((pppminor->pp0)->token); } - efree((yypminor->yy0)); + efree((pppminor->pp0)); } } // 1171 "parser.c" @@ -95173,7 +97545,7 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 115: case 118: // 554 "parser.lemon" -{ zval_ptr_dtor(&(yypminor->yy92)); } +{ zval_ptr_dtor(&(pppminor->pp92)); } // 1206 "parser.c" break; case 78: @@ -95188,133 +97560,133 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 116: case 117: // 842 "parser.lemon" -{ zephir_safe_zval_ptr_dtor((yypminor->yy92)); } +{ zephir_safe_zval_ptr_dtor((pppminor->pp92)); } // 1221 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int pp_pop_parser_stack(ppParser *pParser){ + PPCODETYPE ppmajor; + ppStackEntry *pptos = &pParser->ppstack[pParser->ppidx]; - if( pParser->yyidx<0 ) return 0; + if( pParser->ppidx<0 ) return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); + if( ppTraceFILE && pParser->ppidx>=0 ){ + fprintf(ppTraceFILE,"%sPopping %s\n", + ppTracePrompt, + ppTokenName[pptos->major]); } #endif - yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + ppmajor = pptos->major; + pp_destructor( ppmajor, &pptos->minor); + pParser->ppidx--; + return ppmajor; } static void phql_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - yyParser *pParser = (yyParser*)p; + ppParser *pParser = (ppParser*)p; if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + while( pParser->ppidx>=0 ) pp_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ +static int pp_find_shift_action( + ppParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ - i = yy_shift_ofst[stateno]; - if( i==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; + /* if( pParser->ppidx<0 ) return PP_NO_ACTION; */ + i = pp_shift_ofst[stateno]; + if( i==PP_SHIFT_USE_DFLT ){ + return pp_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ -#ifdef YYFALLBACK + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ +#ifdef PPFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE, "%sFALLBACK %s => %s\n", + ppTracePrompt, ppTokenName[iLookAhead], ppTokenName[iFallback]); } #endif - return yy_find_shift_action(pParser, iFallback); + return pp_find_shift_action(pParser, iFallback); } #endif - return yy_default[stateno]; + return pp_default[stateno]; }else{ - return yy_action[i]; + return pp_action[i]; } } -static int yy_find_reduce_action( - yyParser *pParser, /* The parser */ +static int pp_find_reduce_action( + ppParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - i = yy_reduce_ofst[stateno]; - if( i==YY_REDUCE_USE_DFLT ){ - return yy_default[stateno]; + i = pp_reduce_ofst[stateno]; + if( i==PP_REDUCE_USE_DFLT ){ + return pp_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ + return pp_default[stateno]; }else{ - return yy_action[i]; + return pp_action[i]; } } -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +static void pp_shift( + ppParser *pppParser, /* The parser to be shifted */ + int ppNewState, /* The new state to shift in */ + int ppMajor, /* The major token to shift in */ + PPMINORTYPE *pppMinor /* Pointer ot the minor token to shift in */ ){ - yyStackEntry *yytos; - yypParser->yyidx++; - if( yypParser->yyidx>=YYSTACKDEPTH ){ + ppStackEntry *pptos; + pppParser->ppidx++; + if( pppParser->ppidx>=PPSTACKDEPTH ){ phql_ARG_FETCH; - yypParser->yyidx--; + pppParser->ppidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sStack Overflow!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; - yytos->minor = *yypMinor; + pptos = &pppParser->ppstack[pppParser->ppidx]; + pptos->stateno = ppNewState; + pptos->major = ppMajor; + pptos->minor = *pppMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ + if( ppTraceFILE && pppParser->ppidx>0 ){ int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); + fprintf(ppTraceFILE,"%sShift %d\n",ppTracePrompt,ppNewState); + fprintf(ppTraceFILE,"%sStack:",ppTracePrompt); + for(i=1; i<=pppParser->ppidx; i++) + fprintf(ppTraceFILE," %s",ppTokenName[pppParser->ppstack[i].major]); + fprintf(ppTraceFILE,"\n"); } #endif } @@ -95323,9 +97695,9 @@ static void yy_shift( ** is used during the reduce. */ static struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + PPCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { +} ppRuleInfo[] = { { 71, 1 }, { 72, 1 }, { 72, 1 }, @@ -95467,28 +97839,28 @@ static struct { { 106, 1 }, }; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void pp_accept(ppParser*); /* Forward Declaration */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ +static void pp_reduce( + ppParser *pppParser, /* The parser */ + int ppruleno /* Number of the rule by which to reduce */ ){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ + int ppgoto; /* The next state */ + int ppact; /* The next action */ + PPMINORTYPE ppgotominor; /* The LHS of the rule reduced */ + ppStackEntry *ppmsp; /* The top of the parser's stack */ + int ppsize; /* Amount to pop the stack */ phql_ARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; + ppmsp = &pppParser->ppstack[pppParser->ppidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno=0 + && pprulenoret = yymsp[0].minor.yy92; + status->ret = ppmsp[0].minor.pp92; } // 1577 "parser.c" break; @@ -95525,39 +97897,39 @@ static void yy_reduce( case 126: // 556 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; + ppgotominor.pp92 = ppmsp[0].minor.pp92; } // 1602 "parser.c" break; case 5: // 574 "parser.lemon" { - yygotominor.yy92 = phql_ret_select_statement(yymsp[-5].minor.yy92, yymsp[-4].minor.yy92, yymsp[-1].minor.yy92, yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_select_statement(ppmsp[-5].minor.pp92, ppmsp[-4].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[-3].minor.pp92, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); } // 1609 "parser.c" break; case 6: // 580 "parser.lemon" { - yygotominor.yy92 = phql_ret_select_clause(yymsp[-4].minor.yy92, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(26,&yymsp[-5].minor); - yy_destructor(27,&yymsp[-2].minor); + ppgotominor.pp92 = phql_ret_select_clause(ppmsp[-4].minor.pp92, ppmsp[-3].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(26,&ppmsp[-5].minor); + pp_destructor(27,&ppmsp[-2].minor); } // 1618 "parser.c" break; case 7: // 586 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct_all(1); - yy_destructor(28,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct_all(1); + pp_destructor(28,&ppmsp[0].minor); } // 1626 "parser.c" break; case 8: // 590 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct_all(0); - yy_destructor(29,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct_all(0); + pp_destructor(29,&ppmsp[0].minor); } // 1634 "parser.c" break; @@ -95575,7 +97947,7 @@ static void yy_reduce( case 115: // 594 "parser.lemon" { - yygotominor.yy92 = NULL; + ppgotominor.pp92 = NULL; } // 1652 "parser.c" break; @@ -95589,8 +97961,8 @@ static void yy_reduce( case 116: // 600 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(25,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(25,&ppmsp[-1].minor); } // 1667 "parser.c" break; @@ -95600,7 +97972,7 @@ static void yy_reduce( case 117: // 604 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[0].minor.yy92, NULL); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[0].minor.pp92, NULL); } // 1677 "parser.c" break; @@ -95608,61 +97980,61 @@ static void yy_reduce( case 118: // 610 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_STARALL, NULL, NULL, NULL); - yy_destructor(17,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_STARALL, NULL, NULL, NULL); + pp_destructor(17,&ppmsp[0].minor); } // 1686 "parser.c" break; case 13: // 614 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_DOMAINALL, NULL, yymsp[-2].minor.yy0, NULL); - yy_destructor(31,&yymsp[-1].minor); - yy_destructor(17,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_DOMAINALL, NULL, ppmsp[-2].minor.pp0, NULL); + pp_destructor(31,&ppmsp[-1].minor); + pp_destructor(17,&ppmsp[0].minor); } // 1695 "parser.c" break; case 14: // 618 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[-2].minor.yy92, NULL, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[-2].minor.pp92, NULL, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1703 "parser.c" break; case 15: // 622 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[-1].minor.yy92, NULL, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[-1].minor.pp92, NULL, ppmsp[0].minor.pp0); } // 1710 "parser.c" break; case 16: // 626 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[0].minor.yy92, NULL, NULL); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[0].minor.pp92, NULL, NULL); } // 1717 "parser.c" break; case 21: // 650 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1724 "parser.c" break; case 24: // 667 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_item(yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_join_item(ppmsp[-3].minor.pp92, ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1731 "parser.c" break; case 25: // 673 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, NULL, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, NULL, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1739 "parser.c" break; @@ -95671,243 +98043,243 @@ static void yy_reduce( case 138: // 677 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, NULL, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, NULL, ppmsp[0].minor.pp0); } // 1748 "parser.c" break; case 28: // 687 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_INNERJOIN); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_INNERJOIN); + pp_destructor(33,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1757 "parser.c" break; case 29: // 691 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_CROSSJOIN); - yy_destructor(35,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_CROSSJOIN); + pp_destructor(35,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1766 "parser.c" break; case 30: // 695 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_LEFTJOIN); - yy_destructor(36,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_LEFTJOIN); + pp_destructor(36,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1776 "parser.c" break; case 31: // 699 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_LEFTJOIN); - yy_destructor(36,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_LEFTJOIN); + pp_destructor(36,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1785 "parser.c" break; case 32: // 703 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); - yy_destructor(38,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); + pp_destructor(38,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1795 "parser.c" break; case 33: // 707 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); - yy_destructor(38,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); + pp_destructor(38,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1804 "parser.c" break; case 34: // 711 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_FULLJOIN); - yy_destructor(39,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_FULLJOIN); + pp_destructor(39,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1814 "parser.c" break; case 35: // 715 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_FULLJOIN); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_FULLJOIN); + pp_destructor(39,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1823 "parser.c" break; case 36: // 719 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_INNERJOIN); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_INNERJOIN); + pp_destructor(34,&ppmsp[0].minor); } // 1831 "parser.c" break; case 37: // 725 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(40,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(40,&ppmsp[-1].minor); } // 1839 "parser.c" break; case 39: // 736 "parser.lemon" { - yygotominor.yy92 = phql_ret_insert_statement(yymsp[-4].minor.yy92, NULL, yymsp[-1].minor.yy92); - yy_destructor(41,&yymsp[-6].minor); - yy_destructor(42,&yymsp[-5].minor); - yy_destructor(43,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_insert_statement(ppmsp[-4].minor.pp92, NULL, ppmsp[-1].minor.pp92); + pp_destructor(41,&ppmsp[-6].minor); + pp_destructor(42,&ppmsp[-5].minor); + pp_destructor(43,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 1851 "parser.c" break; case 40: // 740 "parser.lemon" { - yygotominor.yy92 = phql_ret_insert_statement(yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(41,&yymsp[-9].minor); - yy_destructor(42,&yymsp[-8].minor); - yy_destructor(44,&yymsp[-6].minor); - yy_destructor(45,&yymsp[-4].minor); - yy_destructor(43,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_insert_statement(ppmsp[-7].minor.pp92, ppmsp[-5].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(41,&ppmsp[-9].minor); + pp_destructor(42,&ppmsp[-8].minor); + pp_destructor(44,&ppmsp[-6].minor); + pp_destructor(45,&ppmsp[-4].minor); + pp_destructor(43,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 1865 "parser.c" break; case 47: // 778 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_statement(yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_update_statement(ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1872 "parser.c" break; case 48: // 784 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_clause(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(46,&yymsp[-3].minor); - yy_destructor(47,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_update_clause(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(46,&ppmsp[-3].minor); + pp_destructor(47,&ppmsp[-1].minor); } // 1881 "parser.c" break; case 51: // 800 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_item(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(3,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_update_item(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(3,&ppmsp[-1].minor); } // 1889 "parser.c" break; case 53: // 812 "parser.lemon" { - yygotominor.yy92 = phql_ret_delete_statement(yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_delete_statement(ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1896 "parser.c" break; case 54: // 818 "parser.lemon" { - yygotominor.yy92 = phql_ret_delete_clause(yymsp[0].minor.yy92); - yy_destructor(48,&yymsp[-2].minor); - yy_destructor(27,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_delete_clause(ppmsp[0].minor.pp92); + pp_destructor(48,&ppmsp[-2].minor); + pp_destructor(27,&ppmsp[-1].minor); } // 1905 "parser.c" break; case 55: // 824 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[-2].minor.yy92, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1913 "parser.c" break; case 56: // 828 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[-1].minor.yy92, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[-1].minor.pp92, ppmsp[0].minor.pp0); } // 1920 "parser.c" break; case 57: // 832 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[0].minor.yy92, NULL); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[0].minor.pp92, NULL); } // 1927 "parser.c" break; case 59: // 844 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(49,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(49,&ppmsp[-1].minor); } // 1935 "parser.c" break; case 61: // 854 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(50,&yymsp[-2].minor); - yy_destructor(51,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(50,&ppmsp[-2].minor); + pp_destructor(51,&ppmsp[-1].minor); } // 1944 "parser.c" break; case 65: // 874 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[0].minor.yy92, 0); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[0].minor.pp92, 0); } // 1951 "parser.c" break; case 66: // 878 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[-1].minor.yy92, PHQL_T_ASC); - yy_destructor(52,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[-1].minor.pp92, PHQL_T_ASC); + pp_destructor(52,&ppmsp[0].minor); } // 1959 "parser.c" break; case 67: // 882 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[-1].minor.yy92, PHQL_T_DESC); - yy_destructor(53,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[-1].minor.pp92, PHQL_T_DESC); + pp_destructor(53,&ppmsp[0].minor); } // 1967 "parser.c" break; case 68: // 888 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(54,&yymsp[-2].minor); - yy_destructor(51,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(54,&ppmsp[-2].minor); + pp_destructor(51,&ppmsp[-1].minor); } // 1976 "parser.c" break; case 73: // 914 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(55,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(55,&ppmsp[-1].minor); } // 1984 "parser.c" break; @@ -95915,26 +98287,26 @@ static void yy_reduce( case 79: // 924 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[0].minor.yy92, NULL); - yy_destructor(56,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[0].minor.pp92, NULL); + pp_destructor(56,&ppmsp[-1].minor); } // 1993 "parser.c" break; case 76: // 928 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[0].minor.yy92, yymsp[-2].minor.yy92); - yy_destructor(56,&yymsp[-3].minor); - yy_destructor(25,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[0].minor.pp92, ppmsp[-2].minor.pp92); + pp_destructor(56,&ppmsp[-3].minor); + pp_destructor(25,&ppmsp[-1].minor); } // 2002 "parser.c" break; case 77: // 932 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(56,&yymsp[-3].minor); - yy_destructor(57,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(56,&ppmsp[-3].minor); + pp_destructor(57,&ppmsp[-1].minor); } // 2011 "parser.c" break; @@ -95942,7 +98314,7 @@ static void yy_reduce( case 127: // 950 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_INTEGER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_INTEGER, ppmsp[0].minor.pp0); } // 2019 "parser.c" break; @@ -95950,7 +98322,7 @@ static void yy_reduce( case 133: // 954 "parser.lemon" { - yygotominor.yy92 = phql_ret_placeholder_zval(PHQL_T_NPLACEHOLDER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_placeholder_zval(PHQL_T_NPLACEHOLDER, ppmsp[0].minor.pp0); } // 2027 "parser.c" break; @@ -95958,397 +98330,397 @@ static void yy_reduce( case 134: // 958 "parser.lemon" { - yygotominor.yy92 = phql_ret_placeholder_zval(PHQL_T_SPLACEHOLDER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_placeholder_zval(PHQL_T_SPLACEHOLDER, ppmsp[0].minor.pp0); } // 2035 "parser.c" break; case 84: // 964 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MINUS, NULL, yymsp[0].minor.yy92); - yy_destructor(20,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MINUS, NULL, ppmsp[0].minor.pp92); + pp_destructor(20,&ppmsp[-1].minor); } // 2043 "parser.c" break; case 85: // 968 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_SUB, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(20,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_SUB, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(20,&ppmsp[-1].minor); } // 2051 "parser.c" break; case 86: // 972 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ADD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(19,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ADD, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(19,&ppmsp[-1].minor); } // 2059 "parser.c" break; case 87: // 976 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MUL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(17,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MUL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(17,&ppmsp[-1].minor); } // 2067 "parser.c" break; case 88: // 980 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_DIV, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(16,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_DIV, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(16,&ppmsp[-1].minor); } // 2075 "parser.c" break; case 89: // 984 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MOD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(18,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MOD, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(18,&ppmsp[-1].minor); } // 2083 "parser.c" break; case 90: // 988 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(9,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_AND, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(9,&ppmsp[-1].minor); } // 2091 "parser.c" break; case 91: // 992 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(10,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_OR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(10,&ppmsp[-1].minor); } // 2099 "parser.c" break; case 92: // 996 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(13,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_AND, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(13,&ppmsp[-1].minor); } // 2107 "parser.c" break; case 93: // 1000 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(14,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_OR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(14,&ppmsp[-1].minor); } // 2115 "parser.c" break; case 94: // 1004 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_XOR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(15,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_XOR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(15,&ppmsp[-1].minor); } // 2123 "parser.c" break; case 95: // 1008 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_EQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(3,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_EQUALS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(3,&ppmsp[-1].minor); } // 2131 "parser.c" break; case 96: // 1012 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOTEQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(4,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOTEQUALS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(4,&ppmsp[-1].minor); } // 2139 "parser.c" break; case 97: // 1016 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LESS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(5,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LESS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(5,&ppmsp[-1].minor); } // 2147 "parser.c" break; case 98: // 1020 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_GREATER, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(6,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_GREATER, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(6,&ppmsp[-1].minor); } // 2155 "parser.c" break; case 99: // 1024 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_GREATEREQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(7,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_GREATEREQUAL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(7,&ppmsp[-1].minor); } // 2163 "parser.c" break; case 100: // 1028 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LESSEQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(8,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LESSEQUAL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(8,&ppmsp[-1].minor); } // 2171 "parser.c" break; case 101: // 1032 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LIKE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(11,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LIKE, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(11,&ppmsp[-1].minor); } // 2179 "parser.c" break; case 102: // 1036 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NLIKE, yymsp[-3].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-2].minor); - yy_destructor(11,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NLIKE, ppmsp[-3].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-2].minor); + pp_destructor(11,&ppmsp[-1].minor); } // 2188 "parser.c" break; case 103: // 1040 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ILIKE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(12,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ILIKE, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(12,&ppmsp[-1].minor); } // 2196 "parser.c" break; case 104: // 1044 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NILIKE, yymsp[-3].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-2].minor); - yy_destructor(12,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NILIKE, ppmsp[-3].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-2].minor); + pp_destructor(12,&ppmsp[-1].minor); } // 2205 "parser.c" break; case 105: // 1048 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_IN, yymsp[-4].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(22,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_IN, ppmsp[-4].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(22,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2215 "parser.c" break; case 106: // 1052 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOTIN, yymsp[-5].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(23,&yymsp[-4].minor); - yy_destructor(22,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOTIN, ppmsp[-5].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(23,&ppmsp[-4].minor); + pp_destructor(22,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2226 "parser.c" break; case 107: // 1056 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_AGAINST, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(1,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_AGAINST, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(1,&ppmsp[-1].minor); } // 2234 "parser.c" break; case 108: // 1060 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_CAST, yymsp[-3].minor.yy92, phql_ret_raw_qualified_name(yymsp[-1].minor.yy0, NULL)); - yy_destructor(61,&yymsp[-5].minor); - yy_destructor(44,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_CAST, ppmsp[-3].minor.pp92, phql_ret_raw_qualified_name(ppmsp[-1].minor.pp0, NULL)); + pp_destructor(61,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-4].minor); + pp_destructor(32,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2245 "parser.c" break; case 109: // 1064 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_CONVERT, yymsp[-3].minor.yy92, phql_ret_raw_qualified_name(yymsp[-1].minor.yy0, NULL)); - yy_destructor(62,&yymsp[-5].minor); - yy_destructor(44,&yymsp[-4].minor); - yy_destructor(63,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_CONVERT, ppmsp[-3].minor.pp92, phql_ret_raw_qualified_name(ppmsp[-1].minor.pp0, NULL)); + pp_destructor(62,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-4].minor); + pp_destructor(63,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2256 "parser.c" break; case 111: // 1074 "parser.lemon" { - yygotominor.yy92 = phql_ret_func_call(yymsp[-4].minor.yy0, yymsp[-1].minor.yy92, yymsp[-2].minor.yy92); - yy_destructor(44,&yymsp[-3].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_func_call(ppmsp[-4].minor.pp0, ppmsp[-1].minor.pp92, ppmsp[-2].minor.pp92); + pp_destructor(44,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2265 "parser.c" break; case 112: // 1080 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct(); - yy_destructor(28,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct(); + pp_destructor(28,&ppmsp[0].minor); } // 2273 "parser.c" break; case 120: // 1118 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ISNULL, yymsp[-2].minor.yy92, NULL); - yy_destructor(21,&yymsp[-1].minor); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ISNULL, ppmsp[-2].minor.pp92, NULL); + pp_destructor(21,&ppmsp[-1].minor); + pp_destructor(64,&ppmsp[0].minor); } // 2282 "parser.c" break; case 121: // 1122 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ISNOTNULL, yymsp[-3].minor.yy92, NULL); - yy_destructor(21,&yymsp[-2].minor); - yy_destructor(23,&yymsp[-1].minor); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ISNOTNULL, ppmsp[-3].minor.pp92, NULL); + pp_destructor(21,&ppmsp[-2].minor); + pp_destructor(23,&ppmsp[-1].minor); + pp_destructor(64,&ppmsp[0].minor); } // 2292 "parser.c" break; case 122: // 1126 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BETWEEN, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(2,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BETWEEN, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(2,&ppmsp[-1].minor); } // 2300 "parser.c" break; case 123: // 1130 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOT, NULL, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOT, NULL, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-1].minor); } // 2308 "parser.c" break; case 124: // 1134 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_NOT, NULL, yymsp[0].minor.yy92); - yy_destructor(24,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_NOT, NULL, ppmsp[0].minor.pp92); + pp_destructor(24,&ppmsp[-1].minor); } // 2316 "parser.c" break; case 125: // 1138 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ENCLOSED, yymsp[-1].minor.yy92, NULL); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ENCLOSED, ppmsp[-1].minor.pp92, NULL); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2325 "parser.c" break; case 128: // 1150 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_STRING, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_STRING, ppmsp[0].minor.pp0); } // 2332 "parser.c" break; case 129: // 1154 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_DOUBLE, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_DOUBLE, ppmsp[0].minor.pp0); } // 2339 "parser.c" break; case 130: // 1158 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_NULL, NULL); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_NULL, NULL); + pp_destructor(64,&ppmsp[0].minor); } // 2347 "parser.c" break; case 131: // 1162 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_TRUE, NULL); - yy_destructor(67,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_TRUE, NULL); + pp_destructor(67,&ppmsp[0].minor); } // 2355 "parser.c" break; case 132: // 1166 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_FALSE, NULL); - yy_destructor(68,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_FALSE, NULL); + pp_destructor(68,&ppmsp[0].minor); } // 2363 "parser.c" break; case 135: // 1180 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(yymsp[-4].minor.yy0, yymsp[-2].minor.yy0, yymsp[0].minor.yy0); - yy_destructor(69,&yymsp[-3].minor); - yy_destructor(31,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(ppmsp[-4].minor.pp0, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(69,&ppmsp[-3].minor); + pp_destructor(31,&ppmsp[-1].minor); } // 2372 "parser.c" break; case 136: // 1184 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(yymsp[-2].minor.yy0, NULL, yymsp[0].minor.yy0); - yy_destructor(69,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(ppmsp[-2].minor.pp0, NULL, ppmsp[0].minor.pp0); + pp_destructor(69,&ppmsp[-1].minor); } // 2380 "parser.c" break; case 137: // 1188 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, yymsp[-2].minor.yy0, yymsp[0].minor.yy0); - yy_destructor(31,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(31,&ppmsp[-1].minor); } // 2388 "parser.c" break; }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yypParser,yygoto); - if( yyact < YYNSTATE ){ - yy_shift(yypParser,yyact,yygoto,&yygotominor); - }else if( yyact == YYNSTATE + YYNRULE + 1 ){ - yy_accept(yypParser); + ppgoto = ppRuleInfo[ppruleno].lhs; + ppsize = ppRuleInfo[ppruleno].nrhs; + pppParser->ppidx -= ppsize; + ppact = pp_find_reduce_action(pppParser,ppgoto); + if( ppact < PPNSTATE ){ + pp_shift(pppParser,ppact,ppgoto,&ppgotominor); + }else if( ppact == PPNSTATE + PPNRULE + 1 ){ + pp_accept(pppParser); } } -static void yy_parse_failed( - yyParser *yypParser /* The parser */ +static void pp_parse_failed( + ppParser *pppParser /* The parser */ ){ phql_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sFail!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ +static void pp_syntax_error( + ppParser *pppParser, /* The parser */ + int ppmajor, /* The major type of the error token */ + PPMINORTYPE ppminor /* The minor type of the error token */ ){ phql_ARG_FETCH; -#define TOKEN (yyminor.yy0) +#define TOKEN (ppminor.pp0) // 474 "parser.lemon" if (status->scanner_state->start_length) { @@ -96420,16 +98792,16 @@ static void yy_syntax_error( phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_accept( - yyParser *yypParser /* The parser */ +static void pp_accept( + ppParser *pppParser /* The parser */ ){ phql_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sAccept!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -96455,56 +98827,56 @@ static void yy_accept( ** None. */ static void phql_( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - phql_TOKENTYPE yyminor /* The value for the token */ + void *ppp, /* The parser */ + int ppmajor, /* The major token code number */ + phql_TOKENTYPE ppminor /* The value for the token */ phql_ARG_PDECL /* Optional %extra_argument parameter */ ){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ - int yyerrorhit = 0; /* True if yymajor has invoked an error */ - yyParser *yypParser; /* The parser */ + PPMINORTYPE ppminorunion; + int ppact; /* The parser action. */ + int ppendofinput; /* True if we are at the end of input */ + int pperrorhit = 0; /* True if ppmajor has invoked an error */ + ppParser *pppParser; /* The parser */ /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ - if( yymajor==0 ) return; - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + pppParser = (ppParser*)ppp; + if( pppParser->ppidx<0 ){ + if( ppmajor==0 ) return; + pppParser->ppidx = 0; + pppParser->pperrcnt = -1; + pppParser->ppstack[0].stateno = 0; + pppParser->ppstack[0].major = 0; } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); + ppminorunion.pp0 = ppminor; + ppendofinput = (ppmajor==0); phql_ARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sInput %s\n",ppTracePrompt,ppTokenName[ppmajor]); } #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); - if( yyactyyerrcnt--; - if( yyendofinput && yypParser->yyidx>=0 ){ - yymajor = 0; + ppact = pp_find_shift_action(pppParser,ppmajor); + if( ppactpperrcnt--; + if( ppendofinput && pppParser->ppidx>=0 ){ + ppmajor = 0; }else{ - yymajor = YYNOCODE; + ppmajor = PPNOCODE; } - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else if( yyact == YY_ERROR_ACTION ){ - int yymx; + }else if( ppact < PPNSTATE + PPNRULE ){ + pp_reduce(pppParser,ppact-PPNSTATE); + }else if( ppact == PP_ERROR_ACTION ){ + int ppmx; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sSyntax Error!\n",ppTracePrompt); } #endif -#ifdef YYERRORSYMBOL +#ifdef PPERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -96524,40 +98896,40 @@ static void phql_( ** shifted successfully. ** */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( pppParser->pperrcnt<0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + ppmx = pppParser->ppstack[pppParser->ppidx].major; + if( ppmx==PPERRORSYMBOL || pperrorhit ){ #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sDiscard input token %s\n", + ppTracePrompt,ppTokenName[ppmajor]); } #endif - yy_destructor(yymajor,&yyminorunion); - yymajor = YYNOCODE; + pp_destructor(ppmajor,&ppminorunion); + ppmajor = PPNOCODE; }else{ while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE + pppParser->ppidx >= 0 && + ppmx != PPERRORSYMBOL && + (ppact = pp_find_shift_action(pppParser,PPERRORSYMBOL)) >= PPNSTATE ){ - yy_pop_parser_stack(yypParser); + pp_pop_parser_stack(pppParser); } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + if( pppParser->ppidx < 0 || ppmajor==0 ){ + pp_destructor(ppmajor,&ppminorunion); + pp_parse_failed(pppParser); + ppmajor = PPNOCODE; + }else if( ppmx!=PPERRORSYMBOL ){ + PPMINORTYPE u2; + u2.PPERRSYMDT = 0; + pp_shift(pppParser,ppact,PPERRORSYMBOL,&u2); } } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#else /* YYERRORSYMBOL is not defined */ + pppParser->pperrcnt = 3; + pperrorhit = 1; +#else /* PPERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -96567,21 +98939,21 @@ static void phql_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( pppParser->pperrcnt<=0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); } - yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); + pppParser->pperrcnt = 3; + pp_destructor(ppmajor,&ppminorunion); + if( ppendofinput ){ + pp_parse_failed(pppParser); } - yymajor = YYNOCODE; + ppmajor = PPNOCODE; #endif }else{ - yy_accept(yypParser); - yymajor = YYNOCODE; + pp_accept(pppParser); + ppmajor = PPNOCODE; } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + }while( ppmajor!=PPNOCODE && pppParser->ppidx>=0 ); return; } @@ -97128,7 +99500,7 @@ static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql } -/* Generated by re2c 0.13.5 on Mon Apr 27 09:01:41 2015 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:07:52 2015 */ // 1 "scanner.re" @@ -97137,14 +99509,14 @@ static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql -#define YYCTYPE unsigned char -#define YYCURSOR (s->start) -#define YYLIMIT (s->end) -#define YYMARKER q +#define PPCTYPE unsigned char +#define PPCURSOR (s->start) +#define PPLIMIT (s->end) +#define PPMARKER q static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { - char *q = YYCURSOR; + char *q = PPCURSOR; int status = PHQL_SCANNER_RETCODE_IMPOSSIBLE; while (PHQL_SCANNER_RETCODE_IMPOSSIBLE == status) { @@ -97152,29 +99524,29 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { // 45 "scanner.c" { - YYCTYPE yych; - unsigned int yyaccept = 0; + PPCTYPE ppch; + unsigned int ppaccept = 0; - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy69; + ppch = *PPCURSOR; + switch (ppch) { + case 0x00: goto pp69; case '\t': case '\n': case '\r': - case ' ': goto yy67; - case '!': goto yy50; - case '"': goto yy29; - case '%': goto yy42; - case '&': goto yy61; - case '\'': goto yy30; - case '(': goto yy46; - case ')': goto yy48; - case '*': goto yy38; - case '+': goto yy34; - case ',': goto yy44; - case '-': goto yy36; - case '.': goto yy4; - case '/': goto yy40; + case ' ': goto pp67; + case '!': goto pp50; + case '"': goto pp29; + case '%': goto pp42; + case '&': goto pp61; + case '\'': goto pp30; + case '(': goto pp46; + case ')': goto pp48; + case '*': goto pp38; + case '+': goto pp34; + case ',': goto pp44; + case '-': goto pp36; + case '.': goto pp4; + case '/': goto pp40; case '0': case '1': case '2': @@ -97184,21 +99556,21 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy2; - case ':': goto yy8; - case '<': goto yy52; - case '=': goto yy56; - case '>': goto yy54; - case '?': goto yy6; - case '@': goto yy58; + case '9': goto pp2; + case ':': goto pp8; + case '<': goto pp52; + case '=': goto pp56; + case '>': goto pp54; + case '?': goto pp6; + case '@': goto pp58; case 'A': - case 'a': goto yy15; + case 'a': goto pp15; case 'B': - case 'b': goto yy20; + case 'b': goto pp20; case 'C': - case 'c': goto yy27; + case 'c': goto pp27; case 'D': - case 'd': goto yy13; + case 'd': goto pp13; case 'E': case 'K': case 'M': @@ -97215,46 +99587,46 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'q': case 'x': case 'y': - case 'z': goto yy32; + case 'z': goto pp32; case 'F': - case 'f': goto yy14; + case 'f': goto pp14; case 'G': - case 'g': goto yy21; + case 'g': goto pp21; case 'H': - case 'h': goto yy22; + case 'h': goto pp22; case 'I': - case 'i': goto yy16; + case 'i': goto pp16; case 'J': - case 'j': goto yy25; + case 'j': goto pp25; case 'L': - case 'l': goto yy23; + case 'l': goto pp23; case 'N': - case 'n': goto yy24; + case 'n': goto pp24; case 'O': - case 'o': goto yy19; + case 'o': goto pp19; case 'R': - case 'r': goto yy26; + case 'r': goto pp26; case 'S': - case 's': goto yy12; + case 's': goto pp12; case 'T': - case 't': goto yy28; + case 't': goto pp28; case 'U': - case 'u': goto yy10; + case 'u': goto pp10; case 'V': - case 'v': goto yy17; + case 'v': goto pp17; case 'W': - case 'w': goto yy18; - case '[': goto yy33; - case '\\': goto yy31; - case '^': goto yy65; - case '|': goto yy59; - case '~': goto yy63; - default: goto yy71; - } -yy2: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '.': goto yy302; + case 'w': goto pp18; + case '[': goto pp33; + case '\\': goto pp31; + case '^': goto pp65; + case '|': goto pp59; + case '~': goto pp63; + default: goto pp71; + } +pp2: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '.': goto pp302; case '0': case '1': case '2': @@ -97264,22 +99636,22 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy304; - default: goto yy3; + case '9': goto pp304; + default: goto pp3; } -yy3: +pp3: // 46 "scanner.re" { token->opcode = PHQL_T_INTEGER; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } // 171 "scanner.c" -yy4: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp4: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -97289,19 +99661,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy299; - default: goto yy5; + case '9': goto pp299; + default: goto pp5; } -yy5: +pp5: // 358 "scanner.re" { token->opcode = PHQL_T_DOT; return 0; } // 193 "scanner.c" -yy6: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp6: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -97311,20 +99683,20 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy296; - default: goto yy7; + case '9': goto pp296; + default: goto pp7; } -yy7: +pp7: // 483 "scanner.re" { status = PHQL_SCANNER_RETCODE_ERR; break; } // 215 "scanner.c" -yy8: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { +pp8: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { case '-': case '0': case '1': @@ -97388,209 +99760,209 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy292; - default: goto yy9; + case 'z': goto pp292; + default: goto pp9; } -yy9: +pp9: // 363 "scanner.re" { token->opcode = PHQL_T_COLON; return 0; } // 292 "scanner.c" -yy10: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp10: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case 'P': - case 'p': goto yy281; + case 'p': goto pp281; case 'S': - case 's': goto yy282; - default: goto yy98; + case 's': goto pp282; + default: goto pp98; } -yy11: +pp11: // 306 "scanner.re" { token->opcode = PHQL_T_IDENTIFIER; - if ((YYCURSOR - q) > 1) { + if ((PPCURSOR - q) > 1) { if (q[0] == '\\') { - token->value = estrndup(q + 1, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; + token->value = estrndup(q + 1, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; } else { - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } } else { - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } - q = YYCURSOR; + q = PPCURSOR; return 0; } // 321 "scanner.c" -yy12: - yych = *++YYCURSOR; - switch (yych) { +pp12: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy273; - default: goto yy98; + case 'e': goto pp273; + default: goto pp98; } -yy13: - yych = *++YYCURSOR; - switch (yych) { +pp13: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy256; + case 'e': goto pp256; case 'I': - case 'i': goto yy257; - default: goto yy98; + case 'i': goto pp257; + default: goto pp98; } -yy14: - yych = *++YYCURSOR; - switch (yych) { +pp14: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy243; + case 'a': goto pp243; case 'R': - case 'r': goto yy244; + case 'r': goto pp244; case 'U': - case 'u': goto yy245; - default: goto yy98; + case 'u': goto pp245; + default: goto pp98; } -yy15: - yych = *++YYCURSOR; - switch (yych) { +pp15: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy226; + case 'g': goto pp226; case 'L': - case 'l': goto yy227; + case 'l': goto pp227; case 'N': - case 'n': goto yy228; + case 'n': goto pp228; case 'S': - case 's': goto yy229; - default: goto yy98; + case 's': goto pp229; + default: goto pp98; } -yy16: - yych = *++YYCURSOR; - switch (yych) { +pp16: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy205; + case 'l': goto pp205; case 'N': - case 'n': goto yy206; + case 'n': goto pp206; case 'S': - case 's': goto yy208; - default: goto yy98; + case 's': goto pp208; + default: goto pp98; } -yy17: - yych = *++YYCURSOR; - switch (yych) { +pp17: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy199; - default: goto yy98; + case 'a': goto pp199; + default: goto pp98; } -yy18: - yych = *++YYCURSOR; - switch (yych) { +pp18: + ppch = *++PPCURSOR; + switch (ppch) { case 'H': - case 'h': goto yy194; - default: goto yy98; + case 'h': goto pp194; + default: goto pp98; } -yy19: - yych = *++YYCURSOR; - switch (yych) { +pp19: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy175; + case 'f': goto pp175; case 'N': - case 'n': goto yy176; + case 'n': goto pp176; case 'R': - case 'r': goto yy178; + case 'r': goto pp178; case 'U': - case 'u': goto yy180; - default: goto yy98; + case 'u': goto pp180; + default: goto pp98; } -yy20: - yych = *++YYCURSOR; - switch (yych) { +pp20: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy166; + case 'e': goto pp166; case 'Y': - case 'y': goto yy167; - default: goto yy98; + case 'y': goto pp167; + default: goto pp98; } -yy21: - yych = *++YYCURSOR; - switch (yych) { +pp21: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy161; - default: goto yy98; + case 'r': goto pp161; + default: goto pp98; } -yy22: - yych = *++YYCURSOR; - switch (yych) { +pp22: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy155; - default: goto yy98; + case 'a': goto pp155; + default: goto pp98; } -yy23: - yych = *++YYCURSOR; - switch (yych) { +pp23: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy143; + case 'e': goto pp143; case 'I': - case 'i': goto yy144; - default: goto yy98; + case 'i': goto pp144; + default: goto pp98; } -yy24: - yych = *++YYCURSOR; - switch (yych) { +pp24: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy136; + case 'o': goto pp136; case 'U': - case 'u': goto yy137; - default: goto yy98; + case 'u': goto pp137; + default: goto pp98; } -yy25: - yych = *++YYCURSOR; - switch (yych) { +pp25: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy132; - default: goto yy98; + case 'o': goto pp132; + default: goto pp98; } -yy26: - yych = *++YYCURSOR; - switch (yych) { +pp26: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy127; - default: goto yy98; + case 'i': goto pp127; + default: goto pp98; } -yy27: - yych = *++YYCURSOR; - switch (yych) { +pp27: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy111; + case 'a': goto pp111; case 'O': - case 'o': goto yy112; + case 'o': goto pp112; case 'R': - case 'r': goto yy113; - default: goto yy98; + case 'r': goto pp113; + default: goto pp98; } -yy28: - yych = *++YYCURSOR; - switch (yych) { +pp28: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy107; - default: goto yy98; - } -yy29: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy7; - goto yy105; -yy30: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy7; - goto yy100; -yy31: - yych = *++YYCURSOR; - switch (yych) { + case 'r': goto pp107; + default: goto pp98; + } +pp29: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp7; + goto pp105; +pp30: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp7; + goto pp100; +pp31: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': case 'B': case 'C': @@ -97643,16 +100015,16 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy7; - } -yy32: - yych = *++YYCURSOR; - goto yy98; -yy33: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { + case 'z': goto pp97; + default: goto pp7; + } +pp32: + ppch = *++PPCURSOR; + goto pp98; +pp33: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { case 'A': case 'B': case 'C': @@ -97706,280 +100078,280 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy92; - default: goto yy7; + case 'z': goto pp92; + default: goto pp7; } -yy34: - ++YYCURSOR; +pp34: + ++PPCURSOR; // 333 "scanner.re" { token->opcode = PHQL_T_ADD; return 0; } // 611 "scanner.c" -yy36: - ++YYCURSOR; +pp36: + ++PPCURSOR; // 338 "scanner.re" { token->opcode = PHQL_T_SUB; return 0; } // 619 "scanner.c" -yy38: - ++YYCURSOR; +pp38: + ++PPCURSOR; // 343 "scanner.re" { token->opcode = PHQL_T_MUL; return 0; } // 627 "scanner.c" -yy40: - ++YYCURSOR; +pp40: + ++PPCURSOR; // 348 "scanner.re" { token->opcode = PHQL_T_DIV; return 0; } // 635 "scanner.c" -yy42: - ++YYCURSOR; +pp42: + ++PPCURSOR; // 353 "scanner.re" { token->opcode = PHQL_T_MOD; return 0; } // 643 "scanner.c" -yy44: - ++YYCURSOR; +pp44: + ++PPCURSOR; // 368 "scanner.re" { token->opcode = PHQL_T_COMMA; return 0; } // 651 "scanner.c" -yy46: - ++YYCURSOR; +pp46: + ++PPCURSOR; // 373 "scanner.re" { token->opcode = PHQL_T_PARENTHESES_OPEN; return 0; } // 659 "scanner.c" -yy48: - ++YYCURSOR; +pp48: + ++PPCURSOR; // 378 "scanner.re" { token->opcode = PHQL_T_PARENTHESES_CLOSE; return 0; } // 667 "scanner.c" -yy50: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '!': goto yy88; - case '=': goto yy90; - default: goto yy51; - } -yy51: +pp50: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '!': goto pp88; + case '=': goto pp90; + default: goto pp51; + } +pp51: // 448 "scanner.re" { token->opcode = PHQL_T_NOT; return 0; } // 681 "scanner.c" -yy52: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy84; - case '>': goto yy86; - default: goto yy53; - } -yy53: +pp52: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '=': goto pp84; + case '>': goto pp86; + default: goto pp53; + } +pp53: // 403 "scanner.re" { token->opcode = PHQL_T_LESS; return 0; } // 695 "scanner.c" -yy54: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy82; - default: goto yy55; +pp54: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '=': goto pp82; + default: goto pp55; } -yy55: +pp55: // 408 "scanner.re" { token->opcode = PHQL_T_GREATER; return 0; } // 708 "scanner.c" -yy56: - ++YYCURSOR; +pp56: + ++PPCURSOR; // 413 "scanner.re" { token->opcode = PHQL_T_EQUALS; return 0; } // 716 "scanner.c" -yy58: - yych = *++YYCURSOR; - switch (yych) { - case '>': goto yy78; - case '@': goto yy80; - default: goto yy7; - } -yy59: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '|': goto yy76; - default: goto yy60; - } -yy60: +pp58: + ppch = *++PPCURSOR; + switch (ppch) { + case '>': goto pp78; + case '@': goto pp80; + default: goto pp7; + } +pp59: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '|': goto pp76; + default: goto pp60; + } +pp60: // 468 "scanner.re" { token->opcode = PHQL_T_BITWISE_OR; return 0; } // 736 "scanner.c" -yy61: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '&': goto yy74; - default: goto yy62; +pp61: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '&': goto pp74; + default: goto pp62; } -yy62: +pp62: // 463 "scanner.re" { token->opcode = PHQL_T_BITWISE_AND; return 0; } // 749 "scanner.c" -yy63: - ++YYCURSOR; +pp63: + ++PPCURSOR; // 453 "scanner.re" { token->opcode = PHQL_T_BITWISE_NOT; return 0; } // 757 "scanner.c" -yy65: - ++YYCURSOR; +pp65: + ++PPCURSOR; // 458 "scanner.re" { token->opcode = PHQL_T_BITWISE_XOR; return 0; } // 765 "scanner.c" -yy67: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy73; -yy68: +pp67: + ++PPCURSOR; + ppch = *PPCURSOR; + goto pp73; +pp68: // 473 "scanner.re" { token->opcode = PHQL_T_IGNORE; return 0; } // 776 "scanner.c" -yy69: - ++YYCURSOR; +pp69: + ++PPCURSOR; // 478 "scanner.re" { status = PHQL_SCANNER_RETCODE_EOF; break; } // 784 "scanner.c" -yy71: - yych = *++YYCURSOR; - goto yy7; -yy72: - ++YYCURSOR; - yych = *YYCURSOR; -yy73: - switch (yych) { +pp71: + ppch = *++PPCURSOR; + goto pp7; +pp72: + ++PPCURSOR; + ppch = *PPCURSOR; +pp73: + switch (ppch) { case '\t': case '\n': case '\r': - case ' ': goto yy72; - default: goto yy68; + case ' ': goto pp72; + default: goto pp68; } -yy74: - ++YYCURSOR; +pp74: + ++PPCURSOR; // 428 "scanner.re" { token->opcode = PHQL_T_TS_AND; return 0; } // 806 "scanner.c" -yy76: - ++YYCURSOR; +pp76: + ++PPCURSOR; // 423 "scanner.re" { token->opcode = PHQL_T_TS_OR; return 0; } // 814 "scanner.c" -yy78: - ++YYCURSOR; +pp78: + ++PPCURSOR; // 438 "scanner.re" { token->opcode = PHQL_T_TS_CONTAINS_ANOTHER; return 0; } // 822 "scanner.c" -yy80: - ++YYCURSOR; +pp80: + ++PPCURSOR; // 418 "scanner.re" { token->opcode = PHQL_T_TS_MATCHES; return 0; } // 830 "scanner.c" -yy82: - ++YYCURSOR; +pp82: + ++PPCURSOR; // 398 "scanner.re" { token->opcode = PHQL_T_GREATEREQUAL; return 0; } // 838 "scanner.c" -yy84: - ++YYCURSOR; +pp84: + ++PPCURSOR; // 393 "scanner.re" { token->opcode = PHQL_T_LESSEQUAL; return 0; } // 846 "scanner.c" -yy86: - ++YYCURSOR; +pp86: + ++PPCURSOR; // 388 "scanner.re" { token->opcode = PHQL_T_NOTEQUALS; return 0; } // 854 "scanner.c" -yy88: - ++YYCURSOR; +pp88: + ++PPCURSOR; // 433 "scanner.re" { token->opcode = PHQL_T_TS_NEGATE; return 0; } // 862 "scanner.c" -yy90: - ++YYCURSOR; +pp90: + ++PPCURSOR; // 383 "scanner.re" { token->opcode = PHQL_T_NOTEQUALS; return 0; } // 870 "scanner.c" -yy92: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +pp92: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -98043,32 +100415,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy92; - case ']': goto yy95; - default: goto yy94; - } -yy94: - YYCURSOR = YYMARKER; - switch (yyaccept) { - case 0: goto yy9; - case 1: goto yy7; - } -yy95: - ++YYCURSOR; + case 'z': goto pp92; + case ']': goto pp95; + default: goto pp94; + } +pp94: + PPCURSOR = PPMARKER; + if (ppaccept == 0) { + goto pp9; + } else { + goto pp7; + } +pp95: + ++PPCURSOR; // 325 "scanner.re" { token->opcode = PHQL_T_IDENTIFIER; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 958 "scanner.c" -yy97: - ++YYCURSOR; - yych = *YYCURSOR; -yy98: - switch (yych) { +// 959 "scanner.c" +pp97: + ++PPCURSOR; + ppch = *PPCURSOR; +pp98: + switch (ppch) { case '0': case '1': case '2': @@ -98132,71 +100505,71 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy11; - } -yy99: - ++YYCURSOR; - yych = *YYCURSOR; -yy100: - switch (yych) { - case 0x00: goto yy94; - case '\'': goto yy102; - case '\\': goto yy101; - default: goto yy99; - } -yy101: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '\n': goto yy94; - default: goto yy99; - } -yy102: - ++YYCURSOR; + case 'z': goto pp97; + default: goto pp11; + } +pp99: + ++PPCURSOR; + ppch = *PPCURSOR; +pp100: + switch (ppch) { + case 0x00: goto pp94; + case '\'': goto pp102; + case '\\': goto pp101; + default: goto pp99; + } +pp101: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '\n': goto pp94; + default: goto pp99; + } +pp102: + ++PPCURSOR; // 297 "scanner.re" { token->opcode = PHQL_T_STRING; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 1057 "scanner.c" -yy104: - ++YYCURSOR; - yych = *YYCURSOR; -yy105: - switch (yych) { - case 0x00: goto yy94; - case '"': goto yy102; - case '\\': goto yy106; - default: goto yy104; - } -yy106: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '\n': goto yy94; - default: goto yy104; - } -yy107: - yych = *++YYCURSOR; - switch (yych) { +// 1058 "scanner.c" +pp104: + ++PPCURSOR; + ppch = *PPCURSOR; +pp105: + switch (ppch) { + case 0x00: goto pp94; + case '"': goto pp102; + case '\\': goto pp106; + default: goto pp104; + } +pp106: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '\n': goto pp94; + default: goto pp104; + } +pp107: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy108; - default: goto yy98; + case 'u': goto pp108; + default: goto pp98; } -yy108: - yych = *++YYCURSOR; - switch (yych) { +pp108: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy109; - default: goto yy98; + case 'e': goto pp109; + default: goto pp98; } -yy109: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp109: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98260,54 +100633,54 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy110; + case 'z': goto pp97; + default: goto pp110; } -yy110: +pp110: // 286 "scanner.re" { token->opcode = PHQL_T_TRUE; return 0; } -// 1164 "scanner.c" -yy111: - yych = *++YYCURSOR; - switch (yych) { +// 1165 "scanner.c" +pp111: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy124; - default: goto yy98; + case 's': goto pp124; + default: goto pp98; } -yy112: - yych = *++YYCURSOR; - switch (yych) { +pp112: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy118; - default: goto yy98; + case 'n': goto pp118; + default: goto pp98; } -yy113: - yych = *++YYCURSOR; - switch (yych) { +pp113: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy114; - default: goto yy98; + case 'o': goto pp114; + default: goto pp98; } -yy114: - yych = *++YYCURSOR; - switch (yych) { +pp114: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy115; - default: goto yy98; + case 's': goto pp115; + default: goto pp98; } -yy115: - yych = *++YYCURSOR; - switch (yych) { +pp115: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy116; - default: goto yy98; + case 's': goto pp116; + default: goto pp98; } -yy116: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp116: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98371,47 +100744,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy117; + case 'z': goto pp97; + default: goto pp117; } -yy117: +pp117: // 231 "scanner.re" { token->opcode = PHQL_T_CROSS; return 0; } -// 1275 "scanner.c" -yy118: - yych = *++YYCURSOR; - switch (yych) { +// 1276 "scanner.c" +pp118: + ppch = *++PPCURSOR; + switch (ppch) { case 'V': - case 'v': goto yy119; - default: goto yy98; + case 'v': goto pp119; + default: goto pp98; } -yy119: - yych = *++YYCURSOR; - switch (yych) { +pp119: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy120; - default: goto yy98; + case 'e': goto pp120; + default: goto pp98; } -yy120: - yych = *++YYCURSOR; - switch (yych) { +pp120: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy121; - default: goto yy98; + case 'r': goto pp121; + default: goto pp98; } -yy121: - yych = *++YYCURSOR; - switch (yych) { +pp121: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy122; - default: goto yy98; + case 't': goto pp122; + default: goto pp98; } -yy122: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp122: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98475,26 +100848,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy123; + case 'z': goto pp97; + default: goto pp123; } -yy123: +pp123: // 276 "scanner.re" { token->opcode = PHQL_T_CONVERT; return 0; } -// 1379 "scanner.c" -yy124: - yych = *++YYCURSOR; - switch (yych) { +// 1380 "scanner.c" +pp124: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy125; - default: goto yy98; + case 't': goto pp125; + default: goto pp98; } -yy125: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp125: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98558,40 +100931,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy126; + case 'z': goto pp97; + default: goto pp126; } -yy126: +pp126: // 271 "scanner.re" { token->opcode = PHQL_T_CAST; return 0; } -// 1462 "scanner.c" -yy127: - yych = *++YYCURSOR; - switch (yych) { +// 1463 "scanner.c" +pp127: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy128; - default: goto yy98; + case 'g': goto pp128; + default: goto pp98; } -yy128: - yych = *++YYCURSOR; - switch (yych) { +pp128: + ppch = *++PPCURSOR; + switch (ppch) { case 'H': - case 'h': goto yy129; - default: goto yy98; + case 'h': goto pp129; + default: goto pp98; } -yy129: - yych = *++YYCURSOR; - switch (yych) { +pp129: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy130; - default: goto yy98; + case 't': goto pp130; + default: goto pp98; } -yy130: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp130: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98655,33 +101028,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy131; + case 'z': goto pp97; + default: goto pp131; } -yy131: +pp131: // 226 "scanner.re" { token->opcode = PHQL_T_RIGHT; return 0; } -// 1559 "scanner.c" -yy132: - yych = *++YYCURSOR; - switch (yych) { +// 1560 "scanner.c" +pp132: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy133; - default: goto yy98; + case 'i': goto pp133; + default: goto pp98; } -yy133: - yych = *++YYCURSOR; - switch (yych) { +pp133: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy134; - default: goto yy98; + case 'n': goto pp134; + default: goto pp98; } -yy134: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp134: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98745,40 +101118,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy135; + case 'z': goto pp97; + default: goto pp135; } -yy135: +pp135: // 211 "scanner.re" { token->opcode = PHQL_T_JOIN; return 0; } -// 1649 "scanner.c" -yy136: - yych = *++YYCURSOR; - switch (yych) { +// 1650 "scanner.c" +pp136: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy141; - default: goto yy98; + case 't': goto pp141; + default: goto pp98; } -yy137: - yych = *++YYCURSOR; - switch (yych) { +pp137: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy138; - default: goto yy98; + case 'l': goto pp138; + default: goto pp98; } -yy138: - yych = *++YYCURSOR; - switch (yych) { +pp138: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy139; - default: goto yy98; + case 'l': goto pp139; + default: goto pp98; } -yy139: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp139: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98842,19 +101215,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy140; + case 'z': goto pp97; + default: goto pp140; } -yy140: +pp140: // 251 "scanner.re" { token->opcode = PHQL_T_NULL; return 0; } -// 1746 "scanner.c" -yy141: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 1747 "scanner.c" +pp141: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98918,49 +101291,49 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy142; + case 'z': goto pp97; + default: goto pp142; } -yy142: +pp142: // 171 "scanner.re" { token->opcode = PHQL_T_NOT; return 0; } -// 1822 "scanner.c" -yy143: - yych = *++YYCURSOR; - switch (yych) { +// 1823 "scanner.c" +pp143: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy152; - default: goto yy98; + case 'f': goto pp152; + default: goto pp98; } -yy144: - yych = *++YYCURSOR; - switch (yych) { +pp144: + ppch = *++PPCURSOR; + switch (ppch) { case 'K': - case 'k': goto yy146; + case 'k': goto pp146; case 'M': - case 'm': goto yy145; - default: goto yy98; + case 'm': goto pp145; + default: goto pp98; } -yy145: - yych = *++YYCURSOR; - switch (yych) { +pp145: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy149; - default: goto yy98; + case 'i': goto pp149; + default: goto pp98; } -yy146: - yych = *++YYCURSOR; - switch (yych) { +pp146: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy147; - default: goto yy98; + case 'e': goto pp147; + default: goto pp98; } -yy147: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp147: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99024,26 +101397,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy148; + case 'z': goto pp97; + default: goto pp148; } -yy148: +pp148: // 186 "scanner.re" { token->opcode = PHQL_T_LIKE; return 0; } -// 1928 "scanner.c" -yy149: - yych = *++YYCURSOR; - switch (yych) { +// 1929 "scanner.c" +pp149: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy150; - default: goto yy98; + case 't': goto pp150; + default: goto pp98; } -yy150: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp150: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99107,26 +101480,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy151; + case 'z': goto pp97; + default: goto pp151; } -yy151: +pp151: // 161 "scanner.re" { token->opcode = PHQL_T_LIMIT; return 0; } -// 2011 "scanner.c" -yy152: - yych = *++YYCURSOR; - switch (yych) { +// 2012 "scanner.c" +pp152: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy153; - default: goto yy98; + case 't': goto pp153; + default: goto pp98; } -yy153: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp153: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99190,47 +101563,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy154; + case 'z': goto pp97; + default: goto pp154; } -yy154: +pp154: // 221 "scanner.re" { token->opcode = PHQL_T_LEFT; return 0; } -// 2094 "scanner.c" -yy155: - yych = *++YYCURSOR; - switch (yych) { +// 2095 "scanner.c" +pp155: + ppch = *++PPCURSOR; + switch (ppch) { case 'V': - case 'v': goto yy156; - default: goto yy98; + case 'v': goto pp156; + default: goto pp98; } -yy156: - yych = *++YYCURSOR; - switch (yych) { +pp156: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy157; - default: goto yy98; + case 'i': goto pp157; + default: goto pp98; } -yy157: - yych = *++YYCURSOR; - switch (yych) { +pp157: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy158; - default: goto yy98; + case 'n': goto pp158; + default: goto pp98; } -yy158: - yych = *++YYCURSOR; - switch (yych) { +pp158: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy159; - default: goto yy98; + case 'g': goto pp159; + default: goto pp98; } -yy159: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp159: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99294,40 +101667,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy160; + case 'z': goto pp97; + default: goto pp160; } -yy160: +pp160: // 156 "scanner.re" { token->opcode = PHQL_T_HAVING; return 0; } -// 2198 "scanner.c" -yy161: - yych = *++YYCURSOR; - switch (yych) { +// 2199 "scanner.c" +pp161: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy162; - default: goto yy98; + case 'o': goto pp162; + default: goto pp98; } -yy162: - yych = *++YYCURSOR; - switch (yych) { +pp162: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy163; - default: goto yy98; + case 'u': goto pp163; + default: goto pp98; } -yy163: - yych = *++YYCURSOR; - switch (yych) { +pp163: + ppch = *++PPCURSOR; + switch (ppch) { case 'P': - case 'p': goto yy164; - default: goto yy98; + case 'p': goto pp164; + default: goto pp98; } -yy164: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp164: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99391,26 +101764,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy165; + case 'z': goto pp97; + default: goto pp165; } -yy165: +pp165: // 151 "scanner.re" { token->opcode = PHQL_T_GROUP; return 0; } -// 2295 "scanner.c" -yy166: - yych = *++YYCURSOR; - switch (yych) { +// 2296 "scanner.c" +pp166: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy169; - default: goto yy98; + case 't': goto pp169; + default: goto pp98; } -yy167: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp167: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99474,47 +101847,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy168; + case 'z': goto pp97; + default: goto pp168; } -yy168: +pp168: // 136 "scanner.re" { token->opcode = PHQL_T_BY; return 0; } -// 2378 "scanner.c" -yy169: - yych = *++YYCURSOR; - switch (yych) { +// 2379 "scanner.c" +pp169: + ppch = *++PPCURSOR; + switch (ppch) { case 'W': - case 'w': goto yy170; - default: goto yy98; + case 'w': goto pp170; + default: goto pp98; } -yy170: - yych = *++YYCURSOR; - switch (yych) { +pp170: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy171; - default: goto yy98; + case 'e': goto pp171; + default: goto pp98; } -yy171: - yych = *++YYCURSOR; - switch (yych) { +pp171: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy172; - default: goto yy98; + case 'e': goto pp172; + default: goto pp98; } -yy172: - yych = *++YYCURSOR; - switch (yych) { +pp172: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy173; - default: goto yy98; + case 'n': goto pp173; + default: goto pp98; } -yy173: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp173: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99578,26 +101951,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy174; + case 'z': goto pp97; + default: goto pp174; } -yy174: +pp174: // 266 "scanner.re" { token->opcode = PHQL_T_BETWEEN; return 0; } -// 2482 "scanner.c" -yy175: - yych = *++YYCURSOR; - switch (yych) { +// 2483 "scanner.c" +pp175: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy189; - default: goto yy98; + case 'f': goto pp189; + default: goto pp98; } -yy176: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp176: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99661,19 +102034,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy177; + case 'z': goto pp97; + default: goto pp177; } -yy177: +pp177: // 206 "scanner.re" { token->opcode = PHQL_T_ON; return 0; } -// 2565 "scanner.c" -yy178: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 2566 "scanner.c" +pp178: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99735,42 +102108,42 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'D': - case 'd': goto yy185; - default: goto yy179; + case 'd': goto pp185; + default: goto pp179; } -yy179: +pp179: // 181 "scanner.re" { token->opcode = PHQL_T_OR; return 0; } -// 2641 "scanner.c" -yy180: - yych = *++YYCURSOR; - switch (yych) { +// 2642 "scanner.c" +pp180: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy181; - default: goto yy98; + case 't': goto pp181; + default: goto pp98; } -yy181: - yych = *++YYCURSOR; - switch (yych) { +pp181: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy182; - default: goto yy98; + case 'e': goto pp182; + default: goto pp98; } -yy182: - yych = *++YYCURSOR; - switch (yych) { +pp182: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy183; - default: goto yy98; + case 'r': goto pp183; + default: goto pp98; } -yy183: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp183: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99834,33 +102207,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy184; + case 'z': goto pp97; + default: goto pp184; } -yy184: +pp184: // 236 "scanner.re" { token->opcode = PHQL_T_OUTER; return 0; } -// 2738 "scanner.c" -yy185: - yych = *++YYCURSOR; - switch (yych) { +// 2739 "scanner.c" +pp185: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy186; - default: goto yy98; + case 'e': goto pp186; + default: goto pp98; } -yy186: - yych = *++YYCURSOR; - switch (yych) { +pp186: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy187; - default: goto yy98; + case 'r': goto pp187; + default: goto pp98; } -yy187: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp187: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99924,40 +102297,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy188; + case 'z': goto pp97; + default: goto pp188; } -yy188: +pp188: // 131 "scanner.re" { token->opcode = PHQL_T_ORDER; return 0; } -// 2828 "scanner.c" -yy189: - yych = *++YYCURSOR; - switch (yych) { +// 2829 "scanner.c" +pp189: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy190; - default: goto yy98; + case 's': goto pp190; + default: goto pp98; } -yy190: - yych = *++YYCURSOR; - switch (yych) { +pp190: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy191; - default: goto yy98; + case 'e': goto pp191; + default: goto pp98; } -yy191: - yych = *++YYCURSOR; - switch (yych) { +pp191: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy192; - default: goto yy98; + case 't': goto pp192; + default: goto pp98; } -yy192: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp192: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100021,40 +102394,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy193; + case 'z': goto pp97; + default: goto pp193; } -yy193: +pp193: // 166 "scanner.re" { token->opcode = PHQL_T_OFFSET; return 0; } -// 2925 "scanner.c" -yy194: - yych = *++YYCURSOR; - switch (yych) { +// 2926 "scanner.c" +pp194: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy195; - default: goto yy98; + case 'e': goto pp195; + default: goto pp98; } -yy195: - yych = *++YYCURSOR; - switch (yych) { +pp195: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy196; - default: goto yy98; + case 'r': goto pp196; + default: goto pp98; } -yy196: - yych = *++YYCURSOR; - switch (yych) { +pp196: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy197; - default: goto yy98; + case 'e': goto pp197; + default: goto pp98; } -yy197: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp197: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100118,47 +102491,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy198; + case 'z': goto pp97; + default: goto pp198; } -yy198: +pp198: // 121 "scanner.re" { token->opcode = PHQL_T_WHERE; return 0; } -// 3022 "scanner.c" -yy199: - yych = *++YYCURSOR; - switch (yych) { +// 3023 "scanner.c" +pp199: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy200; - default: goto yy98; + case 'l': goto pp200; + default: goto pp98; } -yy200: - yych = *++YYCURSOR; - switch (yych) { +pp200: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy201; - default: goto yy98; + case 'u': goto pp201; + default: goto pp98; } -yy201: - yych = *++YYCURSOR; - switch (yych) { +pp201: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy202; - default: goto yy98; + case 'e': goto pp202; + default: goto pp98; } -yy202: - yych = *++YYCURSOR; - switch (yych) { +pp202: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy203; - default: goto yy98; + case 's': goto pp203; + default: goto pp98; } -yy203: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp203: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100222,26 +102595,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy204; + case 'z': goto pp97; + default: goto pp204; } -yy204: +pp204: // 116 "scanner.re" { token->opcode = PHQL_T_VALUES; return 0; } -// 3126 "scanner.c" -yy205: - yych = *++YYCURSOR; - switch (yych) { +// 3127 "scanner.c" +pp205: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy222; - default: goto yy98; + case 'i': goto pp222; + default: goto pp98; } -yy206: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp206: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100299,25 +102672,25 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'N': - case 'n': goto yy212; + case 'n': goto pp212; case 'S': - case 's': goto yy210; + case 's': goto pp210; case 'T': - case 't': goto yy211; - default: goto yy207; + case 't': goto pp211; + default: goto pp207; } -yy207: +pp207: // 201 "scanner.re" { token->opcode = PHQL_T_IN; return 0; } -// 3209 "scanner.c" -yy208: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3210 "scanner.c" +pp208: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100381,47 +102754,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy209; + case 'z': goto pp97; + default: goto pp209; } -yy209: +pp209: // 246 "scanner.re" { token->opcode = PHQL_T_IS; return 0; } -// 3285 "scanner.c" -yy210: - yych = *++YYCURSOR; - switch (yych) { +// 3286 "scanner.c" +pp210: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy218; - default: goto yy98; + case 'e': goto pp218; + default: goto pp98; } -yy211: - yych = *++YYCURSOR; - switch (yych) { +pp211: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy216; - default: goto yy98; + case 'o': goto pp216; + default: goto pp98; } -yy212: - yych = *++YYCURSOR; - switch (yych) { +pp212: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy213; - default: goto yy98; + case 'e': goto pp213; + default: goto pp98; } -yy213: - yych = *++YYCURSOR; - switch (yych) { +pp213: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy214; - default: goto yy98; + case 'r': goto pp214; + default: goto pp98; } -yy214: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp214: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100485,19 +102858,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy215; + case 'z': goto pp97; + default: goto pp215; } -yy215: +pp215: // 216 "scanner.re" { token->opcode = PHQL_T_INNER; return 0; } -// 3389 "scanner.c" -yy216: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3390 "scanner.c" +pp216: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100561,33 +102934,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy217; + case 'z': goto pp97; + default: goto pp217; } -yy217: +pp217: // 111 "scanner.re" { token->opcode = PHQL_T_INTO; return 0; } -// 3465 "scanner.c" -yy218: - yych = *++YYCURSOR; - switch (yych) { +// 3466 "scanner.c" +pp218: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy219; - default: goto yy98; + case 'r': goto pp219; + default: goto pp98; } -yy219: - yych = *++YYCURSOR; - switch (yych) { +pp219: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy220; - default: goto yy98; + case 't': goto pp220; + default: goto pp98; } -yy220: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp220: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100651,33 +103024,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy221; + case 'z': goto pp97; + default: goto pp221; } -yy221: +pp221: // 106 "scanner.re" { token->opcode = PHQL_T_INSERT; return 0; } -// 3555 "scanner.c" -yy222: - yych = *++YYCURSOR; - switch (yych) { +// 3556 "scanner.c" +pp222: + ppch = *++PPCURSOR; + switch (ppch) { case 'K': - case 'k': goto yy223; - default: goto yy98; + case 'k': goto pp223; + default: goto pp98; } -yy223: - yych = *++YYCURSOR; - switch (yych) { +pp223: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy224; - default: goto yy98; + case 'e': goto pp224; + default: goto pp98; } -yy224: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp224: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100741,40 +103114,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy225; + case 'z': goto pp97; + default: goto pp225; } -yy225: +pp225: // 191 "scanner.re" { token->opcode = PHQL_T_ILIKE; return 0; } -// 3645 "scanner.c" -yy226: - yych = *++YYCURSOR; - switch (yych) { +// 3646 "scanner.c" +pp226: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy237; - default: goto yy98; + case 'a': goto pp237; + default: goto pp98; } -yy227: - yych = *++YYCURSOR; - switch (yych) { +pp227: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy235; - default: goto yy98; + case 'l': goto pp235; + default: goto pp98; } -yy228: - yych = *++YYCURSOR; - switch (yych) { +pp228: + ppch = *++PPCURSOR; + switch (ppch) { case 'D': - case 'd': goto yy233; - default: goto yy98; + case 'd': goto pp233; + default: goto pp98; } -yy229: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp229: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100836,21 +103209,21 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'C': - case 'c': goto yy231; - default: goto yy230; + case 'c': goto pp231; + default: goto pp230; } -yy230: +pp230: // 101 "scanner.re" { token->opcode = PHQL_T_AS; return 0; } -// 3742 "scanner.c" -yy231: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3743 "scanner.c" +pp231: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100914,19 +103287,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy232; + case 'z': goto pp97; + default: goto pp232; } -yy232: +pp232: // 141 "scanner.re" { token->opcode = PHQL_T_ASC; return 0; } -// 3818 "scanner.c" -yy233: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3819 "scanner.c" +pp233: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100990,19 +103363,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy234; + case 'z': goto pp97; + default: goto pp234; } -yy234: +pp234: // 176 "scanner.re" { token->opcode = PHQL_T_AND; return 0; } -// 3894 "scanner.c" -yy235: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3895 "scanner.c" +pp235: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101066,47 +103439,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy236; + case 'z': goto pp97; + default: goto pp236; } -yy236: +pp236: // 261 "scanner.re" { token->opcode = PHQL_T_ALL; return 0; } -// 3970 "scanner.c" -yy237: - yych = *++YYCURSOR; - switch (yych) { +// 3971 "scanner.c" +pp237: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy238; - default: goto yy98; + case 'i': goto pp238; + default: goto pp98; } -yy238: - yych = *++YYCURSOR; - switch (yych) { +pp238: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy239; - default: goto yy98; + case 'n': goto pp239; + default: goto pp98; } -yy239: - yych = *++YYCURSOR; - switch (yych) { +pp239: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy240; - default: goto yy98; + case 's': goto pp240; + default: goto pp98; } -yy240: - yych = *++YYCURSOR; - switch (yych) { +pp240: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy241; - default: goto yy98; + case 't': goto pp241; + default: goto pp98; } -yy241: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp241: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101170,47 +103543,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy242; + case 'z': goto pp97; + default: goto pp242; } -yy242: +pp242: // 196 "scanner.re" { token->opcode = PHQL_T_AGAINST; return 0; } -// 4074 "scanner.c" -yy243: - yych = *++YYCURSOR; - switch (yych) { +// 4075 "scanner.c" +pp243: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy252; - default: goto yy98; + case 'l': goto pp252; + default: goto pp98; } -yy244: - yych = *++YYCURSOR; - switch (yych) { +pp244: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy249; - default: goto yy98; + case 'o': goto pp249; + default: goto pp98; } -yy245: - yych = *++YYCURSOR; - switch (yych) { +pp245: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy246; - default: goto yy98; + case 'l': goto pp246; + default: goto pp98; } -yy246: - yych = *++YYCURSOR; - switch (yych) { +pp246: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy247; - default: goto yy98; + case 'l': goto pp247; + default: goto pp98; } -yy247: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp247: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101274,26 +103647,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy248; + case 'z': goto pp97; + default: goto pp248; } -yy248: +pp248: // 241 "scanner.re" { token->opcode = PHQL_T_FULL; return 0; } -// 4178 "scanner.c" -yy249: - yych = *++YYCURSOR; - switch (yych) { +// 4179 "scanner.c" +pp249: + ppch = *++PPCURSOR; + switch (ppch) { case 'M': - case 'm': goto yy250; - default: goto yy98; + case 'm': goto pp250; + default: goto pp98; } -yy250: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp250: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101357,33 +103730,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy251; + case 'z': goto pp97; + default: goto pp251; } -yy251: +pp251: // 96 "scanner.re" { token->opcode = PHQL_T_FROM; return 0; } -// 4261 "scanner.c" -yy252: - yych = *++YYCURSOR; - switch (yych) { +// 4262 "scanner.c" +pp252: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy253; - default: goto yy98; + case 's': goto pp253; + default: goto pp98; } -yy253: - yych = *++YYCURSOR; - switch (yych) { +pp253: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy254; - default: goto yy98; + case 'e': goto pp254; + default: goto pp98; } -yy254: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp254: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101447,70 +103820,70 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy255; + case 'z': goto pp97; + default: goto pp255; } -yy255: +pp255: // 291 "scanner.re" { token->opcode = PHQL_T_FALSE; return 0; } -// 4351 "scanner.c" -yy256: - yych = *++YYCURSOR; - switch (yych) { +// 4352 "scanner.c" +pp256: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy265; + case 'l': goto pp265; case 'S': - case 's': goto yy266; - default: goto yy98; + case 's': goto pp266; + default: goto pp98; } -yy257: - yych = *++YYCURSOR; - switch (yych) { +pp257: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy258; - default: goto yy98; + case 's': goto pp258; + default: goto pp98; } -yy258: - yych = *++YYCURSOR; - switch (yych) { +pp258: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy259; - default: goto yy98; + case 't': goto pp259; + default: goto pp98; } -yy259: - yych = *++YYCURSOR; - switch (yych) { +pp259: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy260; - default: goto yy98; + case 'i': goto pp260; + default: goto pp98; } -yy260: - yych = *++YYCURSOR; - switch (yych) { +pp260: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy261; - default: goto yy98; + case 'n': goto pp261; + default: goto pp98; } -yy261: - yych = *++YYCURSOR; - switch (yych) { +pp261: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy262; - default: goto yy98; + case 'c': goto pp262; + default: goto pp98; } -yy262: - yych = *++YYCURSOR; - switch (yych) { +pp262: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy263; - default: goto yy98; + case 't': goto pp263; + default: goto pp98; } -yy263: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp263: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101574,33 +103947,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy264; + case 'z': goto pp97; + default: goto pp264; } -yy264: +pp264: // 256 "scanner.re" { token->opcode = PHQL_T_DISTINCT; return 0; } -// 4478 "scanner.c" -yy265: - yych = *++YYCURSOR; - switch (yych) { +// 4479 "scanner.c" +pp265: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy269; - default: goto yy98; + case 'e': goto pp269; + default: goto pp98; } -yy266: - yych = *++YYCURSOR; - switch (yych) { +pp266: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy267; - default: goto yy98; + case 'c': goto pp267; + default: goto pp98; } -yy267: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp267: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101664,33 +104037,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy268; + case 'z': goto pp97; + default: goto pp268; } -yy268: +pp268: // 146 "scanner.re" { token->opcode = PHQL_T_DESC; return 0; } -// 4568 "scanner.c" -yy269: - yych = *++YYCURSOR; - switch (yych) { +// 4569 "scanner.c" +pp269: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy270; - default: goto yy98; + case 't': goto pp270; + default: goto pp98; } -yy270: - yych = *++YYCURSOR; - switch (yych) { +pp270: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy271; - default: goto yy98; + case 'e': goto pp271; + default: goto pp98; } -yy271: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp271: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101754,28 +104127,28 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy272; + case 'z': goto pp97; + default: goto pp272; } -yy272: +pp272: // 91 "scanner.re" { token->opcode = PHQL_T_DELETE; return 0; } -// 4658 "scanner.c" -yy273: - yych = *++YYCURSOR; - switch (yych) { +// 4659 "scanner.c" +pp273: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy276; + case 'l': goto pp276; case 'T': - case 't': goto yy274; - default: goto yy98; + case 't': goto pp274; + default: goto pp98; } -yy274: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp274: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101839,40 +104212,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy275; + case 'z': goto pp97; + default: goto pp275; } -yy275: +pp275: // 86 "scanner.re" { token->opcode = PHQL_T_SET; return 0; } -// 4743 "scanner.c" -yy276: - yych = *++YYCURSOR; - switch (yych) { +// 4744 "scanner.c" +pp276: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy277; - default: goto yy98; + case 'e': goto pp277; + default: goto pp98; } -yy277: - yych = *++YYCURSOR; - switch (yych) { +pp277: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy278; - default: goto yy98; + case 'c': goto pp278; + default: goto pp98; } -yy278: - yych = *++YYCURSOR; - switch (yych) { +pp278: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy279; - default: goto yy98; + case 't': goto pp279; + default: goto pp98; } -yy279: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp279: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101936,47 +104309,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy280; + case 'z': goto pp97; + default: goto pp280; } -yy280: +pp280: // 126 "scanner.re" { token->opcode = PHQL_T_SELECT; return 0; } -// 4840 "scanner.c" -yy281: - yych = *++YYCURSOR; - switch (yych) { +// 4841 "scanner.c" +pp281: + ppch = *++PPCURSOR; + switch (ppch) { case 'D': - case 'd': goto yy287; - default: goto yy98; + case 'd': goto pp287; + default: goto pp98; } -yy282: - yych = *++YYCURSOR; - switch (yych) { +pp282: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy283; - default: goto yy98; + case 'i': goto pp283; + default: goto pp98; } -yy283: - yych = *++YYCURSOR; - switch (yych) { +pp283: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy284; - default: goto yy98; + case 'n': goto pp284; + default: goto pp98; } -yy284: - yych = *++YYCURSOR; - switch (yych) { +pp284: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy285; - default: goto yy98; + case 'g': goto pp285; + default: goto pp98; } -yy285: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp285: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -102040,40 +104413,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy286; + case 'z': goto pp97; + default: goto pp286; } -yy286: +pp286: // 281 "scanner.re" { token->opcode = PHQL_T_USING; return 0; } -// 4944 "scanner.c" -yy287: - yych = *++YYCURSOR; - switch (yych) { +// 4945 "scanner.c" +pp287: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy288; - default: goto yy98; + case 'a': goto pp288; + default: goto pp98; } -yy288: - yych = *++YYCURSOR; - switch (yych) { +pp288: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy289; - default: goto yy98; + case 't': goto pp289; + default: goto pp98; } -yy289: - yych = *++YYCURSOR; - switch (yych) { +pp289: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy290; - default: goto yy98; + case 'e': goto pp290; + default: goto pp98; } -yy290: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp290: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -102137,20 +104510,20 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy291; + case 'z': goto pp97; + default: goto pp291; } -yy291: +pp291: // 81 "scanner.re" { token->opcode = PHQL_T_UPDATE; return 0; } -// 5041 "scanner.c" -yy292: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5042 "scanner.c" +pp292: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '-': case '0': case '1': @@ -102214,25 +104587,25 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy292; - case ':': goto yy294; - default: goto yy94; + case 'z': goto pp292; + case ':': goto pp294; + default: goto pp94; } -yy294: - ++YYCURSOR; +pp294: + ++PPCURSOR; // 73 "scanner.re" { token->opcode = PHQL_T_SPLACEHOLDER; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 5123 "scanner.c" -yy296: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5124 "scanner.c" +pp296: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102242,23 +104615,23 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy296; - default: goto yy298; + case '9': goto pp296; + default: goto pp298; } -yy298: +pp298: // 64 "scanner.re" { token->opcode = PHQL_T_NPLACEHOLDER; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } -// 5149 "scanner.c" -yy299: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5150 "scanner.c" +pp299: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102268,23 +104641,23 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy299; - default: goto yy301; + case '9': goto pp299; + default: goto pp301; } -yy301: +pp301: // 55 "scanner.re" { token->opcode = PHQL_T_DOUBLE; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } -// 5175 "scanner.c" -yy302: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5176 "scanner.c" +pp302: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102294,14 +104667,14 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy302; - default: goto yy301; - } -yy304: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '.': goto yy302; + case '9': goto pp302; + default: goto pp301; + } +pp304: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '.': goto pp302; case '0': case '1': case '2': @@ -102311,8 +104684,8 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy304; - default: goto yy3; + case '9': goto pp304; + default: goto pp3; } } // 488 "scanner.re" @@ -102483,173 +104856,177 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, valid) { +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current) { - zephir_fcall_cache_entry *_10 = NULL, *_13 = NULL; - HashTable *_4, *_7; - HashPosition _3, _6; - zend_bool _2; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL; + zephir_fcall_cache_entry *_13 = NULL, *_16 = NULL; + HashTable *_7, *_10; + HashPosition _6, _9; + zend_bool _5; int dirtyState, ZEPHIR_LAST_CALL_STATUS; - zval *result, *rows, *row = NULL, *underscore, *hydrateMode, *alias = NULL, *activeRow = NULL, *type = NULL, *columnTypes, *column = NULL, *columnValue = NULL, *value = NULL, *attribute = NULL, *source = NULL, *attributes = NULL, *columnMap = NULL, *rowModel = NULL, *keepSnapshots = NULL, *sqlAlias = NULL, *isPartial, **_5, **_8, *_9 = NULL, *_11, *_12 = NULL, _14 = zval_used_for_init; + zval *result, *row = NULL, *underscore, *hydrateMode, *alias = NULL, *activeRow = NULL, *type = NULL, *columnTypes, *column = NULL, *columnValue = NULL, *value = NULL, *attribute = NULL, *source = NULL, *attributes = NULL, *columnMap = NULL, *rowModel = NULL, *keepSnapshots = NULL, *sqlAlias = NULL, *isPartial, *_0, *_1 = NULL, *_2, *_3, *_4, **_8, **_11, *_12 = NULL, *_14, *_15 = NULL, _17 = zval_used_for_init; ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(activeRow); + zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); + if (Z_TYPE_P(activeRow) != IS_NULL) { + RETURN_CCTOR(activeRow); + } ZEPHIR_OBS_VAR(isPartial); zephir_read_property_this(&isPartial, this_ptr, SL("_type"), PH_NOISY_CC); if (zephir_is_true(isPartial)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL, result); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(row); - ZVAL_BOOL(row, 0); - } + ZEPHIR_OBS_VAR(row); + zephir_read_property_this(&row, this_ptr, SL("_row"), PH_NOISY_CC); } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(&row, "current", &_0, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - if (Z_TYPE_P(row) == IS_OBJECT) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_1, rows); - Z_UNSET_ISREF_P(rows); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_0) == IS_NULL) { + ZEPHIR_OBS_VAR(result); + zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); + if (Z_TYPE_P(result) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_1, result, "fetchall", NULL); zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_rows"), _1 TSRMLS_CC); + } + } + ZEPHIR_OBS_VAR(_2); + zephir_read_property_this(&_2, this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_2) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(row); + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&row, _3, _4, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(row); + ZVAL_BOOL(row, 0); } } else { ZEPHIR_INIT_NVAR(row); ZVAL_BOOL(row, 0); } } - _2 = Z_TYPE_P(row) == IS_OBJECT; - if (!(_2)) { - _2 = Z_TYPE_P(row) == IS_ARRAY; + _5 = Z_TYPE_P(row) != IS_OBJECT; + if (_5) { + _5 = Z_TYPE_P(row) != IS_ARRAY; } - if (_2) { - if (zephir_is_true(isPartial)) { - ZEPHIR_OBS_VAR(hydrateMode); - zephir_read_property_this(&hydrateMode, this_ptr, SL("_hydrateMode"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(underscore); - ZVAL_STRING(underscore, "_", 1); + if (_5) { + zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + RETURN_MM_BOOL(0); + } + if (!(zephir_is_true(isPartial))) { + zephir_update_property_this(this_ptr, SL("_activeRow"), row TSRMLS_CC); + RETURN_CCTOR(row); + } + ZEPHIR_OBS_VAR(hydrateMode); + zephir_read_property_this(&hydrateMode, this_ptr, SL("_hydrateMode"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(underscore); + ZVAL_STRING(underscore, "_", 1); + do { + if (ZEPHIR_IS_LONG(hydrateMode, 0)) { + ZEPHIR_INIT_NVAR(activeRow); + object_init_ex(activeRow, phalcon_mvc_model_row_ce); + if (zephir_has_constructor(activeRow TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, activeRow, "__construct", NULL); + zephir_check_call_status(); + } + break; + } + if (ZEPHIR_IS_LONG(hydrateMode, 1)) { + ZEPHIR_INIT_NVAR(activeRow); + array_init(activeRow); + break; + } + ZEPHIR_INIT_NVAR(activeRow); + object_init(activeRow); + break; + } while(0); + + ZEPHIR_OBS_VAR(columnTypes); + zephir_read_property_this(&columnTypes, this_ptr, SL("_columnTypes"), PH_NOISY_CC); + dirtyState = 0; + zephir_is_iterable(columnTypes, &_7, &_6, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 272); + for ( + ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS + ; zephir_hash_move_forward_ex(_7, &_6) + ) { + ZEPHIR_GET_HMKEY(alias, _7, _6); + ZEPHIR_GET_HVALUE(column, _8); + if (Z_TYPE_P(column) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/mvc/model/resultset/complex.zep", 173); + return; + } + ZEPHIR_OBS_NVAR(type); + zephir_array_fetch_string(&type, column, SL("type"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 176 TSRMLS_CC); + if (ZEPHIR_IS_STRING(type, "object")) { + ZEPHIR_OBS_NVAR(source); + zephir_array_fetch_string(&source, column, SL("column"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 182 TSRMLS_CC); + ZEPHIR_OBS_NVAR(attributes); + zephir_array_fetch_string(&attributes, column, SL("attributes"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 183 TSRMLS_CC); + ZEPHIR_OBS_NVAR(columnMap); + zephir_array_fetch_string(&columnMap, column, SL("columnMap"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 184 TSRMLS_CC); + ZEPHIR_INIT_NVAR(rowModel); + array_init(rowModel); + zephir_is_iterable(attributes, &_10, &_9, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 202); + for ( + ; zephir_hash_get_current_data_ex(_10, (void**) &_11, &_9) == SUCCESS + ; zephir_hash_move_forward_ex(_10, &_9) + ) { + ZEPHIR_GET_HVALUE(attribute, _11); + ZEPHIR_OBS_NVAR(columnValue); + ZEPHIR_INIT_LNVAR(_12); + ZEPHIR_CONCAT_VVVV(_12, underscore, source, underscore, attribute); + zephir_array_fetch(&columnValue, row, _12, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 195 TSRMLS_CC); + zephir_array_update_zval(&rowModel, attribute, &columnValue, PH_COPY | PH_SEPARATE); + } do { if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - ZEPHIR_INIT_VAR(activeRow); - object_init_ex(activeRow, phalcon_mvc_model_row_ce); - if (zephir_has_constructor(activeRow TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, activeRow, "__construct", NULL); - zephir_check_call_status(); + ZEPHIR_OBS_NVAR(keepSnapshots); + if (!(zephir_array_isset_string_fetch(&keepSnapshots, column, SS("keepSnapshots"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(keepSnapshots); + ZVAL_BOOL(keepSnapshots, 0); } + zephir_array_fetch_string(&_14, column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 217 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_15); + ZVAL_LONG(_15, dirtyState); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_13, _14, rowModel, columnMap, _15, keepSnapshots); + zephir_check_call_status(); break; } - if (ZEPHIR_IS_LONG(hydrateMode, 1)) { - ZEPHIR_INIT_NVAR(activeRow); - array_init(activeRow); - break; - } - ZEPHIR_INIT_NVAR(activeRow); - object_init(activeRow); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_16, rowModel, columnMap, hydrateMode); + zephir_check_call_status(); break; } while(0); - ZEPHIR_OBS_VAR(columnTypes); - zephir_read_property_this(&columnTypes, this_ptr, SL("_columnTypes"), PH_NOISY_CC); - dirtyState = 0; - zephir_is_iterable(columnTypes, &_4, &_3, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 266); - for ( - ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS - ; zephir_hash_move_forward_ex(_4, &_3) - ) { - ZEPHIR_GET_HMKEY(alias, _4, _3); - ZEPHIR_GET_HVALUE(column, _5); - if (Z_TYPE_P(column) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/mvc/model/resultset/complex.zep", 167); - return; - } - ZEPHIR_OBS_NVAR(type); - zephir_array_fetch_string(&type, column, SL("type"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 170 TSRMLS_CC); - if (ZEPHIR_IS_STRING(type, "object")) { - ZEPHIR_OBS_NVAR(source); - zephir_array_fetch_string(&source, column, SL("column"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 176 TSRMLS_CC); - ZEPHIR_OBS_NVAR(attributes); - zephir_array_fetch_string(&attributes, column, SL("attributes"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 177 TSRMLS_CC); - ZEPHIR_OBS_NVAR(columnMap); - zephir_array_fetch_string(&columnMap, column, SL("columnMap"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 178 TSRMLS_CC); - ZEPHIR_INIT_NVAR(rowModel); - array_init(rowModel); - zephir_is_iterable(attributes, &_7, &_6, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 196); - for ( - ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS - ; zephir_hash_move_forward_ex(_7, &_6) - ) { - ZEPHIR_GET_HVALUE(attribute, _8); - ZEPHIR_OBS_NVAR(columnValue); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_VVVV(_9, underscore, source, underscore, attribute); - zephir_array_fetch(&columnValue, row, _9, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 189 TSRMLS_CC); - zephir_array_update_zval(&rowModel, attribute, &columnValue, PH_COPY | PH_SEPARATE); - } - do { - if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - ZEPHIR_OBS_NVAR(keepSnapshots); - if (!(zephir_array_isset_string_fetch(&keepSnapshots, column, SS("keepSnapshots"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(keepSnapshots); - ZVAL_BOOL(keepSnapshots, 0); - } - zephir_array_fetch_string(&_11, column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 211 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_12); - ZVAL_LONG(_12, dirtyState); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_10, _11, rowModel, columnMap, _12, keepSnapshots); - zephir_check_call_status(); - break; - } - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_13, rowModel, columnMap, hydrateMode); - zephir_check_call_status(); - break; - } while(0); - - ZEPHIR_OBS_NVAR(attribute); - zephir_array_fetch_string(&attribute, column, SL("balias"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 225 TSRMLS_CC); - } else { - ZEPHIR_OBS_NVAR(sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, column, SS("sqlAlias"), 0 TSRMLS_CC)) { - ZEPHIR_OBS_NVAR(value); - zephir_array_fetch(&value, row, sqlAlias, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 233 TSRMLS_CC); - } else { - ZEPHIR_OBS_NVAR(value); - zephir_array_isset_fetch(&value, row, alias, 0 TSRMLS_CC); - } - if (zephir_array_isset_string(column, SS("balias"))) { - ZEPHIR_CPY_WRT(attribute, alias); - } else { - ZEPHIR_INIT_NVAR(attribute); - ZEPHIR_SINIT_NVAR(_14); - ZVAL_STRING(&_14, "", 0); - zephir_fast_str_replace(&attribute, underscore, &_14, alias TSRMLS_CC); - } - } - do { - if (ZEPHIR_IS_LONG(hydrateMode, 1)) { - zephir_array_update_zval(&activeRow, attribute, &value, PH_COPY | PH_SEPARATE); - break; - } - zephir_update_property_zval_zval(activeRow, attribute, value TSRMLS_CC); - break; - } while(0); - - } - zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); + ZEPHIR_OBS_NVAR(attribute); + zephir_array_fetch_string(&attribute, column, SL("balias"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 231 TSRMLS_CC); } else { - zephir_update_property_this(this_ptr, SL("_activeRow"), row TSRMLS_CC); + ZEPHIR_OBS_NVAR(sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, column, SS("sqlAlias"), 0 TSRMLS_CC)) { + ZEPHIR_OBS_NVAR(value); + zephir_array_fetch(&value, row, sqlAlias, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 239 TSRMLS_CC); + } else { + ZEPHIR_OBS_NVAR(value); + zephir_array_isset_fetch(&value, row, alias, 0 TSRMLS_CC); + } + if (zephir_array_isset_string(column, SS("balias"))) { + ZEPHIR_CPY_WRT(attribute, alias); + } else { + ZEPHIR_INIT_NVAR(attribute); + ZEPHIR_SINIT_NVAR(_17); + ZVAL_STRING(&_17, "", 0); + zephir_fast_str_replace(&attribute, underscore, &_17, alias TSRMLS_CC); + } } - RETURN_MM_BOOL(1); + do { + if (ZEPHIR_IS_LONG(hydrateMode, 1)) { + zephir_array_update_zval(&activeRow, attribute, &value, PH_COPY | PH_SEPARATE); + break; + } + zephir_update_property_zval_zval(activeRow, attribute, value TSRMLS_CC); + break; + } while(0); + } - zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - RETURN_MM_BOOL(0); + zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); + RETURN_CCTOR(activeRow); } @@ -102670,7 +105047,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(current, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_append(&records, current, PH_SEPARATE, "phalcon/mvc/model/resultset/complex.zep", 294); + zephir_array_append(&records, current, PH_SEPARATE, "phalcon/mvc/model/resultset/complex.zep", 285); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); @@ -102713,11 +105090,23 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; - zval *data, *resultset = NULL, *_0, *_2, *_3, *_4, *_5; + zval *data_param = NULL, *resultset = NULL, *_0, *_2, *_3, *_4, *_5; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + if (unlikely(Z_TYPE_P(data_param) != IS_STRING && Z_TYPE_P(data_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'data' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(data_param) == IS_STRING)) { + zephir_get_strval(data, data_param); + } else { + ZEPHIR_INIT_VAR(data); + ZVAL_EMPTY_STRING(data); + } ZEPHIR_INIT_ZVAL_NREF(_0); @@ -102726,16 +105115,16 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) { ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", &_1, data); zephir_check_call_status(); if (Z_TYPE_P(resultset) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/complex.zep", 347); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/complex.zep", 339); return; } - zephir_array_fetch_string(&_2, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 350 TSRMLS_CC); + zephir_array_fetch_string(&_2, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 342 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_rows"), _2 TSRMLS_CC); - zephir_array_fetch_string(&_3, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 351 TSRMLS_CC); + zephir_array_fetch_string(&_3, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 343 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_cache"), _3 TSRMLS_CC); - zephir_array_fetch_string(&_4, resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 352 TSRMLS_CC); + zephir_array_fetch_string(&_4, resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 344 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_columnTypes"), _4 TSRMLS_CC); - zephir_array_fetch_string(&_5, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 353 TSRMLS_CC); + zephir_array_fetch_string(&_5, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 345 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_hydrateMode"), _5 TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -102818,49 +105207,43 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current) { - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL, *_4 = NULL, *_8 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_8 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *result = NULL, *row = NULL, *rows = NULL, *hydrateMode, *columnMap, *activeRow = NULL, *_0, *_1 = NULL, *_5, *_6, *_7; + zval *result, *row = NULL, *hydrateMode, *columnMap, *activeRow = NULL, *_0, *_1, *_2 = NULL, *_3, *_4, *_5, *_7; ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(activeRow); + zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); + if (Z_TYPE_P(activeRow) != IS_NULL) { + RETURN_CCTOR(activeRow); + } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); if (zephir_is_true(_0)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL, result); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(row); - ZVAL_BOOL(row, 0); - } + ZEPHIR_OBS_VAR(row); + zephir_read_property_this(&row, this_ptr, SL("_row"), PH_NOISY_CC); } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) != IS_ARRAY) { - ZEPHIR_OBS_NVAR(result); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_1) == IS_NULL) { + ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_1, result, "fetchall", NULL); + ZEPHIR_CALL_METHOD(&_2, result, "fetchall", NULL); zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), _1 TSRMLS_CC); - ZEPHIR_OBS_NVAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); + zephir_update_property_this(this_ptr, SL("_rows"), _2 TSRMLS_CC); } } - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(&row, "current", &_2, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(row)) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(_3); + zephir_read_property_this(&_3, this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_3) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(row); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&row, _4, _5, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(row); + ZVAL_BOOL(row, 0); } } else { ZEPHIR_INIT_NVAR(row); @@ -102877,11 +105260,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { zephir_read_property_this(&columnMap, this_ptr, SL("_columnMap"), PH_NOISY_CC); do { if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_model"), PH_NOISY_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_keepSnapshots"), PH_NOISY_CC); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_model"), PH_NOISY_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_keepSnapshots"), PH_NOISY_CC); ZEPHIR_INIT_VAR(_7); ZVAL_LONG(_7, 0); - ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_4, _5, row, columnMap, _7, _6); + ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_6, _1, row, columnMap, _7, _4); zephir_check_call_status(); break; } @@ -102891,7 +105274,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { } while(0); zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); - RETURN_MM_BOOL(1); + RETURN_CCTOR(activeRow); } @@ -102901,7 +105284,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { HashTable *_3, *_6; HashPosition _2, _5; int ZEPHIR_LAST_CALL_STATUS; - zval *renameColumns_param = NULL, *result = NULL, *activeRow = NULL, *records = NULL, *record = NULL, *renamed = NULL, *renamedKey = NULL, *key = NULL, *value = NULL, *renamedRecords, *columnMap, *_0, *_1, **_4, **_7, *_8 = NULL, *_9 = NULL; + zval *renameColumns_param = NULL, *result = NULL, *records = NULL, *record = NULL, *renamed = NULL, *renamedKey = NULL, *key = NULL, *value = NULL, *renamedRecords, *columnMap, *_0, *_1, **_4, **_7, *_8 = NULL, *_9 = NULL; zend_bool renameColumns; ZEPHIR_MM_GROW(); @@ -102919,14 +105302,14 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_OBS_VAR(activeRow); - zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(activeRow) != IS_NULL) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + if (Z_TYPE_P(_1) != IS_NULL) { ZEPHIR_CALL_METHOD(NULL, result, "execute", NULL); zephir_check_call_status(); } ZEPHIR_CALL_METHOD(&records, result, "fetchall", NULL); zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(records); array_init(records); @@ -102938,18 +105321,9 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_OBS_NVAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(activeRow); - zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(activeRow) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, result, "execute", NULL); - zephir_check_call_status(); - } ZEPHIR_CALL_METHOD(&records, result, "fetchall", NULL); zephir_check_call_status(); zephir_update_property_this(this_ptr, SL("_rows"), records TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, zephir_fast_count_int(records TSRMLS_CC)); - zephir_update_property_this(this_ptr, SL("_count"), _1 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(records); array_init(records); @@ -102965,7 +105339,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_INIT_VAR(renamedRecords); array_init(renamedRecords); if (Z_TYPE_P(records) == IS_ARRAY) { - zephir_is_iterable(records, &_3, &_2, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 276); + zephir_is_iterable(records, &_3, &_2, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 263); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -102973,7 +105347,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_GET_HVALUE(record, _4); ZEPHIR_INIT_NVAR(renamed); array_init(renamed); - zephir_is_iterable(record, &_6, &_5, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 274); + zephir_is_iterable(record, &_6, &_5, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 261); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -102988,13 +105362,13 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_CONCAT_SVS(_9, "Column '", key, "' is not part of the column map"); ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/mvc/model/resultset/simple.zep", 262 TSRMLS_CC); + zephir_throw_exception_debug(_8, "phalcon/mvc/model/resultset/simple.zep", 249 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } zephir_array_update_zval(&renamed, renamedKey, &value, PH_COPY | PH_SEPARATE); } - zephir_array_append(&renamedRecords, renamed, PH_SEPARATE, "phalcon/mvc/model/resultset/simple.zep", 274); + zephir_array_append(&renamedRecords, renamed, PH_SEPARATE, "phalcon/mvc/model/resultset/simple.zep", 261); } } RETURN_CCTOR(renamedRecords); @@ -103012,7 +105386,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize) { ZEPHIR_MM_GROW(); - zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); ZEPHIR_INIT_VAR(_0); zephir_create_array(_0, 5, 0 TSRMLS_CC); ZEPHIR_OBS_VAR(_1); @@ -103067,18 +105440,18 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize) { ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", &_1, data); zephir_check_call_status(); if (Z_TYPE_P(resultset) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/simple.zep", 317); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/simple.zep", 302); return; } - zephir_array_fetch_string(&_2, resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 320 TSRMLS_CC); + zephir_array_fetch_string(&_2, resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 305 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_model"), _2 TSRMLS_CC); - zephir_array_fetch_string(&_3, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 321 TSRMLS_CC); + zephir_array_fetch_string(&_3, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 306 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_rows"), _3 TSRMLS_CC); - zephir_array_fetch_string(&_4, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 322 TSRMLS_CC); + zephir_array_fetch_string(&_4, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 307 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_cache"), _4 TSRMLS_CC); - zephir_array_fetch_string(&_5, resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 323 TSRMLS_CC); + zephir_array_fetch_string(&_5, resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 308 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_columnMap"), _5 TSRMLS_CC); - zephir_array_fetch_string(&_6, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 324 TSRMLS_CC); + zephir_array_fetch_string(&_6, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 309 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_hydrateMode"), _6 TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -103698,7 +106071,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Email, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/email.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/email.zep", 63); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104019,7 +106392,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Numericality, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/numericality.zep", 63); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/numericality.zep", 62); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104104,7 +106477,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_PresenceOf, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/presenceof.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/presenceof.zep", 63); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104185,7 +106558,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/regex.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/regex.zep", 63); return; } ZEPHIR_INIT_NVAR(_0); @@ -104194,7 +106567,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Validator requires a perl-compatible regex pattern", "phalcon/mvc/model/validator/regex.zep", 71); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Validator requires a perl-compatible regex pattern", "phalcon/mvc/model/validator/regex.zep", 70); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104222,7 +106595,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { ZEPHIR_INIT_NVAR(_0); zephir_preg_match(_0, pattern, value, matches, 0, 0 , 0 TSRMLS_CC); if (zephir_is_true(_0)) { - zephir_array_fetch_long(&_4, matches, 0, PH_NOISY | PH_READONLY, "phalcon/mvc/model/validator/regex.zep", 90 TSRMLS_CC); + zephir_array_fetch_long(&_4, matches, 0, PH_NOISY | PH_READONLY, "phalcon/mvc/model/validator/regex.zep", 89 TSRMLS_CC); failed = !ZEPHIR_IS_EQUAL(_4, value); } else { failed = 1; @@ -104295,7 +106668,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_StringLength, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/stringlength.zep", 68); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/stringlength.zep", 67); return; } ZEPHIR_INIT_NVAR(_0); @@ -104313,7 +106686,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_StringLength, validate) { _1 = !zephir_is_true(isSetMax); } if (_1) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A minimum or maximum must be set", "phalcon/mvc/model/validator/stringlength.zep", 78); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A minimum or maximum must be set", "phalcon/mvc/model/validator/stringlength.zep", 77); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104468,7 +106841,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) == IS_ARRAY) { - zephir_is_iterable(field, &_2, &_1, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 121); + zephir_is_iterable(field, &_2, &_1, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 120); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -104483,7 +106856,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_4, "Column '", composeField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 98 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 97 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104498,7 +106871,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_4, "Column '", columnField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 108 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104506,11 +106879,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZVAL_LONG(&_6, number); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SVSV(_7, "[", composeField, "] = ?", &_6); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 114); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 113); ZEPHIR_CALL_METHOD(&_8, record, "readattribute", &_9, composeField); zephir_check_call_status(); - zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 115); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 116); + zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 114); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 115); number++; } } else { @@ -104523,7 +106896,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 128 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 127 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104538,17 +106911,17 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", columnField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 138 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 137 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SVS(_7, "[", field, "] = ?0"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 144); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 143); ZEPHIR_CALL_METHOD(&_8, record, "readattribute", &_9, field); zephir_check_call_status(); - zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 145); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 146); + zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 144); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 145); number++; } ZEPHIR_CALL_METHOD(&_10, record, "getoperationmade", NULL); @@ -104563,7 +106936,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { } ZEPHIR_CALL_METHOD(&_8, metaData, "getprimarykeyattributes", NULL, record); zephir_check_call_status(); - zephir_is_iterable(_8, &_12, &_11, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 191); + zephir_is_iterable(_8, &_12, &_11, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 190); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -104577,7 +106950,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 168 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 167 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104590,7 +106963,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_14, "Column '", primaryField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 176 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 175 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104601,11 +106974,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZVAL_LONG(&_6, number); ZEPHIR_INIT_LNVAR(_4); ZEPHIR_CONCAT_SVSV(_4, "[", attributeField, "] <> ?", &_6); - zephir_array_append(&conditions, _4, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 185); + zephir_array_append(&conditions, _4, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 184); ZEPHIR_CALL_METHOD(&_15, record, "readattribute", &_9, primaryField); zephir_check_call_status(); - zephir_array_append(&bindParams, _15, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 186); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 187); + zephir_array_append(&bindParams, _15, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 185); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 186); number++; } } @@ -104699,7 +107072,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Url, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/url.zep", 63); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/url.zep", 62); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -108362,26 +110735,31 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, convertEncoding) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { - zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; - zend_bool _2; - zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_5 = NULL, *_8 = NULL; - int position, ZEPHIR_LAST_CALL_STATUS; - zval *value, *start, *end = NULL, *length = NULL, *slice, *_0 = NULL, *_3 = NULL, *_6; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL, *_7 = NULL; + zend_bool _1; + int start, position, ZEPHIR_LAST_CALL_STATUS; + zval *value, *start_param = NULL, *end = NULL, *length, *slice, *_0 = NULL, *_2 = NULL, _5 = zval_used_for_init; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &value, &start, &end); + zephir_fetch_params(1, 1, 2, &value, &start_param, &end); + if (!start_param) { + start = 0; + } else { + start = zephir_get_intval(start_param); + } if (!end) { - end = ZEPHIR_GLOBAL(global_null); + ZEPHIR_CPY_WRT(end, ZEPHIR_GLOBAL(global_null)); + } else { + ZEPHIR_SEPARATE_PARAM(end); } if (Z_TYPE_P(value) == IS_OBJECT) { if (Z_TYPE_P(end) == IS_NULL) { - ZEPHIR_INIT_VAR(length); - ZVAL_LONG(length, zephir_fast_count_int(value TSRMLS_CC)); - } else { - ZEPHIR_CPY_WRT(length, end); + ZEPHIR_INIT_NVAR(end); + ZVAL_LONG(end, (zephir_fast_count_int(value TSRMLS_CC) - 1)); } position = 0; ZEPHIR_INIT_VAR(slice); @@ -108389,54 +110767,62 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_0, value, "valid", &_1); + ZEPHIR_CALL_METHOD(&_0, value, "valid", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { break; } - _2 = ZEPHIR_LT_LONG(start, position); - if (_2) { - _2 = ZEPHIR_GE_LONG(length, position); + _1 = position >= start; + if (_1) { + _1 = ZEPHIR_GE_LONG(end, position); } - if (_2) { - ZEPHIR_CALL_METHOD(&_3, value, "current", &_4); + if (_1) { + ZEPHIR_CALL_METHOD(&_2, value, "current", &_3); zephir_check_call_status(); - zephir_array_append(&slice, _3, PH_SEPARATE, "phalcon/mvc/view/engine/volt.zep", 239); + zephir_array_append(&slice, _2, PH_SEPARATE, "phalcon/mvc/view/engine/volt.zep", 233); } - ZEPHIR_CALL_METHOD(NULL, value, "next", &_5); + ZEPHIR_CALL_METHOD(NULL, value, "next", &_4); zephir_check_call_status(); position++; } RETURN_CCTOR(slice); } - ZEPHIR_INIT_NVAR(length); + ZEPHIR_INIT_VAR(length); if (Z_TYPE_P(end) != IS_NULL) { - ZEPHIR_INIT_VAR(_6); - sub_function(_6, end, start TSRMLS_CC); - ZVAL_LONG(length, (zephir_get_numberval(_6) + 1)); + ZVAL_LONG(length, (((zephir_get_numberval(end) - start)) + 1)); } else { ZVAL_NULL(length); } if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_RETURN_CALL_FUNCTION("array_slice", &_7, value, start, length); + ZEPHIR_SINIT_VAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("array_slice", &_6, value, &_5, length); zephir_check_call_status(); RETURN_MM(); } if ((zephir_function_exists_ex(SS("mb_substr") TSRMLS_CC) == SUCCESS)) { if (Z_TYPE_P(length) != IS_NULL) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_8, value, start, length); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_7, value, &_5, length); zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_8, value, start); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_7, value, &_5); zephir_check_call_status(); RETURN_MM(); } if (Z_TYPE_P(length) != IS_NULL) { - zephir_substr(return_value, value, zephir_get_intval(start), zephir_get_intval(length), 0); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + zephir_substr(return_value, value, zephir_get_intval(&_5), zephir_get_intval(length), 0); RETURN_MM(); } - zephir_substr(return_value, value, zephir_get_intval(start), 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + zephir_substr(return_value, value, zephir_get_intval(&_5), 0, ZEPHIR_SUBSTR_NO_LENGTH); RETURN_MM(); } @@ -108673,7 +111059,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, fireExtensionEvent) { ZEPHIR_OBS_VAR(extensions); zephir_read_property_this(&extensions, this_ptr, SL("_extensions"), PH_NOISY_CC); if (Z_TYPE_P(extensions) == IS_ARRAY) { - zephir_is_iterable(extensions, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 191); + zephir_is_iterable(extensions, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 189); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -108718,7 +111104,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addExtension) { if (Z_TYPE_P(extension) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The extension is not valid", "phalcon/mvc/view/engine/volt/compiler.zep", 203); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The extension is not valid", "phalcon/mvc/view/engine/volt/compiler.zep", 201); return; } if ((zephir_method_exists_ex(extension, SS("initialize") TSRMLS_CC) == SUCCESS)) { @@ -108858,7 +111244,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) { } } if (Z_TYPE_P(prefix) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The unique compilation prefix is invalid", "phalcon/mvc/view/engine/volt/compiler.zep", 311); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The unique compilation prefix is invalid", "phalcon/mvc/view/engine/volt/compiler.zep", 303); return; } RETURN_CCTOR(prefix); @@ -108867,9 +111253,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { + zend_bool _5; zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *exprCode, *left, *leftType, *variable, *level, *dependencyInjector, *leftCode = NULL, *right, *_0, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_5, *_6; + zval *expr_param = NULL, *exprCode, *left, *leftType, *variable, *level, *dependencyInjector, *leftCode = NULL, *right, *_0, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_6, *_7; zval *expr = NULL; ZEPHIR_MM_GROW(); @@ -108882,11 +111269,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { ZEPHIR_INIT_VAR(exprCode); ZVAL_NULL(exprCode); ZEPHIR_OBS_VAR(left); - zephir_array_fetch_string(&left, expr, SL("left"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 327 TSRMLS_CC); - zephir_array_fetch_string(&_0, left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 329 TSRMLS_CC); + zephir_array_fetch_string(&left, expr, SL("left"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 319 TSRMLS_CC); + zephir_array_fetch_string(&_0, left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 321 TSRMLS_CC); if (ZEPHIR_IS_LONG(_0, 265)) { ZEPHIR_OBS_VAR(variable); - zephir_array_fetch_string(&variable, left, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 331 TSRMLS_CC); + zephir_array_fetch_string(&variable, left, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 323 TSRMLS_CC); if (ZEPHIR_IS_STRING(variable, "loop")) { ZEPHIR_OBS_VAR(level); zephir_read_property_this(&level, this_ptr, SL("_foreachLevel"), PH_NOISY_CC); @@ -108921,26 +111308,26 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", &_4, left); zephir_check_call_status(); ZEPHIR_OBS_VAR(leftType); - zephir_array_fetch_string(&leftType, left, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 358 TSRMLS_CC); - if (!ZEPHIR_IS_LONG(leftType, '.')) { - if (!ZEPHIR_IS_LONG(leftType, 350)) { - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SVS(_2, "(", leftCode, ")"); - zephir_concat_self(&exprCode, _2 TSRMLS_CC); - } else { - zephir_concat_self(&exprCode, leftCode TSRMLS_CC); - } + zephir_array_fetch_string(&leftType, left, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 350 TSRMLS_CC); + _5 = !ZEPHIR_IS_LONG(leftType, '.'); + if (_5) { + _5 = !ZEPHIR_IS_LONG(leftType, 350); + } + if (_5) { + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SVS(_2, "(", leftCode, ")"); + zephir_concat_self(&exprCode, _2 TSRMLS_CC); } else { zephir_concat_self(&exprCode, leftCode TSRMLS_CC); } } zephir_concat_self_str(&exprCode, SL("->") TSRMLS_CC); ZEPHIR_OBS_VAR(right); - zephir_array_fetch_string(&right, expr, SL("right"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 372 TSRMLS_CC); - zephir_array_fetch_string(&_5, right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 374 TSRMLS_CC); - if (ZEPHIR_IS_LONG(_5, 265)) { - zephir_array_fetch_string(&_6, right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 375 TSRMLS_CC); - zephir_concat_self(&exprCode, _6 TSRMLS_CC); + zephir_array_fetch_string(&right, expr, SL("right"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 360 TSRMLS_CC); + zephir_array_fetch_string(&_6, right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 362 TSRMLS_CC); + if (ZEPHIR_IS_LONG(_6, 265)) { + zephir_array_fetch_string(&_7, right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 363 TSRMLS_CC); + zephir_concat_self(&exprCode, _7 TSRMLS_CC); } else { ZEPHIR_CALL_METHOD(&_1, this_ptr, "expression", &_4, right); zephir_check_call_status(); @@ -108952,9 +111339,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL; + zend_bool _8; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL, *_9 = NULL, *_10 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *code = NULL, *funcArguments = NULL, *arguments = NULL, *nameExpr, *nameType, *name, *extensions, *functions, *definition, *macros, *extendedBlocks, *block, *currentBlock, *exprLevel, *escapedCode = NULL, *method = NULL, *arrayHelpers = NULL, *className, *_2 = NULL, *_4, *_5, *_6 = NULL, *_10 = NULL; + zval *expr_param = NULL, *code = NULL, *funcArguments = NULL, *arguments = NULL, *nameExpr, *nameType, *name, *extensions, *functions, *definition, *macros, *extendedBlocks, *block, *currentBlock, *exprLevel, *escapedCode = NULL, *method = NULL, *arrayHelpers = NULL, *className, *_2 = NULL, *_4, *_5, *_6 = NULL, *_11 = NULL; zval *expr = NULL, *_1 = NULL; ZEPHIR_MM_GROW(); @@ -108977,12 +111365,12 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZVAL_STRING(arguments, "", 1); } ZEPHIR_OBS_VAR(nameExpr); - zephir_array_fetch_string(&nameExpr, expr, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 402 TSRMLS_CC); + zephir_array_fetch_string(&nameExpr, expr, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 390 TSRMLS_CC); ZEPHIR_OBS_VAR(nameType); - zephir_array_fetch_string(&nameType, nameExpr, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 402 TSRMLS_CC); + zephir_array_fetch_string(&nameType, nameExpr, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 390 TSRMLS_CC); if (ZEPHIR_IS_LONG(nameType, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, nameExpr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 409 TSRMLS_CC); + zephir_array_fetch_string(&name, nameExpr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 397 TSRMLS_CC); ZEPHIR_OBS_VAR(extensions); zephir_read_property_this(&extensions, this_ptr, SL("_extensions"), PH_NOISY_CC); if (Z_TYPE_P(extensions) == IS_ARRAY) { @@ -109022,13 +111410,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); - zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); + zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); + zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); ZEPHIR_INIT_VAR(_6); ZEPHIR_CONCAT_SVSVSV(_6, "Invalid definition for user function '", name, "' in ", _4, " on line ", _5); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -109039,10 +111427,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZEPHIR_CONCAT_SVSVS(return_value, "vmacro_", name, "(array(", arguments, "))"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "get_content")) { - RETURN_MM_STRING("$this->getContent()", 1); + _8 = ZEPHIR_IS_STRING(name, "get_content"); + if (!(_8)) { + _8 = ZEPHIR_IS_STRING(name, "content"); } - if (ZEPHIR_IS_STRING(name, "content")) { + if (_8) { RETURN_MM_STRING("$this->getContent()", 1); } if (ZEPHIR_IS_STRING(name, "partial")) { @@ -109060,7 +111449,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZEPHIR_OBS_VAR(exprLevel); zephir_read_property_this(&exprLevel, this_ptr, SL("_exprLevel"), PH_NOISY_CC); if (Z_TYPE_P(block) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&code, this_ptr, "_statementlistorextends", &_8, block); + ZEPHIR_CALL_METHOD(&code, this_ptr, "_statementlistorextends", &_9, block); zephir_check_call_status(); if (ZEPHIR_IS_LONG(exprLevel, 1)) { ZEPHIR_CPY_WRT(escapedCode, code); @@ -109087,7 +111476,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); zephir_camelize(_2, name); - ZEPHIR_CALL_FUNCTION(&method, "lcfirst", &_9, _2); + ZEPHIR_CALL_FUNCTION(&method, "lcfirst", &_10, _2); zephir_check_call_status(); ZEPHIR_INIT_VAR(className); ZVAL_STRING(className, "Phalcon\\Tag", 1); @@ -109153,19 +111542,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); - zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); + zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); + zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_6); ZEPHIR_CONCAT_SVSVSV(_6, "Undefined function '", name, "' in ", _4, " on line ", _5); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_CALL_METHOD(&_10, this_ptr, "expression", &_0, nameExpr); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "expression", &_0, nameExpr); zephir_check_call_status(); - ZEPHIR_CONCAT_VSVS(return_value, _10, "(", arguments, ")"); + ZEPHIR_CONCAT_VSVS(return_value, _11, "(", arguments, ")"); RETURN_MM(); } @@ -109187,10 +111576,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { ZEPHIR_OBS_VAR(type); - zephir_array_fetch_string(&type, test, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 615 TSRMLS_CC); + zephir_array_fetch_string(&type, test, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 596 TSRMLS_CC); if (ZEPHIR_IS_LONG(type, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, test, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 622 TSRMLS_CC); + zephir_array_fetch_string(&name, test, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 603 TSRMLS_CC); if (ZEPHIR_IS_STRING(name, "empty")) { ZEPHIR_CONCAT_SVS(return_value, "empty(", left, ")"); RETURN_MM(); @@ -109218,25 +111607,25 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { } if (ZEPHIR_IS_LONG(type, 350)) { ZEPHIR_OBS_VAR(testName); - zephir_array_fetch_string(&testName, test, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 673 TSRMLS_CC); + zephir_array_fetch_string(&testName, test, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 654 TSRMLS_CC); ZEPHIR_OBS_NVAR(name); if (zephir_array_isset_string_fetch(&name, testName, SS("value"), 0 TSRMLS_CC)) { if (ZEPHIR_IS_STRING(name, "divisibleby")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 677 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 658 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "(((", left, ") % (", _0, ")) == 0)"); RETURN_MM(); } if (ZEPHIR_IS_STRING(name, "sameas")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 684 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 665 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "(", left, ") === (", _0, ")"); RETURN_MM(); } if (ZEPHIR_IS_STRING(name, "type")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 691 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 672 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "gettype(", left, ") === (", _0, ")"); @@ -109253,6 +111642,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { + zend_bool _10, _11, _12; zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL; int ZEPHIR_LAST_CALL_STATUS; zval *left = NULL; @@ -109270,28 +111660,28 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_INIT_VAR(code); ZVAL_NULL(code); ZEPHIR_OBS_VAR(type); - zephir_array_fetch_string(&type, filter, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 710 TSRMLS_CC); + zephir_array_fetch_string(&type, filter, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 691 TSRMLS_CC); if (ZEPHIR_IS_LONG(type, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, filter, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 716 TSRMLS_CC); + zephir_array_fetch_string(&name, filter, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 697 TSRMLS_CC); } else { if (!ZEPHIR_IS_LONG(type, 350)) { ZEPHIR_INIT_VAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); ZEPHIR_INIT_VAR(_3); ZEPHIR_CONCAT_SVSV(_3, "Unknown filter type in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(functionName); - zephir_array_fetch_string(&functionName, filter, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 727 TSRMLS_CC); + zephir_array_fetch_string(&functionName, filter, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 708 TSRMLS_CC); ZEPHIR_OBS_NVAR(name); - zephir_array_fetch_string(&name, functionName, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 728 TSRMLS_CC); + zephir_array_fetch_string(&name, functionName, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 709 TSRMLS_CC); } ZEPHIR_INIT_VAR(funcArguments); ZVAL_NULL(funcArguments); @@ -109301,9 +111691,9 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { if (zephir_array_isset_string_fetch(&funcArguments, filter, SS("arguments"), 0 TSRMLS_CC)) { if (!ZEPHIR_IS_STRING(name, "default")) { ZEPHIR_OBS_VAR(file); - zephir_array_fetch_string(&file, filter, SL("file"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&file, filter, SL("file"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); ZEPHIR_OBS_VAR(line); - zephir_array_fetch_string(&line, filter, SL("line"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&line, filter, SL("line"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); ZEPHIR_INIT_VAR(_5); zephir_create_array(_5, 3, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_6); @@ -109364,13 +111754,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { } ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); ZEPHIR_CONCAT_SVSVSV(_3, "Invalid definition for user filter '", name, "' in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -109379,11 +111769,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_CONCAT_SVS(return_value, "$this->length(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "e")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", arguments, ")"); - RETURN_MM(); + _10 = ZEPHIR_IS_STRING(name, "e"); + if (!(_10)) { + _10 = ZEPHIR_IS_STRING(name, "escape"); } - if (ZEPHIR_IS_STRING(name, "escape")) { + if (_10) { ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", arguments, ")"); RETURN_MM(); } @@ -109439,19 +111829,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_CONCAT_SVS(return_value, "join(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "lowercase")) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", arguments, ")"); - RETURN_MM(); + _11 = ZEPHIR_IS_STRING(name, "lower"); + if (!(_11)) { + _11 = ZEPHIR_IS_STRING(name, "lowercase"); } - if (ZEPHIR_IS_STRING(name, "lower")) { + if (_11) { ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "uppercase")) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", arguments, ")"); - RETURN_MM(); + _12 = ZEPHIR_IS_STRING(name, "upper"); + if (!(_12)) { + _12 = ZEPHIR_IS_STRING(name, "uppercase"); } - if (ZEPHIR_IS_STRING(name, "upper")) { + if (_12) { ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", arguments, ")"); RETURN_MM(); } @@ -109493,13 +111883,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { } ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); ZEPHIR_CONCAT_SVSVSV(_3, "Unknown filter \"", name, "\" in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -109545,22 +111935,22 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { if (!(zephir_array_isset_string_fetch(&type, expr, SS("type"), 0 TSRMLS_CC))) { ZEPHIR_INIT_NVAR(items); array_init(items); - zephir_is_iterable(expr, &_4, &_3, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1057); + zephir_is_iterable(expr, &_4, &_3, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1017); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) ) { ZEPHIR_GET_HVALUE(singleExpr, _5); - zephir_array_fetch_string(&_6, singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1050 TSRMLS_CC); + zephir_array_fetch_string(&_6, singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1010 TSRMLS_CC); ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, _6); zephir_check_call_status(); ZEPHIR_OBS_NVAR(name); if (zephir_array_isset_string_fetch(&name, singleExpr, SS("name"), 0 TSRMLS_CC)) { ZEPHIR_INIT_LNVAR(_8); ZEPHIR_CONCAT_SVSV(_8, "'", name, "' => ", singleExprCode); - zephir_array_append(&items, _8, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1052); + zephir_array_append(&items, _8, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1012); } else { - zephir_array_append(&items, singleExprCode, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1054); + zephir_array_append(&items, singleExprCode, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1014); } } ZEPHIR_INIT_NVAR(exprCode); @@ -109578,13 +111968,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { zephir_check_call_status(); } if (ZEPHIR_IS_LONG(type, 311)) { - zephir_array_fetch_string(&_6, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1080 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1040 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvetest", &_10, _6, leftCode); zephir_check_call_status(); break; } if (ZEPHIR_IS_LONG(type, 124)) { - zephir_array_fetch_string(&_11, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1088 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1048 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvefilter", &_12, _11, leftCode); zephir_check_call_status(); break; @@ -109663,17 +112053,17 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { } if (ZEPHIR_IS_LONG(type, 258)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1155 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1115 TSRMLS_CC); break; } if (ZEPHIR_IS_LONG(type, 259)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1159 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1119 TSRMLS_CC); break; } if (ZEPHIR_IS_LONG(type, 260)) { ZEPHIR_INIT_NVAR(_1); - zephir_array_fetch_string(&_6, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1163 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1123 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_13); ZVAL_STRING(&_13, "'", 0); ZEPHIR_SINIT_NVAR(_14); @@ -109699,7 +112089,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { break; } if (ZEPHIR_IS_LONG(type, 265)) { - zephir_array_fetch_string(&_11, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1179 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1139 TSRMLS_CC); ZEPHIR_INIT_NVAR(exprCode); ZEPHIR_CONCAT_SV(exprCode, "$", _11); break; @@ -109866,7 +112256,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { break; } if (ZEPHIR_IS_LONG(type, 366)) { - zephir_array_fetch_string(&_6, expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1318 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1278 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_16, this_ptr, "expression", &_7, _6); zephir_check_call_status(); ZEPHIR_INIT_NVAR(exprCode); @@ -109885,18 +112275,18 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { } if (ZEPHIR_IS_LONG(type, 364)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1330 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1290 TSRMLS_CC); break; } ZEPHIR_INIT_NVAR(_1); object_init_ex(_1, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_11, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); - zephir_array_fetch_string(&_17, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); + zephir_array_fetch_string(&_17, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_8); ZEPHIR_CONCAT_SVSVSV(_8, "Unknown expression ", type, " in ", _11, " on line ", _17); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_18, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } while(0); @@ -109928,7 +112318,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, _statementListOrExtends } isStatementList = 1; if (!(zephir_array_isset_string(statements, SS("type")))) { - zephir_is_iterable(statements, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1374); + zephir_is_iterable(statements, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1334); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -109973,7 +112363,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { if (!(zephir_array_isset_string(statement, SS("expr")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1402); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1362); return; } ZEPHIR_INIT_VAR(compilation); @@ -109988,15 +112378,15 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { ZEPHIR_INIT_VAR(prefixLevel); ZEPHIR_CONCAT_VV(prefixLevel, prefix, level); ZEPHIR_OBS_VAR(expr); - zephir_array_fetch_string(&expr, statement, SL("expr"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1420 TSRMLS_CC); + zephir_array_fetch_string(&expr, statement, SL("expr"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1380 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", &_0, expr); zephir_check_call_status(); ZEPHIR_OBS_VAR(blockStatements); - zephir_array_fetch_string(&blockStatements, statement, SL("block_statements"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1426 TSRMLS_CC); + zephir_array_fetch_string(&blockStatements, statement, SL("block_statements"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1386 TSRMLS_CC); ZEPHIR_INIT_NVAR(forElse); ZVAL_BOOL(forElse, 0); if (Z_TYPE_P(blockStatements) == IS_ARRAY) { - zephir_is_iterable(blockStatements, &_2, &_1, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1452); + zephir_is_iterable(blockStatements, &_2, &_1, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1412); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -110054,7 +112444,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { ZEPHIR_CPY_WRT(iterator, exprCode); } ZEPHIR_OBS_VAR(variable); - zephir_array_fetch_string(&variable, statement, SL("variable"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1481 TSRMLS_CC); + zephir_array_fetch_string(&variable, statement, SL("variable"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1441 TSRMLS_CC); ZEPHIR_OBS_VAR(key); if (zephir_array_isset_string_fetch(&key, statement, SS("key"), 0 TSRMLS_CC)) { ZEPHIR_INIT_LNVAR(_6); @@ -110163,12 +112553,12 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileIf) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1573); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1533); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_1, expr); zephir_check_call_status(); - zephir_array_fetch_string(&_3, statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1579 TSRMLS_CC); + zephir_array_fetch_string(&_3, statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1539 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_2, this_ptr, "_statementlist", &_4, _3, (extendsMode ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); ZEPHIR_INIT_VAR(compilation); @@ -110202,7 +112592,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileElseIf) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1608); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1568); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_1, expr); @@ -110234,7 +112624,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCache) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1628); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1588); return; } ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", &_0, expr); @@ -110259,7 +112649,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCache) { ZEPHIR_INIT_LNVAR(_2); ZEPHIR_CONCAT_SVS(_2, "if ($_cacheKey[", exprCode, "] === null) { ?>"); zephir_concat_self(&compilation, _2 TSRMLS_CC); - zephir_array_fetch_string(&_5, statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1647 TSRMLS_CC); + zephir_array_fetch_string(&_5, statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1607 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_4, this_ptr, "_statementlist", &_6, _5, (extendsMode ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); zephir_concat_self(&compilation, _4 TSRMLS_CC); @@ -110298,22 +112688,22 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSet) { ZEPHIR_OBS_VAR(assignments); if (!(zephir_array_isset_string_fetch(&assignments, statement, SS("assignments"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1673); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1633); return; } ZEPHIR_INIT_VAR(compilation); ZVAL_STRING(compilation, " +// 42 "parser.lemon" #ifdef HAVE_CONFIG_H @@ -111945,6 +114334,7 @@ static zval *phvolt_ret_macro_call_statement(zval *expr, zval *arguments, zval * } +// 570 "parser.c" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -111955,58 +114345,58 @@ static zval *phvolt_ret_macro_call_statement(zval *expr, zval *arguments, zval * #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal +** VVCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds +** VVNOCODE is a number of type VVCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. -** YYFALLBACK If defined, this indicates that one or more tokens +** VVFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal +** VVACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** phvolt_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. +** VVMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is phvolt_TOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. +** for base tokens is called "vv0". +** VVSTACKDEPTH is the maximum depth of the parser's stack. ** phvolt_ARG_SDECL A static variable declaration for the %extra_argument ** phvolt_ARG_PDECL A parameter declaration for the %extra_argument -** phvolt_ARG_STORE Code to store %extra_argument into yypParser -** phvolt_ARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not +** phvolt_ARG_STORE Code to store %extra_argument into vvpParser +** phvolt_ARG_FETCH Code to extract %extra_argument from vvpParser +** VVNSTATE the combined number of states. +** VVNRULE the number of rules in the grammar +** VVERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define YYCODETYPE unsigned char -#define YYNOCODE 120 -#define YYACTIONTYPE unsigned short int +#define VVCODETYPE unsigned char +#define VVNOCODE 120 +#define VVACTIONTYPE unsigned short int #define phvolt_TOKENTYPE phvolt_parser_token* typedef union { - phvolt_TOKENTYPE yy0; - zval* yy92; - int yy239; -} YYMINORTYPE; -#define YYSTACKDEPTH 100 + phvolt_TOKENTYPE vv0; + zval* vv92; + int vv239; +} VVMINORTYPE; +#define VVSTACKDEPTH 100 #define phvolt_ARG_SDECL phvolt_parser_status *status; #define phvolt_ARG_PDECL ,phvolt_parser_status *status -#define phvolt_ARG_FETCH phvolt_parser_status *status = yypParser->status -#define phvolt_ARG_STORE yypParser->status = status -#define YYNSTATE 333 -#define YYNRULE 145 -#define YYERRORSYMBOL 83 -#define YYERRSYMDT yy239 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define phvolt_ARG_FETCH phvolt_parser_status *status = vvpParser->status +#define phvolt_ARG_STORE vvpParser->status = status +#define VVNSTATE 333 +#define VVNRULE 145 +#define VVERRORSYMBOL 83 +#define VVERRSYMDT vv239 +#define VV_NO_ACTION (VVNSTATE+VVNRULE+2) +#define VV_ACCEPT_ACTION (VVNSTATE+VVNRULE+1) +#define VV_ERROR_ACTION (VVNSTATE+VVNRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -112016,566 +114406,562 @@ typedef union { ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N < VVNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** VVNSTATE <= N < VVNSTATE+VVNRULE Reduce by rule N-VVNSTATE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N == VVNSTATE+VVNRULE A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == VVNSTATE+VVNRULE+1 The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. +** N == VVNSTATE+VVNRULE+2 No such action. Denotes unused +** slots in the vv_action[] table. ** -** The action table is constructed as a single large table named yy_action[]. +** The action table is constructed as a single large table named vv_action[]. ** Given state S and lookahead X, the action is computed as ** -** yy_action[ yy_shift_ofst[S] + X ] +** vv_action[ vv_shift_ofst[S] + X ] ** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. +** If the index value vv_shift_ofst[S]+X is out of range or if the value +** vv_lookahead[vv_shift_ofst[S]+X] is not equal to X or if vv_shift_ofst[S] +** is equal to VV_SHIFT_USE_DFLT, it means that the action is not in the table +** and that vv_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. +** a reduce action) then the vv_reduce_ofst[] array is used in place of +** the vv_shift_ofst[] array and VV_REDUCE_USE_DFLT is used in place of +** VV_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for +** vv_action[] A single table containing all actions. +** vv_lookahead[] A table containing the lookahead for each entry in +** vv_action. Used to detect hash collisions. +** vv_shift_ofst[] For each state, the offset into vv_action for ** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for +** vv_reduce_ofst[] For each state, the offset into vv_action for ** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. +** vv_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { - /* 0 */ 82, 92, 23, 60, 52, 54, 66, 62, 64, 72, +static VVACTIONTYPE vv_action[] = { + /* 0 */ 82, 92, 181, 60, 52, 54, 66, 62, 64, 72, /* 10 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 20 */ 56, 89, 58, 84, 87, 88, 96, 80, 299, 173, - /* 30 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 20 */ 56, 89, 58, 84, 87, 88, 96, 80, 315, 310, + /* 30 */ 82, 92, 180, 60, 52, 54, 66, 62, 64, 72, /* 40 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 50 */ 56, 89, 58, 84, 87, 88, 96, 80, 255, 224, - /* 60 */ 48, 46, 50, 43, 40, 56, 89, 58, 84, 87, - /* 70 */ 88, 96, 80, 258, 306, 171, 266, 179, 194, 333, - /* 80 */ 82, 92, 30, 60, 52, 54, 66, 62, 64, 72, - /* 90 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 100 */ 56, 89, 58, 84, 87, 88, 96, 80, 32, 234, - /* 110 */ 82, 92, 112, 60, 52, 54, 66, 62, 64, 72, - /* 120 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 130 */ 56, 89, 58, 84, 87, 88, 96, 80, 315, 310, - /* 140 */ 82, 92, 235, 60, 52, 54, 66, 62, 64, 72, + /* 50 */ 56, 89, 58, 84, 87, 88, 96, 80, 299, 173, + /* 60 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 70 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 80 */ 56, 89, 58, 84, 87, 88, 96, 80, 213, 234, + /* 90 */ 82, 92, 287, 60, 52, 54, 66, 62, 64, 72, + /* 100 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 110 */ 56, 89, 58, 84, 87, 88, 96, 80, 246, 224, + /* 120 */ 179, 194, 235, 48, 46, 50, 43, 40, 56, 89, + /* 130 */ 58, 84, 87, 88, 96, 80, 266, 281, 245, 260, + /* 140 */ 82, 92, 112, 60, 52, 54, 66, 62, 64, 72, /* 150 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 160 */ 56, 89, 58, 84, 87, 88, 96, 80, 181, 26, - /* 170 */ 82, 92, 36, 60, 52, 54, 66, 62, 64, 72, + /* 160 */ 56, 89, 58, 84, 87, 88, 96, 80, 209, 301, + /* 170 */ 82, 92, 250, 60, 52, 54, 66, 62, 64, 72, /* 180 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 190 */ 56, 89, 58, 84, 87, 88, 96, 80, 180, 39, - /* 200 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 190 */ 56, 89, 58, 84, 87, 88, 96, 80, 252, 243, + /* 200 */ 82, 92, 254, 60, 52, 54, 66, 62, 64, 72, /* 210 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 220 */ 56, 89, 58, 84, 87, 88, 96, 80, 82, 92, - /* 230 */ 94, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 240 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 250 */ 58, 84, 87, 88, 96, 80, 27, 259, 4, 5, - /* 260 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 270 */ 16, 17, 18, 19, 20, 21, 22, 91, 280, 298, - /* 280 */ 107, 82, 92, 128, 60, 52, 54, 66, 62, 64, - /* 290 */ 72, 74, 76, 78, 68, 70, 48, 46, 50, 43, - /* 300 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 43, - /* 310 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 292, - /* 320 */ 293, 294, 295, 296, 297, 102, 245, 260, 127, 82, - /* 330 */ 92, 85, 60, 52, 54, 66, 62, 64, 72, 74, - /* 340 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 350 */ 89, 58, 84, 87, 88, 96, 80, 115, 237, 82, - /* 360 */ 92, 136, 60, 52, 54, 66, 62, 64, 72, 74, - /* 370 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 380 */ 89, 58, 84, 87, 88, 96, 80, 131, 240, 82, - /* 390 */ 92, 137, 60, 52, 54, 66, 62, 64, 72, 74, - /* 400 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 410 */ 89, 58, 84, 87, 88, 96, 80, 458, 243, 82, - /* 420 */ 92, 459, 60, 52, 54, 66, 62, 64, 72, 74, - /* 430 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 440 */ 89, 58, 84, 87, 88, 96, 80, 92, 143, 60, + /* 220 */ 56, 89, 58, 84, 87, 88, 96, 80, 92, 136, + /* 230 */ 60, 52, 54, 66, 62, 64, 72, 74, 76, 78, + /* 240 */ 68, 70, 48, 46, 50, 43, 40, 56, 89, 58, + /* 250 */ 84, 87, 88, 96, 80, 257, 108, 280, 298, 82, + /* 260 */ 92, 332, 60, 52, 54, 66, 62, 64, 72, 74, + /* 270 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, + /* 280 */ 89, 58, 84, 87, 88, 96, 80, 82, 92, 261, + /* 290 */ 60, 52, 54, 66, 62, 64, 72, 74, 76, 78, + /* 300 */ 68, 70, 48, 46, 50, 43, 40, 56, 89, 58, + /* 310 */ 84, 87, 88, 96, 80, 131, 26, 43, 40, 56, + /* 320 */ 89, 58, 84, 87, 88, 96, 80, 89, 58, 84, + /* 330 */ 87, 88, 96, 80, 107, 137, 91, 306, 171, 321, + /* 340 */ 82, 92, 458, 60, 52, 54, 66, 62, 64, 72, + /* 350 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 360 */ 56, 89, 58, 84, 87, 88, 96, 80, 267, 39, + /* 370 */ 82, 92, 94, 60, 52, 54, 66, 62, 64, 72, + /* 380 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 390 */ 56, 89, 58, 84, 87, 88, 96, 80, 82, 92, + /* 400 */ 128, 60, 52, 54, 66, 62, 64, 72, 74, 76, + /* 410 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, + /* 420 */ 58, 84, 87, 88, 96, 80, 292, 293, 294, 295, + /* 430 */ 296, 297, 184, 186, 188, 190, 192, 84, 87, 88, + /* 440 */ 96, 80, 102, 459, 30, 127, 82, 92, 203, 60, /* 450 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, /* 460 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, - /* 470 */ 87, 88, 96, 80, 257, 141, 144, 458, 82, 92, - /* 480 */ 168, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 490 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 500 */ 58, 84, 87, 88, 96, 80, 459, 301, 82, 92, - /* 510 */ 177, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 520 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 530 */ 58, 84, 87, 88, 96, 80, 170, 317, 82, 92, - /* 540 */ 183, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 550 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 560 */ 58, 84, 87, 88, 96, 80, 82, 92, 182, 60, - /* 570 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, - /* 580 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, - /* 590 */ 87, 88, 206, 80, 60, 52, 54, 66, 62, 64, - /* 600 */ 72, 74, 76, 78, 68, 70, 48, 46, 50, 43, - /* 610 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 52, - /* 620 */ 54, 66, 62, 64, 72, 74, 76, 78, 68, 70, - /* 630 */ 48, 46, 50, 43, 40, 56, 89, 58, 84, 87, - /* 640 */ 88, 96, 80, 479, 1, 2, 259, 4, 5, 6, - /* 650 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 660 */ 17, 18, 19, 20, 21, 22, 66, 62, 64, 72, - /* 670 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 680 */ 56, 89, 58, 84, 87, 88, 96, 80, 33, 259, - /* 690 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 700 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 174, - /* 710 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 720 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 730 */ 200, 259, 4, 5, 6, 7, 8, 9, 10, 11, - /* 740 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 750 */ 22, 210, 259, 4, 5, 6, 7, 8, 9, 10, - /* 760 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 770 */ 21, 22, 218, 259, 4, 5, 6, 7, 8, 9, - /* 780 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 790 */ 20, 21, 22, 225, 259, 4, 5, 6, 7, 8, - /* 800 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 810 */ 19, 20, 21, 22, 247, 259, 4, 5, 6, 7, - /* 820 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 830 */ 18, 19, 20, 21, 22, 262, 259, 4, 5, 6, - /* 840 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 850 */ 17, 18, 19, 20, 21, 22, 268, 259, 4, 5, - /* 860 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 870 */ 16, 17, 18, 19, 20, 21, 22, 283, 259, 4, - /* 880 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 890 */ 15, 16, 17, 18, 19, 20, 21, 22, 302, 259, - /* 900 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 910 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 311, - /* 920 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 930 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 940 */ 318, 259, 4, 5, 6, 7, 8, 9, 10, 11, - /* 950 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 960 */ 22, 3, 4, 5, 6, 7, 8, 9, 10, 11, - /* 970 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 980 */ 22, 44, 41, 196, 103, 90, 98, 25, 197, 100, - /* 990 */ 216, 44, 41, 140, 103, 117, 98, 117, 118, 100, - /* 1000 */ 89, 58, 84, 87, 88, 96, 80, 325, 118, 119, - /* 1010 */ 120, 121, 122, 123, 124, 199, 203, 128, 209, 119, - /* 1020 */ 120, 121, 122, 123, 124, 84, 87, 88, 96, 80, - /* 1030 */ 28, 230, 38, 154, 155, 156, 157, 158, 159, 160, - /* 1040 */ 166, 109, 117, 147, 148, 149, 150, 151, 152, 153, - /* 1050 */ 117, 109, 24, 214, 29, 31, 37, 167, 169, 334, - /* 1060 */ 23, 178, 208, 255, 104, 42, 139, 195, 184, 186, - /* 1070 */ 188, 190, 192, 125, 117, 117, 204, 138, 258, 287, - /* 1080 */ 215, 289, 222, 213, 229, 232, 255, 238, 241, 244, - /* 1090 */ 198, 251, 253, 24, 214, 326, 328, 37, 167, 169, - /* 1100 */ 97, 258, 178, 97, 217, 221, 126, 277, 195, 97, - /* 1110 */ 117, 134, 228, 117, 129, 207, 255, 204, 231, 117, - /* 1120 */ 134, 215, 322, 222, 281, 229, 232, 246, 238, 241, - /* 1130 */ 244, 258, 251, 253, 24, 214, 35, 104, 37, 167, - /* 1140 */ 169, 104, 34, 178, 106, 139, 113, 117, 111, 195, - /* 1150 */ 113, 117, 278, 175, 250, 165, 138, 289, 204, 252, - /* 1160 */ 254, 261, 215, 265, 222, 117, 229, 232, 267, 238, - /* 1170 */ 241, 244, 201, 251, 253, 24, 214, 271, 255, 37, - /* 1180 */ 167, 169, 45, 176, 178, 162, 47, 142, 274, 211, - /* 1190 */ 195, 276, 117, 258, 49, 117, 117, 279, 255, 204, - /* 1200 */ 282, 286, 288, 215, 117, 222, 291, 229, 232, 255, - /* 1210 */ 238, 241, 244, 258, 251, 253, 24, 214, 290, 51, - /* 1220 */ 37, 167, 169, 305, 258, 178, 308, 53, 255, 117, - /* 1230 */ 272, 195, 300, 202, 307, 219, 314, 117, 321, 324, - /* 1240 */ 204, 327, 117, 258, 215, 255, 222, 329, 229, 232, - /* 1250 */ 330, 238, 241, 244, 226, 251, 253, 24, 214, 332, - /* 1260 */ 258, 37, 167, 169, 55, 248, 178, 266, 331, 266, - /* 1270 */ 57, 266, 195, 59, 117, 266, 266, 266, 266, 266, - /* 1280 */ 117, 204, 212, 117, 266, 215, 255, 222, 266, 229, - /* 1290 */ 232, 255, 238, 241, 244, 263, 251, 253, 24, 214, - /* 1300 */ 266, 258, 37, 167, 169, 266, 258, 178, 266, 266, - /* 1310 */ 255, 266, 269, 195, 266, 266, 266, 266, 266, 61, - /* 1320 */ 266, 255, 204, 266, 266, 258, 215, 220, 222, 117, - /* 1330 */ 229, 232, 284, 238, 241, 244, 258, 251, 253, 24, - /* 1340 */ 214, 266, 266, 37, 167, 169, 266, 266, 178, 266, - /* 1350 */ 309, 255, 63, 303, 195, 266, 266, 266, 266, 266, - /* 1360 */ 117, 266, 117, 204, 266, 266, 258, 215, 255, 222, - /* 1370 */ 227, 229, 232, 312, 238, 241, 244, 319, 251, 253, - /* 1380 */ 24, 214, 65, 258, 37, 167, 169, 266, 255, 178, - /* 1390 */ 67, 69, 117, 266, 266, 195, 266, 71, 266, 266, - /* 1400 */ 117, 117, 266, 258, 204, 266, 266, 117, 215, 255, - /* 1410 */ 222, 266, 229, 232, 266, 238, 241, 244, 249, 251, - /* 1420 */ 253, 24, 214, 266, 258, 37, 167, 169, 266, 255, - /* 1430 */ 178, 266, 266, 255, 266, 266, 195, 73, 266, 266, - /* 1440 */ 75, 266, 77, 266, 258, 204, 266, 117, 258, 215, - /* 1450 */ 117, 222, 117, 229, 232, 266, 238, 241, 244, 264, - /* 1460 */ 251, 253, 24, 214, 266, 266, 37, 167, 169, 266, - /* 1470 */ 79, 178, 266, 266, 81, 83, 266, 195, 86, 266, - /* 1480 */ 117, 93, 266, 266, 117, 117, 204, 266, 117, 266, - /* 1490 */ 215, 117, 222, 270, 229, 232, 95, 238, 241, 244, - /* 1500 */ 99, 251, 253, 24, 214, 101, 117, 37, 167, 169, - /* 1510 */ 117, 116, 178, 266, 266, 117, 132, 266, 195, 266, - /* 1520 */ 164, 117, 266, 266, 172, 266, 117, 204, 266, 266, - /* 1530 */ 117, 215, 273, 222, 117, 229, 232, 185, 238, 241, - /* 1540 */ 244, 187, 251, 253, 24, 214, 266, 117, 37, 167, - /* 1550 */ 169, 117, 189, 178, 266, 191, 193, 205, 266, 195, - /* 1560 */ 223, 285, 117, 266, 266, 117, 117, 117, 204, 266, - /* 1570 */ 117, 266, 215, 266, 222, 266, 229, 232, 233, 238, - /* 1580 */ 241, 244, 236, 251, 253, 24, 214, 266, 117, 37, - /* 1590 */ 167, 169, 117, 304, 178, 266, 239, 266, 242, 266, - /* 1600 */ 195, 256, 316, 266, 266, 266, 117, 266, 117, 204, - /* 1610 */ 266, 117, 117, 215, 266, 222, 266, 229, 232, 266, - /* 1620 */ 238, 241, 244, 266, 251, 253, 24, 214, 266, 266, - /* 1630 */ 37, 167, 169, 266, 313, 178, 266, 266, 266, 266, - /* 1640 */ 266, 195, 266, 266, 266, 266, 266, 266, 266, 266, - /* 1650 */ 204, 266, 266, 266, 215, 266, 222, 266, 229, 232, - /* 1660 */ 266, 238, 241, 244, 266, 251, 253, 24, 214, 266, - /* 1670 */ 266, 37, 167, 169, 266, 320, 178, 266, 266, 266, - /* 1680 */ 266, 266, 195, 266, 266, 266, 266, 266, 266, 266, - /* 1690 */ 266, 204, 266, 266, 266, 215, 266, 222, 266, 229, - /* 1700 */ 232, 266, 238, 241, 244, 266, 251, 253, 24, 214, - /* 1710 */ 323, 266, 37, 167, 169, 266, 266, 178, 266, 266, - /* 1720 */ 266, 266, 266, 195, 266, 266, 266, 266, 266, 266, - /* 1730 */ 266, 266, 204, 266, 266, 266, 215, 266, 222, 266, - /* 1740 */ 229, 232, 266, 238, 241, 244, 266, 251, 253, 24, - /* 1750 */ 214, 266, 266, 37, 167, 169, 266, 266, 178, 266, - /* 1760 */ 266, 266, 266, 266, 195, 266, 266, 266, 266, 266, - /* 1770 */ 266, 266, 266, 204, 266, 266, 266, 215, 266, 222, - /* 1780 */ 266, 229, 232, 266, 238, 241, 244, 266, 251, 253, - /* 1790 */ 266, 266, 266, 163, 266, 44, 41, 266, 103, 266, - /* 1800 */ 98, 266, 266, 100, 266, 266, 266, 266, 266, 266, - /* 1810 */ 266, 266, 118, 266, 266, 266, 266, 266, 266, 266, - /* 1820 */ 266, 266, 266, 119, 120, 121, 122, 123, 124, 266, - /* 1830 */ 266, 161, 266, 266, 44, 41, 266, 103, 266, 98, - /* 1840 */ 266, 266, 100, 266, 266, 266, 266, 266, 266, 266, - /* 1850 */ 266, 118, 266, 266, 266, 109, 266, 135, 266, 266, - /* 1860 */ 266, 266, 119, 120, 121, 122, 123, 124, 266, 266, - /* 1870 */ 266, 266, 266, 44, 41, 266, 103, 266, 98, 266, - /* 1880 */ 266, 100, 266, 266, 266, 266, 266, 266, 266, 266, - /* 1890 */ 146, 266, 266, 266, 109, 266, 266, 266, 266, 266, - /* 1900 */ 266, 145, 120, 121, 122, 123, 124, 266, 266, 266, - /* 1910 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, - /* 1920 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, - /* 1930 */ 266, 266, 266, 109, 266, 266, 266, 266, 133, 266, - /* 1940 */ 119, 130, 121, 122, 123, 124, 266, 266, 266, 266, - /* 1950 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, - /* 1960 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, - /* 1970 */ 266, 266, 109, 266, 266, 266, 266, 266, 266, 119, - /* 1980 */ 114, 121, 122, 123, 124, 266, 266, 266, 266, 266, - /* 1990 */ 44, 41, 266, 103, 266, 98, 266, 266, 100, 266, - /* 2000 */ 266, 266, 266, 266, 266, 266, 266, 118, 266, 266, - /* 2010 */ 105, 109, 266, 266, 266, 266, 266, 266, 119, 114, - /* 2020 */ 121, 122, 123, 124, 266, 266, 266, 266, 266, 44, - /* 2030 */ 41, 266, 103, 266, 98, 266, 266, 100, 266, 266, - /* 2040 */ 266, 266, 266, 266, 266, 266, 118, 266, 266, 266, - /* 2050 */ 109, 110, 266, 266, 266, 275, 266, 119, 130, 121, - /* 2060 */ 122, 123, 124, 266, 266, 266, 266, 266, 44, 41, - /* 2070 */ 266, 103, 266, 98, 266, 266, 100, 266, 266, 266, - /* 2080 */ 266, 266, 266, 266, 266, 118, 266, 266, 266, 109, - /* 2090 */ 266, 266, 266, 266, 266, 266, 119, 120, 121, 122, - /* 2100 */ 123, 124, 266, 266, 266, 266, 266, 44, 41, 266, - /* 2110 */ 103, 266, 98, 266, 266, 100, 266, 266, 266, 266, - /* 2120 */ 266, 266, 266, 266, 118, 266, 266, 266, 109, 266, - /* 2130 */ 266, 266, 266, 266, 266, 119, 114, 121, 122, 123, - /* 2140 */ 124, 266, 266, 266, 266, 266, 44, 41, 266, 103, - /* 2150 */ 266, 98, 266, 266, 100, 266, 266, 266, 266, 266, - /* 2160 */ 266, 266, 266, 118, 266, 266, 266, 109, 266, 266, - /* 2170 */ 266, 266, 266, 266, 119, 130, 121, 122, 123, 124, - /* 2180 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 2190 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 2200 */ 266, 266, 266, 266, 266, 266, 109, + /* 470 */ 87, 88, 96, 80, 265, 317, 82, 92, 199, 60, + /* 480 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 490 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 500 */ 87, 88, 96, 80, 271, 237, 82, 92, 274, 60, + /* 510 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 520 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 530 */ 87, 88, 96, 80, 183, 240, 82, 92, 36, 60, + /* 540 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 550 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 560 */ 87, 88, 96, 80, 82, 92, 276, 60, 52, 54, + /* 570 */ 66, 62, 64, 72, 74, 76, 78, 68, 70, 48, + /* 580 */ 46, 50, 43, 40, 56, 89, 58, 84, 87, 88, + /* 590 */ 206, 80, 60, 52, 54, 66, 62, 64, 72, 74, + /* 600 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, + /* 610 */ 89, 58, 84, 87, 88, 96, 80, 52, 54, 66, + /* 620 */ 62, 64, 72, 74, 76, 78, 68, 70, 48, 46, + /* 630 */ 50, 43, 40, 56, 89, 58, 84, 87, 88, 96, + /* 640 */ 80, 479, 1, 2, 259, 4, 5, 6, 7, 8, + /* 650 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 660 */ 19, 20, 21, 22, 66, 62, 64, 72, 74, 76, + /* 670 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, + /* 680 */ 58, 84, 87, 88, 96, 80, 247, 259, 4, 5, + /* 690 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 700 */ 16, 17, 18, 19, 20, 21, 22, 302, 259, 4, + /* 710 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 720 */ 15, 16, 17, 18, 19, 20, 21, 22, 218, 259, + /* 730 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 740 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 210, + /* 750 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 760 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 770 */ 27, 259, 4, 5, 6, 7, 8, 9, 10, 11, + /* 780 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 790 */ 22, 225, 259, 4, 5, 6, 7, 8, 9, 10, + /* 800 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 810 */ 21, 22, 311, 259, 4, 5, 6, 7, 8, 9, + /* 820 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 830 */ 20, 21, 22, 268, 259, 4, 5, 6, 7, 8, + /* 840 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 850 */ 19, 20, 21, 22, 262, 259, 4, 5, 6, 7, + /* 860 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 870 */ 18, 19, 20, 21, 22, 200, 259, 4, 5, 6, + /* 880 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 890 */ 17, 18, 19, 20, 21, 22, 283, 259, 4, 5, + /* 900 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 910 */ 16, 17, 18, 19, 20, 21, 22, 318, 259, 4, + /* 920 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 930 */ 15, 16, 17, 18, 19, 20, 21, 22, 33, 259, + /* 940 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 950 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 174, + /* 960 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 970 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 980 */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 990 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 1000 */ 44, 41, 141, 103, 128, 98, 59, 277, 100, 143, + /* 1010 */ 44, 41, 104, 103, 97, 98, 117, 118, 100, 111, + /* 1020 */ 126, 113, 117, 278, 117, 134, 34, 118, 119, 120, + /* 1030 */ 121, 122, 123, 124, 303, 239, 177, 104, 119, 120, + /* 1040 */ 121, 122, 123, 124, 106, 117, 113, 117, 144, 208, + /* 1050 */ 279, 90, 147, 148, 149, 150, 151, 152, 153, 140, + /* 1060 */ 109, 117, 154, 155, 156, 157, 158, 159, 160, 282, + /* 1070 */ 109, 24, 214, 326, 328, 37, 167, 169, 334, 23, + /* 1080 */ 178, 97, 255, 97, 324, 23, 195, 207, 65, 197, + /* 1090 */ 255, 117, 134, 117, 129, 204, 196, 258, 117, 215, + /* 1100 */ 458, 222, 286, 229, 232, 258, 238, 241, 244, 23, + /* 1110 */ 251, 253, 24, 214, 29, 31, 37, 167, 169, 104, + /* 1120 */ 201, 178, 459, 223, 316, 289, 139, 195, 125, 117, + /* 1130 */ 289, 288, 139, 117, 117, 255, 204, 138, 290, 198, + /* 1140 */ 215, 255, 222, 138, 229, 232, 291, 238, 241, 244, + /* 1150 */ 258, 251, 253, 24, 214, 323, 258, 37, 167, 169, + /* 1160 */ 45, 269, 178, 242, 168, 255, 327, 312, 195, 300, + /* 1170 */ 117, 85, 61, 117, 142, 329, 255, 204, 305, 117, + /* 1180 */ 258, 215, 117, 222, 308, 229, 232, 219, 238, 241, + /* 1190 */ 244, 258, 251, 253, 24, 214, 172, 170, 37, 167, + /* 1200 */ 169, 330, 320, 178, 221, 165, 117, 307, 115, 195, + /* 1210 */ 333, 53, 230, 216, 182, 117, 228, 255, 204, 217, + /* 1220 */ 266, 117, 215, 255, 222, 231, 229, 232, 32, 238, + /* 1230 */ 241, 244, 258, 251, 253, 24, 214, 49, 258, 37, + /* 1240 */ 167, 169, 132, 255, 178, 205, 314, 117, 331, 266, + /* 1250 */ 195, 73, 117, 266, 266, 117, 67, 266, 258, 204, + /* 1260 */ 212, 117, 266, 215, 266, 222, 117, 229, 232, 226, + /* 1270 */ 238, 241, 244, 272, 251, 253, 24, 214, 42, 266, + /* 1280 */ 37, 167, 169, 266, 176, 178, 266, 81, 117, 38, + /* 1290 */ 266, 195, 266, 266, 266, 309, 266, 117, 266, 117, + /* 1300 */ 204, 266, 266, 266, 215, 117, 222, 266, 229, 232, + /* 1310 */ 319, 238, 241, 244, 211, 251, 253, 24, 214, 35, + /* 1320 */ 266, 37, 167, 169, 266, 255, 178, 266, 266, 255, + /* 1330 */ 266, 266, 195, 266, 266, 266, 266, 266, 187, 266, + /* 1340 */ 258, 204, 266, 266, 258, 215, 322, 222, 117, 229, + /* 1350 */ 232, 248, 238, 241, 244, 284, 251, 253, 24, 214, + /* 1360 */ 266, 266, 37, 167, 169, 266, 255, 178, 101, 83, + /* 1370 */ 255, 266, 266, 195, 193, 266, 266, 266, 117, 117, + /* 1380 */ 266, 258, 204, 266, 117, 258, 215, 220, 222, 266, + /* 1390 */ 229, 232, 263, 238, 241, 244, 325, 251, 253, 24, + /* 1400 */ 214, 266, 255, 37, 167, 169, 266, 255, 178, 266, + /* 1410 */ 266, 255, 266, 175, 195, 266, 266, 258, 266, 266, + /* 1420 */ 266, 266, 258, 204, 266, 266, 258, 215, 273, 222, + /* 1430 */ 266, 229, 232, 28, 238, 241, 244, 191, 251, 253, + /* 1440 */ 24, 214, 266, 266, 37, 167, 169, 117, 255, 178, + /* 1450 */ 266, 266, 255, 266, 266, 195, 75, 266, 266, 266, + /* 1460 */ 266, 266, 266, 258, 204, 266, 117, 258, 215, 255, + /* 1470 */ 222, 270, 229, 232, 266, 238, 241, 244, 189, 251, + /* 1480 */ 253, 24, 214, 266, 258, 37, 167, 169, 117, 255, + /* 1490 */ 178, 266, 166, 185, 266, 266, 195, 266, 266, 266, + /* 1500 */ 47, 266, 117, 117, 258, 204, 266, 266, 266, 215, + /* 1510 */ 117, 222, 227, 229, 232, 164, 238, 241, 244, 266, + /* 1520 */ 251, 253, 24, 214, 266, 117, 37, 167, 169, 266, + /* 1530 */ 304, 178, 266, 266, 69, 77, 266, 195, 266, 266, + /* 1540 */ 266, 86, 266, 116, 117, 117, 204, 266, 266, 266, + /* 1550 */ 215, 117, 222, 117, 229, 232, 95, 238, 241, 244, + /* 1560 */ 71, 251, 253, 24, 214, 266, 117, 37, 167, 169, + /* 1570 */ 117, 63, 178, 266, 55, 93, 233, 266, 195, 79, + /* 1580 */ 285, 117, 266, 266, 117, 117, 117, 204, 266, 117, + /* 1590 */ 266, 215, 266, 222, 266, 229, 232, 57, 238, 241, + /* 1600 */ 244, 99, 251, 253, 24, 214, 266, 117, 37, 167, + /* 1610 */ 169, 117, 256, 178, 266, 266, 266, 236, 266, 195, + /* 1620 */ 51, 202, 117, 162, 266, 25, 266, 117, 204, 266, + /* 1630 */ 117, 266, 215, 117, 222, 117, 229, 232, 266, 238, + /* 1640 */ 241, 244, 266, 251, 253, 24, 214, 266, 266, 37, + /* 1650 */ 167, 169, 266, 266, 178, 266, 266, 266, 266, 266, + /* 1660 */ 195, 266, 266, 266, 266, 266, 266, 266, 266, 204, + /* 1670 */ 266, 266, 266, 215, 266, 222, 266, 229, 232, 266, + /* 1680 */ 238, 241, 244, 264, 251, 253, 24, 214, 266, 266, + /* 1690 */ 37, 167, 169, 266, 266, 178, 266, 266, 266, 266, + /* 1700 */ 266, 195, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1710 */ 204, 266, 266, 266, 215, 266, 222, 266, 229, 232, + /* 1720 */ 266, 238, 241, 244, 249, 251, 253, 24, 214, 266, + /* 1730 */ 266, 37, 167, 169, 266, 313, 178, 266, 266, 266, + /* 1740 */ 266, 266, 195, 266, 266, 266, 266, 266, 266, 266, + /* 1750 */ 266, 204, 266, 266, 266, 215, 266, 222, 266, 229, + /* 1760 */ 232, 266, 238, 241, 244, 266, 251, 253, 24, 214, + /* 1770 */ 266, 266, 37, 167, 169, 266, 266, 178, 266, 266, + /* 1780 */ 266, 266, 266, 195, 266, 44, 41, 266, 103, 266, + /* 1790 */ 98, 266, 204, 100, 266, 266, 215, 266, 222, 266, + /* 1800 */ 229, 232, 118, 238, 241, 244, 266, 251, 253, 266, + /* 1810 */ 266, 266, 266, 119, 114, 121, 122, 123, 124, 266, + /* 1820 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 1830 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, + /* 1840 */ 266, 266, 266, 266, 266, 109, 110, 266, 133, 266, + /* 1850 */ 119, 130, 121, 122, 123, 124, 135, 266, 266, 266, + /* 1860 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1870 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 1880 */ 100, 266, 109, 266, 266, 266, 266, 266, 266, 146, + /* 1890 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1900 */ 145, 120, 121, 122, 123, 124, 266, 266, 161, 266, + /* 1910 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, + /* 1920 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, + /* 1930 */ 44, 41, 109, 103, 266, 98, 266, 266, 100, 119, + /* 1940 */ 120, 121, 122, 123, 124, 266, 266, 118, 266, 266, + /* 1950 */ 266, 266, 266, 266, 266, 266, 266, 266, 119, 114, + /* 1960 */ 121, 122, 123, 124, 266, 44, 41, 266, 103, 266, + /* 1970 */ 98, 109, 266, 100, 266, 266, 266, 266, 266, 266, + /* 1980 */ 266, 266, 118, 266, 266, 266, 266, 266, 266, 105, + /* 1990 */ 109, 275, 266, 119, 130, 121, 122, 123, 124, 266, + /* 2000 */ 266, 266, 163, 266, 44, 41, 266, 103, 266, 98, + /* 2010 */ 266, 266, 100, 266, 266, 266, 266, 266, 266, 266, + /* 2020 */ 266, 118, 266, 266, 266, 109, 266, 266, 266, 266, + /* 2030 */ 266, 266, 119, 120, 121, 122, 123, 124, 266, 266, + /* 2040 */ 266, 266, 266, 44, 41, 266, 103, 266, 98, 266, + /* 2050 */ 266, 100, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2060 */ 118, 266, 266, 266, 109, 266, 266, 266, 266, 266, + /* 2070 */ 266, 119, 114, 121, 122, 123, 124, 266, 266, 266, + /* 2080 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 2090 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, + /* 2100 */ 266, 266, 266, 109, 266, 266, 266, 266, 266, 266, + /* 2110 */ 119, 120, 121, 122, 123, 124, 266, 266, 266, 266, + /* 2120 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, + /* 2130 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, + /* 2140 */ 266, 266, 109, 266, 266, 266, 266, 266, 266, 119, + /* 2150 */ 130, 121, 122, 123, 124, 266, 266, 266, 266, 266, + /* 2160 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2170 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2180 */ 266, 109, }; -static YYCODETYPE yy_lookahead[] = { - /* 0 */ 3, 4, 1, 6, 7, 8, 9, 10, 11, 12, +static VVCODETYPE vv_lookahead[] = { + /* 0 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, /* 10 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 20 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 30 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 30 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 40 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 57, 32, - /* 60 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 70 */ 28, 29, 30, 72, 2, 3, 49, 108, 109, 0, - /* 80 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, - /* 90 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 100 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, - /* 110 */ 3, 4, 82, 6, 7, 8, 9, 10, 11, 12, - /* 120 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 130 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 140 */ 3, 4, 65, 6, 7, 8, 9, 10, 11, 12, + /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 60 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 70 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 80 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 90 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 100 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 110 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 120 */ 108, 109, 65, 18, 19, 20, 21, 22, 23, 24, + /* 130 */ 25, 26, 27, 28, 29, 30, 49, 47, 53, 54, + /* 140 */ 3, 4, 82, 6, 7, 8, 9, 10, 11, 12, /* 150 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 160 */ 23, 24, 25, 26, 27, 28, 29, 30, 2, 32, + /* 160 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, /* 170 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 180 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 190 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, - /* 200 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 200 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 210 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 220 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 4, - /* 230 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 240 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 250 */ 25, 26, 27, 28, 29, 30, 86, 87, 88, 89, - /* 260 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - /* 270 */ 100, 101, 102, 103, 104, 105, 106, 80, 110, 111, - /* 280 */ 80, 3, 4, 2, 6, 7, 8, 9, 10, 11, - /* 290 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 300 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, - /* 310 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 49, - /* 320 */ 50, 51, 52, 53, 54, 47, 53, 54, 47, 3, - /* 330 */ 4, 3, 6, 7, 8, 9, 10, 11, 12, 13, - /* 340 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 350 */ 24, 25, 26, 27, 28, 29, 30, 5, 32, 3, - /* 360 */ 4, 115, 6, 7, 8, 9, 10, 11, 12, 13, - /* 370 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 380 */ 24, 25, 26, 27, 28, 29, 30, 5, 32, 3, - /* 390 */ 4, 80, 6, 7, 8, 9, 10, 11, 12, 13, - /* 400 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 410 */ 24, 25, 26, 27, 28, 29, 30, 80, 32, 3, - /* 420 */ 4, 80, 6, 7, 8, 9, 10, 11, 12, 13, - /* 430 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 440 */ 24, 25, 26, 27, 28, 29, 30, 4, 115, 6, + /* 220 */ 23, 24, 25, 26, 27, 28, 29, 30, 4, 115, + /* 230 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 240 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 250 */ 26, 27, 28, 29, 30, 58, 2, 110, 111, 3, + /* 260 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13, + /* 270 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 280 */ 24, 25, 26, 27, 28, 29, 30, 3, 4, 32, + /* 290 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 300 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 310 */ 26, 27, 28, 29, 30, 5, 32, 21, 22, 23, + /* 320 */ 24, 25, 26, 27, 28, 29, 30, 24, 25, 26, + /* 330 */ 27, 28, 29, 30, 80, 80, 80, 2, 3, 32, + /* 340 */ 3, 4, 80, 6, 7, 8, 9, 10, 11, 12, + /* 350 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 360 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 370 */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 380 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 390 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 4, + /* 400 */ 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 410 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 420 */ 25, 26, 27, 28, 29, 30, 49, 50, 51, 52, + /* 430 */ 53, 54, 41, 42, 43, 44, 45, 26, 27, 28, + /* 440 */ 29, 30, 47, 80, 32, 47, 3, 4, 32, 6, /* 450 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, /* 460 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 470 */ 27, 28, 29, 30, 58, 5, 80, 5, 3, 4, - /* 480 */ 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 490 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 500 */ 25, 26, 27, 28, 29, 30, 5, 32, 3, 4, - /* 510 */ 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 520 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 530 */ 25, 26, 27, 28, 29, 30, 38, 32, 3, 4, - /* 540 */ 38, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 550 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 560 */ 25, 26, 27, 28, 29, 30, 3, 4, 109, 6, - /* 570 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 580 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 590 */ 27, 28, 29, 30, 6, 7, 8, 9, 10, 11, - /* 600 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 610 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 7, - /* 620 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 630 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 640 */ 28, 29, 30, 84, 85, 86, 87, 88, 89, 90, - /* 650 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 660 */ 101, 102, 103, 104, 105, 106, 9, 10, 11, 12, - /* 670 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 680 */ 23, 24, 25, 26, 27, 28, 29, 30, 86, 87, - /* 690 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 700 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, - /* 710 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 730 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 740 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 750 */ 106, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 760 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 770 */ 105, 106, 86, 87, 88, 89, 90, 91, 92, 93, - /* 780 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 790 */ 104, 105, 106, 86, 87, 88, 89, 90, 91, 92, - /* 800 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 810 */ 103, 104, 105, 106, 86, 87, 88, 89, 90, 91, - /* 820 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - /* 830 */ 102, 103, 104, 105, 106, 86, 87, 88, 89, 90, - /* 840 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 850 */ 101, 102, 103, 104, 105, 106, 86, 87, 88, 89, - /* 860 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - /* 870 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, - /* 880 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 890 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, - /* 900 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 910 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, - /* 920 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 930 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 940 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 950 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 960 */ 106, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 970 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 980 */ 106, 21, 22, 38, 24, 107, 26, 107, 29, 29, - /* 990 */ 38, 21, 22, 115, 24, 117, 26, 117, 38, 29, - /* 1000 */ 24, 25, 26, 27, 28, 29, 30, 1, 38, 49, - /* 1010 */ 50, 51, 52, 53, 54, 32, 32, 2, 32, 49, - /* 1020 */ 50, 51, 52, 53, 54, 26, 27, 28, 29, 30, - /* 1030 */ 1, 50, 107, 73, 74, 75, 76, 77, 78, 79, - /* 1040 */ 107, 81, 117, 73, 74, 75, 76, 77, 78, 79, - /* 1050 */ 117, 81, 31, 32, 33, 34, 35, 36, 37, 0, - /* 1060 */ 1, 40, 47, 57, 107, 107, 38, 46, 41, 42, - /* 1070 */ 43, 44, 45, 116, 117, 117, 55, 49, 72, 2, - /* 1080 */ 59, 38, 61, 32, 63, 64, 57, 66, 67, 68, - /* 1090 */ 47, 70, 71, 31, 32, 33, 34, 35, 36, 37, - /* 1100 */ 107, 72, 40, 107, 32, 32, 113, 1, 46, 107, - /* 1110 */ 117, 118, 32, 117, 118, 113, 57, 55, 32, 117, - /* 1120 */ 118, 59, 1, 61, 47, 63, 64, 32, 66, 67, - /* 1130 */ 68, 72, 70, 71, 31, 32, 33, 107, 35, 36, - /* 1140 */ 37, 107, 1, 40, 114, 38, 116, 117, 114, 46, - /* 1150 */ 116, 117, 56, 1, 32, 107, 49, 38, 55, 32, - /* 1160 */ 32, 32, 59, 32, 61, 117, 63, 64, 32, 66, - /* 1170 */ 67, 68, 1, 70, 71, 31, 32, 32, 57, 35, - /* 1180 */ 36, 37, 107, 39, 40, 107, 107, 80, 32, 1, - /* 1190 */ 46, 32, 117, 72, 107, 117, 117, 32, 57, 55, - /* 1200 */ 32, 32, 111, 59, 117, 61, 112, 63, 64, 57, - /* 1210 */ 66, 67, 68, 72, 70, 71, 31, 32, 41, 107, - /* 1220 */ 35, 36, 37, 32, 72, 40, 3, 107, 57, 117, - /* 1230 */ 1, 46, 107, 48, 38, 1, 32, 117, 32, 32, - /* 1240 */ 55, 32, 117, 72, 59, 57, 61, 32, 63, 64, - /* 1250 */ 1, 66, 67, 68, 1, 70, 71, 31, 32, 32, - /* 1260 */ 72, 35, 36, 37, 107, 1, 40, 119, 33, 119, - /* 1270 */ 107, 119, 46, 107, 117, 119, 119, 119, 119, 119, - /* 1280 */ 117, 55, 56, 117, 119, 59, 57, 61, 119, 63, - /* 1290 */ 64, 57, 66, 67, 68, 1, 70, 71, 31, 32, - /* 1300 */ 119, 72, 35, 36, 37, 119, 72, 40, 119, 119, - /* 1310 */ 57, 119, 1, 46, 119, 119, 119, 119, 119, 107, - /* 1320 */ 119, 57, 55, 119, 119, 72, 59, 60, 61, 117, - /* 1330 */ 63, 64, 1, 66, 67, 68, 72, 70, 71, 31, - /* 1340 */ 32, 119, 119, 35, 36, 37, 119, 119, 40, 119, - /* 1350 */ 107, 57, 107, 1, 46, 119, 119, 119, 119, 119, - /* 1360 */ 117, 119, 117, 55, 119, 119, 72, 59, 57, 61, - /* 1370 */ 62, 63, 64, 1, 66, 67, 68, 1, 70, 71, - /* 1380 */ 31, 32, 107, 72, 35, 36, 37, 119, 57, 40, - /* 1390 */ 107, 107, 117, 119, 119, 46, 119, 107, 119, 119, - /* 1400 */ 117, 117, 119, 72, 55, 119, 119, 117, 59, 57, - /* 1410 */ 61, 119, 63, 64, 119, 66, 67, 68, 69, 70, - /* 1420 */ 71, 31, 32, 119, 72, 35, 36, 37, 119, 57, - /* 1430 */ 40, 119, 119, 57, 119, 119, 46, 107, 119, 119, - /* 1440 */ 107, 119, 107, 119, 72, 55, 119, 117, 72, 59, - /* 1450 */ 117, 61, 117, 63, 64, 119, 66, 67, 68, 69, - /* 1460 */ 70, 71, 31, 32, 119, 119, 35, 36, 37, 119, - /* 1470 */ 107, 40, 119, 119, 107, 107, 119, 46, 107, 119, - /* 1480 */ 117, 107, 119, 119, 117, 117, 55, 119, 117, 119, - /* 1490 */ 59, 117, 61, 62, 63, 64, 107, 66, 67, 68, - /* 1500 */ 107, 70, 71, 31, 32, 107, 117, 35, 36, 37, - /* 1510 */ 117, 107, 40, 119, 119, 117, 107, 119, 46, 119, - /* 1520 */ 107, 117, 119, 119, 107, 119, 117, 55, 119, 119, - /* 1530 */ 117, 59, 60, 61, 117, 63, 64, 107, 66, 67, - /* 1540 */ 68, 107, 70, 71, 31, 32, 119, 117, 35, 36, - /* 1550 */ 37, 117, 107, 40, 119, 107, 107, 107, 119, 46, - /* 1560 */ 107, 48, 117, 119, 119, 117, 117, 117, 55, 119, - /* 1570 */ 117, 119, 59, 119, 61, 119, 63, 64, 107, 66, - /* 1580 */ 67, 68, 107, 70, 71, 31, 32, 119, 117, 35, - /* 1590 */ 36, 37, 117, 39, 40, 119, 107, 119, 107, 119, - /* 1600 */ 46, 107, 107, 119, 119, 119, 117, 119, 117, 55, - /* 1610 */ 119, 117, 117, 59, 119, 61, 119, 63, 64, 119, - /* 1620 */ 66, 67, 68, 119, 70, 71, 31, 32, 119, 119, - /* 1630 */ 35, 36, 37, 119, 39, 40, 119, 119, 119, 119, - /* 1640 */ 119, 46, 119, 119, 119, 119, 119, 119, 119, 119, - /* 1650 */ 55, 119, 119, 119, 59, 119, 61, 119, 63, 64, - /* 1660 */ 119, 66, 67, 68, 119, 70, 71, 31, 32, 119, - /* 1670 */ 119, 35, 36, 37, 119, 39, 40, 119, 119, 119, - /* 1680 */ 119, 119, 46, 119, 119, 119, 119, 119, 119, 119, - /* 1690 */ 119, 55, 119, 119, 119, 59, 119, 61, 119, 63, - /* 1700 */ 64, 119, 66, 67, 68, 119, 70, 71, 31, 32, - /* 1710 */ 33, 119, 35, 36, 37, 119, 119, 40, 119, 119, - /* 1720 */ 119, 119, 119, 46, 119, 119, 119, 119, 119, 119, - /* 1730 */ 119, 119, 55, 119, 119, 119, 59, 119, 61, 119, - /* 1740 */ 63, 64, 119, 66, 67, 68, 119, 70, 71, 31, - /* 1750 */ 32, 119, 119, 35, 36, 37, 119, 119, 40, 119, - /* 1760 */ 119, 119, 119, 119, 46, 119, 119, 119, 119, 119, - /* 1770 */ 119, 119, 119, 55, 119, 119, 119, 59, 119, 61, - /* 1780 */ 119, 63, 64, 119, 66, 67, 68, 119, 70, 71, - /* 1790 */ 119, 119, 119, 19, 119, 21, 22, 119, 24, 119, - /* 1800 */ 26, 119, 119, 29, 119, 119, 119, 119, 119, 119, - /* 1810 */ 119, 119, 38, 119, 119, 119, 119, 119, 119, 119, - /* 1820 */ 119, 119, 119, 49, 50, 51, 52, 53, 54, 119, - /* 1830 */ 119, 18, 119, 119, 21, 22, 119, 24, 119, 26, - /* 1840 */ 119, 119, 29, 119, 119, 119, 119, 119, 119, 119, - /* 1850 */ 119, 38, 119, 119, 119, 81, 119, 5, 119, 119, - /* 1860 */ 119, 119, 49, 50, 51, 52, 53, 54, 119, 119, - /* 1870 */ 119, 119, 119, 21, 22, 119, 24, 119, 26, 119, - /* 1880 */ 119, 29, 119, 119, 119, 119, 119, 119, 119, 119, - /* 1890 */ 38, 119, 119, 119, 81, 119, 119, 119, 119, 119, - /* 1900 */ 119, 49, 50, 51, 52, 53, 54, 119, 119, 119, - /* 1910 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, - /* 1920 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, - /* 1930 */ 119, 119, 119, 81, 119, 119, 119, 119, 47, 119, - /* 1940 */ 49, 50, 51, 52, 53, 54, 119, 119, 119, 119, - /* 1950 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, - /* 1960 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, - /* 1970 */ 119, 119, 81, 119, 119, 119, 119, 119, 119, 49, - /* 1980 */ 50, 51, 52, 53, 54, 119, 119, 119, 119, 119, - /* 1990 */ 21, 22, 119, 24, 119, 26, 119, 119, 29, 119, - /* 2000 */ 119, 119, 119, 119, 119, 119, 119, 38, 119, 119, - /* 2010 */ 80, 81, 119, 119, 119, 119, 119, 119, 49, 50, - /* 2020 */ 51, 52, 53, 54, 119, 119, 119, 119, 119, 21, - /* 2030 */ 22, 119, 24, 119, 26, 119, 119, 29, 119, 119, - /* 2040 */ 119, 119, 119, 119, 119, 119, 38, 119, 119, 119, - /* 2050 */ 81, 82, 119, 119, 119, 47, 119, 49, 50, 51, - /* 2060 */ 52, 53, 54, 119, 119, 119, 119, 119, 21, 22, - /* 2070 */ 119, 24, 119, 26, 119, 119, 29, 119, 119, 119, - /* 2080 */ 119, 119, 119, 119, 119, 38, 119, 119, 119, 81, - /* 2090 */ 119, 119, 119, 119, 119, 119, 49, 50, 51, 52, - /* 2100 */ 53, 54, 119, 119, 119, 119, 119, 21, 22, 119, - /* 2110 */ 24, 119, 26, 119, 119, 29, 119, 119, 119, 119, - /* 2120 */ 119, 119, 119, 119, 38, 119, 119, 119, 81, 119, - /* 2130 */ 119, 119, 119, 119, 119, 49, 50, 51, 52, 53, - /* 2140 */ 54, 119, 119, 119, 119, 119, 21, 22, 119, 24, - /* 2150 */ 119, 26, 119, 119, 29, 119, 119, 119, 119, 119, - /* 2160 */ 119, 119, 119, 38, 119, 119, 119, 81, 119, 119, - /* 2170 */ 119, 119, 119, 119, 49, 50, 51, 52, 53, 54, - /* 2180 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - /* 2190 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - /* 2200 */ 119, 119, 119, 119, 119, 119, 81, + /* 470 */ 27, 28, 29, 30, 32, 32, 3, 4, 32, 6, + /* 480 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 490 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 500 */ 27, 28, 29, 30, 32, 32, 3, 4, 32, 6, + /* 510 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 520 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 530 */ 27, 28, 29, 30, 38, 32, 3, 4, 32, 6, + /* 540 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 550 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 560 */ 27, 28, 29, 30, 3, 4, 32, 6, 7, 8, + /* 570 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 580 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + /* 590 */ 29, 30, 6, 7, 8, 9, 10, 11, 12, 13, + /* 600 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 610 */ 24, 25, 26, 27, 28, 29, 30, 7, 8, 9, + /* 620 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 630 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + /* 640 */ 30, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 650 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 660 */ 103, 104, 105, 106, 9, 10, 11, 12, 13, 14, + /* 670 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 680 */ 25, 26, 27, 28, 29, 30, 86, 87, 88, 89, + /* 690 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 700 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, + /* 710 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + /* 720 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, + /* 730 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + /* 740 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, + /* 750 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 760 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 770 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 780 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 790 */ 106, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 800 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 810 */ 105, 106, 86, 87, 88, 89, 90, 91, 92, 93, + /* 820 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + /* 830 */ 104, 105, 106, 86, 87, 88, 89, 90, 91, 92, + /* 840 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 850 */ 103, 104, 105, 106, 86, 87, 88, 89, 90, 91, + /* 860 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + /* 870 */ 102, 103, 104, 105, 106, 86, 87, 88, 89, 90, + /* 880 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 890 */ 101, 102, 103, 104, 105, 106, 86, 87, 88, 89, + /* 900 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 910 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, + /* 920 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + /* 930 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, + /* 940 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + /* 950 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, + /* 960 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 970 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 980 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 990 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 1000 */ 21, 22, 5, 24, 2, 26, 107, 1, 29, 115, + /* 1010 */ 21, 22, 107, 24, 107, 26, 117, 38, 29, 114, + /* 1020 */ 113, 116, 117, 56, 117, 118, 1, 38, 49, 50, + /* 1030 */ 51, 52, 53, 54, 1, 107, 32, 107, 49, 50, + /* 1040 */ 51, 52, 53, 54, 114, 117, 116, 117, 80, 47, + /* 1050 */ 32, 107, 73, 74, 75, 76, 77, 78, 79, 115, + /* 1060 */ 81, 117, 73, 74, 75, 76, 77, 78, 79, 32, + /* 1070 */ 81, 31, 32, 33, 34, 35, 36, 37, 0, 1, + /* 1080 */ 40, 107, 57, 107, 32, 1, 46, 113, 107, 29, + /* 1090 */ 57, 117, 118, 117, 118, 55, 38, 72, 117, 59, + /* 1100 */ 5, 61, 32, 63, 64, 72, 66, 67, 68, 1, + /* 1110 */ 70, 71, 31, 32, 33, 34, 35, 36, 37, 107, + /* 1120 */ 1, 40, 5, 107, 107, 38, 38, 46, 116, 117, + /* 1130 */ 38, 111, 38, 117, 117, 57, 55, 49, 41, 47, + /* 1140 */ 59, 57, 61, 49, 63, 64, 112, 66, 67, 68, + /* 1150 */ 72, 70, 71, 31, 32, 33, 72, 35, 36, 37, + /* 1160 */ 107, 1, 40, 107, 32, 57, 32, 1, 46, 107, + /* 1170 */ 117, 3, 107, 117, 80, 32, 57, 55, 32, 117, + /* 1180 */ 72, 59, 117, 61, 3, 63, 64, 1, 66, 67, + /* 1190 */ 68, 72, 70, 71, 31, 32, 107, 38, 35, 36, + /* 1200 */ 37, 1, 39, 40, 32, 107, 117, 38, 5, 46, + /* 1210 */ 0, 107, 50, 38, 109, 117, 32, 57, 55, 32, + /* 1220 */ 119, 117, 59, 57, 61, 32, 63, 64, 32, 66, + /* 1230 */ 67, 68, 72, 70, 71, 31, 32, 107, 72, 35, + /* 1240 */ 36, 37, 107, 57, 40, 107, 32, 117, 33, 119, + /* 1250 */ 46, 107, 117, 119, 119, 117, 107, 119, 72, 55, + /* 1260 */ 56, 117, 119, 59, 119, 61, 117, 63, 64, 1, + /* 1270 */ 66, 67, 68, 1, 70, 71, 31, 32, 107, 119, + /* 1280 */ 35, 36, 37, 119, 39, 40, 119, 107, 117, 107, + /* 1290 */ 119, 46, 119, 119, 119, 107, 119, 117, 119, 117, + /* 1300 */ 55, 119, 119, 119, 59, 117, 61, 119, 63, 64, + /* 1310 */ 1, 66, 67, 68, 1, 70, 71, 31, 32, 33, + /* 1320 */ 119, 35, 36, 37, 119, 57, 40, 119, 119, 57, + /* 1330 */ 119, 119, 46, 119, 119, 119, 119, 119, 107, 119, + /* 1340 */ 72, 55, 119, 119, 72, 59, 1, 61, 117, 63, + /* 1350 */ 64, 1, 66, 67, 68, 1, 70, 71, 31, 32, + /* 1360 */ 119, 119, 35, 36, 37, 119, 57, 40, 107, 107, + /* 1370 */ 57, 119, 119, 46, 107, 119, 119, 119, 117, 117, + /* 1380 */ 119, 72, 55, 119, 117, 72, 59, 60, 61, 119, + /* 1390 */ 63, 64, 1, 66, 67, 68, 1, 70, 71, 31, + /* 1400 */ 32, 119, 57, 35, 36, 37, 119, 57, 40, 119, + /* 1410 */ 119, 57, 119, 1, 46, 119, 119, 72, 119, 119, + /* 1420 */ 119, 119, 72, 55, 119, 119, 72, 59, 60, 61, + /* 1430 */ 119, 63, 64, 1, 66, 67, 68, 107, 70, 71, + /* 1440 */ 31, 32, 119, 119, 35, 36, 37, 117, 57, 40, + /* 1450 */ 119, 119, 57, 119, 119, 46, 107, 119, 119, 119, + /* 1460 */ 119, 119, 119, 72, 55, 119, 117, 72, 59, 57, + /* 1470 */ 61, 62, 63, 64, 119, 66, 67, 68, 107, 70, + /* 1480 */ 71, 31, 32, 119, 72, 35, 36, 37, 117, 57, + /* 1490 */ 40, 119, 107, 107, 119, 119, 46, 119, 119, 119, + /* 1500 */ 107, 119, 117, 117, 72, 55, 119, 119, 119, 59, + /* 1510 */ 117, 61, 62, 63, 64, 107, 66, 67, 68, 119, + /* 1520 */ 70, 71, 31, 32, 119, 117, 35, 36, 37, 119, + /* 1530 */ 39, 40, 119, 119, 107, 107, 119, 46, 119, 119, + /* 1540 */ 119, 107, 119, 107, 117, 117, 55, 119, 119, 119, + /* 1550 */ 59, 117, 61, 117, 63, 64, 107, 66, 67, 68, + /* 1560 */ 107, 70, 71, 31, 32, 119, 117, 35, 36, 37, + /* 1570 */ 117, 107, 40, 119, 107, 107, 107, 119, 46, 107, + /* 1580 */ 48, 117, 119, 119, 117, 117, 117, 55, 119, 117, + /* 1590 */ 119, 59, 119, 61, 119, 63, 64, 107, 66, 67, + /* 1600 */ 68, 107, 70, 71, 31, 32, 119, 117, 35, 36, + /* 1610 */ 37, 117, 107, 40, 119, 119, 119, 107, 119, 46, + /* 1620 */ 107, 48, 117, 107, 119, 107, 119, 117, 55, 119, + /* 1630 */ 117, 119, 59, 117, 61, 117, 63, 64, 119, 66, + /* 1640 */ 67, 68, 119, 70, 71, 31, 32, 119, 119, 35, + /* 1650 */ 36, 37, 119, 119, 40, 119, 119, 119, 119, 119, + /* 1660 */ 46, 119, 119, 119, 119, 119, 119, 119, 119, 55, + /* 1670 */ 119, 119, 119, 59, 119, 61, 119, 63, 64, 119, + /* 1680 */ 66, 67, 68, 69, 70, 71, 31, 32, 119, 119, + /* 1690 */ 35, 36, 37, 119, 119, 40, 119, 119, 119, 119, + /* 1700 */ 119, 46, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1710 */ 55, 119, 119, 119, 59, 119, 61, 119, 63, 64, + /* 1720 */ 119, 66, 67, 68, 69, 70, 71, 31, 32, 119, + /* 1730 */ 119, 35, 36, 37, 119, 39, 40, 119, 119, 119, + /* 1740 */ 119, 119, 46, 119, 119, 119, 119, 119, 119, 119, + /* 1750 */ 119, 55, 119, 119, 119, 59, 119, 61, 119, 63, + /* 1760 */ 64, 119, 66, 67, 68, 119, 70, 71, 31, 32, + /* 1770 */ 119, 119, 35, 36, 37, 119, 119, 40, 119, 119, + /* 1780 */ 119, 119, 119, 46, 119, 21, 22, 119, 24, 119, + /* 1790 */ 26, 119, 55, 29, 119, 119, 59, 119, 61, 119, + /* 1800 */ 63, 64, 38, 66, 67, 68, 119, 70, 71, 119, + /* 1810 */ 119, 119, 119, 49, 50, 51, 52, 53, 54, 119, + /* 1820 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 1830 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, + /* 1840 */ 119, 119, 119, 119, 119, 81, 82, 119, 47, 119, + /* 1850 */ 49, 50, 51, 52, 53, 54, 5, 119, 119, 119, + /* 1860 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1870 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 1880 */ 29, 119, 81, 119, 119, 119, 119, 119, 119, 38, + /* 1890 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1900 */ 49, 50, 51, 52, 53, 54, 119, 119, 18, 119, + /* 1910 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, + /* 1920 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, + /* 1930 */ 21, 22, 81, 24, 119, 26, 119, 119, 29, 49, + /* 1940 */ 50, 51, 52, 53, 54, 119, 119, 38, 119, 119, + /* 1950 */ 119, 119, 119, 119, 119, 119, 119, 119, 49, 50, + /* 1960 */ 51, 52, 53, 54, 119, 21, 22, 119, 24, 119, + /* 1970 */ 26, 81, 119, 29, 119, 119, 119, 119, 119, 119, + /* 1980 */ 119, 119, 38, 119, 119, 119, 119, 119, 119, 80, + /* 1990 */ 81, 47, 119, 49, 50, 51, 52, 53, 54, 119, + /* 2000 */ 119, 119, 19, 119, 21, 22, 119, 24, 119, 26, + /* 2010 */ 119, 119, 29, 119, 119, 119, 119, 119, 119, 119, + /* 2020 */ 119, 38, 119, 119, 119, 81, 119, 119, 119, 119, + /* 2030 */ 119, 119, 49, 50, 51, 52, 53, 54, 119, 119, + /* 2040 */ 119, 119, 119, 21, 22, 119, 24, 119, 26, 119, + /* 2050 */ 119, 29, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2060 */ 38, 119, 119, 119, 81, 119, 119, 119, 119, 119, + /* 2070 */ 119, 49, 50, 51, 52, 53, 54, 119, 119, 119, + /* 2080 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 2090 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, + /* 2100 */ 119, 119, 119, 81, 119, 119, 119, 119, 119, 119, + /* 2110 */ 49, 50, 51, 52, 53, 54, 119, 119, 119, 119, + /* 2120 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, + /* 2130 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, + /* 2140 */ 119, 119, 81, 119, 119, 119, 119, 119, 119, 49, + /* 2150 */ 50, 51, 52, 53, 54, 119, 119, 119, 119, 119, + /* 2160 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2170 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2180 */ 119, 81, }; -#define YY_SHIFT_USE_DFLT (-4) -static short yy_shift_ofst[] = { - /* 0 */ 1, 79, 1059, -4, -4, -4, -4, -4, -4, -4, +#define VV_SHIFT_USE_DFLT (-4) +static short vv_shift_ofst[] = { + /* 0 */ 1084, 1210, 1078, -4, -4, -4, -4, -4, -4, -4, /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 20 */ -4, -4, -4, 1718, 2047, 137, 1006, 1029, 1021, 50, - /* 30 */ -4, 76, 1121, 1141, 1103, 140, -4, 2047, 167, -4, - /* 40 */ 2047, 2047, 976, 2047, 2047, 976, 1774, 288, 1813, 288, - /* 50 */ 2047, 288, 2047, 657, 2047, 657, 2047, 976, 2047, 999, - /* 60 */ 2047, 612, 2047, 42, 960, 42, 970, 42, 2047, 42, - /* 70 */ 2047, 42, 2047, 42, 2047, 42, 2047, 42, 2047, 42, - /* 80 */ 2047, -4, 2047, 443, 328, 2047, 999, -4, -4, 1852, - /* 90 */ 197, -4, 2047, 225, 2047, 588, 1891, 535, 2047, 999, - /* 100 */ 2047, 278, -4, 1930, 535, -4, 200, -4, 2086, 1969, - /* 110 */ -4, 30, -4, -4, 352, 2047, 535, -4, -4, -4, - /* 120 */ -4, -4, -4, -4, -4, -4, 281, -4, 2125, -4, - /* 130 */ 382, 2047, 535, -4, -4, 1028, 311, -4, 337, 341, - /* 140 */ 470, 1107, -4, 396, -4, 472, 501, -4, -4, -4, + /* 20 */ -4, -4, -4, 1737, 2061, 284, 1395, 1432, 1081, 412, + /* 30 */ -4, 1196, 1345, 1025, 1286, 506, -4, 2061, 337, -4, + /* 40 */ 2061, 2061, 303, 2061, 2061, 303, 1983, 296, 1890, 296, + /* 50 */ 2061, 296, 2061, 655, 2061, 655, 2061, 303, 2061, 411, + /* 60 */ 2061, 610, 2061, 105, 989, 105, 979, 105, 2061, 105, + /* 70 */ 2061, 105, 2061, 105, 2061, 105, 2061, 105, 2061, 105, + /* 80 */ 2061, -4, 2061, 224, 1168, 2061, 411, -4, -4, 1851, + /* 90 */ 256, -4, 2061, 367, 2061, 586, 1801, 533, 2061, 411, + /* 100 */ 2061, 395, -4, 1909, 533, -4, 254, -4, 2022, 1764, + /* 110 */ -4, 60, -4, -4, 1203, 2061, 533, -4, -4, -4, + /* 120 */ -4, -4, -4, -4, -4, -4, 398, -4, 2100, -4, + /* 130 */ 310, 2061, 533, -4, -4, 1088, 255, -4, 262, 363, + /* 140 */ 997, 1094, -4, 968, -4, 1095, 1117, -4, -4, -4, /* 150 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 160 */ -4, 2047, 288, 2047, 288, 976, 976, 448, -4, 498, - /* 170 */ 72, 2047, -3, 1, 1152, 1144, 478, -4, 502, 166, - /* 180 */ -4, 502, -4, 1027, 2047, 535, 2047, 535, 2047, 535, - /* 190 */ 2047, 535, 2047, 535, -4, 945, 959, 1043, 983, 1, - /* 200 */ 1171, 1185, 984, -4, 2047, 563, 2008, 1015, 986, 1, - /* 210 */ 1188, 1226, 1051, -4, -4, 952, 1072, 1229, 1234, 1267, - /* 220 */ 1073, -4, 2047, 27, 1, 1253, 1308, 1080, -4, 981, - /* 230 */ 1086, -4, 2047, 77, -4, 2047, 326, -4, 2047, 356, - /* 240 */ -4, 2047, 386, -4, 273, 1095, 1, 1264, 1349, 1122, - /* 250 */ -4, 1127, -4, 1128, -4, 2047, 416, -4, -4, -4, - /* 260 */ 1129, 1, 1294, 1390, 1131, -4, 1136, 1, 1311, 1431, - /* 270 */ 1145, -4, 1472, 1156, -4, 1159, 1106, 1096, 1165, -4, - /* 280 */ 1077, 1168, 1, 1331, 1513, 1169, -4, 1119, -4, 1177, - /* 290 */ 270, -4, -4, -4, -4, -4, -4, -4, -4, 2047, - /* 300 */ 475, 1, 1352, 1554, 1191, -4, 1196, 1223, 2047, 107, - /* 310 */ 1, 1372, 1595, 1204, -4, 2047, 505, 1, 1376, 1636, - /* 320 */ 1206, -4, 1677, 1207, -4, 1062, 1209, -4, 1215, 1249, - /* 330 */ 1235, 1227, -4, + /* 160 */ -4, 2061, 296, 2061, 296, 303, 303, 1132, -4, 1159, + /* 170 */ 335, 2061, 27, 1108, 1412, 1245, 1004, -4, 496, 0, + /* 180 */ -4, 496, -4, 391, 2061, 533, 2061, 533, 2061, 533, + /* 190 */ 2061, 533, 2061, 533, -4, 1058, 1060, 1092, 446, 1108, + /* 200 */ 1119, 1573, 416, -4, 2061, 561, 1944, 1002, 136, 1084, + /* 210 */ 1313, 1204, 56, -4, -4, 1175, 1187, 1272, 1186, 1327, + /* 220 */ 1172, -4, 2061, 87, 1108, 1268, 1450, 1184, -4, 1162, + /* 230 */ 1193, -4, 2061, 57, -4, 2061, 473, -4, 2061, 503, + /* 240 */ -4, 2061, 167, -4, 85, 86, 1084, 1350, 1655, 140, + /* 250 */ -4, 166, -4, 170, -4, 2061, 197, -4, -4, -4, + /* 260 */ 257, 1084, 1391, 1614, 442, -4, 336, 1108, 1160, 1409, + /* 270 */ 472, -4, 1368, 476, -4, 534, 1006, 967, 1018, -4, + /* 280 */ 90, 1037, 1084, 1354, 1532, 1070, -4, 1087, -4, 1097, + /* 290 */ 377, -4, -4, -4, -4, -4, -4, -4, -4, 2061, + /* 300 */ 137, 1084, 1033, 1491, 1146, -4, 1169, 1181, 2061, -3, + /* 310 */ 1108, 1166, 1696, 1214, -4, 2061, 443, 1084, 1309, 1163, + /* 320 */ 307, -4, 1122, 1052, -4, 1040, 1134, -4, 1143, 1200, + /* 330 */ 1215, 229, -4, }; -#define YY_REDUCE_USE_DFLT (-32) -static short yy_reduce_ofst[] = { - /* 0 */ 559, -32, 874, -32, -32, -32, -32, -32, -32, -32, - /* 10 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 20 */ -32, -32, -32, -32, 880, -32, 170, 874, -32, -32, - /* 30 */ -32, -32, 602, 874, -32, -32, -32, 925, -32, -32, - /* 40 */ 933, 958, -32, 1048, 1075, -32, 1079, -32, 1087, -32, - /* 50 */ 1112, -32, 1120, -32, 1157, -32, 1163, -32, 1166, -32, - /* 60 */ 1212, -32, 1245, -32, 1275, -32, 1283, -32, 1284, -32, - /* 70 */ 1290, -32, 1330, -32, 1333, -32, 1335, -32, 1363, -32, - /* 80 */ 1367, -32, 1368, -32, -32, 1371, -32, -32, -32, 878, - /* 90 */ -32, -32, 1374, -32, 1389, -32, 993, -32, 1393, -32, - /* 100 */ 1398, -32, -32, 1030, -32, -32, -32, -32, 957, 1034, - /* 110 */ -32, -32, -32, -32, -32, 1404, -32, -32, -32, -32, - /* 120 */ -32, -32, -32, -32, -32, -32, -32, -32, 996, -32, - /* 130 */ -32, 1409, -32, -32, -32, 246, -32, -32, -32, -32, - /* 140 */ -32, 333, -32, -32, -32, -32, -32, -32, -32, -32, - /* 150 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 160 */ -32, 1078, -32, 1413, -32, -32, -32, -32, -32, -32, - /* 170 */ -32, 1417, -32, 623, 874, -32, -32, -32, -31, -32, - /* 180 */ -32, 459, -32, -32, 1430, -32, 1434, -32, 1445, -32, - /* 190 */ 1448, -32, 1449, -32, -32, -32, -32, 168, -32, 644, - /* 200 */ 874, -32, -32, -32, 1450, -32, 1002, -32, -32, 665, - /* 210 */ 874, -32, -32, -32, -32, -32, -32, 686, 874, -32, - /* 220 */ -32, -32, 1453, -32, 707, 874, -32, -32, -32, -32, - /* 230 */ -32, -32, 1471, -32, -32, 1475, -32, -32, 1489, -32, - /* 240 */ -32, 1491, -32, -32, -32, -32, 728, 874, -32, -32, - /* 250 */ -32, -32, -32, -32, -32, 1494, -32, -32, -32, -32, - /* 260 */ -32, 749, 874, -32, -32, -32, -32, 770, 874, -32, - /* 270 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 280 */ -32, -32, 791, 874, -32, -32, -32, 1091, -32, -32, - /* 290 */ 1094, -32, -32, -32, -32, -32, -32, -32, -32, 1125, - /* 300 */ -32, 812, 874, -32, -32, -32, -32, -32, 1243, -32, - /* 310 */ 833, 874, -32, -32, -32, 1495, -32, 854, 874, -32, - /* 320 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 330 */ -32, -32, -32, +#define VV_REDUCE_USE_DFLT (-1) +static short vv_reduce_ofst[] = { + /* 0 */ 557, -1, 893, -1, -1, -1, -1, -1, -1, -1, + /* 10 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 20 */ -1, -1, -1, -1, 1518, -1, 684, 893, -1, -1, + /* 30 */ -1, -1, 852, 893, -1, -1, -1, 1182, -1, -1, + /* 40 */ 1385, 1171, -1, 1098, 1053, -1, 1393, -1, 1130, -1, + /* 50 */ 1513, -1, 1104, -1, 1467, -1, 1490, -1, 899, -1, + /* 60 */ 1065, -1, 1464, -1, 981, -1, 1149, -1, 1427, -1, + /* 70 */ 1453, -1, 1144, -1, 1349, -1, 1428, -1, 1472, -1, + /* 80 */ 1180, -1, 1262, -1, -1, 1434, -1, -1, -1, 944, + /* 90 */ -1, -1, 1468, -1, 1449, -1, 907, -1, 1494, -1, + /* 100 */ 1261, -1, -1, 930, -1, -1, -1, -1, 1012, 905, + /* 110 */ -1, -1, -1, -1, -1, 1436, -1, -1, -1, -1, + /* 120 */ -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, + /* 130 */ -1, 1135, -1, -1, -1, 114, -1, -1, -1, -1, + /* 140 */ -1, 894, -1, -1, -1, -1, -1, -1, -1, -1, + /* 150 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 160 */ -1, 1516, -1, 1408, -1, -1, -1, -1, -1, -1, + /* 170 */ -1, 1089, -1, 873, 893, -1, -1, -1, 12, -1, + /* 180 */ -1, 1105, -1, -1, 1386, -1, 1231, -1, 1371, -1, + /* 190 */ 1330, -1, 1267, -1, -1, -1, -1, 147, -1, 789, + /* 200 */ 893, -1, -1, -1, 1138, -1, 974, -1, -1, 663, + /* 210 */ 893, -1, -1, -1, -1, -1, -1, 642, 893, -1, + /* 220 */ -1, -1, 1016, -1, 705, 893, -1, -1, -1, -1, + /* 230 */ -1, -1, 1469, -1, -1, 1510, -1, -1, 928, -1, + /* 240 */ -1, 1056, -1, -1, -1, -1, 600, 893, -1, -1, + /* 250 */ -1, -1, -1, -1, -1, 1505, -1, -1, -1, -1, + /* 260 */ -1, 768, 893, -1, -1, -1, -1, 747, 893, -1, + /* 270 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 280 */ -1, -1, 810, 893, -1, -1, -1, 1020, -1, -1, + /* 290 */ 1034, -1, -1, -1, -1, -1, -1, -1, -1, 1062, + /* 300 */ -1, 621, 893, -1, -1, -1, -1, -1, 1188, -1, + /* 310 */ 726, 893, -1, -1, -1, 1017, -1, 831, 893, -1, + /* 320 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 330 */ -1, -1, -1, }; -static YYACTIONTYPE yy_default[] = { +static VVACTIONTYPE vv_default[] = { /* 0 */ 478, 478, 478, 335, 337, 338, 339, 340, 341, 342, /* 10 */ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, /* 20 */ 353, 354, 355, 478, 478, 478, 478, 478, 478, 478, @@ -112611,7 +114997,7 @@ static YYACTIONTYPE yy_default[] = { /* 320 */ 478, 366, 478, 478, 359, 478, 478, 357, 478, 478, /* 330 */ 478, 478, 360, }; -#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) +#define VV_SZ_ACTTAB (sizeof(vv_action)/sizeof(vv_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: @@ -112623,10 +115009,10 @@ static YYACTIONTYPE yy_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { +#ifdef VVFALLBACK +static const VVCODETYPE vvFallback[] = { }; -#endif /* YYFALLBACK */ +#endif /* VVFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -112640,44 +115026,44 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { +struct vvStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This + VVMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct yyStackEntry yyStackEntry; +typedef struct vvStackEntry vvStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ - int yyerrcnt; /* Shifts left before out of the error */ +struct vvParser { + int vvidx; /* Index of top element in stack */ + int vverrcnt; /* Shifts left before out of the error */ phvolt_ARG_SDECL /* A place to hold %extra_argument */ - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + vvStackEntry vvstack[VVSTACKDEPTH]; /* The parser's stack */ }; -typedef struct yyParser yyParser; +typedef struct vvParser vvParser; #ifndef NDEBUG #include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; +static FILE *vvTraceFILE = 0; +static char *vvTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phvolt_Trace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; + vvTraceFILE = TraceFILE; + vvTracePrompt = zTracePrompt; + if( vvTraceFILE==0 ) vvTracePrompt = 0; + else if( vvTracePrompt==0 ) vvTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *vvTokenName[] = { "$", "OPEN_DELIMITER", "COMMA", "IN", "QUESTION", "COLON", "RANGE", "AND", "OR", "IS", "EQUALS", "NOTEQUALS", @@ -112714,7 +115100,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *vvRuleName[] = { /* 0 */ "program ::= volt_language", /* 1 */ "volt_language ::= statement_list", /* 2 */ "statement_list ::= statement_list statement", @@ -112865,8 +115251,8 @@ static const char *yyRuleName[] = { const char *phvolt_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ - return yyTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(vvTokenName)/sizeof(vvTokenName[0])) ){ + return vvTokenName[tokenType]; }else{ return "Unknown"; } @@ -112876,21 +115262,21 @@ const char *phvolt_TokenName(int tokenType){ } void *phvolt_Alloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + vvParser *pParser; + pParser = (vvParser*)(*mallocProc)( (size_t)sizeof(vvParser) ); if( pParser ){ - pParser->yyidx = -1; + pParser->vvidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to +** "vvmajor" is the symbol code, and "vvpminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ - switch( yymajor ){ +static void vv_destructor(VVCODETYPE vvmajor, VVMINORTYPE *vvpminor){ + switch( vvmajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -112983,14 +115369,16 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 80: case 81: case 82: +// 702 "parser.lemon" { - if ((yypminor->yy0)) { - if ((yypminor->yy0)->free_flag) { - efree((yypminor->yy0)->token); + if ((vvpminor->vv0)) { + if ((vvpminor->vv0)->free_flag) { + efree((vvpminor->vv0)->token); } - efree((yypminor->yy0)); + efree((vvpminor->vv0)); } } +// 1654 "parser.c" break; case 86: case 87: @@ -113024,132 +115412,134 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 116: case 117: case 118: -{ zval_ptr_dtor(&(yypminor->yy92)); } +// 719 "parser.lemon" +{ zval_ptr_dtor(&(vvpminor->vv92)); } +// 1690 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int vv_pop_parser_stack(vvParser *pParser){ + VVCODETYPE vvmajor; + vvStackEntry *vvtos = &pParser->vvstack[pParser->vvidx]; - if( pParser->yyidx<0 ) return 0; + if( pParser->vvidx<0 ) return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); + if( vvTraceFILE && pParser->vvidx>=0 ){ + fprintf(vvTraceFILE,"%sPopping %s\n", + vvTracePrompt, + vvTokenName[vvtos->major]); } #endif - yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + vvmajor = vvtos->major; + vv_destructor( vvmajor, &vvtos->minor); + pParser->vvidx--; + return vvmajor; } static void phvolt_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - yyParser *pParser = (yyParser*)p; + vvParser *pParser = (vvParser*)p; if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + while( pParser->vvidx>=0 ) vv_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ +static int vv_find_shift_action( + vvParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ - i = yy_shift_ofst[stateno]; - if( i==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; + /* if( pParser->vvidx<0 ) return VV_NO_ACTION; */ + i = vv_shift_ofst[stateno]; + if( i==VV_SHIFT_USE_DFLT ){ + return vv_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ -#ifdef YYFALLBACK + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ +#ifdef VVFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE, "%sFALLBACK %s => %s\n", + vvTracePrompt, vvTokenName[iLookAhead], vvTokenName[iFallback]); } #endif - return yy_find_shift_action(pParser, iFallback); + return vv_find_shift_action(pParser, iFallback); } #endif - return yy_default[stateno]; + return vv_default[stateno]; }else{ - return yy_action[i]; + return vv_action[i]; } } -static int yy_find_reduce_action( - yyParser *pParser, /* The parser */ +static int vv_find_reduce_action( + vvParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - i = yy_reduce_ofst[stateno]; - if( i==YY_REDUCE_USE_DFLT ){ - return yy_default[stateno]; + i = vv_reduce_ofst[stateno]; + if( i==VV_REDUCE_USE_DFLT ){ + return vv_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ + return vv_default[stateno]; }else{ - return yy_action[i]; + return vv_action[i]; } } -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +static void vv_shift( + vvParser *vvpParser, /* The parser to be shifted */ + int vvNewState, /* The new state to shift in */ + int vvMajor, /* The major token to shift in */ + VVMINORTYPE *vvpMinor /* Pointer ot the minor token to shift in */ ){ - yyStackEntry *yytos; - yypParser->yyidx++; - if( yypParser->yyidx>=YYSTACKDEPTH ){ + vvStackEntry *vvtos; + vvpParser->vvidx++; + if( vvpParser->vvidx>=VVSTACKDEPTH ){ phvolt_ARG_FETCH; - yypParser->yyidx--; + vvpParser->vvidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sStack Overflow!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; - yytos->minor = *yypMinor; + vvtos = &vvpParser->vvstack[vvpParser->vvidx]; + vvtos->stateno = vvNewState; + vvtos->major = vvMajor; + vvtos->minor = *vvpMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ + if( vvTraceFILE && vvpParser->vvidx>0 ){ int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); + fprintf(vvTraceFILE,"%sShift %d\n",vvTracePrompt,vvNewState); + fprintf(vvTraceFILE,"%sStack:",vvTracePrompt); + for(i=1; i<=vvpParser->vvidx; i++) + fprintf(vvTraceFILE," %s",vvTokenName[vvpParser->vvstack[i].major]); + fprintf(vvTraceFILE,"\n"); } #endif } @@ -113158,9 +115548,9 @@ static void yy_shift( ** is used during the reduce. */ static struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + VVCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { +} vvRuleInfo[] = { { 84, 1 }, { 85, 1 }, { 86, 2 }, @@ -113308,40 +115698,42 @@ static struct { { 107, 1 }, }; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void vv_accept(vvParser*); /* Forward Declaration */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ +static void vv_reduce( + vvParser *vvpParser, /* The parser */ + int vvruleno /* Number of the rule by which to reduce */ ){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ + int vvgoto; /* The next state */ + int vvact; /* The next action */ + VVMINORTYPE vvgotominor; /* The LHS of the rule reduced */ + vvStackEntry *vvmsp; /* The top of the parser's stack */ + int vvsize; /* Amount to pop the stack */ phvolt_ARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; + vvmsp = &vvpParser->vvstack[vvpParser->vvidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno=0 + && vvruleno + ** // ** { ... } // User supplied code - ** #line + ** // ** break; */ case 0: +// 711 "parser.lemon" { - status->ret = yymsp[0].minor.yy92; + status->ret = vvmsp[0].minor.vv92; } +// 2052 "parser.c" break; case 1: case 4: @@ -113364,865 +115756,1080 @@ static void yy_reduce( case 21: case 22: case 131: +// 715 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; + vvgotominor.vv92 = vvmsp[0].minor.vv92; } +// 2079 "parser.c" break; case 2: +// 721 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + vvgotominor.vv92 = phvolt_ret_zval_list(vvmsp[-1].minor.vv92, vvmsp[0].minor.vv92); } +// 2086 "parser.c" break; case 3: case 36: case 45: case 128: case 135: +// 725 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(NULL, yymsp[0].minor.yy92); + vvgotominor.vv92 = phvolt_ret_zval_list(NULL, vvmsp[0].minor.vv92); } +// 2097 "parser.c" break; case 23: +// 809 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2110 "parser.c" break; case 24: +// 813 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-4].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(31,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-4].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(31,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2123 "parser.c" break; case 25: +// 817 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-9].minor.yy92, yymsp[-7].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(31,&yymsp[-10].minor); - yy_destructor(32,&yymsp[-8].minor); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(34,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-9].minor.vv92, vvmsp[-7].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(31,&vvmsp[-10].minor); + vv_destructor(32,&vvmsp[-8].minor); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(34,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2139 "parser.c" break; case 26: +// 821 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-8].minor.yy92, yymsp[-6].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(31,&yymsp[-9].minor); - yy_destructor(32,&yymsp[-7].minor); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(34,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-8].minor.vv92, vvmsp[-6].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(31,&vvmsp[-9].minor); + vv_destructor(32,&vvmsp[-7].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2155 "parser.c" break; case 27: +// 825 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-7].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(31,&yymsp[-8].minor); - yy_destructor(32,&yymsp[-6].minor); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(34,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-7].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(31,&vvmsp[-8].minor); + vv_destructor(32,&vvmsp[-6].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2171 "parser.c" break; case 28: +// 831 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_elseif_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(35,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_elseif_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(35,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2181 "parser.c" break; case 29: +// 837 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_elsefor_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(36,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_elsefor_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(36,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2191 "parser.c" break; case 30: +// 843 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, NULL, yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(37,&yymsp[-8].minor); - yy_destructor(3,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-7].minor.vv0, NULL, vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(37,&vvmsp[-8].minor); + vv_destructor(3,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2205 "parser.c" break; case 31: +// 847 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, NULL, yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(37,&yymsp[-10].minor); - yy_destructor(3,&yymsp[-8].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-9].minor.vv0, NULL, vvmsp[-7].minor.vv92, vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(3,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2220 "parser.c" break; case 32: +// 851 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, yymsp[-9].minor.yy0, yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(37,&yymsp[-10].minor); - yy_destructor(2,&yymsp[-8].minor); - yy_destructor(3,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-7].minor.vv0, vvmsp[-9].minor.vv0, vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(2,&vvmsp[-8].minor); + vv_destructor(3,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2235 "parser.c" break; case 33: +// 855 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, yymsp[-11].minor.yy0, yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-13].minor); - yy_destructor(37,&yymsp[-12].minor); - yy_destructor(2,&yymsp[-10].minor); - yy_destructor(3,&yymsp[-8].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-9].minor.vv0, vvmsp[-11].minor.vv0, vvmsp[-7].minor.vv92, vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-13].minor); + vv_destructor(37,&vvmsp[-12].minor); + vv_destructor(2,&vvmsp[-10].minor); + vv_destructor(3,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2251 "parser.c" break; case 34: +// 861 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_statement(yymsp[-1].minor.yy92); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(40,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_set_statement(vvmsp[-1].minor.vv92); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(40,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2261 "parser.c" break; case 35: case 44: case 127: case 134: +// 867 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(2,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_zval_list(vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92); + vv_destructor(2,&vvmsp[-1].minor); } +// 2272 "parser.c" break; case 37: +// 877 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(41,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(41,&vvmsp[-1].minor); } +// 2280 "parser.c" break; case 38: +// 881 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_ADD_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(42,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_ADD_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(42,&vvmsp[-1].minor); } +// 2288 "parser.c" break; case 39: +// 885 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_SUB_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(43,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_SUB_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(43,&vvmsp[-1].minor); } +// 2296 "parser.c" break; case 40: +// 889 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_MUL_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(44,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_MUL_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(44,&vvmsp[-1].minor); } +// 2304 "parser.c" break; case 41: +// 893 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_DIV_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(45,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_DIV_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(45,&vvmsp[-1].minor); } +// 2312 "parser.c" break; case 42: +// 899 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_statement(yymsp[-7].minor.yy0, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(46,&yymsp[-8].minor); - yy_destructor(29,&yymsp[-6].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(48,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_statement(vvmsp[-7].minor.vv0, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(46,&vvmsp[-8].minor); + vv_destructor(29,&vvmsp[-6].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(48,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2327 "parser.c" break; case 43: +// 903 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_statement(yymsp[-8].minor.yy0, yymsp[-6].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(46,&yymsp[-9].minor); - yy_destructor(29,&yymsp[-7].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(48,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_statement(vvmsp[-8].minor.vv0, vvmsp[-6].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(46,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(48,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2342 "parser.c" break; case 46: +// 919 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_parameter(yymsp[0].minor.yy0, NULL, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_macro_parameter(vvmsp[0].minor.vv0, NULL, status->scanner_state); } +// 2349 "parser.c" break; case 47: +// 923 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_parameter(yymsp[-2].minor.yy0, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(41,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_macro_parameter(vvmsp[-2].minor.vv0, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(41,&vvmsp[-1].minor); } +// 2357 "parser.c" break; case 48: case 125: case 139: +// 927 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, vvmsp[0].minor.vv0, status->scanner_state); } +// 2366 "parser.c" break; case 49: case 140: +// 931 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_STRING, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_STRING, vvmsp[0].minor.vv0, status->scanner_state); } +// 2374 "parser.c" break; case 50: case 141: +// 935 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, vvmsp[0].minor.vv0, status->scanner_state); } +// 2382 "parser.c" break; case 51: case 142: +// 939 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state); - yy_destructor(52,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state); + vv_destructor(52,&vvmsp[0].minor); } +// 2391 "parser.c" break; case 52: case 143: +// 943 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state); - yy_destructor(53,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state); + vv_destructor(53,&vvmsp[0].minor); } +// 2400 "parser.c" break; case 53: case 144: +// 947 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state); - yy_destructor(54,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state); + vv_destructor(54,&vvmsp[0].minor); } +// 2409 "parser.c" break; case 54: +// 953 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_call_statement(yymsp[-8].minor.yy92, yymsp[-6].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(55,&yymsp[-9].minor); - yy_destructor(29,&yymsp[-7].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(56,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_call_statement(vvmsp[-8].minor.vv92, vvmsp[-6].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(55,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(56,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2424 "parser.c" break; case 55: +// 957 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_call_statement(yymsp[-6].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-8].minor); - yy_destructor(55,&yymsp[-7].minor); - yy_destructor(29,&yymsp[-5].minor); - yy_destructor(47,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(56,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_call_statement(vvmsp[-6].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(55,&vvmsp[-7].minor); + vv_destructor(29,&vvmsp[-5].minor); + vv_destructor(47,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(56,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2439 "parser.c" break; case 56: +// 963 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_empty_statement(status->scanner_state); - yy_destructor(1,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_empty_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2448 "parser.c" break; case 57: +// 969 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_echo_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(57,&yymsp[-2].minor); - yy_destructor(58,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_echo_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(57,&vvmsp[-2].minor); + vv_destructor(58,&vvmsp[0].minor); } +// 2457 "parser.c" break; case 58: +// 975 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_block_statement(yymsp[-5].minor.yy0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(59,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(60,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_block_statement(vvmsp[-5].minor.vv0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(59,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(60,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2470 "parser.c" break; case 59: +// 979 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_block_statement(yymsp[-4].minor.yy0, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(59,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(60,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_block_statement(vvmsp[-4].minor.vv0, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(59,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(60,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2483 "parser.c" break; case 60: +// 985 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_cache_statement(yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(61,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(62,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_cache_statement(vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(61,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(62,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2496 "parser.c" break; case 61: +// 989 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_cache_statement(yymsp[-6].minor.yy92, yymsp[-5].minor.yy0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-8].minor); - yy_destructor(61,&yymsp[-7].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(62,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_cache_statement(vvmsp[-6].minor.vv92, vvmsp[-5].minor.vv0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(61,&vvmsp[-7].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(62,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2509 "parser.c" break; case 62: +// 995 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_extends_statement(yymsp[-1].minor.yy0, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(63,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_extends_statement(vvmsp[-1].minor.vv0, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(63,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2519 "parser.c" break; case 63: +// 1001 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_include_statement(yymsp[-1].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(64,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_include_statement(vvmsp[-1].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(64,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2529 "parser.c" break; case 64: +// 1005 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_include_statement(yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(64,&yymsp[-4].minor); - yy_destructor(65,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_include_statement(vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(64,&vvmsp[-4].minor); + vv_destructor(65,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2540 "parser.c" break; case 65: +// 1011 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_do_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(66,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_do_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(66,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2550 "parser.c" break; case 66: +// 1017 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_return_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(67,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_return_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(67,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2560 "parser.c" break; case 67: +// 1023 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_autoescape_statement(0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(68,&yymsp[-6].minor); - yy_destructor(53,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(69,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_autoescape_statement(0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(68,&vvmsp[-6].minor); + vv_destructor(53,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2574 "parser.c" break; case 68: +// 1027 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_autoescape_statement(1, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(68,&yymsp[-6].minor); - yy_destructor(54,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(69,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_autoescape_statement(1, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(68,&vvmsp[-6].minor); + vv_destructor(54,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2588 "parser.c" break; case 69: +// 1033 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_break_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(70,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_break_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(70,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2598 "parser.c" break; case 70: +// 1039 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_continue_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(71,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_continue_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(71,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2608 "parser.c" break; case 71: +// 1045 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, vvmsp[0].minor.vv0, status->scanner_state); } +// 2615 "parser.c" break; case 72: +// 1051 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(22,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } +// 2623 "parser.c" break; case 73: +// 1055 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(21,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } +// 2631 "parser.c" break; case 74: +// 1059 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_SUB, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(22,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_SUB, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } +// 2639 "parser.c" break; case 75: +// 1063 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ADD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(21,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ADD, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } +// 2647 "parser.c" break; case 76: +// 1067 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MUL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(19,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MUL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-1].minor); } +// 2655 "parser.c" break; case 77: +// 1071 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_POW, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(19,&yymsp[-2].minor); - yy_destructor(19,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_POW, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-2].minor); + vv_destructor(19,&vvmsp[-1].minor); } +// 2664 "parser.c" break; case 78: +// 1075 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DIV, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(18,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DIV, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-1].minor); } +// 2672 "parser.c" break; case 79: +// 1079 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(18,&yymsp[-2].minor); - yy_destructor(18,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MOD, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-2].minor); + vv_destructor(18,&vvmsp[-1].minor); } +// 2681 "parser.c" break; case 80: +// 1083 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(20,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MOD, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(20,&vvmsp[-1].minor); } +// 2689 "parser.c" break; case 81: +// 1087 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(7,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_AND, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(7,&vvmsp[-1].minor); } +// 2697 "parser.c" break; case 82: +// 1091 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(8,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_OR, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(8,&vvmsp[-1].minor); } +// 2705 "parser.c" break; case 83: +// 1095 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_CONCAT, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(23,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_CONCAT, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(23,&vvmsp[-1].minor); } +// 2713 "parser.c" break; case 84: +// 1099 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_PIPE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(25,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_PIPE, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(25,&vvmsp[-1].minor); } +// 2721 "parser.c" break; case 85: +// 1103 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_RANGE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(6,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_RANGE, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(6,&vvmsp[-1].minor); } +// 2729 "parser.c" break; case 86: +// 1107 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_EQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(10,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_EQUALS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(10,&vvmsp[-1].minor); } +// 2737 "parser.c" break; case 87: +// 1111 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(73,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(73,&vvmsp[0].minor); } +// 2746 "parser.c" break; case 88: +// 1115 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISSET, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(73,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISSET, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(73,&vvmsp[0].minor); } +// 2755 "parser.c" break; case 89: +// 1119 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(74,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(74,&vvmsp[0].minor); } +// 2764 "parser.c" break; case 90: +// 1123 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(74,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(74,&vvmsp[0].minor); } +// 2773 "parser.c" break; case 91: +// 1127 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(75,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(75,&vvmsp[0].minor); } +// 2782 "parser.c" break; case 92: +// 1131 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISEVEN, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(75,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISEVEN, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(75,&vvmsp[0].minor); } +// 2791 "parser.c" break; case 93: +// 1135 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(76,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(76,&vvmsp[0].minor); } +// 2800 "parser.c" break; case 94: +// 1139 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISODD, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(76,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISODD, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(76,&vvmsp[0].minor); } +// 2809 "parser.c" break; case 95: +// 1143 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(77,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(77,&vvmsp[0].minor); } +// 2818 "parser.c" break; case 96: +// 1147 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(77,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(77,&vvmsp[0].minor); } +// 2827 "parser.c" break; case 97: +// 1151 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(78,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(78,&vvmsp[0].minor); } +// 2836 "parser.c" break; case 98: +// 1155 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(78,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(78,&vvmsp[0].minor); } +// 2845 "parser.c" break; case 99: +// 1159 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(79,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(79,&vvmsp[0].minor); } +// 2854 "parser.c" break; case 100: +// 1163 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(79,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(79,&vvmsp[0].minor); } +// 2863 "parser.c" break; case 101: +// 1167 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); } +// 2871 "parser.c" break; case 102: +// 1171 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); } +// 2879 "parser.c" break; case 103: +// 1175 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(16,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(16,&vvmsp[-1].minor); } +// 2887 "parser.c" break; case 104: +// 1179 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(17,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(17,&vvmsp[-1].minor); } +// 2895 "parser.c" break; case 105: +// 1183 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_LESS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(12,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_LESS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(12,&vvmsp[-1].minor); } +// 2903 "parser.c" break; case 106: +// 1187 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_GREATER, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(13,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_GREATER, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(13,&vvmsp[-1].minor); } +// 2911 "parser.c" break; case 107: +// 1191 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(14,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(14,&vvmsp[-1].minor); } +// 2919 "parser.c" break; case 108: +// 1195 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(15,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(15,&vvmsp[-1].minor); } +// 2927 "parser.c" break; case 109: +// 1199 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DOT, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(30,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DOT, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(30,&vvmsp[-1].minor); } +// 2935 "parser.c" break; case 110: +// 1203 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IN, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(3,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IN, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(3,&vvmsp[-1].minor); } +// 2943 "parser.c" break; case 111: +// 1207 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_IN, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(26,&yymsp[-2].minor); - yy_destructor(3,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_IN, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-2].minor); + vv_destructor(3,&vvmsp[-1].minor); } +// 2952 "parser.c" break; case 112: +// 1211 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(26,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-1].minor); } +// 2960 "parser.c" break; case 113: +// 1215 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_INCR, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(27,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_INCR, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(27,&vvmsp[0].minor); } +// 2968 "parser.c" break; case 114: +// 1219 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DECR, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(28,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DECR, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(28,&vvmsp[0].minor); } +// 2976 "parser.c" break; case 115: +// 1223 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(29,&yymsp[-2].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 2985 "parser.c" break; case 116: +// 1227 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-1].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 2994 "parser.c" break; case 117: +// 1231 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3003 "parser.c" break; case 118: +// 1235 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - yy_destructor(81,&yymsp[-1].minor); - yy_destructor(82,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(81,&vvmsp[-1].minor); + vv_destructor(82,&vvmsp[0].minor); } +// 3012 "parser.c" break; case 119: +// 1239 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(81,&yymsp[-2].minor); - yy_destructor(82,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(81,&vvmsp[-2].minor); + vv_destructor(82,&vvmsp[0].minor); } +// 3021 "parser.c" break; case 120: +// 1243 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3030 "parser.c" break; case 121: +// 1247 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_TERNARY, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, yymsp[-4].minor.yy92, status->scanner_state); - yy_destructor(4,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_TERNARY, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, vvmsp[-4].minor.vv92, status->scanner_state); + vv_destructor(4,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-1].minor); } +// 3039 "parser.c" break; case 122: +// 1251 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-4].minor.yy92, NULL, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(24,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-4].minor.vv92, NULL, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3049 "parser.c" break; case 123: +// 1255 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-4].minor.yy92, yymsp[-2].minor.yy92, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-1].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-4].minor.vv92, vvmsp[-2].minor.vv92, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3059 "parser.c" break; case 124: +// 1259 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(24,&yymsp[-4].minor); - yy_destructor(5,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(24,&vvmsp[-4].minor); + vv_destructor(5,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3069 "parser.c" break; case 126: case 138: +// 1269 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, vvmsp[0].minor.vv0, status->scanner_state); } +// 3077 "parser.c" break; case 129: case 137: +// 1285 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_named_item(yymsp[-2].minor.yy0, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(5,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_named_item(vvmsp[-2].minor.vv0, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(5,&vvmsp[-1].minor); } +// 3086 "parser.c" break; case 130: case 136: +// 1289 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_named_item(NULL, yymsp[0].minor.yy92, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_named_item(NULL, vvmsp[0].minor.vv92, status->scanner_state); } +// 3094 "parser.c" break; case 132: +// 1299 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_func_call(yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(29,&yymsp[-2].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_func_call(vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 3103 "parser.c" break; case 133: +// 1303 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_func_call(yymsp[-2].minor.yy92, NULL, status->scanner_state); - yy_destructor(29,&yymsp[-1].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_func_call(vvmsp[-2].minor.vv92, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-1].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 3112 "parser.c" break; }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yypParser,yygoto); - if( yyact < YYNSTATE ){ - yy_shift(yypParser,yyact,yygoto,&yygotominor); - }else if( yyact == YYNSTATE + YYNRULE + 1 ){ - yy_accept(yypParser); + vvgoto = vvRuleInfo[vvruleno].lhs; + vvsize = vvRuleInfo[vvruleno].nrhs; + vvpParser->vvidx -= vvsize; + vvact = vv_find_reduce_action(vvpParser,vvgoto); + if( vvact < VVNSTATE ){ + vv_shift(vvpParser,vvact,vvgoto,&vvgotominor); + }else if( vvact == VVNSTATE + VVNRULE + 1 ){ + vv_accept(vvpParser); } } -static void yy_parse_failed( - yyParser *yypParser /* The parser */ +static void vv_parse_failed( + vvParser *vvpParser /* The parser */ ){ phvolt_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sFail!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ +static void vv_syntax_error( + vvParser *vvpParser, /* The parser */ + int vvmajor, /* The major type of the error token */ + VVMINORTYPE vvminor /* The minor type of the error token */ ){ phvolt_ARG_FETCH; -#define TOKEN (yyminor.yy0) +#define TOKEN (vvminor.vv0) +// 604 "parser.lemon" { @@ -114320,19 +116927,20 @@ static void yy_syntax_error( status->status = PHVOLT_PARSING_FAILED; +// 3252 "parser.c" phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_accept( - yyParser *yypParser /* The parser */ +static void vv_accept( + vvParser *vvpParser /* The parser */ ){ phvolt_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sAccept!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -114358,56 +116966,56 @@ static void yy_accept( ** None. */ static void phvolt_( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - phvolt_TOKENTYPE yyminor /* The value for the token */ + void *vvp, /* The parser */ + int vvmajor, /* The major token code number */ + phvolt_TOKENTYPE vvminor /* The value for the token */ phvolt_ARG_PDECL /* Optional %extra_argument parameter */ ){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ - int yyerrorhit = 0; /* True if yymajor has invoked an error */ - yyParser *yypParser; /* The parser */ + VVMINORTYPE vvminorunion; + int vvact; /* The parser action. */ + int vvendofinput; /* True if we are at the end of input */ + int vverrorhit = 0; /* True if vvmajor has invoked an error */ + vvParser *vvpParser; /* The parser */ /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ - if( yymajor==0 ) return; - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + vvpParser = (vvParser*)vvp; + if( vvpParser->vvidx<0 ){ + if( vvmajor==0 ) return; + vvpParser->vvidx = 0; + vvpParser->vverrcnt = -1; + vvpParser->vvstack[0].stateno = 0; + vvpParser->vvstack[0].major = 0; } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); + vvminorunion.vv0 = vvminor; + vvendofinput = (vvmajor==0); phvolt_ARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sInput %s\n",vvTracePrompt,vvTokenName[vvmajor]); } #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); - if( yyactyyerrcnt--; - if( yyendofinput && yypParser->yyidx>=0 ){ - yymajor = 0; + vvact = vv_find_shift_action(vvpParser,vvmajor); + if( vvactvverrcnt--; + if( vvendofinput && vvpParser->vvidx>=0 ){ + vvmajor = 0; }else{ - yymajor = YYNOCODE; + vvmajor = VVNOCODE; } - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else if( yyact == YY_ERROR_ACTION ){ - int yymx; + }else if( vvact < VVNSTATE + VVNRULE ){ + vv_reduce(vvpParser,vvact-VVNSTATE); + }else if( vvact == VV_ERROR_ACTION ){ + int vvmx; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sSyntax Error!\n",vvTracePrompt); } #endif -#ifdef YYERRORSYMBOL +#ifdef VVERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -114427,40 +117035,40 @@ static void phvolt_( ** shifted successfully. ** */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( vvpParser->vverrcnt<0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + vvmx = vvpParser->vvstack[vvpParser->vvidx].major; + if( vvmx==VVERRORSYMBOL || vverrorhit ){ #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sDiscard input token %s\n", + vvTracePrompt,vvTokenName[vvmajor]); } #endif - yy_destructor(yymajor,&yyminorunion); - yymajor = YYNOCODE; + vv_destructor(vvmajor,&vvminorunion); + vvmajor = VVNOCODE; }else{ while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE + vvpParser->vvidx >= 0 && + vvmx != VVERRORSYMBOL && + (vvact = vv_find_shift_action(vvpParser,VVERRORSYMBOL)) >= VVNSTATE ){ - yy_pop_parser_stack(yypParser); + vv_pop_parser_stack(vvpParser); } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + if( vvpParser->vvidx < 0 || vvmajor==0 ){ + vv_destructor(vvmajor,&vvminorunion); + vv_parse_failed(vvpParser); + vvmajor = VVNOCODE; + }else if( vvmx!=VVERRORSYMBOL ){ + VVMINORTYPE u2; + u2.VVERRSYMDT = 0; + vv_shift(vvpParser,vvact,VVERRORSYMBOL,&u2); } } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#else /* YYERRORSYMBOL is not defined */ + vvpParser->vverrcnt = 3; + vverrorhit = 1; +#else /* VVERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -114470,21 +117078,21 @@ static void phvolt_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( vvpParser->vverrcnt<=0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); } - yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); + vvpParser->vverrcnt = 3; + vv_destructor(vvmajor,&vvminorunion); + if( vvendofinput ){ + vv_parse_failed(vvpParser); } - yymajor = YYNOCODE; + vvmajor = VVNOCODE; #endif }else{ - yy_accept(yypParser); - yymajor = YYNOCODE; + vv_accept(vvpParser); + vvmajor = VVNOCODE; } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + }while( vvmajor!=VVNOCODE && vvpParser->vvidx>=0 ); return; } @@ -115182,14 +117790,15 @@ static int phvolt_internal_parse_view(zval **result, zval *view_code, zval *temp } -/* Generated by re2c 0.13.5 on Wed Apr 29 17:20:28 2015 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:07:41 2015 */ +// 1 "scanner.re" -#define YYCTYPE unsigned char -#define YYCURSOR (s->start) -#define YYLIMIT (s->end) -#define YYMARKER q +#define VVCTYPE unsigned char +#define VVCURSOR (s->start) +#define VVLIMIT (s->end) +#define VVMARKER q static void phvolt_rtrim(phvolt_scanner_token *token) { @@ -115256,7 +117865,7 @@ static void phvolt_ltrim(phvolt_scanner_token *token) { static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token) { unsigned char next, double_next; - char *q = YYCURSOR, *start = YYCURSOR; + char *q = VVCURSOR, *start = VVCURSOR; int status = PHVOLT_SCANNER_RETCODE_IMPOSSIBLE; while (PHVOLT_SCANNER_RETCODE_IMPOSSIBLE == status) { @@ -115266,18 +117875,18 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token next = '\0'; double_next = '\0'; - if (*YYCURSOR == '\n') { + if (*VVCURSOR == '\n') { s->active_line++; } - if (*YYCURSOR != '\0') { - next = *(YYCURSOR + 1); + if (*VVCURSOR != '\0') { + next = *(VVCURSOR + 1); if (next != '\0') { - double_next = *(YYCURSOR + 2); + double_next = *(VVCURSOR + 2); } } - if (*YYCURSOR == '\0' || (*YYCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { + if (*VVCURSOR == '\0' || (*VVCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { if (next != '#') { @@ -115301,16 +117910,16 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token } s->raw_buffer_cursor = 0; - q = YYCURSOR; + q = VVCURSOR; } else { token->opcode = PHVOLT_T_IGNORE; } } else { - while ((next = *(++YYCURSOR))) { - if (next == '#' && *(YYCURSOR + 1) == '}') { - YYCURSOR+=2; + while ((next = *(++VVCURSOR))) { + if (next == '#' && *(VVCURSOR + 1) == '}') { + VVCURSOR+=2; token->opcode = PHVOLT_T_IGNORE; return 0; } else { @@ -115332,72 +117941,4299 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token s->raw_buffer = erealloc(s->raw_buffer, s->raw_buffer_size); } - memcpy(s->raw_buffer+s->raw_buffer_cursor, YYCURSOR, 1); + memcpy(s->raw_buffer+s->raw_buffer_cursor, VVCURSOR, 1); s->raw_buffer_cursor++; - ++YYCURSOR; + ++VVCURSOR; + } + + } else { + + +// 181 "scanner.c" + { + VVCTYPE vvch; + unsigned int vvaccept = 0; + + vvch = *VVCURSOR; + switch (vvch) { + case 0x00: goto vv71; + case '\t': + case '\r': + case ' ': goto vv67; + case '\n': goto vv69; + case '!': goto vv59; + case '"': goto vv28; + case '%': goto vv22; + case '\'': goto vv30; + case '(': goto vv45; + case ')': goto vv47; + case '*': goto vv35; + case '+': goto vv33; + case ',': goto vv43; + case '-': goto vv24; + case '.': goto vv41; + case '/': goto vv37; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv2; + case ':': goto vv63; + case '<': goto vv53; + case '=': goto vv55; + case '>': goto vv57; + case '?': goto vv65; + case 'A': + case 'a': goto vv12; + case 'B': + case 'b': goto vv14; + case 'C': + case 'c': goto vv16; + case 'D': + case 'd': goto vv19; + case 'E': + case 'e': goto vv7; + case 'F': + case 'f': goto vv8; + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'P': + case 'Q': + case 'U': + case 'V': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'p': + case 'q': + case 'u': + case 'v': + case 'x': + case 'y': + case 'z': goto vv32; + case 'I': goto vv4; + case 'M': + case 'm': goto vv15; + case 'N': + case 'n': goto vv10; + case 'O': + case 'o': goto vv13; + case 'R': + case 'r': goto vv18; + case 'S': + case 's': goto vv9; + case 'T': + case 't': goto vv11; + case 'W': + case 'w': goto vv17; + case '[': goto vv49; + case '\\': goto vv31; + case ']': goto vv51; + case 'i': goto vv6; + case '{': goto vv20; + case '|': goto vv61; + case '}': goto vv26; + case '~': goto vv39; + default: goto vv73; + } +vv2: + vvaccept = 0; + vvch = *(VVMARKER = ++VVCURSOR); + goto vv341; +vv3: +// 182 "scanner.re" + { + token->opcode = PHVOLT_T_INTEGER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; + return 0; + } +// 295 "scanner.c" +vv4: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case 'F': + case 'f': goto vv303; + case 'N': + case 'n': goto vv305; + case 'S': + case 's': goto vv307; + case 'T': + case 't': goto vv309; + default: goto vv101; + } +vv5: +// 495 "scanner.re" + { + token->opcode = PHVOLT_T_IDENTIFIER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; + return 0; + } +// 318 "scanner.c" +vv6: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv303; + case 'N': + case 'n': goto vv305; + case 'S': goto vv307; + case 'T': + case 't': goto vv309; + case 's': goto vv310; + default: goto vv101; + } +vv7: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv235; + case 'M': + case 'm': goto vv236; + case 'N': + case 'n': goto vv237; + case 'V': + case 'v': goto vv238; + case 'X': + case 'x': goto vv239; + default: goto vv101; + } +vv8: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv227; + case 'O': + case 'o': goto vv228; + default: goto vv101; + } +vv9: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv218; + case 'E': + case 'e': goto vv219; + default: goto vv101; + } +vv10: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv205; + case 'U': + case 'u': goto vv206; + default: goto vv101; + } +vv11: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv201; + default: goto vv101; + } +vv12: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv188; + case 'U': + case 'u': goto vv189; + default: goto vv101; + } +vv13: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv183; + case 'R': + case 'r': goto vv184; + default: goto vv101; + } +vv14: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv173; + case 'R': + case 'r': goto vv174; + default: goto vv101; + } +vv15: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv168; + default: goto vv101; + } +vv16: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv152; + case 'O': + case 'o': goto vv153; + default: goto vv101; + } +vv17: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv148; + default: goto vv101; + } +vv18: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv142; + default: goto vv101; + } +vv19: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv133; + case 'O': + case 'o': goto vv134; + default: goto vv101; + } +vv20: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '%': goto vv127; + case '{': goto vv125; + default: goto vv21; + } +vv21: +// 578 "scanner.re" + { + token->opcode = PHVOLT_T_CBRACKET_OPEN; + return 0; + } +// 460 "scanner.c" +vv22: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '}': goto vv123; + default: goto vv23; + } +vv23: +// 523 "scanner.re" + { + token->opcode = PHVOLT_T_MOD; + return 0; + } +// 473 "scanner.c" +vv24: + vvaccept = 1; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case '%': goto vv118; + case '-': goto vv115; + case '=': goto vv113; + case '}': goto vv117; + default: goto vv25; + } +vv25: +// 508 "scanner.re" + { + token->opcode = PHVOLT_T_SUB; + return 0; + } +// 490 "scanner.c" +vv26: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '}': goto vv111; + default: goto vv27; + } +vv27: +// 583 "scanner.re" + { + token->opcode = PHVOLT_T_CBRACKET_CLOSE; + return 0; + } +// 503 "scanner.c" +vv28: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch >= 0x01) goto vv109; +vv29: +// 694 "scanner.re" + { + status = PHVOLT_SCANNER_RETCODE_ERR; + break; + } +// 514 "scanner.c" +vv30: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch <= 0x00) goto vv29; + goto vv103; +vv31: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv29; + } +vv32: + vvch = *++VVCURSOR; + goto vv101; +vv33: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '+': goto vv98; + case '=': goto vv96; + default: goto vv34; + } +vv34: +// 503 "scanner.re" + { + token->opcode = PHVOLT_T_ADD; + return 0; + } +// 594 "scanner.c" +vv35: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv94; + default: goto vv36; + } +vv36: +// 513 "scanner.re" + { + token->opcode = PHVOLT_T_MUL; + return 0; + } +// 607 "scanner.c" +vv37: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv92; + default: goto vv38; + } +vv38: +// 518 "scanner.re" + { + token->opcode = PHVOLT_T_DIV; + return 0; + } +// 620 "scanner.c" +vv39: + ++VVCURSOR; +// 538 "scanner.re" + { + token->opcode = PHVOLT_T_CONCAT; + return 0; + } +// 628 "scanner.c" +vv41: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '.': goto vv90; + default: goto vv42; + } +vv42: +// 548 "scanner.re" + { + token->opcode = PHVOLT_T_DOT; + return 0; + } +// 641 "scanner.c" +vv43: + ++VVCURSOR; +// 553 "scanner.re" + { + token->opcode = PHVOLT_T_COMMA; + return 0; + } +// 649 "scanner.c" +vv45: + ++VVCURSOR; +// 558 "scanner.re" + { + token->opcode = PHVOLT_T_PARENTHESES_OPEN; + return 0; + } +// 657 "scanner.c" +vv47: + ++VVCURSOR; +// 563 "scanner.re" + { + token->opcode = PHVOLT_T_PARENTHESES_CLOSE; + return 0; + } +// 665 "scanner.c" +vv49: + ++VVCURSOR; +// 568 "scanner.re" + { + token->opcode = PHVOLT_T_SBRACKET_OPEN; + return 0; + } +// 673 "scanner.c" +vv51: + ++VVCURSOR; +// 573 "scanner.re" + { + token->opcode = PHVOLT_T_SBRACKET_CLOSE; + return 0; + } +// 681 "scanner.c" +vv53: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv88; + case '>': goto vv86; + default: goto vv54; + } +vv54: +// 653 "scanner.re" + { + token->opcode = PHVOLT_T_LESS; + return 0; + } +// 695 "scanner.c" +vv55: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv82; + default: goto vv56; + } +vv56: +// 593 "scanner.re" + { + token->opcode = PHVOLT_T_ASSIGN; + return 0; + } +// 708 "scanner.c" +vv57: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv80; + default: goto vv58; + } +vv58: +// 658 "scanner.re" + { + token->opcode = PHVOLT_T_GREATER; + return 0; + } +// 721 "scanner.c" +vv59: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv76; + default: goto vv60; + } +vv60: +// 648 "scanner.re" + { + token->opcode = PHVOLT_T_NOT; + return 0; + } +// 734 "scanner.c" +vv61: + ++VVCURSOR; +// 663 "scanner.re" + { + token->opcode = PHVOLT_T_PIPE; + return 0; + } +// 742 "scanner.c" +vv63: + ++VVCURSOR; +// 668 "scanner.re" + { + token->opcode = PHVOLT_T_COLON; + return 0; + } +// 750 "scanner.c" +vv65: + ++VVCURSOR; +// 673 "scanner.re" + { + token->opcode = PHVOLT_T_QUESTION; + return 0; + } +// 758 "scanner.c" +vv67: + ++VVCURSOR; + vvch = *VVCURSOR; + goto vv75; +vv68: +// 678 "scanner.re" + { + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +// 769 "scanner.c" +vv69: + ++VVCURSOR; +// 683 "scanner.re" + { + s->active_line++; + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +// 778 "scanner.c" +vv71: + ++VVCURSOR; +// 689 "scanner.re" + { + status = PHVOLT_SCANNER_RETCODE_EOF; + break; + } +// 786 "scanner.c" +vv73: + vvch = *++VVCURSOR; + goto vv29; +vv74: + ++VVCURSOR; + vvch = *VVCURSOR; +vv75: + switch (vvch) { + case '\t': + case '\r': + case ' ': goto vv74; + default: goto vv68; + } +vv76: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv78; + default: goto vv77; + } +vv77: +// 628 "scanner.re" + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +// 812 "scanner.c" +vv78: + ++VVCURSOR; +// 643 "scanner.re" + { + token->opcode = PHVOLT_T_NOTIDENTICAL; + return 0; + } +// 820 "scanner.c" +vv80: + ++VVCURSOR; +// 618 "scanner.re" + { + token->opcode = PHVOLT_T_GREATEREQUAL; + return 0; + } +// 828 "scanner.c" +vv82: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv84; + default: goto vv83; + } +vv83: +// 623 "scanner.re" + { + token->opcode = PHVOLT_T_EQUALS; + return 0; + } +// 841 "scanner.c" +vv84: + ++VVCURSOR; +// 638 "scanner.re" + { + token->opcode = PHVOLT_T_IDENTICAL; + return 0; + } +// 849 "scanner.c" +vv86: + ++VVCURSOR; +// 633 "scanner.re" + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +// 857 "scanner.c" +vv88: + ++VVCURSOR; +// 588 "scanner.re" + { + token->opcode = PHVOLT_T_LESSEQUAL; + return 0; + } +// 865 "scanner.c" +vv90: + ++VVCURSOR; +// 543 "scanner.re" + { + token->opcode = PHVOLT_T_RANGE; + return 0; + } +// 873 "scanner.c" +vv92: + ++VVCURSOR; +// 613 "scanner.re" + { + token->opcode = PHVOLT_T_DIV_ASSIGN; + return 0; + } +// 881 "scanner.c" +vv94: + ++VVCURSOR; +// 608 "scanner.re" + { + token->opcode = PHVOLT_T_MUL_ASSIGN; + return 0; + } +// 889 "scanner.c" +vv96: + ++VVCURSOR; +// 598 "scanner.re" + { + token->opcode = PHVOLT_T_ADD_ASSIGN; + return 0; + } +// 897 "scanner.c" +vv98: + ++VVCURSOR; +// 528 "scanner.re" + { + token->opcode = PHVOLT_T_INCR; + return 0; + } +// 905 "scanner.c" +vv100: + ++VVCURSOR; + vvch = *VVCURSOR; +vv101: + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv5; + } +vv102: + ++VVCURSOR; + vvch = *VVCURSOR; +vv103: + switch (vvch) { + case 0x00: goto vv104; + case '\'': goto vv106; + case '\\': goto vv105; + default: goto vv102; + } +vv104: + VVCURSOR = VVMARKER; + switch (vvaccept) { + case 0: goto vv3; + case 1: goto vv25; + case 2: goto vv29; + default: goto vv308; + } +vv105: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '\n': goto vv104; + default: goto vv102; + } +vv106: + ++VVCURSOR; +// 486 "scanner.re" + { + token->opcode = PHVOLT_T_STRING; + token->value = estrndup(q, VVCURSOR - q - 1); + token->len = VVCURSOR - q - 1; + q = VVCURSOR; + return 0; + } +// 1012 "scanner.c" +vv108: + ++VVCURSOR; + vvch = *VVCURSOR; +vv109: + switch (vvch) { + case 0x00: goto vv104; + case '"': goto vv106; + case '\\': goto vv110; + default: goto vv108; + } +vv110: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '\n': goto vv104; + default: goto vv108; + } +vv111: + ++VVCURSOR; +// 465 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; + } +// 1038 "scanner.c" +vv113: + ++VVCURSOR; +// 603 "scanner.re" + { + token->opcode = PHVOLT_T_SUB_ASSIGN; + return 0; + } +// 1046 "scanner.c" +vv115: + ++VVCURSOR; +// 533 "scanner.re" + { + token->opcode = PHVOLT_T_DECR; + return 0; + } +// 1054 "scanner.c" +vv117: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv121; + default: goto vv104; + } +vv118: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv119; + default: goto vv104; + } +vv119: + ++VVCURSOR; +// 451 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; + } +// 1076 "scanner.c" +vv121: + ++VVCURSOR; +// 478 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; + } +// 1086 "scanner.c" +vv123: + ++VVCURSOR; +// 439 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; + } +// 1095 "scanner.c" +vv125: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '-': goto vv131; + default: goto vv126; + } +vv126: +// 458 "scanner.re" + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; + } +// 1110 "scanner.c" +vv127: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '-': goto vv129; + default: goto vv128; + } +vv128: +// 433 "scanner.re" + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; + } +// 1124 "scanner.c" +vv129: + ++VVCURSOR; +// 445 "scanner.re" + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; + } +// 1133 "scanner.c" +vv131: + ++VVCURSOR; +// 471 "scanner.re" + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; + } +// 1143 "scanner.c" +vv133: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv136; + default: goto vv101; + } +vv134: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv135; + } +vv135: +// 403 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_DO; + return 0; + } +// 1227 "scanner.c" +vv136: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv137; + default: goto vv101; + } +vv137: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv138; + default: goto vv101; + } +vv138: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv139; + default: goto vv101; + } +vv139: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv140; + default: goto vv101; + } +vv140: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv141; + } +vv141: +// 344 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_DEFINED; + return 0; + } +// 1332 "scanner.c" +vv142: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv143; + default: goto vv101; + } +vv143: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv144; + default: goto vv101; + } +vv144: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv145; + default: goto vv101; + } +vv145: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv146; + default: goto vv101; + } +vv146: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv147; + } +vv147: +// 309 "scanner.re" + { + token->opcode = PHVOLT_T_RETURN; + return 0; + } +// 1436 "scanner.c" +vv148: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv149; + default: goto vv101; + } +vv149: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv150; + default: goto vv101; + } +vv150: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv151; + } +vv151: +// 304 "scanner.re" + { + token->opcode = PHVOLT_T_WITH; + return 0; + } +// 1526 "scanner.c" +vv152: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv162; + case 'L': + case 'l': goto vv161; + default: goto vv101; + } +vv153: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv154; + default: goto vv101; + } +vv154: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv155; + default: goto vv101; + } +vv155: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv156; + default: goto vv101; + } +vv156: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv157; + default: goto vv101; + } +vv157: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv158; + default: goto vv101; + } +vv158: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv159; + default: goto vv101; + } +vv159: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv160; + } +vv160: +// 421 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CONTINUE; + return 0; + } +// 1654 "scanner.c" +vv161: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv166; + default: goto vv101; + } +vv162: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv163; + default: goto vv101; + } +vv163: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv164; + default: goto vv101; + } +vv164: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv165; + } +vv165: +// 392 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CACHE; + return 0; + } +// 1752 "scanner.c" +vv166: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv167; + } +vv167: +// 293 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CALL; + return 0; + } +// 1829 "scanner.c" +vv168: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv169; + default: goto vv101; + } +vv169: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv170; + default: goto vv101; + } +vv170: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv171; + default: goto vv101; + } +vv171: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv172; + } +vv172: +// 282 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_MACRO; + return 0; + } +// 1927 "scanner.c" +vv173: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv179; + default: goto vv101; + } +vv174: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv175; + default: goto vv101; + } +vv175: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv176; + default: goto vv101; + } +vv176: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv177; + default: goto vv101; + } +vv177: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv178; + } +vv178: +// 427 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_BREAK; + return 0; + } +// 2032 "scanner.c" +vv179: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv180; + default: goto vv101; + } +vv180: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv181; + default: goto vv101; + } +vv181: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv182; + } +vv182: +// 271 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_BLOCK; + return 0; + } +// 2123 "scanner.c" +vv183: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv186; + default: goto vv101; + } +vv184: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv185; + } +vv185: +// 266 "scanner.re" + { + token->opcode = PHVOLT_T_OR; + return 0; + } +// 2206 "scanner.c" +vv186: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv187; + } +vv187: +// 368 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_ODD; + return 0; + } +// 2283 "scanner.c" +vv188: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv199; + default: goto vv101; + } +vv189: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv190; + default: goto vv101; + } +vv190: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv191; + default: goto vv101; + } +vv191: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv192; + default: goto vv101; + } +vv192: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv193; + default: goto vv101; + } +vv193: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv194; + default: goto vv101; + } +vv194: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv195; + default: goto vv101; + } +vv195: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv196; + default: goto vv101; + } +vv196: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv197; + default: goto vv101; + } +vv197: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv198; + } +vv198: +// 409 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_AUTOESCAPE; + return 0; + } +// 2423 "scanner.c" +vv199: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv200; + } +vv200: +// 261 "scanner.re" + { + token->opcode = PHVOLT_T_AND; + return 0; + } +// 2499 "scanner.c" +vv201: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv202; + default: goto vv101; + } +vv202: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv203; + default: goto vv101; + } +vv203: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv204; + } +vv204: +// 256 "scanner.re" + { + token->opcode = PHVOLT_T_TRUE; + return 0; + } +// 2589 "scanner.c" +vv205: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv216; + default: goto vv101; + } +vv206: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv207; + case 'M': + case 'm': goto vv208; + default: goto vv101; + } +vv207: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv214; + default: goto vv101; + } +vv208: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv209; + default: goto vv101; + } +vv209: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv210; + default: goto vv101; + } +vv210: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv211; + default: goto vv101; + } +vv211: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv212; + default: goto vv101; + } +vv212: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv213; + } +vv213: +// 374 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_NUMERIC; + return 0; + } +// 2717 "scanner.c" +vv214: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv215; + } +vv215: +// 246 "scanner.re" + { + token->opcode = PHVOLT_T_NULL; + return 0; + } +// 2793 "scanner.c" +vv216: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv217; + } +vv217: +// 338 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_NOT; + return 0; + } +// 2870 "scanner.c" +vv218: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv222; + default: goto vv101; + } +vv219: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv220; + default: goto vv101; + } +vv220: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv221; + } +vv221: +// 241 "scanner.re" + { + token->opcode = PHVOLT_T_SET; + return 0; + } +// 2960 "scanner.c" +vv222: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv223; + default: goto vv101; + } +vv223: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv224; + default: goto vv101; + } +vv224: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv225; + default: goto vv101; + } +vv225: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv226; + } +vv226: +// 380 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_SCALAR; + return 0; + } +// 3058 "scanner.c" +vv227: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv231; + default: goto vv101; + } +vv228: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv229; + default: goto vv101; + } +vv229: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv230; + } +vv230: +// 225 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_FOR; + return 0; + } +// 3149 "scanner.c" +vv231: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv232; + default: goto vv101; + } +vv232: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv233; + default: goto vv101; + } +vv233: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv234; + } +vv234: +// 251 "scanner.re" + { + token->opcode = PHVOLT_T_FALSE; + return 0; + } +// 3239 "scanner.c" +vv235: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv293; + default: goto vv101; + } +vv236: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv289; + default: goto vv101; + } +vv237: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv249; + default: goto vv101; + } +vv238: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv246; + default: goto vv101; + } +vv239: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv240; + default: goto vv101; + } +vv240: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv241; + default: goto vv101; + } +vv241: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv242; + default: goto vv101; + } +vv242: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv243; + default: goto vv101; + } +vv243: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv244; + default: goto vv101; + } +vv244: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv245; + } +vv245: +// 314 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EXTENDS; + return 0; + } +// 3379 "scanner.c" +vv246: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv247; + default: goto vv101; + } +vv247: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv248; + } +vv248: +// 362 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EVEN; + return 0; + } +// 3463 "scanner.c" +vv249: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv250; + case 'B': + case 'b': goto vv251; + case 'C': + case 'c': goto vv252; + case 'F': + case 'f': goto vv253; + case 'I': + case 'i': goto vv254; + case 'M': + case 'm': goto vv255; + default: goto vv101; + } +vv250: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv279; + default: goto vv101; + } +vv251: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv274; + default: goto vv101; + } +vv252: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv266; + default: goto vv101; + } +vv253: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv263; + default: goto vv101; + } +vv254: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv261; + default: goto vv101; + } +vv255: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv256; + default: goto vv101; + } +vv256: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv257; + default: goto vv101; + } +vv257: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv258; + default: goto vv101; + } +vv258: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv259; + default: goto vv101; + } +vv259: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv260; + } +vv260: +// 288 "scanner.re" + { + token->opcode = PHVOLT_T_ENDMACRO; + return 0; + } +// 3619 "scanner.c" +vv261: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv262; + } +vv262: +// 220 "scanner.re" + { + token->opcode = PHVOLT_T_ENDIF; + return 0; + } +// 3695 "scanner.c" +vv263: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv264; + default: goto vv101; + } +vv264: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv265; + } +vv265: +// 231 "scanner.re" + { + token->opcode = PHVOLT_T_ENDFOR; + return 0; + } +// 3778 "scanner.c" +vv266: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv267; + case 'L': + case 'l': goto vv268; + default: goto vv101; + } +vv267: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv271; + default: goto vv101; + } +vv268: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv269; + default: goto vv101; + } +vv269: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv270; + } +vv270: +// 299 "scanner.re" + { + token->opcode = PHVOLT_T_ENDCALL; + return 0; + } +// 3877 "scanner.c" +vv271: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv272; + default: goto vv101; + } +vv272: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv273; + } +vv273: +// 398 "scanner.re" + { + token->opcode = PHVOLT_T_ENDCACHE; + return 0; + } +// 3960 "scanner.c" +vv274: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv275; + default: goto vv101; + } +vv275: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv276; + default: goto vv101; + } +vv276: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv277; + default: goto vv101; + } +vv277: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv278; + } +vv278: +// 277 "scanner.re" + { + token->opcode = PHVOLT_T_ENDBLOCK; + return 0; + } +// 4057 "scanner.c" +vv279: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv280; + default: goto vv101; + } +vv280: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv281; + default: goto vv101; + } +vv281: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv282; + default: goto vv101; + } +vv282: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv283; + default: goto vv101; + } +vv283: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv284; + default: goto vv101; + } +vv284: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv285; + default: goto vv101; + } +vv285: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv286; + default: goto vv101; + } +vv286: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv287; + default: goto vv101; + } +vv287: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv288; + } +vv288: +// 415 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_ENDAUTOESCAPE; + return 0; + } +// 4190 "scanner.c" +vv289: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv290; + default: goto vv101; + } +vv290: + vvch = *++VVCURSOR; + switch (vvch) { + case 'Y': + case 'y': goto vv291; + default: goto vv101; + } +vv291: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv292; + } +vv292: +// 356 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EMPTY; + return 0; + } +// 4281 "scanner.c" +vv293: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv294; + default: goto vv101; + } +vv294: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + case 'F': + case 'f': goto vv296; + case 'I': + case 'i': goto vv297; + default: goto vv295; + } +vv295: +// 205 "scanner.re" + { + token->opcode = PHVOLT_T_ELSE; + return 0; + } +// 4364 "scanner.c" +vv296: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv300; + default: goto vv101; + } +vv297: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv298; + default: goto vv101; + } +vv298: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv299; } - - } else { - - - { - YYCTYPE yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = { - 0, 48, 48, 48, 48, 48, 48, 48, - 48, 52, 48, 48, 48, 52, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 116, 48, 16, 48, 48, 48, 48, 32, - 48, 48, 48, 48, 48, 48, 48, 48, - 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 48, 48, 48, 48, 48, 48, - 48, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 48, 8, 48, 48, 56, - 48, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - }; - - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy71; - case '\t': - case '\r': - case ' ': goto yy67; - case '\n': goto yy69; - case '!': goto yy59; - case '"': goto yy28; - case '%': goto yy22; - case '\'': goto yy30; - case '(': goto yy45; - case ')': goto yy47; - case '*': goto yy35; - case '+': goto yy33; - case ',': goto yy43; - case '-': goto yy24; - case '.': goto yy41; - case '/': goto yy37; +vv299: +// 215 "scanner.re" + { + token->opcode = PHVOLT_T_ELSEIF; + return 0; + } +// 4454 "scanner.c" +vv300: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv301; + default: goto vv101; + } +vv301: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { case '0': case '1': case '2': @@ -115407,1761 +122243,744 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case '6': case '7': case '8': - case '9': goto yy2; - case ':': goto yy63; - case '<': goto yy53; - case '=': goto yy55; - case '>': goto yy57; - case '?': goto yy65; + case '9': case 'A': - case 'a': goto yy12; case 'B': - case 'b': goto yy14; case 'C': - case 'c': goto yy16; case 'D': - case 'd': goto yy19; case 'E': - case 'e': goto yy7; case 'F': - case 'f': goto yy8; case 'G': case 'H': + case 'I': case 'J': case 'K': case 'L': + case 'M': + case 'N': + case 'O': case 'P': case 'Q': + case 'R': + case 'S': + case 'T': case 'U': case 'V': + case 'W': case 'X': case 'Y': case 'Z': + case '\\': case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': case 'g': case 'h': + case 'i': case 'j': case 'k': case 'l': + case 'm': + case 'n': + case 'o': case 'p': case 'q': + case 'r': + case 's': + case 't': case 'u': case 'v': + case 'w': case 'x': case 'y': - case 'z': goto yy32; - case 'I': goto yy4; + case 'z': goto vv100; + default: goto vv302; + } +vv302: +// 210 "scanner.re" + { + token->opcode = PHVOLT_T_ELSEFOR; + return 0; + } +// 4537 "scanner.c" +vv303: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': case 'M': - case 'm': goto yy15; case 'N': - case 'n': goto yy10; case 'O': - case 'o': goto yy13; + case 'P': + case 'Q': case 'R': - case 'r': goto yy18; case 'S': - case 's': goto yy9; case 'T': - case 't': goto yy11; + case 'U': + case 'V': case 'W': - case 'w': goto yy17; - case '[': goto yy49; - case '\\': goto yy31; - case ']': goto yy51; - case 'i': goto yy6; - case '{': goto yy20; - case '|': goto yy61; - case '}': goto yy26; - case '~': goto yy39; - default: goto yy73; - } -yy2: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy341; -yy3: - { - token->opcode = PHVOLT_T_INTEGER; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; - return 0; - } -yy4: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'T') { - if (yych <= 'M') { - if (yych == 'F') goto yy303; - goto yy101; - } else { - if (yych <= 'N') goto yy305; - if (yych <= 'R') goto yy101; - if (yych <= 'S') goto yy307; - goto yy309; - } - } else { - if (yych <= 'n') { - if (yych == 'f') goto yy303; - if (yych <= 'm') goto yy101; - goto yy305; - } else { - if (yych <= 'r') goto yy101; - if (yych <= 's') goto yy307; - if (yych <= 't') goto yy309; - goto yy101; - } - } -yy5: - { - token->opcode = PHVOLT_T_IDENTIFIER; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; - return 0; - } -yy6: - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'M') { - if (yych == 'F') goto yy303; - goto yy101; - } else { - if (yych <= 'N') goto yy305; - if (yych <= 'R') goto yy101; - if (yych <= 'S') goto yy307; - goto yy309; - } - } else { - if (yych <= 'n') { - if (yych == 'f') goto yy303; - if (yych <= 'm') goto yy101; - goto yy305; - } else { - if (yych <= 'r') goto yy101; - if (yych <= 's') goto yy310; - if (yych <= 't') goto yy309; - goto yy101; - } - } -yy7: - yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych <= 'N') { - if (yych <= 'K') goto yy101; - if (yych <= 'L') goto yy235; - if (yych <= 'M') goto yy236; - goto yy237; - } else { - if (yych == 'V') goto yy238; - if (yych <= 'W') goto yy101; - goto yy239; - } - } else { - if (yych <= 'n') { - if (yych <= 'k') goto yy101; - if (yych <= 'l') goto yy235; - if (yych <= 'm') goto yy236; - goto yy237; - } else { - if (yych <= 'v') { - if (yych <= 'u') goto yy101; - goto yy238; - } else { - if (yych == 'x') goto yy239; - goto yy101; - } - } - } -yy8: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy227; - if (yych <= 'N') goto yy101; - goto yy228; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy101; - goto yy227; - } else { - if (yych == 'o') goto yy228; - goto yy101; - } - } -yy9: - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'C') goto yy218; - if (yych <= 'D') goto yy101; - goto yy219; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - goto yy218; - } else { - if (yych == 'e') goto yy219; - goto yy101; - } - } -yy10: - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'O') goto yy205; - if (yych <= 'T') goto yy101; - goto yy206; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy101; - goto yy205; - } else { - if (yych == 'u') goto yy206; - goto yy101; - } - } -yy11: - yych = *++YYCURSOR; - if (yych == 'R') goto yy201; - if (yych == 'r') goto yy201; - goto yy101; -yy12: - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'N') goto yy188; - if (yych <= 'T') goto yy101; - goto yy189; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy101; - goto yy188; - } else { - if (yych == 'u') goto yy189; - goto yy101; - } - } -yy13: - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'D') goto yy183; - if (yych <= 'Q') goto yy101; - goto yy184; - } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy101; - goto yy183; - } else { - if (yych == 'r') goto yy184; - goto yy101; - } - } -yy14: - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'L') goto yy173; - if (yych <= 'Q') goto yy101; - goto yy174; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy101; - goto yy173; - } else { - if (yych == 'r') goto yy174; - goto yy101; - } - } -yy15: - yych = *++YYCURSOR; - if (yych == 'A') goto yy168; - if (yych == 'a') goto yy168; - goto yy101; -yy16: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy152; - if (yych <= 'N') goto yy101; - goto yy153; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy101; - goto yy152; - } else { - if (yych == 'o') goto yy153; - goto yy101; - } - } -yy17: - yych = *++YYCURSOR; - if (yych == 'I') goto yy148; - if (yych == 'i') goto yy148; - goto yy101; -yy18: - yych = *++YYCURSOR; - if (yych == 'E') goto yy142; - if (yych == 'e') goto yy142; - goto yy101; -yy19: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'E') goto yy133; - if (yych <= 'N') goto yy101; - goto yy134; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy101; - goto yy133; - } else { - if (yych == 'o') goto yy134; - goto yy101; - } - } -yy20: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '%') goto yy127; - if (yych == '{') goto yy125; - { - token->opcode = PHVOLT_T_CBRACKET_OPEN; - return 0; - } -yy22: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '}') goto yy123; - { - token->opcode = PHVOLT_T_MOD; - return 0; - } -yy24: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { - if (yych == '%') goto yy118; - if (yych >= '-') goto yy115; - } else { - if (yych <= '=') { - if (yych >= '=') goto yy113; - } else { - if (yych == '}') goto yy117; - } - } -yy25: - { - token->opcode = PHVOLT_T_SUB; - return 0; - } -yy26: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '}') goto yy111; - { - token->opcode = PHVOLT_T_CBRACKET_CLOSE; - return 0; - } -yy28: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych >= 0x01) goto yy109; -yy29: - { - status = PHVOLT_SCANNER_RETCODE_ERR; - break; - } -yy30: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy29; - goto yy103; -yy31: - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') goto yy29; - if (yych <= 'Z') goto yy100; - goto yy29; - } else { - if (yych == '`') goto yy29; - if (yych <= 'z') goto yy100; - goto yy29; - } -yy32: - yych = *++YYCURSOR; - goto yy101; -yy33: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '+') goto yy98; - if (yych == '=') goto yy96; - { - token->opcode = PHVOLT_T_ADD; - return 0; - } -yy35: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy94; - { - token->opcode = PHVOLT_T_MUL; - return 0; - } -yy37: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy92; - { - token->opcode = PHVOLT_T_DIV; - return 0; - } -yy39: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_CONCAT; - return 0; - } -yy41: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '.') goto yy90; - { - token->opcode = PHVOLT_T_DOT; - return 0; - } -yy43: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_COMMA; - return 0; - } -yy45: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_OPEN; - return 0; - } -yy47: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_CLOSE; - return 0; - } -yy49: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_OPEN; - return 0; - } -yy51: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_CLOSE; - return 0; - } -yy53: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '<') goto yy54; - if (yych <= '=') goto yy88; - if (yych <= '>') goto yy86; -yy54: - { - token->opcode = PHVOLT_T_LESS; - return 0; - } -yy55: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy82; - { - token->opcode = PHVOLT_T_ASSIGN; - return 0; - } -yy57: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy80; - { - token->opcode = PHVOLT_T_GREATER; - return 0; - } -yy59: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy76; - { - token->opcode = PHVOLT_T_NOT; - return 0; - } -yy61: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PIPE; - return 0; - } -yy63: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_COLON; - return 0; - } -yy65: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_QUESTION; - return 0; - } -yy67: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy75; -yy68: - { - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -yy69: - ++YYCURSOR; - { - s->active_line++; - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -yy71: - ++YYCURSOR; - { - status = PHVOLT_SCANNER_RETCODE_EOF; - break; - } -yy73: - yych = *++YYCURSOR; - goto yy29; -yy74: - ++YYCURSOR; - yych = *YYCURSOR; -yy75: - if (yybm[0+yych] & 4) { - goto yy74; - } - goto yy68; -yy76: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy78; - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy78: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_NOTIDENTICAL; - return 0; - } -yy80: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_GREATEREQUAL; - return 0; - } -yy82: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy84; - { - token->opcode = PHVOLT_T_EQUALS; - return 0; - } -yy84: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_IDENTICAL; - return 0; - } -yy86: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy88: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_LESSEQUAL; - return 0; - } -yy90: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_RANGE; - return 0; - } -yy92: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_DIV_ASSIGN; - return 0; - } -yy94: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_MUL_ASSIGN; - return 0; - } -yy96: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_ADD_ASSIGN; - return 0; - } -yy98: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_INCR; - return 0; - } -yy100: - ++YYCURSOR; - yych = *YYCURSOR; -yy101: - if (yybm[0+yych] & 8) { - goto yy100; - } - goto yy5; -yy102: - ++YYCURSOR; - yych = *YYCURSOR; -yy103: - if (yybm[0+yych] & 16) { - goto yy102; - } - if (yych <= 0x00) goto yy104; - if (yych <= '[') goto yy106; - goto yy105; -yy104: - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy3; - } else { - goto yy25; - } - } else { - if (yyaccept <= 2) { - goto yy29; - } else { - goto yy308; - } - } -yy105: - ++YYCURSOR; - yych = *YYCURSOR; - if (yych == '\n') goto yy104; - goto yy102; -yy106: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_STRING; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; - return 0; - } -yy108: - ++YYCURSOR; - yych = *YYCURSOR; -yy109: - if (yybm[0+yych] & 32) { - goto yy108; - } - if (yych <= 0x00) goto yy104; - if (yych <= '[') goto yy106; - ++YYCURSOR; - yych = *YYCURSOR; - if (yych == '\n') goto yy104; - goto yy108; -yy111: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -yy113: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SUB_ASSIGN; - return 0; - } -yy115: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_DECR; - return 0; - } -yy117: - yych = *++YYCURSOR; - if (yych == '}') goto yy121; - goto yy104; -yy118: - yych = *++YYCURSOR; - if (yych != '}') goto yy104; - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -yy121: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -yy123: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -yy125: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy131; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -yy127: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy129; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -yy129: - ++YYCURSOR; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -yy131: - ++YYCURSOR; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -yy133: - yych = *++YYCURSOR; - if (yych == 'F') goto yy136; - if (yych == 'f') goto yy136; - goto yy101; -yy134: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_DO; - return 0; - } -yy136: - yych = *++YYCURSOR; - if (yych == 'I') goto yy137; - if (yych != 'i') goto yy101; -yy137: - yych = *++YYCURSOR; - if (yych == 'N') goto yy138; - if (yych != 'n') goto yy101; -yy138: - yych = *++YYCURSOR; - if (yych == 'E') goto yy139; - if (yych != 'e') goto yy101; -yy139: - yych = *++YYCURSOR; - if (yych == 'D') goto yy140; - if (yych != 'd') goto yy101; -yy140: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_DEFINED; - return 0; - } -yy142: - yych = *++YYCURSOR; - if (yych == 'T') goto yy143; - if (yych != 't') goto yy101; -yy143: - yych = *++YYCURSOR; - if (yych == 'U') goto yy144; - if (yych != 'u') goto yy101; -yy144: - yych = *++YYCURSOR; - if (yych == 'R') goto yy145; - if (yych != 'r') goto yy101; -yy145: - yych = *++YYCURSOR; - if (yych == 'N') goto yy146; - if (yych != 'n') goto yy101; -yy146: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_RETURN; - return 0; - } -yy148: - yych = *++YYCURSOR; - if (yych == 'T') goto yy149; - if (yych != 't') goto yy101; -yy149: - yych = *++YYCURSOR; - if (yych == 'H') goto yy150; - if (yych != 'h') goto yy101; -yy150: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_WITH; - return 0; - } -yy152: - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == 'C') goto yy162; - if (yych <= 'K') goto yy101; - goto yy161; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - goto yy162; - } else { - if (yych == 'l') goto yy161; - goto yy101; - } - } -yy153: - yych = *++YYCURSOR; - if (yych == 'N') goto yy154; - if (yych != 'n') goto yy101; -yy154: - yych = *++YYCURSOR; - if (yych == 'T') goto yy155; - if (yych != 't') goto yy101; -yy155: - yych = *++YYCURSOR; - if (yych == 'I') goto yy156; - if (yych != 'i') goto yy101; -yy156: - yych = *++YYCURSOR; - if (yych == 'N') goto yy157; - if (yych != 'n') goto yy101; -yy157: - yych = *++YYCURSOR; - if (yych == 'U') goto yy158; - if (yych != 'u') goto yy101; -yy158: - yych = *++YYCURSOR; - if (yych == 'E') goto yy159; - if (yych != 'e') goto yy101; -yy159: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CONTINUE; - return 0; - } -yy161: - yych = *++YYCURSOR; - if (yych == 'L') goto yy166; - if (yych == 'l') goto yy166; - goto yy101; -yy162: - yych = *++YYCURSOR; - if (yych == 'H') goto yy163; - if (yych != 'h') goto yy101; -yy163: - yych = *++YYCURSOR; - if (yych == 'E') goto yy164; - if (yych != 'e') goto yy101; -yy164: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CACHE; - return 0; - } -yy166: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CALL; - return 0; - } -yy168: - yych = *++YYCURSOR; - if (yych == 'C') goto yy169; - if (yych != 'c') goto yy101; -yy169: - yych = *++YYCURSOR; - if (yych == 'R') goto yy170; - if (yych != 'r') goto yy101; -yy170: - yych = *++YYCURSOR; - if (yych == 'O') goto yy171; - if (yych != 'o') goto yy101; -yy171: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_MACRO; - return 0; - } -yy173: - yych = *++YYCURSOR; - if (yych == 'O') goto yy179; - if (yych == 'o') goto yy179; - goto yy101; -yy174: - yych = *++YYCURSOR; - if (yych == 'E') goto yy175; - if (yych != 'e') goto yy101; -yy175: - yych = *++YYCURSOR; - if (yych == 'A') goto yy176; - if (yych != 'a') goto yy101; -yy176: - yych = *++YYCURSOR; - if (yych == 'K') goto yy177; - if (yych != 'k') goto yy101; -yy177: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_BREAK; - return 0; - } -yy179: - yych = *++YYCURSOR; - if (yych == 'C') goto yy180; - if (yych != 'c') goto yy101; -yy180: - yych = *++YYCURSOR; - if (yych == 'K') goto yy181; - if (yych != 'k') goto yy101; -yy181: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_BLOCK; - return 0; - } -yy183: - yych = *++YYCURSOR; - if (yych == 'D') goto yy186; - if (yych == 'd') goto yy186; - goto yy101; -yy184: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_OR; - return 0; - } -yy186: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_ODD; - return 0; - } -yy188: - yych = *++YYCURSOR; - if (yych == 'D') goto yy199; - if (yych == 'd') goto yy199; - goto yy101; -yy189: - yych = *++YYCURSOR; - if (yych == 'T') goto yy190; - if (yych != 't') goto yy101; -yy190: - yych = *++YYCURSOR; - if (yych == 'O') goto yy191; - if (yych != 'o') goto yy101; -yy191: - yych = *++YYCURSOR; - if (yych == 'E') goto yy192; - if (yych != 'e') goto yy101; -yy192: - yych = *++YYCURSOR; - if (yych == 'S') goto yy193; - if (yych != 's') goto yy101; -yy193: - yych = *++YYCURSOR; - if (yych == 'C') goto yy194; - if (yych != 'c') goto yy101; -yy194: - yych = *++YYCURSOR; - if (yych == 'A') goto yy195; - if (yych != 'a') goto yy101; -yy195: - yych = *++YYCURSOR; - if (yych == 'P') goto yy196; - if (yych != 'p') goto yy101; -yy196: - yych = *++YYCURSOR; - if (yych == 'E') goto yy197; - if (yych != 'e') goto yy101; -yy197: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv304; } +vv304: +// 199 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_AUTOESCAPE; - return 0; - } -yy199: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_AND; + token->opcode = PHVOLT_T_IF; return 0; } -yy201: - yych = *++YYCURSOR; - if (yych == 'U') goto yy202; - if (yych != 'u') goto yy101; -yy202: - yych = *++YYCURSOR; - if (yych == 'E') goto yy203; - if (yych != 'e') goto yy101; -yy203: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4614 "scanner.c" +vv305: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + case 'C': + case 'c': goto vv333; + default: goto vv306; } +vv306: +// 236 "scanner.re" { - token->opcode = PHVOLT_T_TRUE; + token->opcode = PHVOLT_T_IN; return 0; } -yy205: - yych = *++YYCURSOR; - if (yych == 'T') goto yy216; - if (yych == 't') goto yy216; - goto yy101; -yy206: - yych = *++YYCURSOR; - if (yych <= 'M') { - if (yych <= 'K') goto yy101; - if (yych >= 'M') goto yy208; - } else { - if (yych <= 'k') goto yy101; - if (yych <= 'l') goto yy207; - if (yych <= 'm') goto yy208; - goto yy101; - } -yy207: - yych = *++YYCURSOR; - if (yych == 'L') goto yy214; - if (yych == 'l') goto yy214; - goto yy101; -yy208: - yych = *++YYCURSOR; - if (yych == 'E') goto yy209; - if (yych != 'e') goto yy101; -yy209: - yych = *++YYCURSOR; - if (yych == 'R') goto yy210; - if (yych != 'r') goto yy101; -yy210: - yych = *++YYCURSOR; - if (yych == 'I') goto yy211; - if (yych != 'i') goto yy101; -yy211: - yych = *++YYCURSOR; - if (yych == 'C') goto yy212; - if (yych != 'c') goto yy101; -yy212: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4690 "scanner.c" +vv307: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv332; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv308; } +vv308: +// 332 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_NUMERIC; + token->opcode = PHVOLT_T_IS; return 0; } -yy214: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4769 "scanner.c" +vv309: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv325; + default: goto vv101; + } +vv310: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv311; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv308; + } +vv311: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': goto vv315; + case 'n': goto vv312; + default: goto vv314; + } +vv312: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': goto vv316; + case 'o': goto vv323; + default: goto vv104; + } +vv313: + ++VVCURSOR; + vvch = *VVCURSOR; +vv314: + switch (vvch) { + case ' ': goto vv313; + case 'n': goto vv319; + default: goto vv104; + } +vv315: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv316; + default: goto vv104; } - { - token->opcode = PHVOLT_T_NULL; - return 0; - } -yy216: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv316: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv317; + default: goto vv104; } +vv317: + ++VVCURSOR; +vv318: +// 320 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_NOT; - return 0; - } -yy218: - yych = *++YYCURSOR; - if (yych == 'A') goto yy222; - if (yych == 'a') goto yy222; - goto yy101; -yy219: - yych = *++YYCURSOR; - if (yych == 'T') goto yy220; - if (yych != 't') goto yy101; -yy220: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_SET; + token->opcode = PHVOLT_T_NOTEQUALS; return 0; } -yy222: - yych = *++YYCURSOR; - if (yych == 'L') goto yy223; - if (yych != 'l') goto yy101; -yy223: - yych = *++YYCURSOR; - if (yych == 'A') goto yy224; - if (yych != 'a') goto yy101; -yy224: - yych = *++YYCURSOR; - if (yych == 'R') goto yy225; - if (yych != 'r') goto yy101; -yy225: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } +// 4894 "scanner.c" +vv319: + vvch = *++VVCURSOR; + switch (vvch) { + case 'o': goto vv320; + default: goto vv104; + } +vv320: + vvch = *++VVCURSOR; + switch (vvch) { + case 't': goto vv321; + default: goto vv104; + } +vv321: + ++VVCURSOR; +// 326 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_SCALAR; + token->opcode = PHVOLT_T_NOTEQUALS; return 0; } -yy227: - yych = *++YYCURSOR; - if (yych == 'L') goto yy231; - if (yych == 'l') goto yy231; - goto yy101; -yy228: - yych = *++YYCURSOR; - if (yych == 'R') goto yy229; - if (yych != 'r') goto yy101; -yy229: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4915 "scanner.c" +vv323: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': goto vv317; + case 't': goto vv324; + default: goto vv104; + } +vv324: + vvch = *++VVCURSOR; + goto vv318; +vv325: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv326; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_FOR; - return 0; - } -yy231: - yych = *++YYCURSOR; - if (yych == 'S') goto yy232; - if (yych != 's') goto yy101; -yy232: - yych = *++YYCURSOR; - if (yych == 'E') goto yy233; - if (yych != 'e') goto yy101; -yy233: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv326: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv327; + default: goto vv101; } - { - token->opcode = PHVOLT_T_FALSE; - return 0; - } -yy235: - yych = *++YYCURSOR; - if (yych == 'S') goto yy293; - if (yych == 's') goto yy293; - goto yy101; -yy236: - yych = *++YYCURSOR; - if (yych == 'P') goto yy289; - if (yych == 'p') goto yy289; - goto yy101; -yy237: - yych = *++YYCURSOR; - if (yych == 'D') goto yy249; - if (yych == 'd') goto yy249; - goto yy101; -yy238: - yych = *++YYCURSOR; - if (yych == 'E') goto yy246; - if (yych == 'e') goto yy246; - goto yy101; -yy239: - yych = *++YYCURSOR; - if (yych == 'T') goto yy240; - if (yych != 't') goto yy101; -yy240: - yych = *++YYCURSOR; - if (yych == 'E') goto yy241; - if (yych != 'e') goto yy101; -yy241: - yych = *++YYCURSOR; - if (yych == 'N') goto yy242; - if (yych != 'n') goto yy101; -yy242: - yych = *++YYCURSOR; - if (yych == 'D') goto yy243; - if (yych != 'd') goto yy101; -yy243: - yych = *++YYCURSOR; - if (yych == 'S') goto yy244; - if (yych != 's') goto yy101; -yy244: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv327: + vvch = *++VVCURSOR; + switch (vvch) { + case 'B': + case 'b': goto vv328; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_EXTENDS; - return 0; - } -yy246: - yych = *++YYCURSOR; - if (yych == 'N') goto yy247; - if (yych != 'n') goto yy101; -yy247: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv328: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv329; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_EVEN; - return 0; - } -yy249: - yych = *++YYCURSOR; - switch (yych) { +vv329: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv330; + default: goto vv101; + } +vv330: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': case 'A': - case 'a': goto yy250; case 'B': - case 'b': goto yy251; case 'C': - case 'c': goto yy252; + case 'D': + case 'E': case 'F': - case 'f': goto yy253; + case 'G': + case 'H': case 'I': - case 'i': goto yy254; + case 'J': + case 'K': + case 'L': case 'M': - case 'm': goto yy255; - default: goto yy101; - } -yy250: - yych = *++YYCURSOR; - if (yych == 'U') goto yy279; - if (yych == 'u') goto yy279; - goto yy101; -yy251: - yych = *++YYCURSOR; - if (yych == 'L') goto yy274; - if (yych == 'l') goto yy274; - goto yy101; -yy252: - yych = *++YYCURSOR; - if (yych == 'A') goto yy266; - if (yych == 'a') goto yy266; - goto yy101; -yy253: - yych = *++YYCURSOR; - if (yych == 'O') goto yy263; - if (yych == 'o') goto yy263; - goto yy101; -yy254: - yych = *++YYCURSOR; - if (yych == 'F') goto yy261; - if (yych == 'f') goto yy261; - goto yy101; -yy255: - yych = *++YYCURSOR; - if (yych == 'A') goto yy256; - if (yych != 'a') goto yy101; -yy256: - yych = *++YYCURSOR; - if (yych == 'C') goto yy257; - if (yych != 'c') goto yy101; -yy257: - yych = *++YYCURSOR; - if (yych == 'R') goto yy258; - if (yych != 'r') goto yy101; -yy258: - yych = *++YYCURSOR; - if (yych == 'O') goto yy259; - if (yych != 'o') goto yy101; -yy259: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDMACRO; - return 0; - } -yy261: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDIF; - return 0; - } -yy263: - yych = *++YYCURSOR; - if (yych == 'R') goto yy264; - if (yych != 'r') goto yy101; -yy264: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDFOR; - return 0; - } -yy266: - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == 'C') goto yy267; - if (yych <= 'K') goto yy101; - goto yy268; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - } else { - if (yych == 'l') goto yy268; - goto yy101; - } - } -yy267: - yych = *++YYCURSOR; - if (yych == 'H') goto yy271; - if (yych == 'h') goto yy271; - goto yy101; -yy268: - yych = *++YYCURSOR; - if (yych == 'L') goto yy269; - if (yych != 'l') goto yy101; -yy269: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDCALL; - return 0; - } -yy271: - yych = *++YYCURSOR; - if (yych == 'E') goto yy272; - if (yych != 'e') goto yy101; -yy272: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDCACHE; - return 0; - } -yy274: - yych = *++YYCURSOR; - if (yych == 'O') goto yy275; - if (yych != 'o') goto yy101; -yy275: - yych = *++YYCURSOR; - if (yych == 'C') goto yy276; - if (yych != 'c') goto yy101; -yy276: - yych = *++YYCURSOR; - if (yych == 'K') goto yy277; - if (yych != 'k') goto yy101; -yy277: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDBLOCK; - return 0; - } -yy279: - yych = *++YYCURSOR; - if (yych == 'T') goto yy280; - if (yych != 't') goto yy101; -yy280: - yych = *++YYCURSOR; - if (yych == 'O') goto yy281; - if (yych != 'o') goto yy101; -yy281: - yych = *++YYCURSOR; - if (yych == 'E') goto yy282; - if (yych != 'e') goto yy101; -yy282: - yych = *++YYCURSOR; - if (yych == 'S') goto yy283; - if (yych != 's') goto yy101; -yy283: - yych = *++YYCURSOR; - if (yych == 'C') goto yy284; - if (yych != 'c') goto yy101; -yy284: - yych = *++YYCURSOR; - if (yych == 'A') goto yy285; - if (yych != 'a') goto yy101; -yy285: - yych = *++YYCURSOR; - if (yych == 'P') goto yy286; - if (yych != 'p') goto yy101; -yy286: - yych = *++YYCURSOR; - if (yych == 'E') goto yy287; - if (yych != 'e') goto yy101; -yy287: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_ENDAUTOESCAPE; - return 0; - } -yy289: - yych = *++YYCURSOR; - if (yych == 'T') goto yy290; - if (yych != 't') goto yy101; -yy290: - yych = *++YYCURSOR; - if (yych == 'Y') goto yy291; - if (yych != 'y') goto yy101; -yy291: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv331; } +vv331: +// 386 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_EMPTY; + token->opcode = PHVOLT_T_ITERABLE; return 0; } -yy293: - yych = *++YYCURSOR; - if (yych == 'E') goto yy294; - if (yych != 'e') goto yy101; -yy294: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '[') { - if (yych <= 'E') { - if (yych <= '/') goto yy295; - if (yych <= '9') goto yy100; - if (yych >= 'A') goto yy100; - } else { - if (yych <= 'H') { - if (yych <= 'F') goto yy296; - goto yy100; - } else { - if (yych <= 'I') goto yy297; - if (yych <= 'Z') goto yy100; - } - } - } else { - if (yych <= 'e') { - if (yych <= '^') { - if (yych <= '\\') goto yy100; - } else { - if (yych != '`') goto yy100; - } - } else { - if (yych <= 'h') { - if (yych <= 'f') goto yy296; - goto yy100; - } else { - if (yych <= 'i') goto yy297; - if (yych <= 'z') goto yy100; - } - } +// 5037 "scanner.c" +vv332: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv315; + default: goto vv104; } -yy295: - { - token->opcode = PHVOLT_T_ELSE; - return 0; - } -yy296: - yych = *++YYCURSOR; - if (yych == 'O') goto yy300; - if (yych == 'o') goto yy300; - goto yy101; -yy297: - yych = *++YYCURSOR; - if (yych == 'F') goto yy298; - if (yych != 'f') goto yy101; -yy298: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv333: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv334; + default: goto vv101; } - { - token->opcode = PHVOLT_T_ELSEIF; - return 0; - } -yy300: - yych = *++YYCURSOR; - if (yych == 'R') goto yy301; - if (yych != 'r') goto yy101; -yy301: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv334: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv335; + default: goto vv101; } - { - token->opcode = PHVOLT_T_ELSEFOR; - return 0; - } -yy303: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv335: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv336; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_IF; - return 0; - } -yy305: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '[') { - if (yych <= '@') { - if (yych <= '/') goto yy306; - if (yych <= '9') goto yy100; - } else { - if (yych == 'C') goto yy333; - if (yych <= 'Z') goto yy100; - } - } else { - if (yych <= '`') { - if (yych <= '\\') goto yy100; - if (yych == '_') goto yy100; - } else { - if (yych == 'c') goto yy333; - if (yych <= 'z') goto yy100; - } +vv336: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv337; + default: goto vv101; } -yy306: - { - token->opcode = PHVOLT_T_IN; - return 0; - } -yy307: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy100; +vv337: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv338; } - if (yych == ' ') goto yy332; -yy308: +vv338: +// 350 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_IS; - return 0; - } -yy309: - yych = *++YYCURSOR; - if (yych == 'E') goto yy325; - if (yych == 'e') goto yy325; - goto yy101; -yy310: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy100; - } - if (yych != ' ') goto yy308; - yych = *++YYCURSOR; - if (yych == 'N') goto yy315; - if (yych != 'n') goto yy314; - yych = *++YYCURSOR; - if (yych == 'O') goto yy316; - if (yych == 'o') goto yy323; - goto yy104; -yy313: - ++YYCURSOR; - yych = *YYCURSOR; -yy314: - if (yybm[0+yych] & 64) { - goto yy313; - } - if (yych == 'n') goto yy319; - goto yy104; -yy315: - yych = *++YYCURSOR; - if (yych == 'O') goto yy316; - if (yych != 'o') goto yy104; -yy316: - yych = *++YYCURSOR; - if (yych == 'T') goto yy317; - if (yych != 't') goto yy104; -yy317: - ++YYCURSOR; -yy318: - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy319: - yych = *++YYCURSOR; - if (yych != 'o') goto yy104; - yych = *++YYCURSOR; - if (yych != 't') goto yy104; - ++YYCURSOR; - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; + token->opcode = PHVOLT_T_INCLUDE; return 0; } -yy323: - yych = *++YYCURSOR; - if (yych == 'T') goto yy317; - if (yych != 't') goto yy104; - yych = *++YYCURSOR; - goto yy318; -yy325: - yych = *++YYCURSOR; - if (yych == 'R') goto yy326; - if (yych != 'r') goto yy101; -yy326: - yych = *++YYCURSOR; - if (yych == 'A') goto yy327; - if (yych != 'a') goto yy101; -yy327: - yych = *++YYCURSOR; - if (yych == 'B') goto yy328; - if (yych != 'b') goto yy101; -yy328: - yych = *++YYCURSOR; - if (yych == 'L') goto yy329; - if (yych != 'l') goto yy101; -yy329: - yych = *++YYCURSOR; - if (yych == 'E') goto yy330; - if (yych != 'e') goto yy101; -yy330: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 5149 "scanner.c" +vv339: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv342; + default: goto vv104; + } +vv340: + vvaccept = 0; + VVMARKER = ++VVCURSOR; + vvch = *VVCURSOR; +vv341: + switch (vvch) { + case '.': goto vv339; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv340; + default: goto vv3; } - { - s->statement_position++; - token->opcode = PHVOLT_T_ITERABLE; - return 0; - } -yy332: - yych = *++YYCURSOR; - if (yych == 'N') goto yy315; - if (yych == 'n') goto yy315; - goto yy104; -yy333: - yych = *++YYCURSOR; - if (yych == 'L') goto yy334; - if (yych != 'l') goto yy101; -yy334: - yych = *++YYCURSOR; - if (yych == 'U') goto yy335; - if (yych != 'u') goto yy101; -yy335: - yych = *++YYCURSOR; - if (yych == 'D') goto yy336; - if (yych != 'd') goto yy101; -yy336: - yych = *++YYCURSOR; - if (yych == 'E') goto yy337; - if (yych != 'e') goto yy101; -yy337: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv342: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv342; + default: goto vv344; } - { - s->statement_position++; - token->opcode = PHVOLT_T_INCLUDE; - return 0; - } -yy339: - yych = *++YYCURSOR; - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy342; - goto yy104; -yy340: - yyaccept = 0; - YYMARKER = ++YYCURSOR; - yych = *YYCURSOR; -yy341: - if (yybm[0+yych] & 128) { - goto yy340; - } - if (yych == '.') goto yy339; - goto yy3; -yy342: - ++YYCURSOR; - yych = *YYCURSOR; - if (yych <= '/') goto yy344; - if (yych <= '9') goto yy342; -yy344: +vv344: +// 191 "scanner.re" { token->opcode = PHVOLT_T_DOUBLE; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; return 0; } +// 5209 "scanner.c" } +// 699 "scanner.re" } @@ -117172,58 +122991,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_AdapterInterface) { - - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, AdapterInterface, phalcon, paginator_adapterinterface, phalcon_paginator_adapterinterface_method_entry); - - return SUCCESS; - -} - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, __construct); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setCurrentPage); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getPaginate); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setLimit); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getLimit); - - - - -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { - - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; - -} - - - - #ifdef HAVE_CONFIG_H #endif @@ -117235,43 +123002,19 @@ ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_model_method_entry, 0); +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter) { - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator, Adapter, phalcon, paginator_adapter, phalcon_paginator_adapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_paginator_adapter_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_paginator_adapter_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_model_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { - - zval *config_param = NULL, *page, *limit; - zval *config = NULL; - - zephir_fetch_params(0, 1, 0, &config_param); - - config = config_param; - - - - zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); - if (zephir_array_isset_string_fetch(&limit, config, SS("limit"), 1 TSRMLS_CC)) { - zephir_update_property_this(this_ptr, SL("_limitRows"), limit TSRMLS_CC); - } - if (zephir_array_isset_string_fetch(&page, config, SS("page"), 1 TSRMLS_CC)) { - zephir_update_property_this(this_ptr, SL("_page"), page TSRMLS_CC); - } - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage) { +static PHP_METHOD(Phalcon_Paginator_Adapter, setCurrentPage) { zval *page_param = NULL, *_0; int page; @@ -117288,7 +123031,7 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit) { +static PHP_METHOD(Phalcon_Paginator_Adapter, setLimit) { zval *limitRows_param = NULL, *_0; int limitRows; @@ -117305,18 +123048,116 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getLimit) { +static PHP_METHOD(Phalcon_Paginator_Adapter, getLimit) { RETURN_MEMBER(this_ptr, "_limitRows"); } + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_AdapterInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, AdapterInterface, phalcon, paginator_adapterinterface, phalcon_paginator_adapterinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, __construct); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setCurrentPage); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getPaginate); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setLimit); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getLimit); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_model_method_entry, 0); + + zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_paginator_adapter_model_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { + + zval *config_param = NULL, *page, *limit; + zval *config = NULL; + + zephir_fetch_params(0, 1, 0, &config_param); + + config = config_param; + + + + zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); + if (zephir_array_isset_string_fetch(&limit, config, SS("limit"), 1 TSRMLS_CC)) { + zephir_update_property_this(this_ptr, SL("_limitRows"), limit TSRMLS_CC); + } + if (zephir_array_isset_string_fetch(&page, config, SS("page"), 1 TSRMLS_CC)) { + zephir_update_property_this(this_ptr, SL("_page"), page TSRMLS_CC); + } + +} + static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { - zephir_fcall_cache_entry *_3 = NULL, *_5 = NULL; - int pageNumber, show, n, start, lastShowPage, i, next, pagesTotal, before, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *pageItems, *page, *valid = NULL, *_0, *_1, *_2 = NULL, *_4 = NULL, *_6; + zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; + int pageNumber, show, n, start, lastShowPage, i, next, totalPages, before, ZEPHIR_LAST_CALL_STATUS; + zval *config, *items, *pageItems, *page, *_0, *_1, *_2 = NULL, *_3 = NULL, *_4 = NULL, *_7; ZEPHIR_MM_GROW(); @@ -117326,19 +123167,19 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_OBS_VAR(config); zephir_read_property_this(&config, this_ptr, SL("_config"), PH_NOISY_CC); ZEPHIR_OBS_VAR(items); - zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/model.zep", 115 TSRMLS_CC); + zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/model.zep", 80 TSRMLS_CC); ZEPHIR_OBS_VAR(_1); zephir_read_property_this(&_1, this_ptr, SL("_page"), PH_NOISY_CC); pageNumber = zephir_get_intval(_1); if (Z_TYPE_P(items) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/model.zep", 119); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/model.zep", 84); return; } if (pageNumber <= 0) { pageNumber = 1; } if (show <= 0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "The start page number is zero or less", "phalcon/paginator/adapter/model.zep", 129); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "The start page number is zero or less", "phalcon/paginator/adapter/model.zep", 94); return; } n = zephir_fast_count_int(items TSRMLS_CC); @@ -117347,9 +123188,9 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(pageItems); array_init(pageItems); if (zephir_safe_mod_long_long(n, show TSRMLS_CC) != 0) { - pagesTotal = (int) ((zephir_safe_div_long_long(n, show TSRMLS_CC) + (double) (1))); + totalPages = (int) ((zephir_safe_div_long_long(n, show TSRMLS_CC) + (double) (1))); } else { - pagesTotal = (int) (zephir_safe_div_long_long(n, show TSRMLS_CC)); + totalPages = (int) (zephir_safe_div_long_long(n, show TSRMLS_CC)); } if (n > 0) { if (start <= n) { @@ -117366,23 +123207,25 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { } i = 1; while (1) { - ZEPHIR_CALL_METHOD(&valid, items, "valid", &_3); + ZEPHIR_CALL_METHOD(&_3, items, "valid", NULL); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(valid)) { + if (!(zephir_is_true(_3))) { break; } ZEPHIR_CALL_METHOD(&_4, items, "current", &_5); zephir_check_call_status(); - zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 162); + zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 121); if (i >= show) { break; } i++; + ZEPHIR_CALL_METHOD(NULL, items, "next", &_6); + zephir_check_call_status(); } } next = (pageNumber + 1); - if (next > pagesTotal) { - next = pagesTotal; + if (next > totalPages) { + next = totalPages; } if (pageNumber > 1) { before = (pageNumber - 1); @@ -117392,29 +123235,29 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(page); object_init(page); zephir_update_property_zval(page, SL("items"), pageItems TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, 1); - zephir_update_property_zval(page, SL("first"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, before); - zephir_update_property_zval(page, SL("before"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pageNumber); - zephir_update_property_zval(page, SL("current"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pagesTotal); - zephir_update_property_zval(page, SL("last"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, next); - zephir_update_property_zval(page, SL("next"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pagesTotal); - zephir_update_property_zval(page, SL("total_pages"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, n); - zephir_update_property_zval(page, SL("total_items"), _6 TSRMLS_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _6 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, 1); + zephir_update_property_zval(page, SL("first"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, before); + zephir_update_property_zval(page, SL("before"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, pageNumber); + zephir_update_property_zval(page, SL("current"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("last"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, next); + zephir_update_property_zval(page, SL("next"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("total_pages"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, n); + zephir_update_property_zval(page, SL("total_items"), _7 TSRMLS_CC); + _7 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _7 TSRMLS_CC); RETURN_CCTOR(page); } @@ -117435,14 +123278,10 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_nativearray_method_entry, 0); - - zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_nativearray_method_entry, 0); zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_nativearray_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; @@ -117470,61 +123309,21 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, __construct) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage) { - - zval *page_param = NULL, *_0; - int page; - - zephir_fetch_params(0, 1, 0, &page_param); - - page = zephir_get_intval(page_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, page); - zephir_update_property_this(this_ptr, SL("_page"), _0 TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setLimit) { - - zval *limitRows_param = NULL, *_0; - int limitRows; - - zephir_fetch_params(0, 1, 0, &limitRows_param); - - limitRows = zephir_get_intval(limitRows_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, limitRows); - zephir_update_property_this(this_ptr, SL("_limitRows"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getLimit) { - - - RETURN_MEMBER(this_ptr, "_limitRows"); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; double roundedTotal; int show, pageNumber, totalPages, number, before, next, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *page, *_0, *_1, _2 = zval_used_for_init, *_3 = NULL, _5, *_6 = NULL, *_8; + zval *config, *items = NULL, *page, *_0, *_1, _2 = zval_used_for_init, *_3 = NULL, _5, *_6 = NULL, *_8; ZEPHIR_MM_GROW(); ZEPHIR_OBS_VAR(config); zephir_read_property_this(&config, this_ptr, SL("_config"), PH_NOISY_CC); ZEPHIR_OBS_VAR(items); - zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/nativearray.zep", 120 TSRMLS_CC); + zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/nativearray.zep", 87 TSRMLS_CC); if (Z_TYPE_P(items) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/nativearray.zep", 123); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/nativearray.zep", 90); return; } ZEPHIR_OBS_VAR(_0); @@ -117536,8 +123335,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { if (pageNumber <= 0) { pageNumber = 1; } - ZEPHIR_INIT_VAR(page); - object_init(page); number = zephir_fast_count_int(items TSRMLS_CC); ZEPHIR_SINIT_VAR(_2); ZVAL_LONG(&_2, show); @@ -117554,20 +123351,20 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZVAL_LONG(&_5, show); ZEPHIR_CALL_FUNCTION(&_6, "array_slice", &_7, items, &_2, &_5); zephir_check_call_status(); - zephir_update_property_zval(page, SL("items"), _6 TSRMLS_CC); + ZEPHIR_CPY_WRT(items, _6); if (pageNumber < totalPages) { next = (pageNumber + 1); } else { next = totalPages; } - ZEPHIR_INIT_ZVAL_NREF(_8); - ZVAL_LONG(_8, next); - zephir_update_property_zval(page, SL("next"), _8 TSRMLS_CC); if (pageNumber > 1) { before = (pageNumber - 1); } else { before = 1; } + ZEPHIR_INIT_VAR(page); + object_init(page); + zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); ZVAL_LONG(_8, 1); zephir_update_property_zval(page, SL("first"), _8 TSRMLS_CC); @@ -117581,6 +123378,9 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZVAL_LONG(_8, totalPages); zephir_update_property_zval(page, SL("last"), _8 TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); + ZVAL_LONG(_8, next); + zephir_update_property_zval(page, SL("next"), _8 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_8); ZVAL_LONG(_8, totalPages); zephir_update_property_zval(page, SL("total_pages"), _8 TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); @@ -117608,16 +123408,12 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_querybuilder_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_querybuilder_method_entry, 0); zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_builder"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_long(phalcon_paginator_adapter_querybuilder_ce, SL("_page"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_querybuilder_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; @@ -117638,20 +123434,18 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); ZEPHIR_OBS_VAR(builder); if (!(zephir_array_isset_string_fetch(&builder, config, SS("builder"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/paginator/adapter/querybuilder.zep", 76); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/paginator/adapter/querybuilder.zep", 67); return; - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, builder); - zephir_check_call_status(); } ZEPHIR_OBS_VAR(limit); if (!(zephir_array_isset_string_fetch(&limit, config, SS("limit"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/paginator/adapter/querybuilder.zep", 82); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/paginator/adapter/querybuilder.zep", 71); return; - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, limit); - zephir_check_call_status(); } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, builder); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, limit); + zephir_check_call_status(); ZEPHIR_OBS_VAR(page); if (zephir_array_isset_string_fetch(&page, config, SS("page"), 0 TSRMLS_CC)) { ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcurrentpage", NULL, page); @@ -117661,23 +123455,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage) { - - zval *currentPage_param = NULL, *_0; - int currentPage; - - zephir_fetch_params(0, 1, 0, ¤tPage_param); - - currentPage = zephir_get_intval(currentPage_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, currentPage); - zephir_update_property_this(this_ptr, SL("_page"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) { @@ -117685,30 +123462,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setLimit) { - - zval *limitRows_param = NULL, *_0; - int limitRows; - - zephir_fetch_params(0, 1, 0, &limitRows_param); - - limitRows = zephir_get_intval(limitRows_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, limitRows); - zephir_update_property_this(this_ptr, SL("_limitRows"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getLimit) { - - - RETURN_MEMBER(this_ptr, "_limitRows"); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder) { zval *builder; @@ -117732,7 +123485,7 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder) { static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { int numberPage, before, ZEPHIR_LAST_CALL_STATUS; - zval *originalBuilder, *builder, *totalBuilder, *totalPages, *limit, *number, *query = NULL, *page, *items = NULL, *totalQuery = NULL, *result = NULL, *row = NULL, *rowcount, *next = NULL, *_0, *_1, *_2 = NULL, *_3, _4, _5; + zval *originalBuilder, *builder, *totalBuilder, *totalPages, *limit, *number, *query = NULL, *page, *items = NULL, *totalQuery = NULL, *result = NULL, *row = NULL, *rowcount, *next = NULL, *_0, *_1 = NULL, *_2, _3, _4, *_5; ZEPHIR_MM_GROW(); @@ -117765,30 +123518,21 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { } ZEPHIR_CALL_METHOD(&query, builder, "getquery", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(page); - object_init(page); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 1); - zephir_update_property_zval(page, SL("first"), _1 TSRMLS_CC); if (numberPage == 1) { before = 1; } else { before = (numberPage - 1); } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, before); - zephir_update_property_zval(page, SL("before"), _1 TSRMLS_CC); ZEPHIR_CALL_METHOD(&items, query, "execute", NULL); zephir_check_call_status(); - zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "COUNT(*) [rowcount]", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(NULL, totalBuilder, "columns", NULL, _2); - zephir_check_temp_parameter(_2); + ZEPHIR_INIT_VAR(_1); + ZVAL_STRING(_1, "COUNT(*) [rowcount]", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(NULL, totalBuilder, "columns", NULL, _1); + zephir_check_temp_parameter(_1); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_2); - ZVAL_NULL(_2); - ZEPHIR_CALL_METHOD(NULL, totalBuilder, "orderby", NULL, _2); + ZEPHIR_INIT_NVAR(_1); + ZVAL_NULL(_1); + ZEPHIR_CALL_METHOD(NULL, totalBuilder, "orderby", NULL, _1); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&totalQuery, totalBuilder, "getquery", NULL); zephir_check_call_status(); @@ -117796,31 +123540,40 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&row, result, "getfirst", NULL); zephir_check_call_status(); - ZEPHIR_OBS_VAR(_3); - zephir_read_property(&_3, row, SL("rowcount"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(_2); + zephir_read_property(&_2, row, SL("rowcount"), PH_NOISY_CC); ZEPHIR_INIT_VAR(rowcount); - ZVAL_LONG(rowcount, zephir_get_intval(_3)); + ZVAL_LONG(rowcount, zephir_get_intval(_2)); + ZEPHIR_SINIT_VAR(_3); + div_function(&_3, rowcount, limit TSRMLS_CC); ZEPHIR_SINIT_VAR(_4); - div_function(&_4, rowcount, limit TSRMLS_CC); - ZEPHIR_SINIT_VAR(_5); - ZVAL_DOUBLE(&_5, zephir_ceil(&_4 TSRMLS_CC)); + ZVAL_DOUBLE(&_4, zephir_ceil(&_3 TSRMLS_CC)); ZEPHIR_INIT_VAR(totalPages); - ZVAL_LONG(totalPages, zephir_get_intval(&_5)); + ZVAL_LONG(totalPages, zephir_get_intval(&_4)); if (ZEPHIR_GT_LONG(totalPages, numberPage)) { ZEPHIR_INIT_VAR(next); ZVAL_LONG(next, (numberPage + 1)); } else { ZEPHIR_CPY_WRT(next, totalPages); } - zephir_update_property_zval(page, SL("next"), next TSRMLS_CC); + ZEPHIR_INIT_VAR(page); + object_init(page); + zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, 1); + zephir_update_property_zval(page, SL("first"), _5 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, before); + zephir_update_property_zval(page, SL("before"), _5 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, numberPage); + zephir_update_property_zval(page, SL("current"), _5 TSRMLS_CC); zephir_update_property_zval(page, SL("last"), totalPages TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, numberPage); - zephir_update_property_zval(page, SL("current"), _1 TSRMLS_CC); + zephir_update_property_zval(page, SL("next"), next TSRMLS_CC); zephir_update_property_zval(page, SL("total_pages"), totalPages TSRMLS_CC); zephir_update_property_zval(page, SL("total_items"), rowcount TSRMLS_CC); - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _1 TSRMLS_CC); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _5 TSRMLS_CC); RETURN_CCTOR(page); } @@ -117925,10 +123678,11 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, connect) { static PHP_METHOD(Phalcon_Queue_Beanstalk, put) { + zend_bool _4; zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_4; + zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_5; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &data, &options); @@ -117966,15 +123720,15 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, put) { ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_3); zephir_check_call_status(); zephir_array_fetch_long(&status, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 128 TSRMLS_CC); - if (ZEPHIR_IS_STRING(status, "INSERTED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 131 TSRMLS_CC); - RETURN_CTOR(_4); + _4 = !ZEPHIR_IS_STRING(status, "INSERTED"); + if (_4) { + _4 = !ZEPHIR_IS_STRING(status, "BURIED"); } - if (ZEPHIR_IS_STRING(status, "BURIED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 135 TSRMLS_CC); - RETURN_CTOR(_4); + if (_4) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_5, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 134 TSRMLS_CC); + RETURN_CTOR(_5); } @@ -118002,20 +123756,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, reserve) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_0); zephir_check_call_status(); - zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 157 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_1, "RESERVED")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 153 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_1, "RESERVED")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); + zephir_check_call_status(); + RETURN_MM(); } @@ -118048,12 +123802,12 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, choose) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 181 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "USING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 182 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 176 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "USING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 180 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -118086,12 +123840,12 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, watch) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 198 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "WATCHING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 199 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 193 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "WATCHING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 197 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -118110,20 +123864,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, peekReady) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 215 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 210 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -118142,20 +123896,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, peekBuried) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 232 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 227 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -118208,9 +123962,9 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, read) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_2, "stream_get_meta_data", &_3, connection); zephir_check_call_status(); - zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 273 TSRMLS_CC); + zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 268 TSRMLS_CC); if (zephir_is_true(_4)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 274); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 269); return; } ZEPHIR_SINIT_NVAR(_0); @@ -118636,12 +124390,10 @@ static PHP_METHOD(Phalcon_Session_Adapter, get) { ZEPHIR_OBS_VAR(value); zephir_get_global(&_SESSION, SS("_SESSION") TSRMLS_CC); if (zephir_array_isset_fetch(&value, _SESSION, key, 0 TSRMLS_CC)) { - if (!(ZEPHIR_IS_EMPTY(value))) { - if (remove) { - zephir_array_unset(&_SESSION, key, PH_SEPARATE); - } - RETURN_CCTOR(value); + if (remove) { + zephir_array_unset(&_SESSION, key, PH_SEPARATE); } + RETURN_CCTOR(value); } RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); @@ -124345,6 +130097,7 @@ zend_class_entry *phalcon_validation_validatorinterface_ce; zend_class_entry *phalcon_mvc_model_validatorinterface_ce; zend_class_entry *phalcon_cache_backendinterface_ce; zend_class_entry *phalcon_cache_frontendinterface_ce; +zend_class_entry *phalcon_db_dialectinterface_ce; zend_class_entry *phalcon_dispatcherinterface_ce; zend_class_entry *phalcon_mvc_model_metadatainterface_ce; zend_class_entry *phalcon_annotations_adapterinterface_ce; @@ -124353,7 +130106,6 @@ zend_class_entry *phalcon_logger_adapterinterface_ce; zend_class_entry *phalcon_logger_formatterinterface_ce; zend_class_entry *phalcon_mvc_model_resultsetinterface_ce; zend_class_entry *phalcon_assets_filterinterface_ce; -zend_class_entry *phalcon_db_dialectinterface_ce; zend_class_entry *phalcon_diinterface_ce; zend_class_entry *phalcon_mvc_viewbaseinterface_ce; zend_class_entry *phalcon_paginator_adapterinterface_ce; @@ -124423,6 +130175,7 @@ zend_class_entry *phalcon_db_dialect_ce; zend_class_entry *phalcon_logger_adapter_ce; zend_class_entry *phalcon_logger_formatter_ce; zend_class_entry *phalcon_mvc_model_exception_ce; +zend_class_entry *phalcon_paginator_adapter_ce; zend_class_entry *phalcon_session_adapter_ce; zend_class_entry *phalcon_translate_adapter_ce; zend_class_entry *phalcon_assets_inline_ce; @@ -124705,6 +130458,7 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Mvc_Model_ValidatorInterface); ZEPHIR_INIT(Phalcon_Cache_BackendInterface); ZEPHIR_INIT(Phalcon_Cache_FrontendInterface); + ZEPHIR_INIT(Phalcon_Db_DialectInterface); ZEPHIR_INIT(Phalcon_DispatcherInterface); ZEPHIR_INIT(Phalcon_Mvc_Model_MetaDataInterface); ZEPHIR_INIT(Phalcon_Annotations_AdapterInterface); @@ -124713,7 +130467,6 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Logger_FormatterInterface); ZEPHIR_INIT(Phalcon_Mvc_Model_ResultsetInterface); ZEPHIR_INIT(Phalcon_Assets_FilterInterface); - ZEPHIR_INIT(Phalcon_Db_DialectInterface); ZEPHIR_INIT(Phalcon_DiInterface); ZEPHIR_INIT(Phalcon_Mvc_ViewBaseInterface); ZEPHIR_INIT(Phalcon_Paginator_AdapterInterface); @@ -124783,6 +130536,7 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Logger_Adapter); ZEPHIR_INIT(Phalcon_Logger_Formatter); ZEPHIR_INIT(Phalcon_Mvc_Model_Exception); + ZEPHIR_INIT(Phalcon_Paginator_Adapter); ZEPHIR_INIT(Phalcon_Session_Adapter); ZEPHIR_INIT(Phalcon_Translate_Adapter); ZEPHIR_INIT(Phalcon_Assets_Inline); diff --git a/build/64bits/phalcon.zep.h b/build/64bits/phalcon.zep.h index fb0c8902e23..6fe9fcc6d17 100644 --- a/build/64bits/phalcon.zep.h +++ b/build/64bits/phalcon.zep.h @@ -1604,6 +1604,8 @@ static PHP_METHOD(Phalcon_Cache_Backend_Memory, exists); static PHP_METHOD(Phalcon_Cache_Backend_Memory, increment); static PHP_METHOD(Phalcon_Cache_Backend_Memory, decrement); static PHP_METHOD(Phalcon_Cache_Backend_Memory, flush); +static PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize); +static PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_get, 0, 0, 1) ZEND_ARG_INFO(0, keyName) @@ -1640,6 +1642,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_decrement, 0, 0, 0) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_unserialize, 0, 0, 1) + ZEND_ARG_INFO(0, data) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, get, arginfo_phalcon_cache_backend_memory_get, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, save, arginfo_phalcon_cache_backend_memory_save, ZEND_ACC_PUBLIC) @@ -1649,6 +1655,8 @@ ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, increment, arginfo_phalcon_cache_backend_memory_increment, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, decrement, arginfo_phalcon_cache_backend_memory_decrement, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, flush, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, serialize, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, unserialize, arginfo_phalcon_cache_backend_memory_unserialize, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -2255,7 +2263,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_addmodules, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_handle, 0, 0, 0) - ZEND_ARG_INFO(0, arguments) + ZEND_ARG_ARRAY_INFO(0, arguments, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_setargument, 0, 0, 0) @@ -3211,13 +3219,13 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapter_pdo_query, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, bindParams) + ZEND_ARG_ARRAY_INFO(0, bindParams, 1) ZEND_ARG_INFO(0, bindTypes) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapter_pdo_execute, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, bindParams) + ZEND_ARG_ARRAY_INFO(0, bindParams, 1) ZEND_ARG_INFO(0, bindTypes) ZEND_END_ARG_INFO() @@ -3559,13 +3567,13 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_query, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, placeholders) + ZEND_ARG_ARRAY_INFO(0, placeholders, 1) ZEND_ARG_INFO(0, dataTypes) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_execute, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, placeholders) + ZEND_ARG_ARRAY_INFO(0, placeholders, 1) ZEND_ARG_INFO(0, dataTypes) ZEND_END_ARG_INFO() @@ -3789,10 +3797,12 @@ zend_class_entry *phalcon_db_dialect_ce; ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect); +static PHP_METHOD(Phalcon_Db_Dialect, escape); static PHP_METHOD(Phalcon_Db_Dialect, limit); static PHP_METHOD(Phalcon_Db_Dialect, forUpdate); static PHP_METHOD(Phalcon_Db_Dialect, sharedLock); static PHP_METHOD(Phalcon_Db_Dialect, getColumnList); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn); static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression); static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable); static PHP_METHOD(Phalcon_Db_Dialect, select); @@ -3801,6 +3811,31 @@ static PHP_METHOD(Phalcon_Db_Dialect, supportsReleaseSavepoints); static PHP_METHOD(Phalcon_Db_Dialect, createSavepoint); static PHP_METHOD(Phalcon_Db_Dialect, releaseSavepoint); static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit); +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias); +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable); +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_escape, 0, 0, 1) + ZEND_ARG_INFO(0, str) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_limit, 0, 0, 2) ZEND_ARG_INFO(0, sqlQuery) @@ -3819,6 +3854,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getcolumnlist, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, columnList, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlcolumn, 0, 0, 1) + ZEND_ARG_INFO(0, column) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpression, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, expression, 0) ZEND_ARG_INFO(0, escapeChar) @@ -3845,11 +3884,116 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_rollbacksavepoint, 0, 0, 1) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionscalar, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionobject, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionqualified, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionbinaryoperations, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionunaryoperations, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionfunctioncall, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionlist, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionall, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressioncastvalue, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionconvertvalue, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionfrom, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionjoins, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionwhere, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressiongroupby, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionhaving, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionorderby, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionlimit, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparecolumnalias, 0, 0, 1) + ZEND_ARG_INFO(0, qualified) + ZEND_ARG_INFO(0, alias) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparetable, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) + ZEND_ARG_INFO(0, alias) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparequalified, 0, 0, 1) + ZEND_ARG_INFO(0, column) + ZEND_ARG_INFO(0, domain) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_db_dialect_method_entry) { + PHP_ME(Phalcon_Db_Dialect, escape, arginfo_phalcon_db_dialect_escape, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, limit, arginfo_phalcon_db_dialect_limit, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, forUpdate, arginfo_phalcon_db_dialect_forupdate, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, sharedLock, arginfo_phalcon_db_dialect_sharedlock, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, getColumnList, arginfo_phalcon_db_dialect_getcolumnlist, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlColumn, arginfo_phalcon_db_dialect_getsqlcolumn, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, getSqlExpression, arginfo_phalcon_db_dialect_getsqlexpression, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, getSqlTable, arginfo_phalcon_db_dialect_getsqltable, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, select, arginfo_phalcon_db_dialect_select, ZEND_ACC_PUBLIC) @@ -3858,6 +4002,26 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_method_entry) { PHP_ME(Phalcon_Db_Dialect, createSavepoint, arginfo_phalcon_db_dialect_createsavepoint, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, releaseSavepoint, arginfo_phalcon_db_dialect_releasesavepoint, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, rollbackSavepoint, arginfo_phalcon_db_dialect_rollbacksavepoint, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionScalar, arginfo_phalcon_db_dialect_getsqlexpressionscalar, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionObject, arginfo_phalcon_db_dialect_getsqlexpressionobject, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionQualified, arginfo_phalcon_db_dialect_getsqlexpressionqualified, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations, arginfo_phalcon_db_dialect_getsqlexpressionbinaryoperations, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations, arginfo_phalcon_db_dialect_getsqlexpressionunaryoperations, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionFunctionCall, arginfo_phalcon_db_dialect_getsqlexpressionfunctioncall, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionList, arginfo_phalcon_db_dialect_getsqlexpressionlist, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionAll, arginfo_phalcon_db_dialect_getsqlexpressionall, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionCastValue, arginfo_phalcon_db_dialect_getsqlexpressioncastvalue, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionConvertValue, arginfo_phalcon_db_dialect_getsqlexpressionconvertvalue, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionFrom, arginfo_phalcon_db_dialect_getsqlexpressionfrom, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionJoins, arginfo_phalcon_db_dialect_getsqlexpressionjoins, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionWhere, arginfo_phalcon_db_dialect_getsqlexpressionwhere, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionGroupBy, arginfo_phalcon_db_dialect_getsqlexpressiongroupby, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionHaving, arginfo_phalcon_db_dialect_getsqlexpressionhaving, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionOrderBy, arginfo_phalcon_db_dialect_getsqlexpressionorderby, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionLimit, arginfo_phalcon_db_dialect_getsqlexpressionlimit, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, prepareColumnAlias, arginfo_phalcon_db_dialect_preparecolumnalias, ZEND_ACC_PROTECTED) + PHP_ME(Phalcon_Db_Dialect, prepareTable, arginfo_phalcon_db_dialect_preparetable, ZEND_ACC_PROTECTED) + PHP_ME(Phalcon_Db_Dialect, prepareQualified, arginfo_phalcon_db_dialect_preparequalified, ZEND_ACC_PROTECTED) PHP_FE_END }; @@ -3875,7 +4039,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView); @@ -3888,6 +4051,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listViews); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions); +static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_getcolumndefinition, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) @@ -3946,29 +4110,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropforeignkey, 0, 0, 3) ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4012,6 +4172,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_tableoptions, 0, 0, 1) ZEND_ARG_INFO(0, schema) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql__gettableoptions, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, definition, 0) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, getColumnDefinition, arginfo_phalcon_db_dialect_mysql_getcolumndefinition, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, addColumn, arginfo_phalcon_db_dialect_mysql_addcolumn, ZEND_ACC_PUBLIC) @@ -4023,7 +4187,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, dropPrimaryKey, arginfo_phalcon_db_dialect_mysql_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, addForeignKey, arginfo_phalcon_db_dialect_mysql_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, dropForeignKey, arginfo_phalcon_db_dialect_mysql_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_MySQL, _getTableOptions, arginfo_phalcon_db_dialect_mysql__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_MySQL, createTable, arginfo_phalcon_db_dialect_mysql_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, dropTable, arginfo_phalcon_db_dialect_mysql_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, createView, arginfo_phalcon_db_dialect_mysql_createview, ZEND_ACC_PUBLIC) @@ -4036,6 +4199,7 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, describeIndexes, arginfo_phalcon_db_dialect_mysql_describeindexes, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, describeReferences, arginfo_phalcon_db_dialect_mysql_describereferences, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, tableOptions, arginfo_phalcon_db_dialect_mysql_tableoptions, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_MySQL, _getTableOptions, arginfo_phalcon_db_dialect_mysql__gettableoptions, ZEND_ACC_PROTECTED) PHP_FE_END }; @@ -4043,6 +4207,184 @@ zend_class_entry *phalcon_db_dialect_oracle_ce; ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, limit); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, getColumnDefinition); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, modifyColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addIndex); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropIndex); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addPrimaryKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropPrimaryKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addForeignKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropForeignKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createTable); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropTable); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createView); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropView); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, viewExists); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listViews); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableExists); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeColumns); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listTables); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeIndexes); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeReferences); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableOptions); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsSavepoints); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_limit, 0, 0, 2) + ZEND_ARG_INFO(0, sqlQuery) + ZEND_ARG_INFO(0, number) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_getcolumndefinition, 0, 0, 1) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addcolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_modifycolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropcolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, columnName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addindex, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, index, Phalcon\\Db\\IndexInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropindex, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, indexName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addprimarykey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, index, Phalcon\\Db\\IndexInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropprimarykey, 0, 0, 2) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addforeignkey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, reference, Phalcon\\Db\\ReferenceInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropforeignkey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, referenceName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_createtable, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_droptable, 0, 0, 2) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_createview, 0, 0, 2) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropview, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_viewexists, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_listviews, 0, 0, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_tableexists, 0, 0, 1) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describecolumns, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_listtables, 0, 0, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describeindexes, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describereferences, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_tableoptions, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_db_dialect_oracle_method_entry) { + PHP_ME(Phalcon_Db_Dialect_Oracle, limit, arginfo_phalcon_db_dialect_oracle_limit, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, getColumnDefinition, arginfo_phalcon_db_dialect_oracle_getcolumndefinition, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addColumn, arginfo_phalcon_db_dialect_oracle_addcolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, modifyColumn, arginfo_phalcon_db_dialect_oracle_modifycolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropColumn, arginfo_phalcon_db_dialect_oracle_dropcolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addIndex, arginfo_phalcon_db_dialect_oracle_addindex, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropIndex, arginfo_phalcon_db_dialect_oracle_dropindex, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addPrimaryKey, arginfo_phalcon_db_dialect_oracle_addprimarykey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropPrimaryKey, arginfo_phalcon_db_dialect_oracle_dropprimarykey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addForeignKey, arginfo_phalcon_db_dialect_oracle_addforeignkey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropForeignKey, arginfo_phalcon_db_dialect_oracle_dropforeignkey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, createTable, arginfo_phalcon_db_dialect_oracle_createtable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropTable, arginfo_phalcon_db_dialect_oracle_droptable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, createView, arginfo_phalcon_db_dialect_oracle_createview, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropView, arginfo_phalcon_db_dialect_oracle_dropview, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, viewExists, arginfo_phalcon_db_dialect_oracle_viewexists, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, listViews, arginfo_phalcon_db_dialect_oracle_listviews, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, tableExists, arginfo_phalcon_db_dialect_oracle_tableexists, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeColumns, arginfo_phalcon_db_dialect_oracle_describecolumns, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, listTables, arginfo_phalcon_db_dialect_oracle_listtables, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeIndexes, arginfo_phalcon_db_dialect_oracle_describeindexes, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeReferences, arginfo_phalcon_db_dialect_oracle_describereferences, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, tableOptions, arginfo_phalcon_db_dialect_oracle_tableoptions, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, supportsSavepoints, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; zend_class_entry *phalcon_db_dialect_postgresql_ce; @@ -4058,7 +4400,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView); @@ -4129,29 +4470,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropforeignkey, 0, ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4206,7 +4543,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_postgresql_method_entry) { PHP_ME(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey, arginfo_phalcon_db_dialect_postgresql_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, addForeignKey, arginfo_phalcon_db_dialect_postgresql_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, dropForeignKey, arginfo_phalcon_db_dialect_postgresql_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_Postgresql, _getTableOptions, arginfo_phalcon_db_dialect_postgresql__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_Postgresql, createTable, arginfo_phalcon_db_dialect_postgresql_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, dropTable, arginfo_phalcon_db_dialect_postgresql_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, createView, arginfo_phalcon_db_dialect_postgresql_createview, ZEND_ACC_PUBLIC) @@ -4236,7 +4572,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView); @@ -4308,29 +4643,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropforeignkey, 0, 0, 3 ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4389,7 +4720,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_sqlite_method_entry) { PHP_ME(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey, arginfo_phalcon_db_dialect_sqlite_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, addForeignKey, arginfo_phalcon_db_dialect_sqlite_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, dropForeignKey, arginfo_phalcon_db_dialect_sqlite_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_Sqlite, _getTableOptions, arginfo_phalcon_db_dialect_sqlite__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_Sqlite, createTable, arginfo_phalcon_db_dialect_sqlite_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, dropTable, arginfo_phalcon_db_dialect_sqlite_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, createView, arginfo_phalcon_db_dialect_sqlite_createview, ZEND_ACC_PUBLIC) @@ -4494,16 +4824,33 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_createtable, 0, 0, 3) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_createview, 0, 0, 2) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_droptable, 0, 0, 2) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_dropview, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_tableexists, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_viewexists, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_describecolumns, 0, 0, 1) ZEND_ARG_INFO(0, table) ZEND_ARG_INFO(0, schema) @@ -4557,8 +4904,11 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialectinterface_method_entry) { PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, addForeignKey, arginfo_phalcon_db_dialectinterface_addforeignkey) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropForeignKey, arginfo_phalcon_db_dialectinterface_dropforeignkey) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, createTable, arginfo_phalcon_db_dialectinterface_createtable) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, createView, arginfo_phalcon_db_dialectinterface_createview) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropTable, arginfo_phalcon_db_dialectinterface_droptable) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropView, arginfo_phalcon_db_dialectinterface_dropview) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, tableExists, arginfo_phalcon_db_dialectinterface_tableexists) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, viewExists, arginfo_phalcon_db_dialectinterface_viewexists) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, describeColumns, arginfo_phalcon_db_dialectinterface_describecolumns) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, listTables, arginfo_phalcon_db_dialectinterface_listtables) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, describeIndexes, arginfo_phalcon_db_dialectinterface_describeindexes) @@ -4985,8 +5335,8 @@ static PHP_METHOD(Phalcon_Debug_Dump, getStyle); static PHP_METHOD(Phalcon_Debug_Dump, setStyles); static PHP_METHOD(Phalcon_Debug_Dump, one); static PHP_METHOD(Phalcon_Debug_Dump, output); -static PHP_METHOD(Phalcon_Debug_Dump, var); -static PHP_METHOD(Phalcon_Debug_Dump, vars); +static PHP_METHOD(Phalcon_Debug_Dump, variable); +static PHP_METHOD(Phalcon_Debug_Dump, variables); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_setdetailed, 0, 0, 1) ZEND_ARG_INFO(0, detailed) @@ -5016,7 +5366,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_output, 0, 0, 1) ZEND_ARG_INFO(0, tab) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_var, 0, 0, 1) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_variable, 0, 0, 1) ZEND_ARG_INFO(0, variable) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() @@ -5030,8 +5380,8 @@ ZEPHIR_INIT_FUNCS(phalcon_debug_dump_method_entry) { PHP_ME(Phalcon_Debug_Dump, setStyles, arginfo_phalcon_debug_dump_setstyles, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Debug_Dump, one, arginfo_phalcon_debug_dump_one, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Debug_Dump, output, arginfo_phalcon_debug_dump_output, ZEND_ACC_PROTECTED) - PHP_ME(Phalcon_Debug_Dump, var, arginfo_phalcon_debug_dump_var, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Debug_Dump, vars, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Debug_Dump, variable, arginfo_phalcon_debug_dump_variable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Debug_Dump, variables, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -6987,6 +7337,7 @@ static PHP_METHOD(Phalcon_Http_Request, get); static PHP_METHOD(Phalcon_Http_Request, getPost); static PHP_METHOD(Phalcon_Http_Request, getPut); static PHP_METHOD(Phalcon_Http_Request, getQuery); +static PHP_METHOD(Phalcon_Http_Request, getHelper); static PHP_METHOD(Phalcon_Http_Request, getServer); static PHP_METHOD(Phalcon_Http_Request, has); static PHP_METHOD(Phalcon_Http_Request, hasPost); @@ -7068,6 +7419,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getquery, 0, 0, 0) ZEND_ARG_INFO(0, noRecursive) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_gethelper, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, source, 0) + ZEND_ARG_INFO(0, name) + ZEND_ARG_INFO(0, filters) + ZEND_ARG_INFO(0, defaultValue) + ZEND_ARG_INFO(0, notAllowEmpty) + ZEND_ARG_INFO(0, noRecursive) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getserver, 0, 0, 1) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() @@ -7114,7 +7474,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_hasfilehelper, 0, 0, 2) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getuploadedfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_smoothfiles, 0, 0, 6) @@ -7143,6 +7503,7 @@ ZEPHIR_INIT_FUNCS(phalcon_http_request_method_entry) { PHP_ME(Phalcon_Http_Request, getPost, arginfo_phalcon_http_request_getpost, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, getPut, arginfo_phalcon_http_request_getput, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, getQuery, arginfo_phalcon_http_request_getquery, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Http_Request, getHelper, arginfo_phalcon_http_request_gethelper, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Http_Request, getServer, arginfo_phalcon_http_request_getserver, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, has, arginfo_phalcon_http_request_has, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, hasPost, arginfo_phalcon_http_request_haspost, ZEND_ACC_PUBLIC) @@ -7314,11 +7675,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_ismethod, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_hasfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_getuploadedfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_requestinterface_method_entry) { @@ -7631,7 +7992,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers_remove, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headers_method_entry) { @@ -7664,7 +8025,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface_setraw, 0, ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headersinterface_method_entry) { @@ -7681,7 +8042,7 @@ zend_class_entry *phalcon_http_responseinterface_ce; ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface); -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 1) ZEND_ARG_INFO(0, code) ZEND_ARG_INFO(0, message) ZEND_END_ARG_INFO() @@ -9106,19 +9467,19 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_findbyid, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_findfirst, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_find, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_count, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_aggregate, 0, 0, 1) - ZEND_ARG_INFO(0, parameters) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_aggregate, 0, 0, 0) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_summatory, 0, 0, 1) @@ -9414,15 +9775,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_findbyid, 0, 0, 1 ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_findfirst, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_find, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_count, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_collectioninterface_method_entry) { @@ -12851,6 +13212,7 @@ zend_class_entry *phalcon_mvc_model_resultset_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek); @@ -12867,7 +13229,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, isFresh); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setHydrateMode); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getHydrateMode); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete); @@ -12917,6 +13278,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset, next, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset, valid, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, key, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, rewind, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset, seek, arginfo_phalcon_mvc_model_resultset_seek, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) @@ -12933,7 +13295,6 @@ ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset, setHydrateMode, arginfo_phalcon_mvc_model_resultset_sethydratemode, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, getHydrateMode, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, getCache, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Mvc_Model_Resultset, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset, getMessages, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, update, arginfo_phalcon_mvc_model_resultset_update, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, delete, arginfo_phalcon_mvc_model_resultset_delete, ZEND_ACC_PUBLIC) @@ -12946,7 +13307,7 @@ zend_class_entry *phalcon_mvc_model_resultset_complex_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Complex); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, valid); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, serialize); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize); @@ -12963,7 +13324,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_complex_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, __construct, arginfo_phalcon_mvc_model_resultset_complex___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, valid, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, toArray, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, serialize, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, unserialize, arginfo_phalcon_mvc_model_resultset_complex_unserialize, ZEND_ACC_PUBLIC) @@ -12975,7 +13336,7 @@ zend_class_entry *phalcon_mvc_model_resultset_simple_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Simple); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize); @@ -12998,7 +13359,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_simple_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, __construct, arginfo_phalcon_mvc_model_resultset_simple___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, valid, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, toArray, arginfo_phalcon_mvc_model_resultset_simple_toarray, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, serialize, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, unserialize, arginfo_phalcon_mvc_model_resultset_simple_unserialize, ZEND_ACC_PUBLIC) @@ -13315,6 +13676,21 @@ zend_class_entry *phalcon_mvc_model_validationfailed_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_validationfailed___construct, 0, 0, 2) + ZEND_ARG_OBJ_INFO(0, model, Phalcon\\Mvc\\Model, 0) + ZEND_ARG_ARRAY_INFO(0, validationMessages, 0) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_mvc_model_validationfailed_method_entry) { + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, __construct, arginfo_phalcon_mvc_model_validationfailed___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, getModel, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, getMessages, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; zend_class_entry *phalcon_mvc_model_validator_ce; @@ -14841,7 +15217,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_convertencoding, 0, ZEND_ARG_INFO(0, to) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_slice, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_slice, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_ARG_INFO(0, start) ZEND_ARG_INFO(0, end) @@ -15032,12 +15408,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler_compilemacr ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler_compilecall, 0, 0, 2) - ZEND_ARG_INFO(0, statement) + ZEND_ARG_ARRAY_INFO(0, statement, 0) ZEND_ARG_INFO(0, extendsMode) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler__statementlist, 0, 0, 1) - ZEND_ARG_INFO(0, statements) + ZEND_ARG_ARRAY_INFO(0, statements, 0) ZEND_ARG_INFO(0, extendsMode) ZEND_END_ARG_INFO() @@ -15394,33 +15770,42 @@ ZEPHIR_INIT_FUNCS(phalcon_mvc_viewinterface_method_entry) { PHP_FE_END }; +zend_class_entry *phalcon_paginator_adapter_ce; + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter); + +static PHP_METHOD(Phalcon_Paginator_Adapter, setCurrentPage); +static PHP_METHOD(Phalcon_Paginator_Adapter, setLimit); +static PHP_METHOD(Phalcon_Paginator_Adapter, getLimit); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_setcurrentpage, 0, 0, 1) + ZEND_ARG_INFO(0, page) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_setlimit, 0, 0, 1) + ZEND_ARG_INFO(0, limitRows) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_method_entry) { + PHP_ME(Phalcon_Paginator_Adapter, setCurrentPage, arginfo_phalcon_paginator_adapter_setcurrentpage, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Paginator_Adapter, setLimit, arginfo_phalcon_paginator_adapter_setlimit, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Paginator_Adapter, getLimit, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; + zend_class_entry *phalcon_paginator_adapter_model_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model); static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model___construct, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, page) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_model_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_Model, __construct, arginfo_phalcon_paginator_adapter_model___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_Model, setCurrentPage, arginfo_phalcon_paginator_adapter_model_setcurrentpage, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_Model, setLimit, arginfo_phalcon_paginator_adapter_model_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_Model, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_Model, getPaginate, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -15430,28 +15815,14 @@ zend_class_entry *phalcon_paginator_adapter_nativearray_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray); static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray___construct, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, page) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_nativearray_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_NativeArray, __construct, arginfo_phalcon_paginator_adapter_nativearray___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage, arginfo_phalcon_paginator_adapter_nativearray_setcurrentpage, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, setLimit, arginfo_phalcon_paginator_adapter_nativearray_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_NativeArray, getPaginate, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -15461,10 +15832,7 @@ zend_class_entry *phalcon_paginator_adapter_querybuilder_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate); @@ -15473,24 +15841,13 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder___construc ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, currentPage) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setquerybuilder, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, builder, Phalcon\\Mvc\\Model\\Query\\Builder, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_querybuilder_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, __construct, arginfo_phalcon_paginator_adapter_querybuilder___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage, arginfo_phalcon_paginator_adapter_querybuilder_setcurrentpage, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setLimit, arginfo_phalcon_paginator_adapter_querybuilder_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder, arginfo_phalcon_paginator_adapter_querybuilder_setquerybuilder, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate, NULL, ZEND_ACC_PUBLIC) diff --git a/build/safe/phalcon.zep.c b/build/safe/phalcon.zep.c index 6282f3b7c17..a6a8e9246b7 100644 --- a/build/safe/phalcon.zep.c +++ b/build/safe/phalcon.zep.c @@ -3435,11 +3435,6 @@ static void zephir_pow(zval *return_value, zval *op1, zval *op2 TSRMLS_DC); #define ZEPHIR_SCONCAT_VSVV(result, op1, op2, op3, op4) \ zephir_concat_vsvv(&result, op1, op2, sizeof(op2)-1, op3, op4, 1 TSRMLS_CC); -#define ZEPHIR_CONCAT_VSVVV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vsvvv(&result, op1, op2, sizeof(op2)-1, op3, op4, op5, 0 TSRMLS_CC); -#define ZEPHIR_SCONCAT_VSVVV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vsvvv(&result, op1, op2, sizeof(op2)-1, op3, op4, op5, 1 TSRMLS_CC); - #define ZEPHIR_CONCAT_VV(result, op1, op2) \ zephir_concat_vv(&result, op1, op2, 0 TSRMLS_CC); #define ZEPHIR_SCONCAT_VV(result, op1, op2) \ @@ -3460,11 +3455,6 @@ static void zephir_pow(zval *return_value, zval *op1, zval *op2 TSRMLS_DC); #define ZEPHIR_SCONCAT_VVV(result, op1, op2, op3) \ zephir_concat_vvv(&result, op1, op2, op3, 1 TSRMLS_CC); -#define ZEPHIR_CONCAT_VVVSV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vvvsv(&result, op1, op2, op3, op4, sizeof(op4)-1, op5, 0 TSRMLS_CC); -#define ZEPHIR_SCONCAT_VVVSV(result, op1, op2, op3, op4, op5) \ - zephir_concat_vvvsv(&result, op1, op2, op3, op4, sizeof(op4)-1, op5, 1 TSRMLS_CC); - #define ZEPHIR_CONCAT_VVVV(result, op1, op2, op3, op4) \ zephir_concat_vvvv(&result, op1, op2, op3, op4, 0 TSRMLS_CC); #define ZEPHIR_SCONCAT_VVVV(result, op1, op2, op3, op4) \ @@ -3501,12 +3491,10 @@ static void zephir_concat_vsvsv(zval **result, zval *op1, const char *op2, zend_ static void zephir_concat_vsvsvs(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, const char *op4, zend_uint op4_len, zval *op5, const char *op6, zend_uint op6_len, int self_var TSRMLS_DC); static void zephir_concat_vsvsvsv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, const char *op4, zend_uint op4_len, zval *op5, const char *op6, zend_uint op6_len, zval *op7, int self_var TSRMLS_DC); static void zephir_concat_vsvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, int self_var TSRMLS_DC); -static void zephir_concat_vsvvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC); static void zephir_concat_vv(zval **result, zval *op1, zval *op2, int self_var TSRMLS_DC); static void zephir_concat_vvs(zval **result, zval *op1, zval *op2, const char *op3, zend_uint op3_len, int self_var TSRMLS_DC); static void zephir_concat_vvsv(zval **result, zval *op1, zval *op2, const char *op3, zend_uint op3_len, zval *op4, int self_var TSRMLS_DC); static void zephir_concat_vvv(zval **result, zval *op1, zval *op2, zval *op3, int self_var TSRMLS_DC); -static void zephir_concat_vvvsv(zval **result, zval *op1, zval *op2, zval *op3, const char *op4, zend_uint op4_len, zval *op5, int self_var TSRMLS_DC); static void zephir_concat_vvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var TSRMLS_DC); static void zephir_concat_vvvvsvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, const char *op5, zend_uint op5_len, zval *op6, zval *op7, int self_var TSRMLS_DC); static void zephir_concat_vvvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC); @@ -14991,89 +14979,6 @@ static void zephir_concat_vsvv(zval **result, zval *op1, const char *op2, zend_u } -static void zephir_concat_vsvvv(zval **result, zval *op1, const char *op2, zend_uint op2_len, zval *op3, zval *op4, zval *op5, int self_var TSRMLS_DC){ - - zval result_copy, op1_copy, op3_copy, op4_copy, op5_copy; - int use_copy = 0, use_copy1 = 0, use_copy3 = 0, use_copy4 = 0, use_copy5 = 0; - uint offset = 0, length; - - if (Z_TYPE_P(op1) != IS_STRING) { - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - if (use_copy1) { - op1 = &op1_copy; - } - } - - if (Z_TYPE_P(op3) != IS_STRING) { - zend_make_printable_zval(op3, &op3_copy, &use_copy3); - if (use_copy3) { - op3 = &op3_copy; - } - } - - if (Z_TYPE_P(op4) != IS_STRING) { - zend_make_printable_zval(op4, &op4_copy, &use_copy4); - if (use_copy4) { - op4 = &op4_copy; - } - } - - if (Z_TYPE_P(op5) != IS_STRING) { - zend_make_printable_zval(op5, &op5_copy, &use_copy5); - if (use_copy5) { - op5 = &op5_copy; - } - } - - length = Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3) + Z_STRLEN_P(op4) + Z_STRLEN_P(op5); - if (self_var) { - - if (Z_TYPE_PP(result) != IS_STRING) { - zend_make_printable_zval(*result, &result_copy, &use_copy); - if (use_copy) { - ZEPHIR_CPY_WRT_CTOR(*result, (&result_copy)); - } - } - - offset = Z_STRLEN_PP(result); - length += offset; - Z_STRVAL_PP(result) = (char *) str_erealloc(Z_STRVAL_PP(result), length + 1); - - } else { - Z_STRVAL_PP(result) = (char *) emalloc(length + 1); - } - - memcpy(Z_STRVAL_PP(result) + offset, Z_STRVAL_P(op1), Z_STRLEN_P(op1)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1), op2, op2_len); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len, Z_STRVAL_P(op3), Z_STRLEN_P(op3)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3), Z_STRVAL_P(op4), Z_STRLEN_P(op4)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + op2_len + Z_STRLEN_P(op3) + Z_STRLEN_P(op4), Z_STRVAL_P(op5), Z_STRLEN_P(op5)); - Z_STRVAL_PP(result)[length] = 0; - Z_TYPE_PP(result) = IS_STRING; - Z_STRLEN_PP(result) = length; - - if (use_copy1) { - zval_dtor(op1); - } - - if (use_copy3) { - zval_dtor(op3); - } - - if (use_copy4) { - zval_dtor(op4); - } - - if (use_copy5) { - zval_dtor(op5); - } - - if (use_copy) { - zval_dtor(&result_copy); - } - -} - static void zephir_concat_vv(zval **result, zval *op1, zval *op2, int self_var TSRMLS_DC){ zval result_copy, op1_copy, op2_copy; @@ -15332,89 +15237,6 @@ static void zephir_concat_vvv(zval **result, zval *op1, zval *op2, zval *op3, in } -static void zephir_concat_vvvsv(zval **result, zval *op1, zval *op2, zval *op3, const char *op4, zend_uint op4_len, zval *op5, int self_var TSRMLS_DC){ - - zval result_copy, op1_copy, op2_copy, op3_copy, op5_copy; - int use_copy = 0, use_copy1 = 0, use_copy2 = 0, use_copy3 = 0, use_copy5 = 0; - uint offset = 0, length; - - if (Z_TYPE_P(op1) != IS_STRING) { - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - if (use_copy1) { - op1 = &op1_copy; - } - } - - if (Z_TYPE_P(op2) != IS_STRING) { - zend_make_printable_zval(op2, &op2_copy, &use_copy2); - if (use_copy2) { - op2 = &op2_copy; - } - } - - if (Z_TYPE_P(op3) != IS_STRING) { - zend_make_printable_zval(op3, &op3_copy, &use_copy3); - if (use_copy3) { - op3 = &op3_copy; - } - } - - if (Z_TYPE_P(op5) != IS_STRING) { - zend_make_printable_zval(op5, &op5_copy, &use_copy5); - if (use_copy5) { - op5 = &op5_copy; - } - } - - length = Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3) + op4_len + Z_STRLEN_P(op5); - if (self_var) { - - if (Z_TYPE_PP(result) != IS_STRING) { - zend_make_printable_zval(*result, &result_copy, &use_copy); - if (use_copy) { - ZEPHIR_CPY_WRT_CTOR(*result, (&result_copy)); - } - } - - offset = Z_STRLEN_PP(result); - length += offset; - Z_STRVAL_PP(result) = (char *) str_erealloc(Z_STRVAL_PP(result), length + 1); - - } else { - Z_STRVAL_PP(result) = (char *) emalloc(length + 1); - } - - memcpy(Z_STRVAL_PP(result) + offset, Z_STRVAL_P(op1), Z_STRLEN_P(op1)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1), Z_STRVAL_P(op2), Z_STRLEN_P(op2)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2), Z_STRVAL_P(op3), Z_STRLEN_P(op3)); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3), op4, op4_len); - memcpy(Z_STRVAL_PP(result) + offset + Z_STRLEN_P(op1) + Z_STRLEN_P(op2) + Z_STRLEN_P(op3) + op4_len, Z_STRVAL_P(op5), Z_STRLEN_P(op5)); - Z_STRVAL_PP(result)[length] = 0; - Z_TYPE_PP(result) = IS_STRING; - Z_STRLEN_PP(result) = length; - - if (use_copy1) { - zval_dtor(op1); - } - - if (use_copy2) { - zval_dtor(op2); - } - - if (use_copy3) { - zval_dtor(op3); - } - - if (use_copy5) { - zval_dtor(op5); - } - - if (use_copy) { - zval_dtor(&result_copy); - } - -} - static void zephir_concat_vvvv(zval **result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var TSRMLS_DC){ zval result_copy, op1_copy, op2_copy, op3_copy, op4_copy; @@ -16983,11 +16805,11 @@ ZEPHIR_INIT_CLASS(Phalcon_Config) { static PHP_METHOD(Phalcon_Config, __construct) { + zephir_fcall_cache_entry *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_6 = NULL; HashTable *_1; HashPosition _0; - zval *arrayConfig_param = NULL, *key = NULL, *value = NULL, **_2, *_3 = NULL, *_5 = NULL; + zval *arrayConfig_param = NULL, *key = NULL, *value = NULL, **_2; zval *arrayConfig = NULL; ZEPHIR_MM_GROW(); @@ -17002,25 +16824,15 @@ static PHP_METHOD(Phalcon_Config, __construct) { } - zephir_is_iterable(arrayConfig, &_1, &_0, 0, 0, "phalcon/config.zep", 68); + zephir_is_iterable(arrayConfig, &_1, &_0, 0, 0, "phalcon/config.zep", 62); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HMKEY(key, _1, _0); ZEPHIR_GET_HVALUE(value, _2); - ZEPHIR_CALL_FUNCTION(&_3, "strval", &_4, key); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "offsetset", &_3, key, value); zephir_check_call_status(); - ZEPHIR_CPY_WRT(key, _3); - if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(_5); - object_init_ex(_5, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_6, value); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, key, _5 TSRMLS_CC); - } else { - zephir_update_property_zval_zval(this_ptr, key, value TSRMLS_CC); - } } ZEPHIR_MM_RESTORE(); @@ -17028,57 +16840,45 @@ static PHP_METHOD(Phalcon_Config, __construct) { static PHP_METHOD(Phalcon_Config, offsetExists) { - zval *index_param = NULL; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); RETURN_MM_BOOL(zephir_isset_property_zval(this_ptr, index TSRMLS_CC)); } static PHP_METHOD(Phalcon_Config, get) { - zval *index_param = NULL, *defaultValue = NULL, *_0; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *defaultValue = NULL, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &index_param, &defaultValue); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 1, &index, &defaultValue); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); if (!defaultValue) { defaultValue = ZEPHIR_GLOBAL(global_null); } + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); if (zephir_isset_property_zval(this_ptr, index TSRMLS_CC)) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_zval(&_0, this_ptr, index, PH_NOISY_CC); - RETURN_CCTOR(_0); + ZEPHIR_OBS_VAR(_2); + zephir_read_property_zval(&_2, this_ptr, index, PH_NOISY_CC); + RETURN_CCTOR(_2); } RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); @@ -17087,60 +16887,46 @@ static PHP_METHOD(Phalcon_Config, get) { static PHP_METHOD(Phalcon_Config, offsetGet) { - zval *index_param = NULL, *_0; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); - ZEPHIR_OBS_VAR(_0); - zephir_read_property_zval(&_0, this_ptr, index, PH_NOISY_CC); - RETURN_CCTOR(_0); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); + ZEPHIR_OBS_VAR(_2); + zephir_read_property_zval(&_2, this_ptr, index, PH_NOISY_CC); + RETURN_CCTOR(_2); } static PHP_METHOD(Phalcon_Config, offsetSet) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *index_param = NULL, *value, *_0; - zval *index = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *index = NULL, *value, *_0 = NULL, *_2; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &index_param, &value); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 2, 0, &index, &value); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_VAR(_0); - object_init_ex(_0, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_1, value); + ZEPHIR_INIT_VAR(_2); + object_init_ex(_2, phalcon_config_ce); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_3, value); zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, index, _0 TSRMLS_CC); + zephir_update_property_zval_zval(this_ptr, index, _2 TSRMLS_CC); } else { zephir_update_property_zval_zval(this_ptr, index, value TSRMLS_CC); } @@ -17150,25 +16936,19 @@ static PHP_METHOD(Phalcon_Config, offsetSet) { static PHP_METHOD(Phalcon_Config, offsetUnset) { - zval *index_param = NULL; - zval *index = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *index = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 0, &index); - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); - } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); - } + ZEPHIR_SEPARATE_PARAM(index); + ZEPHIR_CALL_FUNCTION(&_0, "strval", &_1, index); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(index, _0); zephir_update_property_zval_zval(this_ptr, index, ZEPHIR_GLOBAL(global_null) TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -17205,7 +16985,7 @@ static PHP_METHOD(Phalcon_Config, toArray) { array_init(arrayConfig); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 179); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 180); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -17289,7 +17069,7 @@ static PHP_METHOD(Phalcon_Config, _merge) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, config); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 238); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/config.zep", 239); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -18853,7 +18633,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_CPY_WRT(html, _1); if (zephir_array_isset_string(trace, SS("class"))) { ZEPHIR_OBS_VAR(className); - zephir_array_fetch_string(&className, trace, SL("class"), PH_NOISY, "phalcon/debug.zep", 356 TSRMLS_CC); + zephir_array_fetch_string(&className, trace, SL("class"), PH_NOISY, "phalcon/debug.zep", 355 TSRMLS_CC); ZEPHIR_INIT_VAR(_2); ZEPHIR_INIT_VAR(_3); ZEPHIR_SINIT_VAR(_4); @@ -18888,11 +18668,11 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { zephir_concat_self(&html, _10 TSRMLS_CC); } } - zephir_array_fetch_string(&_11, trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/debug.zep", 397 TSRMLS_CC); + zephir_array_fetch_string(&_11, trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/debug.zep", 396 TSRMLS_CC); zephir_concat_self(&html, _11 TSRMLS_CC); } ZEPHIR_OBS_VAR(functionName); - zephir_array_fetch_string(&functionName, trace, SL("function"), PH_NOISY, "phalcon/debug.zep", 403 TSRMLS_CC); + zephir_array_fetch_string(&functionName, trace, SL("function"), PH_NOISY, "phalcon/debug.zep", 402 TSRMLS_CC); if (zephir_array_isset_string(trace, SS("class"))) { ZEPHIR_INIT_LNVAR(_5); ZEPHIR_CONCAT_SVS(_5, "", functionName, ""); @@ -18924,11 +18704,11 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { } if (zephir_array_isset_string(trace, SS("args"))) { ZEPHIR_OBS_VAR(traceArgs); - zephir_array_fetch_string(&traceArgs, trace, SL("args"), PH_NOISY, "phalcon/debug.zep", 437 TSRMLS_CC); + zephir_array_fetch_string(&traceArgs, trace, SL("args"), PH_NOISY, "phalcon/debug.zep", 436 TSRMLS_CC); if (zephir_fast_count_int(traceArgs TSRMLS_CC)) { ZEPHIR_INIT_VAR(arguments); array_init(arguments); - zephir_is_iterable(traceArgs, &_15, &_14, 0, 0, "phalcon/debug.zep", 452); + zephir_is_iterable(traceArgs, &_15, &_14, 0, 0, "phalcon/debug.zep", 451); for ( ; zephir_hash_get_current_data_ex(_15, (void**) &_16, &_14) == SUCCESS ; zephir_hash_move_forward_ex(_15, &_14) @@ -18938,7 +18718,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_5); ZEPHIR_CONCAT_SVS(_5, "", _7, ""); - zephir_array_append(&arguments, _5, PH_SEPARATE, "phalcon/debug.zep", 446); + zephir_array_append(&arguments, _5, PH_SEPARATE, "phalcon/debug.zep", 445); } ZEPHIR_INIT_NVAR(_3); zephir_fast_join_str(_3, SL(", "), arguments TSRMLS_CC); @@ -18952,7 +18732,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_OBS_VAR(filez); if (zephir_array_isset_string_fetch(&filez, trace, SS("file"), 0 TSRMLS_CC)) { ZEPHIR_OBS_VAR(_18); - zephir_array_fetch_string(&_18, trace, SL("line"), PH_NOISY, "phalcon/debug.zep", 463 TSRMLS_CC); + zephir_array_fetch_string(&_18, trace, SL("line"), PH_NOISY, "phalcon/debug.zep", 462 TSRMLS_CC); zephir_get_strval(_19, _18); ZEPHIR_CPY_WRT(line, _19); ZEPHIR_INIT_LNVAR(_5); @@ -19016,7 +18796,7 @@ static PHP_METHOD(Phalcon_Debug, showTraceItem) { ZEPHIR_SINIT_NVAR(linePosition); ZVAL_LONG(&linePosition, (i - 1)); ZEPHIR_OBS_NVAR(currentLine); - zephir_array_fetch(¤tLine, lines, &linePosition, PH_NOISY, "phalcon/debug.zep", 551 TSRMLS_CC); + zephir_array_fetch(¤tLine, lines, &linePosition, PH_NOISY, "phalcon/debug.zep", 550 TSRMLS_CC); if (zephir_is_true(showFileFragment)) { if (i == firstLine) { ZEPHIR_INIT_NVAR(_23); @@ -19076,7 +18856,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtLowSeverity) { ZVAL_LONG(_4, 0); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, message, _4, severity, file, line); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/debug.zep", 594 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/debug.zep", 593 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -19158,7 +18938,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
KeyValue
") TSRMLS_CC); ZEPHIR_CALL_METHOD(&_11, exception, "gettrace", NULL); zephir_check_call_status(); - zephir_is_iterable(_11, &_13, &_12, 0, 0, "phalcon/debug.zep", 688); + zephir_is_iterable(_11, &_13, &_12, 0, 0, "phalcon/debug.zep", 687); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -19173,7 +18953,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); zephir_get_global(&_REQUEST, SS("_REQUEST") TSRMLS_CC); - zephir_is_iterable(_REQUEST, &_18, &_17, 0, 0, "phalcon/debug.zep", 698); + zephir_is_iterable(_REQUEST, &_18, &_17, 0, 0, "phalcon/debug.zep", 697); for ( ; zephir_hash_get_current_data_ex(_18, (void**) &_19, &_17) == SUCCESS ; zephir_hash_move_forward_ex(_18, &_17) @@ -19188,7 +18968,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("
KeyValue
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); - zephir_is_iterable(_SERVER, &_22, &_21, 0, 0, "phalcon/debug.zep", 708); + zephir_is_iterable(_SERVER, &_22, &_21, 0, 0, "phalcon/debug.zep", 707); for ( ; zephir_hash_get_current_data_ex(_22, (void**) &_23, &_21) == SUCCESS ; zephir_hash_move_forward_ex(_22, &_21) @@ -19204,7 +18984,7 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { zephir_concat_self_str(&html, SL("") TSRMLS_CC); ZEPHIR_CALL_FUNCTION(&_15, "get_included_files", &_24); zephir_check_call_status(); - zephir_is_iterable(_15, &_26, &_25, 0, 0, "phalcon/debug.zep", 719); + zephir_is_iterable(_15, &_26, &_25, 0, 0, "phalcon/debug.zep", 718); for ( ; zephir_hash_get_current_data_ex(_26, (void**) &_27, &_25) == SUCCESS ; zephir_hash_move_forward_ex(_26, &_25) @@ -19226,14 +19006,14 @@ static PHP_METHOD(Phalcon_Debug, onUncaughtException) { if (Z_TYPE_P(dataVars) == IS_ARRAY) { zephir_concat_self_str(&html, SL("
KeyValue
#Path
") TSRMLS_CC); zephir_concat_self_str(&html, SL("") TSRMLS_CC); - zephir_is_iterable(dataVars, &_30, &_29, 0, 0, "phalcon/debug.zep", 737); + zephir_is_iterable(dataVars, &_30, &_29, 0, 0, "phalcon/debug.zep", 736); for ( ; zephir_hash_get_current_data_ex(_30, (void**) &_31, &_29) == SUCCESS ; zephir_hash_move_forward_ex(_30, &_29) ) { ZEPHIR_GET_HMKEY(keyVar, _30, _29); ZEPHIR_GET_HVALUE(dataVar, _31); - zephir_array_fetch_long(&_33, dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/debug.zep", 735 TSRMLS_CC); + zephir_array_fetch_long(&_33, dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/debug.zep", 734 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_32, this_ptr, "_getvardump", &_34, _33); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_35); @@ -27197,9 +26977,11 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addRole) { static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + HashTable *_7; + HashPosition _6; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_9 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *roleToInherit, *roleInheritName = NULL, *rolesNames, *_0 = NULL, *_3, *_4; + zval *roleName_param = NULL, *roleToInherit, *roleInheritName = NULL, *rolesNames, *deepInheritName = NULL, *_0 = NULL, *_3, *_4, *_5, **_8, *_10; zval *roleName = NULL, *_1; ZEPHIR_MM_GROW(); @@ -27217,7 +26999,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { ZEPHIR_CONCAT_SVS(_1, "Role '", roleName, "' does not exist in the role list"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _1); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 193 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 192 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27227,14 +27009,28 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) { } else { ZEPHIR_CPY_WRT(roleInheritName, roleToInherit); } + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_roleInherits"), PH_NOISY_CC); + if (zephir_array_isset(_3, roleInheritName)) { + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_roleInherits"), PH_NOISY_CC); + zephir_array_fetch(&_5, _4, roleInheritName, PH_NOISY | PH_READONLY, "phalcon/acl/adapter/memory.zep", 205 TSRMLS_CC); + zephir_is_iterable(_5, &_7, &_6, 0, 0, "phalcon/acl/adapter/memory.zep", 208); + for ( + ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS + ; zephir_hash_move_forward_ex(_7, &_6) + ) { + ZEPHIR_GET_HVALUE(deepInheritName, _8); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinherit", &_9, roleName, deepInheritName); + zephir_check_call_status(); + } + } if (!(zephir_array_isset(rolesNames, roleInheritName))) { ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(_3); - ZEPHIR_CONCAT_SVS(_3, "Role '", roleInheritName, "' (to inherit) does not exist in the role list"); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _3); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SVS(_10, "Role '", roleInheritName, "' (to inherit) does not exist in the role list"); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_2, _10); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 206 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/acl/adapter/memory.zep", 214 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27339,7 +27135,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addResourceAccess) { ZEPHIR_CONCAT_SVS(_2, "Resource '", resourceName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 288 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 296 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27348,12 +27144,12 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addResourceAccess) { _4 = Z_TYPE_P(accessList) != IS_STRING; } if (_4) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/acl/adapter/memory.zep", 292); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/acl/adapter/memory.zep", 300); return; } exists = 1; if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 303); + zephir_is_iterable(accessList, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 311); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -27394,7 +27190,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, dropResourceAccess) { if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, &_1, &_0, 0, 0, "phalcon/acl/adapter/memory.zep", 329); + zephir_is_iterable(accessList, &_1, &_0, 0, 0, "phalcon/acl/adapter/memory.zep", 337); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -27445,7 +27241,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVS(_2, "Role '", roleName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 347 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 355 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27457,7 +27253,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVS(_2, "Resource '", resourceName, "' does not exist in ACL"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 351 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 359 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27468,7 +27264,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_OBS_VAR(internalAccess); zephir_read_property_this(&internalAccess, this_ptr, SL("_access"), PH_NOISY_CC); if (Z_TYPE_P(access) == IS_ARRAY) { - zephir_is_iterable(access, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 367); + zephir_is_iterable(access, &_6, &_5, 0, 0, "phalcon/acl/adapter/memory.zep", 375); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -27483,12 +27279,12 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVSVS(_8, "Access '", accessName, "' does not exist in resource '", resourceName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 363 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 371 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } } - zephir_is_iterable(access, &_10, &_9, 0, 0, "phalcon/acl/adapter/memory.zep", 380); + zephir_is_iterable(access, &_10, &_9, 0, 0, "phalcon/acl/adapter/memory.zep", 388); for ( ; zephir_hash_get_current_data_ex(_10, (void**) &_11, &_9) == SUCCESS ; zephir_hash_move_forward_ex(_10, &_9) @@ -27517,7 +27313,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny) { ZEPHIR_CONCAT_SVSVS(_8, "Access '", access, "' does not exist in resource '", resourceName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 385 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/acl/adapter/memory.zep", 393 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -27564,7 +27360,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, allow) { } else { _2 = zephir_fetch_nproperty_this(this_ptr, SL("_rolesNames"), PH_NOISY_CC); ZEPHIR_INIT_NVAR(_0); - zephir_is_iterable(_2, &_4, &_3, 0, 0, "phalcon/acl/adapter/memory.zep", 441); + zephir_is_iterable(_2, &_4, &_3, 0, 0, "phalcon/acl/adapter/memory.zep", 449); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -27606,7 +27402,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, deny) { } else { _1 = zephir_fetch_nproperty_this(this_ptr, SL("_rolesNames"), PH_NOISY_CC); ZEPHIR_INIT_NVAR(_0); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/acl/adapter/memory.zep", 474); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/acl/adapter/memory.zep", 482); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -27669,7 +27465,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 520 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 528 TSRMLS_CC); } if (Z_TYPE_P(haveAccess) == IS_NULL) { ZEPHIR_OBS_VAR(roleInherits); @@ -27677,7 +27473,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_OBS_VAR(inheritedRoles); if (zephir_array_isset_fetch(&inheritedRoles, roleInherits, roleName, 0 TSRMLS_CC)) { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_5, &_4, 0, 0, "phalcon/acl/adapter/memory.zep", 541); + zephir_is_iterable(inheritedRoles, &_5, &_4, 0, 0, "phalcon/acl/adapter/memory.zep", 549); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -27687,7 +27483,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VSVSV(accessKey, inheritedRole, "!", resourceName, "!", access); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 538 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 546 TSRMLS_CC); } } } @@ -27699,10 +27495,10 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 556 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 564 TSRMLS_CC); } else { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_8, &_7, 0, 0, "phalcon/acl/adapter/memory.zep", 570); + zephir_is_iterable(inheritedRoles, &_8, &_7, 0, 0, "phalcon/acl/adapter/memory.zep", 578); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -27712,7 +27508,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VSVS(accessKey, inheritedRole, "!", resourceName, "!*"); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 566 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 574 TSRMLS_CC); break; } } @@ -27725,10 +27521,10 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CPY_WRT(accessKey, _3); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 585 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 593 TSRMLS_CC); } else { if (Z_TYPE_P(inheritedRoles) == IS_ARRAY) { - zephir_is_iterable(inheritedRoles, &_11, &_10, 0, 0, "phalcon/acl/adapter/memory.zep", 599); + zephir_is_iterable(inheritedRoles, &_11, &_10, 0, 0, "phalcon/acl/adapter/memory.zep", 607); for ( ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS ; zephir_hash_move_forward_ex(_11, &_10) @@ -27738,7 +27534,7 @@ static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) { ZEPHIR_CONCAT_VS(accessKey, inheritedRole, "!*!*"); if (zephir_array_isset(accessList, accessKey)) { ZEPHIR_OBS_NVAR(haveAccess); - zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 595 TSRMLS_CC); + zephir_array_fetch(&haveAccess, accessList, accessKey, PH_NOISY, "phalcon/acl/adapter/memory.zep", 603 TSRMLS_CC); break; } } @@ -28715,155 +28511,153 @@ static zval *phannot_ret_annotation(phannot_parser_token *name, zval *arguments, #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** JJCODETYPE is the data type used for storing terminal +** AACODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** JJNOCODE is a number of type JJCODETYPE which corresponds +** AANOCODE is a number of type AACODETYPE which corresponds ** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash +** number is used to fill in empty slots of the hash ** table. -** JJFALLBACK If defined, this indicates that one or more tokens +** AAFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** JJACTIONTYPE is the data type used for storing terminal +** AAACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. -** phannot_JTOKENTYPE is the data type used for minor tokens given +** phannot_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** JJMINORTYPE is the data type used for all minor tokens. +** AAMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of -** which is phannot_JTOKENTYPE. The entry in the union -** for base tokens is called "jj0". -** JJSTACKDEPTH is the maximum depth of the parser's stack. +** which is phannot_TOKENTYPE. The entry in the union +** for base tokens is called "aa0". +** AASTACKDEPTH is the maximum depth of the parser's stack. ** phannot_ARG_SDECL A static variable declaration for the %extra_argument ** phannot_ARG_PDECL A parameter declaration for the %extra_argument -** phannot_ARG_STORE Code to store %extra_argument into jjpParser -** phannot_ARG_FETCH Code to extract %extra_argument from jjpParser -** JJNSTATE the combined number of states. -** JJNRULE the number of rules in the grammar -** JJERRORSYMBOL is the code number of the error symbol. If not +** phannot_ARG_STORE Code to store %extra_argument into aapParser +** phannot_ARG_FETCH Code to extract %extra_argument from aapParser +** AANSTATE the combined number of states. +** AANRULE the number of rules in the grammar +** AAERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define JJCODETYPE unsigned char -#define JJNOCODE 28 -#define JJACTIONTYPE unsigned char -#define phannot_JTOKENTYPE phannot_parser_token* +#define AACODETYPE unsigned char +#define AANOCODE 28 +#define AAACTIONTYPE unsigned char +#define phannot_TOKENTYPE phannot_parser_token* typedef union { - phannot_JTOKENTYPE jj0; - zval* jj36; - int jj55; -} JJMINORTYPE; -#define JJSTACKDEPTH 100 + phannot_TOKENTYPE aa0; + zval* aa36; + int aa55; +} AAMINORTYPE; +#define AASTACKDEPTH 100 #define phannot_ARG_SDECL phannot_parser_status *status; #define phannot_ARG_PDECL ,phannot_parser_status *status -#define phannot_ARG_FETCH phannot_parser_status *status = jjpParser->status -#define phannot_ARG_STORE jjpParser->status = status -#define JJNSTATE 40 -#define JJNRULE 25 -#define JJERRORSYMBOL 18 -#define JJERRSYMDT jj55 -#define JJ_NO_ACTION (JJNSTATE+JJNRULE+2) -#define JJ_ACCEPT_ACTION (JJNSTATE+JJNRULE+1) -#define JJ_ERROR_ACTION (JJNSTATE+JJNRULE) +#define phannot_ARG_FETCH phannot_parser_status *status = aapParser->status +#define phannot_ARG_STORE aapParser->status = status +#define AANSTATE 40 +#define AANRULE 25 +#define AAERRORSYMBOL 18 +#define AAERRSYMDT aa55 +#define AA_NO_ACTION (AANSTATE+AANRULE+2) +#define AA_ACCEPT_ACTION (AANSTATE+AANRULE+1) +#define AA_ERROR_ACTION (AANSTATE+AANRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an -** action integer. +** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < JJNSTATE Shift N. That is, push the lookahead +** 0 <= N < AANSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** JJNSTATE <= N < JJNSTATE+JJNRULE Reduce by rule N-JJNSTATE. +** AANSTATE <= N < AANSTATE+AANRULE Reduce by rule N-AANSTATE. ** -** N == JJNSTATE+JJNRULE A syntax error has occurred. +** N == AANSTATE+AANRULE A syntax error has occurred. ** -** N == JJNSTATE+JJNRULE+1 The parser accepts its input. +** N == AANSTATE+AANRULE+1 The parser accepts its input. ** -** N == JJNSTATE+JJNRULE+2 No such action. Denotes unused -** slots in the jj_action[] table. +** N == AANSTATE+AANRULE+2 No such action. Denotes unused +** slots in the aa_action[] table. ** -** The action table is constructed as a single large table named jj_action[]. +** The action table is constructed as a single large table named aa_action[]. ** Given state S and lookahead X, the action is computed as ** -** jj_action[ jj_shift_ofst[S] + X ] +** aa_action[ aa_shift_ofst[S] + X ] ** -** If the index value jj_shift_ofst[S]+X is out of range or if the value -** jj_lookahead[jj_shift_ofst[S]+X] is not equal to X or if jj_shift_ofst[S] -** is equal to JJ_SHIFT_USE_DFLT, it means that the action is not in the table -** and that jj_default[S] should be used instead. +** If the index value aa_shift_ofst[S]+X is out of range or if the value +** aa_lookahead[aa_shift_ofst[S]+X] is not equal to X or if aa_shift_ofst[S] +** is equal to AA_SHIFT_USE_DFLT, it means that the action is not in the table +** and that aa_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the jj_reduce_ofst[] array is used in place of -** the jj_shift_ofst[] array and JJ_REDUCE_USE_DFLT is used in place of -** JJ_SHIFT_USE_DFLT. +** a reduce action) then the aa_reduce_ofst[] array is used in place of +** the aa_shift_ofst[] array and AA_REDUCE_USE_DFLT is used in place of +** AA_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** jj_action[] A single table containing all actions. -** jj_lookahead[] A table containing the lookahead for each entry in -** jj_action. Used to detect hash collisions. -** jj_shift_ofst[] For each state, the offset into jj_action for +** aa_action[] A single table containing all actions. +** aa_lookahead[] A table containing the lookahead for each entry in +** aa_action. Used to detect hash collisions. +** aa_shift_ofst[] For each state, the offset into aa_action for ** shifting terminals. -** jj_reduce_ofst[] For each state, the offset into jj_action for +** aa_reduce_ofst[] For each state, the offset into aa_action for ** shifting non-terminals after a reduce. -** jj_default[] Default action for each state. +** aa_default[] Default action for each state. */ -static JJACTIONTYPE jj_action[] = { - /* 0 */ 4, 28, 15, 38, 12, 14, 16, 18, 20, 21, - /* 10 */ 22, 23, 24, 4, 31, 4, 28, 15, 40, 12, - /* 20 */ 30, 16, 18, 20, 21, 22, 23, 24, 3, 31, - /* 30 */ 4, 17, 15, 6, 19, 35, 16, 18, 20, 21, - /* 40 */ 22, 23, 24, 5, 31, 15, 7, 27, 11, 16, - /* 50 */ 54, 54, 15, 25, 27, 11, 16, 15, 32, 27, - /* 60 */ 11, 16, 66, 1, 2, 39, 41, 15, 4, 10, - /* 70 */ 11, 16, 15, 9, 9, 37, 16, 8, 13, 36, - /* 80 */ 9, 29, 34, 54, 54, 54, 54, 54, 26, 54, - /* 90 */ 54, 54, 54, 54, 54, 54, 33, +static AAACTIONTYPE aa_action[] = { + /* 0 */ 4, 28, 15, 38, 12, 37, 16, 18, 20, 21, + /* 10 */ 22, 23, 24, 4, 31, 4, 17, 15, 40, 19, + /* 20 */ 35, 16, 18, 20, 21, 22, 23, 24, 3, 31, + /* 30 */ 4, 28, 15, 6, 12, 30, 16, 18, 20, 21, + /* 40 */ 22, 23, 24, 54, 31, 15, 25, 27, 11, 16, + /* 50 */ 13, 36, 15, 7, 27, 11, 16, 15, 32, 27, + /* 60 */ 11, 16, 15, 9, 10, 11, 16, 66, 1, 2, + /* 70 */ 39, 15, 9, 5, 14, 16, 41, 26, 4, 9, + /* 80 */ 29, 34, 54, 8, 54, 54, 54, 54, 33, }; -static JJCODETYPE jj_lookahead[] = { +static AACODETYPE aa_lookahead[] = { /* 0 */ 2, 3, 22, 5, 6, 25, 26, 9, 10, 11, /* 10 */ 12, 13, 14, 2, 16, 2, 3, 22, 0, 6, /* 20 */ 25, 26, 9, 10, 11, 12, 13, 14, 22, 16, /* 30 */ 2, 3, 22, 4, 6, 25, 26, 9, 10, 11, - /* 40 */ 12, 13, 14, 3, 16, 22, 23, 24, 25, 26, - /* 50 */ 27, 27, 22, 23, 24, 25, 26, 22, 23, 24, - /* 60 */ 25, 26, 19, 20, 21, 22, 0, 22, 2, 24, - /* 70 */ 25, 26, 22, 1, 1, 25, 26, 5, 7, 8, - /* 80 */ 1, 7, 8, 27, 27, 27, 27, 27, 15, 27, - /* 90 */ 27, 27, 27, 27, 27, 27, 17, + /* 40 */ 12, 13, 14, 27, 16, 22, 23, 24, 25, 26, + /* 50 */ 7, 8, 22, 23, 24, 25, 26, 22, 23, 24, + /* 60 */ 25, 26, 22, 1, 24, 25, 26, 19, 20, 21, + /* 70 */ 22, 22, 1, 3, 25, 26, 0, 15, 2, 1, + /* 80 */ 7, 8, 27, 5, 27, 27, 27, 27, 17, }; -#define JJ_SHIFT_USE_DFLT (-3) -static signed char jj_shift_ofst[] = { - /* 0 */ 11, 18, 66, -3, 40, 29, -2, 72, -3, 13, - /* 10 */ -3, -3, 71, 28, -3, -3, -3, -3, -3, -3, - /* 20 */ -3, -3, -3, -3, 13, 73, -3, -3, 74, 28, - /* 30 */ -3, 13, 79, -3, 28, -3, 28, -3, -3, -3, +#define AA_SHIFT_USE_DFLT (-3) +static signed char aa_shift_ofst[] = { + /* 0 */ 11, 18, 76, -3, 70, 29, -2, 78, -3, 28, + /* 10 */ -3, -3, 43, 13, -3, -3, -3, -3, -3, -3, + /* 20 */ -3, -3, -3, -3, 28, 62, -3, -3, 73, 13, + /* 30 */ -3, 28, 71, -3, 13, -3, 13, -3, -3, -3, }; -#define JJ_REDUCE_USE_DFLT (-21) -static signed char jj_reduce_ofst[] = { - /* 0 */ 43, -21, 6, -21, -21, -21, 23, -21, -21, 45, - /* 10 */ -21, -21, -21, -20, -21, -21, -21, -21, -21, -21, - /* 20 */ -21, -21, -21, -21, 30, -21, -21, -21, -21, -5, - /* 30 */ -21, 35, -21, -21, 10, -21, 50, -21, -21, -21, +#define AA_REDUCE_USE_DFLT (-21) +static signed char aa_reduce_ofst[] = { + /* 0 */ 48, -21, 6, -21, -21, -21, 30, -21, -21, 40, + /* 10 */ -21, -21, -21, 49, -21, -21, -21, -21, -21, -21, + /* 20 */ -21, -21, -21, -21, 23, -21, -21, -21, -21, 10, + /* 30 */ -21, 35, -21, -21, -5, -21, -20, -21, -21, -21, }; -static JJACTIONTYPE jj_default[] = { +static AAACTIONTYPE aa_default[] = { /* 0 */ 65, 65, 65, 42, 65, 46, 65, 65, 44, 65, /* 10 */ 47, 49, 58, 65, 50, 54, 55, 56, 57, 58, /* 20 */ 59, 60, 61, 62, 65, 65, 63, 48, 56, 65, /* 30 */ 52, 65, 65, 64, 65, 53, 65, 51, 45, 43, }; -#define JJ_SZ_ACTTAB (sizeof(jj_action)/sizeof(jj_action[0])) +#define AA_SZ_ACTTAB (sizeof(aa_action)/sizeof(aa_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: -** +** ** %fallback ID X Y Z. ** ** appears in the grammer, then ID becomes a fallback token for X, Y, @@ -28871,10 +28665,10 @@ static JJACTIONTYPE jj_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef JJFALLBACK -static const JJCODETYPE jjFallback[] = { +#ifdef AAFALLBACK +static const AACODETYPE aaFallback[] = { }; -#endif /* JJFALLBACK */ +#endif /* AAFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -28888,58 +28682,58 @@ static const JJCODETYPE jjFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct jjStackEntry { +struct aaStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - JJMINORTYPE minor; /* The user-supplied minor token value. This + AAMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct jjStackEntry jjStackEntry; +typedef struct aaStackEntry aaStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct jjParser { - int jjidx; /* Index of top element in stack */ - int jjerrcnt; /* Shifts left before out of the error */ +struct aaParser { + int aaidx; /* Index of top element in stack */ + int aaerrcnt; /* Shifts left before out of the error */ phannot_ARG_SDECL /* A place to hold %extra_argument */ - jjStackEntry jjstack[JJSTACKDEPTH]; /* The parser's stack */ + aaStackEntry aastack[AASTACKDEPTH]; /* The parser's stack */ }; -typedef struct jjParser jjParser; +typedef struct aaParser aaParser; #ifndef NDEBUG #include -static FILE *jjTraceFILE = 0; -static char *jjTracePrompt = 0; +static FILE *aaTraceFILE = 0; +static char *aaTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phannot_Trace(FILE *TraceFILE, char *zTracePrompt){ - jjTraceFILE = TraceFILE; - jjTracePrompt = zTracePrompt; - if( jjTraceFILE==0 ) jjTracePrompt = 0; - else if( jjTracePrompt==0 ) jjTraceFILE = 0; + aaTraceFILE = TraceFILE; + aaTracePrompt = zTracePrompt; + if( aaTraceFILE==0 ) aaTracePrompt = 0; + else if( aaTracePrompt==0 ) aaTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *jjTokenName[] = { - "$", "COMMA", "AT", "IDENTIFIER", - "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", - "COLON", "INTEGER", "DOUBLE", "NULL", +static const char *aaTokenName[] = { + "$", "COMMA", "AT", "IDENTIFIER", + "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", + "COLON", "INTEGER", "DOUBLE", "NULL", "FALSE", "TRUE", "BRACKET_OPEN", "BRACKET_CLOSE", - "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", + "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", "annotation_language", "annotation_list", "annotation", "argument_list", - "argument_item", "expr", "array", + "argument_item", "expr", "array", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *jjRuleName[] = { +static const char *aaRuleName[] = { /* 0 */ "program ::= annotation_language", /* 1 */ "annotation_language ::= annotation_list", /* 2 */ "annotation_list ::= annotation_list annotation", @@ -28970,8 +28764,8 @@ static const char *jjRuleName[] = { const char *phannot_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(jjTokenName)/sizeof(jjTokenName[0])) ){ - return jjTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(aaTokenName)/sizeof(aaTokenName[0])) ){ + return aaTokenName[tokenType]; }else{ return "Unknown"; } @@ -28981,25 +28775,25 @@ const char *phannot_TokenName(int tokenType){ } void *phannot_Alloc(void *(*mallocProc)(size_t)){ - jjParser *pParser; - pParser = (jjParser*)(*mallocProc)( (size_t)sizeof(jjParser) ); + aaParser *pParser; + pParser = (aaParser*)(*mallocProc)( (size_t)sizeof(aaParser) ); if( pParser ){ - pParser->jjidx = -1; + pParser->aaidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "jjmajor" is the symbol code, and "jjpminor" is a pointer to +** "aamajor" is the symbol code, and "aapminor" is a pointer to ** the value. */ -static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ - switch( jjmajor ){ +static void aa_destructor(AACODETYPE aamajor, AAMINORTYPE *aapminor){ + switch( aamajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is + ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those @@ -29025,14 +28819,14 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ case 17: // 222 "parser.lemon" { - if ((jjpminor->jj0)) { - if ((jjpminor->jj0)->free_flag) { - efree((jjpminor->jj0)->token); + if ((aapminor->aa0)) { + if ((aapminor->aa0)->free_flag) { + efree((aapminor->aa0)->token); } - efree((jjpminor->jj0)); + efree((aapminor->aa0)); } } -// 507 "parser.c" +// 505 "parser.c" break; case 20: case 21: @@ -29041,133 +28835,133 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){ case 24: case 25: // 235 "parser.lemon" -{ zval_ptr_dtor(&(jjpminor->jj36)); } -// 517 "parser.c" +{ zval_ptr_dtor(&(aapminor->aa36)); } +// 515 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int jj_pop_parser_stack(jjParser *pParser){ - JJCODETYPE jjmajor; - jjStackEntry *jjtos = &pParser->jjstack[pParser->jjidx]; +static int aa_pop_parser_stack(aaParser *pParser){ + AACODETYPE aamajor; + aaStackEntry *aatos = &pParser->aastack[pParser->aaidx]; - if( pParser->jjidx<0 ) return 0; + if( pParser->aaidx<0 ) return 0; #ifndef NDEBUG - if( jjTraceFILE && pParser->jjidx>=0 ){ - fprintf(jjTraceFILE,"%sPopping %s\n", - jjTracePrompt, - jjTokenName[jjtos->major]); + if( aaTraceFILE && pParser->aaidx>=0 ){ + fprintf(aaTraceFILE,"%sPopping %s\n", + aaTracePrompt, + aaTokenName[aatos->major]); } #endif - jjmajor = jjtos->major; - jj_destructor( jjmajor, &jjtos->minor); - pParser->jjidx--; - return jjmajor; + aamajor = aatos->major; + aa_destructor( aamajor, &aatos->minor); + pParser->aaidx--; + return aamajor; } static void phannot_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - jjParser *pParser = (jjParser*)p; + aaParser *pParser = (aaParser*)p; if( pParser==0 ) return; - while( pParser->jjidx>=0 ) jj_pop_parser_stack(pParser); + while( pParser->aaidx>=0 ) aa_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int jj_find_shift_action( - jjParser *pParser, /* The parser */ +static int aa_find_shift_action( + aaParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->jjstack[pParser->jjidx].stateno; - - /* if( pParser->jjidx<0 ) return JJ_NO_ACTION; */ - i = jj_shift_ofst[stateno]; - if( i==JJ_SHIFT_USE_DFLT ){ - return jj_default[stateno]; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + /* if( pParser->aaidx<0 ) return AA_NO_ACTION; */ + i = aa_shift_ofst[stateno]; + if( i==AA_SHIFT_USE_DFLT ){ + return aa_default[stateno]; } - if( iLookAhead==JJNOCODE ){ - return JJ_NO_ACTION; + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){ -#ifdef JJFALLBACK + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ +#ifdef AAFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - jjTracePrompt, jjTokenName[iLookAhead], jjTokenName[iFallback]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE, "%sFALLBACK %s => %s\n", + aaTracePrompt, aaTokenName[iLookAhead], aaTokenName[iFallback]); } #endif - return jj_find_shift_action(pParser, iFallback); + return aa_find_shift_action(pParser, iFallback); } #endif - return jj_default[stateno]; + return aa_default[stateno]; }else{ - return jj_action[i]; + return aa_action[i]; } } -static int jj_find_reduce_action( - jjParser *pParser, /* The parser */ +static int aa_find_reduce_action( + aaParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->jjstack[pParser->jjidx].stateno; - - i = jj_reduce_ofst[stateno]; - if( i==JJ_REDUCE_USE_DFLT ){ - return jj_default[stateno]; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + i = aa_reduce_ofst[stateno]; + if( i==AA_REDUCE_USE_DFLT ){ + return aa_default[stateno]; } - if( iLookAhead==JJNOCODE ){ - return JJ_NO_ACTION; + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){ - return jj_default[stateno]; + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ + return aa_default[stateno]; }else{ - return jj_action[i]; + return aa_action[i]; } } -static void jj_shift( - jjParser *jjpParser, /* The parser to be shifted */ - int jjNewState, /* The new state to shift in */ - int jjMajor, /* The major token to shift in */ - JJMINORTYPE *jjpMinor /* Pointer ot the minor token to shift in */ +static void aa_shift( + aaParser *aapParser, /* The parser to be shifted */ + int aaNewState, /* The new state to shift in */ + int aaMajor, /* The major token to shift in */ + AAMINORTYPE *aapMinor /* Pointer ot the minor token to shift in */ ){ - jjStackEntry *jjtos; - jjpParser->jjidx++; - if( jjpParser->jjidx>=JJSTACKDEPTH ){ + aaStackEntry *aatos; + aapParser->aaidx++; + if( aapParser->aaidx>=AASTACKDEPTH ){ phannot_ARG_FETCH; - jjpParser->jjidx--; + aapParser->aaidx--; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sStack Overflow!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sStack Overflow!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - jjtos = &jjpParser->jjstack[jjpParser->jjidx]; - jjtos->stateno = jjNewState; - jjtos->major = jjMajor; - jjtos->minor = *jjpMinor; + aatos = &aapParser->aastack[aapParser->aaidx]; + aatos->stateno = aaNewState; + aatos->major = aaMajor; + aatos->minor = *aapMinor; #ifndef NDEBUG - if( jjTraceFILE && jjpParser->jjidx>0 ){ + if( aaTraceFILE && aapParser->aaidx>0 ){ int i; - fprintf(jjTraceFILE,"%sShift %d\n",jjTracePrompt,jjNewState); - fprintf(jjTraceFILE,"%sStack:",jjTracePrompt); - for(i=1; i<=jjpParser->jjidx; i++) - fprintf(jjTraceFILE," %s",jjTokenName[jjpParser->jjstack[i].major]); - fprintf(jjTraceFILE,"\n"); + fprintf(aaTraceFILE,"%sShift %d\n",aaTracePrompt,aaNewState); + fprintf(aaTraceFILE,"%sStack:",aaTracePrompt); + for(i=1; i<=aapParser->aaidx; i++) + fprintf(aaTraceFILE," %s",aaTokenName[aapParser->aastack[i].major]); + fprintf(aaTraceFILE,"\n"); } #endif } @@ -29176,9 +28970,9 @@ static void jj_shift( ** is used during the reduce. */ static struct { - JJCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + AACODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} jjRuleInfo[] = { +} aaRuleInfo[] = { { 19, 1 }, { 20, 1 }, { 21, 2 }, @@ -29206,28 +29000,28 @@ static struct { { 26, 3 }, }; -static void jj_accept(jjParser*); /* Forward Declaration */ +static void aa_accept(aaParser*); /* Forward Declaration */ -static void jj_reduce( - jjParser *jjpParser, /* The parser */ - int jjruleno /* Number of the rule by which to reduce */ +static void aa_reduce( + aaParser *aapParser, /* The parser */ + int aaruleno /* Number of the rule by which to reduce */ ){ - int jjgoto; /* The next state */ - int jjact; /* The next action */ - JJMINORTYPE jjgotominor; /* The LHS of the rule reduced */ - jjStackEntry *jjmsp; /* The top of the parser's stack */ - int jjsize; /* Amount to pop the stack */ + int aagoto; /* The next state */ + int aaact; /* The next action */ + AAMINORTYPE aagotominor; /* The LHS of the rule reduced */ + aaStackEntry *aamsp; /* The top of the parser's stack */ + int aasize; /* Amount to pop the stack */ phannot_ARG_FETCH; - jjmsp = &jjpParser->jjstack[jjpParser->jjidx]; + aamsp = &aapParser->aastack[aapParser->aaidx]; #ifndef NDEBUG - if( jjTraceFILE && jjruleno>=0 - && jjruleno=0 + && aarulenoret = jjmsp[0].minor.jj36; + status->ret = aamsp[0].minor.aa36; } -// 759 "parser.c" +// 757 "parser.c" break; case 1: case 14: case 15: // 237 "parser.lemon" { - jjgotominor.jj36 = jjmsp[0].minor.jj36; + aagotominor.aa36 = aamsp[0].minor.aa36; } -// 768 "parser.c" +// 766 "parser.c" break; case 2: // 243 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-1].minor.jj36, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_zval_list(aamsp[-1].minor.aa36, aamsp[0].minor.aa36); } -// 775 "parser.c" +// 773 "parser.c" break; case 3: case 8: // 247 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(NULL, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_zval_list(NULL, aamsp[0].minor.aa36); } -// 783 "parser.c" +// 781 "parser.c" break; case 4: // 254 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-3].minor.jj0, jjmsp[-1].minor.jj36, status->scanner_state); - jj_destructor(2,&jjmsp[-4].minor); - jj_destructor(4,&jjmsp[-2].minor); - jj_destructor(5,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[-3].minor.aa0, aamsp[-1].minor.aa36, status->scanner_state); + aa_destructor(2,&aamsp[-4].minor); + aa_destructor(4,&aamsp[-2].minor); + aa_destructor(5,&aamsp[0].minor); } -// 793 "parser.c" +// 791 "parser.c" break; case 5: // 258 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-2].minor.jj0, NULL, status->scanner_state); - jj_destructor(2,&jjmsp[-3].minor); - jj_destructor(4,&jjmsp[-1].minor); - jj_destructor(5,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[-2].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-3].minor); + aa_destructor(4,&aamsp[-1].minor); + aa_destructor(5,&aamsp[0].minor); } -// 803 "parser.c" +// 801 "parser.c" break; case 6: // 262 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_annotation(jjmsp[0].minor.jj0, NULL, status->scanner_state); - jj_destructor(2,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_annotation(aamsp[0].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-1].minor); } -// 811 "parser.c" +// 809 "parser.c" break; case 7: // 268 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-2].minor.jj36, jjmsp[0].minor.jj36); - jj_destructor(1,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_zval_list(aamsp[-2].minor.aa36, aamsp[0].minor.aa36); + aa_destructor(1,&aamsp[-1].minor); } -// 819 "parser.c" +// 817 "parser.c" break; case 9: // 278 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(NULL, jjmsp[0].minor.jj36); + aagotominor.aa36 = phannot_ret_named_item(NULL, aamsp[0].minor.aa36); } -// 826 "parser.c" +// 824 "parser.c" break; case 10: case 12: // 282 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36); - jj_destructor(7,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_named_item(aamsp[-2].minor.aa0, aamsp[0].minor.aa36); + aa_destructor(7,&aamsp[-1].minor); } -// 835 "parser.c" +// 833 "parser.c" break; case 11: case 13: // 286 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36); - jj_destructor(8,&jjmsp[-1].minor); + aagotominor.aa36 = phannot_ret_named_item(aamsp[-2].minor.aa0, aamsp[0].minor.aa36); + aa_destructor(8,&aamsp[-1].minor); } -// 844 "parser.c" +// 842 "parser.c" break; case 16: // 308 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, aamsp[0].minor.aa0); } -// 851 "parser.c" +// 849 "parser.c" break; case 17: // 312 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, aamsp[0].minor.aa0); } -// 858 "parser.c" +// 856 "parser.c" break; case 18: // 316 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_STRING, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_STRING, aamsp[0].minor.aa0); } -// 865 "parser.c" +// 863 "parser.c" break; case 19: // 320 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, jjmsp[0].minor.jj0); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, aamsp[0].minor.aa0); } -// 872 "parser.c" +// 870 "parser.c" break; case 20: // 324 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL); - jj_destructor(11,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL); + aa_destructor(11,&aamsp[0].minor); } -// 880 "parser.c" +// 878 "parser.c" break; case 21: // 328 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL); - jj_destructor(12,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL); + aa_destructor(12,&aamsp[0].minor); } -// 888 "parser.c" +// 886 "parser.c" break; case 22: // 332 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL); - jj_destructor(13,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL); + aa_destructor(13,&aamsp[0].minor); } -// 896 "parser.c" +// 894 "parser.c" break; case 23: // 336 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36); - jj_destructor(14,&jjmsp[-2].minor); - jj_destructor(15,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_array(aamsp[-1].minor.aa36); + aa_destructor(14,&aamsp[-2].minor); + aa_destructor(15,&aamsp[0].minor); } -// 905 "parser.c" +// 903 "parser.c" break; case 24: // 340 "parser.lemon" { - jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36); - jj_destructor(16,&jjmsp[-2].minor); - jj_destructor(17,&jjmsp[0].minor); + aagotominor.aa36 = phannot_ret_array(aamsp[-1].minor.aa36); + aa_destructor(16,&aamsp[-2].minor); + aa_destructor(17,&aamsp[0].minor); } -// 914 "parser.c" +// 912 "parser.c" break; }; - jjgoto = jjRuleInfo[jjruleno].lhs; - jjsize = jjRuleInfo[jjruleno].nrhs; - jjpParser->jjidx -= jjsize; - jjact = jj_find_reduce_action(jjpParser,jjgoto); - if( jjact < JJNSTATE ){ - jj_shift(jjpParser,jjact,jjgoto,&jjgotominor); - }else if( jjact == JJNSTATE + JJNRULE + 1 ){ - jj_accept(jjpParser); + aagoto = aaRuleInfo[aaruleno].lhs; + aasize = aaRuleInfo[aaruleno].nrhs; + aapParser->aaidx -= aasize; + aaact = aa_find_reduce_action(aapParser,aagoto); + if( aaact < AANSTATE ){ + aa_shift(aapParser,aaact,aagoto,&aagotominor); + }else if( aaact == AANSTATE + AANRULE + 1 ){ + aa_accept(aapParser); } } -static void jj_parse_failed( - jjParser *jjpParser /* The parser */ +static void aa_parse_failed( + aaParser *aapParser /* The parser */ ){ phannot_ARG_FETCH; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sFail!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sFail!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void jj_syntax_error( - jjParser *jjpParser, /* The parser */ - int jjmajor, /* The major type of the error token */ - JJMINORTYPE jjminor /* The minor type of the error token */ +static void aa_syntax_error( + aaParser *aapParser, /* The parser */ + int aamajor, /* The major type of the error token */ + AAMINORTYPE aaminor /* The minor type of the error token */ ){ phannot_ARG_FETCH; -#define JTOKEN (jjminor.jj0) +#define TOKEN (aaminor.aa0) // 159 "parser.lemon" if (status->scanner_state->start_length) { @@ -29495,20 +29289,20 @@ static void jj_syntax_error( status->status = PHANNOT_PARSING_FAILED; -// 1019 "parser.c" +// 1017 "parser.c" phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void jj_accept( - jjParser *jjpParser /* The parser */ +static void aa_accept( + aaParser *aapParser /* The parser */ ){ phannot_ARG_FETCH; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sAccept!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sAccept!\n",aaTracePrompt); } #endif - while( jjpParser->jjidx>=0 ) jj_pop_parser_stack(jjpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -29534,59 +29328,59 @@ static void jj_accept( ** None. */ static void phannot_( - void *jjp, /* The parser */ - int jjmajor, /* The major token code number */ - phannot_JTOKENTYPE jjminor /* The value for the token */ + void *aap, /* The parser */ + int aamajor, /* The major token code number */ + phannot_TOKENTYPE aaminor /* The value for the token */ phannot_ARG_PDECL /* Optional %extra_argument parameter */ ){ - JJMINORTYPE jjminorunion; - int jjact; /* The parser action. */ - int jjendofinput; /* True if we are at the end of input */ - int jjerrorhit = 0; /* True if jjmajor has invoked an error */ - jjParser *jjpParser; /* The parser */ + AAMINORTYPE aaminorunion; + int aaact; /* The parser action. */ + int aaendofinput; /* True if we are at the end of input */ + int aaerrorhit = 0; /* True if aamajor has invoked an error */ + aaParser *aapParser; /* The parser */ /* (re)initialize the parser, if necessary */ - jjpParser = (jjParser*)jjp; - if( jjpParser->jjidx<0 ){ - if( jjmajor==0 ) return; - jjpParser->jjidx = 0; - jjpParser->jjerrcnt = -1; - jjpParser->jjstack[0].stateno = 0; - jjpParser->jjstack[0].major = 0; + aapParser = (aaParser*)aap; + if( aapParser->aaidx<0 ){ + if( aamajor==0 ) return; + aapParser->aaidx = 0; + aapParser->aaerrcnt = -1; + aapParser->aastack[0].stateno = 0; + aapParser->aastack[0].major = 0; } - jjminorunion.jj0 = jjminor; - jjendofinput = (jjmajor==0); + aaminorunion.aa0 = aaminor; + aaendofinput = (aamajor==0); phannot_ARG_STORE; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sInput %s\n",jjTracePrompt,jjTokenName[jjmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sInput %s\n",aaTracePrompt,aaTokenName[aamajor]); } #endif do{ - jjact = jj_find_shift_action(jjpParser,jjmajor); - if( jjactjjerrcnt--; - if( jjendofinput && jjpParser->jjidx>=0 ){ - jjmajor = 0; + aaact = aa_find_shift_action(aapParser,aamajor); + if( aaactaaerrcnt--; + if( aaendofinput && aapParser->aaidx>=0 ){ + aamajor = 0; }else{ - jjmajor = JJNOCODE; + aamajor = AANOCODE; } - }else if( jjact < JJNSTATE + JJNRULE ){ - jj_reduce(jjpParser,jjact-JJNSTATE); - }else if( jjact == JJ_ERROR_ACTION ){ - int jjmx; + }else if( aaact < AANSTATE + AANRULE ){ + aa_reduce(aapParser,aaact-AANSTATE); + }else if( aaact == AA_ERROR_ACTION ){ + int aamx; #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sSyntax Error!\n",jjTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sSyntax Error!\n",aaTracePrompt); } #endif -#ifdef JJERRORSYMBOL +#ifdef AAERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". + ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** @@ -29603,40 +29397,40 @@ static void phannot_( ** shifted successfully. ** */ - if( jjpParser->jjerrcnt<0 ){ - jj_syntax_error(jjpParser,jjmajor,jjminorunion); + if( aapParser->aaerrcnt<0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - jjmx = jjpParser->jjstack[jjpParser->jjidx].major; - if( jjmx==JJERRORSYMBOL || jjerrorhit ){ + aamx = aapParser->aastack[aapParser->aaidx].major; + if( aamx==AAERRORSYMBOL || aaerrorhit ){ #ifndef NDEBUG - if( jjTraceFILE ){ - fprintf(jjTraceFILE,"%sDiscard input token %s\n", - jjTracePrompt,jjTokenName[jjmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sDiscard input token %s\n", + aaTracePrompt,aaTokenName[aamajor]); } #endif - jj_destructor(jjmajor,&jjminorunion); - jjmajor = JJNOCODE; + aa_destructor(aamajor,&aaminorunion); + aamajor = AANOCODE; }else{ while( - jjpParser->jjidx >= 0 && - jjmx != JJERRORSYMBOL && - (jjact = jj_find_shift_action(jjpParser,JJERRORSYMBOL)) >= JJNSTATE + aapParser->aaidx >= 0 && + aamx != AAERRORSYMBOL && + (aaact = aa_find_shift_action(aapParser,AAERRORSYMBOL)) >= AANSTATE ){ - jj_pop_parser_stack(jjpParser); + aa_pop_parser_stack(aapParser); } - if( jjpParser->jjidx < 0 || jjmajor==0 ){ - jj_destructor(jjmajor,&jjminorunion); - jj_parse_failed(jjpParser); - jjmajor = JJNOCODE; - }else if( jjmx!=JJERRORSYMBOL ){ - JJMINORTYPE u2; - u2.JJERRSYMDT = 0; - jj_shift(jjpParser,jjact,JJERRORSYMBOL,&u2); + if( aapParser->aaidx < 0 || aamajor==0 ){ + aa_destructor(aamajor,&aaminorunion); + aa_parse_failed(aapParser); + aamajor = AANOCODE; + }else if( aamx!=AAERRORSYMBOL ){ + AAMINORTYPE u2; + u2.AAERRSYMDT = 0; + aa_shift(aapParser,aaact,AAERRORSYMBOL,&u2); } } - jjpParser->jjerrcnt = 3; - jjerrorhit = 1; -#else /* JJERRORSYMBOL is not defined */ + aapParser->aaerrcnt = 3; + aaerrorhit = 1; +#else /* AAERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -29646,21 +29440,21 @@ static void phannot_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( jjpParser->jjerrcnt<=0 ){ - jj_syntax_error(jjpParser,jjmajor,jjminorunion); + if( aapParser->aaerrcnt<=0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - jjpParser->jjerrcnt = 3; - jj_destructor(jjmajor,&jjminorunion); - if( jjendofinput ){ - jj_parse_failed(jjpParser); + aapParser->aaerrcnt = 3; + aa_destructor(aamajor,&aaminorunion); + if( aaendofinput ){ + aa_parse_failed(aapParser); } - jjmajor = JJNOCODE; + aamajor = AANOCODE; #endif }else{ - jj_accept(jjpParser); - jjmajor = JJNOCODE; + aa_accept(aapParser); + aamajor = AANOCODE; } - }while( jjmajor!=JJNOCODE && jjpParser->jjidx>=0 ); + }while( aamajor!=AANOCODE && aapParser->aaidx>=0 ); return; } @@ -29873,7 +29667,7 @@ static int phannot_internal_parse_annotations(zval **result, zval *comment, zval if (Z_STRLEN(processed_comment) < 2) { ZVAL_BOOL(*result, 0); - str_efree(Z_STRVAL(processed_comment)); + efree(Z_STRVAL(processed_comment)); return SUCCESS; } @@ -30422,67 +30216,64 @@ static PHP_METHOD(Phalcon_Annotations_Reflection, __set_state) { -/* Generated by re2c 0.13.5 on Fri Jun 28 19:00:52 2013 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:38:13 2015 */ // 1 "scanner.re" -#ifdef HAVE_CONFIG_H -#endif - -#define JJCTYPE unsigned char -#define JJCURSOR (s->start) -#define JJLIMIT (s->end) -#define JJMARKER q +#define AACTYPE unsigned char +#define AACURSOR (s->start) +#define AALIMIT (s->end) +#define AAMARKER q static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *token) { - char next, *q = JJCURSOR, *start = JJCURSOR; + char next, *q = AACURSOR, *start = AACURSOR; int status = PHANNOT_SCANNER_RETCODE_IMPOSSIBLE; while (PHANNOT_SCANNER_RETCODE_IMPOSSIBLE == status) { if (s->mode == PHANNOT_MODE_RAW) { - if (*JJCURSOR == '\n') { + if (*AACURSOR == '\n') { s->active_line++; } - next = *(JJCURSOR+1); + next = *(AACURSOR+1); - if (*JJCURSOR == '\0' || *JJCURSOR == '@') { + if (*AACURSOR == '\0' || *AACURSOR == '@') { if ((next >= 'A' && next <= 'Z') || (next >= 'a' && next <= 'z')) { s->mode = PHANNOT_MODE_ANNOTATION; continue; } } - ++JJCURSOR; + ++AACURSOR; token->opcode = PHANNOT_T_IGNORE; return 0; } else { - -// 66 "scanner.c" + +// 61 "scanner.c" { - JJCTYPE jjch; - unsigned int jjaccept = 0; + AACTYPE aach; + unsigned int aaaccept = 0; - jjch = *JJCURSOR; - switch (jjch) { - case 0x00: goto jj38; + aach = *AACURSOR; + switch (aach) { + case 0x00: goto aa38; case '\t': case '\r': - case ' ': goto jj34; - case '\n': goto jj36; - case '"': goto jj10; - case '\'': goto jj11; - case '(': goto jj14; - case ')': goto jj16; - case ',': goto jj32; - case '-': goto jj2; + case ' ': goto aa34; + case '\n': goto aa36; + case '"': goto aa10; + case '\'': goto aa11; + case '(': goto aa14; + case ')': goto aa16; + case ',': goto aa32; + case '-': goto aa2; case '0': case '1': case '2': @@ -30492,10 +30283,10 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj4; - case ':': goto jj30; - case '=': goto jj28; - case '@': goto jj26; + case '9': goto aa4; + case ':': goto aa30; + case '=': goto aa28; + case '@': goto aa26; case 'A': case 'B': case 'C': @@ -30542,23 +30333,23 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj13; + case 'z': goto aa13; case 'F': - case 'f': goto jj8; + case 'f': goto aa8; case 'N': - case 'n': goto jj6; + case 'n': goto aa6; case 'T': - case 't': goto jj9; - case '[': goto jj22; - case '\\': goto jj12; - case ']': goto jj24; - case '{': goto jj18; - case '}': goto jj20; - default: goto jj40; - } -jj2: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { + case 't': goto aa9; + case '[': goto aa22; + case '\\': goto aa12; + case ']': goto aa24; + case '{': goto aa18; + case '}': goto aa20; + default: goto aa40; + } +aa2: + ++AACURSOR; + switch ((aach = *AACURSOR)) { case '0': case '1': case '2': @@ -30568,203 +30359,263 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj68; - default: goto jj3; + case '9': goto aa71; + default: goto aa3; } -jj3: -// 183 "scanner.re" +aa3: +// 178 "scanner.re" { status = PHANNOT_SCANNER_RETCODE_ERR; break; } -// 178 "scanner.c" -jj4: - jjaccept = 0; - jjch = *(JJMARKER = ++JJCURSOR); - goto jj69; -jj5: -// 67 "scanner.re" +// 173 "scanner.c" +aa4: + aaaccept = 0; + aach = *(AAMARKER = ++AACURSOR); + goto aa72; +aa5: +// 62 "scanner.re" { token->opcode = PHANNOT_T_INTEGER; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 192 "scanner.c" -jj6: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +// 187 "scanner.c" +aa6: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'U': - case 'u': goto jj63; - default: goto jj44; + case 'u': goto aa66; + default: goto aa44; } -jj7: -// 109 "scanner.re" +aa7: +// 104 "scanner.re" { token->opcode = PHANNOT_T_IDENTIFIER; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 209 "scanner.c" -jj8: - jjch = *++JJCURSOR; - switch (jjch) { +// 205 "scanner.c" +aa8: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'A': - case 'a': goto jj58; - default: goto jj44; + case 'a': goto aa61; + default: goto aa44; } -jj9: - jjch = *++JJCURSOR; - switch (jjch) { +aa9: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'R': - case 'r': goto jj54; - default: goto jj44; - } -jj10: - jjaccept = 1; - jjch = *(JJMARKER = ++JJCURSOR); - if (jjch <= 0x00) goto jj3; - goto jj52; -jj11: - jjaccept = 1; - jjch = *(JJMARKER = ++JJCURSOR); - if (jjch <= 0x00) goto jj3; - goto jj46; -jj12: - jjch = *++JJCURSOR; - goto jj44; -jj13: - jjch = *++JJCURSOR; - goto jj44; -jj14: - ++JJCURSOR; -// 117 "scanner.re" + case 'r': goto aa57; + default: goto aa44; + } +aa10: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa3; + goto aa55; +aa11: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa3; + goto aa50; +aa12: + aach = *++AACURSOR; + switch (aach) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa43; + default: goto aa3; + } +aa13: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + goto aa44; +aa14: + ++AACURSOR; +// 112 "scanner.re" { token->opcode = PHANNOT_T_PARENTHESES_OPEN; return 0; } -// 247 "scanner.c" -jj16: - ++JJCURSOR; -// 122 "scanner.re" +// 301 "scanner.c" +aa16: + ++AACURSOR; +// 117 "scanner.re" { token->opcode = PHANNOT_T_PARENTHESES_CLOSE; return 0; } -// 255 "scanner.c" -jj18: - ++JJCURSOR; -// 127 "scanner.re" +// 309 "scanner.c" +aa18: + ++AACURSOR; +// 122 "scanner.re" { token->opcode = PHANNOT_T_BRACKET_OPEN; return 0; } -// 263 "scanner.c" -jj20: - ++JJCURSOR; -// 132 "scanner.re" +// 317 "scanner.c" +aa20: + ++AACURSOR; +// 127 "scanner.re" { token->opcode = PHANNOT_T_BRACKET_CLOSE; return 0; } -// 271 "scanner.c" -jj22: - ++JJCURSOR; -// 137 "scanner.re" +// 325 "scanner.c" +aa22: + ++AACURSOR; +// 132 "scanner.re" { token->opcode = PHANNOT_T_SBRACKET_OPEN; return 0; } -// 279 "scanner.c" -jj24: - ++JJCURSOR; -// 142 "scanner.re" +// 333 "scanner.c" +aa24: + ++AACURSOR; +// 137 "scanner.re" { token->opcode = PHANNOT_T_SBRACKET_CLOSE; return 0; } -// 287 "scanner.c" -jj26: - ++JJCURSOR; -// 147 "scanner.re" +// 341 "scanner.c" +aa26: + ++AACURSOR; +// 142 "scanner.re" { token->opcode = PHANNOT_T_AT; return 0; } -// 295 "scanner.c" -jj28: - ++JJCURSOR; -// 152 "scanner.re" +// 349 "scanner.c" +aa28: + ++AACURSOR; +// 147 "scanner.re" { token->opcode = PHANNOT_T_EQUALS; return 0; } -// 303 "scanner.c" -jj30: - ++JJCURSOR; -// 157 "scanner.re" +// 357 "scanner.c" +aa30: + ++AACURSOR; +// 152 "scanner.re" { token->opcode = PHANNOT_T_COLON; return 0; } -// 311 "scanner.c" -jj32: - ++JJCURSOR; -// 162 "scanner.re" +// 365 "scanner.c" +aa32: + ++AACURSOR; +// 157 "scanner.re" { token->opcode = PHANNOT_T_COMMA; return 0; } -// 319 "scanner.c" -jj34: - ++JJCURSOR; - jjch = *JJCURSOR; - goto jj42; -jj35: -// 167 "scanner.re" +// 373 "scanner.c" +aa34: + ++AACURSOR; + aach = *AACURSOR; + goto aa42; +aa35: +// 162 "scanner.re" { token->opcode = PHANNOT_T_IGNORE; return 0; } -// 330 "scanner.c" -jj36: - ++JJCURSOR; -// 172 "scanner.re" +// 384 "scanner.c" +aa36: + ++AACURSOR; +// 167 "scanner.re" { s->active_line++; token->opcode = PHANNOT_T_IGNORE; return 0; } -// 339 "scanner.c" -jj38: - ++JJCURSOR; -// 178 "scanner.re" +// 393 "scanner.c" +aa38: + ++AACURSOR; +// 173 "scanner.re" { status = PHANNOT_SCANNER_RETCODE_EOF; break; } -// 347 "scanner.c" -jj40: - jjch = *++JJCURSOR; - goto jj3; -jj41: - ++JJCURSOR; - jjch = *JJCURSOR; -jj42: - switch (jjch) { +// 401 "scanner.c" +aa40: + aach = *++AACURSOR; + goto aa3; +aa41: + ++AACURSOR; + aach = *AACURSOR; +aa42: + switch (aach) { case '\t': case '\r': - case ' ': goto jj41; - default: goto jj35; - } -jj43: - ++JJCURSOR; - jjch = *JJCURSOR; -jj44: - switch (jjch) { + case ' ': goto aa41; + default: goto aa35; + } +aa43: + aaaccept = 1; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; +aa44: + switch (aach) { case '0': case '1': case '2': @@ -30801,7 +30652,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -30828,77 +30678,215 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj7; - } -jj45: - ++JJCURSOR; - jjch = *JJCURSOR; -jj46: - switch (jjch) { - case 0x00: goto jj47; - case '\'': goto jj49; - case '\\': goto jj48; - default: goto jj45; - } -jj47: - JJCURSOR = JJMARKER; - switch (jjaccept) { - case 0: goto jj5; - case 1: goto jj3; - } -jj48: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { - case '\n': goto jj47; - default: goto jj45; - } -jj49: - ++JJCURSOR; -// 100 "scanner.re" + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa7; + } +aa45: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa47; + default: goto aa46; + } +aa46: + AACURSOR = AAMARKER; + switch (aaaccept) { + case 0: goto aa5; + case 1: goto aa7; + case 2: goto aa3; + case 3: goto aa60; + case 4: goto aa65; + default: goto aa69; + } +aa47: + aaaccept = 1; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto aa47; + case '\\': goto aa45; + default: goto aa7; + } +aa49: + ++AACURSOR; + aach = *AACURSOR; +aa50: + switch (aach) { + case 0x00: goto aa46; + case '\'': goto aa52; + case '\\': goto aa51; + default: goto aa49; + } +aa51: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa49; + } +aa52: + ++AACURSOR; +// 95 "scanner.re" { token->opcode = PHANNOT_T_STRING; - token->value = estrndup(q, JJCURSOR - q - 1); - token->len = JJCURSOR - q - 1; - q = JJCURSOR; + token->value = estrndup(q, AACURSOR - q - 1); + token->len = AACURSOR - q - 1; + q = AACURSOR; return 0; } -// 465 "scanner.c" -jj51: - ++JJCURSOR; - jjch = *JJCURSOR; -jj52: - switch (jjch) { - case 0x00: goto jj47; - case '"': goto jj49; - case '\\': goto jj53; - default: goto jj51; - } -jj53: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { - case '\n': goto jj47; - default: goto jj51; - } -jj54: - jjch = *++JJCURSOR; - switch (jjch) { +// 654 "scanner.c" +aa54: + ++AACURSOR; + aach = *AACURSOR; +aa55: + switch (aach) { + case 0x00: goto aa46; + case '"': goto aa52; + case '\\': goto aa56; + default: goto aa54; + } +aa56: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa54; + } +aa57: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'U': - case 'u': goto jj55; - default: goto jj44; + case 'u': goto aa58; + default: goto aa44; } -jj55: - jjch = *++JJCURSOR; - switch (jjch) { +aa58: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'E': - case 'e': goto jj56; - default: goto jj44; + case 'e': goto aa59; + default: goto aa44; } -jj56: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa59: + aaaccept = 3; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -30935,7 +30923,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -30962,40 +30949,45 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj57; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa60; } -jj57: -// 94 "scanner.re" +aa60: +// 89 "scanner.re" { token->opcode = PHANNOT_T_TRUE; return 0; } -// 572 "scanner.c" -jj58: - jjch = *++JJCURSOR; - switch (jjch) { +// 764 "scanner.c" +aa61: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj59; - default: goto jj44; + case 'l': goto aa62; + default: goto aa44; } -jj59: - jjch = *++JJCURSOR; - switch (jjch) { +aa62: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'S': - case 's': goto jj60; - default: goto jj44; + case 's': goto aa63; + default: goto aa44; } -jj60: - jjch = *++JJCURSOR; - switch (jjch) { +aa63: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'E': - case 'e': goto jj61; - default: goto jj44; + case 'e': goto aa64; + default: goto aa44; } -jj61: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa64: + aaaccept = 4; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -31032,7 +31024,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -31059,33 +31050,37 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj62; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa65; } -jj62: -// 89 "scanner.re" +aa65: +// 84 "scanner.re" { token->opcode = PHANNOT_T_FALSE; return 0; } -// 669 "scanner.c" -jj63: - jjch = *++JJCURSOR; - switch (jjch) { +// 865 "scanner.c" +aa66: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj64; - default: goto jj44; + case 'l': goto aa67; + default: goto aa44; } -jj64: - jjch = *++JJCURSOR; - switch (jjch) { +aa67: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'L': - case 'l': goto jj65; - default: goto jj44; + case 'l': goto aa68; + default: goto aa44; } -jj65: - ++JJCURSOR; - switch ((jjch = *JJCURSOR)) { +aa68: + aaaccept = 5; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -31122,7 +31117,6 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -31149,19 +31143,20 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case 'w': case 'x': case 'y': - case 'z': goto jj43; - default: goto jj66; + case 'z': goto aa43; + case '\\': goto aa45; + default: goto aa69; } -jj66: -// 84 "scanner.re" +aa69: +// 79 "scanner.re" { token->opcode = PHANNOT_T_NULL; return 0; } -// 759 "scanner.c" -jj67: - jjch = *++JJCURSOR; - switch (jjch) { +// 958 "scanner.c" +aa70: + aach = *++AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -31171,16 +31166,16 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj70; - default: goto jj47; - } -jj68: - jjaccept = 0; - JJMARKER = ++JJCURSOR; - jjch = *JJCURSOR; -jj69: - switch (jjch) { - case '.': goto jj67; + case '9': goto aa73; + default: goto aa46; + } +aa71: + aaaccept = 0; + AAMARKER = ++AACURSOR; + aach = *AACURSOR; +aa72: + switch (aach) { + case '.': goto aa70; case '0': case '1': case '2': @@ -31190,13 +31185,13 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj68; - default: goto jj5; + case '9': goto aa71; + default: goto aa5; } -jj70: - ++JJCURSOR; - jjch = *JJCURSOR; - switch (jjch) { +aa73: + ++AACURSOR; + aach = *AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -31206,21 +31201,21 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to case '6': case '7': case '8': - case '9': goto jj70; - default: goto jj72; + case '9': goto aa73; + default: goto aa75; } -jj72: -// 76 "scanner.re" +aa75: +// 71 "scanner.re" { token->opcode = PHANNOT_T_DOUBLE; - token->value = estrndup(start, JJCURSOR - start); - token->len = JJCURSOR - start; - q = JJCURSOR; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -// 819 "scanner.c" +// 1018 "scanner.c" } -// 188 "scanner.re" +// 183 "scanner.re" } @@ -33066,7 +33061,7 @@ static PHP_METHOD(Phalcon_Assets_Manager, output) { zephir_check_call_status(); if (zephir_fast_count_int(filters TSRMLS_CC)) { if (zephir_is_true(local)) { - ZEPHIR_CALL_METHOD(&sourcePath, resource, "getrealsourcepath", NULL); + ZEPHIR_CALL_METHOD(&sourcePath, resource, "getrealsourcepath", NULL, completeSourcePath); zephir_check_call_status(); if (!(zephir_is_true(sourcePath))) { ZEPHIR_CALL_METHOD(&sourcePath, resource, "getpath", NULL); @@ -36953,6 +36948,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Cache_Backend_Memory) { zend_declare_property_null(phalcon_cache_backend_memory_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, phalcon_cache_backendinterface_ce); + zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, zend_ce_serializable); return SUCCESS; } @@ -37249,6 +37245,49 @@ static PHP_METHOD(Phalcon_Cache_Backend_Memory, flush) { } +static PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + zval *_1; + zval *_0; + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 1, 0 TSRMLS_CC); + ZEPHIR_OBS_VAR(_1); + zephir_read_property_this(&_1, this_ptr, SL("_frontend"), PH_NOISY_CC); + zephir_array_update_string(&_0, SL("frontend"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", &_2, _0); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *data, *unserialized = NULL, *_1; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + + ZEPHIR_CALL_FUNCTION(&unserialized, "unserialize", &_0, data); + zephir_check_call_status(); + if (Z_TYPE_P(unserialized) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(zend_exception_get_default(TSRMLS_C), "Unserialized data must be an array", "phalcon/cache/backend/memory.zep", 295); + return; + } + zephir_array_fetch_string(&_1, unserialized, SL("frontend"), PH_NOISY | PH_READONLY, "phalcon/cache/backend/memory.zep", 298 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_frontend"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + @@ -38150,7 +38189,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, save) { static PHP_METHOD(Phalcon_Cache_Backend_Redis, delete) { int ZEPHIR_LAST_CALL_STATUS; - zval *keyName, *redis = NULL, *prefix, *prefixedKey, *lastKey, *options, *specialKey, *_0 = NULL; + zval *keyName, *redis = NULL, *prefix, *prefixedKey, *lastKey, *options, *specialKey; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &keyName); @@ -38181,12 +38220,9 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, delete) { zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 296 TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, redis, "srem", NULL, specialKey, prefixedKey); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, redis, "delete", NULL, lastKey); + ZEPHIR_RETURN_CALL_METHOD(redis, "delete", NULL, lastKey); zephir_check_call_status(); - if (!ZEPHIR_IS_LONG(_0, 1)) { - RETURN_MM_BOOL(0); - } - RETURN_MM_BOOL(1); + RETURN_MM(); } @@ -38196,7 +38232,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, queryKeys) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *prefix = NULL, *redis = NULL, *options, *keys = NULL, *specialKey, *key = NULL, **_2; + zval *prefix = NULL, *redis = NULL, *options, *keys = NULL, *specialKey, *key = NULL, *value = NULL, **_2; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, &prefix); @@ -38217,23 +38253,24 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, queryKeys) { ZEPHIR_OBS_VAR(options); zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); if (!(zephir_array_isset_string(options, SS("statsKey")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 329); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 326); return; } ZEPHIR_OBS_VAR(specialKey); - zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 332 TSRMLS_CC); + zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 329 TSRMLS_CC); ZEPHIR_CALL_METHOD(&keys, redis, "smembers", NULL, specialKey); zephir_check_call_status(); if (Z_TYPE_P(keys) == IS_ARRAY) { - zephir_is_iterable(keys, &_1, &_0, 1, 0, "phalcon/cache/backend/redis.zep", 344); + zephir_is_iterable(keys, &_1, &_0, 1, 0, "phalcon/cache/backend/redis.zep", 341); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { - ZEPHIR_GET_HVALUE(key, _2); + ZEPHIR_GET_HMKEY(key, _1, _0); + ZEPHIR_GET_HVALUE(value, _2); _3 = zephir_is_true(prefix); if (_3) { - _3 = !(zephir_start_with(key, prefix, NULL)); + _3 = !(zephir_start_with(value, prefix, NULL)); } if (_3) { zephir_array_unset(&keys, key, PH_SEPARATE); @@ -38394,11 +38431,11 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, flush) { ZEPHIR_OBS_VAR(options); zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); if (!(zephir_array_isset_string(options, SS("statsKey")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 459); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_ce, "Unexpected inconsistency in options", "phalcon/cache/backend/redis.zep", 456); return; } ZEPHIR_OBS_VAR(specialKey); - zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 462 TSRMLS_CC); + zephir_array_fetch_string(&specialKey, options, SL("statsKey"), PH_NOISY, "phalcon/cache/backend/redis.zep", 459 TSRMLS_CC); ZEPHIR_OBS_VAR(redis); zephir_read_property_this(&redis, this_ptr, SL("_redis"), PH_NOISY_CC); if (Z_TYPE_P(redis) != IS_OBJECT) { @@ -38410,7 +38447,7 @@ static PHP_METHOD(Phalcon_Cache_Backend_Redis, flush) { ZEPHIR_CALL_METHOD(&keys, redis, "smembers", NULL, specialKey); zephir_check_call_status(); if (Z_TYPE_P(keys) == IS_ARRAY) { - zephir_is_iterable(keys, &_1, &_0, 0, 0, "phalcon/cache/backend/redis.zep", 478); + zephir_is_iterable(keys, &_1, &_0, 0, 0, "phalcon/cache/backend/redis.zep", 475); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -39683,20 +39720,24 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; zend_bool _3; int ZEPHIR_LAST_CALL_STATUS; - zval *arguments = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments_param = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &arguments); + zephir_fetch_params(1, 0, 1, &arguments_param); - if (!arguments) { - arguments = ZEPHIR_GLOBAL(global_null); + if (!arguments_param) { + ZEPHIR_INIT_VAR(arguments); + array_init(arguments); + } else { + zephir_get_arrval(arguments, arguments_param); } ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 155); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 152); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_eventsManager"), PH_NOISY_CC); @@ -39707,7 +39748,7 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_check_temp_parameter(_2); zephir_check_call_status(); ZEPHIR_CPY_WRT(router, _1); - _3 = !zephir_is_true(arguments); + _3 = !(zephir_fast_count_int(arguments TSRMLS_CC)); if (_3) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_arguments"), PH_NOISY_CC); _3 = zephir_is_true(_0); @@ -39742,14 +39783,14 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module '", moduleName, "' isn't registered in the console container"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 179 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 176 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(module); - zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 182 TSRMLS_CC); + zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 179 TSRMLS_CC); if (Z_TYPE_P(module) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 184); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 181); return; } ZEPHIR_OBS_VAR(path); @@ -39761,7 +39802,7 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module definition path '", path, "' doesn't exist"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 189 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 186 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -39894,7 +39935,7 @@ static PHP_METHOD(Phalcon_Cli_Console, setArgument) { Z_UNSET_ISREF_P(arguments); zephir_check_call_status(); } - zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 270); + zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 267); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -39951,11 +39992,11 @@ static PHP_METHOD(Phalcon_Cli_Console, setArgument) { zephir_substr(_9, arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, _9, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 262); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 259); } } } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 266); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 263); } } if (str) { @@ -42214,9 +42255,8 @@ static PHP_METHOD(Phalcon_Db_Adapter, fetchAll) { zephir_check_call_status(); if (!(zephir_is_true(row))) { break; - } else { - zephir_array_append(&results, row, PH_SEPARATE, "phalcon/db/adapter.zep", 238); } + zephir_array_append(&results, row, PH_SEPARATE, "phalcon/db/adapter.zep", 239); } } RETURN_CCTOR(results); @@ -43731,13 +43771,28 @@ static PHP_METHOD(Phalcon_Db_Adapter, describeReferences) { static PHP_METHOD(Phalcon_Db_Adapter, tableOptions) { int ZEPHIR_LAST_CALL_STATUS; - zval *tableName, *schemaName = NULL, *sql = NULL, *_0, *_1 = NULL, *_2, *_3; + zval *tableName_param = NULL, *schemaName_param = NULL, *sql = NULL, *_0, *_1 = NULL, *_2, *_3; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } @@ -43749,7 +43804,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, tableOptions) { ZVAL_LONG(_2, 1); ZEPHIR_CALL_METHOD(&_1, this_ptr, "fetchall", NULL, sql, _2); zephir_check_call_status(); - zephir_array_fetch_long(&_3, _1, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter.zep", 979 TSRMLS_CC); + zephir_array_fetch_long(&_3, _1, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter.zep", 975 TSRMLS_CC); RETURN_CTOR(_3); } array_init(return_value); @@ -43784,7 +43839,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, createSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/db/adapter.zep", 994); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/db/adapter.zep", 990); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "createsavepoint", NULL, name); @@ -43822,7 +43877,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, releaseSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1010); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1006); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "supportsreleasesavepoints", NULL); @@ -43865,7 +43920,7 @@ static PHP_METHOD(Phalcon_Db_Adapter, rollbackSavepoint) { ZEPHIR_CALL_METHOD(&_0, dialect, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1030); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1026); return; } ZEPHIR_CALL_METHOD(&_1, dialect, "rollbacksavepoint", NULL, name); @@ -43890,14 +43945,14 @@ static PHP_METHOD(Phalcon_Db_Adapter, setNestedTransactionsWithSavepoints) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_transactionLevel"), PH_NOISY_CC); if (ZEPHIR_GT_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/db/adapter.zep", 1043); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/db/adapter.zep", 1039); return; } _1 = zephir_fetch_nproperty_this(this_ptr, SL("_dialect"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(&_2, _1, "supportssavepoints", NULL); zephir_check_call_status(); if (!(zephir_is_true(_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1047); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/db/adapter.zep", 1043); return; } zephir_update_property_this(this_ptr, SL("_transactionsWithSavepoints"), nestedTransactionsWithSavepoints ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -44612,18 +44667,108 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect) { zend_declare_property_null(phalcon_db_dialect_ce, SL("_escapeChar"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_class_implements(phalcon_db_dialect_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } +static PHP_METHOD(Phalcon_Db_Dialect, escape) { + + HashTable *_6; + HashPosition _5; + zval *_4 = NULL; + zend_bool isEscape, _8, _9, _10; + zval *str_param = NULL, *escapeChar_param = NULL, *parts = NULL, *key = NULL, *part = NULL, *newParts = NULL, *_0, *_2, *_3, **_7, *_11 = NULL; + zval *str = NULL, *escapeChar = NULL, *_1 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(str_param) == IS_STRING)) { + zephir_get_strval(str, str_param); + } else { + ZEPHIR_INIT_VAR(str); + ZVAL_EMPTY_STRING(str); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (ZEPHIR_IS_STRING(escapeChar, "")) { + ZEPHIR_OBS_VAR(_0); + zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); + zephir_get_strval(_1, _0); + ZEPHIR_CPY_WRT(escapeChar, _1); + } + isEscape = ZEPHIR_GLOBAL(db).escape_identifiers; + if (!(zephir_memnstr_str(str, SL("."), "phalcon/db/dialect.zep", 47))) { + if (isEscape) { + if (ZEPHIR_IS_STRING(escapeChar, "")) { + RETURN_CTOR(str); + } + if (ZEPHIR_IS_STRING(str, "*")) { + RETURN_CTOR(str); + } + ZEPHIR_CONCAT_VVV(return_value, escapeChar, str, escapeChar); + RETURN_MM(); + } + RETURN_CTOR(str); + } + ZEPHIR_INIT_VAR(_2); + ZEPHIR_INIT_VAR(_3); + zephir_fast_trim(_3, str, escapeChar, ZEPHIR_TRIM_BOTH TSRMLS_CC); + zephir_fast_explode_str(_2, SL("."), _3, LONG_MAX TSRMLS_CC); + zephir_get_arrval(_4, _2); + ZEPHIR_CPY_WRT(parts, _4); + ZEPHIR_CPY_WRT(newParts, parts); + zephir_is_iterable(parts, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 77); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HMKEY(key, _6, _5); + ZEPHIR_GET_HVALUE(part, _7); + _8 = ZEPHIR_IS_STRING(escapeChar, ""); + if (!(_8)) { + _8 = !isEscape; + } + _9 = _8; + if (!(_9)) { + _9 = ZEPHIR_IS_STRING(part, ""); + } + _10 = _9; + if (!(_10)) { + _10 = ZEPHIR_IS_STRING(part, "*"); + } + if (_10) { + continue; + } + ZEPHIR_INIT_LNVAR(_11); + ZEPHIR_CONCAT_VVV(_11, escapeChar, part, escapeChar); + zephir_array_update_zval(&newParts, key, &_11, PH_COPY | PH_SEPARATE); + } + zephir_fast_join_str(return_value, SL("."), newParts TSRMLS_CC); + RETURN_MM(); + +} + static PHP_METHOD(Phalcon_Db_Dialect, limit) { - int number; - zval *sqlQuery_param = NULL, *number_param = NULL, _0, _1; + zend_bool _2; + zval *sqlQuery_param = NULL, *number, *_0, *_1, *_3, *_4, *_5; zval *sqlQuery = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number_param); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); if (unlikely(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be a string") TSRMLS_CC); @@ -44636,18 +44781,28 @@ static PHP_METHOD(Phalcon_Db_Dialect, limit) { ZEPHIR_INIT_VAR(sqlQuery); ZVAL_EMPTY_STRING(sqlQuery); } - number = zephir_get_intval(number_param); - ZEPHIR_SINIT_VAR(_0); - ZVAL_LONG(&_0, number); - if (zephir_is_numeric(&_0)) { - ZEPHIR_SINIT_VAR(_1); - ZVAL_LONG(&_1, number); - ZEPHIR_CONCAT_VSV(return_value, sqlQuery, " LIMIT ", &_1); - RETURN_MM(); + if (Z_TYPE_P(number) == IS_ARRAY) { + zephir_array_fetch_long(&_0, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 95 TSRMLS_CC); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_SV(_1, " LIMIT ", _0); + zephir_concat_self(&sqlQuery, _1 TSRMLS_CC); + _2 = zephir_array_isset_long(number, 1); + if (_2) { + zephir_array_fetch_long(&_3, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 97 TSRMLS_CC); + _2 = (zephir_fast_strlen_ev(_3)) ? 1 : 0; + } + if (_2) { + zephir_array_fetch_long(&_4, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 98 TSRMLS_CC); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SV(_5, " OFFSET ", _4); + zephir_concat_self(&sqlQuery, _5 TSRMLS_CC); + } + RETURN_CTOR(sqlQuery); } - RETURN_CTOR(sqlQuery); + ZEPHIR_CONCAT_VSV(return_value, sqlQuery, " LIMIT ", number); + RETURN_MM(); } @@ -44705,9 +44860,11 @@ static PHP_METHOD(Phalcon_Db_Dialect, sharedLock) { static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; HashTable *_1; HashPosition _0; - zval *columnList_param = NULL, *strList, *escapeChar, *column = NULL, **_2, *_3 = NULL; + zval *columnList_param = NULL, *columns, *column = NULL, **_2, *_3 = NULL; zval *columnList = NULL; ZEPHIR_MM_GROW(); @@ -44717,33 +44874,103 @@ static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { - ZEPHIR_INIT_VAR(strList); - array_init(strList); - ZEPHIR_OBS_VAR(escapeChar); - zephir_read_property_this(&escapeChar, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 90); + ZEPHIR_INIT_VAR(columns); + array_init(columns); + zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 149); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HVALUE(column, _2); - ZEPHIR_INIT_LNVAR(_3); - ZEPHIR_CONCAT_VVV(_3, escapeChar, column, escapeChar); - zephir_array_append(&strList, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 88); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlcolumn", &_4, column); + zephir_check_call_status(); + zephir_array_append(&columns, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 146); } - zephir_fast_join_str(return_value, SL(", "), strList TSRMLS_CC); + zephir_fast_join_str(return_value, SL(", "), columns TSRMLS_CC); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn) { + + zephir_fcall_cache_entry *_2 = NULL; + zend_bool _0, _1; + int ZEPHIR_LAST_CALL_STATUS; + zval *column = NULL, *columnExpression = NULL, *columnAlias = NULL, *columnField, *columnDomain; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + ZEPHIR_SEPARATE_PARAM(column); + + + if (Z_TYPE_P(column) != IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, column); + zephir_check_call_status(); + RETURN_MM(); + } + if (!(zephir_array_isset_string(column, SS("type")))) { + ZEPHIR_OBS_VAR(columnField); + zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 168 TSRMLS_CC); + if (Z_TYPE_P(columnField) == IS_ARRAY) { + ZEPHIR_INIT_VAR(columnExpression); + zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("scalar"), 1); + zephir_array_update_string(&columnExpression, SL("value"), &columnField, PH_COPY | PH_SEPARATE); + } else if (ZEPHIR_IS_STRING(columnField, "*")) { + ZEPHIR_INIT_NVAR(columnExpression); + zephir_create_array(columnExpression, 1, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("all"), 1); + } else { + ZEPHIR_INIT_NVAR(columnExpression); + zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); + add_assoc_stringl_ex(columnExpression, SS("type"), SL("qualified"), 1); + zephir_array_update_string(&columnExpression, SL("name"), &columnField, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(columnDomain); + _0 = zephir_array_isset_long_fetch(&columnDomain, column, 1, 0 TSRMLS_CC); + if (_0) { + _0 = !ZEPHIR_IS_STRING(columnDomain, ""); + } + if (_0) { + zephir_array_update_string(&columnExpression, SL("domain"), &columnDomain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(columnAlias); + _1 = zephir_array_isset_long_fetch(&columnAlias, column, 2, 0 TSRMLS_CC); + if (_1) { + _1 = zephir_is_true(columnAlias); + } + if (_1) { + zephir_array_update_string(&columnExpression, SL("sqlAlias"), &columnAlias, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(columnExpression, column); + } + ZEPHIR_CALL_METHOD(&column, this_ptr, "getsqlexpression", NULL, columnExpression); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(columnAlias); + _0 = zephir_array_isset_string_fetch(&columnAlias, columnExpression, SS("sqlAlias"), 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(columnAlias); + _0 = zephir_array_isset_string_fetch(&columnAlias, columnExpression, SS("alias"), 0 TSRMLS_CC); + } + if (_0) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", &_2, column, columnAlias); + zephir_check_call_status(); + RETURN_MM(); + } else { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", &_2, column); + zephir_check_call_status(); + RETURN_MM(); + } + +} + static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { - HashTable *_8, *_13; - HashPosition _7, _12; - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_17 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL, *_11 = NULL, *_12 = NULL, *_15 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_1 = NULL; - zval *expression_param = NULL, *escapeChar = NULL, *type, *domain, *operator, *left = NULL, *right = NULL, *name = NULL, *sqlItems, *escapedName = NULL, *sqlArguments, *arguments, *argument = NULL, *item = NULL, *_0, *_2, *_4, *_5, *_6 = NULL, **_9, *_10 = NULL, *_11 = NULL, **_14, *_15 = NULL, *_16; + zval *expression_param = NULL, *escapeChar = NULL, *type, *_3, *_6 = NULL, *_13, *_14; zval *expression = NULL; ZEPHIR_MM_GROW(); @@ -44752,177 +44979,86 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { expression = expression_param; if (!escapeChar) { - ZEPHIR_CPY_WRT(escapeChar, ZEPHIR_GLOBAL(global_null)); - } else { - ZEPHIR_SEPARATE_PARAM(escapeChar); + escapeChar = ZEPHIR_GLOBAL(global_null); } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - if (Z_TYPE_P(escapeChar) == IS_NULL) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_get_strval(_1, _0); - ZEPHIR_CPY_WRT(escapeChar, _1); - } - } ZEPHIR_OBS_VAR(type); if (!(zephir_array_isset_string_fetch(&type, expression, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 112); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 228); return; } - if (ZEPHIR_IS_STRING(type, "qualified")) { - ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 120 TSRMLS_CC); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_VAR(escapedName); - ZEPHIR_CONCAT_VVV(escapedName, escapeChar, name, escapeChar); - } else { - ZEPHIR_CPY_WRT(escapedName, name); + do { + if (ZEPHIR_IS_STRING(type, "scalar")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionscalar", &_0, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_OBS_VAR(domain); - if (zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC)) { - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(return_value, escapeChar, domain, escapeChar, ".", escapedName); - RETURN_MM(); - } else { - ZEPHIR_CONCAT_VSV(return_value, domain, ".", escapedName); - RETURN_MM(); - } + if (ZEPHIR_IS_STRING(type, "object")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionobject", &_1, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); } - RETURN_CCTOR(escapedName); - } - if (ZEPHIR_IS_STRING(type, "literal")) { - zephir_array_fetch_string(&_2, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 145 TSRMLS_CC); - RETURN_CTOR(_2); - } - if (ZEPHIR_IS_STRING(type, "binary-op")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 153 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 154 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_5, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 156 TSRMLS_CC); - ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _5, " ", right); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "unary-op")) { - ZEPHIR_OBS_VAR(operator); - zephir_array_fetch_string(&operator, expression, SL("op"), PH_NOISY, "phalcon/db/dialect.zep", 164 TSRMLS_CC); - ZEPHIR_OBS_NVAR(left); - if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, left, escapeChar); + if (ZEPHIR_IS_STRING(type, "qualified")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionqualified", &_2, expression, escapeChar); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, _6, operator); RETURN_MM(); } - ZEPHIR_OBS_NVAR(right); - if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, right, escapeChar); + if (ZEPHIR_IS_STRING(type, "literal") || ZEPHIR_IS_STRING(type, "placeholder")) { + zephir_array_fetch_string(&_3, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 256 TSRMLS_CC); + RETURN_CTOR(_3); + } + if (ZEPHIR_IS_STRING(type, "binary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionbinaryoperations", &_4, expression, escapeChar); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, operator, _6); RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 180); - return; - } - if (ZEPHIR_IS_STRING(type, "placeholder")) { - zephir_array_fetch_string(&_2, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 187 TSRMLS_CC); - RETURN_CTOR(_2); - } - if (ZEPHIR_IS_STRING(type, "parentheses")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 194 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "functionCall")) { - ZEPHIR_OBS_NVAR(name); - zephir_array_fetch_string(&name, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 201 TSRMLS_CC); - ZEPHIR_INIT_VAR(sqlArguments); - array_init(sqlArguments); - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, expression, SS("arguments"), 0 TSRMLS_CC)) { - zephir_is_iterable(arguments, &_8, &_7, 0, 0, "phalcon/db/dialect.zep", 207); - for ( - ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS - ; zephir_hash_move_forward_ex(_8, &_7) - ) { - ZEPHIR_GET_HVALUE(argument, _9); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "getsqlexpression", &_3, argument, escapeChar); - zephir_check_call_status(); - zephir_array_append(&sqlArguments, _10, PH_SEPARATE, "phalcon/db/dialect.zep", 205); - } - if (zephir_array_isset_string(expression, SS("distinct"))) { - ZEPHIR_INIT_VAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(DISTINCT ", _11, ")"); - RETURN_MM(); - } else { - ZEPHIR_INIT_NVAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(", _11, ")"); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_11); - zephir_fast_join_str(_11, SL(", "), sqlArguments TSRMLS_CC); - ZEPHIR_CONCAT_VSVS(return_value, name, "(", _11, ")"); + if (ZEPHIR_IS_STRING(type, "unary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionunaryoperations", &_5, expression, escapeChar); + zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_CONCAT_VS(return_value, name, "()"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "list")) { - ZEPHIR_INIT_VAR(sqlItems); - array_init(sqlItems); - zephir_array_fetch_long(&_2, expression, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 222 TSRMLS_CC); - zephir_is_iterable(_2, &_13, &_12, 0, 0, "phalcon/db/dialect.zep", 225); - for ( - ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS - ; zephir_hash_move_forward_ex(_13, &_12) - ) { - ZEPHIR_GET_HVALUE(item, _14); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_3, item, escapeChar); + if (ZEPHIR_IS_STRING(type, "parentheses")) { + zephir_array_fetch_string(&_3, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 274 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_7, _3, escapeChar); zephir_check_call_status(); - zephir_array_append(&sqlItems, _6, PH_SEPARATE, "phalcon/db/dialect.zep", 223); + ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); + RETURN_MM(); } - ZEPHIR_INIT_VAR(_15); - zephir_fast_join_str(_15, SL(", "), sqlItems TSRMLS_CC); - ZEPHIR_CONCAT_SVS(return_value, "(", _15, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "all")) { - RETURN_MM_STRING("*", 1); - } - if (ZEPHIR_IS_STRING(type, "cast")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 240 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 241 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "convert")) { - zephir_array_fetch_string(&_2, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 251 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_3, _2, escapeChar); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 252 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_3, _4, escapeChar); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_15); - object_init_ex(_15, phalcon_db_exception_ce); - ZEPHIR_INIT_VAR(_16); - ZEPHIR_CONCAT_SVS(_16, "Invalid SQL expression type '", type, "'"); - ZEPHIR_CALL_METHOD(NULL, _15, "__construct", &_17, _16); + if (ZEPHIR_IS_STRING(type, "functionCall")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionfunctioncall", &_8, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "list")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionlist", &_9, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "all")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionall", &_10, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "cast")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncastvalue", &_11, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(type, "convert")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionconvertvalue", &_12, expression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + } while(0); + + ZEPHIR_INIT_VAR(_13); + object_init_ex(_13, phalcon_db_exception_ce); + ZEPHIR_INIT_VAR(_14); + ZEPHIR_CONCAT_SVS(_14, "Invalid SQL expression type '", type, "'"); + ZEPHIR_CALL_METHOD(NULL, _13, "__construct", &_15, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_15, "phalcon/db/dialect.zep", 260 TSRMLS_CC); + zephir_throw_exception_debug(_13, "phalcon/db/dialect.zep", 310 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -44930,9 +45066,9 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { - zend_bool _2; - zval *escapeChar = NULL, *_1 = NULL; - zval *table, *escapeChar_param = NULL, *sqlTable = NULL, *sqlSchema = NULL, *aliasName, *sqlTableAlias = NULL, *schemaName, *tableName, *_0; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *table, *escapeChar_param = NULL, *tableName, *schemaName = NULL, *aliasName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &table, &escapeChar_param); @@ -44945,68 +45081,36 @@ static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { } - if (ZEPHIR_IS_STRING_IDENTICAL(escapeChar, "")) { - ZEPHIR_OBS_VAR(_0); - zephir_read_property_this(&_0, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - zephir_get_strval(_1, _0); - ZEPHIR_CPY_WRT(escapeChar, _1); - } if (Z_TYPE_P(table) == IS_ARRAY) { ZEPHIR_OBS_VAR(tableName); - zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 284 TSRMLS_CC); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_VAR(sqlTable); - ZEPHIR_CONCAT_VVV(sqlTable, escapeChar, tableName, escapeChar); - } else { - ZEPHIR_CPY_WRT(sqlTable, tableName); - } + zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 329 TSRMLS_CC); ZEPHIR_OBS_VAR(schemaName); - zephir_array_fetch_long(&schemaName, table, 1, PH_NOISY, "phalcon/db/dialect.zep", 295 TSRMLS_CC); - _2 = Z_TYPE_P(schemaName) != IS_NULL; - if (_2) { - _2 = !ZEPHIR_IS_STRING(schemaName, ""); - } - if (_2) { - ZEPHIR_INIT_VAR(sqlSchema); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(sqlSchema, escapeChar, schemaName, escapeChar, ".", sqlTable); - } else { - ZEPHIR_CONCAT_VSV(sqlSchema, schemaName, ".", sqlTable); - } - } else { - ZEPHIR_CPY_WRT(sqlSchema, sqlTable); + if (!(zephir_array_isset_long_fetch(&schemaName, table, 1, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(schemaName); + ZVAL_NULL(schemaName); } ZEPHIR_OBS_VAR(aliasName); - if (zephir_array_isset_long_fetch(&aliasName, table, 2, 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(sqlTableAlias); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VSVVV(sqlTableAlias, sqlSchema, " AS ", escapeChar, aliasName, escapeChar); - } else { - ZEPHIR_CONCAT_VSV(sqlTableAlias, sqlSchema, " AS ", aliasName); - } - } else { - ZEPHIR_CPY_WRT(sqlTableAlias, sqlSchema); + if (!(zephir_array_isset_long_fetch(&aliasName, table, 2, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(aliasName); + ZVAL_NULL(aliasName); } - RETURN_CCTOR(sqlTableAlias); - } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVV(return_value, escapeChar, table, escapeChar); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparetable", NULL, tableName, schemaName, aliasName, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + RETVAL_ZVAL(table, 1, 0); RETURN_MM(); } - RETVAL_ZVAL(table, 1, 0); - RETURN_MM(); } static PHP_METHOD(Phalcon_Db_Dialect, select) { - zephir_nts_static zephir_fcall_cache_entry *_8 = NULL; - zephir_fcall_cache_entry *_3 = NULL; + zend_bool _6, _11, _13, _15, _17, _19; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_9 = NULL, *_12 = NULL, *_14 = NULL, *_16 = NULL, *_18 = NULL, *_21 = NULL; int ZEPHIR_LAST_CALL_STATUS; - HashTable *_1, *_5, *_11, *_16, *_23, *_27; - HashPosition _0, _4, _10, _15, _22, _26; - zval *definition_param = NULL, *tables, *columns, *escapeChar = NULL, *columnItem = NULL, *column = NULL, *selectedColumns, *columnSql = NULL, *columnDomainSql = NULL, *columnAlias = NULL, *selectedTables, *sqlJoin = NULL, *joinExpressions = NULL, *joinCondition = NULL, *joinConditionsArray = NULL, *tablesSql = NULL, *columnDomain = NULL, *columnAliasSql = NULL, *columnsSql = NULL, *table = NULL, *distinct, *sql = NULL, *joins, *join = NULL, *sqlTable = NULL, *whereConditions, *groupFields, *groupField = NULL, *groupItems, *havingConditions, *orderFields, *orderItem = NULL, *orderItems, *orderSqlItem = NULL, *sqlOrderType = NULL, *orderSqlItemType = NULL, *limitValue, *limitNumber = NULL, *limitNumberValue, *offset, *offsetNumber = NULL, **_2, **_6, *_7 = NULL, *_9 = NULL, **_12, *_13, *_14, **_17, *_18 = NULL, *_19 = NULL, *_20 = NULL, *_21 = NULL, **_24, *_25 = NULL, **_28, *_29; - zval *definition = NULL; + zval *definition_param = NULL, *tables, *columns, *sql = NULL, *distinct, *joins, *where, *groupBy, *having, *orderBy, *limit, *_0 = NULL, *_2, *_3 = NULL, *_5, *_7 = NULL, *_8, *_10 = NULL; + zval *definition = NULL, *_20; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &definition_param); @@ -45017,287 +45121,109 @@ static PHP_METHOD(Phalcon_Db_Dialect, select) { ZEPHIR_OBS_VAR(tables); if (!(zephir_array_isset_string_fetch(&tables, definition, SS("tables"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 345); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 360); return; } ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 349); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 364); return; } - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_OBS_VAR(escapeChar); - zephir_read_property_this(&escapeChar, this_ptr, SL("_escapeChar"), PH_NOISY_CC); - } else { - ZEPHIR_INIT_NVAR(escapeChar); - ZVAL_NULL(escapeChar); - } - if (Z_TYPE_P(columns) == IS_ARRAY) { - ZEPHIR_INIT_VAR(selectedColumns); - array_init(selectedColumns); - zephir_is_iterable(columns, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 416); - for ( - ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS - ; zephir_hash_move_forward_ex(_1, &_0) - ) { - ZEPHIR_GET_HVALUE(column, _2); - ZEPHIR_OBS_NVAR(columnItem); - zephir_array_fetch_long(&columnItem, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 366 TSRMLS_CC); - if (Z_TYPE_P(columnItem) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "getsqlexpression", &_3, columnItem, escapeChar); - zephir_check_call_status(); - } else { - if (ZEPHIR_IS_STRING(columnItem, "*")) { - ZEPHIR_CPY_WRT(columnSql, columnItem); - } else { - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_INIT_NVAR(columnSql); - ZEPHIR_CONCAT_VVV(columnSql, escapeChar, columnItem, escapeChar); - } else { - ZEPHIR_CPY_WRT(columnSql, columnItem); - } - } - } - ZEPHIR_OBS_NVAR(columnDomain); - if (zephir_array_isset_long_fetch(&columnDomain, column, 1, 0 TSRMLS_CC)) { - if (zephir_is_true(columnDomain)) { - ZEPHIR_INIT_NVAR(columnDomainSql); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VVVSV(columnDomainSql, escapeChar, columnDomain, escapeChar, ".", columnSql); - } else { - ZEPHIR_CONCAT_VSV(columnDomainSql, columnDomain, ".", columnSql); - } - } else { - ZEPHIR_CPY_WRT(columnDomainSql, columnSql); - } - } else { - ZEPHIR_CPY_WRT(columnDomainSql, columnSql); - } - ZEPHIR_OBS_NVAR(columnAlias); - if (zephir_array_isset_long_fetch(&columnAlias, column, 2, 0 TSRMLS_CC)) { - if (zephir_is_true(columnAlias)) { - ZEPHIR_INIT_NVAR(columnAliasSql); - if (ZEPHIR_GLOBAL(db).escape_identifiers) { - ZEPHIR_CONCAT_VSVVV(columnAliasSql, columnDomainSql, " AS ", escapeChar, columnAlias, escapeChar); - } else { - ZEPHIR_CONCAT_VSV(columnAliasSql, columnDomainSql, " AS ", columnAlias); - } - } else { - ZEPHIR_CPY_WRT(columnAliasSql, columnDomainSql); - } - } else { - ZEPHIR_CPY_WRT(columnAliasSql, columnDomainSql); - } - zephir_array_append(&selectedColumns, columnAliasSql, PH_SEPARATE, "phalcon/db/dialect.zep", 414); - } - ZEPHIR_INIT_VAR(columnsSql); - zephir_fast_join_str(columnsSql, SL(", "), selectedColumns TSRMLS_CC); - } else { - ZEPHIR_CPY_WRT(columnsSql, columns); - } - if (Z_TYPE_P(tables) == IS_ARRAY) { - ZEPHIR_INIT_VAR(selectedTables); - array_init(selectedTables); - zephir_is_iterable(tables, &_5, &_4, 0, 0, "phalcon/db/dialect.zep", 429); - for ( - ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS - ; zephir_hash_move_forward_ex(_5, &_4) - ) { - ZEPHIR_GET_HVALUE(table, _6); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqltable", &_8, table, escapeChar); - zephir_check_call_status(); - zephir_array_append(&selectedTables, _7, PH_SEPARATE, "phalcon/db/dialect.zep", 427); - } - ZEPHIR_INIT_VAR(tablesSql); - zephir_fast_join_str(tablesSql, SL(", "), selectedTables TSRMLS_CC); - } else { - ZEPHIR_CPY_WRT(tablesSql, tables); - } ZEPHIR_OBS_VAR(distinct); if (zephir_array_isset_string_fetch(&distinct, definition, SS("distinct"), 0 TSRMLS_CC)) { - if (ZEPHIR_IS_LONG(distinct, 0)) { - ZEPHIR_INIT_VAR(sql); - ZVAL_STRING(sql, "SELECT ALL ", 1); + ZEPHIR_INIT_VAR(sql); + if (zephir_is_true(distinct)) { + ZVAL_STRING(sql, "SELECT DISTINCT", 1); } else { - ZEPHIR_INIT_NVAR(sql); - if (ZEPHIR_IS_LONG(distinct, 1)) { - ZVAL_STRING(sql, "SELECT DISTINCT ", 1); - } else { - ZVAL_STRING(sql, "SELECT ", 1); - } + ZVAL_STRING(sql, "SELECT ALL", 1); } } else { ZEPHIR_INIT_NVAR(sql); - ZVAL_STRING(sql, "SELECT ", 1); + ZVAL_STRING(sql, "SELECT", 1); } - ZEPHIR_INIT_VAR(_9); - ZEPHIR_CONCAT_VVSV(_9, sql, columnsSql, " FROM ", tablesSql); - ZEPHIR_CPY_WRT(sql, _9); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_1, columns); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SV(_2, " ", _0); + zephir_concat_self(&sql, _2 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpressionfrom", &_4, tables); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SV(_5, " ", _3); + zephir_concat_self(&sql, _5 TSRMLS_CC); ZEPHIR_OBS_VAR(joins); - if (zephir_array_isset_string_fetch(&joins, definition, SS("joins"), 0 TSRMLS_CC)) { - zephir_is_iterable(joins, &_11, &_10, 0, 0, "phalcon/db/dialect.zep", 478); - for ( - ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS - ; zephir_hash_move_forward_ex(_11, &_10) - ) { - ZEPHIR_GET_HVALUE(join, _12); - zephir_array_fetch_string(&_13, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 456 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&sqlTable, this_ptr, "getsqltable", &_8, _13, escapeChar); - zephir_check_call_status(); - zephir_array_append(&selectedTables, sqlTable, PH_SEPARATE, "phalcon/db/dialect.zep", 457); - zephir_array_fetch_string(&_14, join, SL("type"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 458 TSRMLS_CC); - ZEPHIR_INIT_NVAR(sqlJoin); - ZEPHIR_CONCAT_SVSV(sqlJoin, " ", _14, " JOIN ", sqlTable); - ZEPHIR_OBS_NVAR(joinConditionsArray); - if (zephir_array_isset_string_fetch(&joinConditionsArray, join, SS("conditions"), 0 TSRMLS_CC)) { - if (zephir_fast_count_int(joinConditionsArray TSRMLS_CC)) { - if (!(zephir_array_isset_long(joinConditionsArray, 0))) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, joinConditionsArray, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SVS(_9, " ON ", _7, " "); - zephir_concat_self(&sqlJoin, _9 TSRMLS_CC); - } else { - ZEPHIR_INIT_NVAR(joinExpressions); - array_init(joinExpressions); - zephir_is_iterable(joinConditionsArray, &_16, &_15, 0, 0, "phalcon/db/dialect.zep", 472); - for ( - ; zephir_hash_get_current_data_ex(_16, (void**) &_17, &_15) == SUCCESS - ; zephir_hash_move_forward_ex(_16, &_15) - ) { - ZEPHIR_GET_HVALUE(joinCondition, _17); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getsqlexpression", &_3, joinCondition, escapeChar); - zephir_check_call_status(); - zephir_array_append(&joinExpressions, _18, PH_SEPARATE, "phalcon/db/dialect.zep", 470); - } - ZEPHIR_INIT_NVAR(_19); - zephir_fast_join_str(_19, SL(" AND "), joinExpressions TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_SVS(_20, " ON ", _19, " "); - zephir_concat_self(&sqlJoin, _20 TSRMLS_CC); - } - } - } - zephir_concat_self(&sql, sqlJoin TSRMLS_CC); - } + _6 = zephir_array_isset_string_fetch(&joins, definition, SS("joins"), 0 TSRMLS_CC); + if (_6) { + _6 = zephir_is_true(joins); } - ZEPHIR_OBS_VAR(whereConditions); - if (zephir_array_isset_string_fetch(&whereConditions, definition, SS("where"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(whereConditions) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, whereConditions, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_SV(_20, " WHERE ", _7); - zephir_concat_self(&sql, _20 TSRMLS_CC); - } else { - ZEPHIR_INIT_VAR(_21); - ZEPHIR_CONCAT_SV(_21, " WHERE ", whereConditions); - zephir_concat_self(&sql, _21 TSRMLS_CC); - } + if (_6) { + zephir_array_fetch_string(&_8, definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 393 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionjoins", &_9, _8); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); } - ZEPHIR_OBS_VAR(groupFields); - if (zephir_array_isset_string_fetch(&groupFields, definition, SS("group"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(groupItems); - array_init(groupItems); - zephir_is_iterable(groupFields, &_23, &_22, 0, 0, "phalcon/db/dialect.zep", 504); - for ( - ; zephir_hash_get_current_data_ex(_23, (void**) &_24, &_22) == SUCCESS - ; zephir_hash_move_forward_ex(_23, &_22) - ) { - ZEPHIR_GET_HVALUE(groupField, _24); - if (Z_TYPE_P(groupField) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, groupField, escapeChar); - zephir_check_call_status(); - zephir_array_append(&groupItems, _7, PH_SEPARATE, "phalcon/db/dialect.zep", 499); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 501); - return; - } - } - ZEPHIR_INIT_NVAR(_19); - zephir_fast_join_str(_19, SL(", "), groupItems TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " GROUP BY ", _19); - zephir_concat_self(&sql, _21 TSRMLS_CC); - ZEPHIR_OBS_VAR(havingConditions); - if (zephir_array_isset_string_fetch(&havingConditions, definition, SS("having"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(havingConditions) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpression", &_3, havingConditions, escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_25); - ZEPHIR_CONCAT_SV(_25, " HAVING ", _7); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 513); - return; - } - } + ZEPHIR_OBS_VAR(where); + _11 = zephir_array_isset_string_fetch(&where, definition, SS("where"), 0 TSRMLS_CC); + if (_11) { + _11 = zephir_is_true(where); } - ZEPHIR_OBS_VAR(orderFields); - if (zephir_array_isset_string_fetch(&orderFields, definition, SS("order"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(orderItems); - array_init(orderItems); - zephir_is_iterable(orderFields, &_27, &_26, 0, 0, "phalcon/db/dialect.zep", 542); - for ( - ; zephir_hash_get_current_data_ex(_27, (void**) &_28, &_26) == SUCCESS - ; zephir_hash_move_forward_ex(_27, &_26) - ) { - ZEPHIR_GET_HVALUE(orderItem, _28); - if (Z_TYPE_P(orderItem) == IS_ARRAY) { - zephir_array_fetch_long(&_13, orderItem, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 526 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&orderSqlItem, this_ptr, "getsqlexpression", &_3, _13, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "?", "phalcon/db/dialect.zep", 528); - return; - } - ZEPHIR_OBS_NVAR(sqlOrderType); - if (zephir_array_isset_long_fetch(&sqlOrderType, orderItem, 1, 0 TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(orderSqlItemType); - ZEPHIR_CONCAT_VSV(orderSqlItemType, orderSqlItem, " ", sqlOrderType); - } else { - ZEPHIR_CPY_WRT(orderSqlItemType, orderSqlItem); - } - zephir_array_append(&orderItems, orderSqlItemType, PH_SEPARATE, "phalcon/db/dialect.zep", 540); - } - ZEPHIR_INIT_VAR(_29); - zephir_fast_join_str(_29, SL(", "), orderItems TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " ORDER BY ", _29); - zephir_concat_self(&sql, _21 TSRMLS_CC); + if (_11) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionwhere", &_12, where); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); } - ZEPHIR_OBS_VAR(limitValue); - if (zephir_array_isset_string_fetch(&limitValue, definition, SS("limit"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(limitValue) == IS_ARRAY) { - ZEPHIR_OBS_VAR(limitNumberValue); - zephir_array_fetch_string(&limitNumberValue, limitValue, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 552 TSRMLS_CC); - if (Z_TYPE_P(limitNumberValue) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&limitNumber, this_ptr, "getsqlexpression", &_3, limitNumberValue, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(limitNumber, limitNumberValue); - } - ZEPHIR_OBS_VAR(offset); - if (zephir_array_isset_string_fetch(&offset, limitValue, SS("offset"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(offset) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&offsetNumber, this_ptr, "getsqlexpression", &_3, offset, escapeChar); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(offsetNumber, offset); - } - ZEPHIR_INIT_LNVAR(_25); - ZEPHIR_CONCAT_SVSV(_25, " LIMIT ", limitNumber, " OFFSET ", offsetNumber); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } else { - ZEPHIR_INIT_LNVAR(_25); - ZEPHIR_CONCAT_SV(_25, " LIMIT ", limitNumber); - zephir_concat_self(&sql, _25 TSRMLS_CC); - } - } else { - ZEPHIR_INIT_LNVAR(_21); - ZEPHIR_CONCAT_SV(_21, " LIMIT ", limitValue); - zephir_concat_self(&sql, _21 TSRMLS_CC); - } + ZEPHIR_OBS_VAR(groupBy); + _13 = zephir_array_isset_string_fetch(&groupBy, definition, SS("group"), 0 TSRMLS_CC); + if (_13) { + _13 = zephir_is_true(groupBy); + } + if (_13) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressiongroupby", &_14, groupBy); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(having); + _15 = zephir_array_isset_string_fetch(&having, definition, SS("having"), 0 TSRMLS_CC); + if (_15) { + _15 = zephir_is_true(having); + } + if (_15) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionhaving", &_16, having); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(orderBy); + _17 = zephir_array_isset_string_fetch(&orderBy, definition, SS("order"), 0 TSRMLS_CC); + if (_17) { + _17 = zephir_is_true(orderBy); + } + if (_17) { + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionorderby", &_18, orderBy); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SV(_10, " ", _7); + zephir_concat_self(&sql, _10 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(limit); + _19 = zephir_array_isset_string_fetch(&limit, definition, SS("limit"), 0 TSRMLS_CC); + if (_19) { + _19 = zephir_is_true(limit); + } + if (_19) { + ZEPHIR_INIT_VAR(_20); + zephir_create_array(_20, 2, 0 TSRMLS_CC); + zephir_array_update_string(&_20, SL("sql"), &sql, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_20, SL("value"), &limit, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&sql, this_ptr, "getsqlexpressionlimit", &_21, _20); + zephir_check_call_status(); } RETURN_CCTOR(sql); @@ -45400,307 +45326,1243 @@ static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint) { } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar) { + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *value, *_0; + zval *expression = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include - - + expression = expression_param; -ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); - return SUCCESS; + if (zephir_array_isset_string(expression, SS("column"))) { + zephir_array_fetch_string(&_0, expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 482 TSRMLS_CC); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlcolumn", &_1, _0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_string_fetch(&value, expression, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 486); + return; + } + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, value, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + RETURN_CCTOR(value); + } } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _0, _1; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *domain = NULL, *objectExpression; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(domain); + ZVAL_NULL(domain); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); + ZEPHIR_INIT_VAR(objectExpression); + zephir_create_array(objectExpression, 1, 0 TSRMLS_CC); + add_assoc_stringl_ex(objectExpression, SS("type"), SL("all"), 1); + ZEPHIR_OBS_NVAR(domain); + _0 = zephir_array_isset_string_fetch(&domain, expression, SS("balias"), 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(domain); + _0 = zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC); + } + _1 = _0; + if (_1) { + _1 = !ZEPHIR_IS_STRING(domain, ""); + } + if (_1) { + zephir_array_update_string(&objectExpression, SL("domain"), &domain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, objectExpression, escapeChar); + zephir_check_call_status(); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *column, *domain = NULL; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); + ZEPHIR_OBS_VAR(column); + zephir_array_fetch_string(&column, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 520 TSRMLS_CC); + ZEPHIR_OBS_VAR(domain); + if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(domain); + ZVAL_NULL(domain); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, column, domain, escapeChar); + zephir_check_call_status(); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2, *_3; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); + expression = expression_param; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 539 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 540 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_3, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 542 TSRMLS_CC); + ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _3, " ", right); + RETURN_MM(); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); +} -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations) { -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left, *right, *_0 = NULL, *_2; + zval *expression = NULL; -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); + expression = expression_param; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_OBS_VAR(left); + if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, left, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 556 TSRMLS_CC); + ZEPHIR_CONCAT_VSV(return_value, _0, " ", _2); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(right); + if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 563 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, right, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, _2, " ", _0); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 566); + return; -#ifdef HAVE_CONFIG_H -#endif +} -#include +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall) { -#include -#include -#include + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _0, _2; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *arguments = NULL, *_3, *_4; + zval *expression = NULL, *_1; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); + expression = expression_param; -ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); - return SUCCESS; + ZEPHIR_OBS_VAR(arguments); + _0 = zephir_array_isset_string_fetch(&arguments, expression, SS("arguments"), 0 TSRMLS_CC); + if (_0) { + _0 = Z_TYPE_P(arguments) == IS_ARRAY; + } + if (_0) { + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + add_assoc_stringl_ex(_1, SS("type"), SL("list"), 1); + zephir_array_update_string(&_1, SL("parentheses"), &ZEPHIR_GLOBAL(global_false), PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("value"), &arguments, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&arguments, this_ptr, "getsqlexpression", NULL, _1, escapeChar); + zephir_check_call_status(); + _2 = zephir_array_isset_string(expression, SS("distinct")); + if (_2) { + zephir_array_fetch_string(&_3, expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 584 TSRMLS_CC); + _2 = zephir_is_true(_3); + } + if (_2) { + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 585 TSRMLS_CC); + ZEPHIR_CONCAT_VSVS(return_value, _4, "(DISTINCT ", arguments, ")"); + RETURN_MM(); + } else { + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 587 TSRMLS_CC); + ZEPHIR_CONCAT_VSVS(return_value, _4, "(", arguments, ")"); + RETURN_MM(); + } + } + zephir_array_fetch_string(&_3, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 592 TSRMLS_CC); + ZEPHIR_CONCAT_VS(return_value, _3, "()"); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { + zephir_fcall_cache_entry *_6 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_3; + HashPosition _2; + zend_bool _0, _1, _7; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *items, *item = NULL, *values = NULL, *separator = NULL, **_4, *_5 = NULL, *_8, *_9; + zval *expression = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - + expression = expression_param; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Db_Index) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + ZEPHIR_INIT_VAR(items); + array_init(items); + ZEPHIR_INIT_VAR(separator); + ZVAL_STRING(separator, ", ", 1); + if (zephir_array_isset_string(expression, SS("separator"))) { + ZEPHIR_OBS_NVAR(separator); + zephir_array_fetch_string(&separator, expression, SL("separator"), PH_NOISY, "phalcon/db/dialect.zep", 606 TSRMLS_CC); + } + ZEPHIR_OBS_VAR(values); + _0 = zephir_array_isset_long_fetch(&values, expression, 0, 0 TSRMLS_CC); + if (!(_0)) { + ZEPHIR_OBS_NVAR(values); + _0 = zephir_array_isset_string_fetch(&values, expression, SS("value"), 0 TSRMLS_CC); + } + _1 = _0; + if (_1) { + _1 = Z_TYPE_P(values) == IS_ARRAY; + } + if (_1) { + zephir_is_iterable(values, &_3, &_2, 0, 0, "phalcon/db/dialect.zep", 615); + for ( + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) + ) { + ZEPHIR_GET_HVALUE(item, _4); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getsqlexpression", &_6, item, escapeChar); + zephir_check_call_status(); + zephir_array_append(&items, _5, PH_SEPARATE, "phalcon/db/dialect.zep", 612); + } + _7 = zephir_array_isset_string(expression, SS("parentheses")); + if (_7) { + zephir_array_fetch_string(&_8, expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 615 TSRMLS_CC); + _7 = ZEPHIR_IS_FALSE_IDENTICAL(_8); + } + if (_7) { + zephir_fast_join(return_value, separator, items TSRMLS_CC); + RETURN_MM(); + } else { + ZEPHIR_INIT_VAR(_9); + zephir_fast_join(_9, separator, items TSRMLS_CC); + ZEPHIR_CONCAT_SVS(return_value, "(", _9, ")"); + RETURN_MM(); + } + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/db/dialect.zep", 622); + return; - zend_declare_property_null(phalcon_db_index_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_declare_property_null(phalcon_db_index_ce, SL("_columns"), ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll) { - zend_declare_property_null(phalcon_db_index_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *domain = NULL, *_0; + zval *expression = NULL; - zend_class_implements(phalcon_db_index_ce TSRMLS_CC, 1, phalcon_db_indexinterface_ce); - return SUCCESS; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -} + expression = expression_param; -static PHP_METHOD(Phalcon_Db_Index, getName) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - RETURN_MEMBER(this_ptr, "_name"); + ZEPHIR_OBS_VAR(domain); + if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(domain); + ZVAL_NULL(domain); + } + ZEPHIR_INIT_VAR(_0); + ZVAL_STRING(_0, "*", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, _0, domain, escapeChar); + zephir_check_temp_parameter(_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, getColumns) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue) { + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2; + zval *expression = NULL; - RETURN_MEMBER(this_ptr, "_columns"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); -} + expression = expression_param; -static PHP_METHOD(Phalcon_Db_Index, getType) { + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - RETURN_MEMBER(this_ptr, "_type"); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 646 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 647 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue) { - zval *columns = NULL; - zval *name_param = NULL, *columns_param = NULL, *type = NULL; - zval *name = NULL, *_0 = NULL; + zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression_param = NULL, *escapeChar_param = NULL, *left = NULL, *right = NULL, *_0, *_2; + zval *expression = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); - if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + expression = expression_param; - if (likely(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(name, name_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); } else { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); - } - columns = columns_param; - - if (!type) { - type = ZEPHIR_GLOBAL(global_null); + zephir_get_strval(escapeChar, escapeChar_param); } - zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_columns"), columns TSRMLS_CC); - zephir_get_strval(_0, type); - zephir_update_property_this(this_ptr, SL("_type"), _0 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 659 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 660 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Index, __set_state) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *indexName, *columns, *type = NULL; - zval *data = NULL; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *table = NULL, *tables = NULL, **_2, *_3 = NULL, *_5; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data_param); - - data = data_param; + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } - ZEPHIR_OBS_VAR(indexName); - if (!(zephir_array_isset_string_fetch(&indexName, data, SS("_name"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_name parameter is required", "phalcon/db/index.zep", 71); - return; - } - ZEPHIR_OBS_VAR(columns); - if (!(zephir_array_isset_string_fetch(&columns, data, SS("_columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_columns parameter is required", "phalcon/db/index.zep", 75); - return; - } - ZEPHIR_OBS_VAR(type); - if (!(zephir_array_isset_string_fetch(&type, data, SS("_type"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "", 1); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(tables); + array_init(tables); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 680); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(table, _2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqltable", &_4, table); + zephir_check_call_status(); + zephir_array_append(&tables, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 677); + } + ZEPHIR_INIT_VAR(_5); + zephir_fast_join_str(_5, SL(", "), tables TSRMLS_CC); + ZEPHIR_CPY_WRT(tables, _5); + } else { + ZEPHIR_CPY_WRT(tables, expression); } - object_init_ex(return_value, phalcon_db_index_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, indexName, columns, type); - zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "FROM ", tables); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { + zephir_nts_static zephir_fcall_cache_entry *_12 = NULL; + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zend_bool _3, _10; + HashTable *_1, *_6; + HashPosition _0, _5; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *join = NULL, *sql, *joinCondition = NULL, *joinTable = NULL, *joinType = NULL, *joinConditionsArray = NULL, **_2, *condition = NULL, **_7, *_8 = NULL, *_9 = NULL, *_11, *_13 = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -#ifdef HAVE_CONFIG_H -#endif + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "", 1); + ZEPHIR_INIT_VAR(joinType); + ZVAL_STRING(joinType, "", 1); -#include -#include + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 729); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(join, _2); + ZEPHIR_OBS_NVAR(joinConditionsArray); + _3 = zephir_array_isset_string_fetch(&joinConditionsArray, join, SS("conditions"), 0 TSRMLS_CC); + if (_3) { + _3 = !(ZEPHIR_IS_EMPTY(joinConditionsArray)); + } + if (_3) { + if (!(zephir_array_isset_long(joinConditionsArray, 0))) { + ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_4, joinConditionsArray, escapeChar); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(joinCondition); + array_init(joinCondition); + zephir_is_iterable(joinConditionsArray, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 714); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HVALUE(condition, _7); + ZEPHIR_CALL_METHOD(&_8, this_ptr, "getsqlexpression", &_4, condition, escapeChar); + zephir_check_call_status(); + zephir_array_append(&joinCondition, _8, PH_SEPARATE, "phalcon/db/dialect.zep", 711); + } + ZEPHIR_INIT_NVAR(_9); + zephir_fast_join_str(_9, SL(" AND "), joinCondition TSRMLS_CC); + ZEPHIR_CPY_WRT(joinCondition, _9); + } + } else { + ZEPHIR_INIT_NVAR(joinCondition); + ZVAL_LONG(joinCondition, 1); + } + ZEPHIR_OBS_NVAR(joinType); + _10 = zephir_array_isset_string_fetch(&joinType, join, SS("type"), 0 TSRMLS_CC); + if (_10) { + _10 = zephir_is_true(joinType); + } + if (_10) { + zephir_concat_self_str(&joinType, SL(" ") TSRMLS_CC); + } + zephir_array_fetch_string(&_11, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 724 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_12, _11, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_13); + ZEPHIR_CONCAT_SVSVSV(_13, " ", joinType, "JOIN ", joinTable, " ON ", joinCondition); + zephir_concat_self(&sql, _13 TSRMLS_CC); + } + RETURN_CCTOR(sql); +} +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere) { -ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) { + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *whereSql = NULL; - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - return SUCCESS; + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&whereSql, this_ptr, "getsqlexpression", NULL, expression, escapeChar); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(whereSql, expression); + } + ZEPHIR_CONCAT_SV(return_value, "WHERE ", whereSql); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __construct); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy) { -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *filed = NULL, *fields = NULL, **_2, *_3 = NULL, *_5; -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __set_state); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(fields); + array_init(fields); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 767); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(filed, _2); + if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/db/dialect.zep", 761); + return; + } else { + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpression", &_4, filed, escapeChar); + zephir_check_call_status(); + zephir_array_append(&fields, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 763); + } + } + ZEPHIR_INIT_VAR(_5); + zephir_fast_join_str(_5, SL(", "), fields TSRMLS_CC); + ZEPHIR_CPY_WRT(fields, _5); + } else { + ZEPHIR_CPY_WRT(fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "GROUP BY ", fields); + RETURN_MM(); + +} +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving) { + int ZEPHIR_LAST_CALL_STATUS; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *_0 = NULL; -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); -#include + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } -#include -#include -#include + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, expression, escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "HAVING ", _0); + RETURN_MM(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-HAVING expression", "phalcon/db/dialect.zep", 784); + return; + } +} -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + zend_bool _5; + zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + HashTable *_1; + HashPosition _0; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *filed = NULL, *fields = NULL, *type = NULL, *fieldSql = NULL, **_2, *_3, *_6 = NULL, *_7; - zend_declare_property_null(phalcon_db_profiler_ce, SL("_allProfiles"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - zend_declare_property_null(phalcon_db_profiler_ce, SL("_activeProfile"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + ZEPHIR_INIT_VAR(fieldSql); + ZVAL_NULL(fieldSql); - zend_declare_property_long(phalcon_db_profiler_ce, SL("_totalSeconds"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - return SUCCESS; + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(fields); + array_init(fields); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 817); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HVALUE(filed, _2); + if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/db/dialect.zep", 802); + return; + } else { + zephir_array_fetch_long(&_3, filed, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 804 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_4, _3, escapeChar); + zephir_check_call_status(); + } + ZEPHIR_OBS_NVAR(type); + _5 = zephir_array_isset_long_fetch(&type, filed, 1, 0 TSRMLS_CC); + if (_5) { + _5 = !ZEPHIR_IS_STRING(type, ""); + } + if (_5) { + ZEPHIR_INIT_LNVAR(_6); + ZEPHIR_CONCAT_SV(_6, " ", type); + zephir_concat_self(&fieldSql, _6 TSRMLS_CC); + } + zephir_array_append(&fields, fieldSql, PH_SEPARATE, "phalcon/db/dialect.zep", 814); + } + ZEPHIR_INIT_VAR(_7); + zephir_fast_join_str(_7, SL(", "), fields TSRMLS_CC); + ZEPHIR_CPY_WRT(fields, _7); + } else { + ZEPHIR_CPY_WRT(fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "ORDER BY ", fields); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Profiler, startProfile) { +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL; + zval *_5; + zend_bool _3; + zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement, *sqlVariables = NULL, *sqlBindTypes = NULL, *activeProfile, *_3; + zval *escapeChar = NULL; + zval *expression, *escapeChar_param = NULL, *sql = NULL, *value, *limit = NULL, *offset = NULL, *_0, *_1, *_4 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement, &sqlVariables, &sqlBindTypes); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - if (!sqlVariables) { - sqlVariables = ZEPHIR_GLOBAL(global_null); - } - if (!sqlBindTypes) { - sqlBindTypes = ZEPHIR_GLOBAL(global_null); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "", 1); + ZEPHIR_INIT_VAR(offset); + ZVAL_NULL(offset); - ZEPHIR_INIT_VAR(activeProfile); - object_init_ex(activeProfile, phalcon_db_profiler_item_ce); - if (zephir_has_constructor(activeProfile TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, activeProfile, "__construct", NULL); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(value); + zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/db/dialect.zep", 832 TSRMLS_CC); + if (zephir_array_isset_string(expression, SS("sql"))) { + ZEPHIR_OBS_NVAR(sql); + zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/db/dialect.zep", 835 TSRMLS_CC); } - ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlstatement", &_0, sqlStatement); + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_OBS_VAR(_0); + zephir_array_fetch_string(&_0, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 840 TSRMLS_CC); + if (Z_TYPE_P(_0) == IS_ARRAY) { + zephir_array_fetch_string(&_1, value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 841 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&limit, this_ptr, "getsqlexpression", &_2, _1); + zephir_check_call_status(); + } else { + ZEPHIR_OBS_NVAR(limit); + zephir_array_fetch_string(&limit, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 843 TSRMLS_CC); + } + ZEPHIR_OBS_NVAR(offset); + _3 = zephir_array_isset_string_fetch(&offset, value, SS("offset"), 0 TSRMLS_CC); + if (_3) { + _3 = Z_TYPE_P(offset) == IS_ARRAY; + } + if (_3) { + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getsqlexpression", &_2, offset); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(offset, _4); + } + } else { + ZEPHIR_CPY_WRT(limit, value); + } + ZEPHIR_INIT_VAR(_5); + zephir_create_array(_5, 2, 0 TSRMLS_CC); + zephir_array_fast_append(_5, limit); + zephir_array_fast_append(_5, offset); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "limit", NULL, sql, _5); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *qualified_param = NULL, *alias_param = NULL, *_0 = NULL; + zval *qualified = NULL, *alias = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &qualified_param, &alias_param); + + if (unlikely(Z_TYPE_P(qualified_param) != IS_STRING && Z_TYPE_P(qualified_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'qualified' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(qualified_param) == IS_STRING)) { + zephir_get_strval(qualified, qualified_param); + } else { + ZEPHIR_INIT_VAR(qualified); + ZVAL_EMPTY_STRING(qualified); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(alias); + ZVAL_EMPTY_STRING(alias); + } else { + zephir_get_strval(alias, alias_param); + } + + + if (!ZEPHIR_IS_STRING(alias, "")) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_1, alias); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, qualified, " AS ", _0); + RETURN_MM(); + } else { + RETURN_CTOR(qualified); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, *_0 = NULL, *_2 = NULL, *_3 = NULL; + zval *table = NULL, *schema = NULL, *alias = NULL, *escapeChar = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &table_param, &schema_param, &alias_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(alias); + ZVAL_EMPTY_STRING(alias); + } else { + zephir_get_strval(alias, alias_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_1, table, escapeChar); + zephir_check_call_status(); + zephir_get_strval(table, _0); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "escape", &_1, schema, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _2, ".", table); + zephir_get_strval(table, _3); + } + if (!ZEPHIR_IS_STRING(alias, "")) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "escape", &_1, alias, escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_3); + ZEPHIR_CONCAT_VSV(_3, table, " AS ", _2); + zephir_get_strval(table, _3); + } + RETURN_CTOR(table); + +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified) { + + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *domain_param = NULL, *escapeChar_param = NULL; + zval *column = NULL, *domain = NULL, *escapeChar = NULL, *_0; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &column_param, &domain_param, &escapeChar_param); + + if (unlikely(Z_TYPE_P(column_param) != IS_STRING && Z_TYPE_P(column_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'column' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(column_param) == IS_STRING)) { + zephir_get_strval(column, column_param); + } else { + ZEPHIR_INIT_VAR(column); + ZVAL_EMPTY_STRING(column); + } + if (!domain_param) { + ZEPHIR_INIT_VAR(domain); + ZVAL_EMPTY_STRING(domain); + } else { + zephir_get_strval(domain, domain_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(escapeChar); + ZVAL_EMPTY_STRING(escapeChar); + } else { + zephir_get_strval(escapeChar, escapeChar_param); + } + + + if (!ZEPHIR_IS_STRING(domain, "")) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, domain, ".", column); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", &_1, _0, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } else { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", &_1, column, escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createView); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropView); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, viewExists); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Index) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + + zend_declare_property_null(phalcon_db_index_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_index_ce, SL("_columns"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_index_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_db_index_ce TSRMLS_CC, 1, phalcon_db_indexinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Db_Index, getName) { + + + RETURN_MEMBER(this_ptr, "_name"); + +} + +static PHP_METHOD(Phalcon_Db_Index, getColumns) { + + + RETURN_MEMBER(this_ptr, "_columns"); + +} + +static PHP_METHOD(Phalcon_Db_Index, getType) { + + + RETURN_MEMBER(this_ptr, "_type"); + +} + +static PHP_METHOD(Phalcon_Db_Index, __construct) { + + zval *columns = NULL; + zval *name_param = NULL, *columns_param = NULL, *type = NULL; + zval *name = NULL, *_0 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type); + + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + columns = columns_param; + + if (!type) { + type = ZEPHIR_GLOBAL(global_null); + } + + + zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_columns"), columns TSRMLS_CC); + zephir_get_strval(_0, type); + zephir_update_property_this(this_ptr, SL("_type"), _0 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Db_Index, __set_state) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *indexName, *columns, *type = NULL; + zval *data = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; + + + + ZEPHIR_OBS_VAR(indexName); + if (!(zephir_array_isset_string_fetch(&indexName, data, SS("_name"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_name parameter is required", "phalcon/db/index.zep", 71); + return; + } + ZEPHIR_OBS_VAR(columns); + if (!(zephir_array_isset_string_fetch(&columns, data, SS("_columns"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "_columns parameter is required", "phalcon/db/index.zep", 75); + return; + } + ZEPHIR_OBS_VAR(type); + if (!(zephir_array_isset_string_fetch(&type, data, SS("_type"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "", 1); + } + object_init_ex(return_value, phalcon_db_index_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, indexName, columns, type); + zephir_check_call_status(); + RETURN_MM(); + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __construct); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, __set_state); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("_allProfiles"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("_activeProfile"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_long(phalcon_db_profiler_ce, SL("_totalSeconds"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Db_Profiler, startProfile) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement, *sqlVariables = NULL, *sqlBindTypes = NULL, *activeProfile, *_3; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &sqlStatement, &sqlVariables, &sqlBindTypes); + + if (!sqlVariables) { + sqlVariables = ZEPHIR_GLOBAL(global_null); + } + if (!sqlBindTypes) { + sqlBindTypes = ZEPHIR_GLOBAL(global_null); + } + + + ZEPHIR_INIT_VAR(activeProfile); + object_init_ex(activeProfile, phalcon_db_profiler_item_ce); + if (zephir_has_constructor(activeProfile TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, activeProfile, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlstatement", &_0, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(sqlVariables) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, activeProfile, "setsqlvariables", &_1, sqlVariables); @@ -46375,11 +47237,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *bindParams = NULL, *bindTypes = NULL, *eventsManager = NULL, *pdo = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; + zval *bindParams = NULL; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes = NULL, *eventsManager = NULL, *pdo = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; zval *sqlStatement = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams, &bindTypes); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes); if (unlikely(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be a string") TSRMLS_CC); @@ -46392,8 +47255,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { ZEPHIR_INIT_VAR(sqlStatement); ZVAL_EMPTY_STRING(sqlStatement); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(bindParams); + array_init(bindParams); + } else { + zephir_get_arrval(bindParams, bindParams_param); } if (!bindTypes) { bindTypes = ZEPHIR_GLOBAL(global_null); @@ -46417,7 +47283,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdo"), PH_NOISY_CC); ZEPHIR_CPY_WRT(pdo, _0); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { + if (1 == 1) { ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(statement) == IS_OBJECT) { @@ -46449,11 +47315,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, query) { static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *bindParams = NULL, *bindTypes = NULL, *eventsManager = NULL, *affectedRows = NULL, *pdo = NULL, *newStatement = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; + zval *bindParams = NULL; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes = NULL, *eventsManager = NULL, *affectedRows = NULL, *pdo = NULL, *newStatement = NULL, *statement = NULL, *_0, *_1 = NULL, *_2 = NULL; zval *sqlStatement = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams, &bindTypes); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes); if (unlikely(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be a string") TSRMLS_CC); @@ -46466,8 +47333,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { ZEPHIR_INIT_VAR(sqlStatement); ZVAL_EMPTY_STRING(sqlStatement); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(bindParams); + array_init(bindParams); + } else { + zephir_get_arrval(bindParams, bindParams_param); } if (!bindTypes) { bindTypes = ZEPHIR_GLOBAL(global_null); @@ -46493,7 +47363,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo, execute) { ZVAL_LONG(affectedRows, 0); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdo"), PH_NOISY_CC); ZEPHIR_CPY_WRT(pdo, _0); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { + if (1 == 1) { ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); zephir_check_call_status(); if (Z_TYPE_P(statement) == IS_OBJECT) { @@ -47059,7 +47929,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/mysql.zep", 271); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/mysql.zep", 267); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47069,15 +47939,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 115 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 111 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/mysql.zep", 122)) { + if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/mysql.zep", 118)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 5); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/mysql.zep", 130)) { + if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/mysql.zep", 126)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47087,19 +47957,19 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/mysql.zep", 140)) { + if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/mysql.zep", 136)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/mysql.zep", 148)) { + if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/mysql.zep", 144)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/mysql.zep", 156)) { + if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/mysql.zep", 152)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47109,25 +47979,25 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/mysql.zep", 166)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/mysql.zep", 162)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/mysql.zep", 174)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/mysql.zep", 170)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/mysql.zep", 182)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/mysql.zep", 178)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/mysql.zep", 190)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/mysql.zep", 186)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47142,7 +48012,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/mysql.zep", 207)) { + if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/mysql.zep", 203)) { ZEPHIR_INIT_NVAR(matches); ZVAL_NULL(matches); ZEPHIR_INIT_NVAR(_8); @@ -47162,7 +48032,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { } } } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/mysql.zep", 222)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/mysql.zep", 218)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -47170,30 +48040,30 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 238 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 234 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "PRI")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_11, field, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 245 TSRMLS_CC); + zephir_array_fetch_long(&_11, field, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 241 TSRMLS_CC); if (ZEPHIR_IS_STRING(_11, "NO")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 252 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 248 TSRMLS_CC); if (ZEPHIR_IS_STRING(_12, "auto_increment")) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } ZEPHIR_OBS_NVAR(_13); - zephir_array_fetch_long(&_13, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/mysql.zep", 255 TSRMLS_CC); if (Z_TYPE_P(_13) != IS_NULL) { - zephir_array_fetch_long(&_14, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 260 TSRMLS_CC); + zephir_array_fetch_long(&_14, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 256 TSRMLS_CC); zephir_array_update_string(&definition, SL("default"), &_14, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/mysql.zep", 262 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_15, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/mysql.zep", 267); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/mysql.zep", 263); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47276,11 +48146,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { HashTable *_5; HashPosition _4; int ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema = NULL, *columns, *oldColumn = NULL, *field = NULL, *definition = NULL, *columnSize = NULL, *columnPrecision = NULL, *columnScale = NULL, *columnType = NULL, *columnName, *_0 = NULL, *_1, *_2 = NULL, *_3 = NULL, **_6, *_7 = NULL, *_8 = NULL, *_9, *_10; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *columns, *oldColumn = NULL, *field = NULL, *definition = NULL, *columnSize = NULL, *columnPrecision = NULL, *columnScale = NULL, *columnType = NULL, *columnName, *_0 = NULL, *_1, *_2 = NULL, *_3 = NULL, **_6, *_7 = NULL, *_8 = NULL, *_9, *_10; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -47293,8 +48163,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } @@ -47309,7 +48182,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/oracle.zep", 207); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/oracle.zep", 203); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47319,15 +48192,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnSize); - zephir_array_fetch_long(&columnSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 106 TSRMLS_CC); + zephir_array_fetch_long(&columnSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 102 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnPrecision); - zephir_array_fetch_long(&columnPrecision, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 107 TSRMLS_CC); + zephir_array_fetch_long(&columnPrecision, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 103 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnScale); - zephir_array_fetch_long(&columnScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 108 TSRMLS_CC); + zephir_array_fetch_long(&columnScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 104 TSRMLS_CC); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 109 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/oracle.zep", 105 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("NUMBER"), "phalcon/db/adapter/pdo/oracle.zep", 116)) { + if (zephir_memnstr_str(columnType, SL("NUMBER"), "phalcon/db/adapter/pdo/oracle.zep", 112)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 3); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47339,7 +48212,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("INTEGER"), "phalcon/db/adapter/pdo/oracle.zep", 125)) { + if (zephir_memnstr_str(columnType, SL("INTEGER"), "phalcon/db/adapter/pdo/oracle.zep", 121)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47350,14 +48223,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("VARCHAR2"), "phalcon/db/adapter/pdo/oracle.zep", 133)) { + if (zephir_memnstr_str(columnType, SL("VARCHAR2"), "phalcon/db/adapter/pdo/oracle.zep", 129)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &columnSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("FLOAT"), "phalcon/db/adapter/pdo/oracle.zep", 139)) { + if (zephir_memnstr_str(columnType, SL("FLOAT"), "phalcon/db/adapter/pdo/oracle.zep", 135)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47369,31 +48242,31 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("TIMESTAMP"), "phalcon/db/adapter/pdo/oracle.zep", 148)) { + if (zephir_memnstr_str(columnType, SL("TIMESTAMP"), "phalcon/db/adapter/pdo/oracle.zep", 144)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("RAW"), "phalcon/db/adapter/pdo/oracle.zep", 153)) { + if (zephir_memnstr_str(columnType, SL("RAW"), "phalcon/db/adapter/pdo/oracle.zep", 149)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("BLOB"), "phalcon/db/adapter/pdo/oracle.zep", 158)) { + if (zephir_memnstr_str(columnType, SL("BLOB"), "phalcon/db/adapter/pdo/oracle.zep", 154)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("CLOB"), "phalcon/db/adapter/pdo/oracle.zep", 163)) { + if (zephir_memnstr_str(columnType, SL("CLOB"), "phalcon/db/adapter/pdo/oracle.zep", 159)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("CHAR"), "phalcon/db/adapter/pdo/oracle.zep", 168)) { + if (zephir_memnstr_str(columnType, SL("CHAR"), "phalcon/db/adapter/pdo/oracle.zep", 164)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47410,20 +48283,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_9, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 187 TSRMLS_CC); + zephir_array_fetch_long(&_9, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 183 TSRMLS_CC); if (ZEPHIR_IS_STRING(_9, "P")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 194 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 190 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "N")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 198 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 194 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8); object_init_ex(_8, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_11, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/oracle.zep", 203); + zephir_array_append(&columns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/oracle.zep", 199); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47433,13 +48306,17 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, describeColumns) { static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, lastInsertId) { int ZEPHIR_LAST_CALL_STATUS; - zval *sequenceName = NULL, *_0 = NULL, *_1, *_2, *_3; + zval *sequenceName_param = NULL, *_0 = NULL, *_2, *_3; + zval *sequenceName = NULL, *_1; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &sequenceName); + zephir_fetch_params(1, 0, 1, &sequenceName_param); - if (!sequenceName) { - sequenceName = ZEPHIR_GLOBAL(global_null); + if (!sequenceName_param) { + ZEPHIR_INIT_VAR(sequenceName); + ZVAL_EMPTY_STRING(sequenceName); + } else { + zephir_get_strval(sequenceName, sequenceName_param); } @@ -47449,7 +48326,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Oracle, lastInsertId) { ZVAL_LONG(_2, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _1, _2); zephir_check_call_status(); - zephir_array_fetch_long(&_3, _0, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 230 TSRMLS_CC); + zephir_array_fetch_long(&_3, _0, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/oracle.zep", 223 TSRMLS_CC); RETURN_CTOR(_3); } @@ -47598,7 +48475,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/postgresql.zep", 295); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/postgresql.zep", 291); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47608,15 +48485,15 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 119 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 1, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 115 TSRMLS_CC); ZEPHIR_OBS_NVAR(charSize); - zephir_array_fetch_long(&charSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 120 TSRMLS_CC); + zephir_array_fetch_long(&charSize, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 116 TSRMLS_CC); ZEPHIR_OBS_NVAR(numericSize); - zephir_array_fetch_long(&numericSize, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 121 TSRMLS_CC); + zephir_array_fetch_long(&numericSize, field, 3, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 117 TSRMLS_CC); ZEPHIR_OBS_NVAR(numericScale); - zephir_array_fetch_long(&numericScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 122 TSRMLS_CC); + zephir_array_fetch_long(&numericScale, field, 4, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 118 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("smallint(1)"), "phalcon/db/adapter/pdo/postgresql.zep", 129)) { + if (zephir_memnstr_str(columnType, SL("smallint(1)"), "phalcon/db/adapter/pdo/postgresql.zep", 125)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 8); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47625,7 +48502,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/postgresql.zep", 138)) { + if (zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/postgresql.zep", 134)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 0); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47636,14 +48513,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("varying"), "phalcon/db/adapter/pdo/postgresql.zep", 149)) { + if (zephir_memnstr_str(columnType, SL("varying"), "phalcon/db/adapter/pdo/postgresql.zep", 145)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/postgresql.zep", 158)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/postgresql.zep", 154)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47652,7 +48529,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("size"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("numeric"), "phalcon/db/adapter/pdo/postgresql.zep", 167)) { + if (zephir_memnstr_str(columnType, SL("numeric"), "phalcon/db/adapter/pdo/postgresql.zep", 163)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47664,14 +48541,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/postgresql.zep", 179)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/postgresql.zep", 175)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/postgresql.zep", 188)) { + if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/postgresql.zep", 184)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47680,14 +48557,14 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("size"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/postgresql.zep", 197)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/postgresql.zep", 193)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/postgresql.zep", 206)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/postgresql.zep", 202)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47698,7 +48575,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_8, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("bool"), "phalcon/db/adapter/pdo/postgresql.zep", 217)) { + if (zephir_memnstr_str(columnType, SL("bool"), "phalcon/db/adapter/pdo/postgresql.zep", 213)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 8); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47710,7 +48587,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("uuid"), "phalcon/db/adapter/pdo/postgresql.zep", 227)) { + if (zephir_memnstr_str(columnType, SL("uuid"), "phalcon/db/adapter/pdo/postgresql.zep", 223)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47724,7 +48601,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/postgresql.zep", 243)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/postgresql.zep", 239)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -47732,22 +48609,22 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 6, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 255 TSRMLS_CC); if (ZEPHIR_IS_STRING(_10, "PRI")) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_11, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&_11, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 262 TSRMLS_CC); if (ZEPHIR_IS_STRING(_11, "NO")) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 7, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 273 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 7, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 269 TSRMLS_CC); if (ZEPHIR_IS_STRING(_12, "auto_increment")) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } ZEPHIR_OBS_NVAR(_13); - zephir_array_fetch_long(&_13, field, 9, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 280 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 9, PH_NOISY, "phalcon/db/adapter/pdo/postgresql.zep", 276 TSRMLS_CC); if (Z_TYPE_P(_13) != IS_NULL) { - zephir_array_fetch_long(&_14, field, 9, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 281 TSRMLS_CC); + zephir_array_fetch_long(&_14, field, 9, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 277 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8); ZVAL_STRING(_8, "/^'|'?::[[:alnum:][:space:]]+$/", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_9); @@ -47757,7 +48634,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_check_temp_parameter(_9); zephir_check_call_status(); zephir_array_update_string(&definition, SL("default"), &_15, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_17, definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 282 TSRMLS_CC); + zephir_array_fetch_string(&_17, definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 278 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_18); ZVAL_STRING(&_18, "null", 0); ZEPHIR_CALL_FUNCTION(&_19, "strcasecmp", &_20, _17, &_18); @@ -47766,12 +48643,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { zephir_array_update_string(&definition, SL("default"), &ZEPHIR_GLOBAL(global_null), PH_COPY | PH_SEPARATE); } } - zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 290 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 0, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/postgresql.zep", 286 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_21, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/postgresql.zep", 291); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/postgresql.zep", 287); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -47857,12 +48734,11 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, connect) { ZEPHIR_OBS_NVAR(descriptor); zephir_read_property_this(&descriptor, this_ptr, SL("_descriptor"), PH_NOISY_CC); } - if (!(zephir_array_isset_string(descriptor, SS("dbname")))) { + ZEPHIR_OBS_VAR(dbname); + if (!(zephir_array_isset_string_fetch(&dbname, descriptor, SS("dbname"), 0 TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "dbname must be specified", "phalcon/db/adapter/pdo/sqlite.zep", 69); return; } - ZEPHIR_OBS_VAR(dbname); - zephir_array_isset_string_fetch(&dbname, descriptor, SS("dbname"), 0 TSRMLS_CC); zephir_array_update_string(&descriptor, SL("dsn"), &dbname, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_sqlite_ce, this_ptr, "connect", &_0, descriptor); zephir_check_call_status(); @@ -47906,7 +48782,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 286); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 280); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -47916,9 +48792,9 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_create_array(definition, 1, 0 TSRMLS_CC); add_assoc_long_ex(definition, SS("bindType"), 2); ZEPHIR_OBS_NVAR(columnType); - zephir_array_fetch_long(&columnType, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 113 TSRMLS_CC); + zephir_array_fetch_long(&columnType, field, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 107 TSRMLS_CC); while (1) { - if (zephir_memnstr_str(columnType, SL("tinyint(1)"), "phalcon/db/adapter/pdo/sqlite.zep", 120)) { + if (zephir_memnstr_str(columnType, SL("tinyint(1)"), "phalcon/db/adapter/pdo/sqlite.zep", 114)) { ZEPHIR_INIT_NVAR(_3); ZVAL_LONG(_3, 8); zephir_array_update_string(&definition, SL("type"), &_3, PH_COPY | PH_SEPARATE); @@ -47929,9 +48805,9 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZVAL_STRING(columnType, "boolean", 1); break; } - _8 = zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/sqlite.zep", 130); + _8 = zephir_memnstr_str(columnType, SL("int"), "phalcon/db/adapter/pdo/sqlite.zep", 124); if (!(_8)) { - _8 = zephir_memnstr_str(columnType, SL("INT"), "phalcon/db/adapter/pdo/sqlite.zep", 130); + _8 = zephir_memnstr_str(columnType, SL("INT"), "phalcon/db/adapter/pdo/sqlite.zep", 124); } if (_8) { ZEPHIR_INIT_NVAR(_7); @@ -47941,31 +48817,31 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { ZEPHIR_INIT_NVAR(_9); ZVAL_LONG(_9, 1); zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 136 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 130 TSRMLS_CC); if (zephir_is_true(_10)) { zephir_array_update_string(&definition, SL("autoIncrement"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } break; } - if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/sqlite.zep", 145)) { + if (zephir_memnstr_str(columnType, SL("varchar"), "phalcon/db/adapter/pdo/sqlite.zep", 139)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 2); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/sqlite.zep", 153)) { + if (zephir_memnstr_str(columnType, SL("date"), "phalcon/db/adapter/pdo/sqlite.zep", 147)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/sqlite.zep", 161)) { + if (zephir_memnstr_str(columnType, SL("timestamp"), "phalcon/db/adapter/pdo/sqlite.zep", 155)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 1); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/sqlite.zep", 169)) { + if (zephir_memnstr_str(columnType, SL("decimal"), "phalcon/db/adapter/pdo/sqlite.zep", 163)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 3); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -47975,25 +48851,25 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/sqlite.zep", 179)) { + if (zephir_memnstr_str(columnType, SL("char"), "phalcon/db/adapter/pdo/sqlite.zep", 173)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/sqlite.zep", 187)) { + if (zephir_memnstr_str(columnType, SL("datetime"), "phalcon/db/adapter/pdo/sqlite.zep", 181)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 4); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/sqlite.zep", 195)) { + if (zephir_memnstr_str(columnType, SL("text"), "phalcon/db/adapter/pdo/sqlite.zep", 189)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 6); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/sqlite.zep", 203)) { + if (zephir_memnstr_str(columnType, SL("float"), "phalcon/db/adapter/pdo/sqlite.zep", 197)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 7); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -48003,7 +48879,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("bindType"), &_9, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/sqlite.zep", 213)) { + if (zephir_memnstr_str(columnType, SL("enum"), "phalcon/db/adapter/pdo/sqlite.zep", 207)) { ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, 5); zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); @@ -48014,7 +48890,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_array_update_string(&definition, SL("type"), &_7, PH_COPY | PH_SEPARATE); break; } - if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/sqlite.zep", 228)) { + if (zephir_memnstr_str(columnType, SL("("), "phalcon/db/adapter/pdo/sqlite.zep", 222)) { ZEPHIR_INIT_NVAR(matches); ZVAL_NULL(matches); ZEPHIR_INIT_NVAR(_9); @@ -48034,7 +48910,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { } } } - if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/sqlite.zep", 243)) { + if (zephir_memnstr_str(columnType, SL("unsigned"), "phalcon/db/adapter/pdo/sqlite.zep", 237)) { zephir_array_update_string(&definition, SL("unsigned"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } if (Z_TYPE_P(oldColumn) == IS_NULL) { @@ -48042,26 +48918,26 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { } else { zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 259 TSRMLS_CC); + zephir_array_fetch_long(&_10, field, 5, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 253 TSRMLS_CC); if (zephir_is_true(_10)) { zephir_array_update_string(&definition, SL("primary"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_12, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 266 TSRMLS_CC); + zephir_array_fetch_long(&_12, field, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 260 TSRMLS_CC); if (zephir_is_true(_12)) { zephir_array_update_string(&definition, SL("notNull"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&_13, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 274 TSRMLS_CC); + zephir_array_fetch_long(&_13, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 268 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_14); ZVAL_STRING(&_14, "null", 0); ZEPHIR_CALL_FUNCTION(&_15, "strcasecmp", &_16, _13, &_14); zephir_check_call_status(); _8 = !ZEPHIR_IS_LONG(_15, 0); if (_8) { - zephir_array_fetch_long(&_17, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 274 TSRMLS_CC); + zephir_array_fetch_long(&_17, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 268 TSRMLS_CC); _8 = !ZEPHIR_IS_STRING(_17, ""); } if (_8) { - zephir_array_fetch_long(&_18, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 275 TSRMLS_CC); + zephir_array_fetch_long(&_18, field, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 269 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); ZVAL_STRING(_7, "/^'|'$/", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_9); @@ -48072,12 +48948,12 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { zephir_check_call_status(); zephir_array_update_string(&definition, SL("default"), &_19, PH_COPY | PH_SEPARATE); } - zephir_array_fetch_long(&columnName, field, 1, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 281 TSRMLS_CC); + zephir_array_fetch_long(&columnName, field, 1, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 275 TSRMLS_CC); ZEPHIR_INIT_NVAR(_7); object_init_ex(_7, phalcon_db_column_ce); ZEPHIR_CALL_METHOD(NULL, _7, "__construct", &_21, columnName, definition); zephir_check_call_status(); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 282); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 276); ZEPHIR_CPY_WRT(oldColumn, columnName); } RETURN_CCTOR(columns); @@ -48109,20 +48985,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 318); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 312); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(index, _6); ZEPHIR_OBS_NVAR(keyName); - zephir_array_fetch_long(&keyName, index, 1, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 304 TSRMLS_CC); + zephir_array_fetch_long(&keyName, index, 1, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 298 TSRMLS_CC); if (!(zephir_array_isset(indexes, keyName))) { ZEPHIR_INIT_NVAR(columns); array_init(columns); } else { ZEPHIR_OBS_NVAR(columns); - zephir_array_fetch(&columns, indexes, keyName, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 308 TSRMLS_CC); + zephir_array_fetch(&columns, indexes, keyName, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 302 TSRMLS_CC); } _8 = zephir_fetch_nproperty_this(this_ptr, SL("_dialect"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(&_9, _8, "describeindex", NULL, keyName); @@ -48131,20 +49007,20 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_7, this_ptr, "fetchall", &_10, _9, _3); zephir_check_call_status(); - zephir_is_iterable(_7, &_12, &_11, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 315); + zephir_is_iterable(_7, &_12, &_11, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 309); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) ) { ZEPHIR_GET_HVALUE(describe_index, _13); - zephir_array_fetch_long(&_14, describe_index, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 312 TSRMLS_CC); - zephir_array_append(&columns, _14, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 312); + zephir_array_fetch_long(&_14, describe_index, 2, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 306 TSRMLS_CC); + zephir_array_append(&columns, _14, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 306); } zephir_array_update_zval(&indexes, keyName, &columns, PH_COPY | PH_SEPARATE); } ZEPHIR_INIT_VAR(indexObjects); array_init(indexObjects); - zephir_is_iterable(indexes, &_16, &_15, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 323); + zephir_is_iterable(indexes, &_16, &_15, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 317); for ( ; zephir_hash_get_current_data_ex(_16, (void**) &_17, &_15) == SUCCESS ; zephir_hash_move_forward_ex(_16, &_15) @@ -48187,7 +49063,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZVAL_LONG(_3, 3); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, _2, _3); zephir_check_call_status(); - zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 368); + zephir_is_iterable(_0, &_5, &_4, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 362); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -48200,29 +49076,29 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZEPHIR_INIT_NVAR(referencedSchema); ZVAL_NULL(referencedSchema); ZEPHIR_OBS_NVAR(referencedTable); - zephir_array_fetch_long(&referencedTable, reference, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); + zephir_array_fetch_long(&referencedTable, reference, 2, PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 341 TSRMLS_CC); ZEPHIR_INIT_NVAR(columns); array_init(columns); ZEPHIR_INIT_NVAR(referencedColumns); array_init(referencedColumns); } else { - zephir_array_fetch(&_7, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); + zephir_array_fetch(&_7, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 345 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedSchema); - zephir_array_fetch_string(&referencedSchema, _7, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); - zephir_array_fetch(&_8, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); + zephir_array_fetch_string(&referencedSchema, _7, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 345 TSRMLS_CC); + zephir_array_fetch(&_8, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 346 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedTable); - zephir_array_fetch_string(&referencedTable, _8, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); - zephir_array_fetch(&_9, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 353 TSRMLS_CC); + zephir_array_fetch_string(&referencedTable, _8, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 346 TSRMLS_CC); + zephir_array_fetch(&_9, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); ZEPHIR_OBS_NVAR(columns); - zephir_array_fetch_string(&columns, _9, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 353 TSRMLS_CC); - zephir_array_fetch(&_10, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 354 TSRMLS_CC); + zephir_array_fetch_string(&columns, _9, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 347 TSRMLS_CC); + zephir_array_fetch(&_10, references, constraintName, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 348 TSRMLS_CC); ZEPHIR_OBS_NVAR(referencedColumns); - zephir_array_fetch_string(&referencedColumns, _10, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 354 TSRMLS_CC); + zephir_array_fetch_string(&referencedColumns, _10, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 348 TSRMLS_CC); } - zephir_array_fetch_long(&_7, reference, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 357 TSRMLS_CC); - zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 357); - zephir_array_fetch_long(&_8, reference, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 358 TSRMLS_CC); - zephir_array_append(&referencedColumns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 358); + zephir_array_fetch_long(&_7, reference, 3, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 351 TSRMLS_CC); + zephir_array_append(&columns, _7, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 351); + zephir_array_fetch_long(&_8, reference, 4, PH_NOISY | PH_READONLY, "phalcon/db/adapter/pdo/sqlite.zep", 352 TSRMLS_CC); + zephir_array_append(&referencedColumns, _8, PH_SEPARATE, "phalcon/db/adapter/pdo/sqlite.zep", 352); ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 4, 0 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); @@ -48233,7 +49109,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { } ZEPHIR_INIT_VAR(referenceObjects); array_init(referenceObjects); - zephir_is_iterable(references, &_13, &_12, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 378); + zephir_is_iterable(references, &_13, &_12, 0, 0, "phalcon/db/adapter/pdo/sqlite.zep", 372); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -48245,16 +49121,16 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 4, 0 TSRMLS_CC); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 371 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 365 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedSchema"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 372 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 366 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedTable"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 373 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("columns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 367 TSRMLS_CC); zephir_array_update_string(&_11, SL("columns"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 375 TSRMLS_CC); + zephir_array_fetch_string(&_15, arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/db/adapter/pdo/sqlite.zep", 369 TSRMLS_CC); zephir_array_update_string(&_11, SL("referencedColumns"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_16, name, _11); zephir_check_call_status(); @@ -48291,7 +49167,6 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_MySQL) { zend_declare_property_string(phalcon_db_dialect_mysql_ce, SL("_escapeChar"), "`", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_mysql_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } @@ -48660,7 +49535,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropColumn) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } - zephir_get_strval(columnName, columnName_param); + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } ZEPHIR_INIT_VAR(sql); @@ -48816,8 +49701,28 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addPrimaryKey) { ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zephir_get_strval(tableName, tableName_param); - zephir_get_strval(schemaName, schemaName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } ZEPHIR_INIT_VAR(sql); @@ -48976,11 +49881,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addForeignKey) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName, *sql = NULL; - zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, *sql = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49004,6 +49909,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } ZEPHIR_INIT_VAR(sql); @@ -49021,58 +49937,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey) { } -static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions) { - - zval *definition, *options, *engine, *autoIncrement, *tableCollation, *collationParts, *tableOptions, *_0 = NULL, *_1, *_2; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition); - - - - ZEPHIR_OBS_VAR(options); - if (zephir_array_isset_string_fetch(&options, definition, SS("options"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_VAR(tableOptions); - array_init(tableOptions); - ZEPHIR_OBS_VAR(engine); - if (zephir_array_isset_string_fetch(&engine, options, SS("ENGINE"), 0 TSRMLS_CC)) { - if (zephir_is_true(engine)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SV(_0, "ENGINE=", engine); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 382); - } - } - ZEPHIR_OBS_VAR(autoIncrement); - if (zephir_array_isset_string_fetch(&autoIncrement, options, SS("AUTO_INCREMENT"), 0 TSRMLS_CC)) { - if (zephir_is_true(autoIncrement)) { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SV(_0, "AUTO_INCREMENT=", autoIncrement); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 391); - } - } - ZEPHIR_OBS_VAR(tableCollation); - if (zephir_array_isset_string_fetch(&tableCollation, options, SS("TABLE_COLLATION"), 0 TSRMLS_CC)) { - if (zephir_is_true(tableCollation)) { - ZEPHIR_INIT_VAR(collationParts); - zephir_fast_explode_str(collationParts, SL("_"), tableCollation, LONG_MAX TSRMLS_CC); - zephir_array_fetch_long(&_1, collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/mysql.zep", 401 TSRMLS_CC); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SV(_0, "DEFAULT CHARSET=", _1); - zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 401); - ZEPHIR_INIT_VAR(_2); - ZEPHIR_CONCAT_SV(_2, "COLLATE=", tableCollation); - zephir_array_append(&tableOptions, _2, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 402); - } - } - if (zephir_fast_count_int(tableOptions TSRMLS_CC)) { - zephir_fast_join_str(return_value, SL(" "), tableOptions TSRMLS_CC); - RETURN_MM(); - } - } - RETURN_MM_STRING("", 1); - -} - static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { zephir_nts_static zephir_fcall_cache_entry *_9 = NULL, *_14 = NULL; @@ -49115,7 +49979,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect/mysql.zep", 425); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect/mysql.zep", 368); return; } ZEPHIR_INIT_VAR(table); @@ -49143,7 +50007,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { } ZEPHIR_INIT_VAR(createLines); array_init(createLines); - zephir_is_iterable(columns, &_2, &_1, 0, 0, "phalcon/db/dialect/mysql.zep", 488); + zephir_is_iterable(columns, &_2, &_1, 0, 0, "phalcon/db/dialect/mysql.zep", 431); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -49181,11 +50045,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { if (zephir_is_true(_8)) { zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY") TSRMLS_CC); } - zephir_array_append(&createLines, columnLine, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 482); + zephir_array_append(&createLines, columnLine, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 425); } ZEPHIR_OBS_VAR(indexes); if (zephir_array_isset_string_fetch(&indexes, definition, SS("indexes"), 0 TSRMLS_CC)) { - zephir_is_iterable(indexes, &_12, &_11, 0, 0, "phalcon/db/dialect/mysql.zep", 510); + zephir_is_iterable(indexes, &_12, &_11, 0, 0, "phalcon/db/dialect/mysql.zep", 453); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -49218,12 +50082,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_CONCAT_SVSVS(indexSql, "KEY `", indexName, "` (", _15, ")"); } } - zephir_array_append(&createLines, indexSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 508); + zephir_array_append(&createLines, indexSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 451); } } ZEPHIR_OBS_VAR(references); if (zephir_array_isset_string_fetch(&references, definition, SS("references"), 0 TSRMLS_CC)) { - zephir_is_iterable(references, &_18, &_17, 0, 0, "phalcon/db/dialect/mysql.zep", 532); + zephir_is_iterable(references, &_18, &_17, 0, 0, "phalcon/db/dialect/mysql.zep", 475); for ( ; zephir_hash_get_current_data_ex(_18, (void**) &_19, &_17) == SUCCESS ; zephir_hash_move_forward_ex(_18, &_17) @@ -49257,7 +50121,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { ZEPHIR_CONCAT_SV(_21, " ON UPDATE ", onUpdate); zephir_concat_self(&referenceSql, _21 TSRMLS_CC); } - zephir_array_append(&createLines, referenceSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 530); + zephir_array_append(&createLines, referenceSql, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 473); } } ZEPHIR_INIT_VAR(_22); @@ -49278,11 +50142,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists = NULL, *sql, *table = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *table = NULL; zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49295,19 +50160,21 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } @@ -49322,7 +50189,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { ZEPHIR_CPY_WRT(table, _0); } ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { + if (ifExists) { ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); } else { ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); @@ -49333,11 +50200,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView) { - zval *viewName_param = NULL, *definition, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql; zval *viewName = NULL, *schemaName = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName_param, &definition, &schemaName_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49350,22 +50218,19 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + definition = definition_param; - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } ZEPHIR_OBS_VAR(viewSql); if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/mysql.zep", 582); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/mysql.zep", 515); return; } ZEPHIR_INIT_VAR(view); @@ -49390,7 +50255,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &schemaName_param, &ifExists_param); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49403,21 +50268,21 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } if (!ifExists_param) { ifExists = 1; } else { - ifExists = zephir_get_boolval(ifExists_param); + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } @@ -49440,11 +50305,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropView) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { - zval *tableName_param = NULL, *schemaName = NULL; - zval *tableName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -49457,12 +50322,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { + if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`= '", tableName, "' AND `TABLE_SCHEMA` = '", schemaName, "'"); RETURN_MM(); } @@ -49473,11 +50341,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableExists) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { - zval *viewName_param = NULL, *schemaName = NULL; - zval *viewName = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -49490,12 +50358,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { + if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`= '", viewName, "' AND `TABLE_SCHEMA`='", schemaName, "'"); RETURN_MM(); } @@ -49506,11 +50377,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, viewExists) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeColumns) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49523,12 +50394,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_SVSVS(return_value, "DESCRIBE `", schema, "`.`", table, "`"); RETURN_MM(); } @@ -49549,17 +50423,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listTables) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } } @@ -49607,11 +50471,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listViews) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49624,12 +50488,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_SVSVS(return_value, "SHOW INDEXES FROM `", schema, "`.`", table, "`"); RETURN_MM(); } @@ -49640,11 +50507,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { - zval *table_param = NULL, *schema = NULL, *sql, *_0; - zval *table = NULL, *_1; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49657,21 +50524,24 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } ZEPHIR_INIT_VAR(sql); ZVAL_STRING(sql, "SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_SCHEMA,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL AND ", 1); - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_INIT_VAR(_0); ZEPHIR_CONCAT_SVSVS(_0, "CONSTRAINT_SCHEMA = '", schema, "' AND TABLE_NAME = '", table, "'"); zephir_concat_self(&sql, _0 TSRMLS_CC); } else { - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_SVS(_1, "TABLE_NAME = '", table, "'"); - zephir_concat_self(&sql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "TABLE_NAME = '", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); } RETURN_CCTOR(sql); @@ -49679,11 +50549,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences) { static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { - zval *table_param = NULL, *schema = NULL, *sql; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -49696,14 +50566,17 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } ZEPHIR_INIT_VAR(sql); ZVAL_STRING(sql, "SELECT TABLES.TABLE_TYPE AS table_type,TABLES.AUTO_INCREMENT AS auto_increment,TABLES.ENGINE AS engine,TABLES.TABLE_COLLATION AS table_collation FROM INFORMATION_SCHEMA.TABLES WHERE ", 1); - if (zephir_is_true(schema)) { + if (schema && Z_STRLEN_P(schema)) { ZEPHIR_CONCAT_VSVSVS(return_value, sql, "TABLES.TABLE_SCHEMA = '", schema, "' AND TABLES.TABLE_NAME = '", table, "'"); RETURN_MM(); } @@ -49712,6 +50585,61 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { } +static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions) { + + zval *definition_param = NULL, *options, *engine, *autoIncrement, *tableCollation, *collationParts, *tableOptions, *_0 = NULL, *_1, *_2; + zval *definition = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &definition_param); + + definition = definition_param; + + + + ZEPHIR_OBS_VAR(options); + if (zephir_array_isset_string_fetch(&options, definition, SS("options"), 0 TSRMLS_CC)) { + ZEPHIR_INIT_VAR(tableOptions); + array_init(tableOptions); + ZEPHIR_OBS_VAR(engine); + if (zephir_array_isset_string_fetch(&engine, options, SS("ENGINE"), 0 TSRMLS_CC)) { + if (zephir_is_true(engine)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SV(_0, "ENGINE=", engine); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 671); + } + } + ZEPHIR_OBS_VAR(autoIncrement); + if (zephir_array_isset_string_fetch(&autoIncrement, options, SS("AUTO_INCREMENT"), 0 TSRMLS_CC)) { + if (zephir_is_true(autoIncrement)) { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SV(_0, "AUTO_INCREMENT=", autoIncrement); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 680); + } + } + ZEPHIR_OBS_VAR(tableCollation); + if (zephir_array_isset_string_fetch(&tableCollation, options, SS("TABLE_COLLATION"), 0 TSRMLS_CC)) { + if (zephir_is_true(tableCollation)) { + ZEPHIR_INIT_VAR(collationParts); + zephir_fast_explode_str(collationParts, SL("_"), tableCollation, LONG_MAX TSRMLS_CC); + zephir_array_fetch_long(&_1, collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/mysql.zep", 690 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SV(_0, "DEFAULT CHARSET=", _1); + zephir_array_append(&tableOptions, _0, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 690); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SV(_2, "COLLATE=", tableCollation); + zephir_array_append(&tableOptions, _2, PH_SEPARATE, "phalcon/db/dialect/mysql.zep", 691); + } + } + if (zephir_fast_count_int(tableOptions TSRMLS_CC)) { + zephir_fast_join_str(return_value, SL(" "), tableOptions TSRMLS_CC); + RETURN_MM(); + } + } + RETURN_MM_STRING("", 1); + +} + @@ -49728,7 +50656,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions) { ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Oracle, phalcon, db_dialect_oracle, phalcon_db_dialect_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Oracle, phalcon, db_dialect_oracle, phalcon_db_dialect_ce, phalcon_db_dialect_oracle_method_entry, 0); zend_declare_property_string(phalcon_db_dialect_oracle_ce, SL("_escapeChar"), "", ZEND_ACC_PROTECTED TSRMLS_CC); @@ -49736,550 +50664,1038 @@ ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle) { } +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, limit) { + int limit, offset = 0; + zval *sqlQuery_param = NULL, *number, *_0 = NULL, *_1, _2 = zval_used_for_init, *_3, _4 = zval_used_for_init, _6; + zval *sqlQuery = NULL, *_5, *_7; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) { + if (unlikely(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); + if (likely(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(sqlQuery); + ZVAL_EMPTY_STRING(sqlQuery); + } - zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_postgresql_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); - return SUCCESS; + if (Z_TYPE_P(number) == IS_ARRAY) { + if (zephir_array_isset_long(number, 1)) { + ZEPHIR_INIT_VAR(_0); + zephir_array_fetch_long(&_1, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect/oracle.zep", 51 TSRMLS_CC); + ZEPHIR_SINIT_VAR(_2); + ZVAL_STRING(&_2, "'", 0); + zephir_fast_trim(_0, _1, &_2, ZEPHIR_TRIM_BOTH TSRMLS_CC); + offset = zephir_get_intval(_0); + } + ZEPHIR_INIT_NVAR(_0); + zephir_array_fetch_long(&_1, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect/oracle.zep", 54 TSRMLS_CC); + ZEPHIR_SINIT_NVAR(_2); + ZVAL_STRING(&_2, "'", 0); + zephir_fast_trim(_0, _1, &_2, ZEPHIR_TRIM_BOTH TSRMLS_CC); + limit = (zephir_get_intval(_0) + offset); + } else { + ZEPHIR_INIT_VAR(_3); + ZEPHIR_SINIT_VAR(_4); + ZVAL_STRING(&_4, "'", 0); + zephir_fast_trim(_3, number, &_4, ZEPHIR_TRIM_BOTH TSRMLS_CC); + limit = zephir_get_intval(_3); + } + ZEPHIR_SINIT_NVAR(_4); + ZVAL_LONG(&_4, limit); + ZEPHIR_INIT_VAR(_5); + ZEPHIR_CONCAT_SVSVS(_5, "SELECT * FROM (SELECT Z1.*, ROWNUM PHALCON_RN FROM (", sqlQuery, ") Z1 WHERE ROWNUM <= ", &_4, ")"); + ZEPHIR_CPY_WRT(sqlQuery, _5); + if (offset != 0) { + ZEPHIR_SINIT_VAR(_6); + ZVAL_LONG(&_6, offset); + ZEPHIR_INIT_VAR(_7); + ZEPHIR_CONCAT_SV(_7, " WHERE PHALCON_RN >= ", &_6); + zephir_concat_self(&sqlQuery, _7 TSRMLS_CC); + } + RETURN_CTOR(sqlQuery); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, getColumnDefinition) { - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; - HashTable *_3; - HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *column, *size = NULL, *columnType = NULL, *columnSql, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *value = NULL, *valueSql, **_4, _5 = zval_used_for_init, _7 = zval_used_for_init, *_8, *_9 = NULL, *_10 = NULL; + zval *column, *columnSql = NULL, *size = NULL, *scale = NULL, *type = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); + ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL); + ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(columnSql); - ZVAL_STRING(columnSql, "", 1); - if (Z_TYPE_P(columnType) == IS_STRING) { - zephir_concat_self(&columnSql, columnType TSRMLS_CC); - ZEPHIR_CALL_METHOD(&columnType, column, "gettypereference", NULL); - zephir_check_call_status(); - } do { - if (ZEPHIR_IS_LONG(columnType, 0)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 0)) { + ZEPHIR_INIT_VAR(columnSql); + ZVAL_STRING(columnSql, "INTEGER", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 1)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 1)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "DATE", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 2)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING") TSRMLS_CC); - } - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + if (ZEPHIR_IS_LONG(type, 2)) { + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVS(columnSql, "VARCHAR2(", size, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 3)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL); + if (ZEPHIR_IS_LONG(type, 3)) { + ZEPHIR_CALL_METHOD(&scale, column, "getscale", NULL); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "(", size, ",", _1, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVSVS(columnSql, "NUMBER(", size, ",", scale, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 4)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 4)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TIMESTAMP", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 5)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); - } - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); - zephir_concat_self(&columnSql, _0 TSRMLS_CC); + if (ZEPHIR_IS_LONG(type, 5)) { + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVS(columnSql, "CHAR(", size, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 6)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 6)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TEXT", 1); break; } - if (ZEPHIR_IS_LONG(columnType, 7)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 7)) { + ZEPHIR_CALL_METHOD(&scale, column, "getscale", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(columnSql); + ZEPHIR_CONCAT_SVSVS(columnSql, "FLOAT(", size, ",", scale, ")"); break; } - if (ZEPHIR_IS_LONG(columnType, 8)) { - if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("SMALLINT(1)") TSRMLS_CC); - } + if (ZEPHIR_IS_LONG(type, 8)) { + ZEPHIR_INIT_NVAR(columnSql); + ZVAL_STRING(columnSql, "TINYINT(1)", 1); break; } - if (ZEPHIR_IS_EMPTY(columnSql)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized PostgreSQL data type", "phalcon/db/dialect/postgresql.zep", 117); - return; - } - ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(typeValues))) { - if (Z_TYPE_P(typeValues) == IS_ARRAY) { - ZEPHIR_INIT_VAR(valueSql); - ZVAL_STRING(valueSql, "", 1); - zephir_is_iterable(typeValues, &_3, &_2, 0, 0, "phalcon/db/dialect/postgresql.zep", 128); - for ( - ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS - ; zephir_hash_move_forward_ex(_3, &_2) - ) { - ZEPHIR_GET_HVALUE(value, _4); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_1, "addcslashes", &_6, value, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "\"", _1, "\", "); - zephir_concat_self(&valueSql, _0 TSRMLS_CC); - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, 0); - ZEPHIR_SINIT_VAR(_7); - ZVAL_LONG(&_7, -2); - ZEPHIR_INIT_VAR(_8); - zephir_substr(_8, valueSql, 0 , -2 , 0); - ZEPHIR_INIT_VAR(_9); - ZEPHIR_CONCAT_SVS(_9, "(", _8, ")"); - zephir_concat_self(&columnSql, _9 TSRMLS_CC); - } else { - ZEPHIR_SINIT_NVAR(_7); - ZVAL_STRING(&_7, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_10, "addcslashes", &_6, typeValues, &_7); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SVS(_9, "(\"", _10, "\")"); - zephir_concat_self(&columnSql, _9 TSRMLS_CC); - } - } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized Oracle data type", "phalcon/db/dialect/oracle.zep", 120); + return; } while(0); RETURN_CCTOR(columnSql); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { - - zval *tableName, *schemaName, *column; - - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &column); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 148); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { - - zval *tableName, *schemaName, *column; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &column); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 161); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 131); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { - - zval *tableName, *schemaName, *columnName; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, modifyColumn) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &columnName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 174); - return; - -} + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - zval *tableName, *schemaName, *index; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &index); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 187); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 139); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { - - zval *tableName, *schemaName, *indexName; - - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &indexName); - - +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropColumn) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 200); - return; - -} + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - zval *tableName, *schemaName, *index; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &index); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + zephir_get_strval(columnName, columnName_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 213); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 147); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { - - zval *tableName, *schemaName; - - zephir_fetch_params(0, 2, 0, &tableName, &schemaName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 225); - return; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addIndex) { -} + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zval *tableName, *schemaName, *reference; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &reference); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 238); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 155); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { - - zval *tableName, *schemaName, *referenceName; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropIndex) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &referenceName); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 251); - return; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, _getTableOptions) { + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zval *definition; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 1, 0, &definition); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(indexName); + ZVAL_EMPTY_STRING(indexName); + } - array_init(return_value); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 164); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { - - zval *definition = NULL; - zval *tableName, *schemaName, *definition_param = NULL; +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addPrimaryKey) { - zephir_fetch_params(0, 3, 0, &tableName, &schemaName, &definition_param); + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; - definition = definition_param; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + zephir_get_strval(tableName, tableName_param); + zephir_get_strval(schemaName, schemaName_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 275); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 172); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropPrimaryKey) { - zval *tableName, *schemaName, *ifExists = NULL, *table = NULL, *sql; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName, &schemaName, &ifExists); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(table); - ZEPHIR_CONCAT_VSV(table, schemaName, ".", tableName); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(table, tableName); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); } else { - ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - RETURN_CCTOR(sql); + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 180); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addForeignKey) { - zval *viewName, *definition, *schemaName, *viewSql, *view = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName, &definition, &schemaName); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_OBS_VAR(viewSql); - if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/postgresql.zep", 316); - return; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(view); - ZEPHIR_CONCAT_VSV(view, viewName, ".", schemaName); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); } else { - ZEPHIR_CPY_WRT(view, viewName); + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); - RETURN_MM(); + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 188); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropForeignKey) { - zval *viewName, *schemaName, *ifExists = NULL, *view = NULL, *sql; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName, &schemaName, &ifExists); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_INIT_VAR(view); - ZEPHIR_CONCAT_VSV(view, viewName, ".", schemaName); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(view, viewName); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SV(sql, "DROP VIEW IF EXISTS ", view); - } else { - ZEPHIR_CONCAT_SV(sql, "DROP VIEW ", view); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - RETURN_CCTOR(sql); - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { - - zval *tableName, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &tableName, &schemaName); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", schemaName, "' AND table_name='", tableName, "'"); - return; - } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='", tableName, "'"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 196); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createTable) { - zval *viewName, *schemaName = NULL; + zval *definition = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &viewName, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "' AND schemaname='", schemaName, "'"); - return; + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "'"); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { - - zval *table, *schema = NULL; - - zephir_fetch_params(0, 1, 1, &table, &schema); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } + definition = definition_param; - if (zephir_is_true(schema)) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='", schema, "' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); - return; - } - ZEPHIR_CONCAT_SVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/oracle.zep", 204); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropTable) { - zval *schemaName = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *table = NULL, *_0 = NULL, *_1 = NULL, *_4 = NULL, *_5 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 0, 1, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", schemaName, "' ORDER BY table_name"); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_text_ce, "upper", &_2, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", &_3, _1); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_5, phalcon_text_ce, "upper", &_2, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "escape", &_3, _5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(table); + ZEPHIR_CONCAT_VSV(table, _0, ".", _4); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_2, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&table, this_ptr, "escape", &_3, _0); + zephir_check_call_status(); + } + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", table); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", table); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createView) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql, *_0 = NULL, *_2 = NULL, *_3; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + definition = definition_param; + + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + ZEPHIR_OBS_VAR(viewSql); + if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/oracle.zep", 235); return; } - RETURN_STRING("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name", 1); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _0, ".", _2); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _3); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _0); + zephir_check_call_status(); + } + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropView) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *view = NULL, *_0 = NULL, *_2 = NULL, *_3; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_VSV(_3, _0, ".", _2); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _3); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "escape", &_4, _0); + zephir_check_call_status(); + } + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", view); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", view); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, viewExists) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL, *_0 = NULL, *_2 = NULL; + zval *viewName = NULL, *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_VIEWS WHERE VIEW_NAME='", _0, "' AND OWNER='", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, viewName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_VIEWS WHERE VIEW_NAME='", _0, "'"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listViews) { + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *schemaName_param = NULL, *_0 = NULL; zval *schemaName = NULL; - zephir_fetch_params(0, 0, 1, &schemaName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - if (zephir_is_true(schemaName)) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", schemaName, "' ORDER BY view_name"); - return; + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT VIEW_NAME FROM ALL_VIEWS WHERE OWNER='", _0, "' ORDER BY VIEW_NAME"); + RETURN_MM(); + } else { + RETURN_MM_STRING("SELECT VIEW_NAME FROM ALL_VIEWS VIEW_NAME", 1); } - RETURN_STRING("SELECT viewname AS view_name FROM pg_views WHERE schemaname = 'public' ORDER BY view_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableExists) { - zval *table, *schema = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *_0 = NULL, *_2 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zephir_fetch_params(0, 1, 1, &table, &schema); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } - ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", table, "' ORDER BY t.relname, i.relname;"); - return; + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, tableName); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_TABLES WHERE TABLE_NAME='", _0, "' AND OWNER = '", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, tableName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END RET FROM ALL_TABLES WHERE TABLE_NAME='", _0, "'"); + RETURN_MM(); + } } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeColumns) { - zval *table, *schema = NULL, *sql, *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *_0 = NULL, *_2 = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - ZEPHIR_INIT_VAR(sql); - ZVAL_STRING(sql, "SELECT tc.table_name as TABLE_NAME, kcu.column_name as COLUMN_NAME, tc.constraint_name as CONSTRAINT_NAME, tc.table_catalog as REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ", 1); - if (zephir_is_true(schema)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "tc.table_schema = '", schema, "' AND tc.table_name='", table, "'"); - zephir_concat_self(&sql, _0 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT TC.COLUMN_NAME, TC.DATA_TYPE, TC.DATA_LENGTH, TC.DATA_PRECISION, TC.DATA_SCALE, TC.NULLABLE, C.CONSTRAINT_TYPE, TC.DATA_DEFAULT, CC.POSITION FROM ALL_TAB_COLUMNS TC LEFT JOIN (ALL_CONS_COLUMNS CC JOIN ALL_CONSTRAINTS C ON (CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND CC.TABLE_NAME = C.TABLE_NAME AND CC.OWNER = C.OWNER AND C.CONSTRAINT_TYPE = 'P')) ON TC.TABLE_NAME = CC.TABLE_NAME AND TC.COLUMN_NAME = CC.COLUMN_NAME WHERE TC.TABLE_NAME = '", _0, "' AND TC.OWNER = '", _2, "' ORDER BY TC.COLUMN_ID"); + RETURN_MM(); } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "tc.table_name='", table, "'"); - zephir_concat_self(&sql, _0 TSRMLS_CC); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT TC.COLUMN_NAME, TC.DATA_TYPE, TC.DATA_LENGTH, TC.DATA_PRECISION, TC.DATA_SCALE, TC.NULLABLE, C.CONSTRAINT_TYPE, TC.DATA_DEFAULT, CC.POSITION FROM ALL_TAB_COLUMNS TC LEFT JOIN (ALL_CONS_COLUMNS CC JOIN ALL_CONSTRAINTS C ON (CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND CC.TABLE_NAME = C.TABLE_NAME AND CC.OWNER = C.OWNER AND C.CONSTRAINT_TYPE = 'P')) ON TC.TABLE_NAME = CC.TABLE_NAME AND TC.COLUMN_NAME = CC.COLUMN_NAME WHERE TC.TABLE_NAME = '", _0, "' ORDER BY TC.COLUMN_ID"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listTables) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *schemaName_param = NULL, *_0 = NULL; + zval *schemaName = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); + + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + if (!ZEPHIR_IS_STRING(schemaName, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT TABLE_NAME, OWNER FROM ALL_TABLES WHERE OWNER='", _0, "' ORDER BY OWNER, TABLE_NAME"); + RETURN_MM(); + } else { + RETURN_MM_STRING("SELECT TABLE_NAME, OWNER FROM ALL_TABLES ORDER BY OWNER, TABLE_NAME", 1); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeIndexes) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *_0 = NULL, *_2 = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + + + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT I.TABLE_NAME, 0 AS C0, I.INDEX_NAME, IC.COLUMN_POSITION, IC.COLUMN_NAME FROM ALL_INDEXES I JOIN ALL_IND_COLUMNS IC ON I.INDEX_NAME = IC.INDEX_NAME WHERE I.TABLE_NAME = '", _0, "' AND IC.INDEX_OWNER = '", _2, "'"); + RETURN_MM(); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT I.TABLE_NAME, 0 AS C0, I.INDEX_NAME, IC.COLUMN_POSITION, IC.COLUMN_NAME FROM ALL_INDEXES I JOIN ALL_IND_COLUMNS IC ON I.INDEX_NAME = IC.INDEX_NAME WHERE I.TABLE_NAME = '", _0, "'"); + RETURN_MM(); + } + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeReferences) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql, *_0 = NULL, *_2 = NULL, *_3 = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } + + + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "SELECT AC.TABLE_NAME, CC.COLUMN_NAME, AC.CONSTRAINT_NAME, AC.R_OWNER, RCC.TABLE_NAME R_TABLE_NAME, RCC.COLUMN_NAME R_COLUMN_NAME FROM ALL_CONSTRAINTS AC JOIN ALL_CONS_COLUMNS CC ON AC.CONSTRAINT_NAME = CC.CONSTRAINT_NAME JOIN ALL_CONS_COLUMNS RCC ON AC.R_OWNER = RCC.OWNER AND AC.R_CONSTRAINT_NAME = RCC.CONSTRAINT_NAME WHERE AC.CONSTRAINT_TYPE='R' ", 1); + if (!ZEPHIR_IS_STRING(schema, "")) { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, schema); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_SVSVS(_3, "AND AC.OWNER='", _0, "' AND AC.TABLE_NAME = '", _2, "'"); + zephir_concat_self(&sql, _3 TSRMLS_CC); + } else { + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_text_ce, "upper", &_1, table); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_3); + ZEPHIR_CONCAT_SVS(_3, "AND AC.TABLE_NAME = '", _0, "'"); + zephir_concat_self(&sql, _3 TSRMLS_CC); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableOptions) { - zval *table, *schema = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; - zephir_fetch_params(0, 1, 1, &table, &schema); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - RETURN_STRING("", 1); + RETURN_MM_STRING("", 1); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsSavepoints) { + + + RETURN_BOOL(0); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints) { + + + RETURN_BOOL(0); } @@ -50297,107 +51713,108 @@ static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); - zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_dialect_sqlite_ce TSRMLS_CC, 1, phalcon_db_dialectinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) { - zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; - HashTable *_4; - HashPosition _3; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + HashTable *_3; + HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *column, *columnSql, *type = NULL, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL, *value = NULL, *valueSql, **_5, _6 = zval_used_for_init, _8 = zval_used_for_init, *_9, *_10 = NULL; + zval *column, *size = NULL, *columnType = NULL, *columnSql, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *value = NULL, *valueSql, **_4, _5 = zval_used_for_init, _7 = zval_used_for_init, *_8, *_9 = NULL, *_10 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &column); + ZEPHIR_CALL_METHOD(&size, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL); + zephir_check_call_status(); ZEPHIR_INIT_VAR(columnSql); ZVAL_STRING(columnSql, "", 1); - ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); - zephir_check_call_status(); - if (Z_TYPE_P(type) == IS_STRING) { - zephir_concat_self(&columnSql, type TSRMLS_CC); - ZEPHIR_CALL_METHOD(&type, column, "gettypereference", NULL); + if (Z_TYPE_P(columnType) == IS_STRING) { + zephir_concat_self(&columnSql, columnType TSRMLS_CC); + ZEPHIR_CALL_METHOD(&columnType, column, "gettypereference", NULL); zephir_check_call_status(); } do { - if (ZEPHIR_IS_LONG(type, 0)) { + if (ZEPHIR_IS_LONG(columnType, 0)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 1)) { + if (ZEPHIR_IS_LONG(columnType, 1)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 2)) { + if (ZEPHIR_IS_LONG(columnType, 2)) { if (ZEPHIR_IS_EMPTY(columnSql)) { - zephir_concat_self_str(&columnSql, SL("VARCHAR") TSRMLS_CC); + zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 3)) { + if (ZEPHIR_IS_LONG(columnType, 3)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, column, "getscale", NULL); + ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVSVS(_1, "(", _0, ",", _2, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "(", size, ",", _1, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 4)) { + if (ZEPHIR_IS_LONG(columnType, 4)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 5)) { + if (ZEPHIR_IS_LONG(columnType, 5)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); - zephir_concat_self(&columnSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "(", size, ")"); + zephir_concat_self(&columnSql, _0 TSRMLS_CC); break; } - if (ZEPHIR_IS_LONG(type, 6)) { + if (ZEPHIR_IS_LONG(columnType, 6)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); } break; } - if (ZEPHIR_IS_LONG(type, 7)) { + if (ZEPHIR_IS_LONG(columnType, 7)) { if (ZEPHIR_IS_EMPTY(columnSql)) { zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); } break; } + if (ZEPHIR_IS_LONG(columnType, 8)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("SMALLINT(1)") TSRMLS_CC); + } + break; + } if (ZEPHIR_IS_EMPTY(columnSql)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized SQLite data type", "phalcon/db/dialect/sqlite.zep", 112); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized PostgreSQL data type", "phalcon/db/dialect/postgresql.zep", 117); return; } ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); @@ -50406,37 +51823,37 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { if (Z_TYPE_P(typeValues) == IS_ARRAY) { ZEPHIR_INIT_VAR(valueSql); ZVAL_STRING(valueSql, "", 1); - zephir_is_iterable(typeValues, &_4, &_3, 0, 0, "phalcon/db/dialect/sqlite.zep", 123); + zephir_is_iterable(typeValues, &_3, &_2, 0, 0, "phalcon/db/dialect/postgresql.zep", 128); for ( - ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS - ; zephir_hash_move_forward_ex(_4, &_3) + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) ) { - ZEPHIR_GET_HVALUE(value, _5); - ZEPHIR_SINIT_NVAR(_6); - ZVAL_STRING(&_6, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_0, "addcslashes", &_7, value, &_6); + ZEPHIR_GET_HVALUE(value, _4); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_1, "addcslashes", &_6, value, &_5); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_SVS(_1, "\"", _0, "\", "); - zephir_concat_self(&valueSql, _1 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "\"", _1, "\", "); + zephir_concat_self(&valueSql, _0 TSRMLS_CC); } - ZEPHIR_SINIT_NVAR(_6); - ZVAL_LONG(&_6, 0); - ZEPHIR_SINIT_VAR(_8); - ZVAL_LONG(&_8, -2); - ZEPHIR_INIT_VAR(_9); - zephir_substr(_9, valueSql, 0 , -2 , 0); - ZEPHIR_INIT_VAR(_10); - ZEPHIR_CONCAT_SVS(_10, "(", _9, ")"); - zephir_concat_self(&columnSql, _10 TSRMLS_CC); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, 0); + ZEPHIR_SINIT_VAR(_7); + ZVAL_LONG(&_7, -2); + ZEPHIR_INIT_VAR(_8); + zephir_substr(_8, valueSql, 0 , -2 , 0); + ZEPHIR_INIT_VAR(_9); + ZEPHIR_CONCAT_SVS(_9, "(", _8, ")"); + zephir_concat_self(&columnSql, _9 TSRMLS_CC); } else { - ZEPHIR_SINIT_NVAR(_8); - ZVAL_STRING(&_8, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_2, "addcslashes", &_7, typeValues, &_8); + ZEPHIR_SINIT_NVAR(_7); + ZVAL_STRING(&_7, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_10, "addcslashes", &_6, typeValues, &_7); zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_10); - ZEPHIR_CONCAT_SVS(_10, "(\"", _2, "\")"); - zephir_concat_self(&columnSql, _10 TSRMLS_CC); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SVS(_9, "(\"", _10, "\")"); + zephir_concat_self(&columnSql, _9 TSRMLS_CC); } } } while(0); @@ -50445,12 +51862,10 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, *sql = NULL, *defaultValue = NULL, *_1 = NULL, *_2 = NULL, *_3, _4, *_5 = NULL, *_7; - zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); @@ -50479,49 +51894,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { } - ZEPHIR_INIT_VAR(sql); - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "ALTER TABLE \"", schemaName, "\".\"", tableName, "\" ADD COLUMN "); - ZEPHIR_CPY_WRT(sql, _0); - } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "ALTER TABLE \"", tableName, "\" ADD COLUMN "); - ZEPHIR_CPY_WRT(sql, _0); - } - ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_3); - ZEPHIR_CONCAT_SVSV(_3, "\"", _1, "\" ", _2); - zephir_concat_self(&sql, _3 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(defaultValue))) { - ZEPHIR_SINIT_VAR(_4); - ZVAL_STRING(&_4, "\"", 0); - ZEPHIR_CALL_FUNCTION(&_5, "addcslashes", &_6, defaultValue, &_4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_7); - ZEPHIR_CONCAT_SVS(_7, " DEFAULT \"", _5, "\""); - zephir_concat_self(&sql, _7 TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_5, column, "isnotnull", NULL); - zephir_check_call_status(); - if (zephir_is_true(_5)) { - zephir_concat_self_str(&sql, SL(" NOT NULL") TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_5, column, "isautoincrement", NULL); - zephir_check_call_status(); - if (zephir_is_true(_5)) { - zephir_concat_self_str(&sql, SL(" PRIMARY KEY AUTOINCREMENT") TSRMLS_CC); - } - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 143); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { zval *tableName_param = NULL, *schemaName_param = NULL, *column; zval *tableName = NULL, *schemaName = NULL; @@ -50553,12 +51931,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 169); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 151); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; @@ -50588,19 +51966,27 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } - zephir_get_strval(columnName, columnName_param); + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 177); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 159); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, *sql, *indexType = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *index; zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); @@ -50630,42 +52016,15 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { } - ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(sql); - if (!(ZEPHIR_IS_EMPTY(indexType))) { - ZEPHIR_CONCAT_SVS(sql, "CREATE ", indexType, " INDEX \""); - } else { - ZVAL_STRING(sql, "CREATE INDEX \"", 1); - } - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_CONCAT_VSVSVS(_1, schemaName, "\".\"", _0, "\" ON \"", tableName, "\" ("); - zephir_concat_self(&sql, _1 TSRMLS_CC); - } else { - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_VSVS(_1, _0, "\" ON \"", tableName, "\" ("); - zephir_concat_self(&sql, _1 TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_3, _2); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_1); - ZEPHIR_CONCAT_VS(_1, _0, ")"); - zephir_concat_self(&sql, _1 TSRMLS_CC); - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 167); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, *sql = NULL; - zval *tableName = NULL, *schemaName = NULL, *indexName = NULL, *_0 = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); @@ -50705,21 +52064,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { } - ZEPHIR_INIT_VAR(sql); - if (schemaName && Z_STRLEN_P(schemaName)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_SVSVS(_0, "DROP INDEX \"", schemaName, "\".\"", indexName, "\""); - ZEPHIR_CPY_WRT(sql, _0); - } else { - ZEPHIR_INIT_LNVAR(_0); - ZEPHIR_CONCAT_SVS(_0, "DROP INDEX \"", indexName, "\""); - ZEPHIR_CPY_WRT(sql, _0); - } - RETURN_CCTOR(sql); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 175); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { zval *tableName_param = NULL, *schemaName_param = NULL, *index; zval *tableName = NULL, *schemaName = NULL; @@ -50727,16 +52077,36 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zephir_get_strval(tableName, tableName_param); - zephir_get_strval(schemaName, schemaName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 224); + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 183); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { zval *tableName_param = NULL, *schemaName_param = NULL; zval *tableName = NULL, *schemaName = NULL; @@ -50768,12 +52138,12 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 232); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 191); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { zval *tableName_param = NULL, *schemaName_param = NULL, *reference; zval *tableName = NULL, *schemaName = NULL; @@ -50805,18 +52175,18 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 240); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 199); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName; - zval *tableName = NULL, *schemaName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -50840,26 +52210,25 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 253); - return; - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, _getTableOptions) { - - zval *definition; - - zephir_fetch_params(0, 1, 0, &definition); - + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } - RETURN_STRING("", 1); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 207); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { zval *definition = NULL; zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; @@ -50894,18 +52263,19 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/sqlite.zep", 272); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/postgresql.zep", 215); return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists = NULL, *sql, *table = NULL; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *table = NULL, *sql; zval *tableName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &tableName_param, &schemaName_param, &ifExists); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -50918,46 +52288,49 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); } - if (!ifExists) { - ifExists = ZEPHIR_GLOBAL(global_true); + + ifExists = Z_BVAL_P(ifExists_param); } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", tableName); + ZEPHIR_CONCAT_VSV(_0, schemaName, ".", tableName); ZEPHIR_CPY_WRT(table, _0); } else { ZEPHIR_CPY_WRT(table, tableName); } ZEPHIR_INIT_VAR(sql); - if (zephir_is_true(ifExists)) { - ZEPHIR_CONCAT_SVS(sql, "DROP TABLE IF EXISTS \"", table, "\""); + if (ifExists) { + ZEPHIR_CONCAT_SV(sql, "DROP TABLE IF EXISTS ", table); } else { - ZEPHIR_CONCAT_SVS(sql, "DROP TABLE \"", table, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP TABLE ", table); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { - zval *viewName_param = NULL, *definition, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *viewSql, *view = NULL; zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &viewName_param, &definition, &schemaName_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -50970,44 +52343,41 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + definition = definition_param; - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } ZEPHIR_OBS_VAR(viewSql); if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/sqlite.zep", 315); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/postgresql.zep", 246); return; } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CONCAT_VSV(_0, viewName, ".", schemaName); ZEPHIR_CPY_WRT(view, _0); } else { ZEPHIR_CPY_WRT(view, viewName); } - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW \"", view, "\" AS ", viewSql); + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", view, " AS ", viewSql); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *view = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *view = NULL, *sql; zval *viewName = NULL, *schemaName = NULL, *_0; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &schemaName_param, &ifExists_param); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -51020,48 +52390,48 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { + if (!schemaName_param) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } if (!ifExists_param) { ifExists = 1; } else { - ifExists = zephir_get_boolval(ifExists_param); + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + + ifExists = Z_BVAL_P(ifExists_param); } if (schemaName && Z_STRLEN_P(schemaName)) { ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CONCAT_VSV(_0, viewName, ".", schemaName); ZEPHIR_CPY_WRT(view, _0); } else { ZEPHIR_CPY_WRT(view, viewName); } ZEPHIR_INIT_VAR(sql); if (ifExists) { - ZEPHIR_CONCAT_SVS(sql, "DROP VIEW IF EXISTS \"", view, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP VIEW IF EXISTS ", view); } else { - ZEPHIR_CONCAT_SVS(sql, "DROP VIEW \"", view, "\""); + ZEPHIR_CONCAT_SV(sql, "DROP VIEW ", view); } RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { - zval *tableName_param = NULL, *schemaName = NULL; - zval *tableName = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); @@ -51074,23 +52444,30 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { ZEPHIR_INIT_VAR(tableName); ZVAL_EMPTY_STRING(tableName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", tableName, "'"); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", schemaName, "' AND table_name='", tableName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='", tableName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { - zval *viewName_param = NULL, *schemaName = NULL; - zval *viewName = NULL; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); @@ -51103,23 +52480,30 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { ZEPHIR_INIT_VAR(viewName); ZVAL_EMPTY_STRING(viewName); } - if (!schemaName) { - schemaName = ZEPHIR_GLOBAL(global_null); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", viewName, "'"); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "' AND schemaname='", schemaName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51132,17 +52516,24 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", table, "')"); + if (schema && Z_STRLEN_P(schema)) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='", schema, "' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='", table, "' ORDER BY c.ordinal_position"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { zval *schemaName_param = NULL; zval *schemaName = NULL; @@ -51154,61 +52545,44 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { ZEPHIR_INIT_VAR(schemaName); ZVAL_EMPTY_STRING(schemaName); } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } } - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name", 1); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", schemaName, "' ORDER BY table_name"); + RETURN_MM(); + } + RETURN_MM_STRING("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { - zval *schemaName_param = NULL; zval *schemaName = NULL; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - - if (!schemaName_param) { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } else { - if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(0, 0, 1, &schemaName); - if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(schemaName); - ZVAL_EMPTY_STRING(schemaName); - } + if (!schemaName) { + schemaName = ZEPHIR_GLOBAL(global_null); } - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name", 1); + if (zephir_is_true(schemaName)) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", schemaName, "' ORDER BY view_name"); + return; + } + RETURN_STRING("SELECT viewname AS view_name FROM pg_views WHERE schemaname = 'public' ORDER BY view_name", 1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51221,49 +52595,26 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); - } - - - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", table, "')"); - RETURN_MM(); - -} - -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { - - zval *index_param = NULL; - zval *index = NULL; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - - if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } - - if (likely(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(index, index_param); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - ZEPHIR_INIT_VAR(index); - ZVAL_EMPTY_STRING(index); + zephir_get_strval(schema, schema_param); } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", index, "')"); + ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", table, "' ORDER BY t.relname, i.relname;"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL, *sql; + zval *table = NULL, *schema = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51276,23 +52627,36 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } + ZEPHIR_INIT_VAR(sql); + ZVAL_STRING(sql, "SELECT tc.table_name as TABLE_NAME, kcu.column_name as COLUMN_NAME, tc.constraint_name as CONSTRAINT_NAME, tc.table_catalog as REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ", 1); - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", table, "')"); - RETURN_MM(); + if (schema && Z_STRLEN_P(schema)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "tc.table_schema = '", schema, "' AND tc.table_name='", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "tc.table_name='", table, "'"); + zephir_concat_self(&sql, _0 TSRMLS_CC); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { - zval *table_param = NULL, *schema = NULL; - zval *table = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); @@ -51305,8 +52669,11 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { ZEPHIR_INIT_VAR(table); ZVAL_EMPTY_STRING(table); } - if (!schema) { - schema = ZEPHIR_GLOBAL(global_null); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } @@ -51328,1225 +52695,1057 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlVariables"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlBindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_initialTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_finalTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("_escapeChar"), "\"", ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) { - - zval *sqlStatement; - - zephir_fetch_params(0, 1, 0, &sqlStatement); - - - - zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) { - - - RETURN_MEMBER(this_ptr, "_sqlStatement"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) { - - zval *sqlVariables; - - zephir_fetch_params(0, 1, 0, &sqlVariables); - - - - zephir_update_property_this(this_ptr, SL("_sqlVariables"), sqlVariables TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) { - - - RETURN_MEMBER(this_ptr, "_sqlVariables"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) { - - zval *sqlBindTypes; - - zephir_fetch_params(0, 1, 0, &sqlBindTypes); - - +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { - zephir_update_property_this(this_ptr, SL("_sqlBindTypes"), sqlBindTypes TSRMLS_CC); + zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; + HashTable *_4; + HashPosition _3; + int ZEPHIR_LAST_CALL_STATUS; + zval *column, *columnSql, *type = NULL, *typeValues = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL, *value = NULL, *valueSql, **_5, _6 = zval_used_for_init, _8 = zval_used_for_init, *_9, *_10 = NULL; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) { - - - RETURN_MEMBER(this_ptr, "_sqlBindTypes"); - -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) { - - zval *initialTime; - - zephir_fetch_params(0, 1, 0, &initialTime); + ZEPHIR_INIT_VAR(columnSql); + ZVAL_STRING(columnSql, "", 1); + ZEPHIR_CALL_METHOD(&type, column, "gettype", NULL); + zephir_check_call_status(); + if (Z_TYPE_P(type) == IS_STRING) { + zephir_concat_self(&columnSql, type TSRMLS_CC); + ZEPHIR_CALL_METHOD(&type, column, "gettypereference", NULL); + zephir_check_call_status(); + } + do { + if (ZEPHIR_IS_LONG(type, 0)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("INT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 1)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATE") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 2)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("VARCHAR") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 3)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("NUMERIC") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, column, "getscale", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVSVS(_1, "(", _0, ",", _2, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 4)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 5)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHARACTER") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVS(_1, "(", _0, ")"); + zephir_concat_self(&columnSql, _1 TSRMLS_CC); + break; + } + if (ZEPHIR_IS_LONG(type, 6)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("TEXT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_LONG(type, 7)) { + if (ZEPHIR_IS_EMPTY(columnSql)) { + zephir_concat_self_str(&columnSql, SL("FLOAT") TSRMLS_CC); + } + break; + } + if (ZEPHIR_IS_EMPTY(columnSql)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Unrecognized SQLite data type", "phalcon/db/dialect/sqlite.zep", 112); + return; + } + ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(typeValues))) { + if (Z_TYPE_P(typeValues) == IS_ARRAY) { + ZEPHIR_INIT_VAR(valueSql); + ZVAL_STRING(valueSql, "", 1); + zephir_is_iterable(typeValues, &_4, &_3, 0, 0, "phalcon/db/dialect/sqlite.zep", 123); + for ( + ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS + ; zephir_hash_move_forward_ex(_4, &_3) + ) { + ZEPHIR_GET_HVALUE(value, _5); + ZEPHIR_SINIT_NVAR(_6); + ZVAL_STRING(&_6, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_0, "addcslashes", &_7, value, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_SVS(_1, "\"", _0, "\", "); + zephir_concat_self(&valueSql, _1 TSRMLS_CC); + } + ZEPHIR_SINIT_NVAR(_6); + ZVAL_LONG(&_6, 0); + ZEPHIR_SINIT_VAR(_8); + ZVAL_LONG(&_8, -2); + ZEPHIR_INIT_VAR(_9); + zephir_substr(_9, valueSql, 0 , -2 , 0); + ZEPHIR_INIT_VAR(_10); + ZEPHIR_CONCAT_SVS(_10, "(", _9, ")"); + zephir_concat_self(&columnSql, _10 TSRMLS_CC); + } else { + ZEPHIR_SINIT_NVAR(_8); + ZVAL_STRING(&_8, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_2, "addcslashes", &_7, typeValues, &_8); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_10); + ZEPHIR_CONCAT_SVS(_10, "(\"", _2, "\")"); + zephir_concat_self(&columnSql, _10 TSRMLS_CC); + } + } + } while(0); - zephir_update_property_this(this_ptr, SL("_initialTime"), initialTime TSRMLS_CC); + RETURN_CCTOR(columnSql); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) { - - - RETURN_MEMBER(this_ptr, "_initialTime"); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { -} + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, *sql = NULL, *defaultValue = NULL, *_1 = NULL, *_2 = NULL, *_3, _4, *_5 = NULL, *_7; + zval *tableName = NULL, *schemaName = NULL, *_0 = NULL; -static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - zval *finalTime; + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_fetch_params(0, 1, 0, &finalTime); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - zephir_update_property_this(this_ptr, SL("_finalTime"), finalTime TSRMLS_CC); + ZEPHIR_INIT_VAR(sql); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "ALTER TABLE \"", schemaName, "\".\"", tableName, "\" ADD COLUMN "); + ZEPHIR_CPY_WRT(sql, _0); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "ALTER TABLE \"", tableName, "\" ADD COLUMN "); + ZEPHIR_CPY_WRT(sql, _0); + } + ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_3); + ZEPHIR_CONCAT_SVSV(_3, "\"", _1, "\" ", _2); + zephir_concat_self(&sql, _3 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(defaultValue))) { + ZEPHIR_SINIT_VAR(_4); + ZVAL_STRING(&_4, "\"", 0); + ZEPHIR_CALL_FUNCTION(&_5, "addcslashes", &_6, defaultValue, &_4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_7); + ZEPHIR_CONCAT_SVS(_7, " DEFAULT \"", _5, "\""); + zephir_concat_self(&sql, _7 TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_5, column, "isnotnull", NULL); + zephir_check_call_status(); + if (zephir_is_true(_5)) { + zephir_concat_self_str(&sql, SL(" NOT NULL") TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_5, column, "isautoincrement", NULL); + zephir_check_call_status(); + if (zephir_is_true(_5)) { + zephir_concat_self_str(&sql, SL(" PRIMARY KEY AUTOINCREMENT") TSRMLS_CC); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *column; + zval *tableName = NULL, *schemaName = NULL; - RETURN_MEMBER(this_ptr, "_finalTime"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zval *_0, *_1; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_finalTime"), PH_NOISY_CC); - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_initialTime"), PH_NOISY_CC); - sub_function(return_value, _0, _1 TSRMLS_CC); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 169); return; } +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *columnName = NULL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -#include + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(columnName); + ZVAL_EMPTY_STRING(columnName); + } -ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 177); + return; - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_connection"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_result"), ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { - zend_declare_property_long(phalcon_db_result_pdo_ce, SL("_fetchMode"), 4, ZEND_ACC_PROTECTED TSRMLS_CC); + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, *sql, *indexType = NULL, *_0 = NULL, *_1 = NULL, *_2 = NULL; + zval *tableName = NULL, *schemaName = NULL; - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_pdoStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindParams"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("_rowCount"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_db_result_pdo_ce TSRMLS_CC, 1, phalcon_db_resultinterface_ce); - return SUCCESS; + ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(sql); + if (!(ZEPHIR_IS_EMPTY(indexType))) { + ZEPHIR_CONCAT_SVS(sql, "CREATE ", indexType, " INDEX \""); + } else { + ZVAL_STRING(sql, "CREATE INDEX \"", 1); + } + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_CONCAT_VSVSVS(_1, schemaName, "\".\"", _0, "\" ON \"", tableName, "\" ("); + zephir_concat_self(&sql, _1 TSRMLS_CC); + } else { + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_VSVS(_1, _0, "\" ON \"", tableName, "\" ("); + zephir_concat_self(&sql, _1 TSRMLS_CC); + } + ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcolumnlist", &_3, _2); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_1); + ZEPHIR_CONCAT_VS(_1, _0, ")"); + zephir_concat_self(&sql, _1 TSRMLS_CC); + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { - zval *connection, *result, *sqlStatement = NULL, *bindParams = NULL, *bindTypes = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, *sql = NULL; + zval *tableName = NULL, *schemaName = NULL, *indexName = NULL, *_0 = NULL; - zephir_fetch_params(0, 2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); - if (!sqlStatement) { - sqlStatement = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (!bindParams) { - bindParams = ZEPHIR_GLOBAL(global_null); + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (!bindTypes) { - bindTypes = ZEPHIR_GLOBAL(global_null); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - - zephir_update_property_this(this_ptr, SL("_connection"), connection TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_pdoStatement"), result TSRMLS_CC); - if (Z_TYPE_P(sqlStatement) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } - if (Z_TYPE_P(bindParams) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_bindParams"), bindParams TSRMLS_CC); + if (unlikely(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(bindTypes) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_bindTypes"), bindTypes TSRMLS_CC); + + if (likely(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(indexName); + ZVAL_EMPTY_STRING(indexName); + } + + + ZEPHIR_INIT_VAR(sql); + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_SVSVS(_0, "DROP INDEX \"", schemaName, "\".\"", indexName, "\""); + ZEPHIR_CPY_WRT(sql, _0); + } else { + ZEPHIR_INIT_LNVAR(_0); + ZEPHIR_CONCAT_SVS(_0, "DROP INDEX \"", indexName, "\""); + ZEPHIR_CPY_WRT(sql, _0); } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + zval *tableName_param = NULL, *schemaName_param = NULL, *index; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "execute", NULL); - zephir_check_call_status(); - RETURN_MM(); - -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 224); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); - zephir_check_call_status(); - RETURN_MM(); - -} + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_RETURN_CALL_METHOD(_0, "fetchall", NULL); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 232); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { - zend_bool _0; - int ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement, *rowCount = NULL, *connection, *type = NULL, *pdoStatement, *matches, *result = NULL, *row = NULL, *_1, _2, *_3, *_4, *_5, *_6; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - ZEPHIR_OBS_VAR(rowCount); - zephir_read_property_this(&rowCount, this_ptr, SL("_rowCount"), PH_NOISY_CC); - if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { - ZEPHIR_OBS_VAR(connection); - zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&type, connection, "gettype", NULL); - zephir_check_call_status(); - _0 = ZEPHIR_IS_STRING(type, "mysql"); - if (!(_0)) { - _0 = ZEPHIR_IS_STRING(type, "pgsql"); - } - if (_0) { - ZEPHIR_OBS_VAR(pdoStatement); - zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&rowCount, pdoStatement, "rowcount", NULL); - zephir_check_call_status(); - } - if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { - ZEPHIR_OBS_VAR(sqlStatement); - zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); - if (!(zephir_start_with_str(sqlStatement, SL("SELECT COUNT(*) ")))) { - ZEPHIR_INIT_VAR(matches); - ZVAL_NULL(matches); - ZEPHIR_INIT_VAR(_1); - ZEPHIR_SINIT_VAR(_2); - ZVAL_STRING(&_2, "/^SELECT\\s+(.*)/i", 0); - zephir_preg_match(_1, &_2, sqlStatement, matches, 0, 0 , 0 TSRMLS_CC); - if (zephir_is_true(_1)) { - zephir_array_fetch_long(&_3, matches, 1, PH_NOISY | PH_READONLY, "phalcon/db/result/pdo.zep", 202 TSRMLS_CC); - ZEPHIR_INIT_VAR(_4); - ZEPHIR_CONCAT_SVS(_4, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", _3, ")"); - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_bindParams"), PH_NOISY_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&result, connection, "query", NULL, _4, _5, _6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(rowCount); - zephir_array_fetch_string(&rowCount, row, SL("numrows"), PH_NOISY, "phalcon/db/result/pdo.zep", 204 TSRMLS_CC); - } - } else { - ZEPHIR_INIT_NVAR(rowCount); - ZVAL_LONG(rowCount, 1); - } - } - zephir_update_property_this(this_ptr, SL("_rowCount"), rowCount TSRMLS_CC); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - RETURN_CCTOR(rowCount); + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 240); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { - int ZEPHIR_LAST_CALL_STATUS; - zval *number_param = NULL, *connection, *pdo = NULL, *sqlStatement, *bindParams, *statement = NULL, *_0 = NULL, *_1; - long number; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval *tableName = NULL, *schemaName = NULL, *referenceName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &number_param); - - number = zephir_get_intval(number_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - { pdo_stmt_t *stmt; long n; - ZEPHIR_OBS_VAR(connection); - zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&pdo, connection, "getinternalhandler", NULL); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(sqlStatement); - zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(bindParams); - zephir_read_property_this(&bindParams, this_ptr, SL("_bindParams"), PH_NOISY_CC); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); - zephir_check_call_status(); - if (Z_TYPE_P(statement) == IS_OBJECT) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&_0, connection, "executeprepared", NULL, statement, bindParams, _1); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(statement, _0); - } + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - ZEPHIR_CALL_METHOD(&statement, pdo, "query", NULL, sqlStatement); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - zephir_update_property_this(this_ptr, SL("_pdoStatement"), statement TSRMLS_CC); - - - stmt = (pdo_stmt_t*) zend_object_store_get_object(statement TSRMLS_CC); - if (!stmt->dbh) { - ZEPHIR_MM_RESTORE(); - RETURN_FALSE; - } - - n = -1; - number--; - while (n != number) { - if (!stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) { - ZEPHIR_MM_RESTORE(); - RETURN_NULL(); - } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + if (unlikely(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - n++; - } + if (likely(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(referenceName); + ZVAL_EMPTY_STRING(referenceName); + } - } - - ZEPHIR_MM_RESTORE(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/db/dialect/sqlite.zep", 248); + return; } -static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - zval *fetchMode_param = NULL, *pdoStatement, *_0 = NULL, *_1; - int fetchMode, ZEPHIR_LAST_CALL_STATUS; + zval *definition = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &fetchMode_param); - - fetchMode = zephir_get_intval(fetchMode_param); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - ZEPHIR_OBS_VAR(pdoStatement); - zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); - do { - if (fetchMode == 2) { - ZEPHIR_INIT_VAR(_0); - ZVAL_LONG(_0, 4); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 4); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 1) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 2); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 2); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 3) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 3); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 3); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - if (fetchMode == 4) { - ZEPHIR_INIT_NVAR(_0); - ZVAL_LONG(_0, 5); - ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 5); - zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); - break; - } - } while(0); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - ZEPHIR_MM_RESTORE(); + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -} + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + definition = definition_param; -static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) { - RETURN_MEMBER(this_ptr, "_pdoStatement"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Not implemented yet", "phalcon/db/dialect/sqlite.zep", 256); + return; } +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *table = NULL; + zval *tableName = NULL, *schemaName = NULL, *_0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); -#ifdef HAVE_CONFIG_H -#endif - -#include + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -#include -#include -#include + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } + ifExists = Z_BVAL_P(ifExists_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Debug_Dump) { + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", tableName); + ZEPHIR_CPY_WRT(table, _0); + } else { + ZEPHIR_CPY_WRT(table, tableName); + } + ZEPHIR_INIT_VAR(sql); + if (ifExists) { + ZEPHIR_CONCAT_SVS(sql, "DROP TABLE IF EXISTS \"", table, "\""); + } else { + ZEPHIR_CONCAT_SVS(sql, "DROP TABLE \"", table, "\""); + } + RETURN_CCTOR(sql); - ZEPHIR_REGISTER_CLASS(Phalcon\\Debug, Dump, phalcon, debug_dump, phalcon_debug_dump_method_entry, 0); +} - zend_declare_property_bool(phalcon_debug_dump_ce, SL("_detailed"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { - zend_declare_property_null(phalcon_debug_dump_ce, SL("_methods"), ZEND_ACC_PROTECTED TSRMLS_CC); + zval *definition = NULL; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, *view = NULL, *viewSql; + zval *viewName = NULL, *schemaName = NULL, *_0; - zend_declare_property_null(phalcon_debug_dump_ce, SL("_styles"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - return SUCCESS; + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } -} + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + definition = definition_param; -static PHP_METHOD(Phalcon_Debug_Dump, getDetailed) { + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } - RETURN_MEMBER(this_ptr, "_detailed"); + ZEPHIR_OBS_VAR(viewSql); + if (!(zephir_array_isset_string_fetch(&viewSql, definition, SS("sql"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/db/dialect/sqlite.zep", 289); + return; + } + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CPY_WRT(view, _0); + } else { + ZEPHIR_CPY_WRT(view, viewName); + } + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW \"", view, "\" AS ", viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, setDetailed) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { - zval *detailed; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, *sql, *view = NULL; + zval *viewName = NULL, *schemaName = NULL, *_0; - zephir_fetch_params(0, 1, 0, &detailed); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (unlikely(Z_TYPE_P(ifExists_param) != IS_BOOL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be a bool") TSRMLS_CC); + RETURN_MM_NULL(); + } - zephir_update_property_this(this_ptr, SL("_detailed"), detailed TSRMLS_CC); + ifExists = Z_BVAL_P(ifExists_param); + } + + + if (schemaName && Z_STRLEN_P(schemaName)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VSV(_0, schemaName, "\".\"", viewName); + ZEPHIR_CPY_WRT(view, _0); + } else { + ZEPHIR_CPY_WRT(view, viewName); + } + ZEPHIR_INIT_VAR(sql); + if (ifExists) { + ZEPHIR_CONCAT_SVS(sql, "DROP VIEW IF EXISTS \"", view, "\""); + } else { + ZEPHIR_CONCAT_SVS(sql, "DROP VIEW \"", view, "\""); + } + RETURN_CCTOR(sql); } -static PHP_METHOD(Phalcon_Debug_Dump, __construct) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { - int ZEPHIR_LAST_CALL_STATUS; - zend_bool detailed, _0; - zval *styles_param = NULL, *detailed_param = NULL, *_1; - zval *styles = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval *tableName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (!styles_param) { - ZEPHIR_INIT_VAR(styles); - array_init(styles); + if (unlikely(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(tableName, tableName_param); } else { - zephir_get_arrval(styles, styles_param); + ZEPHIR_INIT_VAR(tableName); + ZVAL_EMPTY_STRING(tableName); } - if (!detailed_param) { - detailed = 0; + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - detailed = zephir_get_boolval(detailed_param); + zephir_get_strval(schemaName, schemaName_param); } - _0 = zephir_is_true(styles); - if (_0) { - _0 = 1 != 1; - } - if (_0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 56); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, styles); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - array_init(_1); - zephir_update_property_this(this_ptr, SL("_methods"), _1 TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_detailed"), detailed ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", tableName, "'"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, all) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zval *_1, *_2 = NULL; - zval *_0; - int ZEPHIR_LAST_CALL_STATUS; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval *viewName = NULL, *schemaName = NULL; ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - ZEPHIR_INIT_VAR(_0); - zephir_create_array(_0, 2, 0 TSRMLS_CC); - zephir_array_fast_append(_0, this_ptr); - ZEPHIR_INIT_VAR(_1); - ZVAL_STRING(_1, "vars", 1); - zephir_array_fast_append(_0, _1); - ZEPHIR_CALL_FUNCTION(&_2, "func_get_args", &_3); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, _0, _2); - zephir_check_call_status(); + if (unlikely(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(viewName); + ZVAL_EMPTY_STRING(viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } else { + zephir_get_strval(schemaName, schemaName_param); + } + + + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, getStyle) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { - zval *type_param = NULL, *style, *_0; - zval *type = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); RETURN_MM_NULL(); } - if (likely(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(type, type_param); + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); } else { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - - - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_styles"), PH_NOISY_CC); - if (zephir_array_isset_fetch(&style, _0, type, 1 TSRMLS_CC)) { - RETURN_CTOR(style); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - RETURN_MM_STRING("color:gray", 1); + zephir_get_strval(schema, schema_param); } + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", table, "')"); + RETURN_MM(); + } -static PHP_METHOD(Phalcon_Debug_Dump, setStyles) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { - zval *styles = NULL, *defaultStyles, *_0; + zval *schemaName_param = NULL; + zval *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &styles); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!styles) { - ZEPHIR_CPY_WRT(styles, ZEPHIR_GLOBAL(global_null)); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - ZEPHIR_SEPARATE_PARAM(styles); + zephir_get_strval(schemaName, schemaName_param); } - if (Z_TYPE_P(styles) == IS_NULL) { - ZEPHIR_INIT_NVAR(styles); - array_init(styles); - } - if (Z_TYPE_P(styles) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 100); - return; - } - ZEPHIR_INIT_VAR(defaultStyles); - zephir_create_array(defaultStyles, 11, 0 TSRMLS_CC); - add_assoc_stringl_ex(defaultStyles, SS("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333"), 1); - add_assoc_stringl_ex(defaultStyles, SS("arr"), SL("color:red"), 1); - add_assoc_stringl_ex(defaultStyles, SS("bool"), SL("color:green"), 1); - add_assoc_stringl_ex(defaultStyles, SS("float"), SL("color:fuchsia"), 1); - add_assoc_stringl_ex(defaultStyles, SS("int"), SL("color:blue"), 1); - add_assoc_stringl_ex(defaultStyles, SS("null"), SL("color:black"), 1); - add_assoc_stringl_ex(defaultStyles, SS("num"), SL("color:navy"), 1); - add_assoc_stringl_ex(defaultStyles, SS("obj"), SL("color:purple"), 1); - add_assoc_stringl_ex(defaultStyles, SS("other"), SL("color:maroon"), 1); - add_assoc_stringl_ex(defaultStyles, SS("res"), SL("color:lime"), 1); - add_assoc_stringl_ex(defaultStyles, SS("str"), SL("color:teal"), 1); - ZEPHIR_INIT_VAR(_0); - zephir_fast_array_merge(_0, &(defaultStyles), &(styles) TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_styles"), _0 TSRMLS_CC); - RETURN_MM_MEMBER(this_ptr, "_styles"); + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name", 1); } -static PHP_METHOD(Phalcon_Debug_Dump, one) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { - int ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL; - zval *variable, *name_param = NULL; + zval *schemaName_param = NULL; + zval *schemaName = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); + zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); } else { - zephir_get_strval(name, name_param); + if (unlikely(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(schemaName); + ZVAL_EMPTY_STRING(schemaName); + } + } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "var", NULL, variable, name); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name", 1); } -static PHP_METHOD(Phalcon_Debug_Dump, output) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { - zend_bool _15, _16, _17; - HashTable *_8, *_25, *_37; - HashPosition _7, _24, _36; - zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL, *_19 = NULL, *_21 = NULL, *_23 = NULL, *_29 = NULL, *_30 = NULL, *_31 = NULL, *_33 = NULL, *_34 = NULL, *_42 = NULL, *_44 = NULL, *_45 = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zval *_1 = NULL, *_12 = NULL, *_40 = NULL; - int tab, ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL, *_0; - zval *variable, *name_param = NULL, *tab_param = NULL, *key = NULL, *value = NULL, *output = NULL, *space, *type = NULL, *attr = NULL, *_2 = NULL, *_3 = NULL, _5 = zval_used_for_init, **_9, *_10 = NULL, *_13 = NULL, *_14 = NULL, *_18 = NULL, *_20 = NULL, *_22, **_26, *_27 = NULL, *_28 = NULL, *_32, *_35, **_38, *_39 = NULL, *_41 = NULL, _43; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); } else { - zephir_get_strval(name, name_param); + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - if (!tab_param) { - tab = 1; + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); } else { - tab = zephir_get_intval(tab_param); + zephir_get_strval(schema, schema_param); } - ZEPHIR_INIT_VAR(space); - ZVAL_STRING(space, " ", 1); - ZEPHIR_INIT_VAR(output); - ZVAL_STRING(output, "", 1); - if (name && Z_STRLEN_P(name)) { - ZEPHIR_INIT_VAR(_0); - ZEPHIR_CONCAT_VS(_0, name, " "); - ZEPHIR_CPY_WRT(output, _0); + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", table, "')"); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { + + zval *index_param = NULL; + zval *index = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &index_param); + + if (unlikely(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_ARRAY) { - ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_3); - ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":count"), zephir_fast_count_int(variable TSRMLS_CC)); - ZEPHIR_SINIT_VAR(_5); - ZVAL_STRING(&_5, "Array (:count) (\n", 0); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); - zephir_check_call_status(); - zephir_concat_self(&output, _2 TSRMLS_CC); - zephir_is_iterable(variable, &_8, &_7, 0, 0, "phalcon/debug/dump.zep", 154); - for ( - ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS - ; zephir_hash_move_forward_ex(_8, &_7) - ) { - ZEPHIR_GET_HMKEY(key, _8, _7); - ZEPHIR_GET_HVALUE(value, _9); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "[:key] => ", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - _15 = tab == 1; - if (_15) { - _15 = !ZEPHIR_IS_STRING(name, ""); - } - _16 = _15; - if (_16) { - _16 = !(Z_TYPE_P(key) == IS_LONG); - } - _17 = _16; - if (_17) { - _17 = ZEPHIR_IS_EQUAL(name, key); - } - if (_17) { - continue; - } else { - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); - RETURN_MM(); + + if (likely(Z_TYPE_P(index_param) == IS_STRING)) { + zephir_get_strval(index, index_param); + } else { + ZEPHIR_INIT_VAR(index); + ZVAL_EMPTY_STRING(index); } - if (Z_TYPE_P(variable) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - zephir_array_update_string(&_1, SL(":class"), &_3, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Object :class", 0); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); - zephir_check_call_status(); - zephir_concat_self(&output, _2 TSRMLS_CC); - ZEPHIR_CALL_FUNCTION(&_13, "get_parent_class", &_21, variable); - zephir_check_call_status(); - if (zephir_is_true(_13)) { - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_18, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_18, "get_parent_class", &_21, variable); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":parent"), &_18, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, " extends :parent", 0); - ZEPHIR_CALL_FUNCTION(&_18, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - zephir_concat_self(&output, _18 TSRMLS_CC); - } - zephir_concat_self_str(&output, SL(" (\n") TSRMLS_CC); - _22 = zephir_fetch_nproperty_this(this_ptr, SL("_detailed"), PH_NOISY_CC); - if (!(zephir_is_true(_22))) { - ZEPHIR_CALL_FUNCTION(&_10, "get_object_vars", &_23, variable); - zephir_check_call_status(); - zephir_is_iterable(_10, &_25, &_24, 0, 0, "phalcon/debug/dump.zep", 171); - for ( - ; zephir_hash_get_current_data_ex(_25, (void**) &_26, &_24) == SUCCESS - ; zephir_hash_move_forward_ex(_25, &_24) - ) { - ZEPHIR_GET_HMKEY(key, _25, _24); - ZEPHIR_GET_HVALUE(value, _26); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_13, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(_12, SS(":type"), SL("public"), 1); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:key (:type) = ", 0); - ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _13, _27); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _28, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - } else { - do { - Z_SET_ISREF_P(variable); - ZEPHIR_CALL_FUNCTION(&attr, "each", &_29, variable); - Z_UNSET_ISREF_P(variable); - zephir_check_call_status(); - if (!(zephir_is_true(attr))) { - continue; - } - ZEPHIR_OBS_NVAR(key); - zephir_array_fetch_string(&key, attr, SL("key"), PH_NOISY, "phalcon/debug/dump.zep", 178 TSRMLS_CC); - ZEPHIR_OBS_NVAR(value); - zephir_array_fetch_string(&value, attr, SL("value"), PH_NOISY, "phalcon/debug/dump.zep", 179 TSRMLS_CC); - if (!(zephir_is_true(key))) { - continue; - } - ZEPHIR_INIT_NVAR(_3); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "\\x00", 0); - ZEPHIR_CALL_FUNCTION(&_10, "ord", &_30, &_5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13, "chr", &_31, _10); - zephir_check_call_status(); - zephir_fast_explode(_3, _13, key, LONG_MAX TSRMLS_CC); - ZEPHIR_CPY_WRT(key, _3); - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "public", 1); - if (zephir_array_isset_long(key, 1)) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "private", 1); - zephir_array_fetch_long(&_32, key, 1, PH_NOISY | PH_READONLY, "phalcon/debug/dump.zep", 190 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_32, "*")) { - ZEPHIR_INIT_NVAR(type); - ZVAL_STRING(type, "protected", 1); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); - Z_SET_ISREF_P(key); - ZEPHIR_CALL_FUNCTION(&_27, "end", &_33, key); - Z_UNSET_ISREF_P(key); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":key"), &_27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":type"), &type, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:key (:type) = ", 0); - ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _18, _27); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _28, "\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } while (zephir_is_true(attr)); - } - ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", &_34, variable); - zephir_check_call_status(); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - zephir_array_update_string(&_12, SL(":class"), &_3, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_12, SS(":count"), zephir_fast_count_int(attr TSRMLS_CC)); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, ":class methods: (:count) (\n", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - zephir_get_class(_3, variable, 0 TSRMLS_CC); - _35 = zephir_fetch_nproperty_this(this_ptr, SL("_methods"), PH_NOISY_CC); - if (zephir_fast_in_array(_3, _35 TSRMLS_CC)) { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, "[already listed]\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } else { - zephir_is_iterable(attr, &_37, &_36, 0, 0, "phalcon/debug/dump.zep", 214); - for ( - ; zephir_hash_get_current_data_ex(_37, (void**) &_38, &_36) == SUCCESS - ; zephir_hash_move_forward_ex(_37, &_36) - ) { - ZEPHIR_GET_HVALUE(value, _38); - ZEPHIR_INIT_NVAR(_39); - zephir_get_class(_39, variable, 0 TSRMLS_CC); - zephir_update_property_array_append(this_ptr, SL("_methods"), _39 TSRMLS_CC); - if (ZEPHIR_IS_STRING(value, "__construct")) { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_12); - zephir_create_array(_12, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_39); - ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _39); - zephir_check_temp_parameter(_39); - zephir_check_call_status(); - zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:method(); [constructor]\n", 0); - ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_14); - ZEPHIR_CONCAT_VV(_14, _10, _13); - zephir_concat_self(&output, _14 TSRMLS_CC); - } else { - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_27, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_40); - zephir_create_array(_40, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_39); - ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_28, this_ptr, "getstyle", &_4, _39); - zephir_check_temp_parameter(_39); - zephir_check_call_status(); - zephir_array_update_string(&_40, SL(":style"), &_28, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_40, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "->:method();\n", 0); - ZEPHIR_CALL_FUNCTION(&_28, "strtr", &_6, &_5, _40); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_41); - ZEPHIR_CONCAT_VV(_41, _27, _28); - zephir_concat_self(&output, _41 TSRMLS_CC); - } - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, tab); - ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_LNVAR(_20); - ZEPHIR_CONCAT_VS(_20, _18, ")\n"); - zephir_concat_self(&output, _20 TSRMLS_CC); - } - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); - RETURN_MM(); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", index, "')"); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) { + + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_LONG) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "int", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Integer (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); + + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); } - ZEPHIR_CALL_FUNCTION(&_2, "is_float", &_42, variable); - zephir_check_call_status(); - if (zephir_is_true(_2)) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "float", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Float (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); } - if (zephir_is_numeric(variable)) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "num", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Numeric string (:length) \":var\"", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_STRING) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 3, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "str", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_LONG(&_5, 4); - ZEPHIR_SINIT_VAR(_43); - ZVAL_STRING(&_43, "utf-8", 0); - ZEPHIR_CALL_FUNCTION(&_2, "htmlentities", &_44, variable, &_5, &_43); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13, "nl2br", &_45, _2); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":var"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "String (:length) \":var\"", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_BOOL) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "bool", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_LNVAR(_14); - if (zephir_is_true(variable)) { - ZEPHIR_INIT_NVAR(_14); - ZVAL_STRING(_14, "TRUE", 1); - } else { - ZEPHIR_INIT_NVAR(_14); - ZVAL_STRING(_14, "FALSE", 1); - } - zephir_array_update_string(&_1, SL(":var"), &_14, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "Boolean (:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_NULL) { - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 1, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "null", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "NULL", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_1); - zephir_create_array(_1, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "other", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); - zephir_check_temp_parameter(_3); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_STRING(&_5, "(:var)", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); - zephir_check_call_status(); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", table, "')"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Debug_Dump, var) { +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *_0; - zval *name = NULL; - zval *variable, *name_param = NULL, *_1 = NULL, *_2, _3; + zval *table_param = NULL, *schema_param = NULL; + zval *table = NULL, *schema = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (!name_param) { - ZEPHIR_INIT_VAR(name); - ZVAL_EMPTY_STRING(name); - } else { - zephir_get_strval(name, name_param); + if (unlikely(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } + if (likely(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(table, table_param); + } else { + ZEPHIR_INIT_VAR(table); + ZVAL_EMPTY_STRING(table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(schema); + ZVAL_EMPTY_STRING(schema); + } else { + zephir_get_strval(schema, schema_param); + } - ZEPHIR_INIT_VAR(_0); - zephir_create_array(_0, 2, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "pre", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, variable, name); - zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_SINIT_VAR(_3); - ZVAL_STRING(&_3, "
:output
", 0); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_4, &_3, _0); - zephir_check_call_status(); - RETURN_MM(); - -} - -static PHP_METHOD(Phalcon_Debug_Dump, vars) { - - zephir_fcall_cache_entry *_7 = NULL; - HashTable *_3; - HashPosition _2; - int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; - zval *key = NULL, *value = NULL, *output, *_0 = NULL, **_4, *_5 = NULL, *_6 = NULL; - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(output); - ZVAL_STRING(output, "", 1); - ZEPHIR_CALL_FUNCTION(&_0, "func_get_args", &_1); - zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/debug/dump.zep", 283); - for ( - ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS - ; zephir_hash_move_forward_ex(_3, &_2) - ) { - ZEPHIR_GET_HMKEY(key, _3, _2); - ZEPHIR_GET_HVALUE(value, _4); - ZEPHIR_INIT_LNVAR(_6); - ZEPHIR_CONCAT_SV(_6, "var ", key); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "one", &_7, value, _6); - zephir_check_call_status(); - zephir_concat_self(&output, _5 TSRMLS_CC); - } - RETURN_CCTOR(output); + RETURN_MM_STRING("", 1); } @@ -52564,33 +53763,128 @@ static PHP_METHOD(Phalcon_Debug_Dump, vars) { -ZEPHIR_INIT_CLASS(Phalcon_Debug_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Debug, Exception, phalcon, debug_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlVariables"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_sqlBindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_initialTime"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("_finalTime"), ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; } +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) { + zval *sqlStatement; + zephir_fetch_params(0, 1, 0, &sqlStatement); -#ifdef HAVE_CONFIG_H -#endif -#include -#include -#include -#include + zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); +} +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) { -ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + RETURN_MEMBER(this_ptr, "_sqlStatement"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) { + + zval *sqlVariables; + + zephir_fetch_params(0, 1, 0, &sqlVariables); + + + + zephir_update_property_this(this_ptr, SL("_sqlVariables"), sqlVariables TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) { + + + RETURN_MEMBER(this_ptr, "_sqlVariables"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) { + + zval *sqlBindTypes; + + zephir_fetch_params(0, 1, 0, &sqlBindTypes); + + + + zephir_update_property_this(this_ptr, SL("_sqlBindTypes"), sqlBindTypes TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) { + + + RETURN_MEMBER(this_ptr, "_sqlBindTypes"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) { + + zval *initialTime; + + zephir_fetch_params(0, 1, 0, &initialTime); + + + + zephir_update_property_this(this_ptr, SL("_initialTime"), initialTime TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) { + + + RETURN_MEMBER(this_ptr, "_initialTime"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) { + + zval *finalTime; + + zephir_fetch_params(0, 1, 0, &finalTime); - return SUCCESS; + + + zephir_update_property_this(this_ptr, SL("_finalTime"), finalTime TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) { + + + RETURN_MEMBER(this_ptr, "_finalTime"); + +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) { + + zval *_0, *_1; + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_finalTime"), PH_NOISY_CC); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_initialTime"), PH_NOISY_CC); + sub_function(return_value, _0, _1 TSRMLS_CC); + return; } @@ -52607,829 +53901,1087 @@ ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { #include +#include -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); +ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_connection"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_result"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_long(phalcon_db_result_pdo_ce, SL("_fetchMode"), 4, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_pdoStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_sqlStatement"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindParams"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("_bindTypes"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("_rowCount"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_db_result_pdo_ce TSRMLS_CC, 1, phalcon_db_resultinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { +static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) { + + zval *connection, *result, *sqlStatement = NULL, *bindParams = NULL, *bindTypes = NULL; + + zephir_fetch_params(0, 2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + + if (!sqlStatement) { + sqlStatement = ZEPHIR_GLOBAL(global_null); + } + if (!bindParams) { + bindParams = ZEPHIR_GLOBAL(global_null); + } + if (!bindTypes) { + bindTypes = ZEPHIR_GLOBAL(global_null); + } + + + zephir_update_property_this(this_ptr, SL("_connection"), connection TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_pdoStatement"), result TSRMLS_CC); + if (Z_TYPE_P(sqlStatement) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_sqlStatement"), sqlStatement TSRMLS_CC); + } + if (Z_TYPE_P(bindParams) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_bindParams"), bindParams TSRMLS_CC); + } + if (Z_TYPE_P(bindTypes) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_bindTypes"), bindTypes TSRMLS_CC); + } + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { - zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; - zval *_1; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_6 = NULL; + zval *_0; ZEPHIR_MM_GROW(); - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, this_ptr, "__construct", &_0); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "execute", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 21, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_VAR(_3); - ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_VAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Router", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_VAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetch", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "url", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Url", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_RETURN_CALL_METHOD(_0, "fetchall", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { + + zend_bool _0; + int ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement, *rowCount = NULL, *connection, *type = NULL, *pdoStatement, *matches, *result = NULL, *row = NULL, *_1, _2, *_3, *_4, *_5, *_6; + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(rowCount); + zephir_read_property_this(&rowCount, this_ptr, SL("_rowCount"), PH_NOISY_CC); + if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { + ZEPHIR_OBS_VAR(connection); + zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&type, connection, "gettype", NULL); + zephir_check_call_status(); + _0 = ZEPHIR_IS_STRING(type, "mysql"); + if (!(_0)) { + _0 = ZEPHIR_IS_STRING(type, "pgsql"); + } + if (_0) { + ZEPHIR_OBS_VAR(pdoStatement); + zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&rowCount, pdoStatement, "rowcount", NULL); + zephir_check_call_status(); + } + if (ZEPHIR_IS_FALSE_IDENTICAL(rowCount)) { + ZEPHIR_OBS_VAR(sqlStatement); + zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); + if (!(zephir_start_with_str(sqlStatement, SL("SELECT COUNT(*) ")))) { + ZEPHIR_INIT_VAR(matches); + ZVAL_NULL(matches); + ZEPHIR_INIT_VAR(_1); + ZEPHIR_SINIT_VAR(_2); + ZVAL_STRING(&_2, "/^SELECT\\s+(.*)/i", 0); + zephir_preg_match(_1, &_2, sqlStatement, matches, 0, 0 , 0 TSRMLS_CC); + if (zephir_is_true(_1)) { + zephir_array_fetch_long(&_3, matches, 1, PH_NOISY | PH_READONLY, "phalcon/db/result/pdo.zep", 202 TSRMLS_CC); + ZEPHIR_INIT_VAR(_4); + ZEPHIR_CONCAT_SVS(_4, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", _3, ")"); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_bindParams"), PH_NOISY_CC); + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&result, connection, "query", NULL, _4, _5, _6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(rowCount); + zephir_array_fetch_string(&rowCount, row, SL("numrows"), PH_NOISY, "phalcon/db/result/pdo.zep", 204 TSRMLS_CC); + } + } else { + ZEPHIR_INIT_NVAR(rowCount); + ZVAL_LONG(rowCount, 1); + } + } + zephir_update_property_this(this_ptr, SL("_rowCount"), rowCount TSRMLS_CC); + } + RETURN_CCTOR(rowCount); + +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *number_param = NULL, *connection, *pdo = NULL, *sqlStatement, *bindParams, *statement = NULL, *_0 = NULL, *_1; + long number; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &number_param); + + number = zephir_get_intval(number_param); + + + { pdo_stmt_t *stmt; long n; + ZEPHIR_OBS_VAR(connection); + zephir_read_property_this(&connection, this_ptr, SL("_connection"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&pdo, connection, "getinternalhandler", NULL); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "modelsMetadata", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\MetaData\\Memory", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "response", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Response", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "cookies", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Response\\Cookies", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "request", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Http\\Request", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "escaper", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Escaper", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "crypt", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Crypt", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "flash", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Flash\\Direct", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "flashSession", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Flash\\Session", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "tag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Tag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "session", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Session\\Adapter\\Files", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("session"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Session\\Bag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("sessionBag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "transactions", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(_2); - object_init_ex(_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "assets", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Assets\\Manager", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_SINIT_NVAR(_5); - ZVAL_BOOL(&_5, 1); - ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); - zephir_check_temp_parameter(_3); - zephir_check_temp_parameter(_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_OBS_VAR(sqlStatement); + zephir_read_property_this(&sqlStatement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(bindParams); + zephir_read_property_this(&bindParams, this_ptr, SL("_bindParams"), PH_NOISY_CC); + if (Z_TYPE_P(bindParams) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&statement, pdo, "prepare", NULL, sqlStatement); + zephir_check_call_status(); + if (Z_TYPE_P(statement) == IS_OBJECT) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_bindTypes"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_0, connection, "executeprepared", NULL, statement, bindParams, _1); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(statement, _0); + } + } else { + ZEPHIR_CALL_METHOD(&statement, pdo, "query", NULL, sqlStatement); + zephir_check_call_status(); + } + zephir_update_property_this(this_ptr, SL("_pdoStatement"), statement TSRMLS_CC); + + + stmt = (pdo_stmt_t*) zend_object_store_get_object(statement TSRMLS_CC); + if (!stmt->dbh) { + ZEPHIR_MM_RESTORE(); + RETURN_FALSE; + } + + n = -1; + number--; + while (n != number) { + + if (!stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) { + ZEPHIR_MM_RESTORE(); + RETURN_NULL(); + } + + n++; + } + + } + + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) { + zval *fetchMode_param = NULL, *pdoStatement, *_0 = NULL, *_1; + int fetchMode, ZEPHIR_LAST_CALL_STATUS; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &fetchMode_param); -#ifdef HAVE_CONFIG_H -#endif + fetchMode = zephir_get_intval(fetchMode_param); -#include -#include -#include -#include + ZEPHIR_OBS_VAR(pdoStatement); + zephir_read_property_this(&pdoStatement, this_ptr, SL("_pdoStatement"), PH_NOISY_CC); + do { + if (fetchMode == 2) { + ZEPHIR_INIT_VAR(_0); + ZVAL_LONG(_0, 4); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 4); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 1) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 2); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 2); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 3) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 3); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 3); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + if (fetchMode == 4) { + ZEPHIR_INIT_NVAR(_0); + ZVAL_LONG(_0, 5); + ZEPHIR_CALL_METHOD(NULL, pdoStatement, "setfetchmode", NULL, _0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(_1, 5); + zephir_update_property_this(this_ptr, SL("_fetchMode"), _1 TSRMLS_CC); + break; + } + } while(0); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) { +static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_di_injectable_ce, SL("_dependencyInjector"), ZEND_ACC_PROTECTED TSRMLS_CC); + RETURN_MEMBER(this_ptr, "_pdoStatement"); - zend_declare_property_null(phalcon_di_injectable_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC); +} - zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_di_injectionawareinterface_ce); - zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; -} -static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zval *dependencyInjector; +#ifdef HAVE_CONFIG_H +#endif - zephir_fetch_params(0, 1, 0, &dependencyInjector); +#include +#include +#include +#include - zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); -} +ZEPHIR_INIT_CLASS(Phalcon_Debug_Dump) { -static PHP_METHOD(Phalcon_Di_Injectable, getDI) { + ZEPHIR_REGISTER_CLASS(Phalcon\\Debug, Dump, phalcon, debug_dump, phalcon_debug_dump_method_entry, 0); - int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; - zval *dependencyInjector = NULL; + zend_declare_property_bool(phalcon_debug_dump_ce, SL("_detailed"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - ZEPHIR_MM_GROW(); + zend_declare_property_null(phalcon_debug_dump_ce, SL("_methods"), ZEND_ACC_PROTECTED TSRMLS_CC); - ZEPHIR_OBS_VAR(dependencyInjector); - zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_0); - zephir_check_call_status(); - } - RETURN_CCTOR(dependencyInjector); + zend_declare_property_null(phalcon_debug_dump_ce, SL("_styles"), ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Di_Injectable, setEventsManager) { +static PHP_METHOD(Phalcon_Debug_Dump, getDetailed) { - zval *eventsManager; - zephir_fetch_params(0, 1, 0, &eventsManager); + RETURN_MEMBER(this_ptr, "_detailed"); +} +static PHP_METHOD(Phalcon_Debug_Dump, setDetailed) { - zephir_update_property_this(this_ptr, SL("_eventsManager"), eventsManager TSRMLS_CC); + zval *detailed; -} + zephir_fetch_params(0, 1, 0, &detailed); -static PHP_METHOD(Phalcon_Di_Injectable, getEventsManager) { - RETURN_MEMBER(this_ptr, "_eventsManager"); + zephir_update_property_this(this_ptr, SL("_detailed"), detailed TSRMLS_CC); } -static PHP_METHOD(Phalcon_Di_Injectable, __get) { +static PHP_METHOD(Phalcon_Debug_Dump, __construct) { - zval *_4; int ZEPHIR_LAST_CALL_STATUS; - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_7 = NULL; - zval *propertyName_param = NULL, *dependencyInjector = NULL, *service = NULL, *persistent = NULL, *_0, *_2 = NULL, *_3 = NULL, *_5 = NULL; - zval *propertyName = NULL, *_6; + zend_bool detailed, _0; + zval *styles_param = NULL, *detailed_param = NULL, *_1; + zval *styles = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &propertyName_param); + zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); - if (unlikely(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + if (!styles_param) { + ZEPHIR_INIT_VAR(styles); + array_init(styles); + } else { + zephir_get_arrval(styles, styles_param); } - - if (likely(Z_TYPE_P(propertyName_param) == IS_STRING)) { - zephir_get_strval(propertyName, propertyName_param); + if (!detailed_param) { + detailed = 0; } else { - ZEPHIR_INIT_VAR(propertyName); - ZVAL_EMPTY_STRING(propertyName); + detailed = zephir_get_boolval(detailed_param); } - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); - zephir_check_call_status(); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services", "phalcon/di/injectable.zep", 127); - return; - } - } - ZEPHIR_CALL_METHOD(&_2, dependencyInjector, "has", NULL, propertyName); - zephir_check_call_status(); - if (zephir_is_true(_2)) { - ZEPHIR_CALL_METHOD(&service, dependencyInjector, "getshared", NULL, propertyName); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, propertyName, service TSRMLS_CC); - RETURN_CCTOR(service); - } - if (ZEPHIR_IS_STRING(propertyName, "di")) { - zephir_update_property_zval(this_ptr, SL("di"), dependencyInjector TSRMLS_CC); - RETURN_CCTOR(dependencyInjector); + _0 = zephir_is_true(styles); + if (_0) { + _0 = 1 != 1; } - if (ZEPHIR_IS_STRING(propertyName, "persistent")) { - ZEPHIR_INIT_VAR(_4); - zephir_create_array(_4, 1, 0 TSRMLS_CC); - ZEPHIR_INIT_VAR(_5); - zephir_get_class(_5, this_ptr, 0 TSRMLS_CC); - zephir_array_fast_append(_4, _5); - ZEPHIR_INIT_NVAR(_5); - ZVAL_STRING(_5, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_3, dependencyInjector, "get", NULL, _5, _4); - zephir_check_temp_parameter(_5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(persistent, _3); - zephir_update_property_zval(this_ptr, SL("persistent"), persistent TSRMLS_CC); - RETURN_CCTOR(persistent); + if (_0) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 56); + return; } - ZEPHIR_INIT_VAR(_6); - ZEPHIR_CONCAT_SV(_6, "Access to undefined property ", propertyName); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", &_7, _6); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, styles); zephir_check_call_status(); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(_1); + array_init(_1); + zephir_update_property_this(this_ptr, SL("_methods"), _1 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_detailed"), detailed ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Debug_Dump, all) { + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zval *_1, *_2 = NULL; + zval *_0; + int ZEPHIR_LAST_CALL_STATUS; + ZEPHIR_MM_GROW(); -#ifdef HAVE_CONFIG_H -#endif - -#include + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 2, 0 TSRMLS_CC); + zephir_array_fast_append(_0, this_ptr); + ZEPHIR_INIT_VAR(_1); + ZVAL_STRING(_1, "variables", 1); + zephir_array_fast_append(_0, _1); + ZEPHIR_CALL_FUNCTION(&_2, "func_get_args", &_3); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, _0, _2); + zephir_check_call_status(); + RETURN_MM(); -#include +} +static PHP_METHOD(Phalcon_Debug_Dump, getStyle) { + zval *type_param = NULL, *style, *_0; + zval *type = NULL; -ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); + if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } - return SUCCESS; + if (likely(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(type, type_param); + } else { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } -} -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_styles"), PH_NOISY_CC); + if (zephir_array_isset_fetch(&style, _0, type, 1 TSRMLS_CC)) { + RETURN_CTOR(style); + } else { + RETURN_MM_STRING("color:gray", 1); + } -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); +} +static PHP_METHOD(Phalcon_Debug_Dump, setStyles) { + zval *styles = NULL, *defaultStyles, *_0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &styles); -#ifdef HAVE_CONFIG_H -#endif + if (!styles) { + ZEPHIR_CPY_WRT(styles, ZEPHIR_GLOBAL(global_null)); + } else { + ZEPHIR_SEPARATE_PARAM(styles); + } -#include -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); - - zend_declare_property_null(phalcon_di_service_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_di_service_ce, SL("_definition"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_di_service_ce, SL("_shared"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_di_service_ce, SL("_resolved"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_null(phalcon_di_service_ce, SL("_sharedInstance"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_class_implements(phalcon_di_service_ce TSRMLS_CC, 1, phalcon_di_serviceinterface_ce); - return SUCCESS; + if (Z_TYPE_P(styles) == IS_NULL) { + ZEPHIR_INIT_NVAR(styles); + array_init(styles); + } + if (Z_TYPE_P(styles) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_debug_exception_ce, "The styles must be an array", "phalcon/debug/dump.zep", 100); + return; + } + ZEPHIR_INIT_VAR(defaultStyles); + zephir_create_array(defaultStyles, 11, 0 TSRMLS_CC); + add_assoc_stringl_ex(defaultStyles, SS("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333"), 1); + add_assoc_stringl_ex(defaultStyles, SS("arr"), SL("color:red"), 1); + add_assoc_stringl_ex(defaultStyles, SS("bool"), SL("color:green"), 1); + add_assoc_stringl_ex(defaultStyles, SS("float"), SL("color:fuchsia"), 1); + add_assoc_stringl_ex(defaultStyles, SS("int"), SL("color:blue"), 1); + add_assoc_stringl_ex(defaultStyles, SS("null"), SL("color:black"), 1); + add_assoc_stringl_ex(defaultStyles, SS("num"), SL("color:navy"), 1); + add_assoc_stringl_ex(defaultStyles, SS("obj"), SL("color:purple"), 1); + add_assoc_stringl_ex(defaultStyles, SS("other"), SL("color:maroon"), 1); + add_assoc_stringl_ex(defaultStyles, SS("res"), SL("color:lime"), 1); + add_assoc_stringl_ex(defaultStyles, SS("str"), SL("color:teal"), 1); + ZEPHIR_INIT_VAR(_0); + zephir_fast_array_merge(_0, &(defaultStyles), &(styles) TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_styles"), _0 TSRMLS_CC); + RETURN_MM_MEMBER(this_ptr, "_styles"); } -static PHP_METHOD(Phalcon_Di_Service, __construct) { +static PHP_METHOD(Phalcon_Debug_Dump, one) { - zend_bool shared; - zval *name_param = NULL, *definition, *shared_param = NULL; + int ZEPHIR_LAST_CALL_STATUS; zval *name = NULL; + zval *variable, *name_param = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param); - - if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 1, 1, &variable, &name_param); - if (likely(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(name, name_param); - } else { + if (!name_param) { ZEPHIR_INIT_VAR(name); ZVAL_EMPTY_STRING(name); - } - if (!shared_param) { - shared = 0; } else { - shared = zephir_get_boolval(shared_param); + zephir_get_strval(name, name_param); } - zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - -} - -static PHP_METHOD(Phalcon_Di_Service, getName) { - - - RETURN_MEMBER(this_ptr, "_name"); - -} - -static PHP_METHOD(Phalcon_Di_Service, setShared) { - - zval *shared_param = NULL; - zend_bool shared; - - zephir_fetch_params(0, 1, 0, &shared_param); - - shared = zephir_get_boolval(shared_param); - - - zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, isShared) { - - - RETURN_MEMBER(this_ptr, "_shared"); - -} - -static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { - - zval *sharedInstance; - - zephir_fetch_params(0, 1, 0, &sharedInstance); - - - - zephir_update_property_this(this_ptr, SL("_sharedInstance"), sharedInstance TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, setDefinition) { - - zval *definition; - - zephir_fetch_params(0, 1, 0, &definition); - - - - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - - - RETURN_MEMBER(this_ptr, "_definition"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "variable", NULL, variable, name); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, resolve) { +static PHP_METHOD(Phalcon_Debug_Dump, output) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_7 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zend_bool found; - zval *parameters = NULL, *dependencyInjector = NULL, *shared, *definition, *sharedInstance, *instance = NULL, *builder, *reflection = NULL, *_4, *_5, *_6; + zend_bool _15, _16, _17; + HashTable *_8, *_25, *_37; + HashPosition _7, _24, _36; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL, *_19 = NULL, *_21 = NULL, *_23 = NULL, *_29 = NULL, *_30 = NULL, *_31 = NULL, *_33 = NULL, *_34 = NULL, *_42 = NULL, *_44 = NULL, *_45 = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zval *_1 = NULL, *_12 = NULL, *_40 = NULL; + int tab, ZEPHIR_LAST_CALL_STATUS; + zval *name = NULL, *_0; + zval *variable, *name_param = NULL, *tab_param = NULL, *key = NULL, *value = NULL, *output = NULL, *space, *type = NULL, *attr = NULL, *_2 = NULL, *_3 = NULL, _5 = zval_used_for_init, **_9, *_10 = NULL, *_13 = NULL, *_14 = NULL, *_18 = NULL, *_20 = NULL, *_22, **_26, *_27 = NULL, *_28 = NULL, *_32, *_35, **_38, *_39 = NULL, *_41 = NULL, _43; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, ¶meters, &dependencyInjector); + zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + zephir_get_strval(name, name_param); } - if (!dependencyInjector) { - dependencyInjector = ZEPHIR_GLOBAL(global_null); + if (!tab_param) { + tab = 1; + } else { + tab = zephir_get_intval(tab_param); } - ZEPHIR_OBS_VAR(shared); - zephir_read_property_this(&shared, this_ptr, SL("_shared"), PH_NOISY_CC); - if (zephir_is_true(shared)) { - ZEPHIR_OBS_VAR(sharedInstance); - zephir_read_property_this(&sharedInstance, this_ptr, SL("_sharedInstance"), PH_NOISY_CC); - if (Z_TYPE_P(sharedInstance) != IS_NULL) { - RETURN_CCTOR(sharedInstance); - } + ZEPHIR_INIT_VAR(space); + ZVAL_STRING(space, " ", 1); + ZEPHIR_INIT_VAR(output); + ZVAL_STRING(output, "", 1); + if (name && Z_STRLEN_P(name)) { + ZEPHIR_INIT_VAR(_0); + ZEPHIR_CONCAT_VS(_0, name, " "); + ZEPHIR_CPY_WRT(output, _0); } - found = 1; - ZEPHIR_INIT_VAR(instance); - ZVAL_NULL(instance); - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) == IS_STRING) { - if (zephir_class_exists(definition, 1 TSRMLS_CC)) { - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters TSRMLS_CC)) { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_VAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, definition, parameters TSRMLS_CC); - zephir_check_call_status(); - } - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); - zephir_check_call_status(); - } - } + if (Z_TYPE_P(variable) == IS_ARRAY) { + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_3); + ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":count"), zephir_fast_count_int(variable TSRMLS_CC)); + ZEPHIR_SINIT_VAR(_5); + ZVAL_STRING(&_5, "Array (:count) (\n", 0); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); + zephir_check_call_status(); + zephir_concat_self(&output, _2 TSRMLS_CC); + zephir_is_iterable(variable, &_8, &_7, 0, 0, "phalcon/debug/dump.zep", 154); + for ( + ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS + ; zephir_hash_move_forward_ex(_8, &_7) + ) { + ZEPHIR_GET_HMKEY(key, _8, _7); + ZEPHIR_GET_HVALUE(value, _9); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "arr", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "[:key] => ", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + _15 = tab == 1; + if (_15) { + _15 = !ZEPHIR_IS_STRING(name, ""); + } + _16 = _15; + if (_16) { + _16 = !(Z_TYPE_P(key) == IS_LONG); + } + _17 = _16; + if (_17) { + _17 = ZEPHIR_IS_EQUAL(name, key); + } + if (_17) { + continue; } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); - zephir_check_call_status(); - } + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); } - } else { - found = 0; } - } else { - if (Z_TYPE_P(definition) == IS_OBJECT) { - if (zephir_instance_of_ev(definition, zend_ce_closure TSRMLS_CC)) { - if (Z_TYPE_P(parameters) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_USER_FUNC_ARRAY(instance, definition, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_USER_FUNC(instance, definition); - zephir_check_call_status(); - } - } else { - ZEPHIR_CPY_WRT(instance, definition); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + zephir_array_update_string(&_1, SL(":class"), &_3, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Object :class", 0); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", &_6, &_5, _1); + zephir_check_call_status(); + zephir_concat_self(&output, _2 TSRMLS_CC); + ZEPHIR_CALL_FUNCTION(&_13, "get_parent_class", &_21, variable); + zephir_check_call_status(); + if (zephir_is_true(_13)) { + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_18, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_18, "get_parent_class", &_21, variable); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":parent"), &_18, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, " extends :parent", 0); + ZEPHIR_CALL_FUNCTION(&_18, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + zephir_concat_self(&output, _18 TSRMLS_CC); + } + zephir_concat_self_str(&output, SL(" (\n") TSRMLS_CC); + _22 = zephir_fetch_nproperty_this(this_ptr, SL("_detailed"), PH_NOISY_CC); + if (!(zephir_is_true(_22))) { + ZEPHIR_CALL_FUNCTION(&_10, "get_object_vars", &_23, variable); + zephir_check_call_status(); + zephir_is_iterable(_10, &_25, &_24, 0, 0, "phalcon/debug/dump.zep", 171); + for ( + ; zephir_hash_get_current_data_ex(_25, (void**) &_26, &_24) == SUCCESS + ; zephir_hash_move_forward_ex(_25, &_24) + ) { + ZEPHIR_GET_HMKEY(key, _25, _24); + ZEPHIR_GET_HVALUE(value, _26); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_13, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":key"), &key, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(_12, SS(":type"), SL("public"), 1); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:key (:type) = ", 0); + ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _13, _27); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _28, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); } } else { - if (Z_TYPE_P(definition) == IS_ARRAY) { - ZEPHIR_INIT_VAR(builder); - object_init_ex(builder, phalcon_di_service_builder_ce); - if (zephir_has_constructor(builder TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, builder, "__construct", NULL); - zephir_check_call_status(); + do { + Z_SET_ISREF_P(variable); + ZEPHIR_CALL_FUNCTION(&attr, "each", &_29, variable); + Z_UNSET_ISREF_P(variable); + zephir_check_call_status(); + if (!(zephir_is_true(attr))) { + continue; } - ZEPHIR_CALL_METHOD(&instance, builder, "build", &_3, dependencyInjector, definition, parameters); + ZEPHIR_OBS_NVAR(key); + zephir_array_fetch_string(&key, attr, SL("key"), PH_NOISY, "phalcon/debug/dump.zep", 178 TSRMLS_CC); + ZEPHIR_OBS_NVAR(value); + zephir_array_fetch_string(&value, attr, SL("value"), PH_NOISY, "phalcon/debug/dump.zep", 179 TSRMLS_CC); + if (!(zephir_is_true(key))) { + continue; + } + ZEPHIR_INIT_NVAR(_3); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "\\x00", 0); + ZEPHIR_CALL_FUNCTION(&_10, "ord", &_30, &_5); zephir_check_call_status(); - } else { - found = 0; - } + ZEPHIR_CALL_FUNCTION(&_13, "chr", &_31, _10); + zephir_check_call_status(); + zephir_fast_explode(_3, _13, key, LONG_MAX TSRMLS_CC); + ZEPHIR_CPY_WRT(key, _3); + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "public", 1); + if (zephir_array_isset_long(key, 1)) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "private", 1); + zephir_array_fetch_long(&_32, key, 1, PH_NOISY | PH_READONLY, "phalcon/debug/dump.zep", 190 TSRMLS_CC); + if (ZEPHIR_IS_STRING(_32, "*")) { + ZEPHIR_INIT_NVAR(type); + ZVAL_STRING(type, "protected", 1); + } + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_27, PH_COPY | PH_SEPARATE); + Z_SET_ISREF_P(key); + ZEPHIR_CALL_FUNCTION(&_27, "end", &_33, key); + Z_UNSET_ISREF_P(key); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":key"), &_27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":type"), &type, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:key (:type) = ", 0); + ZEPHIR_CALL_FUNCTION(&_27, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _18, _27); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "output", &_19, value, _3, &_5); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _28, "\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } while (zephir_is_true(attr)); } - } - if (found == 0) { - ZEPHIR_INIT_VAR(_4); - object_init_ex(_4, phalcon_di_exception_ce); - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(_6); - ZEPHIR_CONCAT_SVS(_6, "Service '", _5, "' cannot be resolved"); - ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_7, _6); + ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", &_34, variable); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/di/service.zep", 212 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_is_true(shared)) { - zephir_update_property_this(this_ptr, SL("_sharedInstance"), instance TSRMLS_CC); - } - zephir_update_property_this(this_ptr, SL("_resolved"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - RETURN_CCTOR(instance); - -} - -static PHP_METHOD(Phalcon_Di_Service, setParameter) { - - zval *parameter = NULL; - zval *position_param = NULL, *parameter_param = NULL, *definition, *arguments = NULL; - int position; - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); - - position = zephir_get_intval(position_param); - parameter = parameter_param; - - - - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/di/service.zep", 236); - return; + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + zephir_array_update_string(&_12, SL(":class"), &_3, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_12, SS(":count"), zephir_fast_count_int(attr TSRMLS_CC)); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, ":class methods: (:count) (\n", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + zephir_get_class(_3, variable, 0 TSRMLS_CC); + _35 = zephir_fetch_nproperty_this(this_ptr, SL("_methods"), PH_NOISY_CC); + if (zephir_fast_in_array(_3, _35 TSRMLS_CC)) { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, "[already listed]\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } else { + zephir_is_iterable(attr, &_37, &_36, 0, 0, "phalcon/debug/dump.zep", 214); + for ( + ; zephir_hash_get_current_data_ex(_37, (void**) &_38, &_36) == SUCCESS + ; zephir_hash_move_forward_ex(_37, &_36) + ) { + ZEPHIR_GET_HVALUE(value, _38); + ZEPHIR_INIT_NVAR(_39); + zephir_get_class(_39, variable, 0 TSRMLS_CC); + zephir_update_property_array_append(this_ptr, SL("_methods"), _39 TSRMLS_CC); + if (ZEPHIR_IS_STRING(value, "__construct")) { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_12); + zephir_create_array(_12, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_39); + ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _39); + zephir_check_temp_parameter(_39); + zephir_check_call_status(); + zephir_array_update_string(&_12, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:method(); [constructor]\n", 0); + ZEPHIR_CALL_FUNCTION(&_13, "strtr", &_6, &_5, _12); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_14); + ZEPHIR_CONCAT_VV(_14, _10, _13); + zephir_concat_self(&output, _14 TSRMLS_CC); + } else { + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_27, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_40); + zephir_create_array(_40, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_39); + ZVAL_STRING(_39, "obj", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_28, this_ptr, "getstyle", &_4, _39); + zephir_check_temp_parameter(_39); + zephir_check_call_status(); + zephir_array_update_string(&_40, SL(":style"), &_28, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_40, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "->:method();\n", 0); + ZEPHIR_CALL_FUNCTION(&_28, "strtr", &_6, &_5, _40); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_41); + ZEPHIR_CONCAT_VV(_41, _27, _28); + zephir_concat_self(&output, _41 TSRMLS_CC); + } + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, tab); + ZEPHIR_CALL_FUNCTION(&_18, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_LNVAR(_20); + ZEPHIR_CONCAT_VS(_20, _18, ")\n"); + zephir_concat_self(&output, _20 TSRMLS_CC); + } + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_10, "str_repeat", &_11, space, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, output, _10, ")"); + RETURN_MM(); } - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE, "phalcon/di/service.zep", 243); - } else { - ZEPHIR_INIT_NVAR(arguments); - zephir_create_array(arguments, 1, 0 TSRMLS_CC); - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY, "phalcon/di/service.zep", 245); + if (Z_TYPE_P(variable) == IS_LONG) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "int", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Integer (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); } - zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); - RETURN_THIS(); + ZEPHIR_CALL_FUNCTION(&_2, "is_float", &_42, variable); + zephir_check_call_status(); + if (zephir_is_true(_2)) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "float", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Float (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (zephir_is_numeric(variable)) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "num", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Numeric string (:length) \":var\"", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_STRING) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 3, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "str", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(_1, SS(":length"), zephir_fast_strlen_ev(variable)); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, 4); + ZEPHIR_SINIT_VAR(_43); + ZVAL_STRING(&_43, "utf-8", 0); + ZEPHIR_CALL_FUNCTION(&_2, "htmlentities", &_44, variable, &_5, &_43); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_13, "nl2br", &_45, _2); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":var"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "String (:length) \":var\"", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_BOOL) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "bool", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_LNVAR(_14); + if (zephir_is_true(variable)) { + ZEPHIR_INIT_NVAR(_14); + ZVAL_STRING(_14, "TRUE", 1); + } else { + ZEPHIR_INIT_NVAR(_14); + ZVAL_STRING(_14, "FALSE", 1); + } + zephir_array_update_string(&_1, SL(":var"), &_14, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "Boolean (:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_NULL) { + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 1, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "null", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "NULL", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(_1); + zephir_create_array(_1, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "other", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getstyle", &_4, _3); + zephir_check_temp_parameter(_3); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":style"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL(":var"), &variable, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_STRING(&_5, "(:var)", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_6, &_5, _1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, getParameter) { +static PHP_METHOD(Phalcon_Debug_Dump, variable) { - zval *position_param = NULL, *definition, *arguments, *parameter; - int position; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0; + zval *name = NULL; + zval *variable, *name_param = NULL, *_1 = NULL, *_2, _3; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &position_param); - - position = zephir_get_intval(position_param); - + zephir_fetch_params(1, 1, 1, &variable, &name_param); - ZEPHIR_OBS_VAR(definition); - zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); - if (Z_TYPE_P(definition) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/di/service.zep", 273); - return; - } - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 1 TSRMLS_CC)) { - if (zephir_array_isset_long_fetch(¶meter, arguments, position, 1 TSRMLS_CC)) { - RETURN_CTOR(parameter); - } + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + zephir_get_strval(name, name_param); } - RETURN_MM_NULL(); - -} - -static PHP_METHOD(Phalcon_Di_Service, isResolved) { - RETURN_MEMBER(this_ptr, "_resolved"); + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 2, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_2); + ZVAL_STRING(_2, "pre", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, _2); + zephir_check_temp_parameter(_2); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, variable, name); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_SINIT_VAR(_3); + ZVAL_STRING(&_3, "
:output
", 0); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", &_4, &_3, _0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service, __set_state) { +static PHP_METHOD(Phalcon_Debug_Dump, variables) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zephir_fcall_cache_entry *_7 = NULL; + HashTable *_3; + HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, *name, *definition, *shared; - zval *attributes = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; + zval *key = NULL, *value = NULL, *output, *_0 = NULL, **_4, *_5 = NULL, *_6 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - - attributes = attributes_param; - - - ZEPHIR_OBS_VAR(name); - if (!(zephir_array_isset_string_fetch(&name, attributes, SS("_name"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_name' is required", "phalcon/di/service.zep", 304); - return; - } - ZEPHIR_OBS_VAR(definition); - if (!(zephir_array_isset_string_fetch(&definition, attributes, SS("_definition"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_definition' is required", "phalcon/di/service.zep", 308); - return; - } - ZEPHIR_OBS_VAR(shared); - if (!(zephir_array_isset_string_fetch(&shared, attributes, SS("_shared"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_shared' is required", "phalcon/di/service.zep", 312); - return; - } - object_init_ex(return_value, phalcon_di_service_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, name, definition, shared); + ZEPHIR_INIT_VAR(output); + ZVAL_STRING(output, "", 1); + ZEPHIR_CALL_FUNCTION(&_0, "func_get_args", &_1); zephir_check_call_status(); - RETURN_MM(); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/debug/dump.zep", 283); + for ( + ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS + ; zephir_hash_move_forward_ex(_3, &_2) + ) { + ZEPHIR_GET_HMKEY(key, _3, _2); + ZEPHIR_GET_HVALUE(value, _4); + ZEPHIR_INIT_LNVAR(_6); + ZEPHIR_CONCAT_SV(_6, "var ", key); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "one", &_7, value, _6); + zephir_check_call_status(); + zephir_concat_self(&output, _5 TSRMLS_CC); + } + RETURN_CCTOR(output); } @@ -53441,33 +54993,41 @@ static PHP_METHOD(Phalcon_Di_Service, __set_state) { #include +#include #include +#include -ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { +ZEPHIR_INIT_CLASS(Phalcon_Debug_Exception) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Debug, Exception, phalcon, debug_exception, phalcon_exception_ce, NULL, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __construct); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); +#ifdef HAVE_CONFIG_H +#endif -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); +#include -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); +#include +#include +#include -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); + +ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} @@ -53483,15 +55043,15 @@ ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { +static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; zval *_1; @@ -53500,16 +55060,16 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_MM_GROW(); - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, this_ptr, "__construct", &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, this_ptr, "__construct", &_0); zephir_check_call_status(); ZEPHIR_INIT_VAR(_1); - zephir_create_array(_1, 10, 0 TSRMLS_CC); + zephir_create_array(_1, 21, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_VAR(_3); ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_VAR(_4); - ZVAL_STRING(_4, "Phalcon\\CLI\\Router", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_VAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); @@ -53522,7 +55082,7 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\CLI\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); @@ -53533,6 +55093,19 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "url", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Url", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); @@ -53559,6 +55132,45 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "response", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Response", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "cookies", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Response\\Cookies", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "request", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Http\\Request", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); @@ -53585,6 +55197,32 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "crypt", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Crypt", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); @@ -53598,424 +55236,253 @@ static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "flash", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Flash\\Direct", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "flashSession", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Flash\\Session", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_di_service_ce); ZEPHIR_INIT_NVAR(_3); - ZVAL_STRING(_3, "transactionManager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_3, "tag", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_4); - ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZVAL_STRING(_4, "Phalcon\\Tag", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_SINIT_NVAR(_5); ZVAL_BOOL(&_5, 1); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); zephir_check_temp_parameter(_3); zephir_check_temp_parameter(_4); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - -} - - - - -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - - return SUCCESS; - -} - -static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameter) { - - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zval *_2 = NULL; - zval *argument = NULL; - int position, ZEPHIR_LAST_CALL_STATUS; - zval *dependencyInjector, *position_param = NULL, *argument_param = NULL, *type, *name = NULL, *value, *instanceArguments, *_0 = NULL, _1 = zval_used_for_init; + zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "session", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Session\\Adapter\\Files", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("session"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Session\\Bag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("sessionBag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "transactions", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "assets", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Assets\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &dependencyInjector, &position_param, &argument_param); +} - position = zephir_get_intval(position_param); - argument = argument_param; - ZEPHIR_OBS_VAR(type); - if (!(zephir_array_isset_string_fetch(&type, argument, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_VAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_VAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_VAR(_2); - ZEPHIR_CONCAT_SVS(_2, "Argument at position ", &_1, " must have a type"); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 49 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - do { - if (ZEPHIR_IS_STRING(type, "service")) { - ZEPHIR_OBS_VAR(name); - if (!(zephir_array_isset_string_fetch(&name, argument, SS("name"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'name' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 59 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 62); - return; - } - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(type, "parameter")) { - ZEPHIR_OBS_VAR(value); - if (!(zephir_array_isset_string_fetch(&value, argument, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'value' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 71 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(value); - } - if (ZEPHIR_IS_STRING(type, "instance")) { - ZEPHIR_OBS_NVAR(name); - if (!(zephir_array_isset_string_fetch(&name, argument, SS("className"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Service 'className' is required in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 81 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 85); - return; - } - ZEPHIR_OBS_VAR(instanceArguments); - if (zephir_array_isset_string_fetch(&instanceArguments, argument, SS("arguments"), 0 TSRMLS_CC)) { - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name, instanceArguments); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_NVAR(_0); - object_init_ex(_0, phalcon_di_exception_ce); - ZEPHIR_SINIT_NVAR(_1); - ZVAL_LONG(&_1, position); - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SV(_2, "Unknown service type in parameter on position ", &_1); - ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); - zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 104 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } while(0); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_MM_RESTORE(); +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("_dependencyInjector"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_di_injectionawareinterface_ce); + zend_class_implements(phalcon_di_injectable_ce TSRMLS_CC, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameters) { +static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - HashTable *_1; - HashPosition _0; - zval *arguments = NULL; - zval *dependencyInjector, *arguments_param = NULL, *position = NULL, *argument = NULL, *buildArguments, **_2, *_3 = NULL; + zval *dependencyInjector; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &dependencyInjector, &arguments_param); + zephir_fetch_params(0, 1, 0, &dependencyInjector); - arguments = arguments_param; + zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); - ZEPHIR_INIT_VAR(buildArguments); - array_init(buildArguments); - zephir_is_iterable(arguments, &_1, &_0, 0, 0, "phalcon/di/service/builder.zep", 119); - for ( - ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS - ; zephir_hash_move_forward_ex(_1, &_0) - ) { - ZEPHIR_GET_HMKEY(position, _1, _0); - ZEPHIR_GET_HVALUE(argument, _2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_4, dependencyInjector, position, argument); +} + +static PHP_METHOD(Phalcon_Di_Injectable, getDI) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *dependencyInjector = NULL; + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(dependencyInjector); + zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_0); zephir_check_call_status(); - zephir_array_append(&buildArguments, _3, PH_SEPARATE, "phalcon/di/service/builder.zep", 117); } - RETURN_CCTOR(buildArguments); + RETURN_CCTOR(dependencyInjector); } -static PHP_METHOD(Phalcon_Di_Service_Builder, build) { +static PHP_METHOD(Phalcon_Di_Injectable, setEventsManager) { - zephir_fcall_cache_entry *_10 = NULL; - HashTable *_6, *_12; - HashPosition _5, _11; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_15 = NULL; - int ZEPHIR_LAST_CALL_STATUS; - zval *definition = NULL; - zval *dependencyInjector, *definition_param = NULL, *parameters = NULL, *className, *arguments = NULL, *paramCalls = NULL, *methodPosition = NULL, *method = NULL, *methodName = NULL, *methodCall = NULL, *instance = NULL, *propertyPosition = NULL, *property = NULL, *propertyName = NULL, *propertyValue = NULL, *reflection = NULL, *_3 = NULL, **_7, *_8 = NULL, *_9 = NULL, **_13, *_14 = NULL; + zval *eventsManager; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &dependencyInjector, &definition_param, ¶meters); + zephir_fetch_params(0, 1, 0, &eventsManager); - definition = definition_param; - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); - } + zephir_update_property_this(this_ptr, SL("_eventsManager"), eventsManager TSRMLS_CC); - ZEPHIR_OBS_VAR(className); - if (!(zephir_array_isset_string_fetch(&className, definition, SS("className"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/di/service/builder.zep", 140); - return; +} + +static PHP_METHOD(Phalcon_Di_Injectable, getEventsManager) { + + + RETURN_MEMBER(this_ptr, "_eventsManager"); + +} + +static PHP_METHOD(Phalcon_Di_Injectable, __get) { + + zval *_4; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_7 = NULL; + zval *propertyName_param = NULL, *dependencyInjector = NULL, *service = NULL, *persistent = NULL, *_0, *_2 = NULL, *_3 = NULL, *_5 = NULL; + zval *propertyName = NULL, *_6; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &propertyName_param); + + if (unlikely(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); } - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters TSRMLS_CC)) { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_VAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, parameters TSRMLS_CC); - zephir_check_call_status(); - } - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); - zephir_check_call_status(); - } - } + + if (likely(Z_TYPE_P(propertyName_param) == IS_STRING)) { + zephir_get_strval(propertyName, propertyName_param); } else { - ZEPHIR_OBS_VAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, _3 TSRMLS_CC); - zephir_check_call_status(); - } else { - if (zephir_is_php_version(50600)) { - ZEPHIR_INIT_NVAR(reflection); - object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); - zephir_check_call_status(); - } - } + ZEPHIR_INIT_VAR(propertyName); + ZVAL_EMPTY_STRING(propertyName); } - ZEPHIR_OBS_VAR(paramCalls); - if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("calls"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(instance) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 192); - return; - } - if (Z_TYPE_P(paramCalls) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 196); + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(dependencyInjector, _0); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); + zephir_check_call_status(); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services", "phalcon/di/injectable.zep", 127); return; } - zephir_is_iterable(paramCalls, &_6, &_5, 0, 0, "phalcon/di/service/builder.zep", 250); - for ( - ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS - ; zephir_hash_move_forward_ex(_6, &_5) - ) { - ZEPHIR_GET_HMKEY(methodPosition, _6, _5); - ZEPHIR_GET_HVALUE(method, _7); - if (Z_TYPE_P(method) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Method call must be an array on position ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 208 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(methodName); - if (!(zephir_array_isset_string_fetch(&methodName, method, SS("method"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The method name is required on position ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 215 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(methodCall); - zephir_create_array(methodCall, 2, 0 TSRMLS_CC); - zephir_array_fast_append(methodCall, instance); - zephir_array_fast_append(methodCall, methodName); - ZEPHIR_OBS_NVAR(arguments); - if (zephir_array_isset_string_fetch(&arguments, method, SS("arguments"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(arguments) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Call arguments must be an array ", methodPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 226 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_fast_count_int(arguments TSRMLS_CC)) { - ZEPHIR_INIT_NVAR(_8); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(_8, methodCall, _3); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_INIT_NVAR(_8); - ZEPHIR_CALL_USER_FUNC(_8, methodCall); - zephir_check_call_status(); - } } - ZEPHIR_OBS_NVAR(paramCalls); - if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("properties"), 0 TSRMLS_CC)) { - if (Z_TYPE_P(instance) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 258); - return; - } - if (Z_TYPE_P(paramCalls) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 262); - return; - } - zephir_is_iterable(paramCalls, &_12, &_11, 0, 0, "phalcon/di/service/builder.zep", 297); - for ( - ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS - ; zephir_hash_move_forward_ex(_12, &_11) - ) { - ZEPHIR_GET_HMKEY(propertyPosition, _12, _11); - ZEPHIR_GET_HVALUE(property, _13); - if (Z_TYPE_P(property) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(_14); - object_init_ex(_14, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "Property must be an array on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _14, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_14, "phalcon/di/service/builder.zep", 274 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(propertyName); - if (!(zephir_array_isset_string_fetch(&propertyName, property, SS("name"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The property name is required on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 281 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(propertyValue); - if (!(zephir_array_isset_string_fetch(&propertyValue, property, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(_8); - object_init_ex(_8, phalcon_di_exception_ce); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_SV(_9, "The property value is required on position ", propertyPosition); - ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); - zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 288 TSRMLS_CC); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_15, dependencyInjector, propertyPosition, propertyValue); - zephir_check_call_status(); - zephir_update_property_zval_zval(instance, propertyName, _3 TSRMLS_CC); - } + ZEPHIR_CALL_METHOD(&_2, dependencyInjector, "has", NULL, propertyName); + zephir_check_call_status(); + if (zephir_is_true(_2)) { + ZEPHIR_CALL_METHOD(&service, dependencyInjector, "getshared", NULL, propertyName); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, propertyName, service TSRMLS_CC); + RETURN_CCTOR(service); } - RETURN_CCTOR(instance); + if (ZEPHIR_IS_STRING(propertyName, "di")) { + zephir_update_property_zval(this_ptr, SL("di"), dependencyInjector TSRMLS_CC); + RETURN_CCTOR(dependencyInjector); + } + if (ZEPHIR_IS_STRING(propertyName, "persistent")) { + ZEPHIR_INIT_VAR(_4); + zephir_create_array(_4, 1, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_5); + zephir_get_class(_5, this_ptr, 0 TSRMLS_CC); + zephir_array_fast_append(_4, _5); + ZEPHIR_INIT_NVAR(_5); + ZVAL_STRING(_5, "sessionBag", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_3, dependencyInjector, "get", NULL, _5, _4); + zephir_check_temp_parameter(_5); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(persistent, _3); + zephir_update_property_zval(this_ptr, SL("persistent"), persistent TSRMLS_CC); + RETURN_CCTOR(persistent); + } + ZEPHIR_INIT_VAR(_6); + ZEPHIR_CONCAT_SV(_6, "Access to undefined property ", propertyName); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", &_7, _6); + zephir_check_call_status(); + RETURN_MM_NULL(); } @@ -54027,20 +55494,22 @@ static PHP_METHOD(Phalcon_Di_Service_Builder, build) { #include -#include #include -#include -ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); + +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); + @@ -54055,136 +55524,347 @@ ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Events_Event) { +ZEPHIR_INIT_CLASS(Phalcon_Di_Service) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); - zend_declare_property_null(phalcon_events_event_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_name"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_events_event_ce, SL("_source"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_definition"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_events_event_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(phalcon_di_service_ce, SL("_shared"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(phalcon_events_event_ce, SL("_stopped"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(phalcon_di_service_ce, SL("_resolved"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(phalcon_events_event_ce, SL("_cancelable"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_di_service_ce, SL("_sharedInstance"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_class_implements(phalcon_di_service_ce TSRMLS_CC, 1, phalcon_di_serviceinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Event, setType) { +static PHP_METHOD(Phalcon_Di_Service, __construct) { - zval *type; + zend_bool shared; + zval *name_param = NULL, *definition, *shared_param = NULL; + zval *name = NULL; - zephir_fetch_params(0, 1, 0, &type); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param); + + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + if (!shared_param) { + shared = 0; + } else { + shared = zephir_get_boolval(shared_param); + } - zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_name"), name TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Events_Event, getType) { +static PHP_METHOD(Phalcon_Di_Service, getName) { - RETURN_MEMBER(this_ptr, "_type"); + RETURN_MEMBER(this_ptr, "_name"); } -static PHP_METHOD(Phalcon_Events_Event, getSource) { +static PHP_METHOD(Phalcon_Di_Service, setShared) { + zval *shared_param = NULL; + zend_bool shared; - RETURN_MEMBER(this_ptr, "_source"); + zephir_fetch_params(0, 1, 0, &shared_param); + + shared = zephir_get_boolval(shared_param); + + + zephir_update_property_this(this_ptr, SL("_shared"), shared ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, setData) { +static PHP_METHOD(Phalcon_Di_Service, isShared) { - zval *data; - zephir_fetch_params(0, 1, 0, &data); + RETURN_MEMBER(this_ptr, "_shared"); + +} +static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { + zval *sharedInstance; - zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + zephir_fetch_params(0, 1, 0, &sharedInstance); + + + + zephir_update_property_this(this_ptr, SL("_sharedInstance"), sharedInstance TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, getData) { +static PHP_METHOD(Phalcon_Di_Service, setDefinition) { + zval *definition; - RETURN_MEMBER(this_ptr, "_data"); + zephir_fetch_params(0, 1, 0, &definition); + + + + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Event, getCancelable) { +static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - RETURN_MEMBER(this_ptr, "_cancelable"); + RETURN_MEMBER(this_ptr, "_definition"); } -static PHP_METHOD(Phalcon_Events_Event, __construct) { +static PHP_METHOD(Phalcon_Di_Service, resolve) { - zend_bool cancelable; - zval *type_param = NULL, *source, *data = NULL, *cancelable_param = NULL; - zval *type = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_7 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zend_bool found; + zval *parameters = NULL, *dependencyInjector = NULL, *shared, *definition, *sharedInstance, *instance = NULL, *builder, *reflection = NULL, *_4, *_5, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); + zephir_fetch_params(1, 0, 2, ¶meters, &dependencyInjector); - if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + if (!parameters) { + parameters = ZEPHIR_GLOBAL(global_null); + } + if (!dependencyInjector) { + dependencyInjector = ZEPHIR_GLOBAL(global_null); } - if (likely(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(type, type_param); + + ZEPHIR_OBS_VAR(shared); + zephir_read_property_this(&shared, this_ptr, SL("_shared"), PH_NOISY_CC); + if (zephir_is_true(shared)) { + ZEPHIR_OBS_VAR(sharedInstance); + zephir_read_property_this(&sharedInstance, this_ptr, SL("_sharedInstance"), PH_NOISY_CC); + if (Z_TYPE_P(sharedInstance) != IS_NULL) { + RETURN_CCTOR(sharedInstance); + } + } + found = 1; + ZEPHIR_INIT_VAR(instance); + ZVAL_NULL(instance); + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) == IS_STRING) { + if (zephir_class_exists(definition, 1 TSRMLS_CC)) { + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters TSRMLS_CC)) { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_VAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, definition, parameters TSRMLS_CC); + zephir_check_call_status(); + } + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, definition); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, definition TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + found = 0; + } } else { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); + if (Z_TYPE_P(definition) == IS_OBJECT) { + if (zephir_instance_of_ev(definition, zend_ce_closure TSRMLS_CC)) { + if (Z_TYPE_P(parameters) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_USER_FUNC_ARRAY(instance, definition, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_USER_FUNC(instance, definition); + zephir_check_call_status(); + } + } else { + ZEPHIR_CPY_WRT(instance, definition); + } + } else { + if (Z_TYPE_P(definition) == IS_ARRAY) { + ZEPHIR_INIT_VAR(builder); + object_init_ex(builder, phalcon_di_service_builder_ce); + if (zephir_has_constructor(builder TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, builder, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&instance, builder, "build", &_3, dependencyInjector, definition, parameters); + zephir_check_call_status(); + } else { + found = 0; + } + } } - if (!data) { - data = ZEPHIR_GLOBAL(global_null); + if (found == 0) { + ZEPHIR_INIT_VAR(_4); + object_init_ex(_4, phalcon_di_exception_ce); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(_6); + ZEPHIR_CONCAT_SVS(_6, "Service '", _5, "' cannot be resolved"); + ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_7, _6); + zephir_check_call_status(); + zephir_throw_exception_debug(_4, "phalcon/di/service.zep", 212 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - if (!cancelable_param) { - cancelable = 1; - } else { - cancelable = zephir_get_boolval(cancelable_param); + if (zephir_is_true(shared)) { + zephir_update_property_this(this_ptr, SL("_sharedInstance"), instance TSRMLS_CC); } + zephir_update_property_this(this_ptr, SL("_resolved"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + RETURN_CCTOR(instance); + +} +static PHP_METHOD(Phalcon_Di_Service, setParameter) { - zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); - zephir_update_property_this(this_ptr, SL("_source"), source TSRMLS_CC); - if (Z_TYPE_P(data) != IS_NULL) { - zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + zval *parameter = NULL; + zval *position_param = NULL, *parameter_param = NULL, *definition, *arguments = NULL; + int position; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); + + position = zephir_get_intval(position_param); + parameter = parameter_param; + + + + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/di/service.zep", 236); + return; } - if (cancelable != 1) { - zephir_update_property_this(this_ptr, SL("_cancelable"), cancelable ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + ZEPHIR_OBS_VAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE, "phalcon/di/service.zep", 243); + } else { + ZEPHIR_INIT_NVAR(arguments); + zephir_create_array(arguments, 1, 0 TSRMLS_CC); + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY, "phalcon/di/service.zep", 245); } - ZEPHIR_MM_RESTORE(); + zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_definition"), definition TSRMLS_CC); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Events_Event, stop) { +static PHP_METHOD(Phalcon_Di_Service, getParameter) { - zval *_0; + zval *position_param = NULL, *definition, *arguments, *parameter; + int position; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &position_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_cancelable"), PH_NOISY_CC); - if (!(zephir_is_true(_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/events/event.zep", 93); + position = zephir_get_intval(position_param); + + + ZEPHIR_OBS_VAR(definition); + zephir_read_property_this(&definition, this_ptr, SL("_definition"), PH_NOISY_CC); + if (Z_TYPE_P(definition) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/di/service.zep", 273); return; } - zephir_update_property_this(this_ptr, SL("_stopped"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 1 TSRMLS_CC)) { + if (zephir_array_isset_long_fetch(¶meter, arguments, position, 1 TSRMLS_CC)) { + RETURN_CTOR(parameter); + } + } + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Events_Event, isStopped) { +static PHP_METHOD(Phalcon_Di_Service, isResolved) { - RETURN_MEMBER(this_ptr, "_stopped"); + RETURN_MEMBER(this_ptr, "_resolved"); + +} + +static PHP_METHOD(Phalcon_Di_Service, __set_state) { + + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, *name, *definition, *shared; + zval *attributes = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + + attributes = attributes_param; + + + + ZEPHIR_OBS_VAR(name); + if (!(zephir_array_isset_string_fetch(&name, attributes, SS("_name"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_name' is required", "phalcon/di/service.zep", 304); + return; + } + ZEPHIR_OBS_VAR(definition); + if (!(zephir_array_isset_string_fetch(&definition, attributes, SS("_definition"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_definition' is required", "phalcon/di/service.zep", 308); + return; + } + ZEPHIR_OBS_VAR(shared); + if (!(zephir_array_isset_string_fetch(&shared, attributes, SS("_shared"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The attribute '_shared' is required", "phalcon/di/service.zep", 312); + return; + } + object_init_ex(return_value, phalcon_di_service_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_0, name, definition, shared); + zephir_check_call_status(); + RETURN_MM(); } @@ -54200,17 +55880,29 @@ static PHP_METHOD(Phalcon_Events_Event, isStopped) { -ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) { +ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __construct); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getName); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, __set_state); @@ -54226,14 +55918,162 @@ ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); -ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); return SUCCESS; } +static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) { + + zval *_2 = NULL, *_3 = NULL, *_4 = NULL, _5 = zval_used_for_init; + zval *_1; + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_6 = NULL; + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, this_ptr, "__construct", &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(_1); + zephir_create_array(_1, 10, 0 TSRMLS_CC); + ZEPHIR_INIT_VAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_VAR(_3); + ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_VAR(_4); + ZVAL_STRING(_4, "Phalcon\\CLI\\Router", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_VAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\CLI\\Dispatcher", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "modelsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "modelsMetadata", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\MetaData\\Memory", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "escaper", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Escaper", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "annotations", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Annotations\\Adapter\\Memory", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Security", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "eventsManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Events\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(_2); + object_init_ex(_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(_3); + ZVAL_STRING(_3, "transactionManager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_INIT_NVAR(_4); + ZVAL_STRING(_4, "Phalcon\\Mvc\\Model\\Transaction\\Manager", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_BOOL(&_5, 1); + ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _3, _4, &_5); + zephir_check_temp_parameter(_3); + zephir_check_temp_parameter(_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_this(this_ptr, SL("_services"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + @@ -54248,234 +56088,487 @@ ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); - - zend_declare_property_null(phalcon_events_manager_ce, SL("_events"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("_collect"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("_enablePriorities"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); +ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - zend_declare_property_null(phalcon_events_manager_ce, SL("_responses"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - zend_class_implements(phalcon_events_manager_ce TSRMLS_CC, 1, phalcon_events_managerinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, attach) { +static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameter) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - int priority, ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, *priority_param = NULL, *priorityQueue = NULL, *_0, *_1, *_2 = NULL; - zval *eventType = NULL; + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zval *_2 = NULL; + zval *argument = NULL; + int position, ZEPHIR_LAST_CALL_STATUS; + zval *dependencyInjector, *position_param = NULL, *argument_param = NULL, *type, *name = NULL, *value, *instanceArguments, *_0 = NULL, _1 = zval_used_for_init; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); - - if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); - } + zephir_fetch_params(1, 3, 0, &dependencyInjector, &position_param, &argument_param); - if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(eventType); - ZVAL_EMPTY_STRING(eventType); - } - if (!priority_param) { - priority = 100; - } else { - if (unlikely(Z_TYPE_P(priority_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be a long/integer") TSRMLS_CC); - RETURN_MM_NULL(); - } + position = zephir_get_intval(position_param); + argument = argument_param; - priority = Z_LVAL_P(priority_param); - } - if (Z_TYPE_P(handler) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 56); + ZEPHIR_OBS_VAR(type); + if (!(zephir_array_isset_string_fetch(&type, argument, SS("type"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_VAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_VAR(_2); + ZEPHIR_CONCAT_SVS(_2, "Argument at position ", &_1, " must have a type"); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 49 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_OBS_VAR(priorityQueue); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); - if (!(zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC))) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_enablePriorities"), PH_NOISY_CC); - ZEPHIR_INIT_NVAR(priorityQueue); - if (zephir_is_true(_1)) { - object_init_ex(priorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(priorityQueue TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "__construct", NULL); + do { + if (ZEPHIR_IS_STRING(type, "service")) { + ZEPHIR_OBS_VAR(name); + if (!(zephir_array_isset_string_fetch(&name, argument, SS("name"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'name' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 59 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, 1); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", &_3, _2); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 62); + return; + } + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); - } else { - array_init(priorityQueue); + RETURN_MM(); } - } - if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(_2); - ZVAL_LONG(_2, priority); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "insert", &_4, handler, _2); + if (ZEPHIR_IS_STRING(type, "parameter")) { + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_string_fetch(&value, argument, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'value' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 71 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(value); + } + if (ZEPHIR_IS_STRING(type, "instance")) { + ZEPHIR_OBS_NVAR(name); + if (!(zephir_array_isset_string_fetch(&name, argument, SS("className"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Service 'className' is required in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); + zephir_check_call_status(); + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 81 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/di/service/builder.zep", 85); + return; + } + ZEPHIR_OBS_VAR(instanceArguments); + if (zephir_array_isset_string_fetch(&instanceArguments, argument, SS("arguments"), 0 TSRMLS_CC)) { + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name, instanceArguments); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(dependencyInjector, "get", NULL, name); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(_0); + object_init_ex(_0, phalcon_di_exception_ce); + ZEPHIR_SINIT_NVAR(_1); + ZVAL_LONG(&_1, position); + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SV(_2, "Unknown service type in parameter on position ", &_1); + ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_3, _2); zephir_check_call_status(); - } else { - zephir_array_append(&priorityQueue, handler, PH_SEPARATE, "phalcon/events/manager.zep", 82); - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); - } + zephir_throw_exception_debug(_0, "phalcon/di/service/builder.zep", 104 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Events_Manager, detach) { +static PHP_METHOD(Phalcon_Di_Service_Builder, _buildParameters) { - zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_10 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, *priorityQueue, *newPriorityQueue, *key = NULL, *data = NULL, *_0, *_1 = NULL, *_3 = NULL, *_6, *_7, *_8; - zval *eventType = NULL; + HashTable *_1; + HashPosition _0; + zval *arguments = NULL; + zval *dependencyInjector, *arguments_param = NULL, *position = NULL, *argument = NULL, *buildArguments, **_2, *_3 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &eventType_param, &handler); + zephir_fetch_params(1, 2, 0, &dependencyInjector, &arguments_param); - if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); - RETURN_MM_NULL(); + arguments = arguments_param; + + + + ZEPHIR_INIT_VAR(buildArguments); + array_init(buildArguments); + zephir_is_iterable(arguments, &_1, &_0, 0, 0, "phalcon/di/service/builder.zep", 119); + for ( + ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS + ; zephir_hash_move_forward_ex(_1, &_0) + ) { + ZEPHIR_GET_HMKEY(position, _1, _0); + ZEPHIR_GET_HVALUE(argument, _2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_4, dependencyInjector, position, argument); + zephir_check_call_status(); + zephir_array_append(&buildArguments, _3, PH_SEPARATE, "phalcon/di/service/builder.zep", 117); } + RETURN_CCTOR(buildArguments); - if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(eventType); - ZVAL_EMPTY_STRING(eventType); +} + +static PHP_METHOD(Phalcon_Di_Service_Builder, build) { + + zephir_fcall_cache_entry *_10 = NULL; + HashTable *_6, *_12; + HashPosition _5, _11; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL, *_2 = NULL, *_4 = NULL, *_15 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *definition = NULL; + zval *dependencyInjector, *definition_param = NULL, *parameters = NULL, *className, *arguments = NULL, *paramCalls = NULL, *methodPosition = NULL, *method = NULL, *methodName = NULL, *methodCall = NULL, *instance = NULL, *propertyPosition = NULL, *property = NULL, *propertyName = NULL, *propertyValue = NULL, *reflection = NULL, *_3 = NULL, **_7, *_8 = NULL, *_9 = NULL, **_13, *_14 = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &dependencyInjector, &definition_param, ¶meters); + + definition = definition_param; + + if (!parameters) { + parameters = ZEPHIR_GLOBAL(global_null); } - if (Z_TYPE_P(handler) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 99); + ZEPHIR_OBS_VAR(className); + if (!(zephir_array_isset_string_fetch(&className, definition, SS("className"), 0 TSRMLS_CC))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/di/service/builder.zep", 140); return; } - ZEPHIR_OBS_VAR(priorityQueue); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); - if (zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC)) { - if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { - ZEPHIR_INIT_VAR(newPriorityQueue); - object_init_ex(newPriorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(newPriorityQueue TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "__construct", NULL); + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters TSRMLS_CC)) { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_VAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstanceargs", &_1, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, parameters TSRMLS_CC); zephir_check_call_status(); } - ZEPHIR_INIT_VAR(_1); - ZVAL_LONG(_1, 1); - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "setextractflags", &_2, _1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_1); - ZVAL_LONG(_1, 3); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", NULL, _1); + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); + zephir_check_call_status(); + } + } + } else { + ZEPHIR_OBS_VAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, definition, SS("arguments"), 0 TSRMLS_CC)) { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "top", NULL); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, className, _3 TSRMLS_CC); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, priorityQueue, "valid", NULL); + } else { + if (zephir_is_php_version(50600)) { + ZEPHIR_INIT_NVAR(reflection); + object_init_ex(reflection, zephir_get_internal_ce(SS("reflectionclass") TSRMLS_CC)); + ZEPHIR_CALL_METHOD(NULL, reflection, "__construct", &_0, className); zephir_check_call_status(); - if (!(zephir_is_true(_3))) { - break; - } - ZEPHIR_CALL_METHOD(&data, priorityQueue, "current", &_4); + ZEPHIR_CALL_METHOD(&instance, reflection, "newinstance", &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, priorityQueue, "next", &_5); + } else { + ZEPHIR_INIT_NVAR(instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, className TSRMLS_CC); zephir_check_call_status(); - zephir_array_fetch_string(&_6, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 116 TSRMLS_CC); - if (!ZEPHIR_IS_IDENTICAL(_6, handler)) { - zephir_array_fetch_string(&_7, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); - zephir_array_fetch_string(&_8, data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); - ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "insert", &_9, _7, _8); + } + } + } + ZEPHIR_OBS_VAR(paramCalls); + if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("calls"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(instance) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 192); + return; + } + if (Z_TYPE_P(paramCalls) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 196); + return; + } + zephir_is_iterable(paramCalls, &_6, &_5, 0, 0, "phalcon/di/service/builder.zep", 250); + for ( + ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS + ; zephir_hash_move_forward_ex(_6, &_5) + ) { + ZEPHIR_GET_HMKEY(methodPosition, _6, _5); + ZEPHIR_GET_HVALUE(method, _7); + if (Z_TYPE_P(method) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Method call must be an array on position ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 208 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(methodName); + if (!(zephir_array_isset_string_fetch(&methodName, method, SS("method"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The method name is required on position ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 215 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(methodCall); + zephir_create_array(methodCall, 2, 0 TSRMLS_CC); + zephir_array_fast_append(methodCall, instance); + zephir_array_fast_append(methodCall, methodName); + ZEPHIR_OBS_NVAR(arguments); + if (zephir_array_isset_string_fetch(&arguments, method, SS("arguments"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(arguments) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Call arguments must be an array ", methodPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 226 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_fast_count_int(arguments TSRMLS_CC)) { + ZEPHIR_INIT_NVAR(_8); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameters", &_4, dependencyInjector, arguments); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(_8, methodCall, _3); zephir_check_call_status(); + continue; } } - zephir_update_property_array(this_ptr, SL("_events"), eventType, newPriorityQueue TSRMLS_CC); - } else { - ZEPHIR_CALL_FUNCTION(&key, "array_search", &_10, handler, priorityQueue, ZEPHIR_GLOBAL(global_true)); + ZEPHIR_INIT_NVAR(_8); + ZEPHIR_CALL_USER_FUNC(_8, methodCall); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(key)) { - zephir_array_unset(&priorityQueue, key, PH_SEPARATE); + } + } + ZEPHIR_OBS_NVAR(paramCalls); + if (zephir_array_isset_string_fetch(¶mCalls, definition, SS("properties"), 0 TSRMLS_CC)) { + if (Z_TYPE_P(instance) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/di/service/builder.zep", 258); + return; + } + if (Z_TYPE_P(paramCalls) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/di/service/builder.zep", 262); + return; + } + zephir_is_iterable(paramCalls, &_12, &_11, 0, 0, "phalcon/di/service/builder.zep", 297); + for ( + ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS + ; zephir_hash_move_forward_ex(_12, &_11) + ) { + ZEPHIR_GET_HMKEY(propertyPosition, _12, _11); + ZEPHIR_GET_HVALUE(property, _13); + if (Z_TYPE_P(property) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(_14); + object_init_ex(_14, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "Property must be an array on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _14, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_14, "phalcon/di/service/builder.zep", 274 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; } - zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + ZEPHIR_OBS_NVAR(propertyName); + if (!(zephir_array_isset_string_fetch(&propertyName, property, SS("name"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The property name is required on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 281 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(propertyValue); + if (!(zephir_array_isset_string_fetch(&propertyValue, property, SS("value"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(_8); + object_init_ex(_8, phalcon_di_exception_ce); + ZEPHIR_INIT_LNVAR(_9); + ZEPHIR_CONCAT_SV(_9, "The property value is required on position ", propertyPosition); + ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); + zephir_check_call_status(); + zephir_throw_exception_debug(_8, "phalcon/di/service/builder.zep", 288 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "_buildparameter", &_15, dependencyInjector, propertyPosition, propertyValue); + zephir_check_call_status(); + zephir_update_property_zval_zval(instance, propertyName, _3 TSRMLS_CC); } } - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(instance); } -static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) { - zval *enablePriorities_param = NULL; - zend_bool enablePriorities; - zephir_fetch_params(0, 1, 0, &enablePriorities_param); - enablePriorities = zephir_get_boolval(enablePriorities_param); +#ifdef HAVE_CONFIG_H +#endif +#include + +#include +#include +#include - zephir_update_property_this(this_ptr, SL("_enablePriorities"), enablePriorities ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + + +ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) { - RETURN_MEMBER(this_ptr, "_enablePriorities"); + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Event) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); + + zend_declare_property_null(phalcon_events_event_ce, SL("_type"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_event_ce, SL("_source"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_event_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_event_ce, SL("_stopped"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_event_ce, SL("_cancelable"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Events_Manager, collectResponses) { +static PHP_METHOD(Phalcon_Events_Event, setType) { - zval *collect_param = NULL; - zend_bool collect; + zval *type; - zephir_fetch_params(0, 1, 0, &collect_param); + zephir_fetch_params(0, 1, 0, &type); - collect = zephir_get_boolval(collect_param); - zephir_update_property_this(this_ptr, SL("_collect"), collect ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); } -static PHP_METHOD(Phalcon_Events_Manager, isCollecting) { +static PHP_METHOD(Phalcon_Events_Event, getType) { - RETURN_MEMBER(this_ptr, "_collect"); + RETURN_MEMBER(this_ptr, "_type"); } -static PHP_METHOD(Phalcon_Events_Manager, getResponses) { +static PHP_METHOD(Phalcon_Events_Event, getSource) { - RETURN_MEMBER(this_ptr, "_responses"); + RETURN_MEMBER(this_ptr, "_source"); } -static PHP_METHOD(Phalcon_Events_Manager, detachAll) { +static PHP_METHOD(Phalcon_Events_Event, setData) { - zval *type_param = NULL, *_0, *_1; + zval *data; + + zephir_fetch_params(0, 1, 0, &data); + + + + zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Event, getData) { + + + RETURN_MEMBER(this_ptr, "_data"); + +} + +static PHP_METHOD(Phalcon_Events_Event, getCancelable) { + + + RETURN_MEMBER(this_ptr, "_cancelable"); + +} + +static PHP_METHOD(Phalcon_Events_Event, __construct) { + + zend_bool cancelable; + zval *type_param = NULL, *source, *data = NULL, *cancelable_param = NULL; zval *type = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &type_param); + zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); - if (!type_param) { - ZEPHIR_INIT_VAR(type); - ZVAL_EMPTY_STRING(type); - } else { if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); RETURN_MM_NULL(); @@ -54487,10 +56580,352 @@ static PHP_METHOD(Phalcon_Events_Manager, detachAll) { ZEPHIR_INIT_VAR(type); ZVAL_EMPTY_STRING(type); } + if (!data) { + data = ZEPHIR_GLOBAL(global_null); } - - - if (ZEPHIR_IS_STRING_IDENTICAL(type, "")) { + if (!cancelable_param) { + cancelable = 1; + } else { + cancelable = zephir_get_boolval(cancelable_param); + } + + + zephir_update_property_this(this_ptr, SL("_type"), type TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_source"), source TSRMLS_CC); + if (Z_TYPE_P(data) != IS_NULL) { + zephir_update_property_this(this_ptr, SL("_data"), data TSRMLS_CC); + } + if (cancelable != 1) { + zephir_update_property_this(this_ptr, SL("_cancelable"), cancelable ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Event, stop) { + + zval *_0; + + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_cancelable"), PH_NOISY_CC); + if (!(zephir_is_true(_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/events/event.zep", 93); + return; + } + zephir_update_property_this(this_ptr, SL("_stopped"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Event, isStopped) { + + + RETURN_MEMBER(this_ptr, "_stopped"); + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); + +ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) { + + ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); + + zend_declare_property_null(phalcon_events_manager_ce, SL("_events"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_manager_ce, SL("_collect"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_bool(phalcon_events_manager_ce, SL("_enablePriorities"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_declare_property_null(phalcon_events_manager_ce, SL("_responses"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_events_manager_ce TSRMLS_CC, 1, phalcon_events_managerinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Events_Manager, attach) { + + zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; + int priority, ZEPHIR_LAST_CALL_STATUS; + zval *eventType_param = NULL, *handler, *priority_param = NULL, *priorityQueue = NULL, *_0, *_1, *_2 = NULL; + zval *eventType = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); + + if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { + zephir_get_strval(eventType, eventType_param); + } else { + ZEPHIR_INIT_VAR(eventType); + ZVAL_EMPTY_STRING(eventType); + } + if (!priority_param) { + priority = 100; + } else { + if (unlikely(Z_TYPE_P(priority_param) != IS_LONG)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be a long/integer") TSRMLS_CC); + RETURN_MM_NULL(); + } + + priority = Z_LVAL_P(priority_param); + } + + + if (Z_TYPE_P(handler) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 56); + return; + } + ZEPHIR_OBS_VAR(priorityQueue); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC))) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_enablePriorities"), PH_NOISY_CC); + ZEPHIR_INIT_NVAR(priorityQueue); + if (zephir_is_true(_1)) { + object_init_ex(priorityQueue, spl_ce_SplPriorityQueue); + if (zephir_has_constructor(priorityQueue TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(_2); + ZVAL_LONG(_2, 1); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", &_3, _2); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } else { + array_init(priorityQueue); + } + } + if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(_2); + ZVAL_LONG(_2, priority); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "insert", &_4, handler, _2); + zephir_check_call_status(); + } else { + zephir_array_append(&priorityQueue, handler, PH_SEPARATE, "phalcon/events/manager.zep", 82); + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Manager, detach) { + + zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_10 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *eventType_param = NULL, *handler, *priorityQueue, *newPriorityQueue, *key = NULL, *data = NULL, *_0, *_1 = NULL, *_3 = NULL, *_6, *_7, *_8; + zval *eventType = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &eventType_param, &handler); + + if (unlikely(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(eventType_param) == IS_STRING)) { + zephir_get_strval(eventType, eventType_param); + } else { + ZEPHIR_INIT_VAR(eventType); + ZVAL_EMPTY_STRING(eventType); + } + + + if (Z_TYPE_P(handler) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object", "phalcon/events/manager.zep", 99); + return; + } + ZEPHIR_OBS_VAR(priorityQueue); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); + if (zephir_array_isset_fetch(&priorityQueue, _0, eventType, 0 TSRMLS_CC)) { + if (Z_TYPE_P(priorityQueue) == IS_OBJECT) { + ZEPHIR_INIT_VAR(newPriorityQueue); + object_init_ex(newPriorityQueue, spl_ce_SplPriorityQueue); + if (zephir_has_constructor(newPriorityQueue TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "__construct", NULL); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(_1); + ZVAL_LONG(_1, 1); + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "setextractflags", &_2, _1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(_1); + ZVAL_LONG(_1, 3); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "setextractflags", NULL, _1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "top", NULL); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, priorityQueue, "valid", NULL); + zephir_check_call_status(); + if (!(zephir_is_true(_3))) { + break; + } + ZEPHIR_CALL_METHOD(&data, priorityQueue, "current", &_4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, priorityQueue, "next", &_5); + zephir_check_call_status(); + zephir_array_fetch_string(&_6, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 116 TSRMLS_CC); + if (!ZEPHIR_IS_IDENTICAL(_6, handler)) { + zephir_array_fetch_string(&_7, data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); + zephir_array_fetch_string(&_8, data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/events/manager.zep", 117 TSRMLS_CC); + ZEPHIR_CALL_METHOD(NULL, newPriorityQueue, "insert", &_9, _7, _8); + zephir_check_call_status(); + } + } + zephir_update_property_array(this_ptr, SL("_events"), eventType, newPriorityQueue TSRMLS_CC); + } else { + ZEPHIR_CALL_FUNCTION(&key, "array_search", &_10, handler, priorityQueue, ZEPHIR_GLOBAL(global_true)); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(key)) { + zephir_array_unset(&priorityQueue, key, PH_SEPARATE); + } + zephir_update_property_array(this_ptr, SL("_events"), eventType, priorityQueue TSRMLS_CC); + } + } + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) { + + zval *enablePriorities_param = NULL; + zend_bool enablePriorities; + + zephir_fetch_params(0, 1, 0, &enablePriorities_param); + + enablePriorities = zephir_get_boolval(enablePriorities_param); + + + zephir_update_property_this(this_ptr, SL("_enablePriorities"), enablePriorities ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) { + + + RETURN_MEMBER(this_ptr, "_enablePriorities"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, collectResponses) { + + zval *collect_param = NULL; + zend_bool collect; + + zephir_fetch_params(0, 1, 0, &collect_param); + + collect = zephir_get_boolval(collect_param); + + + zephir_update_property_this(this_ptr, SL("_collect"), collect ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + +} + +static PHP_METHOD(Phalcon_Events_Manager, isCollecting) { + + + RETURN_MEMBER(this_ptr, "_collect"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, getResponses) { + + + RETURN_MEMBER(this_ptr, "_responses"); + +} + +static PHP_METHOD(Phalcon_Events_Manager, detachAll) { + + zval *type_param = NULL, *_0, *_1; + zval *type = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &type_param); + + if (!type_param) { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } else { + if (unlikely(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(type, type_param); + } else { + ZEPHIR_INIT_VAR(type); + ZVAL_EMPTY_STRING(type); + } + } + + + if (ZEPHIR_IS_STRING_IDENTICAL(type, "")) { zephir_update_property_this(this_ptr, SL("_events"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } else { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_events"), PH_NOISY_CC); @@ -58394,8 +60829,8 @@ static PHP_METHOD(Phalcon_Http_Request, getDI) { static PHP_METHOD(Phalcon_Http_Request, get) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3, _4; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *request = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_REQUEST, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_REQUEST; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58436,68 +60871,17 @@ static PHP_METHOD(Phalcon_Http_Request, get) { zephir_get_global(&_REQUEST, SS("_REQUEST") TSRMLS_CC); - ZEPHIR_CPY_WRT(request, _REQUEST); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, request, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 96); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - _4 = _3; - if (!(_4)) { - _4 = ZEPHIR_IS_FALSE_IDENTICAL(value); - } - if (_4) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(request); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _REQUEST, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } static PHP_METHOD(Phalcon_Http_Request, getPost) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *post = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_POST, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_POST; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58538,56 +60922,9 @@ static PHP_METHOD(Phalcon_Http_Request, getPost) { zephir_get_global(&_POST, SS("_POST") TSRMLS_CC); - ZEPHIR_CPY_WRT(post, _POST); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, post, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 148); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(post); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _POST, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } @@ -58595,8 +60932,8 @@ static PHP_METHOD(Phalcon_Http_Request, getPut) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; - zend_bool notAllowEmpty, noRecursive, _6; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *put, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_0, _1, *_3, *_4 = NULL, *_5; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *put, *_0, _1; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58646,63 +60983,17 @@ static PHP_METHOD(Phalcon_Http_Request, getPut) { ZEPHIR_CALL_FUNCTION(NULL, "parse_str", &_2, _0, put); Z_UNSET_ISREF_P(put); zephir_check_call_status(); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, put, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _3 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _3); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 200); - return; - } - ZEPHIR_INIT_VAR(_5); - ZVAL_STRING(_5, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_4, dependencyInjector, "getshared", NULL, _5); - zephir_check_temp_parameter(_5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _4); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_4, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _4); - _6 = ZEPHIR_IS_EMPTY(value); - if (_6) { - _6 = notAllowEmpty == 1; - } - if (_6) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _6 = ZEPHIR_IS_EMPTY(value); - if (_6) { - _6 = notAllowEmpty == 1; - } - if (_6) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } - } - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(put); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, put, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); } static PHP_METHOD(Phalcon_Http_Request, getQuery) { int ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _3; - zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *get = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_GET, *_0, *_1 = NULL, *_2; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *_GET; zval *name = NULL; ZEPHIR_MM_GROW(); @@ -58743,56 +61034,97 @@ static PHP_METHOD(Phalcon_Http_Request, getQuery) { zephir_get_global(&_GET, SS("_GET") TSRMLS_CC); - ZEPHIR_CPY_WRT(get, _GET); - if (!ZEPHIR_IS_STRING_IDENTICAL(name, "")) { - ZEPHIR_OBS_VAR(value); - if (zephir_array_isset_fetch(&value, get, name, 0 TSRMLS_CC)) { - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_OBS_VAR(filter); - zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); - if (Z_TYPE_P(filter) != IS_OBJECT) { - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(dependencyInjector, _0); - if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 254); - return; - } - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); - zephir_check_temp_parameter(_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(filter, _1); - zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); - } - ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, _1); - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); - } else { - _3 = ZEPHIR_IS_EMPTY(value); - if (_3) { - _3 = notAllowEmpty == 1; - } - if (_3) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CCTOR(value); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, _GET, name, filters, defaultValue, (notAllowEmpty ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false)), (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + RETURN_MM(); + +} + +static PHP_METHOD(Phalcon_Http_Request, getHelper) { + + int ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive, _3; + zval *name = NULL; + zval *source_param = NULL, *name_param = NULL, *filters = NULL, *defaultValue = NULL, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, *value = NULL, *filter = NULL, *dependencyInjector = NULL, *_0, *_1 = NULL, *_2; + zval *source = NULL; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 5, &source_param, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + + zephir_get_arrval(source, source_param); + if (!name_param) { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } else { + if (unlikely(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + + if (likely(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(name, name_param); + } else { + ZEPHIR_INIT_VAR(name); + ZVAL_EMPTY_STRING(name); + } + } + if (!filters) { + filters = ZEPHIR_GLOBAL(global_null); + } + if (!defaultValue) { + defaultValue = ZEPHIR_GLOBAL(global_null); + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } + + + if (ZEPHIR_IS_STRING_IDENTICAL(name, "")) { + RETURN_CTOR(source); + } + ZEPHIR_OBS_VAR(value); + if (!(zephir_array_isset_fetch(&value, source, name, 0 TSRMLS_CC))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + if (Z_TYPE_P(filters) != IS_NULL) { + ZEPHIR_OBS_VAR(filter); + zephir_read_property_this(&filter, this_ptr, SL("_filter"), PH_NOISY_CC); + if (Z_TYPE_P(filter) != IS_OBJECT) { + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(dependencyInjector, _0); + if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "A dependency injection object is required to access the 'filter' service", "phalcon/http/request.zep", 168); + return; } + ZEPHIR_INIT_VAR(_2); + ZVAL_STRING(_2, "filter", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(&_1, dependencyInjector, "getshared", NULL, _2); + zephir_check_temp_parameter(_2); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(filter, _1); + zephir_update_property_this(this_ptr, SL("_filter"), filter TSRMLS_CC); } + ZEPHIR_CALL_METHOD(&_1, filter, "sanitize", NULL, value, filters, (noRecursive ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(value, _1); + } + _3 = ZEPHIR_IS_EMPTY(value); + if (_3) { + _3 = notAllowEmpty == 1; + } + if (_3) { RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); } - RETURN_CCTOR(get); + RETURN_CCTOR(value); } @@ -59011,7 +61343,7 @@ static PHP_METHOD(Phalcon_Http_Request, isAjax) { zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); _0 = zephir_array_isset_string(_SERVER, SS("HTTP_X_REQUESTED_WITH")); if (_0) { - zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_REQUESTED_WITH"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 372 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_REQUESTED_WITH"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 274 TSRMLS_CC); _0 = ZEPHIR_IS_STRING_IDENTICAL(_1, "XMLHttpRequest"); } RETURN_BOOL(_0); @@ -59032,7 +61364,7 @@ static PHP_METHOD(Phalcon_Http_Request, isSoapRequested) { ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL); zephir_check_call_status(); if (!(ZEPHIR_IS_EMPTY(contentType))) { - RETURN_MM_BOOL(zephir_memnstr_str(contentType, SL("application/soap+xml"), "phalcon/http/request.zep", 387)); + RETURN_MM_BOOL(zephir_memnstr_str(contentType, SL("application/soap+xml"), "phalcon/http/request.zep", 289)); } } RETURN_MM_BOOL(0); @@ -59226,10 +61558,10 @@ static PHP_METHOD(Phalcon_Http_Request, getClientAddress) { zephir_array_isset_string_fetch(&address, _SERVER, SS("REMOTE_ADDR"), 0 TSRMLS_CC); } if (Z_TYPE_P(address) == IS_STRING) { - if (zephir_memnstr_str(address, SL(","), "phalcon/http/request.zep", 547)) { + if (zephir_memnstr_str(address, SL(","), "phalcon/http/request.zep", 449)) { ZEPHIR_INIT_VAR(_0); zephir_fast_explode_str(_0, SL(","), address, LONG_MAX TSRMLS_CC); - zephir_array_fetch_long(&_1, _0, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 551 TSRMLS_CC); + zephir_array_fetch_long(&_1, _0, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 453 TSRMLS_CC); RETURN_CTOR(_1); } RETURN_CCTOR(address); @@ -59283,7 +61615,7 @@ static PHP_METHOD(Phalcon_Http_Request, isMethod) { RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(methods, httpMethod)); } else { if (Z_TYPE_P(methods) == IS_ARRAY) { - zephir_is_iterable(methods, &_2, &_1, 0, 0, "phalcon/http/request.zep", 603); + zephir_is_iterable(methods, &_2, &_1, 0, 0, "phalcon/http/request.zep", 505); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -59421,7 +61753,7 @@ static PHP_METHOD(Phalcon_Http_Request, hasFiles) { if (Z_TYPE_P(files) != IS_ARRAY) { RETURN_MM_LONG(0); } - zephir_is_iterable(files, &_1, &_0, 0, 0, "phalcon/http/request.zep", 693); + zephir_is_iterable(files, &_1, &_0, 0, 0, "phalcon/http/request.zep", 595); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59467,7 +61799,7 @@ static PHP_METHOD(Phalcon_Http_Request, hasFileHelper) { if (Z_TYPE_P(data) != IS_ARRAY) { RETURN_MM_LONG(1); } - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/http/request.zep", 720); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/http/request.zep", 622); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59499,16 +61831,16 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { HashTable *_1, *_11; HashPosition _0, _10; zval *files; - zval *notErrored_param = NULL, *superFiles = NULL, *prefix = NULL, *input = NULL, *smoothInput = NULL, *file = NULL, *dataFile = NULL, *_FILES, **_2, *_3 = NULL, *_4, *_5, *_6, *_7, *_8, **_12, *_14, *_15 = NULL, *_16 = NULL, *_17; - zend_bool notErrored, _13; + zval *onlySuccessful_param = NULL, *superFiles = NULL, *prefix = NULL, *input = NULL, *smoothInput = NULL, *file = NULL, *dataFile = NULL, *_FILES, **_2, *_3 = NULL, *_4, *_5, *_6, *_7, *_8, **_12, *_14, *_15 = NULL, *_16 = NULL, *_17; + zend_bool onlySuccessful, _13; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¬Errored_param); + zephir_fetch_params(1, 0, 1, &onlySuccessful_param); - if (!notErrored_param) { - notErrored = 0; + if (!onlySuccessful_param) { + onlySuccessful = 0; } else { - notErrored = zephir_get_boolval(notErrored_param); + onlySuccessful = zephir_get_boolval(onlySuccessful_param); } ZEPHIR_INIT_VAR(files); array_init(files); @@ -59517,7 +61849,7 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { zephir_get_global(&_FILES, SS("_FILES") TSRMLS_CC); ZEPHIR_CPY_WRT(superFiles, _FILES); if (zephir_fast_count_int(superFiles TSRMLS_CC) > 0) { - zephir_is_iterable(superFiles, &_1, &_0, 0, 0, "phalcon/http/request.zep", 758); + zephir_is_iterable(superFiles, &_1, &_0, 0, 0, "phalcon/http/request.zep", 660); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59525,56 +61857,56 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { ZEPHIR_GET_HMKEY(prefix, _1, _0); ZEPHIR_GET_HVALUE(input, _2); ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, input, SL("name"), PH_NOISY, "phalcon/http/request.zep", 736 TSRMLS_CC); + zephir_array_fetch_string(&_3, input, SL("name"), PH_NOISY, "phalcon/http/request.zep", 638 TSRMLS_CC); if (Z_TYPE_P(_3) == IS_ARRAY) { - zephir_array_fetch_string(&_4, input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_5, input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_6, input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_7, input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); - zephir_array_fetch_string(&_8, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 737 TSRMLS_CC); + zephir_array_fetch_string(&_4, input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_5, input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_6, input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_7, input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); + zephir_array_fetch_string(&_8, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 639 TSRMLS_CC); ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_9, _4, _5, _6, _7, _8, prefix); zephir_check_call_status(); - zephir_is_iterable(smoothInput, &_11, &_10, 0, 0, "phalcon/http/request.zep", 752); + zephir_is_iterable(smoothInput, &_11, &_10, 0, 0, "phalcon/http/request.zep", 654); for ( ; zephir_hash_get_current_data_ex(_11, (void**) &_12, &_10) == SUCCESS ; zephir_hash_move_forward_ex(_11, &_10) ) { ZEPHIR_GET_HVALUE(file, _12); - _13 = notErrored == 0; + _13 = onlySuccessful == 0; if (!(_13)) { - zephir_array_fetch_string(&_14, file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 740 TSRMLS_CC); + zephir_array_fetch_string(&_14, file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 642 TSRMLS_CC); _13 = ZEPHIR_IS_LONG(_14, 0); } if (_13) { ZEPHIR_INIT_NVAR(dataFile); zephir_create_array(dataFile, 5, 0 TSRMLS_CC); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("name"), PH_NOISY, "phalcon/http/request.zep", 742 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("name"), PH_NOISY, "phalcon/http/request.zep", 644 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("name"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("type"), PH_NOISY, "phalcon/http/request.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("type"), PH_NOISY, "phalcon/http/request.zep", 645 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("type"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("tmp_name"), PH_NOISY, "phalcon/http/request.zep", 744 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("tmp_name"), PH_NOISY, "phalcon/http/request.zep", 646 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("tmp_name"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("size"), PH_NOISY, "phalcon/http/request.zep", 745 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("size"), PH_NOISY, "phalcon/http/request.zep", 647 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("size"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_15); - zephir_array_fetch_string(&_15, file, SL("error"), PH_NOISY, "phalcon/http/request.zep", 747 TSRMLS_CC); + zephir_array_fetch_string(&_15, file, SL("error"), PH_NOISY, "phalcon/http/request.zep", 649 TSRMLS_CC); zephir_array_update_string(&dataFile, SL("error"), &_15, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(_16); object_init_ex(_16, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_17, file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 749 TSRMLS_CC); + zephir_array_fetch_string(&_17, file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 651 TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, _16, "__construct", &_18, dataFile, _17); zephir_check_call_status(); - zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 749); + zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 651); } } } else { - _13 = notErrored == 0; + _13 = onlySuccessful == 0; if (!(_13)) { - zephir_array_fetch_string(&_4, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 753 TSRMLS_CC); + zephir_array_fetch_string(&_4, input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 655 TSRMLS_CC); _13 = ZEPHIR_IS_LONG(_4, 0); } if (_13) { @@ -59582,7 +61914,7 @@ static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { object_init_ex(_16, phalcon_http_request_file_ce); ZEPHIR_CALL_METHOD(NULL, _16, "__construct", &_18, input, prefix); zephir_check_call_status(); - zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 754); + zephir_array_append(&files, _16, PH_SEPARATE, "phalcon/http/request.zep", 656); } } } @@ -59619,7 +61951,7 @@ static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { ZEPHIR_INIT_VAR(files); array_init(files); - zephir_is_iterable(names, &_1, &_0, 0, 0, "phalcon/http/request.zep", 796); + zephir_is_iterable(names, &_1, &_0, 0, 0, "phalcon/http/request.zep", 698); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59633,35 +61965,35 @@ static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { zephir_create_array(_3, 6, 0 TSRMLS_CC); zephir_array_update_string(&_3, SL("name"), &name, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, types, idx, PH_NOISY, "phalcon/http/request.zep", 779 TSRMLS_CC); + zephir_array_fetch(&_4, types, idx, PH_NOISY, "phalcon/http/request.zep", 681 TSRMLS_CC); zephir_array_update_string(&_3, SL("type"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, tmp_names, idx, PH_NOISY, "phalcon/http/request.zep", 780 TSRMLS_CC); + zephir_array_fetch(&_4, tmp_names, idx, PH_NOISY, "phalcon/http/request.zep", 682 TSRMLS_CC); zephir_array_update_string(&_3, SL("tmp_name"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, sizes, idx, PH_NOISY, "phalcon/http/request.zep", 781 TSRMLS_CC); + zephir_array_fetch(&_4, sizes, idx, PH_NOISY, "phalcon/http/request.zep", 683 TSRMLS_CC); zephir_array_update_string(&_3, SL("size"), &_4, PH_COPY | PH_SEPARATE); ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch(&_4, errors, idx, PH_NOISY, "phalcon/http/request.zep", 782 TSRMLS_CC); + zephir_array_fetch(&_4, errors, idx, PH_NOISY, "phalcon/http/request.zep", 684 TSRMLS_CC); zephir_array_update_string(&_3, SL("error"), &_4, PH_COPY | PH_SEPARATE); zephir_array_update_string(&_3, SL("key"), &p, PH_COPY | PH_SEPARATE); - zephir_array_append(&files, _3, PH_SEPARATE, "phalcon/http/request.zep", 784); + zephir_array_append(&files, _3, PH_SEPARATE, "phalcon/http/request.zep", 686); } if (Z_TYPE_P(name) == IS_ARRAY) { - zephir_array_fetch(&_5, names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_6, types, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_7, tmp_names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_8, sizes, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); - zephir_array_fetch(&_9, errors, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 788 TSRMLS_CC); + zephir_array_fetch(&_5, names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_6, types, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_7, tmp_names, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_8, sizes, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); + zephir_array_fetch(&_9, errors, idx, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 690 TSRMLS_CC); ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_10, _5, _6, _7, _8, _9, p); zephir_check_call_status(); - zephir_is_iterable(parentFiles, &_12, &_11, 0, 0, "phalcon/http/request.zep", 793); + zephir_is_iterable(parentFiles, &_12, &_11, 0, 0, "phalcon/http/request.zep", 695); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) ) { ZEPHIR_GET_HVALUE(file, _13); - zephir_array_append(&files, file, PH_SEPARATE, "phalcon/http/request.zep", 791); + zephir_array_append(&files, file, PH_SEPARATE, "phalcon/http/request.zep", 693); } } } @@ -59687,7 +62019,7 @@ static PHP_METHOD(Phalcon_Http_Request, getHeaders) { zephir_array_update_string(&contentHeaders, SL("CONTENT_TYPE"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); zephir_array_update_string(&contentHeaders, SL("CONTENT_LENGTH"), &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); - zephir_is_iterable(_SERVER, &_1, &_0, 0, 0, "phalcon/http/request.zep", 822); + zephir_is_iterable(_SERVER, &_1, &_0, 0, 0, "phalcon/http/request.zep", 724); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59803,7 +62135,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { ZVAL_LONG(&_3, 1); ZEPHIR_CALL_FUNCTION(&_4, "preg_split", &_5, &_1, _0, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(_4, &_7, &_6, 0, 0, "phalcon/http/request.zep", 865); + zephir_is_iterable(_4, &_7, &_6, 0, 0, "phalcon/http/request.zep", 767); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -59821,7 +62153,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { ZVAL_LONG(&_3, 1); ZEPHIR_CALL_FUNCTION(&_10, "preg_split", &_5, &_1, _9, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/http/request.zep", 862); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/http/request.zep", 764); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -59834,17 +62166,17 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { if (!ZEPHIR_IS_FALSE_IDENTICAL(_14)) { ZEPHIR_INIT_NVAR(split); zephir_fast_explode_str(split, SL("="), headerPart, 2 TSRMLS_CC); - zephir_array_fetch_long(&_15, split, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 851 TSRMLS_CC); + zephir_array_fetch_long(&_15, split, 0, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 753 TSRMLS_CC); if (ZEPHIR_IS_STRING_IDENTICAL(_15, "q")) { ZEPHIR_OBS_NVAR(_16); - zephir_array_fetch_long(&_16, split, 1, PH_NOISY, "phalcon/http/request.zep", 852 TSRMLS_CC); + zephir_array_fetch_long(&_16, split, 1, PH_NOISY, "phalcon/http/request.zep", 754 TSRMLS_CC); ZEPHIR_INIT_NVAR(_17); ZVAL_DOUBLE(_17, zephir_get_doubleval(_16)); zephir_array_update_string(&headerParts, SL("quality"), &_17, PH_COPY | PH_SEPARATE); } else { - zephir_array_fetch_long(&_18, split, 1, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 854 TSRMLS_CC); + zephir_array_fetch_long(&_18, split, 1, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 756 TSRMLS_CC); ZEPHIR_OBS_NVAR(_16); - zephir_array_fetch_long(&_16, split, 0, PH_NOISY, "phalcon/http/request.zep", 854 TSRMLS_CC); + zephir_array_fetch_long(&_16, split, 0, PH_NOISY, "phalcon/http/request.zep", 756 TSRMLS_CC); zephir_array_update_zval(&headerParts, _16, &_18, PH_COPY | PH_SEPARATE); } } else { @@ -59854,7 +62186,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getQualityHeader) { zephir_array_update_string(&headerParts, SL("quality"), &_17, PH_COPY | PH_SEPARATE); } } - zephir_array_append(&returnedParts, headerParts, PH_SEPARATE, "phalcon/http/request.zep", 862); + zephir_array_append(&returnedParts, headerParts, PH_SEPARATE, "phalcon/http/request.zep", 764); } RETURN_CCTOR(returnedParts); @@ -59891,7 +62223,7 @@ static PHP_METHOD(Phalcon_Http_Request, _getBestQuality) { quality = 0.0; ZEPHIR_INIT_VAR(selectedName); ZVAL_STRING(selectedName, "", 1); - zephir_is_iterable(qualityParts, &_1, &_0, 0, 0, "phalcon/http/request.zep", 894); + zephir_is_iterable(qualityParts, &_1, &_0, 0, 0, "phalcon/http/request.zep", 796); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -59899,18 +62231,18 @@ static PHP_METHOD(Phalcon_Http_Request, _getBestQuality) { ZEPHIR_GET_HVALUE(accept, _2); if (i == 0) { ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 883 TSRMLS_CC); + zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 785 TSRMLS_CC); quality = zephir_get_doubleval(_3); ZEPHIR_OBS_NVAR(selectedName); - zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 884 TSRMLS_CC); + zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 786 TSRMLS_CC); } else { ZEPHIR_OBS_NVAR(_3); - zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 886 TSRMLS_CC); + zephir_array_fetch_string(&_3, accept, SL("quality"), PH_NOISY, "phalcon/http/request.zep", 788 TSRMLS_CC); acceptQuality = zephir_get_doubleval(_3); if (acceptQuality > quality) { quality = acceptQuality; ZEPHIR_OBS_NVAR(selectedName); - zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 889 TSRMLS_CC); + zephir_array_fetch(&selectedName, accept, name, PH_NOISY, "phalcon/http/request.zep", 791 TSRMLS_CC); } } i++; @@ -60065,9 +62397,9 @@ static PHP_METHOD(Phalcon_Http_Request, getBasicAuth) { if (_0) { ZEPHIR_INIT_VAR(auth); array_init(auth); - zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 977 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 878 TSRMLS_CC); zephir_array_update_string(&auth, SL("username"), &_1, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 978 TSRMLS_CC); + zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 879 TSRMLS_CC); zephir_array_update_string(&auth, SL("password"), &_2, PH_COPY | PH_SEPARATE); RETURN_CCTOR(auth); } @@ -60106,15 +62438,15 @@ static PHP_METHOD(Phalcon_Http_Request, getDigestAuth) { RETURN_CTOR(auth); } if (Z_TYPE_P(matches) == IS_ARRAY) { - zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 1003); + zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 904); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(match, _6); - zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 1001 TSRMLS_CC); + zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 902 TSRMLS_CC); ZEPHIR_OBS_NVAR(_8); - zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 1001 TSRMLS_CC); + zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 902 TSRMLS_CC); zephir_array_update_zval(&auth, _8, &_7, PH_COPY | PH_SEPARATE); } } @@ -60716,20 +63048,22 @@ static PHP_METHOD(Phalcon_Http_Response, setEtag) { static PHP_METHOD(Phalcon_Http_Response, redirect) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zend_bool _0; int statusCode, ZEPHIR_LAST_CALL_STATUS; - zval *location = NULL, *externalRedirect = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; + zend_bool externalRedirect, _0; + zval *location = NULL, *externalRedirect_param = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &location, &externalRedirect, &statusCode_param); + zephir_fetch_params(1, 0, 3, &location, &externalRedirect_param, &statusCode_param); if (!location) { ZEPHIR_CPY_WRT(location, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(location); } - if (!externalRedirect) { - externalRedirect = ZEPHIR_GLOBAL(global_false); + if (!externalRedirect_param) { + externalRedirect = 0; + } else { + externalRedirect = zephir_get_boolval(externalRedirect_param); } if (!statusCode_param) { statusCode = 302; @@ -60742,7 +63076,7 @@ static PHP_METHOD(Phalcon_Http_Response, redirect) { ZEPHIR_INIT_NVAR(location); ZVAL_STRING(location, "", 1); } - if (zephir_is_true(externalRedirect)) { + if (externalRedirect) { ZEPHIR_CPY_WRT(header, location); } else { _0 = Z_TYPE_P(location) == IS_STRING; @@ -61921,10 +64255,13 @@ static PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *data, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data_param = NULL, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; @@ -61936,7 +64273,7 @@ static PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { } ZEPHIR_OBS_VAR(dataHeaders); if (zephir_array_isset_string_fetch(&dataHeaders, data, SS("_headers"), 0 TSRMLS_CC)) { - zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 135); + zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 130); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -69178,8 +71515,8 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _getResultset) { static PHP_METHOD(Phalcon_Mvc_Collection, _getGroupResultset) { + zend_bool _0, _1; int ZEPHIR_LAST_CALL_STATUS; - zend_bool simple; zval *params, *collection, *connection, *source = NULL, *mongoCollection = NULL, *conditions = NULL, *limit, *sort = NULL, *documentsCursor = NULL; ZEPHIR_MM_GROW(); @@ -69203,19 +71540,15 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _getGroupResultset) { array_init(conditions); } } - simple = 1; - if (zephir_array_isset_string(params, SS("limit"))) { - simple = 0; - } else { - if (zephir_array_isset_string(params, SS("sort"))) { - simple = 0; - } else { - if (zephir_array_isset_string(params, SS("skip"))) { - simple = 0; - } - } + _0 = zephir_array_isset_string(params, SS("limit")); + if (!(_0)) { + _0 = zephir_array_isset_string(params, SS("sort")); + } + _1 = _0; + if (!(_1)) { + _1 = zephir_array_isset_string(params, SS("skip")); } - if (simple == 0) { + if (_1) { ZEPHIR_CALL_METHOD(&documentsCursor, mongoCollection, "find", NULL, conditions); zephir_check_call_status(); ZEPHIR_OBS_VAR(limit); @@ -69245,14 +71578,17 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *dependencyInjector, *disableEvents, *exists, *eventName = NULL, *_0 = NULL, *_1 = NULL, *_3 = NULL, *_4 = NULL, *_5 = NULL; + zend_bool disableEvents, exists; + zval *dependencyInjector, *disableEvents_param = NULL, *exists_param = NULL, *eventName = NULL, *_0 = NULL, *_1 = NULL, *_3 = NULL, *_4 = NULL, *_5 = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &dependencyInjector, &disableEvents, &exists); + zephir_fetch_params(1, 3, 0, &dependencyInjector, &disableEvents_param, &exists_param); + disableEvents = zephir_get_boolval(disableEvents_param); + exists = zephir_get_boolval(exists_param); - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_VAR(_1); ZVAL_STRING(_1, "beforeValidation", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fireeventcancel", &_2, _1); @@ -69262,7 +71598,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_VAR(eventName); - if (!(zephir_is_true(exists))) { + if (!(exists)) { ZVAL_STRING(eventName, "beforeValidationOnCreate", 1); } else { ZVAL_STRING(eventName, "beforeValidationOnUpdate", 1); @@ -69279,7 +71615,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { zephir_check_temp_parameter(_1); zephir_check_call_status(); if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_NVAR(_1); ZVAL_STRING(_1, "onValidationFails", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, _1); @@ -69288,9 +71624,9 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { } RETURN_MM_BOOL(0); } - if (!(zephir_is_true(disableEvents))) { + if (!(disableEvents)) { ZEPHIR_INIT_NVAR(eventName); - if (!(zephir_is_true(exists))) { + if (!(exists)) { ZVAL_STRING(eventName, "afterValidationOnCreate", 1); } else { ZVAL_STRING(eventName, "afterValidationOnUpdate", 1); @@ -69317,7 +71653,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, _preSave) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_NVAR(eventName); - if (zephir_is_true(exists)) { + if (exists) { ZVAL_STRING(eventName, "beforeUpdate", 1); } else { ZVAL_STRING(eventName, "beforeCreate", 1); @@ -69395,7 +71731,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 658); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 645); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -69598,13 +71934,13 @@ static PHP_METHOD(Phalcon_Mvc_Collection, save) { ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/collection.zep", 849); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/collection.zep", 836); return; } ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 854); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 841); return; } ZEPHIR_CALL_METHOD(&connection, this_ptr, "getconnection", NULL); @@ -69638,7 +71974,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, save) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&properties, "get_object_vars", &_4, this_ptr); zephir_check_call_status(); - zephir_is_iterable(properties, &_6, &_5, 0, 0, "phalcon/mvc/collection.zep", 909); + zephir_is_iterable(properties, &_6, &_5, 0, 0, "phalcon/mvc/collection.zep", 896); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -69737,22 +72073,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, findFirst) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *connection = NULL, *_0 = NULL, *_2; + zval *parameters_param = NULL, *className, *collection, *connection = NULL, *_0 = NULL, *_2; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for findFirst", "phalcon/mvc/collection.zep", 1002); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69777,22 +72111,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, find) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *_0 = NULL, *_2 = NULL, *_3; + zval *parameters_param = NULL, *className, *collection, *_0 = NULL, *_2 = NULL, *_3; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for find", "phalcon/mvc/collection.zep", 1059); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69817,22 +72149,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, count) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters = NULL, *className, *collection, *connection = NULL, *_0 = NULL; + zval *parameters_param = NULL, *className, *collection, *connection = NULL, *_0 = NULL; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters) { - parameters = ZEPHIR_GLOBAL(global_null); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for count", "phalcon/mvc/collection.zep", 1084); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(collection); @@ -69855,19 +72185,20 @@ static PHP_METHOD(Phalcon_Mvc_Collection, aggregate) { int ZEPHIR_LAST_CALL_STATUS; zend_class_entry *_1; - zval *parameters, *className, *model, *connection = NULL, *source = NULL, *_0 = NULL, *_2 = NULL; + zval *parameters_param = NULL, *className, *model, *connection = NULL, *source = NULL, *_0 = NULL, *_2 = NULL; + zval *parameters = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ¶meters); + zephir_fetch_params(1, 0, 1, ¶meters_param); + if (!parameters_param) { + ZEPHIR_INIT_VAR(parameters); + array_init(parameters); + } else { + zephir_get_arrval(parameters, parameters_param); + } - if (zephir_is_true(parameters)) { - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Invalid parameters for aggregate", "phalcon/mvc/collection.zep", 1109); - return; - } - } ZEPHIR_INIT_VAR(className); zephir_get_called_class(className TSRMLS_CC); ZEPHIR_INIT_VAR(model); @@ -69883,7 +72214,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, aggregate) { ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1121); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1072); return; } ZEPHIR_CALL_METHOD(&_2, connection, "selectcollection", NULL, source); @@ -69938,7 +72269,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, summatory) { ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1148); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1099); return; } ZEPHIR_CALL_METHOD(&collection, connection, "selectcollection", NULL, source); @@ -69958,7 +72289,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, summatory) { if (zephir_array_isset_string_fetch(&retval, group, SS("retval"), 1 TSRMLS_CC)) { if (zephir_array_isset_long_fetch(&firstRetval, retval, 0, 1 TSRMLS_CC)) { if (zephir_array_isset_string(firstRetval, SS("summatory"))) { - zephir_array_fetch_string(&_3, firstRetval, SL("summatory"), PH_NOISY | PH_READONLY, "phalcon/mvc/collection.zep", 1172 TSRMLS_CC); + zephir_array_fetch_string(&_3, firstRetval, SL("summatory"), PH_NOISY | PH_READONLY, "phalcon/mvc/collection.zep", 1123 TSRMLS_CC); RETURN_CTOR(_3); } RETURN_CTOR(firstRetval); @@ -69980,7 +72311,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, delete) { ZEPHIR_OBS_VAR(id); if (!(zephir_fetch_property(&id, this_ptr, SL("_id"), PH_SILENT_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The document cannot be deleted because it doesn't exist", "phalcon/mvc/collection.zep", 1199); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The document cannot be deleted because it doesn't exist", "phalcon/mvc/collection.zep", 1150); return; } ZEPHIR_OBS_VAR(disableEvents); @@ -70000,7 +72331,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, delete) { ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EMPTY(source)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1214); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "Method getSource() returns empty string", "phalcon/mvc/collection.zep", 1165); return; } ZEPHIR_CALL_METHOD(&collection, connection, "selectcollection", NULL, source); @@ -70067,7 +72398,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, toArray) { array_init(data); ZEPHIR_CALL_FUNCTION(&_0, "get_object_vars", &_1, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 1292); + zephir_is_iterable(_0, &_3, &_2, 0, 0, "phalcon/mvc/collection.zep", 1243); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -70135,7 +72466,7 @@ static PHP_METHOD(Phalcon_Mvc_Collection, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ODM", "phalcon/mvc/collection.zep", 1323); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "A dependency injector container is required to obtain the services related to the ODM", "phalcon/mvc/collection.zep", 1272); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -70145,11 +72476,11 @@ static PHP_METHOD(Phalcon_Mvc_Collection, unserialize) { zephir_check_temp_parameter(_2); zephir_check_call_status(); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The injected service 'collectionManager' is not valid", "phalcon/mvc/collection.zep", 1336); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_collection_exception_ce, "The injected service 'collectionManager' is not valid", "phalcon/mvc/collection.zep", 1285); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); - zephir_is_iterable(attributes, &_4, &_3, 0, 0, "phalcon/mvc/collection.zep", 1350); + zephir_is_iterable(attributes, &_4, &_3, 0, 0, "phalcon/mvc/collection.zep", 1299); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -72510,7 +74841,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, findFirst) { zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *_1, *_3 = NULL; + zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *resultset = NULL, *hydration, *_1, *_3 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, ¶meters); @@ -72561,9 +74892,16 @@ static PHP_METHOD(Phalcon_Mvc_Model, findFirst) { ZVAL_BOOL(_3, 1); ZEPHIR_CALL_METHOD(NULL, query, "setuniquerow", NULL, _3); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(query, "execute", NULL, bindParams, bindTypes); + ZEPHIR_CALL_METHOD(&resultset, query, "execute", NULL, bindParams, bindTypes); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(resultset) == IS_OBJECT) { + ZEPHIR_OBS_VAR(hydration); + if (zephir_array_isset_string_fetch(&hydration, params, SS("hydration"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, resultset, "sethydratemode", NULL, hydration); + zephir_check_call_status(); + } + } + RETURN_CCTOR(resultset); } @@ -72660,7 +74998,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { array_init(uniqueParams); ZEPHIR_INIT_NVAR(uniqueTypes); array_init(uniqueTypes); - zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 939); + zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 950); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -72675,7 +75013,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 903 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 914 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -72693,9 +75031,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { if (_6) { numberEmpty++; } - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 921); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 932); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 924); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 935); numberEmpty++; } ZEPHIR_OBS_NVAR(type); @@ -72706,16 +75044,16 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 929 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 940 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 932); + zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 943); ZEPHIR_CALL_METHOD(&_7, connection, "escapeidentifier", &_8, field); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_9); ZEPHIR_CONCAT_VS(_9, _7, " = ?"); - zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 933); + zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 944); } if (numberPrimary == numberEmpty) { RETURN_MM_BOOL(0); @@ -72763,7 +75101,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZVAL_NULL(_3); ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, _9, _3, uniqueParams, uniqueTypes); zephir_check_call_status(); - zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 989 TSRMLS_CC); + zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1000 TSRMLS_CC); if (zephir_is_true(_11)) { ZEPHIR_INIT_ZVAL_NREF(_12); ZVAL_LONG(_12, 0); @@ -72816,7 +75154,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _groupResult) { ZEPHIR_INIT_VAR(params); array_init(params); if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1016); + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1027); } } else { ZEPHIR_CPY_WRT(params, parameters); @@ -73131,7 +75469,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1311); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1322); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -73183,7 +75521,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_INIT_VAR(filtered); array_init(filtered); _1 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1378); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1389); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -73192,7 +75530,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_CALL_METHOD(&_5, message, "getfield", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EQUAL(_5, filter)) { - zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1375); + zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1386); } } RETURN_CCTOR(filtered); @@ -73219,7 +75557,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(belongsTo TSRMLS_CC)) { error = 0; - zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1498); + zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1509); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73232,7 +75570,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1422 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1433 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73250,7 +75588,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL); zephir_check_call_status(); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1453); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1464); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -73259,23 +75597,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1450 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1461 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1450); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1451); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1461); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1462); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1455); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1456); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1466); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1467); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1463); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1474); } ZEPHIR_INIT_NVAR(_13); zephir_create_array(_13, 2, 0 TSRMLS_CC); @@ -73345,7 +75683,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_CALL_METHOD(&relations, manager, "gethasoneandhasmany", NULL, this_ptr); zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1612); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1623); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73358,7 +75696,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1551 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1562 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73376,7 +75714,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1579); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1590); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -73385,23 +75723,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1576 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1587 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1576); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1577); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1587); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1588); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1581); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1582); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1592); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1593); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1589); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1600); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -73442,7 +75780,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { error = 0; - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1729); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1740); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -73455,7 +75793,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1659 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1670 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -73473,7 +75811,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1689); + zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1700); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -73482,23 +75820,23 @@ static PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_GET_HVALUE(field, _8); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1686 TSRMLS_CC); + zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1697 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVSV(_10, "[", _9, "] = ?", position); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1686); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1687); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1697); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1698); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVS(_10, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1691); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1692); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1702); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1703); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1699); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1710); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -73618,7 +75956,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSave) { zephir_check_call_status(); } error = 0; - zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1879); + zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1890); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -73635,7 +75973,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSave) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1829 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1840 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73844,7 +76182,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2051); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2062); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -73860,7 +76198,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2015 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2026 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73868,7 +76206,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CPY_WRT(attributeField, field); } if (!ZEPHIR_IS_EQUAL(field, identityField)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2026); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2037); ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { ZEPHIR_OBS_NVAR(bindType); @@ -73879,15 +76217,15 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2037 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2048 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); } else { - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2042); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2042); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2053); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2053); } } } @@ -73899,7 +76237,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { zephir_check_call_status(); useExplicitIdentity = zephir_get_boolval(_6); if (useExplicitIdentity) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2060); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2071); } if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_OBS_NVAR(attributeField); @@ -73910,7 +76248,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2068 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -73925,12 +76263,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { } if (_7) { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); } } else { if (!(useExplicitIdentity)) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2089); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2100); } ZEPHIR_OBS_NVAR(bindType); if (!(zephir_array_isset_fetch(&bindType, bindDataTypes, identityField, 0 TSRMLS_CC))) { @@ -73940,17 +76278,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn\\'t part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2096 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); } } else { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); } } } @@ -74035,7 +76373,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2290); + zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2301); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -74050,7 +76388,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2194 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2205 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74063,7 +76401,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2202 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2213 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74073,9 +76411,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { if (!(useDynamicUpdate)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2219); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2230); } else { ZEPHIR_OBS_NVAR(snapshotValue); if (!(zephir_array_isset_fetch(&snapshotValue, snapshot, attributeField, 0 TSRMLS_CC))) { @@ -74117,15 +76455,15 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } } if (changed) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2277); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2288); } } } else { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); } } } @@ -74142,12 +76480,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, this_ptr); zephir_check_call_status(); if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2309); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2320); return; } ZEPHIR_INIT_NVAR(uniqueParams); array_init(uniqueParams); - zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2333); + zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2344); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -74162,7 +76500,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2320 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2331 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74171,9 +76509,9 @@ static PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2327); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2338); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2329); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2340); } } } @@ -74210,7 +76548,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2439); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2450); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -74227,7 +76565,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(record) != IS_OBJECT) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2388); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2399); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_7); @@ -74239,7 +76577,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2397); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2408); return; } ZEPHIR_CALL_METHOD(&_0, record, "save", NULL); @@ -74247,7 +76585,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (!(zephir_is_true(_0))) { ZEPHIR_CALL_METHOD(&_10, record, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2426); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2437); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -74294,7 +76632,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2628); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2639); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -74317,7 +76655,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (_6) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2489); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_8); @@ -74329,7 +76667,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2487); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2498); return; } if (Z_TYPE_P(record) == IS_OBJECT) { @@ -74349,7 +76687,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVS(_12, "The column '", columns, "' needs to be present in the model"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2501 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2512 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74364,7 +76702,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&intermediateReferencedFields, relation, "getintermediatereferencedfields", &_18); zephir_check_call_status(); } - zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2617); + zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2628); for ( ; zephir_hash_get_current_data_ex(_20, (void**) &_21, &_19) == SUCCESS ; zephir_hash_move_forward_ex(_20, &_19) @@ -74379,7 +76717,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_14))) { ZEPHIR_CALL_METHOD(&_22, recordAfter, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2559); + zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2570); for ( ; zephir_hash_get_current_data_ex(_24, (void**) &_25, &_23) == SUCCESS ; zephir_hash_move_forward_ex(_24, &_23) @@ -74412,7 +76750,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_22))) { ZEPHIR_CALL_METHOD(&_30, intermediateModel, "getmessages", &_31); zephir_check_call_status(); - zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2611); + zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2622); for ( ; zephir_hash_get_current_data_ex(_33, (void**) &_34, &_32) == SUCCESS ; zephir_hash_move_forward_ex(_33, &_32) @@ -74441,7 +76779,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVSVS(_12, "There are no defined relations for the model '", className, "' using alias '", name, "'"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2620 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2631 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74540,7 +76878,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, save) { _3 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_5, this_ptr, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2732 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2743 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74739,10 +77077,10 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZVAL_NULL(columnMap); } if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2925); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2936); return; } - zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2966); + zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2977); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -74756,7 +77094,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2937 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2948 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74769,7 +77107,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2945 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2956 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -74784,17 +77122,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Cannot delete the record because the primary key attribute: '", attributeField, "' wasn't set"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2955 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2966 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2961); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2972); ZEPHIR_CALL_METHOD(&_2, writeConnection, "escapeidentifier", &_9, primaryKey); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_VS(_7, _2, " = ?"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2962); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2963); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2973); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2974); } if (ZEPHIR_GLOBAL(orm).events) { zephir_update_property_this(this_ptr, SL("_skipped"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -74864,13 +77202,13 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { HashTable *_3; HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; - zval *metaData = NULL, *readConnection = NULL, *schema = NULL, *source = NULL, *table = NULL, *uniqueKey = NULL, *uniqueParams, *dialect = NULL, *row = NULL, *fields, *attribute = NULL, *_0, *_1 = NULL, **_4, *_6 = NULL, *_7, *_8; + zval *metaData = NULL, *readConnection = NULL, *schema = NULL, *source = NULL, *table = NULL, *uniqueKey = NULL, *tables = NULL, *uniqueParams, *dialect = NULL, *row = NULL, *fields, *attribute = NULL, *_0, *_1 = NULL, **_4, *_6, *_7; ZEPHIR_MM_GROW(); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3041); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3052); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -74895,7 +77233,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_CALL_METHOD(&_1, this_ptr, "_exists", NULL, metaData, readConnection, table); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3063); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3074); return; } ZEPHIR_OBS_NVAR(uniqueKey); @@ -74904,14 +77242,14 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_OBS_VAR(uniqueParams); zephir_read_property_this(&uniqueParams, this_ptr, SL("_uniqueParams"), PH_NOISY_CC); if (Z_TYPE_P(uniqueParams) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3071); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3082); return; } ZEPHIR_INIT_VAR(fields); array_init(fields); ZEPHIR_CALL_METHOD(&_1, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3085); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3096); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -74920,28 +77258,28 @@ static PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 1, 0 TSRMLS_CC); zephir_array_fast_append(_5, attribute); - zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3079); + zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3090); } ZEPHIR_CALL_METHOD(&dialect, readConnection, "getdialect", NULL); zephir_check_call_status(); ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 3, 0 TSRMLS_CC); zephir_array_update_string(&_5, SL("columns"), &fields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_6, readConnection, "escapeidentifier", NULL, table); + ZEPHIR_CALL_METHOD(&_1, readConnection, "escapeidentifier", NULL, table); zephir_check_call_status(); - zephir_array_update_string(&_5, SL("tables"), &_6, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5, SL("tables"), &_1, PH_COPY | PH_SEPARATE); zephir_array_update_string(&_5, SL("where"), &uniqueKey, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, dialect, "select", NULL, _5); + ZEPHIR_CALL_METHOD(&tables, dialect, "select", NULL, _5); zephir_check_call_status(); - _7 = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueTypes"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(_8); - ZVAL_LONG(_8, 1); - ZEPHIR_CALL_METHOD(&row, readConnection, "fetchone", NULL, _1, _8, uniqueParams, _7); + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueTypes"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(_7); + ZVAL_LONG(_7, 1); + ZEPHIR_CALL_METHOD(&row, readConnection, "fetchone", NULL, tables, _7, uniqueParams, _6); zephir_check_call_status(); if (Z_TYPE_P(row) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_6, metaData, "getcolumnmap", NULL, this_ptr); + ZEPHIR_CALL_METHOD(&_1, metaData, "getcolumnmap", NULL, this_ptr); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, row, _6); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, row, _1); zephir_check_call_status(); } RETURN_THIS(); @@ -75035,7 +77373,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributes) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3172); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3184); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75070,7 +77408,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3204); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3216); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75103,7 +77441,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3234); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3246); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75316,7 +77654,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_INIT_VAR(snapshot); array_init(snapshot); - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3457); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3469); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -75334,7 +77672,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { ZEPHIR_CONCAT_SVS(_4, "Column '", key, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3451 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3463 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75384,12 +77722,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3496); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3508); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3503); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3515); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -75411,7 +77749,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3535 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75423,7 +77761,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3539 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3551 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75436,7 +77774,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not defined on the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3559 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75448,14 +77786,14 @@ static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_4, "The field '", fieldName, "' was not found in the snapshot"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3554 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3566 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } RETURN_MM_BOOL(!ZEPHIR_IS_EQUAL(value, originalValue)); } ZEPHIR_INIT_NVAR(_1); - zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3590); + zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3602); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -75490,12 +77828,12 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3603); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3615); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3610); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3622); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -75511,7 +77849,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_INIT_VAR(changed); array_init(changed); ZEPHIR_INIT_VAR(_1); - zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3664); + zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3676); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -75519,17 +77857,17 @@ static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_GET_HMKEY(name, _3, _2); ZEPHIR_GET_HVALUE(_1, _4); if (!(zephir_array_isset(snapshot, name))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3642); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3654); continue; } ZEPHIR_OBS_NVAR(value); if (!(zephir_fetch_property_zval(&value, this_ptr, name, PH_SILENT_CC))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3650); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3662); continue; } - zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3657 TSRMLS_CC); + zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3669 TSRMLS_CC); if (!ZEPHIR_IS_EQUAL(value, _5)) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3658); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3670); continue; } } @@ -75587,7 +77925,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, getRelated) { ZEPHIR_CONCAT_SVSVS(_3, "There is no defined relations for the model '", className, "' using alias '", alias, "'"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3707 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3719 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75729,7 +78067,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __call) { ZEPHIR_CONCAT_SVSVS(_2, "The method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3799 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3811 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -75792,7 +78130,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVSVS(_2, "The static method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3850 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3862 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75804,7 +78142,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_4, "The static method '", method, "' requires one argument"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3854 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3866 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75841,7 +78179,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_2, "Cannot resolve attribute '", extraMethod, "' in the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3888 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3900 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -75900,7 +78238,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __set) { zephir_check_call_status(); ZEPHIR_INIT_VAR(related); array_init(related); - zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3952); + zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3964); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -75909,7 +78247,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, __set) { ZEPHIR_GET_HVALUE(item, _3); if (Z_TYPE_P(item) == IS_OBJECT) { if (zephir_instance_of_ev(item, phalcon_mvc_modelinterface_ce TSRMLS_CC)) { - zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3939); + zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3951); } } else { ZEPHIR_INIT_NVAR(lowerKey); @@ -76070,7 +78408,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, serialize) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4083); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4095); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -76085,7 +78423,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, serialize) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4067 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -76136,7 +78474,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4101); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4113); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -76147,13 +78485,13 @@ static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _2); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4114); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4126); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, manager, "initialize", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4133); + zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4145); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -76204,7 +78542,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, toArray) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4192); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4204); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -76219,7 +78557,7 @@ static PHP_METHOD(Phalcon_Mvc_Model, toArray) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4173 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4185 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -77891,7 +80229,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { if (Z_TYPE_P(uri) == IS_ARRAY) { ZEPHIR_OBS_VAR(routeName); if (!(zephir_array_isset_string_fetch(&routeName, uri, SS("for"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 201); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 202); return; } _5 = zephir_fetch_nproperty_this(this_ptr, SL("_router"), PH_NOISY_CC); @@ -77900,7 +80238,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { _5 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); ZEPHIR_CPY_WRT(dependencyInjector, _5); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 213); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 214); return; } ZEPHIR_INIT_VAR(_6); @@ -77921,7 +80259,7 @@ static PHP_METHOD(Phalcon_Mvc_Url, get) { ZEPHIR_CONCAT_SVS(_7, "Cannot obtain a route using the name '", routeName, "'"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/url.zep", 225 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/url.zep", 226 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -89843,7 +92181,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { zend_declare_property_bool(phalcon_mvc_model_resultset_ce, SL("_isFresh"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_pointer"), -1, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_pointer"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_count"), ZEND_ACC_PROTECTED TSRMLS_CC); @@ -89851,6 +92189,8 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_rows"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_row"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("_errorMessages"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("_hydrateMode"), 0, ZEND_ACC_PROTECTED TSRMLS_CC); @@ -89877,70 +92217,75 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next) { + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, _1; + + ZEPHIR_MM_GROW(); + + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(_0) + 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_2, &_1); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid) { + + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, *_1 = NULL; + + ZEPHIR_MM_GROW(); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "count", &_2); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_LT(_0, _1)); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key) { + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + int ZEPHIR_LAST_CALL_STATUS; + zval *_0, *_1 = NULL; + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(this_ptr, "_pointer"); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "count", &_2); + zephir_check_call_status(); + if (ZEPHIR_GE(_0, _1)) { + RETURN_MM_NULL(); + } + RETURN_MM_MEMBER(this_ptr, "_pointer"); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *rows = NULL, *result = NULL, *_0, *_1, *_2; + zval _0; ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); - if (zephir_is_true(_0)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(_1) != IS_NULL) { - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, 0); - ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _2); - zephir_check_call_status(); - } - } - } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_NULL) { - ZEPHIR_OBS_NVAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), rows TSRMLS_CC); - } - } - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "reset", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 0); - zephir_update_property_this(this_ptr, SL("_pointer"), _1 TSRMLS_CC); + ZEPHIR_SINIT_VAR(_0); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_1, &_0); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { - zephir_nts_static zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - zval *position_param = NULL, *result = NULL, *rows = NULL, *_0, *_1, *_2, *_5; - int position, i, ZEPHIR_LAST_CALL_STATUS; + zend_bool _2, _5; + zval *position_param = NULL, *result, *_0, *_1, *_3, *_4, *_6, *_7, *_8 = NULL, *_9; + int position, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &position_param); @@ -89948,51 +92293,58 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { position = zephir_get_intval(position_param); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (!ZEPHIR_IS_LONG(_0, position)) { - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); - if (zephir_is_true(_1)) { + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); + if (zephir_is_true(_0)) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + _2 = Z_TYPE_P(_1) == IS_NULL; + if (!(_2)) { + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + _2 = !ZEPHIR_IS_LONG(_3, position); + } + if (_2) { ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - ZEPHIR_INIT_VAR(_2); - ZVAL_LONG(_2, position); - ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _2); - zephir_check_call_status(); - } - } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_NULL) { - ZEPHIR_OBS_NVAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), rows TSRMLS_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + _5 = Z_TYPE_P(_4) == IS_NULL; + if (!(_5)) { + _6 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + _5 = ZEPHIR_GT_LONG(_6, position); } - } - if (Z_TYPE_P(rows) == IS_ARRAY) { - i = 0; - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "reset", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - while (1) { - if (!(i < position)) { - break; - } - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_4, rows); - Z_UNSET_ISREF_P(rows); + if (_5) { + ZEPHIR_INIT_VAR(_7); + ZVAL_LONG(_7, position); + ZEPHIR_CALL_METHOD(NULL, result, "dataseek", NULL, _7); zephir_check_call_status(); - i++; + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + } else { + while (1) { + _9 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(ZEPHIR_LT_LONG(_9, position))) { + break; + } + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); + } } } + ZEPHIR_INIT_ZVAL_NREF(_4); + ZVAL_LONG(_4, position); + zephir_update_property_this(this_ptr, SL("_pointer"), _4 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_activeRow"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); + } + } else { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!ZEPHIR_IS_LONG(_1, position)) { + ZEPHIR_INIT_ZVAL_NREF(_3); + ZVAL_LONG(_3, position); + zephir_update_property_this(this_ptr, SL("_pointer"), _3 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_activeRow"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } - ZEPHIR_INIT_ZVAL_NREF(_5); - ZVAL_LONG(_5, position); - zephir_update_property_this(this_ptr, SL("_pointer"), _5 TSRMLS_CC); } ZEPHIR_MM_RESTORE(); @@ -90061,8 +92413,8 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetExists) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL, *_5 = NULL; - zval *index_param = NULL, *_0 = NULL, *_2, _4, *_6 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *index_param = NULL, *_0 = NULL, _2; int index, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); @@ -90079,26 +92431,15 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); zephir_check_call_status(); if (ZEPHIR_GT_LONG(_0, index)) { - _2 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (ZEPHIR_IS_LONG(_2, index)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_3); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_SINIT_VAR(_4); - ZVAL_LONG(&_4, index); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_5, &_4); + ZEPHIR_SINIT_VAR(_2); + ZVAL_LONG(&_2, index); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_6)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_3); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 272); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 243); return; } @@ -90111,7 +92452,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetSet) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 283); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 254); return; } @@ -90126,7 +92467,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetUnset) { offset = zephir_get_intval(offset_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 291); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 262); return; } @@ -90140,53 +92481,47 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getType) { static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getFirst) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_0, *_3 = NULL; + zval *_0 = NULL, _2; ZEPHIR_MM_GROW(); - _0 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); + zephir_check_call_status(); if (ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", &_2); + ZEPHIR_SINIT_VAR(_2); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_3)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_1); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getLast) { - zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL, *_5 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *_0 = NULL, _2, *_4 = NULL; + zval *count = NULL, _1; ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "count", &_1); + ZEPHIR_CALL_METHOD(&count, this_ptr, "count", &_0); zephir_check_call_status(); - ZEPHIR_SINIT_VAR(_2); - ZVAL_LONG(&_2, (zephir_get_numberval(_0) - 1)); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_3, &_2); + if (ZEPHIR_IS_LONG(count, 0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_SINIT_VAR(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(count) - 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", &_2, &_1); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "valid", NULL); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL); zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(_4)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", &_5); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + RETURN_MM(); } @@ -90243,13 +92578,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, current) { - - - RETURN_MEMBER(this_ptr, "_activeRow"); - -} - static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages) { @@ -90286,7 +92614,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 415); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 372); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -90356,7 +92684,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 435); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -90420,7 +92748,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(record, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 547); + zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 504); ZEPHIR_INIT_NVAR(processedRecord); ZEPHIR_CALL_USER_FUNC_ARRAY(processedRecord, filter, parameters); zephir_check_call_status(); @@ -90429,7 +92757,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { continue; } } - zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 559); + zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 516); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); @@ -90925,7 +93253,7 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackedRecord); ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, phalcon_mvc_model_validationfailed_method_entry, 0); zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("_model"), ZEND_ACC_PROTECTED TSRMLS_CC); @@ -90935,6 +93263,50 @@ ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) { } +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct) { + + int ZEPHIR_LAST_CALL_STATUS; + zval *validationMessages = NULL; + zval *model, *validationMessages_param = NULL, *messageStr = NULL, *message; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &validationMessages_param); + + validationMessages = validationMessages_param; + + + + if (zephir_fast_count_int(validationMessages TSRMLS_CC) > 0) { + ZEPHIR_OBS_VAR(message); + zephir_array_fetch_long(&message, validationMessages, 0, PH_NOISY, "phalcon/mvc/model/validationfailed.zep", 51 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&messageStr, message, "getmessage", NULL); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(messageStr); + ZVAL_STRING(messageStr, "Validation failed", 1); + } + zephir_update_property_this(this_ptr, SL("_model"), model TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_messages"), validationMessages TSRMLS_CC); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_validationfailed_ce, this_ptr, "__construct", NULL, messageStr); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel) { + + + RETURN_MEMBER(this_ptr, "_model"); + +} + +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages) { + + + RETURN_MEMBER(this_ptr, "_messages"); + +} + @@ -94462,58 +96834,58 @@ static zval *phql_ret_func_call(phql_parser_token *name, zval *arguments, zval * #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal +** PPCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds +** PPNOCODE is a number of type PPCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. -** YYFALLBACK If defined, this indicates that one or more tokens +** PPFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal +** PPACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** phql_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. +** PPMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is phql_TOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. +** for base tokens is called "pp0". +** PPSTACKDEPTH is the maximum depth of the parser's stack. ** phql_ARG_SDECL A static variable declaration for the %extra_argument ** phql_ARG_PDECL A parameter declaration for the %extra_argument -** phql_ARG_STORE Code to store %extra_argument into yypParser -** phql_ARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not +** phql_ARG_STORE Code to store %extra_argument into pppParser +** phql_ARG_FETCH Code to extract %extra_argument from pppParser +** PPNSTATE the combined number of states. +** PPNRULE the number of rules in the grammar +** PPERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define YYCODETYPE unsigned char -#define YYNOCODE 120 -#define YYACTIONTYPE unsigned short int +#define PPCODETYPE unsigned char +#define PPNOCODE 120 +#define PPACTIONTYPE unsigned short int #define phql_TOKENTYPE phql_parser_token* typedef union { - phql_TOKENTYPE yy0; - zval* yy92; - int yy239; -} YYMINORTYPE; -#define YYSTACKDEPTH 100 + phql_TOKENTYPE pp0; + zval* pp92; + int pp239; +} PPMINORTYPE; +#define PPSTACKDEPTH 100 #define phql_ARG_SDECL phql_parser_status *status; #define phql_ARG_PDECL ,phql_parser_status *status -#define phql_ARG_FETCH phql_parser_status *status = yypParser->status -#define phql_ARG_STORE yypParser->status = status -#define YYNSTATE 249 -#define YYNRULE 139 -#define YYERRORSYMBOL 70 -#define YYERRSYMDT yy239 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define phql_ARG_FETCH phql_parser_status *status = pppParser->status +#define phql_ARG_STORE pppParser->status = status +#define PPNSTATE 249 +#define PPNRULE 139 +#define PPERRORSYMBOL 70 +#define PPERRSYMDT pp239 +#define PP_NO_ACTION (PPNSTATE+PPNRULE+2) +#define PP_ACCEPT_ACTION (PPNSTATE+PPNRULE+1) +#define PP_ERROR_ACTION (PPNSTATE+PPNRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -94523,234 +96895,234 @@ typedef union { ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N < PPNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** PPNSTATE <= N < PPNSTATE+PPNRULE Reduce by rule N-PPNSTATE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N == PPNSTATE+PPNRULE A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == PPNSTATE+PPNRULE+1 The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. +** N == PPNSTATE+PPNRULE+2 No such action. Denotes unused +** slots in the pp_action[] table. ** -** The action table is constructed as a single large table named yy_action[]. +** The action table is constructed as a single large table named pp_action[]. ** Given state S and lookahead X, the action is computed as ** -** yy_action[ yy_shift_ofst[S] + X ] +** pp_action[ pp_shift_ofst[S] + X ] ** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. +** If the index value pp_shift_ofst[S]+X is out of range or if the value +** pp_lookahead[pp_shift_ofst[S]+X] is not equal to X or if pp_shift_ofst[S] +** is equal to PP_SHIFT_USE_DFLT, it means that the action is not in the table +** and that pp_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. +** a reduce action) then the pp_reduce_ofst[] array is used in place of +** the pp_shift_ofst[] array and PP_REDUCE_USE_DFLT is used in place of +** PP_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for +** pp_action[] A single table containing all actions. +** pp_lookahead[] A table containing the lookahead for each entry in +** pp_action. Used to detect hash collisions. +** pp_shift_ofst[] For each state, the offset into pp_action for ** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for +** pp_reduce_ofst[] For each state, the offset into pp_action for ** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. +** pp_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { +static PPACTIONTYPE pp_action[] = { /* 0 */ 72, 78, 50, 52, 54, 56, 58, 60, 40, 42, /* 10 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 20 */ 74, 69, 64, 145, 72, 78, 50, 52, 54, 56, + /* 20 */ 74, 69, 64, 64, 72, 78, 50, 52, 54, 56, /* 30 */ 58, 60, 40, 42, 62, 67, 44, 46, 48, 36, - /* 40 */ 34, 38, 32, 29, 74, 69, 64, 16, 17, 18, - /* 50 */ 249, 27, 28, 201, 192, 199, 150, 72, 78, 50, + /* 40 */ 34, 38, 32, 29, 74, 69, 64, 74, 69, 64, + /* 50 */ 167, 27, 28, 201, 192, 199, 150, 72, 78, 50, /* 60 */ 52, 54, 56, 58, 60, 40, 42, 62, 67, 44, /* 70 */ 46, 48, 36, 34, 38, 32, 29, 74, 69, 64, - /* 80 */ 36, 34, 38, 32, 29, 74, 69, 64, 83, 7, + /* 80 */ 36, 34, 38, 32, 29, 74, 69, 64, 83, 77, /* 90 */ 72, 78, 50, 52, 54, 56, 58, 60, 40, 42, /* 100 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 110 */ 74, 69, 64, 72, 78, 50, 52, 54, 56, 58, - /* 120 */ 60, 40, 42, 62, 67, 44, 46, 48, 36, 34, - /* 130 */ 38, 32, 29, 74, 69, 64, 40, 42, 62, 67, - /* 140 */ 44, 46, 48, 36, 34, 38, 32, 29, 74, 69, - /* 150 */ 64, 327, 89, 74, 69, 64, 158, 108, 156, 72, + /* 110 */ 74, 69, 64, 50, 52, 54, 56, 58, 60, 40, + /* 120 */ 42, 62, 67, 44, 46, 48, 36, 34, 38, 32, + /* 130 */ 29, 74, 69, 64, 108, 168, 72, 78, 50, 52, + /* 140 */ 54, 56, 58, 60, 40, 42, 62, 67, 44, 46, + /* 150 */ 48, 36, 34, 38, 32, 29, 74, 69, 64, 72, /* 160 */ 78, 50, 52, 54, 56, 58, 60, 40, 42, 62, /* 170 */ 67, 44, 46, 48, 36, 34, 38, 32, 29, 74, - /* 180 */ 69, 64, 50, 52, 54, 56, 58, 60, 40, 42, - /* 190 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, - /* 200 */ 74, 69, 64, 101, 203, 204, 30, 12, 250, 102, - /* 210 */ 104, 65, 128, 138, 101, 153, 93, 30, 324, 99, - /* 220 */ 102, 104, 130, 173, 189, 175, 177, 93, 181, 185, - /* 230 */ 106, 364, 173, 189, 175, 177, 76, 181, 185, 363, - /* 240 */ 172, 106, 170, 14, 110, 116, 117, 80, 86, 26, - /* 250 */ 113, 111, 112, 114, 115, 110, 116, 117, 80, 86, - /* 260 */ 26, 113, 111, 112, 114, 115, 194, 109, 71, 30, - /* 270 */ 23, 135, 102, 104, 251, 19, 92, 75, 109, 195, - /* 280 */ 30, 8, 25, 102, 104, 124, 109, 92, 208, 216, - /* 290 */ 93, 252, 99, 106, 98, 92, 253, 96, 118, 32, - /* 300 */ 29, 74, 69, 64, 106, 136, 9, 110, 116, 117, - /* 310 */ 80, 86, 127, 113, 111, 112, 114, 115, 110, 116, - /* 320 */ 117, 80, 86, 120, 113, 111, 112, 114, 115, 62, - /* 330 */ 67, 44, 46, 48, 36, 34, 38, 32, 29, 74, - /* 340 */ 69, 64, 44, 46, 48, 36, 34, 38, 32, 29, - /* 350 */ 74, 69, 64, 71, 143, 389, 1, 2, 3, 4, - /* 360 */ 5, 6, 162, 163, 164, 235, 242, 238, 10, 71, - /* 370 */ 180, 109, 109, 178, 237, 238, 21, 140, 144, 126, - /* 380 */ 92, 92, 214, 118, 11, 149, 227, 109, 202, 198, - /* 390 */ 254, 210, 243, 124, 215, 132, 92, 152, 147, 118, - /* 400 */ 109, 161, 190, 163, 164, 214, 94, 109, 71, 92, - /* 410 */ 143, 13, 15, 205, 221, 151, 92, 215, 232, 191, - /* 420 */ 246, 193, 198, 109, 155, 241, 109, 214, 109, 134, - /* 430 */ 31, 120, 92, 33, 142, 92, 159, 92, 100, 213, - /* 440 */ 109, 35, 22, 109, 240, 109, 37, 109, 109, 92, - /* 450 */ 154, 109, 92, 165, 92, 155, 92, 92, 39, 109, - /* 460 */ 92, 41, 196, 99, 109, 159, 43, 159, 92, 45, - /* 470 */ 325, 47, 49, 92, 51, 94, 109, 53, 184, 109, - /* 480 */ 20, 182, 326, 133, 109, 92, 64, 109, 92, 109, - /* 490 */ 109, 55, 109, 92, 57, 109, 92, 59, 92, 92, - /* 500 */ 120, 92, 61, 197, 92, 63, 24, 66, 68, 109, - /* 510 */ 73, 188, 109, 79, 186, 109, 125, 70, 92, 212, - /* 520 */ 109, 92, 223, 109, 92, 109, 109, 82, 109, 92, - /* 530 */ 88, 109, 92, 103, 92, 92, 329, 92, 105, 211, - /* 540 */ 92, 107, 218, 129, 169, 109, 137, 217, 109, 146, - /* 550 */ 226, 109, 212, 77, 92, 81, 109, 92, 233, 109, - /* 560 */ 92, 109, 109, 155, 109, 92, 207, 109, 92, 248, - /* 570 */ 92, 92, 222, 92, 155, 159, 92, 84, 159, 85, - /* 580 */ 90, 87, 119, 91, 95, 97, 159, 121, 131, 122, - /* 590 */ 123, 125, 230, 139, 141, 148, 160, 157, 166, 168, - /* 600 */ 167, 171, 174, 277, 176, 278, 179, 279, 280, 281, - /* 610 */ 183, 282, 283, 284, 187, 285, 200, 288, 209, 225, - /* 620 */ 289, 224, 229, 228, 296, 328, 206, 231, 236, 239, - /* 630 */ 219, 244, 220, 245, 302, 247, 260, 234, + /* 180 */ 69, 64, 101, 217, 196, 30, 226, 21, 102, 104, + /* 190 */ 16, 17, 18, 101, 153, 93, 30, 94, 89, 102, + /* 200 */ 104, 79, 173, 189, 175, 177, 93, 181, 185, 106, + /* 210 */ 364, 173, 189, 175, 177, 188, 181, 185, 186, 109, + /* 220 */ 106, 324, 120, 110, 116, 117, 80, 86, 92, 113, + /* 230 */ 111, 112, 114, 115, 110, 116, 117, 80, 86, 166, + /* 240 */ 113, 111, 112, 114, 115, 194, 14, 71, 30, 65, + /* 250 */ 128, 102, 104, 32, 29, 74, 69, 64, 195, 30, + /* 260 */ 130, 10, 102, 104, 124, 109, 235, 242, 238, 93, + /* 270 */ 171, 99, 106, 98, 92, 152, 96, 118, 19, 161, + /* 280 */ 190, 163, 164, 106, 237, 238, 110, 116, 117, 80, + /* 290 */ 86, 133, 113, 111, 112, 114, 115, 110, 116, 117, + /* 300 */ 80, 86, 120, 113, 111, 112, 114, 115, 40, 42, + /* 310 */ 62, 67, 44, 46, 48, 36, 34, 38, 32, 29, + /* 320 */ 74, 69, 64, 62, 67, 44, 46, 48, 36, 34, + /* 330 */ 38, 32, 29, 74, 69, 64, 44, 46, 48, 36, + /* 340 */ 34, 38, 32, 29, 74, 69, 64, 26, 76, 124, + /* 350 */ 160, 158, 143, 156, 214, 389, 1, 2, 3, 4, + /* 360 */ 5, 6, 94, 210, 71, 109, 215, 174, 23, 135, + /* 370 */ 109, 81, 109, 207, 92, 140, 144, 71, 176, 92, + /* 380 */ 149, 92, 109, 202, 198, 159, 227, 120, 214, 75, + /* 390 */ 132, 92, 243, 180, 118, 109, 178, 221, 241, 147, + /* 400 */ 215, 329, 109, 126, 92, 26, 109, 118, 165, 151, + /* 410 */ 143, 92, 11, 191, 205, 92, 109, 240, 155, 232, + /* 420 */ 159, 246, 71, 109, 105, 92, 214, 25, 109, 73, + /* 430 */ 159, 254, 92, 179, 142, 193, 198, 92, 213, 277, + /* 440 */ 109, 107, 109, 82, 109, 233, 33, 109, 41, 92, + /* 450 */ 155, 92, 100, 92, 109, 183, 92, 230, 43, 109, + /* 460 */ 278, 109, 159, 92, 109, 35, 109, 279, 92, 146, + /* 470 */ 92, 134, 66, 92, 251, 92, 109, 45, 162, 163, + /* 480 */ 164, 203, 204, 109, 37, 92, 24, 109, 47, 109, + /* 490 */ 109, 59, 92, 327, 49, 109, 92, 9, 92, 92, + /* 500 */ 154, 85, 109, 197, 92, 155, 109, 169, 31, 109, + /* 510 */ 51, 92, 109, 212, 248, 92, 125, 159, 92, 155, + /* 520 */ 172, 92, 170, 63, 68, 109, 109, 53, 109, 39, + /* 530 */ 137, 159, 99, 211, 92, 92, 280, 92, 208, 216, + /* 540 */ 55, 109, 109, 61, 223, 109, 212, 109, 109, 12, + /* 550 */ 92, 92, 127, 103, 92, 57, 92, 92, 109, 129, + /* 560 */ 88, 109, 184, 99, 218, 182, 222, 92, 187, 84, + /* 570 */ 92, 109, 281, 109, 282, 87, 283, 109, 109, 284, + /* 580 */ 92, 285, 92, 363, 90, 91, 92, 92, 13, 119, + /* 590 */ 200, 70, 95, 157, 206, 97, 288, 209, 225, 219, + /* 600 */ 15, 220, 289, 136, 224, 148, 325, 145, 228, 296, + /* 610 */ 231, 229, 328, 252, 234, 236, 131, 250, 239, 253, + /* 620 */ 22, 245, 8, 244, 302, 141, 247, 249, 139, 122, + /* 630 */ 326, 121, 138, 123, 125, 260, 20, 7, }; -static YYCODETYPE yy_lookahead[] = { +static PPCODETYPE pp_lookahead[] = { /* 0 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* 10 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 20 */ 21, 22, 23, 49, 1, 2, 3, 4, 5, 6, + /* 20 */ 21, 22, 23, 23, 1, 2, 3, 4, 5, 6, /* 30 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 40 */ 17, 18, 19, 20, 21, 22, 23, 58, 59, 60, - /* 50 */ 0, 52, 53, 30, 25, 32, 27, 1, 2, 3, + /* 40 */ 17, 18, 19, 20, 21, 22, 23, 21, 22, 23, + /* 50 */ 96, 52, 53, 30, 25, 32, 27, 1, 2, 3, /* 60 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, /* 70 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 80 */ 16, 17, 18, 19, 20, 21, 22, 23, 32, 78, + /* 80 */ 16, 17, 18, 19, 20, 21, 22, 23, 32, 64, /* 90 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* 100 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 110 */ 21, 22, 23, 1, 2, 3, 4, 5, 6, 7, - /* 120 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 130 */ 18, 19, 20, 21, 22, 23, 9, 10, 11, 12, - /* 140 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 150 */ 23, 0, 63, 21, 22, 23, 30, 45, 32, 1, + /* 110 */ 21, 22, 23, 3, 4, 5, 6, 7, 8, 9, + /* 120 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 130 */ 20, 21, 22, 23, 45, 40, 1, 2, 3, 4, + /* 140 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 150 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, /* 160 */ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, /* 170 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 180 */ 22, 23, 3, 4, 5, 6, 7, 8, 9, 10, - /* 190 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 200 */ 21, 22, 23, 17, 28, 29, 20, 56, 0, 23, - /* 210 */ 24, 11, 12, 54, 17, 25, 30, 20, 0, 25, - /* 220 */ 23, 24, 22, 33, 34, 35, 36, 30, 38, 39, - /* 230 */ 44, 45, 33, 34, 35, 36, 23, 38, 39, 45, - /* 240 */ 30, 44, 32, 25, 58, 59, 60, 61, 62, 88, - /* 250 */ 64, 65, 66, 67, 68, 58, 59, 60, 61, 62, - /* 260 */ 88, 64, 65, 66, 67, 68, 17, 106, 88, 20, - /* 270 */ 109, 110, 23, 24, 0, 57, 115, 64, 106, 30, - /* 280 */ 20, 79, 110, 23, 24, 31, 106, 115, 43, 44, - /* 290 */ 30, 0, 25, 44, 114, 115, 0, 117, 118, 19, - /* 300 */ 20, 21, 22, 23, 44, 55, 80, 58, 59, 60, - /* 310 */ 61, 62, 45, 64, 65, 66, 67, 68, 58, 59, - /* 320 */ 60, 61, 62, 69, 64, 65, 66, 67, 68, 11, - /* 330 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 340 */ 22, 23, 13, 14, 15, 16, 17, 18, 19, 20, - /* 350 */ 21, 22, 23, 88, 88, 71, 72, 73, 74, 75, - /* 360 */ 76, 77, 91, 92, 93, 104, 105, 106, 81, 88, - /* 370 */ 34, 106, 106, 37, 105, 106, 50, 111, 112, 114, - /* 380 */ 115, 115, 88, 118, 82, 84, 102, 106, 87, 88, - /* 390 */ 0, 97, 108, 31, 100, 114, 115, 86, 26, 118, - /* 400 */ 106, 90, 91, 92, 93, 88, 44, 106, 88, 115, - /* 410 */ 88, 113, 113, 41, 97, 85, 115, 100, 46, 89, - /* 420 */ 48, 87, 88, 106, 94, 88, 106, 88, 106, 88, - /* 430 */ 88, 69, 115, 88, 112, 115, 106, 115, 118, 100, - /* 440 */ 106, 88, 51, 106, 107, 106, 88, 106, 106, 115, - /* 450 */ 89, 106, 115, 94, 115, 94, 115, 115, 88, 106, - /* 460 */ 115, 88, 31, 25, 106, 106, 88, 106, 115, 88, - /* 470 */ 0, 88, 88, 115, 88, 44, 106, 88, 34, 106, - /* 480 */ 113, 37, 0, 45, 106, 115, 23, 106, 115, 106, - /* 490 */ 106, 88, 106, 115, 88, 106, 115, 88, 115, 115, - /* 500 */ 69, 115, 88, 17, 115, 88, 25, 88, 88, 106, - /* 510 */ 88, 34, 106, 88, 37, 106, 30, 44, 115, 25, - /* 520 */ 106, 115, 25, 106, 115, 106, 106, 88, 106, 115, - /* 530 */ 88, 106, 115, 88, 115, 115, 0, 115, 88, 45, - /* 540 */ 115, 88, 45, 88, 88, 106, 88, 98, 106, 88, - /* 550 */ 101, 106, 25, 64, 115, 44, 106, 115, 89, 106, - /* 560 */ 115, 106, 106, 94, 106, 115, 94, 106, 115, 89, - /* 570 */ 115, 115, 45, 115, 94, 106, 115, 30, 106, 45, - /* 580 */ 30, 44, 28, 45, 116, 45, 106, 30, 44, 31, - /* 590 */ 30, 30, 56, 51, 25, 83, 30, 30, 95, 40, - /* 600 */ 96, 30, 34, 30, 34, 30, 34, 30, 30, 30, - /* 610 */ 34, 30, 30, 30, 34, 30, 30, 0, 44, 30, - /* 620 */ 0, 101, 103, 78, 0, 0, 42, 113, 25, 3, - /* 630 */ 43, 78, 44, 103, 0, 27, 119, 47, + /* 180 */ 22, 23, 17, 98, 31, 20, 101, 50, 23, 24, + /* 190 */ 58, 59, 60, 17, 25, 30, 20, 44, 63, 23, + /* 200 */ 24, 88, 33, 34, 35, 36, 30, 38, 39, 44, + /* 210 */ 45, 33, 34, 35, 36, 34, 38, 39, 37, 106, + /* 220 */ 44, 0, 69, 58, 59, 60, 61, 62, 115, 64, + /* 230 */ 65, 66, 67, 68, 58, 59, 60, 61, 62, 95, + /* 240 */ 64, 65, 66, 67, 68, 17, 25, 88, 20, 11, + /* 250 */ 12, 23, 24, 19, 20, 21, 22, 23, 30, 20, + /* 260 */ 22, 81, 23, 24, 31, 106, 104, 105, 106, 30, + /* 270 */ 30, 25, 44, 114, 115, 86, 117, 118, 57, 90, + /* 280 */ 91, 92, 93, 44, 105, 106, 58, 59, 60, 61, + /* 290 */ 62, 45, 64, 65, 66, 67, 68, 58, 59, 60, + /* 300 */ 61, 62, 69, 64, 65, 66, 67, 68, 9, 10, + /* 310 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 320 */ 21, 22, 23, 11, 12, 13, 14, 15, 16, 17, + /* 330 */ 18, 19, 20, 21, 22, 23, 13, 14, 15, 16, + /* 340 */ 17, 18, 19, 20, 21, 22, 23, 88, 23, 31, + /* 350 */ 30, 30, 88, 32, 88, 71, 72, 73, 74, 75, + /* 360 */ 76, 77, 44, 97, 88, 106, 100, 34, 109, 110, + /* 370 */ 106, 44, 106, 94, 115, 111, 112, 88, 34, 115, + /* 380 */ 84, 115, 106, 87, 88, 106, 102, 69, 88, 64, + /* 390 */ 114, 115, 108, 34, 118, 106, 37, 97, 88, 26, + /* 400 */ 100, 0, 106, 114, 115, 88, 106, 118, 94, 85, + /* 410 */ 88, 115, 82, 89, 41, 115, 106, 107, 94, 46, + /* 420 */ 106, 48, 88, 106, 88, 115, 88, 110, 106, 88, + /* 430 */ 106, 0, 115, 34, 112, 87, 88, 115, 100, 30, + /* 440 */ 106, 88, 106, 88, 106, 89, 88, 106, 88, 115, + /* 450 */ 94, 115, 118, 115, 106, 34, 115, 56, 88, 106, + /* 460 */ 30, 106, 106, 115, 106, 88, 106, 30, 115, 88, + /* 470 */ 115, 88, 88, 115, 0, 115, 106, 88, 91, 92, + /* 480 */ 93, 28, 29, 106, 88, 115, 25, 106, 88, 106, + /* 490 */ 106, 88, 115, 0, 88, 106, 115, 80, 115, 115, + /* 500 */ 89, 45, 106, 17, 115, 94, 106, 88, 88, 106, + /* 510 */ 88, 115, 106, 25, 89, 115, 30, 106, 115, 94, + /* 520 */ 30, 115, 32, 88, 88, 106, 106, 88, 106, 88, + /* 530 */ 88, 106, 25, 45, 115, 115, 30, 115, 43, 44, + /* 540 */ 88, 106, 106, 88, 25, 106, 25, 106, 106, 56, + /* 550 */ 115, 115, 45, 88, 115, 88, 115, 115, 106, 88, + /* 560 */ 88, 106, 34, 25, 45, 37, 45, 115, 34, 30, + /* 570 */ 115, 106, 30, 106, 30, 44, 30, 106, 106, 30, + /* 580 */ 115, 30, 115, 45, 30, 45, 115, 115, 113, 28, + /* 590 */ 30, 44, 116, 30, 42, 45, 0, 44, 30, 43, + /* 600 */ 113, 44, 0, 55, 101, 83, 0, 49, 78, 0, + /* 610 */ 113, 103, 0, 0, 47, 25, 44, 0, 3, 0, + /* 620 */ 51, 103, 79, 78, 0, 25, 27, 0, 51, 31, + /* 630 */ 0, 30, 54, 30, 30, 119, 113, 78, }; -#define YY_SHIFT_USE_DFLT (-27) -static short yy_shift_ofst[] = { - /* 0 */ 372, 50, 208, 274, 291, 296, -26, 159, 250, 326, - /* 10 */ 151, 390, -11, 218, -11, 470, -27, -27, -27, -11, - /* 20 */ 482, 391, 260, 481, 260, -27, -1, -27, -27, 260, - /* 30 */ 260, 132, 260, 132, 260, 280, 260, 280, 260, 280, - /* 40 */ 260, 318, 260, 318, 260, 64, 260, 64, 260, 64, - /* 50 */ 260, 127, 260, 127, 260, 127, 260, 127, 260, 127, - /* 60 */ 260, 127, 260, 329, 200, 260, 463, 260, 329, 473, - /* 70 */ 197, 158, 260, 158, 213, -27, 489, -27, 260, 179, - /* 80 */ 511, 260, 56, 547, 534, -27, 537, 260, 89, 550, - /* 90 */ 538, -27, -27, 362, 554, 186, 540, -27, 194, 197, - /* 100 */ -27, -27, 260, 463, 260, 463, 260, 112, -27, -27, - /* 110 */ -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, - /* 120 */ 557, 558, 560, -27, 561, -27, 267, -27, 260, 463, - /* 130 */ 544, 197, 438, -27, 132, -27, 260, 158, 542, 260, - /* 140 */ 569, 260, -27, 158, -27, 260, 158, 176, 249, 29, - /* 150 */ 566, 190, -27, 566, -27, 126, 567, -27, -27, -27, - /* 160 */ 254, 199, -27, -27, 566, 210, 559, -27, 260, 158, - /* 170 */ 571, -27, -27, 568, 573, 570, 575, 336, 572, 577, - /* 180 */ 578, 444, 576, 579, 581, 477, 580, 582, 583, 585, - /* 190 */ -27, -27, 249, -27, -27, 431, 486, -27, 23, 586, - /* 200 */ -27, -27, -27, -27, -27, 584, 566, 245, 574, 260, - /* 210 */ 494, 617, 260, -27, 158, -27, 589, 497, 587, 588, - /* 220 */ 260, 527, 620, 589, -27, -27, -27, -26, 536, 624, - /* 230 */ -11, 625, 566, 590, 566, 603, 566, -27, 626, 260, - /* 240 */ -27, 158, -27, -26, 536, 634, 608, 566, -27, +#define PP_SHIFT_USE_DFLT (-2) +static short pp_shift_ofst[] = { + /* 0 */ 373, 627, 617, 474, 613, 619, 558, 578, 548, 137, + /* 10 */ 493, 431, 132, 221, 132, 606, -2, -2, -2, 132, + /* 20 */ 630, 569, 239, 461, 239, -2, -1, -2, -2, 239, + /* 30 */ 239, 26, 239, 26, 239, 234, 239, 234, 239, 234, + /* 40 */ 239, 312, 239, 312, 239, 64, 239, 64, 239, 64, + /* 50 */ 239, 299, 239, 299, 239, 299, 239, 299, 239, 299, + /* 60 */ 239, 299, 239, 323, 238, 239, 0, 239, 323, 547, + /* 70 */ 176, 158, 239, 158, 325, -2, 25, -2, 239, 110, + /* 80 */ 327, 239, 56, 539, 456, -2, 531, 239, 135, 554, + /* 90 */ 540, -2, -2, 318, 561, 165, 550, -2, 538, 176, + /* 100 */ -2, -2, 239, 0, 239, 0, 239, 89, -2, -2, + /* 110 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, + /* 120 */ 601, 598, 603, -2, 604, -2, 507, -2, 239, 0, + /* 130 */ 572, 176, 246, -2, 26, -2, 239, 158, 577, 239, + /* 140 */ 600, 239, -2, 158, -2, 239, 158, 453, 228, 29, + /* 150 */ 320, 169, -2, 320, -2, 321, 563, -2, -2, -2, + /* 160 */ 233, 178, -2, -2, 320, 490, 95, -2, 239, 158, + /* 170 */ 240, -2, -2, 333, 409, 344, 430, 359, 399, 437, + /* 180 */ 506, 528, 421, 542, 544, 181, 534, 546, 549, 551, + /* 190 */ -2, -2, 228, -2, -2, 153, 486, -2, 23, 560, + /* 200 */ -2, -2, -2, -2, -2, 552, 320, 495, 553, 239, + /* 210 */ 488, 596, 239, -2, 158, -2, 568, 519, 556, 557, + /* 220 */ 239, 521, 602, 568, -2, -2, -2, 558, 401, 609, + /* 230 */ 132, 612, 320, 567, 320, 590, 320, -2, 615, 239, + /* 240 */ -2, 158, -2, 558, 401, 624, 599, 320, -2, }; -#define YY_REDUCE_USE_DFLT (-1) -static short yy_reduce_ofst[] = { - /* 0 */ 284, -1, -1, -1, -1, -1, 11, 202, 226, 287, - /* 10 */ 302, -1, 298, -1, 299, -1, -1, -1, -1, 367, - /* 20 */ -1, -1, 161, -1, 172, -1, -1, -1, -1, 341, - /* 30 */ 342, -1, 345, -1, 353, -1, 358, -1, 370, -1, - /* 40 */ 373, -1, 378, -1, 381, -1, 383, -1, 384, -1, - /* 50 */ 386, -1, 389, -1, 403, -1, 406, -1, 409, -1, - /* 60 */ 414, -1, 417, -1, -1, 419, -1, 420, -1, -1, - /* 70 */ 265, -1, 422, -1, -1, -1, -1, -1, 425, -1, - /* 80 */ -1, 439, -1, -1, -1, -1, -1, 442, -1, -1, - /* 90 */ -1, -1, -1, -1, 468, 180, -1, -1, -1, 320, - /* 100 */ -1, -1, 445, -1, 450, -1, 453, -1, -1, -1, - /* 110 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 120 */ -1, -1, -1, -1, -1, -1, -1, -1, 455, -1, - /* 130 */ -1, 281, -1, -1, -1, -1, 458, -1, -1, 266, - /* 140 */ -1, 322, -1, -1, -1, 461, -1, 512, 301, -1, - /* 150 */ 330, 311, -1, 361, -1, -1, -1, -1, -1, -1, - /* 160 */ -1, 271, -1, -1, 359, 503, 504, -1, 456, -1, - /* 170 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 180 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - /* 190 */ -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, - /* 200 */ -1, -1, -1, -1, -1, -1, 472, -1, -1, 294, - /* 210 */ -1, -1, 339, -1, -1, -1, 449, -1, -1, -1, - /* 220 */ 317, -1, -1, 520, -1, -1, -1, 545, 519, -1, - /* 230 */ 514, -1, 469, -1, 261, -1, 269, -1, -1, 337, - /* 240 */ -1, -1, -1, 553, 530, -1, -1, 480, -1, +#define PP_REDUCE_USE_DFLT (-47) +static short pp_reduce_ofst[] = { + /* 0 */ 284, -47, -47, -47, -47, -47, 559, 543, 417, 180, + /* 10 */ 330, -47, 475, -47, 487, -47, -47, -47, -47, 523, + /* 20 */ -47, -47, 259, -47, 317, -47, -47, -47, -47, 383, + /* 30 */ 420, -47, 358, -47, 377, -47, 396, -47, 441, -47, + /* 40 */ 360, -47, 370, -47, 389, -47, 400, -47, 406, -47, + /* 50 */ 422, -47, 439, -47, 452, -47, 467, -47, 403, -47, + /* 60 */ 455, -47, 435, -47, -47, 384, -47, 436, -47, -47, + /* 70 */ 289, -47, 341, -47, -47, -47, -47, -47, 113, -47, + /* 80 */ -47, 355, -47, -47, -47, -47, -47, 472, -47, -47, + /* 90 */ -47, -47, -47, -47, 476, 159, -47, -47, -47, 334, + /* 100 */ -47, -47, 465, -47, 336, -47, 353, -47, -47, -47, + /* 110 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 120 */ -47, -47, -47, -47, -47, -47, -47, -47, 471, -47, + /* 130 */ -47, 276, -47, -47, -47, -47, 442, -47, -47, 264, + /* 140 */ -47, 322, -47, -47, -47, 381, -47, 522, 296, -47, + /* 150 */ 324, 189, -47, 411, -47, -47, -47, -47, -47, -47, + /* 160 */ -47, 387, -47, -47, 314, 144, -46, -47, 419, -47, + /* 170 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 180 */ -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + /* 190 */ -47, -47, 348, -47, -47, -47, -47, -47, -47, -47, + /* 200 */ -47, -47, -47, -47, -47, -47, 279, -47, -47, 266, + /* 210 */ -47, -47, 338, -47, -47, -47, 85, -47, -47, -47, + /* 220 */ 300, -47, -47, 503, -47, -47, -47, 530, 508, -47, + /* 230 */ 497, -47, 356, -47, 162, -47, 179, -47, -47, 310, + /* 240 */ -47, -47, -47, 545, 518, -47, -47, 425, -47, }; -static YYACTIONTYPE yy_default[] = { +static PPACTIONTYPE pp_default[] = { /* 0 */ 388, 388, 388, 388, 388, 388, 309, 318, 323, 311, /* 10 */ 388, 388, 388, 388, 388, 388, 330, 331, 332, 388, /* 20 */ 388, 388, 388, 310, 388, 312, 314, 315, 316, 388, @@ -94777,7 +97149,7 @@ static YYACTIONTYPE yy_default[] = { /* 230 */ 388, 388, 388, 388, 388, 297, 388, 298, 388, 388, /* 240 */ 300, 301, 299, 309, 388, 388, 388, 388, 303, }; -#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) +#define PP_SZ_ACTTAB (sizeof(pp_action)/sizeof(pp_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: @@ -94789,10 +97161,10 @@ static YYACTIONTYPE yy_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { +#ifdef PPFALLBACK +static const PPCODETYPE ppFallback[] = { }; -#endif /* YYFALLBACK */ +#endif /* PPFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -94806,44 +97178,44 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { +struct ppStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This + PPMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct yyStackEntry yyStackEntry; +typedef struct ppStackEntry ppStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ - int yyerrcnt; /* Shifts left before out of the error */ +struct ppParser { + int ppidx; /* Index of top element in stack */ + int pperrcnt; /* Shifts left before out of the error */ phql_ARG_SDECL /* A place to hold %extra_argument */ - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + ppStackEntry ppstack[PPSTACKDEPTH]; /* The parser's stack */ }; -typedef struct yyParser yyParser; +typedef struct ppParser ppParser; #ifndef NDEBUG #include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; +static FILE *ppTraceFILE = 0; +static char *ppTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phql_Trace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; + ppTraceFILE = TraceFILE; + ppTracePrompt = zTracePrompt; + if( ppTraceFILE==0 ) ppTracePrompt = 0; + else if( ppTracePrompt==0 ) ppTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *ppTokenName[] = { "$", "AGAINST", "BETWEEN", "EQUALS", "NOTEQUALS", "LESS", "GREATER", "GREATEREQUAL", "LESSEQUAL", "AND", "OR", "LIKE", @@ -94880,7 +97252,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *ppRuleName[] = { /* 0 */ "program ::= query_language", /* 1 */ "query_language ::= select_statement", /* 2 */ "query_language ::= insert_statement", @@ -95025,8 +97397,8 @@ static const char *yyRuleName[] = { const char *phql_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ - return yyTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(ppTokenName)/sizeof(ppTokenName[0])) ){ + return ppTokenName[tokenType]; }else{ return "Unknown"; } @@ -95036,21 +97408,21 @@ const char *phql_TokenName(int tokenType){ } void *phql_Alloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + ppParser *pParser; + pParser = (ppParser*)(*mallocProc)( (size_t)sizeof(ppParser) ); if( pParser ){ - pParser->yyidx = -1; + pParser->ppidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to +** "ppmajor" is the symbol code, and "pppminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ - switch( yymajor ){ +static void pp_destructor(PPCODETYPE ppmajor, PPMINORTYPE *pppminor){ + switch( ppmajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -95132,11 +97504,11 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 69: // 541 "parser.lemon" { - if ((yypminor->yy0)) { - if ((yypminor->yy0)->free_flag) { - efree((yypminor->yy0)->token); + if ((pppminor->pp0)) { + if ((pppminor->pp0)->free_flag) { + efree((pppminor->pp0)->token); } - efree((yypminor->yy0)); + efree((pppminor->pp0)); } } // 1171 "parser.c" @@ -95173,7 +97545,7 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 115: case 118: // 554 "parser.lemon" -{ zval_ptr_dtor(&(yypminor->yy92)); } +{ zval_ptr_dtor(&(pppminor->pp92)); } // 1206 "parser.c" break; case 78: @@ -95188,133 +97560,133 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 116: case 117: // 842 "parser.lemon" -{ zephir_safe_zval_ptr_dtor((yypminor->yy92)); } +{ zephir_safe_zval_ptr_dtor((pppminor->pp92)); } // 1221 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int pp_pop_parser_stack(ppParser *pParser){ + PPCODETYPE ppmajor; + ppStackEntry *pptos = &pParser->ppstack[pParser->ppidx]; - if( pParser->yyidx<0 ) return 0; + if( pParser->ppidx<0 ) return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); + if( ppTraceFILE && pParser->ppidx>=0 ){ + fprintf(ppTraceFILE,"%sPopping %s\n", + ppTracePrompt, + ppTokenName[pptos->major]); } #endif - yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + ppmajor = pptos->major; + pp_destructor( ppmajor, &pptos->minor); + pParser->ppidx--; + return ppmajor; } static void phql_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - yyParser *pParser = (yyParser*)p; + ppParser *pParser = (ppParser*)p; if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + while( pParser->ppidx>=0 ) pp_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ +static int pp_find_shift_action( + ppParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ - i = yy_shift_ofst[stateno]; - if( i==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; + /* if( pParser->ppidx<0 ) return PP_NO_ACTION; */ + i = pp_shift_ofst[stateno]; + if( i==PP_SHIFT_USE_DFLT ){ + return pp_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ -#ifdef YYFALLBACK + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ +#ifdef PPFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE, "%sFALLBACK %s => %s\n", + ppTracePrompt, ppTokenName[iLookAhead], ppTokenName[iFallback]); } #endif - return yy_find_shift_action(pParser, iFallback); + return pp_find_shift_action(pParser, iFallback); } #endif - return yy_default[stateno]; + return pp_default[stateno]; }else{ - return yy_action[i]; + return pp_action[i]; } } -static int yy_find_reduce_action( - yyParser *pParser, /* The parser */ +static int pp_find_reduce_action( + ppParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - i = yy_reduce_ofst[stateno]; - if( i==YY_REDUCE_USE_DFLT ){ - return yy_default[stateno]; + i = pp_reduce_ofst[stateno]; + if( i==PP_REDUCE_USE_DFLT ){ + return pp_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ + return pp_default[stateno]; }else{ - return yy_action[i]; + return pp_action[i]; } } -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +static void pp_shift( + ppParser *pppParser, /* The parser to be shifted */ + int ppNewState, /* The new state to shift in */ + int ppMajor, /* The major token to shift in */ + PPMINORTYPE *pppMinor /* Pointer ot the minor token to shift in */ ){ - yyStackEntry *yytos; - yypParser->yyidx++; - if( yypParser->yyidx>=YYSTACKDEPTH ){ + ppStackEntry *pptos; + pppParser->ppidx++; + if( pppParser->ppidx>=PPSTACKDEPTH ){ phql_ARG_FETCH; - yypParser->yyidx--; + pppParser->ppidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sStack Overflow!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; - yytos->minor = *yypMinor; + pptos = &pppParser->ppstack[pppParser->ppidx]; + pptos->stateno = ppNewState; + pptos->major = ppMajor; + pptos->minor = *pppMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ + if( ppTraceFILE && pppParser->ppidx>0 ){ int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); + fprintf(ppTraceFILE,"%sShift %d\n",ppTracePrompt,ppNewState); + fprintf(ppTraceFILE,"%sStack:",ppTracePrompt); + for(i=1; i<=pppParser->ppidx; i++) + fprintf(ppTraceFILE," %s",ppTokenName[pppParser->ppstack[i].major]); + fprintf(ppTraceFILE,"\n"); } #endif } @@ -95323,9 +97695,9 @@ static void yy_shift( ** is used during the reduce. */ static struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + PPCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { +} ppRuleInfo[] = { { 71, 1 }, { 72, 1 }, { 72, 1 }, @@ -95467,28 +97839,28 @@ static struct { { 106, 1 }, }; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void pp_accept(ppParser*); /* Forward Declaration */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ +static void pp_reduce( + ppParser *pppParser, /* The parser */ + int ppruleno /* Number of the rule by which to reduce */ ){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ + int ppgoto; /* The next state */ + int ppact; /* The next action */ + PPMINORTYPE ppgotominor; /* The LHS of the rule reduced */ + ppStackEntry *ppmsp; /* The top of the parser's stack */ + int ppsize; /* Amount to pop the stack */ phql_ARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; + ppmsp = &pppParser->ppstack[pppParser->ppidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno=0 + && pprulenoret = yymsp[0].minor.yy92; + status->ret = ppmsp[0].minor.pp92; } // 1577 "parser.c" break; @@ -95525,39 +97897,39 @@ static void yy_reduce( case 126: // 556 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; + ppgotominor.pp92 = ppmsp[0].minor.pp92; } // 1602 "parser.c" break; case 5: // 574 "parser.lemon" { - yygotominor.yy92 = phql_ret_select_statement(yymsp[-5].minor.yy92, yymsp[-4].minor.yy92, yymsp[-1].minor.yy92, yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_select_statement(ppmsp[-5].minor.pp92, ppmsp[-4].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[-3].minor.pp92, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); } // 1609 "parser.c" break; case 6: // 580 "parser.lemon" { - yygotominor.yy92 = phql_ret_select_clause(yymsp[-4].minor.yy92, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(26,&yymsp[-5].minor); - yy_destructor(27,&yymsp[-2].minor); + ppgotominor.pp92 = phql_ret_select_clause(ppmsp[-4].minor.pp92, ppmsp[-3].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(26,&ppmsp[-5].minor); + pp_destructor(27,&ppmsp[-2].minor); } // 1618 "parser.c" break; case 7: // 586 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct_all(1); - yy_destructor(28,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct_all(1); + pp_destructor(28,&ppmsp[0].minor); } // 1626 "parser.c" break; case 8: // 590 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct_all(0); - yy_destructor(29,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct_all(0); + pp_destructor(29,&ppmsp[0].minor); } // 1634 "parser.c" break; @@ -95575,7 +97947,7 @@ static void yy_reduce( case 115: // 594 "parser.lemon" { - yygotominor.yy92 = NULL; + ppgotominor.pp92 = NULL; } // 1652 "parser.c" break; @@ -95589,8 +97961,8 @@ static void yy_reduce( case 116: // 600 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(25,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(25,&ppmsp[-1].minor); } // 1667 "parser.c" break; @@ -95600,7 +97972,7 @@ static void yy_reduce( case 117: // 604 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[0].minor.yy92, NULL); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[0].minor.pp92, NULL); } // 1677 "parser.c" break; @@ -95608,61 +97980,61 @@ static void yy_reduce( case 118: // 610 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_STARALL, NULL, NULL, NULL); - yy_destructor(17,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_STARALL, NULL, NULL, NULL); + pp_destructor(17,&ppmsp[0].minor); } // 1686 "parser.c" break; case 13: // 614 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_DOMAINALL, NULL, yymsp[-2].minor.yy0, NULL); - yy_destructor(31,&yymsp[-1].minor); - yy_destructor(17,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_DOMAINALL, NULL, ppmsp[-2].minor.pp0, NULL); + pp_destructor(31,&ppmsp[-1].minor); + pp_destructor(17,&ppmsp[0].minor); } // 1695 "parser.c" break; case 14: // 618 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[-2].minor.yy92, NULL, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[-2].minor.pp92, NULL, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1703 "parser.c" break; case 15: // 622 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[-1].minor.yy92, NULL, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[-1].minor.pp92, NULL, ppmsp[0].minor.pp0); } // 1710 "parser.c" break; case 16: // 626 "parser.lemon" { - yygotominor.yy92 = phql_ret_column_item(PHQL_T_EXPR, yymsp[0].minor.yy92, NULL, NULL); + ppgotominor.pp92 = phql_ret_column_item(PHQL_T_EXPR, ppmsp[0].minor.pp92, NULL, NULL); } // 1717 "parser.c" break; case 21: // 650 "parser.lemon" { - yygotominor.yy92 = phql_ret_zval_list(yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_zval_list(ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1724 "parser.c" break; case 24: // 667 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_item(yymsp[-3].minor.yy92, yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_join_item(ppmsp[-3].minor.pp92, ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1731 "parser.c" break; case 25: // 673 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, NULL, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, NULL, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1739 "parser.c" break; @@ -95671,243 +98043,243 @@ static void yy_reduce( case 138: // 677 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, NULL, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, NULL, ppmsp[0].minor.pp0); } // 1748 "parser.c" break; case 28: // 687 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_INNERJOIN); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_INNERJOIN); + pp_destructor(33,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1757 "parser.c" break; case 29: // 691 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_CROSSJOIN); - yy_destructor(35,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_CROSSJOIN); + pp_destructor(35,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1766 "parser.c" break; case 30: // 695 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_LEFTJOIN); - yy_destructor(36,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_LEFTJOIN); + pp_destructor(36,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1776 "parser.c" break; case 31: // 699 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_LEFTJOIN); - yy_destructor(36,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_LEFTJOIN); + pp_destructor(36,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1785 "parser.c" break; case 32: // 703 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); - yy_destructor(38,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); + pp_destructor(38,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1795 "parser.c" break; case 33: // 707 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); - yy_destructor(38,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_RIGHTJOIN); + pp_destructor(38,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1804 "parser.c" break; case 34: // 711 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_FULLJOIN); - yy_destructor(39,&yymsp[-2].minor); - yy_destructor(37,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_FULLJOIN); + pp_destructor(39,&ppmsp[-2].minor); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1814 "parser.c" break; case 35: // 715 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_FULLJOIN); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_FULLJOIN); + pp_destructor(39,&ppmsp[-1].minor); + pp_destructor(34,&ppmsp[0].minor); } // 1823 "parser.c" break; case 36: // 719 "parser.lemon" { - yygotominor.yy92 = phql_ret_join_type(PHQL_T_INNERJOIN); - yy_destructor(34,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_join_type(PHQL_T_INNERJOIN); + pp_destructor(34,&ppmsp[0].minor); } // 1831 "parser.c" break; case 37: // 725 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(40,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(40,&ppmsp[-1].minor); } // 1839 "parser.c" break; case 39: // 736 "parser.lemon" { - yygotominor.yy92 = phql_ret_insert_statement(yymsp[-4].minor.yy92, NULL, yymsp[-1].minor.yy92); - yy_destructor(41,&yymsp[-6].minor); - yy_destructor(42,&yymsp[-5].minor); - yy_destructor(43,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_insert_statement(ppmsp[-4].minor.pp92, NULL, ppmsp[-1].minor.pp92); + pp_destructor(41,&ppmsp[-6].minor); + pp_destructor(42,&ppmsp[-5].minor); + pp_destructor(43,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 1851 "parser.c" break; case 40: // 740 "parser.lemon" { - yygotominor.yy92 = phql_ret_insert_statement(yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(41,&yymsp[-9].minor); - yy_destructor(42,&yymsp[-8].minor); - yy_destructor(44,&yymsp[-6].minor); - yy_destructor(45,&yymsp[-4].minor); - yy_destructor(43,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_insert_statement(ppmsp[-7].minor.pp92, ppmsp[-5].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(41,&ppmsp[-9].minor); + pp_destructor(42,&ppmsp[-8].minor); + pp_destructor(44,&ppmsp[-6].minor); + pp_destructor(45,&ppmsp[-4].minor); + pp_destructor(43,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 1865 "parser.c" break; case 47: // 778 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_statement(yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_update_statement(ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1872 "parser.c" break; case 48: // 784 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_clause(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(46,&yymsp[-3].minor); - yy_destructor(47,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_update_clause(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(46,&ppmsp[-3].minor); + pp_destructor(47,&ppmsp[-1].minor); } // 1881 "parser.c" break; case 51: // 800 "parser.lemon" { - yygotominor.yy92 = phql_ret_update_item(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(3,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_update_item(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(3,&ppmsp[-1].minor); } // 1889 "parser.c" break; case 53: // 812 "parser.lemon" { - yygotominor.yy92 = phql_ret_delete_statement(yymsp[-2].minor.yy92, yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + ppgotominor.pp92 = phql_ret_delete_statement(ppmsp[-2].minor.pp92, ppmsp[-1].minor.pp92, ppmsp[0].minor.pp92); } // 1896 "parser.c" break; case 54: // 818 "parser.lemon" { - yygotominor.yy92 = phql_ret_delete_clause(yymsp[0].minor.yy92); - yy_destructor(48,&yymsp[-2].minor); - yy_destructor(27,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_delete_clause(ppmsp[0].minor.pp92); + pp_destructor(48,&ppmsp[-2].minor); + pp_destructor(27,&ppmsp[-1].minor); } // 1905 "parser.c" break; case 55: // 824 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[-2].minor.yy92, yymsp[0].minor.yy0); - yy_destructor(32,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); } // 1913 "parser.c" break; case 56: // 828 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[-1].minor.yy92, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[-1].minor.pp92, ppmsp[0].minor.pp0); } // 1920 "parser.c" break; case 57: // 832 "parser.lemon" { - yygotominor.yy92 = phql_ret_assoc_name(yymsp[0].minor.yy92, NULL); + ppgotominor.pp92 = phql_ret_assoc_name(ppmsp[0].minor.pp92, NULL); } // 1927 "parser.c" break; case 59: // 844 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(49,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(49,&ppmsp[-1].minor); } // 1935 "parser.c" break; case 61: // 854 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(50,&yymsp[-2].minor); - yy_destructor(51,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(50,&ppmsp[-2].minor); + pp_destructor(51,&ppmsp[-1].minor); } // 1944 "parser.c" break; case 65: // 874 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[0].minor.yy92, 0); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[0].minor.pp92, 0); } // 1951 "parser.c" break; case 66: // 878 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[-1].minor.yy92, PHQL_T_ASC); - yy_destructor(52,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[-1].minor.pp92, PHQL_T_ASC); + pp_destructor(52,&ppmsp[0].minor); } // 1959 "parser.c" break; case 67: // 882 "parser.lemon" { - yygotominor.yy92 = phql_ret_order_item(yymsp[-1].minor.yy92, PHQL_T_DESC); - yy_destructor(53,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_order_item(ppmsp[-1].minor.pp92, PHQL_T_DESC); + pp_destructor(53,&ppmsp[0].minor); } // 1967 "parser.c" break; case 68: // 888 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(54,&yymsp[-2].minor); - yy_destructor(51,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(54,&ppmsp[-2].minor); + pp_destructor(51,&ppmsp[-1].minor); } // 1976 "parser.c" break; case 73: // 914 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; - yy_destructor(55,&yymsp[-1].minor); + ppgotominor.pp92 = ppmsp[0].minor.pp92; + pp_destructor(55,&ppmsp[-1].minor); } // 1984 "parser.c" break; @@ -95915,26 +98287,26 @@ static void yy_reduce( case 79: // 924 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[0].minor.yy92, NULL); - yy_destructor(56,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[0].minor.pp92, NULL); + pp_destructor(56,&ppmsp[-1].minor); } // 1993 "parser.c" break; case 76: // 928 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[0].minor.yy92, yymsp[-2].minor.yy92); - yy_destructor(56,&yymsp[-3].minor); - yy_destructor(25,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[0].minor.pp92, ppmsp[-2].minor.pp92); + pp_destructor(56,&ppmsp[-3].minor); + pp_destructor(25,&ppmsp[-1].minor); } // 2002 "parser.c" break; case 77: // 932 "parser.lemon" { - yygotominor.yy92 = phql_ret_limit_clause(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(56,&yymsp[-3].minor); - yy_destructor(57,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_limit_clause(ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(56,&ppmsp[-3].minor); + pp_destructor(57,&ppmsp[-1].minor); } // 2011 "parser.c" break; @@ -95942,7 +98314,7 @@ static void yy_reduce( case 127: // 950 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_INTEGER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_INTEGER, ppmsp[0].minor.pp0); } // 2019 "parser.c" break; @@ -95950,7 +98322,7 @@ static void yy_reduce( case 133: // 954 "parser.lemon" { - yygotominor.yy92 = phql_ret_placeholder_zval(PHQL_T_NPLACEHOLDER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_placeholder_zval(PHQL_T_NPLACEHOLDER, ppmsp[0].minor.pp0); } // 2027 "parser.c" break; @@ -95958,397 +98330,397 @@ static void yy_reduce( case 134: // 958 "parser.lemon" { - yygotominor.yy92 = phql_ret_placeholder_zval(PHQL_T_SPLACEHOLDER, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_placeholder_zval(PHQL_T_SPLACEHOLDER, ppmsp[0].minor.pp0); } // 2035 "parser.c" break; case 84: // 964 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MINUS, NULL, yymsp[0].minor.yy92); - yy_destructor(20,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MINUS, NULL, ppmsp[0].minor.pp92); + pp_destructor(20,&ppmsp[-1].minor); } // 2043 "parser.c" break; case 85: // 968 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_SUB, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(20,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_SUB, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(20,&ppmsp[-1].minor); } // 2051 "parser.c" break; case 86: // 972 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ADD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(19,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ADD, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(19,&ppmsp[-1].minor); } // 2059 "parser.c" break; case 87: // 976 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MUL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(17,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MUL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(17,&ppmsp[-1].minor); } // 2067 "parser.c" break; case 88: // 980 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_DIV, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(16,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_DIV, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(16,&ppmsp[-1].minor); } // 2075 "parser.c" break; case 89: // 984 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_MOD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(18,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_MOD, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(18,&ppmsp[-1].minor); } // 2083 "parser.c" break; case 90: // 988 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(9,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_AND, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(9,&ppmsp[-1].minor); } // 2091 "parser.c" break; case 91: // 992 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(10,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_OR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(10,&ppmsp[-1].minor); } // 2099 "parser.c" break; case 92: // 996 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(13,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_AND, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(13,&ppmsp[-1].minor); } // 2107 "parser.c" break; case 93: // 1000 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(14,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_OR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(14,&ppmsp[-1].minor); } // 2115 "parser.c" break; case 94: // 1004 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_XOR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(15,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_XOR, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(15,&ppmsp[-1].minor); } // 2123 "parser.c" break; case 95: // 1008 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_EQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(3,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_EQUALS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(3,&ppmsp[-1].minor); } // 2131 "parser.c" break; case 96: // 1012 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOTEQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(4,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOTEQUALS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(4,&ppmsp[-1].minor); } // 2139 "parser.c" break; case 97: // 1016 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LESS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(5,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LESS, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(5,&ppmsp[-1].minor); } // 2147 "parser.c" break; case 98: // 1020 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_GREATER, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(6,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_GREATER, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(6,&ppmsp[-1].minor); } // 2155 "parser.c" break; case 99: // 1024 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_GREATEREQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(7,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_GREATEREQUAL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(7,&ppmsp[-1].minor); } // 2163 "parser.c" break; case 100: // 1028 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LESSEQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(8,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LESSEQUAL, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(8,&ppmsp[-1].minor); } // 2171 "parser.c" break; case 101: // 1032 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_LIKE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(11,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_LIKE, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(11,&ppmsp[-1].minor); } // 2179 "parser.c" break; case 102: // 1036 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NLIKE, yymsp[-3].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-2].minor); - yy_destructor(11,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NLIKE, ppmsp[-3].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-2].minor); + pp_destructor(11,&ppmsp[-1].minor); } // 2188 "parser.c" break; case 103: // 1040 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ILIKE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(12,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ILIKE, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(12,&ppmsp[-1].minor); } // 2196 "parser.c" break; case 104: // 1044 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NILIKE, yymsp[-3].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-2].minor); - yy_destructor(12,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NILIKE, ppmsp[-3].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-2].minor); + pp_destructor(12,&ppmsp[-1].minor); } // 2205 "parser.c" break; case 105: // 1048 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_IN, yymsp[-4].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(22,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_IN, ppmsp[-4].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(22,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2215 "parser.c" break; case 106: // 1052 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOTIN, yymsp[-5].minor.yy92, yymsp[-1].minor.yy92); - yy_destructor(23,&yymsp[-4].minor); - yy_destructor(22,&yymsp[-3].minor); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOTIN, ppmsp[-5].minor.pp92, ppmsp[-1].minor.pp92); + pp_destructor(23,&ppmsp[-4].minor); + pp_destructor(22,&ppmsp[-3].minor); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2226 "parser.c" break; case 107: // 1056 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_AGAINST, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(1,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_AGAINST, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(1,&ppmsp[-1].minor); } // 2234 "parser.c" break; case 108: // 1060 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_CAST, yymsp[-3].minor.yy92, phql_ret_raw_qualified_name(yymsp[-1].minor.yy0, NULL)); - yy_destructor(61,&yymsp[-5].minor); - yy_destructor(44,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_CAST, ppmsp[-3].minor.pp92, phql_ret_raw_qualified_name(ppmsp[-1].minor.pp0, NULL)); + pp_destructor(61,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-4].minor); + pp_destructor(32,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2245 "parser.c" break; case 109: // 1064 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_CONVERT, yymsp[-3].minor.yy92, phql_ret_raw_qualified_name(yymsp[-1].minor.yy0, NULL)); - yy_destructor(62,&yymsp[-5].minor); - yy_destructor(44,&yymsp[-4].minor); - yy_destructor(63,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_CONVERT, ppmsp[-3].minor.pp92, phql_ret_raw_qualified_name(ppmsp[-1].minor.pp0, NULL)); + pp_destructor(62,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-4].minor); + pp_destructor(63,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2256 "parser.c" break; case 111: // 1074 "parser.lemon" { - yygotominor.yy92 = phql_ret_func_call(yymsp[-4].minor.yy0, yymsp[-1].minor.yy92, yymsp[-2].minor.yy92); - yy_destructor(44,&yymsp[-3].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_func_call(ppmsp[-4].minor.pp0, ppmsp[-1].minor.pp92, ppmsp[-2].minor.pp92); + pp_destructor(44,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2265 "parser.c" break; case 112: // 1080 "parser.lemon" { - yygotominor.yy92 = phql_ret_distinct(); - yy_destructor(28,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_distinct(); + pp_destructor(28,&ppmsp[0].minor); } // 2273 "parser.c" break; case 120: // 1118 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ISNULL, yymsp[-2].minor.yy92, NULL); - yy_destructor(21,&yymsp[-1].minor); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ISNULL, ppmsp[-2].minor.pp92, NULL); + pp_destructor(21,&ppmsp[-1].minor); + pp_destructor(64,&ppmsp[0].minor); } // 2282 "parser.c" break; case 121: // 1122 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ISNOTNULL, yymsp[-3].minor.yy92, NULL); - yy_destructor(21,&yymsp[-2].minor); - yy_destructor(23,&yymsp[-1].minor); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ISNOTNULL, ppmsp[-3].minor.pp92, NULL); + pp_destructor(21,&ppmsp[-2].minor); + pp_destructor(23,&ppmsp[-1].minor); + pp_destructor(64,&ppmsp[0].minor); } // 2292 "parser.c" break; case 122: // 1126 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BETWEEN, yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(2,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BETWEEN, ppmsp[-2].minor.pp92, ppmsp[0].minor.pp92); + pp_destructor(2,&ppmsp[-1].minor); } // 2300 "parser.c" break; case 123: // 1130 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_NOT, NULL, yymsp[0].minor.yy92); - yy_destructor(23,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_NOT, NULL, ppmsp[0].minor.pp92); + pp_destructor(23,&ppmsp[-1].minor); } // 2308 "parser.c" break; case 124: // 1134 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_BITWISE_NOT, NULL, yymsp[0].minor.yy92); - yy_destructor(24,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_BITWISE_NOT, NULL, ppmsp[0].minor.pp92); + pp_destructor(24,&ppmsp[-1].minor); } // 2316 "parser.c" break; case 125: // 1138 "parser.lemon" { - yygotominor.yy92 = phql_ret_expr(PHQL_T_ENCLOSED, yymsp[-1].minor.yy92, NULL); - yy_destructor(44,&yymsp[-2].minor); - yy_destructor(45,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_expr(PHQL_T_ENCLOSED, ppmsp[-1].minor.pp92, NULL); + pp_destructor(44,&ppmsp[-2].minor); + pp_destructor(45,&ppmsp[0].minor); } // 2325 "parser.c" break; case 128: // 1150 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_STRING, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_STRING, ppmsp[0].minor.pp0); } // 2332 "parser.c" break; case 129: // 1154 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_DOUBLE, yymsp[0].minor.yy0); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_DOUBLE, ppmsp[0].minor.pp0); } // 2339 "parser.c" break; case 130: // 1158 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_NULL, NULL); - yy_destructor(64,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_NULL, NULL); + pp_destructor(64,&ppmsp[0].minor); } // 2347 "parser.c" break; case 131: // 1162 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_TRUE, NULL); - yy_destructor(67,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_TRUE, NULL); + pp_destructor(67,&ppmsp[0].minor); } // 2355 "parser.c" break; case 132: // 1166 "parser.lemon" { - yygotominor.yy92 = phql_ret_literal_zval(PHQL_T_FALSE, NULL); - yy_destructor(68,&yymsp[0].minor); + ppgotominor.pp92 = phql_ret_literal_zval(PHQL_T_FALSE, NULL); + pp_destructor(68,&ppmsp[0].minor); } // 2363 "parser.c" break; case 135: // 1180 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(yymsp[-4].minor.yy0, yymsp[-2].minor.yy0, yymsp[0].minor.yy0); - yy_destructor(69,&yymsp[-3].minor); - yy_destructor(31,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(ppmsp[-4].minor.pp0, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(69,&ppmsp[-3].minor); + pp_destructor(31,&ppmsp[-1].minor); } // 2372 "parser.c" break; case 136: // 1184 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(yymsp[-2].minor.yy0, NULL, yymsp[0].minor.yy0); - yy_destructor(69,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(ppmsp[-2].minor.pp0, NULL, ppmsp[0].minor.pp0); + pp_destructor(69,&ppmsp[-1].minor); } // 2380 "parser.c" break; case 137: // 1188 "parser.lemon" { - yygotominor.yy92 = phql_ret_qualified_name(NULL, yymsp[-2].minor.yy0, yymsp[0].minor.yy0); - yy_destructor(31,&yymsp[-1].minor); + ppgotominor.pp92 = phql_ret_qualified_name(NULL, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(31,&ppmsp[-1].minor); } // 2388 "parser.c" break; }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yypParser,yygoto); - if( yyact < YYNSTATE ){ - yy_shift(yypParser,yyact,yygoto,&yygotominor); - }else if( yyact == YYNSTATE + YYNRULE + 1 ){ - yy_accept(yypParser); + ppgoto = ppRuleInfo[ppruleno].lhs; + ppsize = ppRuleInfo[ppruleno].nrhs; + pppParser->ppidx -= ppsize; + ppact = pp_find_reduce_action(pppParser,ppgoto); + if( ppact < PPNSTATE ){ + pp_shift(pppParser,ppact,ppgoto,&ppgotominor); + }else if( ppact == PPNSTATE + PPNRULE + 1 ){ + pp_accept(pppParser); } } -static void yy_parse_failed( - yyParser *yypParser /* The parser */ +static void pp_parse_failed( + ppParser *pppParser /* The parser */ ){ phql_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sFail!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ +static void pp_syntax_error( + ppParser *pppParser, /* The parser */ + int ppmajor, /* The major type of the error token */ + PPMINORTYPE ppminor /* The minor type of the error token */ ){ phql_ARG_FETCH; -#define TOKEN (yyminor.yy0) +#define TOKEN (ppminor.pp0) // 474 "parser.lemon" if (status->scanner_state->start_length) { @@ -96420,16 +98792,16 @@ static void yy_syntax_error( phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_accept( - yyParser *yypParser /* The parser */ +static void pp_accept( + ppParser *pppParser /* The parser */ ){ phql_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sAccept!\n",ppTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -96455,56 +98827,56 @@ static void yy_accept( ** None. */ static void phql_( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - phql_TOKENTYPE yyminor /* The value for the token */ + void *ppp, /* The parser */ + int ppmajor, /* The major token code number */ + phql_TOKENTYPE ppminor /* The value for the token */ phql_ARG_PDECL /* Optional %extra_argument parameter */ ){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ - int yyerrorhit = 0; /* True if yymajor has invoked an error */ - yyParser *yypParser; /* The parser */ + PPMINORTYPE ppminorunion; + int ppact; /* The parser action. */ + int ppendofinput; /* True if we are at the end of input */ + int pperrorhit = 0; /* True if ppmajor has invoked an error */ + ppParser *pppParser; /* The parser */ /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ - if( yymajor==0 ) return; - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + pppParser = (ppParser*)ppp; + if( pppParser->ppidx<0 ){ + if( ppmajor==0 ) return; + pppParser->ppidx = 0; + pppParser->pperrcnt = -1; + pppParser->ppstack[0].stateno = 0; + pppParser->ppstack[0].major = 0; } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); + ppminorunion.pp0 = ppminor; + ppendofinput = (ppmajor==0); phql_ARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sInput %s\n",ppTracePrompt,ppTokenName[ppmajor]); } #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); - if( yyactyyerrcnt--; - if( yyendofinput && yypParser->yyidx>=0 ){ - yymajor = 0; + ppact = pp_find_shift_action(pppParser,ppmajor); + if( ppactpperrcnt--; + if( ppendofinput && pppParser->ppidx>=0 ){ + ppmajor = 0; }else{ - yymajor = YYNOCODE; + ppmajor = PPNOCODE; } - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else if( yyact == YY_ERROR_ACTION ){ - int yymx; + }else if( ppact < PPNSTATE + PPNRULE ){ + pp_reduce(pppParser,ppact-PPNSTATE); + }else if( ppact == PP_ERROR_ACTION ){ + int ppmx; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sSyntax Error!\n",ppTracePrompt); } #endif -#ifdef YYERRORSYMBOL +#ifdef PPERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -96524,40 +98896,40 @@ static void phql_( ** shifted successfully. ** */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( pppParser->pperrcnt<0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + ppmx = pppParser->ppstack[pppParser->ppidx].major; + if( ppmx==PPERRORSYMBOL || pperrorhit ){ #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sDiscard input token %s\n", + ppTracePrompt,ppTokenName[ppmajor]); } #endif - yy_destructor(yymajor,&yyminorunion); - yymajor = YYNOCODE; + pp_destructor(ppmajor,&ppminorunion); + ppmajor = PPNOCODE; }else{ while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE + pppParser->ppidx >= 0 && + ppmx != PPERRORSYMBOL && + (ppact = pp_find_shift_action(pppParser,PPERRORSYMBOL)) >= PPNSTATE ){ - yy_pop_parser_stack(yypParser); + pp_pop_parser_stack(pppParser); } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + if( pppParser->ppidx < 0 || ppmajor==0 ){ + pp_destructor(ppmajor,&ppminorunion); + pp_parse_failed(pppParser); + ppmajor = PPNOCODE; + }else if( ppmx!=PPERRORSYMBOL ){ + PPMINORTYPE u2; + u2.PPERRSYMDT = 0; + pp_shift(pppParser,ppact,PPERRORSYMBOL,&u2); } } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#else /* YYERRORSYMBOL is not defined */ + pppParser->pperrcnt = 3; + pperrorhit = 1; +#else /* PPERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -96567,21 +98939,21 @@ static void phql_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( pppParser->pperrcnt<=0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); } - yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); + pppParser->pperrcnt = 3; + pp_destructor(ppmajor,&ppminorunion); + if( ppendofinput ){ + pp_parse_failed(pppParser); } - yymajor = YYNOCODE; + ppmajor = PPNOCODE; #endif }else{ - yy_accept(yypParser); - yymajor = YYNOCODE; + pp_accept(pppParser); + ppmajor = PPNOCODE; } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + }while( ppmajor!=PPNOCODE && pppParser->ppidx>=0 ); return; } @@ -97128,7 +99500,7 @@ static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql } -/* Generated by re2c 0.13.5 on Mon Apr 27 09:01:41 2015 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:07:52 2015 */ // 1 "scanner.re" @@ -97137,14 +99509,14 @@ static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql -#define YYCTYPE unsigned char -#define YYCURSOR (s->start) -#define YYLIMIT (s->end) -#define YYMARKER q +#define PPCTYPE unsigned char +#define PPCURSOR (s->start) +#define PPLIMIT (s->end) +#define PPMARKER q static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { - char *q = YYCURSOR; + char *q = PPCURSOR; int status = PHQL_SCANNER_RETCODE_IMPOSSIBLE; while (PHQL_SCANNER_RETCODE_IMPOSSIBLE == status) { @@ -97152,29 +99524,29 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { // 45 "scanner.c" { - YYCTYPE yych; - unsigned int yyaccept = 0; + PPCTYPE ppch; + unsigned int ppaccept = 0; - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy69; + ppch = *PPCURSOR; + switch (ppch) { + case 0x00: goto pp69; case '\t': case '\n': case '\r': - case ' ': goto yy67; - case '!': goto yy50; - case '"': goto yy29; - case '%': goto yy42; - case '&': goto yy61; - case '\'': goto yy30; - case '(': goto yy46; - case ')': goto yy48; - case '*': goto yy38; - case '+': goto yy34; - case ',': goto yy44; - case '-': goto yy36; - case '.': goto yy4; - case '/': goto yy40; + case ' ': goto pp67; + case '!': goto pp50; + case '"': goto pp29; + case '%': goto pp42; + case '&': goto pp61; + case '\'': goto pp30; + case '(': goto pp46; + case ')': goto pp48; + case '*': goto pp38; + case '+': goto pp34; + case ',': goto pp44; + case '-': goto pp36; + case '.': goto pp4; + case '/': goto pp40; case '0': case '1': case '2': @@ -97184,21 +99556,21 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy2; - case ':': goto yy8; - case '<': goto yy52; - case '=': goto yy56; - case '>': goto yy54; - case '?': goto yy6; - case '@': goto yy58; + case '9': goto pp2; + case ':': goto pp8; + case '<': goto pp52; + case '=': goto pp56; + case '>': goto pp54; + case '?': goto pp6; + case '@': goto pp58; case 'A': - case 'a': goto yy15; + case 'a': goto pp15; case 'B': - case 'b': goto yy20; + case 'b': goto pp20; case 'C': - case 'c': goto yy27; + case 'c': goto pp27; case 'D': - case 'd': goto yy13; + case 'd': goto pp13; case 'E': case 'K': case 'M': @@ -97215,46 +99587,46 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'q': case 'x': case 'y': - case 'z': goto yy32; + case 'z': goto pp32; case 'F': - case 'f': goto yy14; + case 'f': goto pp14; case 'G': - case 'g': goto yy21; + case 'g': goto pp21; case 'H': - case 'h': goto yy22; + case 'h': goto pp22; case 'I': - case 'i': goto yy16; + case 'i': goto pp16; case 'J': - case 'j': goto yy25; + case 'j': goto pp25; case 'L': - case 'l': goto yy23; + case 'l': goto pp23; case 'N': - case 'n': goto yy24; + case 'n': goto pp24; case 'O': - case 'o': goto yy19; + case 'o': goto pp19; case 'R': - case 'r': goto yy26; + case 'r': goto pp26; case 'S': - case 's': goto yy12; + case 's': goto pp12; case 'T': - case 't': goto yy28; + case 't': goto pp28; case 'U': - case 'u': goto yy10; + case 'u': goto pp10; case 'V': - case 'v': goto yy17; + case 'v': goto pp17; case 'W': - case 'w': goto yy18; - case '[': goto yy33; - case '\\': goto yy31; - case '^': goto yy65; - case '|': goto yy59; - case '~': goto yy63; - default: goto yy71; - } -yy2: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '.': goto yy302; + case 'w': goto pp18; + case '[': goto pp33; + case '\\': goto pp31; + case '^': goto pp65; + case '|': goto pp59; + case '~': goto pp63; + default: goto pp71; + } +pp2: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '.': goto pp302; case '0': case '1': case '2': @@ -97264,22 +99636,22 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy304; - default: goto yy3; + case '9': goto pp304; + default: goto pp3; } -yy3: +pp3: // 46 "scanner.re" { token->opcode = PHQL_T_INTEGER; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } // 171 "scanner.c" -yy4: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp4: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -97289,19 +99661,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy299; - default: goto yy5; + case '9': goto pp299; + default: goto pp5; } -yy5: +pp5: // 358 "scanner.re" { token->opcode = PHQL_T_DOT; return 0; } // 193 "scanner.c" -yy6: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp6: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -97311,20 +99683,20 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy296; - default: goto yy7; + case '9': goto pp296; + default: goto pp7; } -yy7: +pp7: // 483 "scanner.re" { status = PHQL_SCANNER_RETCODE_ERR; break; } // 215 "scanner.c" -yy8: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { +pp8: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { case '-': case '0': case '1': @@ -97388,209 +99760,209 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy292; - default: goto yy9; + case 'z': goto pp292; + default: goto pp9; } -yy9: +pp9: // 363 "scanner.re" { token->opcode = PHQL_T_COLON; return 0; } // 292 "scanner.c" -yy10: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp10: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case 'P': - case 'p': goto yy281; + case 'p': goto pp281; case 'S': - case 's': goto yy282; - default: goto yy98; + case 's': goto pp282; + default: goto pp98; } -yy11: +pp11: // 306 "scanner.re" { token->opcode = PHQL_T_IDENTIFIER; - if ((YYCURSOR - q) > 1) { + if ((PPCURSOR - q) > 1) { if (q[0] == '\\') { - token->value = estrndup(q + 1, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; + token->value = estrndup(q + 1, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; } else { - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } } else { - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } - q = YYCURSOR; + q = PPCURSOR; return 0; } // 321 "scanner.c" -yy12: - yych = *++YYCURSOR; - switch (yych) { +pp12: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy273; - default: goto yy98; + case 'e': goto pp273; + default: goto pp98; } -yy13: - yych = *++YYCURSOR; - switch (yych) { +pp13: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy256; + case 'e': goto pp256; case 'I': - case 'i': goto yy257; - default: goto yy98; + case 'i': goto pp257; + default: goto pp98; } -yy14: - yych = *++YYCURSOR; - switch (yych) { +pp14: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy243; + case 'a': goto pp243; case 'R': - case 'r': goto yy244; + case 'r': goto pp244; case 'U': - case 'u': goto yy245; - default: goto yy98; + case 'u': goto pp245; + default: goto pp98; } -yy15: - yych = *++YYCURSOR; - switch (yych) { +pp15: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy226; + case 'g': goto pp226; case 'L': - case 'l': goto yy227; + case 'l': goto pp227; case 'N': - case 'n': goto yy228; + case 'n': goto pp228; case 'S': - case 's': goto yy229; - default: goto yy98; + case 's': goto pp229; + default: goto pp98; } -yy16: - yych = *++YYCURSOR; - switch (yych) { +pp16: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy205; + case 'l': goto pp205; case 'N': - case 'n': goto yy206; + case 'n': goto pp206; case 'S': - case 's': goto yy208; - default: goto yy98; + case 's': goto pp208; + default: goto pp98; } -yy17: - yych = *++YYCURSOR; - switch (yych) { +pp17: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy199; - default: goto yy98; + case 'a': goto pp199; + default: goto pp98; } -yy18: - yych = *++YYCURSOR; - switch (yych) { +pp18: + ppch = *++PPCURSOR; + switch (ppch) { case 'H': - case 'h': goto yy194; - default: goto yy98; + case 'h': goto pp194; + default: goto pp98; } -yy19: - yych = *++YYCURSOR; - switch (yych) { +pp19: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy175; + case 'f': goto pp175; case 'N': - case 'n': goto yy176; + case 'n': goto pp176; case 'R': - case 'r': goto yy178; + case 'r': goto pp178; case 'U': - case 'u': goto yy180; - default: goto yy98; + case 'u': goto pp180; + default: goto pp98; } -yy20: - yych = *++YYCURSOR; - switch (yych) { +pp20: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy166; + case 'e': goto pp166; case 'Y': - case 'y': goto yy167; - default: goto yy98; + case 'y': goto pp167; + default: goto pp98; } -yy21: - yych = *++YYCURSOR; - switch (yych) { +pp21: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy161; - default: goto yy98; + case 'r': goto pp161; + default: goto pp98; } -yy22: - yych = *++YYCURSOR; - switch (yych) { +pp22: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy155; - default: goto yy98; + case 'a': goto pp155; + default: goto pp98; } -yy23: - yych = *++YYCURSOR; - switch (yych) { +pp23: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy143; + case 'e': goto pp143; case 'I': - case 'i': goto yy144; - default: goto yy98; + case 'i': goto pp144; + default: goto pp98; } -yy24: - yych = *++YYCURSOR; - switch (yych) { +pp24: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy136; + case 'o': goto pp136; case 'U': - case 'u': goto yy137; - default: goto yy98; + case 'u': goto pp137; + default: goto pp98; } -yy25: - yych = *++YYCURSOR; - switch (yych) { +pp25: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy132; - default: goto yy98; + case 'o': goto pp132; + default: goto pp98; } -yy26: - yych = *++YYCURSOR; - switch (yych) { +pp26: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy127; - default: goto yy98; + case 'i': goto pp127; + default: goto pp98; } -yy27: - yych = *++YYCURSOR; - switch (yych) { +pp27: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy111; + case 'a': goto pp111; case 'O': - case 'o': goto yy112; + case 'o': goto pp112; case 'R': - case 'r': goto yy113; - default: goto yy98; + case 'r': goto pp113; + default: goto pp98; } -yy28: - yych = *++YYCURSOR; - switch (yych) { +pp28: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy107; - default: goto yy98; - } -yy29: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy7; - goto yy105; -yy30: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy7; - goto yy100; -yy31: - yych = *++YYCURSOR; - switch (yych) { + case 'r': goto pp107; + default: goto pp98; + } +pp29: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp7; + goto pp105; +pp30: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp7; + goto pp100; +pp31: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': case 'B': case 'C': @@ -97643,16 +100015,16 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy7; - } -yy32: - yych = *++YYCURSOR; - goto yy98; -yy33: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { + case 'z': goto pp97; + default: goto pp7; + } +pp32: + ppch = *++PPCURSOR; + goto pp98; +pp33: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { case 'A': case 'B': case 'C': @@ -97706,280 +100078,280 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy92; - default: goto yy7; + case 'z': goto pp92; + default: goto pp7; } -yy34: - ++YYCURSOR; +pp34: + ++PPCURSOR; // 333 "scanner.re" { token->opcode = PHQL_T_ADD; return 0; } // 611 "scanner.c" -yy36: - ++YYCURSOR; +pp36: + ++PPCURSOR; // 338 "scanner.re" { token->opcode = PHQL_T_SUB; return 0; } // 619 "scanner.c" -yy38: - ++YYCURSOR; +pp38: + ++PPCURSOR; // 343 "scanner.re" { token->opcode = PHQL_T_MUL; return 0; } // 627 "scanner.c" -yy40: - ++YYCURSOR; +pp40: + ++PPCURSOR; // 348 "scanner.re" { token->opcode = PHQL_T_DIV; return 0; } // 635 "scanner.c" -yy42: - ++YYCURSOR; +pp42: + ++PPCURSOR; // 353 "scanner.re" { token->opcode = PHQL_T_MOD; return 0; } // 643 "scanner.c" -yy44: - ++YYCURSOR; +pp44: + ++PPCURSOR; // 368 "scanner.re" { token->opcode = PHQL_T_COMMA; return 0; } // 651 "scanner.c" -yy46: - ++YYCURSOR; +pp46: + ++PPCURSOR; // 373 "scanner.re" { token->opcode = PHQL_T_PARENTHESES_OPEN; return 0; } // 659 "scanner.c" -yy48: - ++YYCURSOR; +pp48: + ++PPCURSOR; // 378 "scanner.re" { token->opcode = PHQL_T_PARENTHESES_CLOSE; return 0; } // 667 "scanner.c" -yy50: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '!': goto yy88; - case '=': goto yy90; - default: goto yy51; - } -yy51: +pp50: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '!': goto pp88; + case '=': goto pp90; + default: goto pp51; + } +pp51: // 448 "scanner.re" { token->opcode = PHQL_T_NOT; return 0; } // 681 "scanner.c" -yy52: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy84; - case '>': goto yy86; - default: goto yy53; - } -yy53: +pp52: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '=': goto pp84; + case '>': goto pp86; + default: goto pp53; + } +pp53: // 403 "scanner.re" { token->opcode = PHQL_T_LESS; return 0; } // 695 "scanner.c" -yy54: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy82; - default: goto yy55; +pp54: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '=': goto pp82; + default: goto pp55; } -yy55: +pp55: // 408 "scanner.re" { token->opcode = PHQL_T_GREATER; return 0; } // 708 "scanner.c" -yy56: - ++YYCURSOR; +pp56: + ++PPCURSOR; // 413 "scanner.re" { token->opcode = PHQL_T_EQUALS; return 0; } // 716 "scanner.c" -yy58: - yych = *++YYCURSOR; - switch (yych) { - case '>': goto yy78; - case '@': goto yy80; - default: goto yy7; - } -yy59: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '|': goto yy76; - default: goto yy60; - } -yy60: +pp58: + ppch = *++PPCURSOR; + switch (ppch) { + case '>': goto pp78; + case '@': goto pp80; + default: goto pp7; + } +pp59: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '|': goto pp76; + default: goto pp60; + } +pp60: // 468 "scanner.re" { token->opcode = PHQL_T_BITWISE_OR; return 0; } // 736 "scanner.c" -yy61: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '&': goto yy74; - default: goto yy62; +pp61: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { + case '&': goto pp74; + default: goto pp62; } -yy62: +pp62: // 463 "scanner.re" { token->opcode = PHQL_T_BITWISE_AND; return 0; } // 749 "scanner.c" -yy63: - ++YYCURSOR; +pp63: + ++PPCURSOR; // 453 "scanner.re" { token->opcode = PHQL_T_BITWISE_NOT; return 0; } // 757 "scanner.c" -yy65: - ++YYCURSOR; +pp65: + ++PPCURSOR; // 458 "scanner.re" { token->opcode = PHQL_T_BITWISE_XOR; return 0; } // 765 "scanner.c" -yy67: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy73; -yy68: +pp67: + ++PPCURSOR; + ppch = *PPCURSOR; + goto pp73; +pp68: // 473 "scanner.re" { token->opcode = PHQL_T_IGNORE; return 0; } // 776 "scanner.c" -yy69: - ++YYCURSOR; +pp69: + ++PPCURSOR; // 478 "scanner.re" { status = PHQL_SCANNER_RETCODE_EOF; break; } // 784 "scanner.c" -yy71: - yych = *++YYCURSOR; - goto yy7; -yy72: - ++YYCURSOR; - yych = *YYCURSOR; -yy73: - switch (yych) { +pp71: + ppch = *++PPCURSOR; + goto pp7; +pp72: + ++PPCURSOR; + ppch = *PPCURSOR; +pp73: + switch (ppch) { case '\t': case '\n': case '\r': - case ' ': goto yy72; - default: goto yy68; + case ' ': goto pp72; + default: goto pp68; } -yy74: - ++YYCURSOR; +pp74: + ++PPCURSOR; // 428 "scanner.re" { token->opcode = PHQL_T_TS_AND; return 0; } // 806 "scanner.c" -yy76: - ++YYCURSOR; +pp76: + ++PPCURSOR; // 423 "scanner.re" { token->opcode = PHQL_T_TS_OR; return 0; } // 814 "scanner.c" -yy78: - ++YYCURSOR; +pp78: + ++PPCURSOR; // 438 "scanner.re" { token->opcode = PHQL_T_TS_CONTAINS_ANOTHER; return 0; } // 822 "scanner.c" -yy80: - ++YYCURSOR; +pp80: + ++PPCURSOR; // 418 "scanner.re" { token->opcode = PHQL_T_TS_MATCHES; return 0; } // 830 "scanner.c" -yy82: - ++YYCURSOR; +pp82: + ++PPCURSOR; // 398 "scanner.re" { token->opcode = PHQL_T_GREATEREQUAL; return 0; } // 838 "scanner.c" -yy84: - ++YYCURSOR; +pp84: + ++PPCURSOR; // 393 "scanner.re" { token->opcode = PHQL_T_LESSEQUAL; return 0; } // 846 "scanner.c" -yy86: - ++YYCURSOR; +pp86: + ++PPCURSOR; // 388 "scanner.re" { token->opcode = PHQL_T_NOTEQUALS; return 0; } // 854 "scanner.c" -yy88: - ++YYCURSOR; +pp88: + ++PPCURSOR; // 433 "scanner.re" { token->opcode = PHQL_T_TS_NEGATE; return 0; } // 862 "scanner.c" -yy90: - ++YYCURSOR; +pp90: + ++PPCURSOR; // 383 "scanner.re" { token->opcode = PHQL_T_NOTEQUALS; return 0; } // 870 "scanner.c" -yy92: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +pp92: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -98043,32 +100415,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy92; - case ']': goto yy95; - default: goto yy94; - } -yy94: - YYCURSOR = YYMARKER; - switch (yyaccept) { - case 0: goto yy9; - case 1: goto yy7; - } -yy95: - ++YYCURSOR; + case 'z': goto pp92; + case ']': goto pp95; + default: goto pp94; + } +pp94: + PPCURSOR = PPMARKER; + if (ppaccept == 0) { + goto pp9; + } else { + goto pp7; + } +pp95: + ++PPCURSOR; // 325 "scanner.re" { token->opcode = PHQL_T_IDENTIFIER; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 958 "scanner.c" -yy97: - ++YYCURSOR; - yych = *YYCURSOR; -yy98: - switch (yych) { +// 959 "scanner.c" +pp97: + ++PPCURSOR; + ppch = *PPCURSOR; +pp98: + switch (ppch) { case '0': case '1': case '2': @@ -98132,71 +100505,71 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy11; - } -yy99: - ++YYCURSOR; - yych = *YYCURSOR; -yy100: - switch (yych) { - case 0x00: goto yy94; - case '\'': goto yy102; - case '\\': goto yy101; - default: goto yy99; - } -yy101: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '\n': goto yy94; - default: goto yy99; - } -yy102: - ++YYCURSOR; + case 'z': goto pp97; + default: goto pp11; + } +pp99: + ++PPCURSOR; + ppch = *PPCURSOR; +pp100: + switch (ppch) { + case 0x00: goto pp94; + case '\'': goto pp102; + case '\\': goto pp101; + default: goto pp99; + } +pp101: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '\n': goto pp94; + default: goto pp99; + } +pp102: + ++PPCURSOR; // 297 "scanner.re" { token->opcode = PHQL_T_STRING; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 1057 "scanner.c" -yy104: - ++YYCURSOR; - yych = *YYCURSOR; -yy105: - switch (yych) { - case 0x00: goto yy94; - case '"': goto yy102; - case '\\': goto yy106; - default: goto yy104; - } -yy106: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '\n': goto yy94; - default: goto yy104; - } -yy107: - yych = *++YYCURSOR; - switch (yych) { +// 1058 "scanner.c" +pp104: + ++PPCURSOR; + ppch = *PPCURSOR; +pp105: + switch (ppch) { + case 0x00: goto pp94; + case '"': goto pp102; + case '\\': goto pp106; + default: goto pp104; + } +pp106: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '\n': goto pp94; + default: goto pp104; + } +pp107: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy108; - default: goto yy98; + case 'u': goto pp108; + default: goto pp98; } -yy108: - yych = *++YYCURSOR; - switch (yych) { +pp108: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy109; - default: goto yy98; + case 'e': goto pp109; + default: goto pp98; } -yy109: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp109: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98260,54 +100633,54 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy110; + case 'z': goto pp97; + default: goto pp110; } -yy110: +pp110: // 286 "scanner.re" { token->opcode = PHQL_T_TRUE; return 0; } -// 1164 "scanner.c" -yy111: - yych = *++YYCURSOR; - switch (yych) { +// 1165 "scanner.c" +pp111: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy124; - default: goto yy98; + case 's': goto pp124; + default: goto pp98; } -yy112: - yych = *++YYCURSOR; - switch (yych) { +pp112: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy118; - default: goto yy98; + case 'n': goto pp118; + default: goto pp98; } -yy113: - yych = *++YYCURSOR; - switch (yych) { +pp113: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy114; - default: goto yy98; + case 'o': goto pp114; + default: goto pp98; } -yy114: - yych = *++YYCURSOR; - switch (yych) { +pp114: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy115; - default: goto yy98; + case 's': goto pp115; + default: goto pp98; } -yy115: - yych = *++YYCURSOR; - switch (yych) { +pp115: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy116; - default: goto yy98; + case 's': goto pp116; + default: goto pp98; } -yy116: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp116: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98371,47 +100744,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy117; + case 'z': goto pp97; + default: goto pp117; } -yy117: +pp117: // 231 "scanner.re" { token->opcode = PHQL_T_CROSS; return 0; } -// 1275 "scanner.c" -yy118: - yych = *++YYCURSOR; - switch (yych) { +// 1276 "scanner.c" +pp118: + ppch = *++PPCURSOR; + switch (ppch) { case 'V': - case 'v': goto yy119; - default: goto yy98; + case 'v': goto pp119; + default: goto pp98; } -yy119: - yych = *++YYCURSOR; - switch (yych) { +pp119: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy120; - default: goto yy98; + case 'e': goto pp120; + default: goto pp98; } -yy120: - yych = *++YYCURSOR; - switch (yych) { +pp120: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy121; - default: goto yy98; + case 'r': goto pp121; + default: goto pp98; } -yy121: - yych = *++YYCURSOR; - switch (yych) { +pp121: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy122; - default: goto yy98; + case 't': goto pp122; + default: goto pp98; } -yy122: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp122: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98475,26 +100848,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy123; + case 'z': goto pp97; + default: goto pp123; } -yy123: +pp123: // 276 "scanner.re" { token->opcode = PHQL_T_CONVERT; return 0; } -// 1379 "scanner.c" -yy124: - yych = *++YYCURSOR; - switch (yych) { +// 1380 "scanner.c" +pp124: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy125; - default: goto yy98; + case 't': goto pp125; + default: goto pp98; } -yy125: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp125: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98558,40 +100931,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy126; + case 'z': goto pp97; + default: goto pp126; } -yy126: +pp126: // 271 "scanner.re" { token->opcode = PHQL_T_CAST; return 0; } -// 1462 "scanner.c" -yy127: - yych = *++YYCURSOR; - switch (yych) { +// 1463 "scanner.c" +pp127: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy128; - default: goto yy98; + case 'g': goto pp128; + default: goto pp98; } -yy128: - yych = *++YYCURSOR; - switch (yych) { +pp128: + ppch = *++PPCURSOR; + switch (ppch) { case 'H': - case 'h': goto yy129; - default: goto yy98; + case 'h': goto pp129; + default: goto pp98; } -yy129: - yych = *++YYCURSOR; - switch (yych) { +pp129: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy130; - default: goto yy98; + case 't': goto pp130; + default: goto pp98; } -yy130: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp130: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98655,33 +101028,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy131; + case 'z': goto pp97; + default: goto pp131; } -yy131: +pp131: // 226 "scanner.re" { token->opcode = PHQL_T_RIGHT; return 0; } -// 1559 "scanner.c" -yy132: - yych = *++YYCURSOR; - switch (yych) { +// 1560 "scanner.c" +pp132: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy133; - default: goto yy98; + case 'i': goto pp133; + default: goto pp98; } -yy133: - yych = *++YYCURSOR; - switch (yych) { +pp133: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy134; - default: goto yy98; + case 'n': goto pp134; + default: goto pp98; } -yy134: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp134: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98745,40 +101118,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy135; + case 'z': goto pp97; + default: goto pp135; } -yy135: +pp135: // 211 "scanner.re" { token->opcode = PHQL_T_JOIN; return 0; } -// 1649 "scanner.c" -yy136: - yych = *++YYCURSOR; - switch (yych) { +// 1650 "scanner.c" +pp136: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy141; - default: goto yy98; + case 't': goto pp141; + default: goto pp98; } -yy137: - yych = *++YYCURSOR; - switch (yych) { +pp137: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy138; - default: goto yy98; + case 'l': goto pp138; + default: goto pp98; } -yy138: - yych = *++YYCURSOR; - switch (yych) { +pp138: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy139; - default: goto yy98; + case 'l': goto pp139; + default: goto pp98; } -yy139: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp139: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98842,19 +101215,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy140; + case 'z': goto pp97; + default: goto pp140; } -yy140: +pp140: // 251 "scanner.re" { token->opcode = PHQL_T_NULL; return 0; } -// 1746 "scanner.c" -yy141: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 1747 "scanner.c" +pp141: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -98918,49 +101291,49 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy142; + case 'z': goto pp97; + default: goto pp142; } -yy142: +pp142: // 171 "scanner.re" { token->opcode = PHQL_T_NOT; return 0; } -// 1822 "scanner.c" -yy143: - yych = *++YYCURSOR; - switch (yych) { +// 1823 "scanner.c" +pp143: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy152; - default: goto yy98; + case 'f': goto pp152; + default: goto pp98; } -yy144: - yych = *++YYCURSOR; - switch (yych) { +pp144: + ppch = *++PPCURSOR; + switch (ppch) { case 'K': - case 'k': goto yy146; + case 'k': goto pp146; case 'M': - case 'm': goto yy145; - default: goto yy98; + case 'm': goto pp145; + default: goto pp98; } -yy145: - yych = *++YYCURSOR; - switch (yych) { +pp145: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy149; - default: goto yy98; + case 'i': goto pp149; + default: goto pp98; } -yy146: - yych = *++YYCURSOR; - switch (yych) { +pp146: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy147; - default: goto yy98; + case 'e': goto pp147; + default: goto pp98; } -yy147: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp147: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99024,26 +101397,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy148; + case 'z': goto pp97; + default: goto pp148; } -yy148: +pp148: // 186 "scanner.re" { token->opcode = PHQL_T_LIKE; return 0; } -// 1928 "scanner.c" -yy149: - yych = *++YYCURSOR; - switch (yych) { +// 1929 "scanner.c" +pp149: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy150; - default: goto yy98; + case 't': goto pp150; + default: goto pp98; } -yy150: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp150: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99107,26 +101480,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy151; + case 'z': goto pp97; + default: goto pp151; } -yy151: +pp151: // 161 "scanner.re" { token->opcode = PHQL_T_LIMIT; return 0; } -// 2011 "scanner.c" -yy152: - yych = *++YYCURSOR; - switch (yych) { +// 2012 "scanner.c" +pp152: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy153; - default: goto yy98; + case 't': goto pp153; + default: goto pp98; } -yy153: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp153: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99190,47 +101563,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy154; + case 'z': goto pp97; + default: goto pp154; } -yy154: +pp154: // 221 "scanner.re" { token->opcode = PHQL_T_LEFT; return 0; } -// 2094 "scanner.c" -yy155: - yych = *++YYCURSOR; - switch (yych) { +// 2095 "scanner.c" +pp155: + ppch = *++PPCURSOR; + switch (ppch) { case 'V': - case 'v': goto yy156; - default: goto yy98; + case 'v': goto pp156; + default: goto pp98; } -yy156: - yych = *++YYCURSOR; - switch (yych) { +pp156: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy157; - default: goto yy98; + case 'i': goto pp157; + default: goto pp98; } -yy157: - yych = *++YYCURSOR; - switch (yych) { +pp157: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy158; - default: goto yy98; + case 'n': goto pp158; + default: goto pp98; } -yy158: - yych = *++YYCURSOR; - switch (yych) { +pp158: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy159; - default: goto yy98; + case 'g': goto pp159; + default: goto pp98; } -yy159: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp159: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99294,40 +101667,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy160; + case 'z': goto pp97; + default: goto pp160; } -yy160: +pp160: // 156 "scanner.re" { token->opcode = PHQL_T_HAVING; return 0; } -// 2198 "scanner.c" -yy161: - yych = *++YYCURSOR; - switch (yych) { +// 2199 "scanner.c" +pp161: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy162; - default: goto yy98; + case 'o': goto pp162; + default: goto pp98; } -yy162: - yych = *++YYCURSOR; - switch (yych) { +pp162: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy163; - default: goto yy98; + case 'u': goto pp163; + default: goto pp98; } -yy163: - yych = *++YYCURSOR; - switch (yych) { +pp163: + ppch = *++PPCURSOR; + switch (ppch) { case 'P': - case 'p': goto yy164; - default: goto yy98; + case 'p': goto pp164; + default: goto pp98; } -yy164: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp164: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99391,26 +101764,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy165; + case 'z': goto pp97; + default: goto pp165; } -yy165: +pp165: // 151 "scanner.re" { token->opcode = PHQL_T_GROUP; return 0; } -// 2295 "scanner.c" -yy166: - yych = *++YYCURSOR; - switch (yych) { +// 2296 "scanner.c" +pp166: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy169; - default: goto yy98; + case 't': goto pp169; + default: goto pp98; } -yy167: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp167: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99474,47 +101847,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy168; + case 'z': goto pp97; + default: goto pp168; } -yy168: +pp168: // 136 "scanner.re" { token->opcode = PHQL_T_BY; return 0; } -// 2378 "scanner.c" -yy169: - yych = *++YYCURSOR; - switch (yych) { +// 2379 "scanner.c" +pp169: + ppch = *++PPCURSOR; + switch (ppch) { case 'W': - case 'w': goto yy170; - default: goto yy98; + case 'w': goto pp170; + default: goto pp98; } -yy170: - yych = *++YYCURSOR; - switch (yych) { +pp170: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy171; - default: goto yy98; + case 'e': goto pp171; + default: goto pp98; } -yy171: - yych = *++YYCURSOR; - switch (yych) { +pp171: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy172; - default: goto yy98; + case 'e': goto pp172; + default: goto pp98; } -yy172: - yych = *++YYCURSOR; - switch (yych) { +pp172: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy173; - default: goto yy98; + case 'n': goto pp173; + default: goto pp98; } -yy173: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp173: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99578,26 +101951,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy174; + case 'z': goto pp97; + default: goto pp174; } -yy174: +pp174: // 266 "scanner.re" { token->opcode = PHQL_T_BETWEEN; return 0; } -// 2482 "scanner.c" -yy175: - yych = *++YYCURSOR; - switch (yych) { +// 2483 "scanner.c" +pp175: + ppch = *++PPCURSOR; + switch (ppch) { case 'F': - case 'f': goto yy189; - default: goto yy98; + case 'f': goto pp189; + default: goto pp98; } -yy176: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp176: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99661,19 +102034,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy177; + case 'z': goto pp97; + default: goto pp177; } -yy177: +pp177: // 206 "scanner.re" { token->opcode = PHQL_T_ON; return 0; } -// 2565 "scanner.c" -yy178: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 2566 "scanner.c" +pp178: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99735,42 +102108,42 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'D': - case 'd': goto yy185; - default: goto yy179; + case 'd': goto pp185; + default: goto pp179; } -yy179: +pp179: // 181 "scanner.re" { token->opcode = PHQL_T_OR; return 0; } -// 2641 "scanner.c" -yy180: - yych = *++YYCURSOR; - switch (yych) { +// 2642 "scanner.c" +pp180: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy181; - default: goto yy98; + case 't': goto pp181; + default: goto pp98; } -yy181: - yych = *++YYCURSOR; - switch (yych) { +pp181: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy182; - default: goto yy98; + case 'e': goto pp182; + default: goto pp98; } -yy182: - yych = *++YYCURSOR; - switch (yych) { +pp182: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy183; - default: goto yy98; + case 'r': goto pp183; + default: goto pp98; } -yy183: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp183: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99834,33 +102207,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy184; + case 'z': goto pp97; + default: goto pp184; } -yy184: +pp184: // 236 "scanner.re" { token->opcode = PHQL_T_OUTER; return 0; } -// 2738 "scanner.c" -yy185: - yych = *++YYCURSOR; - switch (yych) { +// 2739 "scanner.c" +pp185: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy186; - default: goto yy98; + case 'e': goto pp186; + default: goto pp98; } -yy186: - yych = *++YYCURSOR; - switch (yych) { +pp186: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy187; - default: goto yy98; + case 'r': goto pp187; + default: goto pp98; } -yy187: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp187: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -99924,40 +102297,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy188; + case 'z': goto pp97; + default: goto pp188; } -yy188: +pp188: // 131 "scanner.re" { token->opcode = PHQL_T_ORDER; return 0; } -// 2828 "scanner.c" -yy189: - yych = *++YYCURSOR; - switch (yych) { +// 2829 "scanner.c" +pp189: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy190; - default: goto yy98; + case 's': goto pp190; + default: goto pp98; } -yy190: - yych = *++YYCURSOR; - switch (yych) { +pp190: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy191; - default: goto yy98; + case 'e': goto pp191; + default: goto pp98; } -yy191: - yych = *++YYCURSOR; - switch (yych) { +pp191: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy192; - default: goto yy98; + case 't': goto pp192; + default: goto pp98; } -yy192: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp192: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100021,40 +102394,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy193; + case 'z': goto pp97; + default: goto pp193; } -yy193: +pp193: // 166 "scanner.re" { token->opcode = PHQL_T_OFFSET; return 0; } -// 2925 "scanner.c" -yy194: - yych = *++YYCURSOR; - switch (yych) { +// 2926 "scanner.c" +pp194: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy195; - default: goto yy98; + case 'e': goto pp195; + default: goto pp98; } -yy195: - yych = *++YYCURSOR; - switch (yych) { +pp195: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy196; - default: goto yy98; + case 'r': goto pp196; + default: goto pp98; } -yy196: - yych = *++YYCURSOR; - switch (yych) { +pp196: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy197; - default: goto yy98; + case 'e': goto pp197; + default: goto pp98; } -yy197: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp197: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100118,47 +102491,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy198; + case 'z': goto pp97; + default: goto pp198; } -yy198: +pp198: // 121 "scanner.re" { token->opcode = PHQL_T_WHERE; return 0; } -// 3022 "scanner.c" -yy199: - yych = *++YYCURSOR; - switch (yych) { +// 3023 "scanner.c" +pp199: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy200; - default: goto yy98; + case 'l': goto pp200; + default: goto pp98; } -yy200: - yych = *++YYCURSOR; - switch (yych) { +pp200: + ppch = *++PPCURSOR; + switch (ppch) { case 'U': - case 'u': goto yy201; - default: goto yy98; + case 'u': goto pp201; + default: goto pp98; } -yy201: - yych = *++YYCURSOR; - switch (yych) { +pp201: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy202; - default: goto yy98; + case 'e': goto pp202; + default: goto pp98; } -yy202: - yych = *++YYCURSOR; - switch (yych) { +pp202: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy203; - default: goto yy98; + case 's': goto pp203; + default: goto pp98; } -yy203: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp203: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100222,26 +102595,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy204; + case 'z': goto pp97; + default: goto pp204; } -yy204: +pp204: // 116 "scanner.re" { token->opcode = PHQL_T_VALUES; return 0; } -// 3126 "scanner.c" -yy205: - yych = *++YYCURSOR; - switch (yych) { +// 3127 "scanner.c" +pp205: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy222; - default: goto yy98; + case 'i': goto pp222; + default: goto pp98; } -yy206: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp206: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100299,25 +102672,25 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'N': - case 'n': goto yy212; + case 'n': goto pp212; case 'S': - case 's': goto yy210; + case 's': goto pp210; case 'T': - case 't': goto yy211; - default: goto yy207; + case 't': goto pp211; + default: goto pp207; } -yy207: +pp207: // 201 "scanner.re" { token->opcode = PHQL_T_IN; return 0; } -// 3209 "scanner.c" -yy208: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3210 "scanner.c" +pp208: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100381,47 +102754,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy209; + case 'z': goto pp97; + default: goto pp209; } -yy209: +pp209: // 246 "scanner.re" { token->opcode = PHQL_T_IS; return 0; } -// 3285 "scanner.c" -yy210: - yych = *++YYCURSOR; - switch (yych) { +// 3286 "scanner.c" +pp210: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy218; - default: goto yy98; + case 'e': goto pp218; + default: goto pp98; } -yy211: - yych = *++YYCURSOR; - switch (yych) { +pp211: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy216; - default: goto yy98; + case 'o': goto pp216; + default: goto pp98; } -yy212: - yych = *++YYCURSOR; - switch (yych) { +pp212: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy213; - default: goto yy98; + case 'e': goto pp213; + default: goto pp98; } -yy213: - yych = *++YYCURSOR; - switch (yych) { +pp213: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy214; - default: goto yy98; + case 'r': goto pp214; + default: goto pp98; } -yy214: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp214: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100485,19 +102858,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy215; + case 'z': goto pp97; + default: goto pp215; } -yy215: +pp215: // 216 "scanner.re" { token->opcode = PHQL_T_INNER; return 0; } -// 3389 "scanner.c" -yy216: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3390 "scanner.c" +pp216: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100561,33 +102934,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy217; + case 'z': goto pp97; + default: goto pp217; } -yy217: +pp217: // 111 "scanner.re" { token->opcode = PHQL_T_INTO; return 0; } -// 3465 "scanner.c" -yy218: - yych = *++YYCURSOR; - switch (yych) { +// 3466 "scanner.c" +pp218: + ppch = *++PPCURSOR; + switch (ppch) { case 'R': - case 'r': goto yy219; - default: goto yy98; + case 'r': goto pp219; + default: goto pp98; } -yy219: - yych = *++YYCURSOR; - switch (yych) { +pp219: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy220; - default: goto yy98; + case 't': goto pp220; + default: goto pp98; } -yy220: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp220: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100651,33 +103024,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy221; + case 'z': goto pp97; + default: goto pp221; } -yy221: +pp221: // 106 "scanner.re" { token->opcode = PHQL_T_INSERT; return 0; } -// 3555 "scanner.c" -yy222: - yych = *++YYCURSOR; - switch (yych) { +// 3556 "scanner.c" +pp222: + ppch = *++PPCURSOR; + switch (ppch) { case 'K': - case 'k': goto yy223; - default: goto yy98; + case 'k': goto pp223; + default: goto pp98; } -yy223: - yych = *++YYCURSOR; - switch (yych) { +pp223: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy224; - default: goto yy98; + case 'e': goto pp224; + default: goto pp98; } -yy224: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp224: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100741,40 +103114,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy225; + case 'z': goto pp97; + default: goto pp225; } -yy225: +pp225: // 191 "scanner.re" { token->opcode = PHQL_T_ILIKE; return 0; } -// 3645 "scanner.c" -yy226: - yych = *++YYCURSOR; - switch (yych) { +// 3646 "scanner.c" +pp226: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy237; - default: goto yy98; + case 'a': goto pp237; + default: goto pp98; } -yy227: - yych = *++YYCURSOR; - switch (yych) { +pp227: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy235; - default: goto yy98; + case 'l': goto pp235; + default: goto pp98; } -yy228: - yych = *++YYCURSOR; - switch (yych) { +pp228: + ppch = *++PPCURSOR; + switch (ppch) { case 'D': - case 'd': goto yy233; - default: goto yy98; + case 'd': goto pp233; + default: goto pp98; } -yy229: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp229: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100836,21 +103209,21 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; + case 'z': goto pp97; case 'C': - case 'c': goto yy231; - default: goto yy230; + case 'c': goto pp231; + default: goto pp230; } -yy230: +pp230: // 101 "scanner.re" { token->opcode = PHQL_T_AS; return 0; } -// 3742 "scanner.c" -yy231: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3743 "scanner.c" +pp231: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100914,19 +103287,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy232; + case 'z': goto pp97; + default: goto pp232; } -yy232: +pp232: // 141 "scanner.re" { token->opcode = PHQL_T_ASC; return 0; } -// 3818 "scanner.c" -yy233: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3819 "scanner.c" +pp233: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -100990,19 +103363,19 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy234; + case 'z': goto pp97; + default: goto pp234; } -yy234: +pp234: // 176 "scanner.re" { token->opcode = PHQL_T_AND; return 0; } -// 3894 "scanner.c" -yy235: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +// 3895 "scanner.c" +pp235: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101066,47 +103439,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy236; + case 'z': goto pp97; + default: goto pp236; } -yy236: +pp236: // 261 "scanner.re" { token->opcode = PHQL_T_ALL; return 0; } -// 3970 "scanner.c" -yy237: - yych = *++YYCURSOR; - switch (yych) { +// 3971 "scanner.c" +pp237: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy238; - default: goto yy98; + case 'i': goto pp238; + default: goto pp98; } -yy238: - yych = *++YYCURSOR; - switch (yych) { +pp238: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy239; - default: goto yy98; + case 'n': goto pp239; + default: goto pp98; } -yy239: - yych = *++YYCURSOR; - switch (yych) { +pp239: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy240; - default: goto yy98; + case 's': goto pp240; + default: goto pp98; } -yy240: - yych = *++YYCURSOR; - switch (yych) { +pp240: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy241; - default: goto yy98; + case 't': goto pp241; + default: goto pp98; } -yy241: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp241: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101170,47 +103543,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy242; + case 'z': goto pp97; + default: goto pp242; } -yy242: +pp242: // 196 "scanner.re" { token->opcode = PHQL_T_AGAINST; return 0; } -// 4074 "scanner.c" -yy243: - yych = *++YYCURSOR; - switch (yych) { +// 4075 "scanner.c" +pp243: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy252; - default: goto yy98; + case 'l': goto pp252; + default: goto pp98; } -yy244: - yych = *++YYCURSOR; - switch (yych) { +pp244: + ppch = *++PPCURSOR; + switch (ppch) { case 'O': - case 'o': goto yy249; - default: goto yy98; + case 'o': goto pp249; + default: goto pp98; } -yy245: - yych = *++YYCURSOR; - switch (yych) { +pp245: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy246; - default: goto yy98; + case 'l': goto pp246; + default: goto pp98; } -yy246: - yych = *++YYCURSOR; - switch (yych) { +pp246: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy247; - default: goto yy98; + case 'l': goto pp247; + default: goto pp98; } -yy247: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp247: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101274,26 +103647,26 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy248; + case 'z': goto pp97; + default: goto pp248; } -yy248: +pp248: // 241 "scanner.re" { token->opcode = PHQL_T_FULL; return 0; } -// 4178 "scanner.c" -yy249: - yych = *++YYCURSOR; - switch (yych) { +// 4179 "scanner.c" +pp249: + ppch = *++PPCURSOR; + switch (ppch) { case 'M': - case 'm': goto yy250; - default: goto yy98; + case 'm': goto pp250; + default: goto pp98; } -yy250: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp250: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101357,33 +103730,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy251; + case 'z': goto pp97; + default: goto pp251; } -yy251: +pp251: // 96 "scanner.re" { token->opcode = PHQL_T_FROM; return 0; } -// 4261 "scanner.c" -yy252: - yych = *++YYCURSOR; - switch (yych) { +// 4262 "scanner.c" +pp252: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy253; - default: goto yy98; + case 's': goto pp253; + default: goto pp98; } -yy253: - yych = *++YYCURSOR; - switch (yych) { +pp253: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy254; - default: goto yy98; + case 'e': goto pp254; + default: goto pp98; } -yy254: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp254: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101447,70 +103820,70 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy255; + case 'z': goto pp97; + default: goto pp255; } -yy255: +pp255: // 291 "scanner.re" { token->opcode = PHQL_T_FALSE; return 0; } -// 4351 "scanner.c" -yy256: - yych = *++YYCURSOR; - switch (yych) { +// 4352 "scanner.c" +pp256: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy265; + case 'l': goto pp265; case 'S': - case 's': goto yy266; - default: goto yy98; + case 's': goto pp266; + default: goto pp98; } -yy257: - yych = *++YYCURSOR; - switch (yych) { +pp257: + ppch = *++PPCURSOR; + switch (ppch) { case 'S': - case 's': goto yy258; - default: goto yy98; + case 's': goto pp258; + default: goto pp98; } -yy258: - yych = *++YYCURSOR; - switch (yych) { +pp258: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy259; - default: goto yy98; + case 't': goto pp259; + default: goto pp98; } -yy259: - yych = *++YYCURSOR; - switch (yych) { +pp259: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy260; - default: goto yy98; + case 'i': goto pp260; + default: goto pp98; } -yy260: - yych = *++YYCURSOR; - switch (yych) { +pp260: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy261; - default: goto yy98; + case 'n': goto pp261; + default: goto pp98; } -yy261: - yych = *++YYCURSOR; - switch (yych) { +pp261: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy262; - default: goto yy98; + case 'c': goto pp262; + default: goto pp98; } -yy262: - yych = *++YYCURSOR; - switch (yych) { +pp262: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy263; - default: goto yy98; + case 't': goto pp263; + default: goto pp98; } -yy263: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp263: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101574,33 +103947,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy264; + case 'z': goto pp97; + default: goto pp264; } -yy264: +pp264: // 256 "scanner.re" { token->opcode = PHQL_T_DISTINCT; return 0; } -// 4478 "scanner.c" -yy265: - yych = *++YYCURSOR; - switch (yych) { +// 4479 "scanner.c" +pp265: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy269; - default: goto yy98; + case 'e': goto pp269; + default: goto pp98; } -yy266: - yych = *++YYCURSOR; - switch (yych) { +pp266: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy267; - default: goto yy98; + case 'c': goto pp267; + default: goto pp98; } -yy267: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp267: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101664,33 +104037,33 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy268; + case 'z': goto pp97; + default: goto pp268; } -yy268: +pp268: // 146 "scanner.re" { token->opcode = PHQL_T_DESC; return 0; } -// 4568 "scanner.c" -yy269: - yych = *++YYCURSOR; - switch (yych) { +// 4569 "scanner.c" +pp269: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy270; - default: goto yy98; + case 't': goto pp270; + default: goto pp98; } -yy270: - yych = *++YYCURSOR; - switch (yych) { +pp270: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy271; - default: goto yy98; + case 'e': goto pp271; + default: goto pp98; } -yy271: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp271: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101754,28 +104127,28 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy272; + case 'z': goto pp97; + default: goto pp272; } -yy272: +pp272: // 91 "scanner.re" { token->opcode = PHQL_T_DELETE; return 0; } -// 4658 "scanner.c" -yy273: - yych = *++YYCURSOR; - switch (yych) { +// 4659 "scanner.c" +pp273: + ppch = *++PPCURSOR; + switch (ppch) { case 'L': - case 'l': goto yy276; + case 'l': goto pp276; case 'T': - case 't': goto yy274; - default: goto yy98; + case 't': goto pp274; + default: goto pp98; } -yy274: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp274: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101839,40 +104212,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy275; + case 'z': goto pp97; + default: goto pp275; } -yy275: +pp275: // 86 "scanner.re" { token->opcode = PHQL_T_SET; return 0; } -// 4743 "scanner.c" -yy276: - yych = *++YYCURSOR; - switch (yych) { +// 4744 "scanner.c" +pp276: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy277; - default: goto yy98; + case 'e': goto pp277; + default: goto pp98; } -yy277: - yych = *++YYCURSOR; - switch (yych) { +pp277: + ppch = *++PPCURSOR; + switch (ppch) { case 'C': - case 'c': goto yy278; - default: goto yy98; + case 'c': goto pp278; + default: goto pp98; } -yy278: - yych = *++YYCURSOR; - switch (yych) { +pp278: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy279; - default: goto yy98; + case 't': goto pp279; + default: goto pp98; } -yy279: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp279: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -101936,47 +104309,47 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy280; + case 'z': goto pp97; + default: goto pp280; } -yy280: +pp280: // 126 "scanner.re" { token->opcode = PHQL_T_SELECT; return 0; } -// 4840 "scanner.c" -yy281: - yych = *++YYCURSOR; - switch (yych) { +// 4841 "scanner.c" +pp281: + ppch = *++PPCURSOR; + switch (ppch) { case 'D': - case 'd': goto yy287; - default: goto yy98; + case 'd': goto pp287; + default: goto pp98; } -yy282: - yych = *++YYCURSOR; - switch (yych) { +pp282: + ppch = *++PPCURSOR; + switch (ppch) { case 'I': - case 'i': goto yy283; - default: goto yy98; + case 'i': goto pp283; + default: goto pp98; } -yy283: - yych = *++YYCURSOR; - switch (yych) { +pp283: + ppch = *++PPCURSOR; + switch (ppch) { case 'N': - case 'n': goto yy284; - default: goto yy98; + case 'n': goto pp284; + default: goto pp98; } -yy284: - yych = *++YYCURSOR; - switch (yych) { +pp284: + ppch = *++PPCURSOR; + switch (ppch) { case 'G': - case 'g': goto yy285; - default: goto yy98; + case 'g': goto pp285; + default: goto pp98; } -yy285: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp285: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -102040,40 +104413,40 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy286; + case 'z': goto pp97; + default: goto pp286; } -yy286: +pp286: // 281 "scanner.re" { token->opcode = PHQL_T_USING; return 0; } -// 4944 "scanner.c" -yy287: - yych = *++YYCURSOR; - switch (yych) { +// 4945 "scanner.c" +pp287: + ppch = *++PPCURSOR; + switch (ppch) { case 'A': - case 'a': goto yy288; - default: goto yy98; + case 'a': goto pp288; + default: goto pp98; } -yy288: - yych = *++YYCURSOR; - switch (yych) { +pp288: + ppch = *++PPCURSOR; + switch (ppch) { case 'T': - case 't': goto yy289; - default: goto yy98; + case 't': goto pp289; + default: goto pp98; } -yy289: - yych = *++YYCURSOR; - switch (yych) { +pp289: + ppch = *++PPCURSOR; + switch (ppch) { case 'E': - case 'e': goto yy290; - default: goto yy98; + case 'e': goto pp290; + default: goto pp98; } -yy290: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +pp290: + ++PPCURSOR; + switch ((ppch = *PPCURSOR)) { case '0': case '1': case '2': @@ -102137,20 +104510,20 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy97; - default: goto yy291; + case 'z': goto pp97; + default: goto pp291; } -yy291: +pp291: // 81 "scanner.re" { token->opcode = PHQL_T_UPDATE; return 0; } -// 5041 "scanner.c" -yy292: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5042 "scanner.c" +pp292: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '-': case '0': case '1': @@ -102214,25 +104587,25 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case 'w': case 'x': case 'y': - case 'z': goto yy292; - case ':': goto yy294; - default: goto yy94; + case 'z': goto pp292; + case ':': goto pp294; + default: goto pp94; } -yy294: - ++YYCURSOR; +pp294: + ++PPCURSOR; // 73 "scanner.re" { token->opcode = PHQL_T_SPLACEHOLDER; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; return 0; } -// 5123 "scanner.c" -yy296: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5124 "scanner.c" +pp296: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102242,23 +104615,23 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy296; - default: goto yy298; + case '9': goto pp296; + default: goto pp298; } -yy298: +pp298: // 64 "scanner.re" { token->opcode = PHQL_T_NPLACEHOLDER; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } -// 5149 "scanner.c" -yy299: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5150 "scanner.c" +pp299: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102268,23 +104641,23 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy299; - default: goto yy301; + case '9': goto pp299; + default: goto pp301; } -yy301: +pp301: // 55 "scanner.re" { token->opcode = PHQL_T_DOUBLE; - token->value = estrndup(q, YYCURSOR - q); - token->len = YYCURSOR - q; - q = YYCURSOR; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; return 0; } -// 5175 "scanner.c" -yy302: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { +// 5176 "scanner.c" +pp302: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { case '0': case '1': case '2': @@ -102294,14 +104667,14 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy302; - default: goto yy301; - } -yy304: - ++YYCURSOR; - yych = *YYCURSOR; - switch (yych) { - case '.': goto yy302; + case '9': goto pp302; + default: goto pp301; + } +pp304: + ++PPCURSOR; + ppch = *PPCURSOR; + switch (ppch) { + case '.': goto pp302; case '0': case '1': case '2': @@ -102311,8 +104684,8 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { case '6': case '7': case '8': - case '9': goto yy304; - default: goto yy3; + case '9': goto pp304; + default: goto pp3; } } // 488 "scanner.re" @@ -102483,173 +104856,177 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, valid) { +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current) { - zephir_fcall_cache_entry *_10 = NULL, *_13 = NULL; - HashTable *_4, *_7; - HashPosition _3, _6; - zend_bool _2; - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_1 = NULL; + zephir_fcall_cache_entry *_13 = NULL, *_16 = NULL; + HashTable *_7, *_10; + HashPosition _6, _9; + zend_bool _5; int dirtyState, ZEPHIR_LAST_CALL_STATUS; - zval *result, *rows, *row = NULL, *underscore, *hydrateMode, *alias = NULL, *activeRow = NULL, *type = NULL, *columnTypes, *column = NULL, *columnValue = NULL, *value = NULL, *attribute = NULL, *source = NULL, *attributes = NULL, *columnMap = NULL, *rowModel = NULL, *keepSnapshots = NULL, *sqlAlias = NULL, *isPartial, **_5, **_8, *_9 = NULL, *_11, *_12 = NULL, _14 = zval_used_for_init; + zval *result, *row = NULL, *underscore, *hydrateMode, *alias = NULL, *activeRow = NULL, *type = NULL, *columnTypes, *column = NULL, *columnValue = NULL, *value = NULL, *attribute = NULL, *source = NULL, *attributes = NULL, *columnMap = NULL, *rowModel = NULL, *keepSnapshots = NULL, *sqlAlias = NULL, *isPartial, *_0, *_1 = NULL, *_2, *_3, *_4, **_8, **_11, *_12 = NULL, *_14, *_15 = NULL, _17 = zval_used_for_init; ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(activeRow); + zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); + if (Z_TYPE_P(activeRow) != IS_NULL) { + RETURN_CCTOR(activeRow); + } ZEPHIR_OBS_VAR(isPartial); zephir_read_property_this(&isPartial, this_ptr, SL("_type"), PH_NOISY_CC); if (zephir_is_true(isPartial)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (!ZEPHIR_IS_FALSE_IDENTICAL(result)) { - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL, result); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(row); - ZVAL_BOOL(row, 0); - } + ZEPHIR_OBS_VAR(row); + zephir_read_property_this(&row, this_ptr, SL("_row"), PH_NOISY_CC); } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(&row, "current", &_0, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - if (Z_TYPE_P(row) == IS_OBJECT) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_1, rows); - Z_UNSET_ISREF_P(rows); + _0 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_0) == IS_NULL) { + ZEPHIR_OBS_VAR(result); + zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); + if (Z_TYPE_P(result) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_1, result, "fetchall", NULL); zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_rows"), _1 TSRMLS_CC); + } + } + ZEPHIR_OBS_VAR(_2); + zephir_read_property_this(&_2, this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_2) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(row); + _3 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&row, _3, _4, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(row); + ZVAL_BOOL(row, 0); } } else { ZEPHIR_INIT_NVAR(row); ZVAL_BOOL(row, 0); } } - _2 = Z_TYPE_P(row) == IS_OBJECT; - if (!(_2)) { - _2 = Z_TYPE_P(row) == IS_ARRAY; + _5 = Z_TYPE_P(row) != IS_OBJECT; + if (_5) { + _5 = Z_TYPE_P(row) != IS_ARRAY; } - if (_2) { - if (zephir_is_true(isPartial)) { - ZEPHIR_OBS_VAR(hydrateMode); - zephir_read_property_this(&hydrateMode, this_ptr, SL("_hydrateMode"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(underscore); - ZVAL_STRING(underscore, "_", 1); + if (_5) { + zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); + RETURN_MM_BOOL(0); + } + if (!(zephir_is_true(isPartial))) { + zephir_update_property_this(this_ptr, SL("_activeRow"), row TSRMLS_CC); + RETURN_CCTOR(row); + } + ZEPHIR_OBS_VAR(hydrateMode); + zephir_read_property_this(&hydrateMode, this_ptr, SL("_hydrateMode"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(underscore); + ZVAL_STRING(underscore, "_", 1); + do { + if (ZEPHIR_IS_LONG(hydrateMode, 0)) { + ZEPHIR_INIT_NVAR(activeRow); + object_init_ex(activeRow, phalcon_mvc_model_row_ce); + if (zephir_has_constructor(activeRow TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, activeRow, "__construct", NULL); + zephir_check_call_status(); + } + break; + } + if (ZEPHIR_IS_LONG(hydrateMode, 1)) { + ZEPHIR_INIT_NVAR(activeRow); + array_init(activeRow); + break; + } + ZEPHIR_INIT_NVAR(activeRow); + object_init(activeRow); + break; + } while(0); + + ZEPHIR_OBS_VAR(columnTypes); + zephir_read_property_this(&columnTypes, this_ptr, SL("_columnTypes"), PH_NOISY_CC); + dirtyState = 0; + zephir_is_iterable(columnTypes, &_7, &_6, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 272); + for ( + ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS + ; zephir_hash_move_forward_ex(_7, &_6) + ) { + ZEPHIR_GET_HMKEY(alias, _7, _6); + ZEPHIR_GET_HVALUE(column, _8); + if (Z_TYPE_P(column) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/mvc/model/resultset/complex.zep", 173); + return; + } + ZEPHIR_OBS_NVAR(type); + zephir_array_fetch_string(&type, column, SL("type"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 176 TSRMLS_CC); + if (ZEPHIR_IS_STRING(type, "object")) { + ZEPHIR_OBS_NVAR(source); + zephir_array_fetch_string(&source, column, SL("column"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 182 TSRMLS_CC); + ZEPHIR_OBS_NVAR(attributes); + zephir_array_fetch_string(&attributes, column, SL("attributes"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 183 TSRMLS_CC); + ZEPHIR_OBS_NVAR(columnMap); + zephir_array_fetch_string(&columnMap, column, SL("columnMap"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 184 TSRMLS_CC); + ZEPHIR_INIT_NVAR(rowModel); + array_init(rowModel); + zephir_is_iterable(attributes, &_10, &_9, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 202); + for ( + ; zephir_hash_get_current_data_ex(_10, (void**) &_11, &_9) == SUCCESS + ; zephir_hash_move_forward_ex(_10, &_9) + ) { + ZEPHIR_GET_HVALUE(attribute, _11); + ZEPHIR_OBS_NVAR(columnValue); + ZEPHIR_INIT_LNVAR(_12); + ZEPHIR_CONCAT_VVVV(_12, underscore, source, underscore, attribute); + zephir_array_fetch(&columnValue, row, _12, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 195 TSRMLS_CC); + zephir_array_update_zval(&rowModel, attribute, &columnValue, PH_COPY | PH_SEPARATE); + } do { if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - ZEPHIR_INIT_VAR(activeRow); - object_init_ex(activeRow, phalcon_mvc_model_row_ce); - if (zephir_has_constructor(activeRow TSRMLS_CC)) { - ZEPHIR_CALL_METHOD(NULL, activeRow, "__construct", NULL); - zephir_check_call_status(); + ZEPHIR_OBS_NVAR(keepSnapshots); + if (!(zephir_array_isset_string_fetch(&keepSnapshots, column, SS("keepSnapshots"), 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(keepSnapshots); + ZVAL_BOOL(keepSnapshots, 0); } + zephir_array_fetch_string(&_14, column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 217 TSRMLS_CC); + ZEPHIR_INIT_NVAR(_15); + ZVAL_LONG(_15, dirtyState); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_13, _14, rowModel, columnMap, _15, keepSnapshots); + zephir_check_call_status(); break; } - if (ZEPHIR_IS_LONG(hydrateMode, 1)) { - ZEPHIR_INIT_NVAR(activeRow); - array_init(activeRow); - break; - } - ZEPHIR_INIT_NVAR(activeRow); - object_init(activeRow); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_16, rowModel, columnMap, hydrateMode); + zephir_check_call_status(); break; } while(0); - ZEPHIR_OBS_VAR(columnTypes); - zephir_read_property_this(&columnTypes, this_ptr, SL("_columnTypes"), PH_NOISY_CC); - dirtyState = 0; - zephir_is_iterable(columnTypes, &_4, &_3, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 266); - for ( - ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS - ; zephir_hash_move_forward_ex(_4, &_3) - ) { - ZEPHIR_GET_HMKEY(alias, _4, _3); - ZEPHIR_GET_HVALUE(column, _5); - if (Z_TYPE_P(column) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/mvc/model/resultset/complex.zep", 167); - return; - } - ZEPHIR_OBS_NVAR(type); - zephir_array_fetch_string(&type, column, SL("type"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 170 TSRMLS_CC); - if (ZEPHIR_IS_STRING(type, "object")) { - ZEPHIR_OBS_NVAR(source); - zephir_array_fetch_string(&source, column, SL("column"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 176 TSRMLS_CC); - ZEPHIR_OBS_NVAR(attributes); - zephir_array_fetch_string(&attributes, column, SL("attributes"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 177 TSRMLS_CC); - ZEPHIR_OBS_NVAR(columnMap); - zephir_array_fetch_string(&columnMap, column, SL("columnMap"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 178 TSRMLS_CC); - ZEPHIR_INIT_NVAR(rowModel); - array_init(rowModel); - zephir_is_iterable(attributes, &_7, &_6, 0, 0, "phalcon/mvc/model/resultset/complex.zep", 196); - for ( - ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS - ; zephir_hash_move_forward_ex(_7, &_6) - ) { - ZEPHIR_GET_HVALUE(attribute, _8); - ZEPHIR_OBS_NVAR(columnValue); - ZEPHIR_INIT_LNVAR(_9); - ZEPHIR_CONCAT_VVVV(_9, underscore, source, underscore, attribute); - zephir_array_fetch(&columnValue, row, _9, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 189 TSRMLS_CC); - zephir_array_update_zval(&rowModel, attribute, &columnValue, PH_COPY | PH_SEPARATE); - } - do { - if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - ZEPHIR_OBS_NVAR(keepSnapshots); - if (!(zephir_array_isset_string_fetch(&keepSnapshots, column, SS("keepSnapshots"), 0 TSRMLS_CC))) { - ZEPHIR_INIT_NVAR(keepSnapshots); - ZVAL_BOOL(keepSnapshots, 0); - } - zephir_array_fetch_string(&_11, column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 211 TSRMLS_CC); - ZEPHIR_INIT_NVAR(_12); - ZVAL_LONG(_12, dirtyState); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_10, _11, rowModel, columnMap, _12, keepSnapshots); - zephir_check_call_status(); - break; - } - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_13, rowModel, columnMap, hydrateMode); - zephir_check_call_status(); - break; - } while(0); - - ZEPHIR_OBS_NVAR(attribute); - zephir_array_fetch_string(&attribute, column, SL("balias"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 225 TSRMLS_CC); - } else { - ZEPHIR_OBS_NVAR(sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, column, SS("sqlAlias"), 0 TSRMLS_CC)) { - ZEPHIR_OBS_NVAR(value); - zephir_array_fetch(&value, row, sqlAlias, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 233 TSRMLS_CC); - } else { - ZEPHIR_OBS_NVAR(value); - zephir_array_isset_fetch(&value, row, alias, 0 TSRMLS_CC); - } - if (zephir_array_isset_string(column, SS("balias"))) { - ZEPHIR_CPY_WRT(attribute, alias); - } else { - ZEPHIR_INIT_NVAR(attribute); - ZEPHIR_SINIT_NVAR(_14); - ZVAL_STRING(&_14, "", 0); - zephir_fast_str_replace(&attribute, underscore, &_14, alias TSRMLS_CC); - } - } - do { - if (ZEPHIR_IS_LONG(hydrateMode, 1)) { - zephir_array_update_zval(&activeRow, attribute, &value, PH_COPY | PH_SEPARATE); - break; - } - zephir_update_property_zval_zval(activeRow, attribute, value TSRMLS_CC); - break; - } while(0); - - } - zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); + ZEPHIR_OBS_NVAR(attribute); + zephir_array_fetch_string(&attribute, column, SL("balias"), PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 231 TSRMLS_CC); } else { - zephir_update_property_this(this_ptr, SL("_activeRow"), row TSRMLS_CC); + ZEPHIR_OBS_NVAR(sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, column, SS("sqlAlias"), 0 TSRMLS_CC)) { + ZEPHIR_OBS_NVAR(value); + zephir_array_fetch(&value, row, sqlAlias, PH_NOISY, "phalcon/mvc/model/resultset/complex.zep", 239 TSRMLS_CC); + } else { + ZEPHIR_OBS_NVAR(value); + zephir_array_isset_fetch(&value, row, alias, 0 TSRMLS_CC); + } + if (zephir_array_isset_string(column, SS("balias"))) { + ZEPHIR_CPY_WRT(attribute, alias); + } else { + ZEPHIR_INIT_NVAR(attribute); + ZEPHIR_SINIT_NVAR(_17); + ZVAL_STRING(&_17, "", 0); + zephir_fast_str_replace(&attribute, underscore, &_17, alias TSRMLS_CC); + } } - RETURN_MM_BOOL(1); + do { + if (ZEPHIR_IS_LONG(hydrateMode, 1)) { + zephir_array_update_zval(&activeRow, attribute, &value, PH_COPY | PH_SEPARATE); + break; + } + zephir_update_property_zval_zval(activeRow, attribute, value TSRMLS_CC); + break; + } while(0); + } - zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); - RETURN_MM_BOOL(0); + zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); + RETURN_CCTOR(activeRow); } @@ -102670,7 +105047,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(current, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_append(&records, current, PH_SEPARATE, "phalcon/mvc/model/resultset/complex.zep", 294); + zephir_array_append(&records, current, PH_SEPARATE, "phalcon/mvc/model/resultset/complex.zep", 285); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); @@ -102713,11 +105090,23 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; - zval *data, *resultset = NULL, *_0, *_2, *_3, *_4, *_5; + zval *data_param = NULL, *resultset = NULL, *_0, *_2, *_3, *_4, *_5; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + if (unlikely(Z_TYPE_P(data_param) != IS_STRING && Z_TYPE_P(data_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'data' must be a string") TSRMLS_CC); + RETURN_MM_NULL(); + } + if (likely(Z_TYPE_P(data_param) == IS_STRING)) { + zephir_get_strval(data, data_param); + } else { + ZEPHIR_INIT_VAR(data); + ZVAL_EMPTY_STRING(data); + } ZEPHIR_INIT_ZVAL_NREF(_0); @@ -102726,16 +105115,16 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) { ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", &_1, data); zephir_check_call_status(); if (Z_TYPE_P(resultset) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/complex.zep", 347); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/complex.zep", 339); return; } - zephir_array_fetch_string(&_2, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 350 TSRMLS_CC); + zephir_array_fetch_string(&_2, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 342 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_rows"), _2 TSRMLS_CC); - zephir_array_fetch_string(&_3, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 351 TSRMLS_CC); + zephir_array_fetch_string(&_3, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 343 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_cache"), _3 TSRMLS_CC); - zephir_array_fetch_string(&_4, resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 352 TSRMLS_CC); + zephir_array_fetch_string(&_4, resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 344 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_columnTypes"), _4 TSRMLS_CC); - zephir_array_fetch_string(&_5, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 353 TSRMLS_CC); + zephir_array_fetch_string(&_5, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/complex.zep", 345 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_hydrateMode"), _5 TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -102818,49 +105207,43 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct) { } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current) { - zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL, *_4 = NULL, *_8 = NULL; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL, *_8 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *result = NULL, *row = NULL, *rows = NULL, *hydrateMode, *columnMap, *activeRow = NULL, *_0, *_1 = NULL, *_5, *_6, *_7; + zval *result, *row = NULL, *hydrateMode, *columnMap, *activeRow = NULL, *_0, *_1, *_2 = NULL, *_3, *_4, *_5, *_7; ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(activeRow); + zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); + if (Z_TYPE_P(activeRow) != IS_NULL) { + RETURN_CCTOR(activeRow); + } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_type"), PH_NOISY_CC); if (zephir_is_true(_0)) { - ZEPHIR_OBS_VAR(result); - zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); - if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&row, result, "fetch", NULL, result); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(row); - ZVAL_BOOL(row, 0); - } + ZEPHIR_OBS_VAR(row); + zephir_read_property_this(&row, this_ptr, SL("_row"), PH_NOISY_CC); } else { - ZEPHIR_OBS_VAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); - if (Z_TYPE_P(rows) != IS_ARRAY) { - ZEPHIR_OBS_NVAR(result); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_1) == IS_NULL) { + ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_1, result, "fetchall", NULL); + ZEPHIR_CALL_METHOD(&_2, result, "fetchall", NULL); zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_rows"), _1 TSRMLS_CC); - ZEPHIR_OBS_NVAR(rows); - zephir_read_property_this(&rows, this_ptr, SL("_rows"), PH_NOISY_CC); + zephir_update_property_this(this_ptr, SL("_rows"), _2 TSRMLS_CC); } } - if (Z_TYPE_P(rows) == IS_ARRAY) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(&row, "current", &_2, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(row)) { - Z_SET_ISREF_P(rows); - ZEPHIR_CALL_FUNCTION(NULL, "next", &_3, rows); - Z_UNSET_ISREF_P(rows); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(_3); + zephir_read_property_this(&_3, this_ptr, SL("_rows"), PH_NOISY_CC); + if (Z_TYPE_P(_3) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(row); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_rows"), PH_NOISY_CC); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(zephir_array_isset_fetch(&row, _4, _5, 0 TSRMLS_CC))) { + ZEPHIR_INIT_NVAR(row); + ZVAL_BOOL(row, 0); } } else { ZEPHIR_INIT_NVAR(row); @@ -102877,11 +105260,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { zephir_read_property_this(&columnMap, this_ptr, SL("_columnMap"), PH_NOISY_CC); do { if (ZEPHIR_IS_LONG(hydrateMode, 0)) { - _5 = zephir_fetch_nproperty_this(this_ptr, SL("_model"), PH_NOISY_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_keepSnapshots"), PH_NOISY_CC); + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_model"), PH_NOISY_CC); + _4 = zephir_fetch_nproperty_this(this_ptr, SL("_keepSnapshots"), PH_NOISY_CC); ZEPHIR_INIT_VAR(_7); ZVAL_LONG(_7, 0); - ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_4, _5, row, columnMap, _7, _6); + ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_6, _1, row, columnMap, _7, _4); zephir_check_call_status(); break; } @@ -102891,7 +105274,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid) { } while(0); zephir_update_property_this(this_ptr, SL("_activeRow"), activeRow TSRMLS_CC); - RETURN_MM_BOOL(1); + RETURN_CCTOR(activeRow); } @@ -102901,7 +105284,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { HashTable *_3, *_6; HashPosition _2, _5; int ZEPHIR_LAST_CALL_STATUS; - zval *renameColumns_param = NULL, *result = NULL, *activeRow = NULL, *records = NULL, *record = NULL, *renamed = NULL, *renamedKey = NULL, *key = NULL, *value = NULL, *renamedRecords, *columnMap, *_0, *_1, **_4, **_7, *_8 = NULL, *_9 = NULL; + zval *renameColumns_param = NULL, *result = NULL, *records = NULL, *record = NULL, *renamed = NULL, *renamedKey = NULL, *key = NULL, *value = NULL, *renamedRecords, *columnMap, *_0, *_1, **_4, **_7, *_8 = NULL, *_9 = NULL; zend_bool renameColumns; ZEPHIR_MM_GROW(); @@ -102919,14 +105302,14 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_OBS_VAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_OBS_VAR(activeRow); - zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(activeRow) != IS_NULL) { + _1 = zephir_fetch_nproperty_this(this_ptr, SL("_row"), PH_NOISY_CC); + if (Z_TYPE_P(_1) != IS_NULL) { ZEPHIR_CALL_METHOD(NULL, result, "execute", NULL); zephir_check_call_status(); } ZEPHIR_CALL_METHOD(&records, result, "fetchall", NULL); zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(records); array_init(records); @@ -102938,18 +105321,9 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_OBS_NVAR(result); zephir_read_property_this(&result, this_ptr, SL("_result"), PH_NOISY_CC); if (Z_TYPE_P(result) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(activeRow); - zephir_read_property_this(&activeRow, this_ptr, SL("_activeRow"), PH_NOISY_CC); - if (Z_TYPE_P(activeRow) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, result, "execute", NULL); - zephir_check_call_status(); - } ZEPHIR_CALL_METHOD(&records, result, "fetchall", NULL); zephir_check_call_status(); zephir_update_property_this(this_ptr, SL("_rows"), records TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, zephir_fast_count_int(records TSRMLS_CC)); - zephir_update_property_this(this_ptr, SL("_count"), _1 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(records); array_init(records); @@ -102965,7 +105339,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_INIT_VAR(renamedRecords); array_init(renamedRecords); if (Z_TYPE_P(records) == IS_ARRAY) { - zephir_is_iterable(records, &_3, &_2, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 276); + zephir_is_iterable(records, &_3, &_2, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 263); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -102973,7 +105347,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_GET_HVALUE(record, _4); ZEPHIR_INIT_NVAR(renamed); array_init(renamed); - zephir_is_iterable(record, &_6, &_5, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 274); + zephir_is_iterable(record, &_6, &_5, 0, 0, "phalcon/mvc/model/resultset/simple.zep", 261); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -102988,13 +105362,13 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) { ZEPHIR_CONCAT_SVS(_9, "Column '", key, "' is not part of the column map"); ZEPHIR_CALL_METHOD(NULL, _8, "__construct", &_10, _9); zephir_check_call_status(); - zephir_throw_exception_debug(_8, "phalcon/mvc/model/resultset/simple.zep", 262 TSRMLS_CC); + zephir_throw_exception_debug(_8, "phalcon/mvc/model/resultset/simple.zep", 249 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } zephir_array_update_zval(&renamed, renamedKey, &value, PH_COPY | PH_SEPARATE); } - zephir_array_append(&renamedRecords, renamed, PH_SEPARATE, "phalcon/mvc/model/resultset/simple.zep", 274); + zephir_array_append(&renamedRecords, renamed, PH_SEPARATE, "phalcon/mvc/model/resultset/simple.zep", 261); } } RETURN_CCTOR(renamedRecords); @@ -103012,7 +105386,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize) { ZEPHIR_MM_GROW(); - zephir_update_property_this(this_ptr, SL("_activeRow"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); ZEPHIR_INIT_VAR(_0); zephir_create_array(_0, 5, 0 TSRMLS_CC); ZEPHIR_OBS_VAR(_1); @@ -103067,18 +105440,18 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize) { ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", &_1, data); zephir_check_call_status(); if (Z_TYPE_P(resultset) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/simple.zep", 317); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/mvc/model/resultset/simple.zep", 302); return; } - zephir_array_fetch_string(&_2, resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 320 TSRMLS_CC); + zephir_array_fetch_string(&_2, resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 305 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_model"), _2 TSRMLS_CC); - zephir_array_fetch_string(&_3, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 321 TSRMLS_CC); + zephir_array_fetch_string(&_3, resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 306 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_rows"), _3 TSRMLS_CC); - zephir_array_fetch_string(&_4, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 322 TSRMLS_CC); + zephir_array_fetch_string(&_4, resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 307 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_cache"), _4 TSRMLS_CC); - zephir_array_fetch_string(&_5, resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 323 TSRMLS_CC); + zephir_array_fetch_string(&_5, resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 308 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_columnMap"), _5 TSRMLS_CC); - zephir_array_fetch_string(&_6, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 324 TSRMLS_CC); + zephir_array_fetch_string(&_6, resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/mvc/model/resultset/simple.zep", 309 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_hydrateMode"), _6 TSRMLS_CC); ZEPHIR_MM_RESTORE(); @@ -103698,7 +106071,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Email, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/email.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/email.zep", 63); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104019,7 +106392,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Numericality, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/numericality.zep", 63); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/numericality.zep", 62); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104104,7 +106477,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_PresenceOf, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/presenceof.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/presenceof.zep", 63); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104185,7 +106558,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/regex.zep", 64); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/regex.zep", 63); return; } ZEPHIR_INIT_NVAR(_0); @@ -104194,7 +106567,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Validator requires a perl-compatible regex pattern", "phalcon/mvc/model/validator/regex.zep", 71); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Validator requires a perl-compatible regex pattern", "phalcon/mvc/model/validator/regex.zep", 70); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104222,7 +106595,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Regex, validate) { ZEPHIR_INIT_NVAR(_0); zephir_preg_match(_0, pattern, value, matches, 0, 0 , 0 TSRMLS_CC); if (zephir_is_true(_0)) { - zephir_array_fetch_long(&_4, matches, 0, PH_NOISY | PH_READONLY, "phalcon/mvc/model/validator/regex.zep", 90 TSRMLS_CC); + zephir_array_fetch_long(&_4, matches, 0, PH_NOISY | PH_READONLY, "phalcon/mvc/model/validator/regex.zep", 89 TSRMLS_CC); failed = !ZEPHIR_IS_EQUAL(_4, value); } else { failed = 1; @@ -104295,7 +106668,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_StringLength, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/stringlength.zep", 68); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/stringlength.zep", 67); return; } ZEPHIR_INIT_NVAR(_0); @@ -104313,7 +106686,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_StringLength, validate) { _1 = !zephir_is_true(isSetMax); } if (_1) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A minimum or maximum must be set", "phalcon/mvc/model/validator/stringlength.zep", 78); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A minimum or maximum must be set", "phalcon/mvc/model/validator/stringlength.zep", 77); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -104468,7 +106841,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) == IS_ARRAY) { - zephir_is_iterable(field, &_2, &_1, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 121); + zephir_is_iterable(field, &_2, &_1, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 120); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -104483,7 +106856,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_4, "Column '", composeField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 98 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 97 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104498,7 +106871,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_4, "Column '", columnField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 108 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104506,11 +106879,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZVAL_LONG(&_6, number); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SVSV(_7, "[", composeField, "] = ?", &_6); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 114); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 113); ZEPHIR_CALL_METHOD(&_8, record, "readattribute", &_9, composeField); zephir_check_call_status(); - zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 115); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 116); + zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 114); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 115); number++; } } else { @@ -104523,7 +106896,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 128 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 127 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104538,17 +106911,17 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", columnField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 138 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 137 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SVS(_7, "[", field, "] = ?0"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 144); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 143); ZEPHIR_CALL_METHOD(&_8, record, "readattribute", &_9, field); zephir_check_call_status(); - zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 145); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 146); + zephir_array_append(&bindParams, _8, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 144); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 145); number++; } ZEPHIR_CALL_METHOD(&_10, record, "getoperationmade", NULL); @@ -104563,7 +106936,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { } ZEPHIR_CALL_METHOD(&_8, metaData, "getprimarykeyattributes", NULL, record); zephir_check_call_status(); - zephir_is_iterable(_8, &_12, &_11, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 191); + zephir_is_iterable(_8, &_12, &_11, 0, 0, "phalcon/mvc/model/validator/uniqueness.zep", 190); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -104577,7 +106950,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryField, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 168 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 167 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104590,7 +106963,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZEPHIR_CONCAT_SVS(_14, "Column '", primaryField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_5, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 176 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/model/validator/uniqueness.zep", 175 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -104601,11 +106974,11 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate) { ZVAL_LONG(&_6, number); ZEPHIR_INIT_LNVAR(_4); ZEPHIR_CONCAT_SVSV(_4, "[", attributeField, "] <> ?", &_6); - zephir_array_append(&conditions, _4, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 185); + zephir_array_append(&conditions, _4, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 184); ZEPHIR_CALL_METHOD(&_15, record, "readattribute", &_9, primaryField); zephir_check_call_status(); - zephir_array_append(&bindParams, _15, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 186); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 187); + zephir_array_append(&bindParams, _15, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 185); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model/validator/uniqueness.zep", 186); number++; } } @@ -104699,7 +107072,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Url, validate) { zephir_check_temp_parameter(_0); zephir_check_call_status(); if (Z_TYPE_P(field) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/url.zep", 63); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Field name must be a string", "phalcon/mvc/model/validator/url.zep", 62); return; } ZEPHIR_CALL_METHOD(&value, record, "readattribute", NULL, field); @@ -108362,26 +110735,31 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, convertEncoding) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { - zephir_nts_static zephir_fcall_cache_entry *_7 = NULL; - zend_bool _2; - zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_5 = NULL, *_8 = NULL; - int position, ZEPHIR_LAST_CALL_STATUS; - zval *value, *start, *end = NULL, *length = NULL, *slice, *_0 = NULL, *_3 = NULL, *_6; + zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL, *_7 = NULL; + zend_bool _1; + int start, position, ZEPHIR_LAST_CALL_STATUS; + zval *value, *start_param = NULL, *end = NULL, *length, *slice, *_0 = NULL, *_2 = NULL, _5 = zval_used_for_init; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &value, &start, &end); + zephir_fetch_params(1, 1, 2, &value, &start_param, &end); + if (!start_param) { + start = 0; + } else { + start = zephir_get_intval(start_param); + } if (!end) { - end = ZEPHIR_GLOBAL(global_null); + ZEPHIR_CPY_WRT(end, ZEPHIR_GLOBAL(global_null)); + } else { + ZEPHIR_SEPARATE_PARAM(end); } if (Z_TYPE_P(value) == IS_OBJECT) { if (Z_TYPE_P(end) == IS_NULL) { - ZEPHIR_INIT_VAR(length); - ZVAL_LONG(length, zephir_fast_count_int(value TSRMLS_CC)); - } else { - ZEPHIR_CPY_WRT(length, end); + ZEPHIR_INIT_NVAR(end); + ZVAL_LONG(end, (zephir_fast_count_int(value TSRMLS_CC) - 1)); } position = 0; ZEPHIR_INIT_VAR(slice); @@ -108389,54 +110767,62 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_0, value, "valid", &_1); + ZEPHIR_CALL_METHOD(&_0, value, "valid", NULL); zephir_check_call_status(); if (!(zephir_is_true(_0))) { break; } - _2 = ZEPHIR_LT_LONG(start, position); - if (_2) { - _2 = ZEPHIR_GE_LONG(length, position); + _1 = position >= start; + if (_1) { + _1 = ZEPHIR_GE_LONG(end, position); } - if (_2) { - ZEPHIR_CALL_METHOD(&_3, value, "current", &_4); + if (_1) { + ZEPHIR_CALL_METHOD(&_2, value, "current", &_3); zephir_check_call_status(); - zephir_array_append(&slice, _3, PH_SEPARATE, "phalcon/mvc/view/engine/volt.zep", 239); + zephir_array_append(&slice, _2, PH_SEPARATE, "phalcon/mvc/view/engine/volt.zep", 233); } - ZEPHIR_CALL_METHOD(NULL, value, "next", &_5); + ZEPHIR_CALL_METHOD(NULL, value, "next", &_4); zephir_check_call_status(); position++; } RETURN_CCTOR(slice); } - ZEPHIR_INIT_NVAR(length); + ZEPHIR_INIT_VAR(length); if (Z_TYPE_P(end) != IS_NULL) { - ZEPHIR_INIT_VAR(_6); - sub_function(_6, end, start TSRMLS_CC); - ZVAL_LONG(length, (zephir_get_numberval(_6) + 1)); + ZVAL_LONG(length, (((zephir_get_numberval(end) - start)) + 1)); } else { ZVAL_NULL(length); } if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_RETURN_CALL_FUNCTION("array_slice", &_7, value, start, length); + ZEPHIR_SINIT_VAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("array_slice", &_6, value, &_5, length); zephir_check_call_status(); RETURN_MM(); } if ((zephir_function_exists_ex(SS("mb_substr") TSRMLS_CC) == SUCCESS)) { if (Z_TYPE_P(length) != IS_NULL) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_8, value, start, length); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_7, value, &_5, length); zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_8, value, start); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", &_7, value, &_5); zephir_check_call_status(); RETURN_MM(); } if (Z_TYPE_P(length) != IS_NULL) { - zephir_substr(return_value, value, zephir_get_intval(start), zephir_get_intval(length), 0); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + zephir_substr(return_value, value, zephir_get_intval(&_5), zephir_get_intval(length), 0); RETURN_MM(); } - zephir_substr(return_value, value, zephir_get_intval(start), 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_SINIT_NVAR(_5); + ZVAL_LONG(&_5, start); + zephir_substr(return_value, value, zephir_get_intval(&_5), 0, ZEPHIR_SUBSTR_NO_LENGTH); RETURN_MM(); } @@ -108673,7 +111059,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, fireExtensionEvent) { ZEPHIR_OBS_VAR(extensions); zephir_read_property_this(&extensions, this_ptr, SL("_extensions"), PH_NOISY_CC); if (Z_TYPE_P(extensions) == IS_ARRAY) { - zephir_is_iterable(extensions, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 191); + zephir_is_iterable(extensions, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 189); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -108718,7 +111104,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addExtension) { if (Z_TYPE_P(extension) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The extension is not valid", "phalcon/mvc/view/engine/volt/compiler.zep", 203); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The extension is not valid", "phalcon/mvc/view/engine/volt/compiler.zep", 201); return; } if ((zephir_method_exists_ex(extension, SS("initialize") TSRMLS_CC) == SUCCESS)) { @@ -108858,7 +111244,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) { } } if (Z_TYPE_P(prefix) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The unique compilation prefix is invalid", "phalcon/mvc/view/engine/volt/compiler.zep", 311); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "The unique compilation prefix is invalid", "phalcon/mvc/view/engine/volt/compiler.zep", 303); return; } RETURN_CCTOR(prefix); @@ -108867,9 +111253,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { + zend_bool _5; zephir_nts_static zephir_fcall_cache_entry *_4 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *exprCode, *left, *leftType, *variable, *level, *dependencyInjector, *leftCode = NULL, *right, *_0, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_5, *_6; + zval *expr_param = NULL, *exprCode, *left, *leftType, *variable, *level, *dependencyInjector, *leftCode = NULL, *right, *_0, *_1 = NULL, *_2 = NULL, *_3 = NULL, *_6, *_7; zval *expr = NULL; ZEPHIR_MM_GROW(); @@ -108882,11 +111269,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { ZEPHIR_INIT_VAR(exprCode); ZVAL_NULL(exprCode); ZEPHIR_OBS_VAR(left); - zephir_array_fetch_string(&left, expr, SL("left"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 327 TSRMLS_CC); - zephir_array_fetch_string(&_0, left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 329 TSRMLS_CC); + zephir_array_fetch_string(&left, expr, SL("left"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 319 TSRMLS_CC); + zephir_array_fetch_string(&_0, left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 321 TSRMLS_CC); if (ZEPHIR_IS_LONG(_0, 265)) { ZEPHIR_OBS_VAR(variable); - zephir_array_fetch_string(&variable, left, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 331 TSRMLS_CC); + zephir_array_fetch_string(&variable, left, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 323 TSRMLS_CC); if (ZEPHIR_IS_STRING(variable, "loop")) { ZEPHIR_OBS_VAR(level); zephir_read_property_this(&level, this_ptr, SL("_foreachLevel"), PH_NOISY_CC); @@ -108921,26 +111308,26 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", &_4, left); zephir_check_call_status(); ZEPHIR_OBS_VAR(leftType); - zephir_array_fetch_string(&leftType, left, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 358 TSRMLS_CC); - if (!ZEPHIR_IS_LONG(leftType, '.')) { - if (!ZEPHIR_IS_LONG(leftType, 350)) { - ZEPHIR_INIT_LNVAR(_2); - ZEPHIR_CONCAT_SVS(_2, "(", leftCode, ")"); - zephir_concat_self(&exprCode, _2 TSRMLS_CC); - } else { - zephir_concat_self(&exprCode, leftCode TSRMLS_CC); - } + zephir_array_fetch_string(&leftType, left, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 350 TSRMLS_CC); + _5 = !ZEPHIR_IS_LONG(leftType, '.'); + if (_5) { + _5 = !ZEPHIR_IS_LONG(leftType, 350); + } + if (_5) { + ZEPHIR_INIT_LNVAR(_2); + ZEPHIR_CONCAT_SVS(_2, "(", leftCode, ")"); + zephir_concat_self(&exprCode, _2 TSRMLS_CC); } else { zephir_concat_self(&exprCode, leftCode TSRMLS_CC); } } zephir_concat_self_str(&exprCode, SL("->") TSRMLS_CC); ZEPHIR_OBS_VAR(right); - zephir_array_fetch_string(&right, expr, SL("right"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 372 TSRMLS_CC); - zephir_array_fetch_string(&_5, right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 374 TSRMLS_CC); - if (ZEPHIR_IS_LONG(_5, 265)) { - zephir_array_fetch_string(&_6, right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 375 TSRMLS_CC); - zephir_concat_self(&exprCode, _6 TSRMLS_CC); + zephir_array_fetch_string(&right, expr, SL("right"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 360 TSRMLS_CC); + zephir_array_fetch_string(&_6, right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 362 TSRMLS_CC); + if (ZEPHIR_IS_LONG(_6, 265)) { + zephir_array_fetch_string(&_7, right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 363 TSRMLS_CC); + zephir_concat_self(&exprCode, _7 TSRMLS_CC); } else { ZEPHIR_CALL_METHOD(&_1, this_ptr, "expression", &_4, right); zephir_check_call_status(); @@ -108952,9 +111339,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { - zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL; + zend_bool _8; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL, *_9 = NULL, *_10 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *code = NULL, *funcArguments = NULL, *arguments = NULL, *nameExpr, *nameType, *name, *extensions, *functions, *definition, *macros, *extendedBlocks, *block, *currentBlock, *exprLevel, *escapedCode = NULL, *method = NULL, *arrayHelpers = NULL, *className, *_2 = NULL, *_4, *_5, *_6 = NULL, *_10 = NULL; + zval *expr_param = NULL, *code = NULL, *funcArguments = NULL, *arguments = NULL, *nameExpr, *nameType, *name, *extensions, *functions, *definition, *macros, *extendedBlocks, *block, *currentBlock, *exprLevel, *escapedCode = NULL, *method = NULL, *arrayHelpers = NULL, *className, *_2 = NULL, *_4, *_5, *_6 = NULL, *_11 = NULL; zval *expr = NULL, *_1 = NULL; ZEPHIR_MM_GROW(); @@ -108977,12 +111365,12 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZVAL_STRING(arguments, "", 1); } ZEPHIR_OBS_VAR(nameExpr); - zephir_array_fetch_string(&nameExpr, expr, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 402 TSRMLS_CC); + zephir_array_fetch_string(&nameExpr, expr, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 390 TSRMLS_CC); ZEPHIR_OBS_VAR(nameType); - zephir_array_fetch_string(&nameType, nameExpr, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 402 TSRMLS_CC); + zephir_array_fetch_string(&nameType, nameExpr, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 390 TSRMLS_CC); if (ZEPHIR_IS_LONG(nameType, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, nameExpr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 409 TSRMLS_CC); + zephir_array_fetch_string(&name, nameExpr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 397 TSRMLS_CC); ZEPHIR_OBS_VAR(extensions); zephir_read_property_this(&extensions, this_ptr, SL("_extensions"), PH_NOISY_CC); if (Z_TYPE_P(extensions) == IS_ARRAY) { @@ -109022,13 +111410,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); - zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); + zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); + zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); ZEPHIR_INIT_VAR(_6); ZEPHIR_CONCAT_SVSVSV(_6, "Invalid definition for user function '", name, "' in ", _4, " on line ", _5); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 450 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 438 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -109039,10 +111427,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZEPHIR_CONCAT_SVSVS(return_value, "vmacro_", name, "(array(", arguments, "))"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "get_content")) { - RETURN_MM_STRING("$this->getContent()", 1); + _8 = ZEPHIR_IS_STRING(name, "get_content"); + if (!(_8)) { + _8 = ZEPHIR_IS_STRING(name, "content"); } - if (ZEPHIR_IS_STRING(name, "content")) { + if (_8) { RETURN_MM_STRING("$this->getContent()", 1); } if (ZEPHIR_IS_STRING(name, "partial")) { @@ -109060,7 +111449,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { ZEPHIR_OBS_VAR(exprLevel); zephir_read_property_this(&exprLevel, this_ptr, SL("_exprLevel"), PH_NOISY_CC); if (Z_TYPE_P(block) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&code, this_ptr, "_statementlistorextends", &_8, block); + ZEPHIR_CALL_METHOD(&code, this_ptr, "_statementlistorextends", &_9, block); zephir_check_call_status(); if (ZEPHIR_IS_LONG(exprLevel, 1)) { ZEPHIR_CPY_WRT(escapedCode, code); @@ -109087,7 +111476,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); zephir_camelize(_2, name); - ZEPHIR_CALL_FUNCTION(&method, "lcfirst", &_9, _2); + ZEPHIR_CALL_FUNCTION(&method, "lcfirst", &_10, _2); zephir_check_call_status(); ZEPHIR_INIT_VAR(className); ZVAL_STRING(className, "Phalcon\\Tag", 1); @@ -109153,19 +111542,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { } ZEPHIR_INIT_NVAR(_2); object_init_ex(_2, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); - zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); + zephir_array_fetch_string(&_4, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); + zephir_array_fetch_string(&_5, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_6); ZEPHIR_CONCAT_SVSVSV(_6, "Undefined function '", name, "' in ", _4, " on line ", _5); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 602 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/view/engine/volt/compiler.zep", 583 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_CALL_METHOD(&_10, this_ptr, "expression", &_0, nameExpr); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "expression", &_0, nameExpr); zephir_check_call_status(); - ZEPHIR_CONCAT_VSVS(return_value, _10, "(", arguments, ")"); + ZEPHIR_CONCAT_VSVS(return_value, _11, "(", arguments, ")"); RETURN_MM(); } @@ -109187,10 +111576,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { ZEPHIR_OBS_VAR(type); - zephir_array_fetch_string(&type, test, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 615 TSRMLS_CC); + zephir_array_fetch_string(&type, test, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 596 TSRMLS_CC); if (ZEPHIR_IS_LONG(type, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, test, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 622 TSRMLS_CC); + zephir_array_fetch_string(&name, test, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 603 TSRMLS_CC); if (ZEPHIR_IS_STRING(name, "empty")) { ZEPHIR_CONCAT_SVS(return_value, "empty(", left, ")"); RETURN_MM(); @@ -109218,25 +111607,25 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { } if (ZEPHIR_IS_LONG(type, 350)) { ZEPHIR_OBS_VAR(testName); - zephir_array_fetch_string(&testName, test, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 673 TSRMLS_CC); + zephir_array_fetch_string(&testName, test, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 654 TSRMLS_CC); ZEPHIR_OBS_NVAR(name); if (zephir_array_isset_string_fetch(&name, testName, SS("value"), 0 TSRMLS_CC)) { if (ZEPHIR_IS_STRING(name, "divisibleby")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 677 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 658 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "(((", left, ") % (", _0, ")) == 0)"); RETURN_MM(); } if (ZEPHIR_IS_STRING(name, "sameas")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 684 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 665 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "(", left, ") === (", _0, ")"); RETURN_MM(); } if (ZEPHIR_IS_STRING(name, "type")) { - zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 691 TSRMLS_CC); + zephir_array_fetch_string(&_1, test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 672 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_2, _1); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "gettype(", left, ") === (", _0, ")"); @@ -109253,6 +111642,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { + zend_bool _10, _11, _12; zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL; int ZEPHIR_LAST_CALL_STATUS; zval *left = NULL; @@ -109270,28 +111660,28 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_INIT_VAR(code); ZVAL_NULL(code); ZEPHIR_OBS_VAR(type); - zephir_array_fetch_string(&type, filter, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 710 TSRMLS_CC); + zephir_array_fetch_string(&type, filter, SL("type"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 691 TSRMLS_CC); if (ZEPHIR_IS_LONG(type, 265)) { ZEPHIR_OBS_VAR(name); - zephir_array_fetch_string(&name, filter, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 716 TSRMLS_CC); + zephir_array_fetch_string(&name, filter, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 697 TSRMLS_CC); } else { if (!ZEPHIR_IS_LONG(type, 350)) { ZEPHIR_INIT_VAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); ZEPHIR_INIT_VAR(_3); ZEPHIR_CONCAT_SVSV(_3, "Unknown filter type in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 705 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(functionName); - zephir_array_fetch_string(&functionName, filter, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 727 TSRMLS_CC); + zephir_array_fetch_string(&functionName, filter, SL("name"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 708 TSRMLS_CC); ZEPHIR_OBS_NVAR(name); - zephir_array_fetch_string(&name, functionName, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 728 TSRMLS_CC); + zephir_array_fetch_string(&name, functionName, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 709 TSRMLS_CC); } ZEPHIR_INIT_VAR(funcArguments); ZVAL_NULL(funcArguments); @@ -109301,9 +111691,9 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { if (zephir_array_isset_string_fetch(&funcArguments, filter, SS("arguments"), 0 TSRMLS_CC)) { if (!ZEPHIR_IS_STRING(name, "default")) { ZEPHIR_OBS_VAR(file); - zephir_array_fetch_string(&file, filter, SL("file"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&file, filter, SL("file"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); ZEPHIR_OBS_VAR(line); - zephir_array_fetch_string(&line, filter, SL("line"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 743 TSRMLS_CC); + zephir_array_fetch_string(&line, filter, SL("line"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 724 TSRMLS_CC); ZEPHIR_INIT_VAR(_5); zephir_create_array(_5, 3, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_6); @@ -109364,13 +111754,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { } ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); ZEPHIR_CONCAT_SVSVSV(_3, "Invalid definition for user filter '", name, "' in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 806 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 787 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -109379,11 +111769,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_CONCAT_SVS(return_value, "$this->length(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "e")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", arguments, ")"); - RETURN_MM(); + _10 = ZEPHIR_IS_STRING(name, "e"); + if (!(_10)) { + _10 = ZEPHIR_IS_STRING(name, "escape"); } - if (ZEPHIR_IS_STRING(name, "escape")) { + if (_10) { ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", arguments, ")"); RETURN_MM(); } @@ -109439,19 +111829,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { ZEPHIR_CONCAT_SVS(return_value, "join(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "lowercase")) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", arguments, ")"); - RETURN_MM(); + _11 = ZEPHIR_IS_STRING(name, "lower"); + if (!(_11)) { + _11 = ZEPHIR_IS_STRING(name, "lowercase"); } - if (ZEPHIR_IS_STRING(name, "lower")) { + if (_11) { ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", arguments, ")"); RETURN_MM(); } - if (ZEPHIR_IS_STRING(name, "uppercase")) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", arguments, ")"); - RETURN_MM(); + _12 = ZEPHIR_IS_STRING(name, "upper"); + if (!(_12)) { + _12 = ZEPHIR_IS_STRING(name, "uppercase"); } - if (ZEPHIR_IS_STRING(name, "upper")) { + if (_12) { ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", arguments, ")"); RETURN_MM(); } @@ -109493,13 +111883,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { } ZEPHIR_INIT_NVAR(_0); object_init_ex(_0, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); - zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); + zephir_array_fetch_string(&_1, filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); + zephir_array_fetch_string(&_2, filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); ZEPHIR_CONCAT_SVSVSV(_3, "Unknown filter \"", name, "\" in ", _1, " on line ", _2); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 1016 TSRMLS_CC); + zephir_throw_exception_debug(_0, "phalcon/mvc/view/engine/volt/compiler.zep", 976 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -109545,22 +111935,22 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { if (!(zephir_array_isset_string_fetch(&type, expr, SS("type"), 0 TSRMLS_CC))) { ZEPHIR_INIT_NVAR(items); array_init(items); - zephir_is_iterable(expr, &_4, &_3, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1057); + zephir_is_iterable(expr, &_4, &_3, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1017); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) ) { ZEPHIR_GET_HVALUE(singleExpr, _5); - zephir_array_fetch_string(&_6, singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1050 TSRMLS_CC); + zephir_array_fetch_string(&_6, singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1010 TSRMLS_CC); ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, _6); zephir_check_call_status(); ZEPHIR_OBS_NVAR(name); if (zephir_array_isset_string_fetch(&name, singleExpr, SS("name"), 0 TSRMLS_CC)) { ZEPHIR_INIT_LNVAR(_8); ZEPHIR_CONCAT_SVSV(_8, "'", name, "' => ", singleExprCode); - zephir_array_append(&items, _8, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1052); + zephir_array_append(&items, _8, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1012); } else { - zephir_array_append(&items, singleExprCode, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1054); + zephir_array_append(&items, singleExprCode, PH_SEPARATE, "phalcon/mvc/view/engine/volt/compiler.zep", 1014); } } ZEPHIR_INIT_NVAR(exprCode); @@ -109578,13 +111968,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { zephir_check_call_status(); } if (ZEPHIR_IS_LONG(type, 311)) { - zephir_array_fetch_string(&_6, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1080 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1040 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvetest", &_10, _6, leftCode); zephir_check_call_status(); break; } if (ZEPHIR_IS_LONG(type, 124)) { - zephir_array_fetch_string(&_11, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1088 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1048 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvefilter", &_12, _11, leftCode); zephir_check_call_status(); break; @@ -109663,17 +112053,17 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { } if (ZEPHIR_IS_LONG(type, 258)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1155 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1115 TSRMLS_CC); break; } if (ZEPHIR_IS_LONG(type, 259)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1159 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1119 TSRMLS_CC); break; } if (ZEPHIR_IS_LONG(type, 260)) { ZEPHIR_INIT_NVAR(_1); - zephir_array_fetch_string(&_6, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1163 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1123 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_13); ZVAL_STRING(&_13, "'", 0); ZEPHIR_SINIT_NVAR(_14); @@ -109699,7 +112089,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { break; } if (ZEPHIR_IS_LONG(type, 265)) { - zephir_array_fetch_string(&_11, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1179 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1139 TSRMLS_CC); ZEPHIR_INIT_NVAR(exprCode); ZEPHIR_CONCAT_SV(exprCode, "$", _11); break; @@ -109866,7 +112256,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { break; } if (ZEPHIR_IS_LONG(type, 366)) { - zephir_array_fetch_string(&_6, expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1318 TSRMLS_CC); + zephir_array_fetch_string(&_6, expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1278 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_16, this_ptr, "expression", &_7, _6); zephir_check_call_status(); ZEPHIR_INIT_NVAR(exprCode); @@ -109885,18 +112275,18 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { } if (ZEPHIR_IS_LONG(type, 364)) { ZEPHIR_OBS_NVAR(exprCode); - zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1330 TSRMLS_CC); + zephir_array_fetch_string(&exprCode, expr, SL("value"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1290 TSRMLS_CC); break; } ZEPHIR_INIT_NVAR(_1); object_init_ex(_1, phalcon_mvc_view_exception_ce); - zephir_array_fetch_string(&_11, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); - zephir_array_fetch_string(&_17, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); + zephir_array_fetch_string(&_11, expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); + zephir_array_fetch_string(&_17, expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_8); ZEPHIR_CONCAT_SVSVSV(_8, "Unknown expression ", type, " in ", _11, " on line ", _17); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_18, _8); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/view/engine/volt/compiler.zep", 1334 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/view/engine/volt/compiler.zep", 1294 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } while(0); @@ -109928,7 +112318,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, _statementListOrExtends } isStatementList = 1; if (!(zephir_array_isset_string(statements, SS("type")))) { - zephir_is_iterable(statements, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1374); + zephir_is_iterable(statements, &_1, &_0, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1334); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -109973,7 +112363,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { if (!(zephir_array_isset_string(statement, SS("expr")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1402); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1362); return; } ZEPHIR_INIT_VAR(compilation); @@ -109988,15 +112378,15 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { ZEPHIR_INIT_VAR(prefixLevel); ZEPHIR_CONCAT_VV(prefixLevel, prefix, level); ZEPHIR_OBS_VAR(expr); - zephir_array_fetch_string(&expr, statement, SL("expr"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1420 TSRMLS_CC); + zephir_array_fetch_string(&expr, statement, SL("expr"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1380 TSRMLS_CC); ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", &_0, expr); zephir_check_call_status(); ZEPHIR_OBS_VAR(blockStatements); - zephir_array_fetch_string(&blockStatements, statement, SL("block_statements"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1426 TSRMLS_CC); + zephir_array_fetch_string(&blockStatements, statement, SL("block_statements"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1386 TSRMLS_CC); ZEPHIR_INIT_NVAR(forElse); ZVAL_BOOL(forElse, 0); if (Z_TYPE_P(blockStatements) == IS_ARRAY) { - zephir_is_iterable(blockStatements, &_2, &_1, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1452); + zephir_is_iterable(blockStatements, &_2, &_1, 0, 0, "phalcon/mvc/view/engine/volt/compiler.zep", 1412); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -110054,7 +112444,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) { ZEPHIR_CPY_WRT(iterator, exprCode); } ZEPHIR_OBS_VAR(variable); - zephir_array_fetch_string(&variable, statement, SL("variable"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1481 TSRMLS_CC); + zephir_array_fetch_string(&variable, statement, SL("variable"), PH_NOISY, "phalcon/mvc/view/engine/volt/compiler.zep", 1441 TSRMLS_CC); ZEPHIR_OBS_VAR(key); if (zephir_array_isset_string_fetch(&key, statement, SS("key"), 0 TSRMLS_CC)) { ZEPHIR_INIT_LNVAR(_6); @@ -110163,12 +112553,12 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileIf) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1573); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1533); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_1, expr); zephir_check_call_status(); - zephir_array_fetch_string(&_3, statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1579 TSRMLS_CC); + zephir_array_fetch_string(&_3, statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1539 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_2, this_ptr, "_statementlist", &_4, _3, (extendsMode ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); ZEPHIR_INIT_VAR(compilation); @@ -110202,7 +112592,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileElseIf) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1608); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1568); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", &_1, expr); @@ -110234,7 +112624,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCache) { ZEPHIR_OBS_VAR(expr); if (!(zephir_array_isset_string_fetch(&expr, statement, SS("expr"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1628); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupt statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1588); return; } ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", &_0, expr); @@ -110259,7 +112649,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCache) { ZEPHIR_INIT_LNVAR(_2); ZEPHIR_CONCAT_SVS(_2, "if ($_cacheKey[", exprCode, "] === null) { ?>"); zephir_concat_self(&compilation, _2 TSRMLS_CC); - zephir_array_fetch_string(&_5, statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1647 TSRMLS_CC); + zephir_array_fetch_string(&_5, statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/mvc/view/engine/volt/compiler.zep", 1607 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_4, this_ptr, "_statementlist", &_6, _5, (extendsMode ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); zephir_concat_self(&compilation, _4 TSRMLS_CC); @@ -110298,22 +112688,22 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSet) { ZEPHIR_OBS_VAR(assignments); if (!(zephir_array_isset_string_fetch(&assignments, statement, SS("assignments"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1673); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Corrupted statement", "phalcon/mvc/view/engine/volt/compiler.zep", 1633); return; } ZEPHIR_INIT_VAR(compilation); ZVAL_STRING(compilation, " +// 42 "parser.lemon" #ifdef HAVE_CONFIG_H @@ -111945,6 +114334,7 @@ static zval *phvolt_ret_macro_call_statement(zval *expr, zval *arguments, zval * } +// 570 "parser.c" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -111955,58 +114345,58 @@ static zval *phvolt_ret_macro_call_statement(zval *expr, zval *arguments, zval * #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal +** VVCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds +** VVNOCODE is a number of type VVCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. -** YYFALLBACK If defined, this indicates that one or more tokens +** VVFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal +** VVACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** phvolt_TOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. +** VVMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is phvolt_TOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. +** for base tokens is called "vv0". +** VVSTACKDEPTH is the maximum depth of the parser's stack. ** phvolt_ARG_SDECL A static variable declaration for the %extra_argument ** phvolt_ARG_PDECL A parameter declaration for the %extra_argument -** phvolt_ARG_STORE Code to store %extra_argument into yypParser -** phvolt_ARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not +** phvolt_ARG_STORE Code to store %extra_argument into vvpParser +** phvolt_ARG_FETCH Code to extract %extra_argument from vvpParser +** VVNSTATE the combined number of states. +** VVNRULE the number of rules in the grammar +** VVERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ -#define YYCODETYPE unsigned char -#define YYNOCODE 120 -#define YYACTIONTYPE unsigned short int +#define VVCODETYPE unsigned char +#define VVNOCODE 120 +#define VVACTIONTYPE unsigned short int #define phvolt_TOKENTYPE phvolt_parser_token* typedef union { - phvolt_TOKENTYPE yy0; - zval* yy92; - int yy239; -} YYMINORTYPE; -#define YYSTACKDEPTH 100 + phvolt_TOKENTYPE vv0; + zval* vv92; + int vv239; +} VVMINORTYPE; +#define VVSTACKDEPTH 100 #define phvolt_ARG_SDECL phvolt_parser_status *status; #define phvolt_ARG_PDECL ,phvolt_parser_status *status -#define phvolt_ARG_FETCH phvolt_parser_status *status = yypParser->status -#define phvolt_ARG_STORE yypParser->status = status -#define YYNSTATE 333 -#define YYNRULE 145 -#define YYERRORSYMBOL 83 -#define YYERRSYMDT yy239 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define phvolt_ARG_FETCH phvolt_parser_status *status = vvpParser->status +#define phvolt_ARG_STORE vvpParser->status = status +#define VVNSTATE 333 +#define VVNRULE 145 +#define VVERRORSYMBOL 83 +#define VVERRSYMDT vv239 +#define VV_NO_ACTION (VVNSTATE+VVNRULE+2) +#define VV_ACCEPT_ACTION (VVNSTATE+VVNRULE+1) +#define VV_ERROR_ACTION (VVNSTATE+VVNRULE) /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -112016,566 +114406,562 @@ typedef union { ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N < VVNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** VVNSTATE <= N < VVNSTATE+VVNRULE Reduce by rule N-VVNSTATE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N == VVNSTATE+VVNRULE A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == VVNSTATE+VVNRULE+1 The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. +** N == VVNSTATE+VVNRULE+2 No such action. Denotes unused +** slots in the vv_action[] table. ** -** The action table is constructed as a single large table named yy_action[]. +** The action table is constructed as a single large table named vv_action[]. ** Given state S and lookahead X, the action is computed as ** -** yy_action[ yy_shift_ofst[S] + X ] +** vv_action[ vv_shift_ofst[S] + X ] ** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. +** If the index value vv_shift_ofst[S]+X is out of range or if the value +** vv_lookahead[vv_shift_ofst[S]+X] is not equal to X or if vv_shift_ofst[S] +** is equal to VV_SHIFT_USE_DFLT, it means that the action is not in the table +** and that vv_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. +** a reduce action) then the vv_reduce_ofst[] array is used in place of +** the vv_shift_ofst[] array and VV_REDUCE_USE_DFLT is used in place of +** VV_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for +** vv_action[] A single table containing all actions. +** vv_lookahead[] A table containing the lookahead for each entry in +** vv_action. Used to detect hash collisions. +** vv_shift_ofst[] For each state, the offset into vv_action for ** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for +** vv_reduce_ofst[] For each state, the offset into vv_action for ** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. +** vv_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { - /* 0 */ 82, 92, 23, 60, 52, 54, 66, 62, 64, 72, +static VVACTIONTYPE vv_action[] = { + /* 0 */ 82, 92, 181, 60, 52, 54, 66, 62, 64, 72, /* 10 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 20 */ 56, 89, 58, 84, 87, 88, 96, 80, 299, 173, - /* 30 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 20 */ 56, 89, 58, 84, 87, 88, 96, 80, 315, 310, + /* 30 */ 82, 92, 180, 60, 52, 54, 66, 62, 64, 72, /* 40 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 50 */ 56, 89, 58, 84, 87, 88, 96, 80, 255, 224, - /* 60 */ 48, 46, 50, 43, 40, 56, 89, 58, 84, 87, - /* 70 */ 88, 96, 80, 258, 306, 171, 266, 179, 194, 333, - /* 80 */ 82, 92, 30, 60, 52, 54, 66, 62, 64, 72, - /* 90 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 100 */ 56, 89, 58, 84, 87, 88, 96, 80, 32, 234, - /* 110 */ 82, 92, 112, 60, 52, 54, 66, 62, 64, 72, - /* 120 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 130 */ 56, 89, 58, 84, 87, 88, 96, 80, 315, 310, - /* 140 */ 82, 92, 235, 60, 52, 54, 66, 62, 64, 72, + /* 50 */ 56, 89, 58, 84, 87, 88, 96, 80, 299, 173, + /* 60 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 70 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 80 */ 56, 89, 58, 84, 87, 88, 96, 80, 213, 234, + /* 90 */ 82, 92, 287, 60, 52, 54, 66, 62, 64, 72, + /* 100 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 110 */ 56, 89, 58, 84, 87, 88, 96, 80, 246, 224, + /* 120 */ 179, 194, 235, 48, 46, 50, 43, 40, 56, 89, + /* 130 */ 58, 84, 87, 88, 96, 80, 266, 281, 245, 260, + /* 140 */ 82, 92, 112, 60, 52, 54, 66, 62, 64, 72, /* 150 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 160 */ 56, 89, 58, 84, 87, 88, 96, 80, 181, 26, - /* 170 */ 82, 92, 36, 60, 52, 54, 66, 62, 64, 72, + /* 160 */ 56, 89, 58, 84, 87, 88, 96, 80, 209, 301, + /* 170 */ 82, 92, 250, 60, 52, 54, 66, 62, 64, 72, /* 180 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 190 */ 56, 89, 58, 84, 87, 88, 96, 80, 180, 39, - /* 200 */ 82, 92, 108, 60, 52, 54, 66, 62, 64, 72, + /* 190 */ 56, 89, 58, 84, 87, 88, 96, 80, 252, 243, + /* 200 */ 82, 92, 254, 60, 52, 54, 66, 62, 64, 72, /* 210 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 220 */ 56, 89, 58, 84, 87, 88, 96, 80, 82, 92, - /* 230 */ 94, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 240 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 250 */ 58, 84, 87, 88, 96, 80, 27, 259, 4, 5, - /* 260 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 270 */ 16, 17, 18, 19, 20, 21, 22, 91, 280, 298, - /* 280 */ 107, 82, 92, 128, 60, 52, 54, 66, 62, 64, - /* 290 */ 72, 74, 76, 78, 68, 70, 48, 46, 50, 43, - /* 300 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 43, - /* 310 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 292, - /* 320 */ 293, 294, 295, 296, 297, 102, 245, 260, 127, 82, - /* 330 */ 92, 85, 60, 52, 54, 66, 62, 64, 72, 74, - /* 340 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 350 */ 89, 58, 84, 87, 88, 96, 80, 115, 237, 82, - /* 360 */ 92, 136, 60, 52, 54, 66, 62, 64, 72, 74, - /* 370 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 380 */ 89, 58, 84, 87, 88, 96, 80, 131, 240, 82, - /* 390 */ 92, 137, 60, 52, 54, 66, 62, 64, 72, 74, - /* 400 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 410 */ 89, 58, 84, 87, 88, 96, 80, 458, 243, 82, - /* 420 */ 92, 459, 60, 52, 54, 66, 62, 64, 72, 74, - /* 430 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, - /* 440 */ 89, 58, 84, 87, 88, 96, 80, 92, 143, 60, + /* 220 */ 56, 89, 58, 84, 87, 88, 96, 80, 92, 136, + /* 230 */ 60, 52, 54, 66, 62, 64, 72, 74, 76, 78, + /* 240 */ 68, 70, 48, 46, 50, 43, 40, 56, 89, 58, + /* 250 */ 84, 87, 88, 96, 80, 257, 108, 280, 298, 82, + /* 260 */ 92, 332, 60, 52, 54, 66, 62, 64, 72, 74, + /* 270 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, + /* 280 */ 89, 58, 84, 87, 88, 96, 80, 82, 92, 261, + /* 290 */ 60, 52, 54, 66, 62, 64, 72, 74, 76, 78, + /* 300 */ 68, 70, 48, 46, 50, 43, 40, 56, 89, 58, + /* 310 */ 84, 87, 88, 96, 80, 131, 26, 43, 40, 56, + /* 320 */ 89, 58, 84, 87, 88, 96, 80, 89, 58, 84, + /* 330 */ 87, 88, 96, 80, 107, 137, 91, 306, 171, 321, + /* 340 */ 82, 92, 458, 60, 52, 54, 66, 62, 64, 72, + /* 350 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 360 */ 56, 89, 58, 84, 87, 88, 96, 80, 267, 39, + /* 370 */ 82, 92, 94, 60, 52, 54, 66, 62, 64, 72, + /* 380 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, + /* 390 */ 56, 89, 58, 84, 87, 88, 96, 80, 82, 92, + /* 400 */ 128, 60, 52, 54, 66, 62, 64, 72, 74, 76, + /* 410 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, + /* 420 */ 58, 84, 87, 88, 96, 80, 292, 293, 294, 295, + /* 430 */ 296, 297, 184, 186, 188, 190, 192, 84, 87, 88, + /* 440 */ 96, 80, 102, 459, 30, 127, 82, 92, 203, 60, /* 450 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, /* 460 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, - /* 470 */ 87, 88, 96, 80, 257, 141, 144, 458, 82, 92, - /* 480 */ 168, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 490 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 500 */ 58, 84, 87, 88, 96, 80, 459, 301, 82, 92, - /* 510 */ 177, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 520 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 530 */ 58, 84, 87, 88, 96, 80, 170, 317, 82, 92, - /* 540 */ 183, 60, 52, 54, 66, 62, 64, 72, 74, 76, - /* 550 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, - /* 560 */ 58, 84, 87, 88, 96, 80, 82, 92, 182, 60, - /* 570 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, - /* 580 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, - /* 590 */ 87, 88, 206, 80, 60, 52, 54, 66, 62, 64, - /* 600 */ 72, 74, 76, 78, 68, 70, 48, 46, 50, 43, - /* 610 */ 40, 56, 89, 58, 84, 87, 88, 96, 80, 52, - /* 620 */ 54, 66, 62, 64, 72, 74, 76, 78, 68, 70, - /* 630 */ 48, 46, 50, 43, 40, 56, 89, 58, 84, 87, - /* 640 */ 88, 96, 80, 479, 1, 2, 259, 4, 5, 6, - /* 650 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 660 */ 17, 18, 19, 20, 21, 22, 66, 62, 64, 72, - /* 670 */ 74, 76, 78, 68, 70, 48, 46, 50, 43, 40, - /* 680 */ 56, 89, 58, 84, 87, 88, 96, 80, 33, 259, - /* 690 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 700 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 174, - /* 710 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 720 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 730 */ 200, 259, 4, 5, 6, 7, 8, 9, 10, 11, - /* 740 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 750 */ 22, 210, 259, 4, 5, 6, 7, 8, 9, 10, - /* 760 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 770 */ 21, 22, 218, 259, 4, 5, 6, 7, 8, 9, - /* 780 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 790 */ 20, 21, 22, 225, 259, 4, 5, 6, 7, 8, - /* 800 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 810 */ 19, 20, 21, 22, 247, 259, 4, 5, 6, 7, - /* 820 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 830 */ 18, 19, 20, 21, 22, 262, 259, 4, 5, 6, - /* 840 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 850 */ 17, 18, 19, 20, 21, 22, 268, 259, 4, 5, - /* 860 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 870 */ 16, 17, 18, 19, 20, 21, 22, 283, 259, 4, - /* 880 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 890 */ 15, 16, 17, 18, 19, 20, 21, 22, 302, 259, - /* 900 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 910 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 311, - /* 920 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 930 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 940 */ 318, 259, 4, 5, 6, 7, 8, 9, 10, 11, - /* 950 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 960 */ 22, 3, 4, 5, 6, 7, 8, 9, 10, 11, - /* 970 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 980 */ 22, 44, 41, 196, 103, 90, 98, 25, 197, 100, - /* 990 */ 216, 44, 41, 140, 103, 117, 98, 117, 118, 100, - /* 1000 */ 89, 58, 84, 87, 88, 96, 80, 325, 118, 119, - /* 1010 */ 120, 121, 122, 123, 124, 199, 203, 128, 209, 119, - /* 1020 */ 120, 121, 122, 123, 124, 84, 87, 88, 96, 80, - /* 1030 */ 28, 230, 38, 154, 155, 156, 157, 158, 159, 160, - /* 1040 */ 166, 109, 117, 147, 148, 149, 150, 151, 152, 153, - /* 1050 */ 117, 109, 24, 214, 29, 31, 37, 167, 169, 334, - /* 1060 */ 23, 178, 208, 255, 104, 42, 139, 195, 184, 186, - /* 1070 */ 188, 190, 192, 125, 117, 117, 204, 138, 258, 287, - /* 1080 */ 215, 289, 222, 213, 229, 232, 255, 238, 241, 244, - /* 1090 */ 198, 251, 253, 24, 214, 326, 328, 37, 167, 169, - /* 1100 */ 97, 258, 178, 97, 217, 221, 126, 277, 195, 97, - /* 1110 */ 117, 134, 228, 117, 129, 207, 255, 204, 231, 117, - /* 1120 */ 134, 215, 322, 222, 281, 229, 232, 246, 238, 241, - /* 1130 */ 244, 258, 251, 253, 24, 214, 35, 104, 37, 167, - /* 1140 */ 169, 104, 34, 178, 106, 139, 113, 117, 111, 195, - /* 1150 */ 113, 117, 278, 175, 250, 165, 138, 289, 204, 252, - /* 1160 */ 254, 261, 215, 265, 222, 117, 229, 232, 267, 238, - /* 1170 */ 241, 244, 201, 251, 253, 24, 214, 271, 255, 37, - /* 1180 */ 167, 169, 45, 176, 178, 162, 47, 142, 274, 211, - /* 1190 */ 195, 276, 117, 258, 49, 117, 117, 279, 255, 204, - /* 1200 */ 282, 286, 288, 215, 117, 222, 291, 229, 232, 255, - /* 1210 */ 238, 241, 244, 258, 251, 253, 24, 214, 290, 51, - /* 1220 */ 37, 167, 169, 305, 258, 178, 308, 53, 255, 117, - /* 1230 */ 272, 195, 300, 202, 307, 219, 314, 117, 321, 324, - /* 1240 */ 204, 327, 117, 258, 215, 255, 222, 329, 229, 232, - /* 1250 */ 330, 238, 241, 244, 226, 251, 253, 24, 214, 332, - /* 1260 */ 258, 37, 167, 169, 55, 248, 178, 266, 331, 266, - /* 1270 */ 57, 266, 195, 59, 117, 266, 266, 266, 266, 266, - /* 1280 */ 117, 204, 212, 117, 266, 215, 255, 222, 266, 229, - /* 1290 */ 232, 255, 238, 241, 244, 263, 251, 253, 24, 214, - /* 1300 */ 266, 258, 37, 167, 169, 266, 258, 178, 266, 266, - /* 1310 */ 255, 266, 269, 195, 266, 266, 266, 266, 266, 61, - /* 1320 */ 266, 255, 204, 266, 266, 258, 215, 220, 222, 117, - /* 1330 */ 229, 232, 284, 238, 241, 244, 258, 251, 253, 24, - /* 1340 */ 214, 266, 266, 37, 167, 169, 266, 266, 178, 266, - /* 1350 */ 309, 255, 63, 303, 195, 266, 266, 266, 266, 266, - /* 1360 */ 117, 266, 117, 204, 266, 266, 258, 215, 255, 222, - /* 1370 */ 227, 229, 232, 312, 238, 241, 244, 319, 251, 253, - /* 1380 */ 24, 214, 65, 258, 37, 167, 169, 266, 255, 178, - /* 1390 */ 67, 69, 117, 266, 266, 195, 266, 71, 266, 266, - /* 1400 */ 117, 117, 266, 258, 204, 266, 266, 117, 215, 255, - /* 1410 */ 222, 266, 229, 232, 266, 238, 241, 244, 249, 251, - /* 1420 */ 253, 24, 214, 266, 258, 37, 167, 169, 266, 255, - /* 1430 */ 178, 266, 266, 255, 266, 266, 195, 73, 266, 266, - /* 1440 */ 75, 266, 77, 266, 258, 204, 266, 117, 258, 215, - /* 1450 */ 117, 222, 117, 229, 232, 266, 238, 241, 244, 264, - /* 1460 */ 251, 253, 24, 214, 266, 266, 37, 167, 169, 266, - /* 1470 */ 79, 178, 266, 266, 81, 83, 266, 195, 86, 266, - /* 1480 */ 117, 93, 266, 266, 117, 117, 204, 266, 117, 266, - /* 1490 */ 215, 117, 222, 270, 229, 232, 95, 238, 241, 244, - /* 1500 */ 99, 251, 253, 24, 214, 101, 117, 37, 167, 169, - /* 1510 */ 117, 116, 178, 266, 266, 117, 132, 266, 195, 266, - /* 1520 */ 164, 117, 266, 266, 172, 266, 117, 204, 266, 266, - /* 1530 */ 117, 215, 273, 222, 117, 229, 232, 185, 238, 241, - /* 1540 */ 244, 187, 251, 253, 24, 214, 266, 117, 37, 167, - /* 1550 */ 169, 117, 189, 178, 266, 191, 193, 205, 266, 195, - /* 1560 */ 223, 285, 117, 266, 266, 117, 117, 117, 204, 266, - /* 1570 */ 117, 266, 215, 266, 222, 266, 229, 232, 233, 238, - /* 1580 */ 241, 244, 236, 251, 253, 24, 214, 266, 117, 37, - /* 1590 */ 167, 169, 117, 304, 178, 266, 239, 266, 242, 266, - /* 1600 */ 195, 256, 316, 266, 266, 266, 117, 266, 117, 204, - /* 1610 */ 266, 117, 117, 215, 266, 222, 266, 229, 232, 266, - /* 1620 */ 238, 241, 244, 266, 251, 253, 24, 214, 266, 266, - /* 1630 */ 37, 167, 169, 266, 313, 178, 266, 266, 266, 266, - /* 1640 */ 266, 195, 266, 266, 266, 266, 266, 266, 266, 266, - /* 1650 */ 204, 266, 266, 266, 215, 266, 222, 266, 229, 232, - /* 1660 */ 266, 238, 241, 244, 266, 251, 253, 24, 214, 266, - /* 1670 */ 266, 37, 167, 169, 266, 320, 178, 266, 266, 266, - /* 1680 */ 266, 266, 195, 266, 266, 266, 266, 266, 266, 266, - /* 1690 */ 266, 204, 266, 266, 266, 215, 266, 222, 266, 229, - /* 1700 */ 232, 266, 238, 241, 244, 266, 251, 253, 24, 214, - /* 1710 */ 323, 266, 37, 167, 169, 266, 266, 178, 266, 266, - /* 1720 */ 266, 266, 266, 195, 266, 266, 266, 266, 266, 266, - /* 1730 */ 266, 266, 204, 266, 266, 266, 215, 266, 222, 266, - /* 1740 */ 229, 232, 266, 238, 241, 244, 266, 251, 253, 24, - /* 1750 */ 214, 266, 266, 37, 167, 169, 266, 266, 178, 266, - /* 1760 */ 266, 266, 266, 266, 195, 266, 266, 266, 266, 266, - /* 1770 */ 266, 266, 266, 204, 266, 266, 266, 215, 266, 222, - /* 1780 */ 266, 229, 232, 266, 238, 241, 244, 266, 251, 253, - /* 1790 */ 266, 266, 266, 163, 266, 44, 41, 266, 103, 266, - /* 1800 */ 98, 266, 266, 100, 266, 266, 266, 266, 266, 266, - /* 1810 */ 266, 266, 118, 266, 266, 266, 266, 266, 266, 266, - /* 1820 */ 266, 266, 266, 119, 120, 121, 122, 123, 124, 266, - /* 1830 */ 266, 161, 266, 266, 44, 41, 266, 103, 266, 98, - /* 1840 */ 266, 266, 100, 266, 266, 266, 266, 266, 266, 266, - /* 1850 */ 266, 118, 266, 266, 266, 109, 266, 135, 266, 266, - /* 1860 */ 266, 266, 119, 120, 121, 122, 123, 124, 266, 266, - /* 1870 */ 266, 266, 266, 44, 41, 266, 103, 266, 98, 266, - /* 1880 */ 266, 100, 266, 266, 266, 266, 266, 266, 266, 266, - /* 1890 */ 146, 266, 266, 266, 109, 266, 266, 266, 266, 266, - /* 1900 */ 266, 145, 120, 121, 122, 123, 124, 266, 266, 266, - /* 1910 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, - /* 1920 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, - /* 1930 */ 266, 266, 266, 109, 266, 266, 266, 266, 133, 266, - /* 1940 */ 119, 130, 121, 122, 123, 124, 266, 266, 266, 266, - /* 1950 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, - /* 1960 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, - /* 1970 */ 266, 266, 109, 266, 266, 266, 266, 266, 266, 119, - /* 1980 */ 114, 121, 122, 123, 124, 266, 266, 266, 266, 266, - /* 1990 */ 44, 41, 266, 103, 266, 98, 266, 266, 100, 266, - /* 2000 */ 266, 266, 266, 266, 266, 266, 266, 118, 266, 266, - /* 2010 */ 105, 109, 266, 266, 266, 266, 266, 266, 119, 114, - /* 2020 */ 121, 122, 123, 124, 266, 266, 266, 266, 266, 44, - /* 2030 */ 41, 266, 103, 266, 98, 266, 266, 100, 266, 266, - /* 2040 */ 266, 266, 266, 266, 266, 266, 118, 266, 266, 266, - /* 2050 */ 109, 110, 266, 266, 266, 275, 266, 119, 130, 121, - /* 2060 */ 122, 123, 124, 266, 266, 266, 266, 266, 44, 41, - /* 2070 */ 266, 103, 266, 98, 266, 266, 100, 266, 266, 266, - /* 2080 */ 266, 266, 266, 266, 266, 118, 266, 266, 266, 109, - /* 2090 */ 266, 266, 266, 266, 266, 266, 119, 120, 121, 122, - /* 2100 */ 123, 124, 266, 266, 266, 266, 266, 44, 41, 266, - /* 2110 */ 103, 266, 98, 266, 266, 100, 266, 266, 266, 266, - /* 2120 */ 266, 266, 266, 266, 118, 266, 266, 266, 109, 266, - /* 2130 */ 266, 266, 266, 266, 266, 119, 114, 121, 122, 123, - /* 2140 */ 124, 266, 266, 266, 266, 266, 44, 41, 266, 103, - /* 2150 */ 266, 98, 266, 266, 100, 266, 266, 266, 266, 266, - /* 2160 */ 266, 266, 266, 118, 266, 266, 266, 109, 266, 266, - /* 2170 */ 266, 266, 266, 266, 119, 130, 121, 122, 123, 124, - /* 2180 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 2190 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 2200 */ 266, 266, 266, 266, 266, 266, 109, + /* 470 */ 87, 88, 96, 80, 265, 317, 82, 92, 199, 60, + /* 480 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 490 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 500 */ 87, 88, 96, 80, 271, 237, 82, 92, 274, 60, + /* 510 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 520 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 530 */ 87, 88, 96, 80, 183, 240, 82, 92, 36, 60, + /* 540 */ 52, 54, 66, 62, 64, 72, 74, 76, 78, 68, + /* 550 */ 70, 48, 46, 50, 43, 40, 56, 89, 58, 84, + /* 560 */ 87, 88, 96, 80, 82, 92, 276, 60, 52, 54, + /* 570 */ 66, 62, 64, 72, 74, 76, 78, 68, 70, 48, + /* 580 */ 46, 50, 43, 40, 56, 89, 58, 84, 87, 88, + /* 590 */ 206, 80, 60, 52, 54, 66, 62, 64, 72, 74, + /* 600 */ 76, 78, 68, 70, 48, 46, 50, 43, 40, 56, + /* 610 */ 89, 58, 84, 87, 88, 96, 80, 52, 54, 66, + /* 620 */ 62, 64, 72, 74, 76, 78, 68, 70, 48, 46, + /* 630 */ 50, 43, 40, 56, 89, 58, 84, 87, 88, 96, + /* 640 */ 80, 479, 1, 2, 259, 4, 5, 6, 7, 8, + /* 650 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 660 */ 19, 20, 21, 22, 66, 62, 64, 72, 74, 76, + /* 670 */ 78, 68, 70, 48, 46, 50, 43, 40, 56, 89, + /* 680 */ 58, 84, 87, 88, 96, 80, 247, 259, 4, 5, + /* 690 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 700 */ 16, 17, 18, 19, 20, 21, 22, 302, 259, 4, + /* 710 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 720 */ 15, 16, 17, 18, 19, 20, 21, 22, 218, 259, + /* 730 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 740 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 210, + /* 750 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 760 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 770 */ 27, 259, 4, 5, 6, 7, 8, 9, 10, 11, + /* 780 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 790 */ 22, 225, 259, 4, 5, 6, 7, 8, 9, 10, + /* 800 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 810 */ 21, 22, 311, 259, 4, 5, 6, 7, 8, 9, + /* 820 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 830 */ 20, 21, 22, 268, 259, 4, 5, 6, 7, 8, + /* 840 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 850 */ 19, 20, 21, 22, 262, 259, 4, 5, 6, 7, + /* 860 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 870 */ 18, 19, 20, 21, 22, 200, 259, 4, 5, 6, + /* 880 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 890 */ 17, 18, 19, 20, 21, 22, 283, 259, 4, 5, + /* 900 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 910 */ 16, 17, 18, 19, 20, 21, 22, 318, 259, 4, + /* 920 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 930 */ 15, 16, 17, 18, 19, 20, 21, 22, 33, 259, + /* 940 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 950 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 174, + /* 960 */ 259, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 970 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 980 */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 990 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 1000 */ 44, 41, 141, 103, 128, 98, 59, 277, 100, 143, + /* 1010 */ 44, 41, 104, 103, 97, 98, 117, 118, 100, 111, + /* 1020 */ 126, 113, 117, 278, 117, 134, 34, 118, 119, 120, + /* 1030 */ 121, 122, 123, 124, 303, 239, 177, 104, 119, 120, + /* 1040 */ 121, 122, 123, 124, 106, 117, 113, 117, 144, 208, + /* 1050 */ 279, 90, 147, 148, 149, 150, 151, 152, 153, 140, + /* 1060 */ 109, 117, 154, 155, 156, 157, 158, 159, 160, 282, + /* 1070 */ 109, 24, 214, 326, 328, 37, 167, 169, 334, 23, + /* 1080 */ 178, 97, 255, 97, 324, 23, 195, 207, 65, 197, + /* 1090 */ 255, 117, 134, 117, 129, 204, 196, 258, 117, 215, + /* 1100 */ 458, 222, 286, 229, 232, 258, 238, 241, 244, 23, + /* 1110 */ 251, 253, 24, 214, 29, 31, 37, 167, 169, 104, + /* 1120 */ 201, 178, 459, 223, 316, 289, 139, 195, 125, 117, + /* 1130 */ 289, 288, 139, 117, 117, 255, 204, 138, 290, 198, + /* 1140 */ 215, 255, 222, 138, 229, 232, 291, 238, 241, 244, + /* 1150 */ 258, 251, 253, 24, 214, 323, 258, 37, 167, 169, + /* 1160 */ 45, 269, 178, 242, 168, 255, 327, 312, 195, 300, + /* 1170 */ 117, 85, 61, 117, 142, 329, 255, 204, 305, 117, + /* 1180 */ 258, 215, 117, 222, 308, 229, 232, 219, 238, 241, + /* 1190 */ 244, 258, 251, 253, 24, 214, 172, 170, 37, 167, + /* 1200 */ 169, 330, 320, 178, 221, 165, 117, 307, 115, 195, + /* 1210 */ 333, 53, 230, 216, 182, 117, 228, 255, 204, 217, + /* 1220 */ 266, 117, 215, 255, 222, 231, 229, 232, 32, 238, + /* 1230 */ 241, 244, 258, 251, 253, 24, 214, 49, 258, 37, + /* 1240 */ 167, 169, 132, 255, 178, 205, 314, 117, 331, 266, + /* 1250 */ 195, 73, 117, 266, 266, 117, 67, 266, 258, 204, + /* 1260 */ 212, 117, 266, 215, 266, 222, 117, 229, 232, 226, + /* 1270 */ 238, 241, 244, 272, 251, 253, 24, 214, 42, 266, + /* 1280 */ 37, 167, 169, 266, 176, 178, 266, 81, 117, 38, + /* 1290 */ 266, 195, 266, 266, 266, 309, 266, 117, 266, 117, + /* 1300 */ 204, 266, 266, 266, 215, 117, 222, 266, 229, 232, + /* 1310 */ 319, 238, 241, 244, 211, 251, 253, 24, 214, 35, + /* 1320 */ 266, 37, 167, 169, 266, 255, 178, 266, 266, 255, + /* 1330 */ 266, 266, 195, 266, 266, 266, 266, 266, 187, 266, + /* 1340 */ 258, 204, 266, 266, 258, 215, 322, 222, 117, 229, + /* 1350 */ 232, 248, 238, 241, 244, 284, 251, 253, 24, 214, + /* 1360 */ 266, 266, 37, 167, 169, 266, 255, 178, 101, 83, + /* 1370 */ 255, 266, 266, 195, 193, 266, 266, 266, 117, 117, + /* 1380 */ 266, 258, 204, 266, 117, 258, 215, 220, 222, 266, + /* 1390 */ 229, 232, 263, 238, 241, 244, 325, 251, 253, 24, + /* 1400 */ 214, 266, 255, 37, 167, 169, 266, 255, 178, 266, + /* 1410 */ 266, 255, 266, 175, 195, 266, 266, 258, 266, 266, + /* 1420 */ 266, 266, 258, 204, 266, 266, 258, 215, 273, 222, + /* 1430 */ 266, 229, 232, 28, 238, 241, 244, 191, 251, 253, + /* 1440 */ 24, 214, 266, 266, 37, 167, 169, 117, 255, 178, + /* 1450 */ 266, 266, 255, 266, 266, 195, 75, 266, 266, 266, + /* 1460 */ 266, 266, 266, 258, 204, 266, 117, 258, 215, 255, + /* 1470 */ 222, 270, 229, 232, 266, 238, 241, 244, 189, 251, + /* 1480 */ 253, 24, 214, 266, 258, 37, 167, 169, 117, 255, + /* 1490 */ 178, 266, 166, 185, 266, 266, 195, 266, 266, 266, + /* 1500 */ 47, 266, 117, 117, 258, 204, 266, 266, 266, 215, + /* 1510 */ 117, 222, 227, 229, 232, 164, 238, 241, 244, 266, + /* 1520 */ 251, 253, 24, 214, 266, 117, 37, 167, 169, 266, + /* 1530 */ 304, 178, 266, 266, 69, 77, 266, 195, 266, 266, + /* 1540 */ 266, 86, 266, 116, 117, 117, 204, 266, 266, 266, + /* 1550 */ 215, 117, 222, 117, 229, 232, 95, 238, 241, 244, + /* 1560 */ 71, 251, 253, 24, 214, 266, 117, 37, 167, 169, + /* 1570 */ 117, 63, 178, 266, 55, 93, 233, 266, 195, 79, + /* 1580 */ 285, 117, 266, 266, 117, 117, 117, 204, 266, 117, + /* 1590 */ 266, 215, 266, 222, 266, 229, 232, 57, 238, 241, + /* 1600 */ 244, 99, 251, 253, 24, 214, 266, 117, 37, 167, + /* 1610 */ 169, 117, 256, 178, 266, 266, 266, 236, 266, 195, + /* 1620 */ 51, 202, 117, 162, 266, 25, 266, 117, 204, 266, + /* 1630 */ 117, 266, 215, 117, 222, 117, 229, 232, 266, 238, + /* 1640 */ 241, 244, 266, 251, 253, 24, 214, 266, 266, 37, + /* 1650 */ 167, 169, 266, 266, 178, 266, 266, 266, 266, 266, + /* 1660 */ 195, 266, 266, 266, 266, 266, 266, 266, 266, 204, + /* 1670 */ 266, 266, 266, 215, 266, 222, 266, 229, 232, 266, + /* 1680 */ 238, 241, 244, 264, 251, 253, 24, 214, 266, 266, + /* 1690 */ 37, 167, 169, 266, 266, 178, 266, 266, 266, 266, + /* 1700 */ 266, 195, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1710 */ 204, 266, 266, 266, 215, 266, 222, 266, 229, 232, + /* 1720 */ 266, 238, 241, 244, 249, 251, 253, 24, 214, 266, + /* 1730 */ 266, 37, 167, 169, 266, 313, 178, 266, 266, 266, + /* 1740 */ 266, 266, 195, 266, 266, 266, 266, 266, 266, 266, + /* 1750 */ 266, 204, 266, 266, 266, 215, 266, 222, 266, 229, + /* 1760 */ 232, 266, 238, 241, 244, 266, 251, 253, 24, 214, + /* 1770 */ 266, 266, 37, 167, 169, 266, 266, 178, 266, 266, + /* 1780 */ 266, 266, 266, 195, 266, 44, 41, 266, 103, 266, + /* 1790 */ 98, 266, 204, 100, 266, 266, 215, 266, 222, 266, + /* 1800 */ 229, 232, 118, 238, 241, 244, 266, 251, 253, 266, + /* 1810 */ 266, 266, 266, 119, 114, 121, 122, 123, 124, 266, + /* 1820 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 1830 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, + /* 1840 */ 266, 266, 266, 266, 266, 109, 110, 266, 133, 266, + /* 1850 */ 119, 130, 121, 122, 123, 124, 135, 266, 266, 266, + /* 1860 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1870 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 1880 */ 100, 266, 109, 266, 266, 266, 266, 266, 266, 146, + /* 1890 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 1900 */ 145, 120, 121, 122, 123, 124, 266, 266, 161, 266, + /* 1910 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, + /* 1920 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, + /* 1930 */ 44, 41, 109, 103, 266, 98, 266, 266, 100, 119, + /* 1940 */ 120, 121, 122, 123, 124, 266, 266, 118, 266, 266, + /* 1950 */ 266, 266, 266, 266, 266, 266, 266, 266, 119, 114, + /* 1960 */ 121, 122, 123, 124, 266, 44, 41, 266, 103, 266, + /* 1970 */ 98, 109, 266, 100, 266, 266, 266, 266, 266, 266, + /* 1980 */ 266, 266, 118, 266, 266, 266, 266, 266, 266, 105, + /* 1990 */ 109, 275, 266, 119, 130, 121, 122, 123, 124, 266, + /* 2000 */ 266, 266, 163, 266, 44, 41, 266, 103, 266, 98, + /* 2010 */ 266, 266, 100, 266, 266, 266, 266, 266, 266, 266, + /* 2020 */ 266, 118, 266, 266, 266, 109, 266, 266, 266, 266, + /* 2030 */ 266, 266, 119, 120, 121, 122, 123, 124, 266, 266, + /* 2040 */ 266, 266, 266, 44, 41, 266, 103, 266, 98, 266, + /* 2050 */ 266, 100, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2060 */ 118, 266, 266, 266, 109, 266, 266, 266, 266, 266, + /* 2070 */ 266, 119, 114, 121, 122, 123, 124, 266, 266, 266, + /* 2080 */ 266, 266, 44, 41, 266, 103, 266, 98, 266, 266, + /* 2090 */ 100, 266, 266, 266, 266, 266, 266, 266, 266, 118, + /* 2100 */ 266, 266, 266, 109, 266, 266, 266, 266, 266, 266, + /* 2110 */ 119, 120, 121, 122, 123, 124, 266, 266, 266, 266, + /* 2120 */ 266, 44, 41, 266, 103, 266, 98, 266, 266, 100, + /* 2130 */ 266, 266, 266, 266, 266, 266, 266, 266, 118, 266, + /* 2140 */ 266, 266, 109, 266, 266, 266, 266, 266, 266, 119, + /* 2150 */ 130, 121, 122, 123, 124, 266, 266, 266, 266, 266, + /* 2160 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2170 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + /* 2180 */ 266, 109, }; -static YYCODETYPE yy_lookahead[] = { - /* 0 */ 3, 4, 1, 6, 7, 8, 9, 10, 11, 12, +static VVCODETYPE vv_lookahead[] = { + /* 0 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, /* 10 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 20 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 30 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 30 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 40 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 57, 32, - /* 60 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 70 */ 28, 29, 30, 72, 2, 3, 49, 108, 109, 0, - /* 80 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, - /* 90 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 100 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, - /* 110 */ 3, 4, 82, 6, 7, 8, 9, 10, 11, 12, - /* 120 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 130 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 140 */ 3, 4, 65, 6, 7, 8, 9, 10, 11, 12, + /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 60 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 70 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 80 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 90 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 100 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 110 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 120 */ 108, 109, 65, 18, 19, 20, 21, 22, 23, 24, + /* 130 */ 25, 26, 27, 28, 29, 30, 49, 47, 53, 54, + /* 140 */ 3, 4, 82, 6, 7, 8, 9, 10, 11, 12, /* 150 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 160 */ 23, 24, 25, 26, 27, 28, 29, 30, 2, 32, + /* 160 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, /* 170 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 180 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 190 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, - /* 200 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, + /* 200 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12, /* 210 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 220 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 4, - /* 230 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 240 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 250 */ 25, 26, 27, 28, 29, 30, 86, 87, 88, 89, - /* 260 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - /* 270 */ 100, 101, 102, 103, 104, 105, 106, 80, 110, 111, - /* 280 */ 80, 3, 4, 2, 6, 7, 8, 9, 10, 11, - /* 290 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 300 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, - /* 310 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 49, - /* 320 */ 50, 51, 52, 53, 54, 47, 53, 54, 47, 3, - /* 330 */ 4, 3, 6, 7, 8, 9, 10, 11, 12, 13, - /* 340 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 350 */ 24, 25, 26, 27, 28, 29, 30, 5, 32, 3, - /* 360 */ 4, 115, 6, 7, 8, 9, 10, 11, 12, 13, - /* 370 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 380 */ 24, 25, 26, 27, 28, 29, 30, 5, 32, 3, - /* 390 */ 4, 80, 6, 7, 8, 9, 10, 11, 12, 13, - /* 400 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 410 */ 24, 25, 26, 27, 28, 29, 30, 80, 32, 3, - /* 420 */ 4, 80, 6, 7, 8, 9, 10, 11, 12, 13, - /* 430 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 440 */ 24, 25, 26, 27, 28, 29, 30, 4, 115, 6, + /* 220 */ 23, 24, 25, 26, 27, 28, 29, 30, 4, 115, + /* 230 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 240 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 250 */ 26, 27, 28, 29, 30, 58, 2, 110, 111, 3, + /* 260 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13, + /* 270 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 280 */ 24, 25, 26, 27, 28, 29, 30, 3, 4, 32, + /* 290 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 300 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 310 */ 26, 27, 28, 29, 30, 5, 32, 21, 22, 23, + /* 320 */ 24, 25, 26, 27, 28, 29, 30, 24, 25, 26, + /* 330 */ 27, 28, 29, 30, 80, 80, 80, 2, 3, 32, + /* 340 */ 3, 4, 80, 6, 7, 8, 9, 10, 11, 12, + /* 350 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 360 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32, + /* 370 */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 380 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 390 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 4, + /* 400 */ 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 410 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 420 */ 25, 26, 27, 28, 29, 30, 49, 50, 51, 52, + /* 430 */ 53, 54, 41, 42, 43, 44, 45, 26, 27, 28, + /* 440 */ 29, 30, 47, 80, 32, 47, 3, 4, 32, 6, /* 450 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, /* 460 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 470 */ 27, 28, 29, 30, 58, 5, 80, 5, 3, 4, - /* 480 */ 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 490 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 500 */ 25, 26, 27, 28, 29, 30, 5, 32, 3, 4, - /* 510 */ 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 520 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 530 */ 25, 26, 27, 28, 29, 30, 38, 32, 3, 4, - /* 540 */ 38, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 550 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 560 */ 25, 26, 27, 28, 29, 30, 3, 4, 109, 6, - /* 570 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 580 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 590 */ 27, 28, 29, 30, 6, 7, 8, 9, 10, 11, - /* 600 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 610 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 7, - /* 620 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 630 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 640 */ 28, 29, 30, 84, 85, 86, 87, 88, 89, 90, - /* 650 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 660 */ 101, 102, 103, 104, 105, 106, 9, 10, 11, 12, - /* 670 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 680 */ 23, 24, 25, 26, 27, 28, 29, 30, 86, 87, - /* 690 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 700 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, - /* 710 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 730 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 740 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 750 */ 106, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 760 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 770 */ 105, 106, 86, 87, 88, 89, 90, 91, 92, 93, - /* 780 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 790 */ 104, 105, 106, 86, 87, 88, 89, 90, 91, 92, - /* 800 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 810 */ 103, 104, 105, 106, 86, 87, 88, 89, 90, 91, - /* 820 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - /* 830 */ 102, 103, 104, 105, 106, 86, 87, 88, 89, 90, - /* 840 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 850 */ 101, 102, 103, 104, 105, 106, 86, 87, 88, 89, - /* 860 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - /* 870 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, - /* 880 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 890 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, - /* 900 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 910 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, - /* 920 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 930 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 940 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 950 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 960 */ 106, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 970 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 980 */ 106, 21, 22, 38, 24, 107, 26, 107, 29, 29, - /* 990 */ 38, 21, 22, 115, 24, 117, 26, 117, 38, 29, - /* 1000 */ 24, 25, 26, 27, 28, 29, 30, 1, 38, 49, - /* 1010 */ 50, 51, 52, 53, 54, 32, 32, 2, 32, 49, - /* 1020 */ 50, 51, 52, 53, 54, 26, 27, 28, 29, 30, - /* 1030 */ 1, 50, 107, 73, 74, 75, 76, 77, 78, 79, - /* 1040 */ 107, 81, 117, 73, 74, 75, 76, 77, 78, 79, - /* 1050 */ 117, 81, 31, 32, 33, 34, 35, 36, 37, 0, - /* 1060 */ 1, 40, 47, 57, 107, 107, 38, 46, 41, 42, - /* 1070 */ 43, 44, 45, 116, 117, 117, 55, 49, 72, 2, - /* 1080 */ 59, 38, 61, 32, 63, 64, 57, 66, 67, 68, - /* 1090 */ 47, 70, 71, 31, 32, 33, 34, 35, 36, 37, - /* 1100 */ 107, 72, 40, 107, 32, 32, 113, 1, 46, 107, - /* 1110 */ 117, 118, 32, 117, 118, 113, 57, 55, 32, 117, - /* 1120 */ 118, 59, 1, 61, 47, 63, 64, 32, 66, 67, - /* 1130 */ 68, 72, 70, 71, 31, 32, 33, 107, 35, 36, - /* 1140 */ 37, 107, 1, 40, 114, 38, 116, 117, 114, 46, - /* 1150 */ 116, 117, 56, 1, 32, 107, 49, 38, 55, 32, - /* 1160 */ 32, 32, 59, 32, 61, 117, 63, 64, 32, 66, - /* 1170 */ 67, 68, 1, 70, 71, 31, 32, 32, 57, 35, - /* 1180 */ 36, 37, 107, 39, 40, 107, 107, 80, 32, 1, - /* 1190 */ 46, 32, 117, 72, 107, 117, 117, 32, 57, 55, - /* 1200 */ 32, 32, 111, 59, 117, 61, 112, 63, 64, 57, - /* 1210 */ 66, 67, 68, 72, 70, 71, 31, 32, 41, 107, - /* 1220 */ 35, 36, 37, 32, 72, 40, 3, 107, 57, 117, - /* 1230 */ 1, 46, 107, 48, 38, 1, 32, 117, 32, 32, - /* 1240 */ 55, 32, 117, 72, 59, 57, 61, 32, 63, 64, - /* 1250 */ 1, 66, 67, 68, 1, 70, 71, 31, 32, 32, - /* 1260 */ 72, 35, 36, 37, 107, 1, 40, 119, 33, 119, - /* 1270 */ 107, 119, 46, 107, 117, 119, 119, 119, 119, 119, - /* 1280 */ 117, 55, 56, 117, 119, 59, 57, 61, 119, 63, - /* 1290 */ 64, 57, 66, 67, 68, 1, 70, 71, 31, 32, - /* 1300 */ 119, 72, 35, 36, 37, 119, 72, 40, 119, 119, - /* 1310 */ 57, 119, 1, 46, 119, 119, 119, 119, 119, 107, - /* 1320 */ 119, 57, 55, 119, 119, 72, 59, 60, 61, 117, - /* 1330 */ 63, 64, 1, 66, 67, 68, 72, 70, 71, 31, - /* 1340 */ 32, 119, 119, 35, 36, 37, 119, 119, 40, 119, - /* 1350 */ 107, 57, 107, 1, 46, 119, 119, 119, 119, 119, - /* 1360 */ 117, 119, 117, 55, 119, 119, 72, 59, 57, 61, - /* 1370 */ 62, 63, 64, 1, 66, 67, 68, 1, 70, 71, - /* 1380 */ 31, 32, 107, 72, 35, 36, 37, 119, 57, 40, - /* 1390 */ 107, 107, 117, 119, 119, 46, 119, 107, 119, 119, - /* 1400 */ 117, 117, 119, 72, 55, 119, 119, 117, 59, 57, - /* 1410 */ 61, 119, 63, 64, 119, 66, 67, 68, 69, 70, - /* 1420 */ 71, 31, 32, 119, 72, 35, 36, 37, 119, 57, - /* 1430 */ 40, 119, 119, 57, 119, 119, 46, 107, 119, 119, - /* 1440 */ 107, 119, 107, 119, 72, 55, 119, 117, 72, 59, - /* 1450 */ 117, 61, 117, 63, 64, 119, 66, 67, 68, 69, - /* 1460 */ 70, 71, 31, 32, 119, 119, 35, 36, 37, 119, - /* 1470 */ 107, 40, 119, 119, 107, 107, 119, 46, 107, 119, - /* 1480 */ 117, 107, 119, 119, 117, 117, 55, 119, 117, 119, - /* 1490 */ 59, 117, 61, 62, 63, 64, 107, 66, 67, 68, - /* 1500 */ 107, 70, 71, 31, 32, 107, 117, 35, 36, 37, - /* 1510 */ 117, 107, 40, 119, 119, 117, 107, 119, 46, 119, - /* 1520 */ 107, 117, 119, 119, 107, 119, 117, 55, 119, 119, - /* 1530 */ 117, 59, 60, 61, 117, 63, 64, 107, 66, 67, - /* 1540 */ 68, 107, 70, 71, 31, 32, 119, 117, 35, 36, - /* 1550 */ 37, 117, 107, 40, 119, 107, 107, 107, 119, 46, - /* 1560 */ 107, 48, 117, 119, 119, 117, 117, 117, 55, 119, - /* 1570 */ 117, 119, 59, 119, 61, 119, 63, 64, 107, 66, - /* 1580 */ 67, 68, 107, 70, 71, 31, 32, 119, 117, 35, - /* 1590 */ 36, 37, 117, 39, 40, 119, 107, 119, 107, 119, - /* 1600 */ 46, 107, 107, 119, 119, 119, 117, 119, 117, 55, - /* 1610 */ 119, 117, 117, 59, 119, 61, 119, 63, 64, 119, - /* 1620 */ 66, 67, 68, 119, 70, 71, 31, 32, 119, 119, - /* 1630 */ 35, 36, 37, 119, 39, 40, 119, 119, 119, 119, - /* 1640 */ 119, 46, 119, 119, 119, 119, 119, 119, 119, 119, - /* 1650 */ 55, 119, 119, 119, 59, 119, 61, 119, 63, 64, - /* 1660 */ 119, 66, 67, 68, 119, 70, 71, 31, 32, 119, - /* 1670 */ 119, 35, 36, 37, 119, 39, 40, 119, 119, 119, - /* 1680 */ 119, 119, 46, 119, 119, 119, 119, 119, 119, 119, - /* 1690 */ 119, 55, 119, 119, 119, 59, 119, 61, 119, 63, - /* 1700 */ 64, 119, 66, 67, 68, 119, 70, 71, 31, 32, - /* 1710 */ 33, 119, 35, 36, 37, 119, 119, 40, 119, 119, - /* 1720 */ 119, 119, 119, 46, 119, 119, 119, 119, 119, 119, - /* 1730 */ 119, 119, 55, 119, 119, 119, 59, 119, 61, 119, - /* 1740 */ 63, 64, 119, 66, 67, 68, 119, 70, 71, 31, - /* 1750 */ 32, 119, 119, 35, 36, 37, 119, 119, 40, 119, - /* 1760 */ 119, 119, 119, 119, 46, 119, 119, 119, 119, 119, - /* 1770 */ 119, 119, 119, 55, 119, 119, 119, 59, 119, 61, - /* 1780 */ 119, 63, 64, 119, 66, 67, 68, 119, 70, 71, - /* 1790 */ 119, 119, 119, 19, 119, 21, 22, 119, 24, 119, - /* 1800 */ 26, 119, 119, 29, 119, 119, 119, 119, 119, 119, - /* 1810 */ 119, 119, 38, 119, 119, 119, 119, 119, 119, 119, - /* 1820 */ 119, 119, 119, 49, 50, 51, 52, 53, 54, 119, - /* 1830 */ 119, 18, 119, 119, 21, 22, 119, 24, 119, 26, - /* 1840 */ 119, 119, 29, 119, 119, 119, 119, 119, 119, 119, - /* 1850 */ 119, 38, 119, 119, 119, 81, 119, 5, 119, 119, - /* 1860 */ 119, 119, 49, 50, 51, 52, 53, 54, 119, 119, - /* 1870 */ 119, 119, 119, 21, 22, 119, 24, 119, 26, 119, - /* 1880 */ 119, 29, 119, 119, 119, 119, 119, 119, 119, 119, - /* 1890 */ 38, 119, 119, 119, 81, 119, 119, 119, 119, 119, - /* 1900 */ 119, 49, 50, 51, 52, 53, 54, 119, 119, 119, - /* 1910 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, - /* 1920 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, - /* 1930 */ 119, 119, 119, 81, 119, 119, 119, 119, 47, 119, - /* 1940 */ 49, 50, 51, 52, 53, 54, 119, 119, 119, 119, - /* 1950 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, - /* 1960 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, - /* 1970 */ 119, 119, 81, 119, 119, 119, 119, 119, 119, 49, - /* 1980 */ 50, 51, 52, 53, 54, 119, 119, 119, 119, 119, - /* 1990 */ 21, 22, 119, 24, 119, 26, 119, 119, 29, 119, - /* 2000 */ 119, 119, 119, 119, 119, 119, 119, 38, 119, 119, - /* 2010 */ 80, 81, 119, 119, 119, 119, 119, 119, 49, 50, - /* 2020 */ 51, 52, 53, 54, 119, 119, 119, 119, 119, 21, - /* 2030 */ 22, 119, 24, 119, 26, 119, 119, 29, 119, 119, - /* 2040 */ 119, 119, 119, 119, 119, 119, 38, 119, 119, 119, - /* 2050 */ 81, 82, 119, 119, 119, 47, 119, 49, 50, 51, - /* 2060 */ 52, 53, 54, 119, 119, 119, 119, 119, 21, 22, - /* 2070 */ 119, 24, 119, 26, 119, 119, 29, 119, 119, 119, - /* 2080 */ 119, 119, 119, 119, 119, 38, 119, 119, 119, 81, - /* 2090 */ 119, 119, 119, 119, 119, 119, 49, 50, 51, 52, - /* 2100 */ 53, 54, 119, 119, 119, 119, 119, 21, 22, 119, - /* 2110 */ 24, 119, 26, 119, 119, 29, 119, 119, 119, 119, - /* 2120 */ 119, 119, 119, 119, 38, 119, 119, 119, 81, 119, - /* 2130 */ 119, 119, 119, 119, 119, 49, 50, 51, 52, 53, - /* 2140 */ 54, 119, 119, 119, 119, 119, 21, 22, 119, 24, - /* 2150 */ 119, 26, 119, 119, 29, 119, 119, 119, 119, 119, - /* 2160 */ 119, 119, 119, 38, 119, 119, 119, 81, 119, 119, - /* 2170 */ 119, 119, 119, 119, 49, 50, 51, 52, 53, 54, - /* 2180 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - /* 2190 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - /* 2200 */ 119, 119, 119, 119, 119, 119, 81, + /* 470 */ 27, 28, 29, 30, 32, 32, 3, 4, 32, 6, + /* 480 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 490 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 500 */ 27, 28, 29, 30, 32, 32, 3, 4, 32, 6, + /* 510 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 520 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 530 */ 27, 28, 29, 30, 38, 32, 3, 4, 32, 6, + /* 540 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 550 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 560 */ 27, 28, 29, 30, 3, 4, 32, 6, 7, 8, + /* 570 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 580 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + /* 590 */ 29, 30, 6, 7, 8, 9, 10, 11, 12, 13, + /* 600 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 610 */ 24, 25, 26, 27, 28, 29, 30, 7, 8, 9, + /* 620 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 630 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + /* 640 */ 30, 84, 85, 86, 87, 88, 89, 90, 91, 92, + /* 650 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 660 */ 103, 104, 105, 106, 9, 10, 11, 12, 13, 14, + /* 670 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 680 */ 25, 26, 27, 28, 29, 30, 86, 87, 88, 89, + /* 690 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 700 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, + /* 710 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + /* 720 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, + /* 730 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + /* 740 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, + /* 750 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 760 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 770 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 780 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 790 */ 106, 86, 87, 88, 89, 90, 91, 92, 93, 94, + /* 800 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 810 */ 105, 106, 86, 87, 88, 89, 90, 91, 92, 93, + /* 820 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + /* 830 */ 104, 105, 106, 86, 87, 88, 89, 90, 91, 92, + /* 840 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 850 */ 103, 104, 105, 106, 86, 87, 88, 89, 90, 91, + /* 860 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + /* 870 */ 102, 103, 104, 105, 106, 86, 87, 88, 89, 90, + /* 880 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 890 */ 101, 102, 103, 104, 105, 106, 86, 87, 88, 89, + /* 900 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 910 */ 100, 101, 102, 103, 104, 105, 106, 86, 87, 88, + /* 920 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + /* 930 */ 99, 100, 101, 102, 103, 104, 105, 106, 86, 87, + /* 940 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + /* 950 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 86, + /* 960 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 970 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 980 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + /* 990 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 1000 */ 21, 22, 5, 24, 2, 26, 107, 1, 29, 115, + /* 1010 */ 21, 22, 107, 24, 107, 26, 117, 38, 29, 114, + /* 1020 */ 113, 116, 117, 56, 117, 118, 1, 38, 49, 50, + /* 1030 */ 51, 52, 53, 54, 1, 107, 32, 107, 49, 50, + /* 1040 */ 51, 52, 53, 54, 114, 117, 116, 117, 80, 47, + /* 1050 */ 32, 107, 73, 74, 75, 76, 77, 78, 79, 115, + /* 1060 */ 81, 117, 73, 74, 75, 76, 77, 78, 79, 32, + /* 1070 */ 81, 31, 32, 33, 34, 35, 36, 37, 0, 1, + /* 1080 */ 40, 107, 57, 107, 32, 1, 46, 113, 107, 29, + /* 1090 */ 57, 117, 118, 117, 118, 55, 38, 72, 117, 59, + /* 1100 */ 5, 61, 32, 63, 64, 72, 66, 67, 68, 1, + /* 1110 */ 70, 71, 31, 32, 33, 34, 35, 36, 37, 107, + /* 1120 */ 1, 40, 5, 107, 107, 38, 38, 46, 116, 117, + /* 1130 */ 38, 111, 38, 117, 117, 57, 55, 49, 41, 47, + /* 1140 */ 59, 57, 61, 49, 63, 64, 112, 66, 67, 68, + /* 1150 */ 72, 70, 71, 31, 32, 33, 72, 35, 36, 37, + /* 1160 */ 107, 1, 40, 107, 32, 57, 32, 1, 46, 107, + /* 1170 */ 117, 3, 107, 117, 80, 32, 57, 55, 32, 117, + /* 1180 */ 72, 59, 117, 61, 3, 63, 64, 1, 66, 67, + /* 1190 */ 68, 72, 70, 71, 31, 32, 107, 38, 35, 36, + /* 1200 */ 37, 1, 39, 40, 32, 107, 117, 38, 5, 46, + /* 1210 */ 0, 107, 50, 38, 109, 117, 32, 57, 55, 32, + /* 1220 */ 119, 117, 59, 57, 61, 32, 63, 64, 32, 66, + /* 1230 */ 67, 68, 72, 70, 71, 31, 32, 107, 72, 35, + /* 1240 */ 36, 37, 107, 57, 40, 107, 32, 117, 33, 119, + /* 1250 */ 46, 107, 117, 119, 119, 117, 107, 119, 72, 55, + /* 1260 */ 56, 117, 119, 59, 119, 61, 117, 63, 64, 1, + /* 1270 */ 66, 67, 68, 1, 70, 71, 31, 32, 107, 119, + /* 1280 */ 35, 36, 37, 119, 39, 40, 119, 107, 117, 107, + /* 1290 */ 119, 46, 119, 119, 119, 107, 119, 117, 119, 117, + /* 1300 */ 55, 119, 119, 119, 59, 117, 61, 119, 63, 64, + /* 1310 */ 1, 66, 67, 68, 1, 70, 71, 31, 32, 33, + /* 1320 */ 119, 35, 36, 37, 119, 57, 40, 119, 119, 57, + /* 1330 */ 119, 119, 46, 119, 119, 119, 119, 119, 107, 119, + /* 1340 */ 72, 55, 119, 119, 72, 59, 1, 61, 117, 63, + /* 1350 */ 64, 1, 66, 67, 68, 1, 70, 71, 31, 32, + /* 1360 */ 119, 119, 35, 36, 37, 119, 57, 40, 107, 107, + /* 1370 */ 57, 119, 119, 46, 107, 119, 119, 119, 117, 117, + /* 1380 */ 119, 72, 55, 119, 117, 72, 59, 60, 61, 119, + /* 1390 */ 63, 64, 1, 66, 67, 68, 1, 70, 71, 31, + /* 1400 */ 32, 119, 57, 35, 36, 37, 119, 57, 40, 119, + /* 1410 */ 119, 57, 119, 1, 46, 119, 119, 72, 119, 119, + /* 1420 */ 119, 119, 72, 55, 119, 119, 72, 59, 60, 61, + /* 1430 */ 119, 63, 64, 1, 66, 67, 68, 107, 70, 71, + /* 1440 */ 31, 32, 119, 119, 35, 36, 37, 117, 57, 40, + /* 1450 */ 119, 119, 57, 119, 119, 46, 107, 119, 119, 119, + /* 1460 */ 119, 119, 119, 72, 55, 119, 117, 72, 59, 57, + /* 1470 */ 61, 62, 63, 64, 119, 66, 67, 68, 107, 70, + /* 1480 */ 71, 31, 32, 119, 72, 35, 36, 37, 117, 57, + /* 1490 */ 40, 119, 107, 107, 119, 119, 46, 119, 119, 119, + /* 1500 */ 107, 119, 117, 117, 72, 55, 119, 119, 119, 59, + /* 1510 */ 117, 61, 62, 63, 64, 107, 66, 67, 68, 119, + /* 1520 */ 70, 71, 31, 32, 119, 117, 35, 36, 37, 119, + /* 1530 */ 39, 40, 119, 119, 107, 107, 119, 46, 119, 119, + /* 1540 */ 119, 107, 119, 107, 117, 117, 55, 119, 119, 119, + /* 1550 */ 59, 117, 61, 117, 63, 64, 107, 66, 67, 68, + /* 1560 */ 107, 70, 71, 31, 32, 119, 117, 35, 36, 37, + /* 1570 */ 117, 107, 40, 119, 107, 107, 107, 119, 46, 107, + /* 1580 */ 48, 117, 119, 119, 117, 117, 117, 55, 119, 117, + /* 1590 */ 119, 59, 119, 61, 119, 63, 64, 107, 66, 67, + /* 1600 */ 68, 107, 70, 71, 31, 32, 119, 117, 35, 36, + /* 1610 */ 37, 117, 107, 40, 119, 119, 119, 107, 119, 46, + /* 1620 */ 107, 48, 117, 107, 119, 107, 119, 117, 55, 119, + /* 1630 */ 117, 119, 59, 117, 61, 117, 63, 64, 119, 66, + /* 1640 */ 67, 68, 119, 70, 71, 31, 32, 119, 119, 35, + /* 1650 */ 36, 37, 119, 119, 40, 119, 119, 119, 119, 119, + /* 1660 */ 46, 119, 119, 119, 119, 119, 119, 119, 119, 55, + /* 1670 */ 119, 119, 119, 59, 119, 61, 119, 63, 64, 119, + /* 1680 */ 66, 67, 68, 69, 70, 71, 31, 32, 119, 119, + /* 1690 */ 35, 36, 37, 119, 119, 40, 119, 119, 119, 119, + /* 1700 */ 119, 46, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1710 */ 55, 119, 119, 119, 59, 119, 61, 119, 63, 64, + /* 1720 */ 119, 66, 67, 68, 69, 70, 71, 31, 32, 119, + /* 1730 */ 119, 35, 36, 37, 119, 39, 40, 119, 119, 119, + /* 1740 */ 119, 119, 46, 119, 119, 119, 119, 119, 119, 119, + /* 1750 */ 119, 55, 119, 119, 119, 59, 119, 61, 119, 63, + /* 1760 */ 64, 119, 66, 67, 68, 119, 70, 71, 31, 32, + /* 1770 */ 119, 119, 35, 36, 37, 119, 119, 40, 119, 119, + /* 1780 */ 119, 119, 119, 46, 119, 21, 22, 119, 24, 119, + /* 1790 */ 26, 119, 55, 29, 119, 119, 59, 119, 61, 119, + /* 1800 */ 63, 64, 38, 66, 67, 68, 119, 70, 71, 119, + /* 1810 */ 119, 119, 119, 49, 50, 51, 52, 53, 54, 119, + /* 1820 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 1830 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, + /* 1840 */ 119, 119, 119, 119, 119, 81, 82, 119, 47, 119, + /* 1850 */ 49, 50, 51, 52, 53, 54, 5, 119, 119, 119, + /* 1860 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1870 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 1880 */ 29, 119, 81, 119, 119, 119, 119, 119, 119, 38, + /* 1890 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 1900 */ 49, 50, 51, 52, 53, 54, 119, 119, 18, 119, + /* 1910 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, + /* 1920 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, + /* 1930 */ 21, 22, 81, 24, 119, 26, 119, 119, 29, 49, + /* 1940 */ 50, 51, 52, 53, 54, 119, 119, 38, 119, 119, + /* 1950 */ 119, 119, 119, 119, 119, 119, 119, 119, 49, 50, + /* 1960 */ 51, 52, 53, 54, 119, 21, 22, 119, 24, 119, + /* 1970 */ 26, 81, 119, 29, 119, 119, 119, 119, 119, 119, + /* 1980 */ 119, 119, 38, 119, 119, 119, 119, 119, 119, 80, + /* 1990 */ 81, 47, 119, 49, 50, 51, 52, 53, 54, 119, + /* 2000 */ 119, 119, 19, 119, 21, 22, 119, 24, 119, 26, + /* 2010 */ 119, 119, 29, 119, 119, 119, 119, 119, 119, 119, + /* 2020 */ 119, 38, 119, 119, 119, 81, 119, 119, 119, 119, + /* 2030 */ 119, 119, 49, 50, 51, 52, 53, 54, 119, 119, + /* 2040 */ 119, 119, 119, 21, 22, 119, 24, 119, 26, 119, + /* 2050 */ 119, 29, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2060 */ 38, 119, 119, 119, 81, 119, 119, 119, 119, 119, + /* 2070 */ 119, 49, 50, 51, 52, 53, 54, 119, 119, 119, + /* 2080 */ 119, 119, 21, 22, 119, 24, 119, 26, 119, 119, + /* 2090 */ 29, 119, 119, 119, 119, 119, 119, 119, 119, 38, + /* 2100 */ 119, 119, 119, 81, 119, 119, 119, 119, 119, 119, + /* 2110 */ 49, 50, 51, 52, 53, 54, 119, 119, 119, 119, + /* 2120 */ 119, 21, 22, 119, 24, 119, 26, 119, 119, 29, + /* 2130 */ 119, 119, 119, 119, 119, 119, 119, 119, 38, 119, + /* 2140 */ 119, 119, 81, 119, 119, 119, 119, 119, 119, 49, + /* 2150 */ 50, 51, 52, 53, 54, 119, 119, 119, 119, 119, + /* 2160 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2170 */ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + /* 2180 */ 119, 81, }; -#define YY_SHIFT_USE_DFLT (-4) -static short yy_shift_ofst[] = { - /* 0 */ 1, 79, 1059, -4, -4, -4, -4, -4, -4, -4, +#define VV_SHIFT_USE_DFLT (-4) +static short vv_shift_ofst[] = { + /* 0 */ 1084, 1210, 1078, -4, -4, -4, -4, -4, -4, -4, /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 20 */ -4, -4, -4, 1718, 2047, 137, 1006, 1029, 1021, 50, - /* 30 */ -4, 76, 1121, 1141, 1103, 140, -4, 2047, 167, -4, - /* 40 */ 2047, 2047, 976, 2047, 2047, 976, 1774, 288, 1813, 288, - /* 50 */ 2047, 288, 2047, 657, 2047, 657, 2047, 976, 2047, 999, - /* 60 */ 2047, 612, 2047, 42, 960, 42, 970, 42, 2047, 42, - /* 70 */ 2047, 42, 2047, 42, 2047, 42, 2047, 42, 2047, 42, - /* 80 */ 2047, -4, 2047, 443, 328, 2047, 999, -4, -4, 1852, - /* 90 */ 197, -4, 2047, 225, 2047, 588, 1891, 535, 2047, 999, - /* 100 */ 2047, 278, -4, 1930, 535, -4, 200, -4, 2086, 1969, - /* 110 */ -4, 30, -4, -4, 352, 2047, 535, -4, -4, -4, - /* 120 */ -4, -4, -4, -4, -4, -4, 281, -4, 2125, -4, - /* 130 */ 382, 2047, 535, -4, -4, 1028, 311, -4, 337, 341, - /* 140 */ 470, 1107, -4, 396, -4, 472, 501, -4, -4, -4, + /* 20 */ -4, -4, -4, 1737, 2061, 284, 1395, 1432, 1081, 412, + /* 30 */ -4, 1196, 1345, 1025, 1286, 506, -4, 2061, 337, -4, + /* 40 */ 2061, 2061, 303, 2061, 2061, 303, 1983, 296, 1890, 296, + /* 50 */ 2061, 296, 2061, 655, 2061, 655, 2061, 303, 2061, 411, + /* 60 */ 2061, 610, 2061, 105, 989, 105, 979, 105, 2061, 105, + /* 70 */ 2061, 105, 2061, 105, 2061, 105, 2061, 105, 2061, 105, + /* 80 */ 2061, -4, 2061, 224, 1168, 2061, 411, -4, -4, 1851, + /* 90 */ 256, -4, 2061, 367, 2061, 586, 1801, 533, 2061, 411, + /* 100 */ 2061, 395, -4, 1909, 533, -4, 254, -4, 2022, 1764, + /* 110 */ -4, 60, -4, -4, 1203, 2061, 533, -4, -4, -4, + /* 120 */ -4, -4, -4, -4, -4, -4, 398, -4, 2100, -4, + /* 130 */ 310, 2061, 533, -4, -4, 1088, 255, -4, 262, 363, + /* 140 */ 997, 1094, -4, 968, -4, 1095, 1117, -4, -4, -4, /* 150 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 160 */ -4, 2047, 288, 2047, 288, 976, 976, 448, -4, 498, - /* 170 */ 72, 2047, -3, 1, 1152, 1144, 478, -4, 502, 166, - /* 180 */ -4, 502, -4, 1027, 2047, 535, 2047, 535, 2047, 535, - /* 190 */ 2047, 535, 2047, 535, -4, 945, 959, 1043, 983, 1, - /* 200 */ 1171, 1185, 984, -4, 2047, 563, 2008, 1015, 986, 1, - /* 210 */ 1188, 1226, 1051, -4, -4, 952, 1072, 1229, 1234, 1267, - /* 220 */ 1073, -4, 2047, 27, 1, 1253, 1308, 1080, -4, 981, - /* 230 */ 1086, -4, 2047, 77, -4, 2047, 326, -4, 2047, 356, - /* 240 */ -4, 2047, 386, -4, 273, 1095, 1, 1264, 1349, 1122, - /* 250 */ -4, 1127, -4, 1128, -4, 2047, 416, -4, -4, -4, - /* 260 */ 1129, 1, 1294, 1390, 1131, -4, 1136, 1, 1311, 1431, - /* 270 */ 1145, -4, 1472, 1156, -4, 1159, 1106, 1096, 1165, -4, - /* 280 */ 1077, 1168, 1, 1331, 1513, 1169, -4, 1119, -4, 1177, - /* 290 */ 270, -4, -4, -4, -4, -4, -4, -4, -4, 2047, - /* 300 */ 475, 1, 1352, 1554, 1191, -4, 1196, 1223, 2047, 107, - /* 310 */ 1, 1372, 1595, 1204, -4, 2047, 505, 1, 1376, 1636, - /* 320 */ 1206, -4, 1677, 1207, -4, 1062, 1209, -4, 1215, 1249, - /* 330 */ 1235, 1227, -4, + /* 160 */ -4, 2061, 296, 2061, 296, 303, 303, 1132, -4, 1159, + /* 170 */ 335, 2061, 27, 1108, 1412, 1245, 1004, -4, 496, 0, + /* 180 */ -4, 496, -4, 391, 2061, 533, 2061, 533, 2061, 533, + /* 190 */ 2061, 533, 2061, 533, -4, 1058, 1060, 1092, 446, 1108, + /* 200 */ 1119, 1573, 416, -4, 2061, 561, 1944, 1002, 136, 1084, + /* 210 */ 1313, 1204, 56, -4, -4, 1175, 1187, 1272, 1186, 1327, + /* 220 */ 1172, -4, 2061, 87, 1108, 1268, 1450, 1184, -4, 1162, + /* 230 */ 1193, -4, 2061, 57, -4, 2061, 473, -4, 2061, 503, + /* 240 */ -4, 2061, 167, -4, 85, 86, 1084, 1350, 1655, 140, + /* 250 */ -4, 166, -4, 170, -4, 2061, 197, -4, -4, -4, + /* 260 */ 257, 1084, 1391, 1614, 442, -4, 336, 1108, 1160, 1409, + /* 270 */ 472, -4, 1368, 476, -4, 534, 1006, 967, 1018, -4, + /* 280 */ 90, 1037, 1084, 1354, 1532, 1070, -4, 1087, -4, 1097, + /* 290 */ 377, -4, -4, -4, -4, -4, -4, -4, -4, 2061, + /* 300 */ 137, 1084, 1033, 1491, 1146, -4, 1169, 1181, 2061, -3, + /* 310 */ 1108, 1166, 1696, 1214, -4, 2061, 443, 1084, 1309, 1163, + /* 320 */ 307, -4, 1122, 1052, -4, 1040, 1134, -4, 1143, 1200, + /* 330 */ 1215, 229, -4, }; -#define YY_REDUCE_USE_DFLT (-32) -static short yy_reduce_ofst[] = { - /* 0 */ 559, -32, 874, -32, -32, -32, -32, -32, -32, -32, - /* 10 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 20 */ -32, -32, -32, -32, 880, -32, 170, 874, -32, -32, - /* 30 */ -32, -32, 602, 874, -32, -32, -32, 925, -32, -32, - /* 40 */ 933, 958, -32, 1048, 1075, -32, 1079, -32, 1087, -32, - /* 50 */ 1112, -32, 1120, -32, 1157, -32, 1163, -32, 1166, -32, - /* 60 */ 1212, -32, 1245, -32, 1275, -32, 1283, -32, 1284, -32, - /* 70 */ 1290, -32, 1330, -32, 1333, -32, 1335, -32, 1363, -32, - /* 80 */ 1367, -32, 1368, -32, -32, 1371, -32, -32, -32, 878, - /* 90 */ -32, -32, 1374, -32, 1389, -32, 993, -32, 1393, -32, - /* 100 */ 1398, -32, -32, 1030, -32, -32, -32, -32, 957, 1034, - /* 110 */ -32, -32, -32, -32, -32, 1404, -32, -32, -32, -32, - /* 120 */ -32, -32, -32, -32, -32, -32, -32, -32, 996, -32, - /* 130 */ -32, 1409, -32, -32, -32, 246, -32, -32, -32, -32, - /* 140 */ -32, 333, -32, -32, -32, -32, -32, -32, -32, -32, - /* 150 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 160 */ -32, 1078, -32, 1413, -32, -32, -32, -32, -32, -32, - /* 170 */ -32, 1417, -32, 623, 874, -32, -32, -32, -31, -32, - /* 180 */ -32, 459, -32, -32, 1430, -32, 1434, -32, 1445, -32, - /* 190 */ 1448, -32, 1449, -32, -32, -32, -32, 168, -32, 644, - /* 200 */ 874, -32, -32, -32, 1450, -32, 1002, -32, -32, 665, - /* 210 */ 874, -32, -32, -32, -32, -32, -32, 686, 874, -32, - /* 220 */ -32, -32, 1453, -32, 707, 874, -32, -32, -32, -32, - /* 230 */ -32, -32, 1471, -32, -32, 1475, -32, -32, 1489, -32, - /* 240 */ -32, 1491, -32, -32, -32, -32, 728, 874, -32, -32, - /* 250 */ -32, -32, -32, -32, -32, 1494, -32, -32, -32, -32, - /* 260 */ -32, 749, 874, -32, -32, -32, -32, 770, 874, -32, - /* 270 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 280 */ -32, -32, 791, 874, -32, -32, -32, 1091, -32, -32, - /* 290 */ 1094, -32, -32, -32, -32, -32, -32, -32, -32, 1125, - /* 300 */ -32, 812, 874, -32, -32, -32, -32, -32, 1243, -32, - /* 310 */ 833, 874, -32, -32, -32, 1495, -32, 854, 874, -32, - /* 320 */ -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - /* 330 */ -32, -32, -32, +#define VV_REDUCE_USE_DFLT (-1) +static short vv_reduce_ofst[] = { + /* 0 */ 557, -1, 893, -1, -1, -1, -1, -1, -1, -1, + /* 10 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 20 */ -1, -1, -1, -1, 1518, -1, 684, 893, -1, -1, + /* 30 */ -1, -1, 852, 893, -1, -1, -1, 1182, -1, -1, + /* 40 */ 1385, 1171, -1, 1098, 1053, -1, 1393, -1, 1130, -1, + /* 50 */ 1513, -1, 1104, -1, 1467, -1, 1490, -1, 899, -1, + /* 60 */ 1065, -1, 1464, -1, 981, -1, 1149, -1, 1427, -1, + /* 70 */ 1453, -1, 1144, -1, 1349, -1, 1428, -1, 1472, -1, + /* 80 */ 1180, -1, 1262, -1, -1, 1434, -1, -1, -1, 944, + /* 90 */ -1, -1, 1468, -1, 1449, -1, 907, -1, 1494, -1, + /* 100 */ 1261, -1, -1, 930, -1, -1, -1, -1, 1012, 905, + /* 110 */ -1, -1, -1, -1, -1, 1436, -1, -1, -1, -1, + /* 120 */ -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, + /* 130 */ -1, 1135, -1, -1, -1, 114, -1, -1, -1, -1, + /* 140 */ -1, 894, -1, -1, -1, -1, -1, -1, -1, -1, + /* 150 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 160 */ -1, 1516, -1, 1408, -1, -1, -1, -1, -1, -1, + /* 170 */ -1, 1089, -1, 873, 893, -1, -1, -1, 12, -1, + /* 180 */ -1, 1105, -1, -1, 1386, -1, 1231, -1, 1371, -1, + /* 190 */ 1330, -1, 1267, -1, -1, -1, -1, 147, -1, 789, + /* 200 */ 893, -1, -1, -1, 1138, -1, 974, -1, -1, 663, + /* 210 */ 893, -1, -1, -1, -1, -1, -1, 642, 893, -1, + /* 220 */ -1, -1, 1016, -1, 705, 893, -1, -1, -1, -1, + /* 230 */ -1, -1, 1469, -1, -1, 1510, -1, -1, 928, -1, + /* 240 */ -1, 1056, -1, -1, -1, -1, 600, 893, -1, -1, + /* 250 */ -1, -1, -1, -1, -1, 1505, -1, -1, -1, -1, + /* 260 */ -1, 768, 893, -1, -1, -1, -1, 747, 893, -1, + /* 270 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 280 */ -1, -1, 810, 893, -1, -1, -1, 1020, -1, -1, + /* 290 */ 1034, -1, -1, -1, -1, -1, -1, -1, -1, 1062, + /* 300 */ -1, 621, 893, -1, -1, -1, -1, -1, 1188, -1, + /* 310 */ 726, 893, -1, -1, -1, 1017, -1, 831, 893, -1, + /* 320 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* 330 */ -1, -1, -1, }; -static YYACTIONTYPE yy_default[] = { +static VVACTIONTYPE vv_default[] = { /* 0 */ 478, 478, 478, 335, 337, 338, 339, 340, 341, 342, /* 10 */ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, /* 20 */ 353, 354, 355, 478, 478, 478, 478, 478, 478, 478, @@ -112611,7 +114997,7 @@ static YYACTIONTYPE yy_default[] = { /* 320 */ 478, 366, 478, 478, 359, 478, 478, 357, 478, 478, /* 330 */ 478, 478, 360, }; -#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) +#define VV_SZ_ACTTAB (sizeof(vv_action)/sizeof(vv_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: @@ -112623,10 +115009,10 @@ static YYACTIONTYPE yy_default[] = { ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { +#ifdef VVFALLBACK +static const VVCODETYPE vvFallback[] = { }; -#endif /* YYFALLBACK */ +#endif /* VVFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: @@ -112640,44 +115026,44 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { +struct vvStackEntry { int stateno; /* The state-number */ int major; /* The major token value. This is the code ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This + VVMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; -typedef struct yyStackEntry yyStackEntry; +typedef struct vvStackEntry vvStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ - int yyerrcnt; /* Shifts left before out of the error */ +struct vvParser { + int vvidx; /* Index of top element in stack */ + int vverrcnt; /* Shifts left before out of the error */ phvolt_ARG_SDECL /* A place to hold %extra_argument */ - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + vvStackEntry vvstack[VVSTACKDEPTH]; /* The parser's stack */ }; -typedef struct yyParser yyParser; +typedef struct vvParser vvParser; #ifndef NDEBUG #include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; +static FILE *vvTraceFILE = 0; +static char *vvTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG static void phvolt_Trace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; + vvTraceFILE = TraceFILE; + vvTracePrompt = zTracePrompt; + if( vvTraceFILE==0 ) vvTracePrompt = 0; + else if( vvTracePrompt==0 ) vvTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *vvTokenName[] = { "$", "OPEN_DELIMITER", "COMMA", "IN", "QUESTION", "COLON", "RANGE", "AND", "OR", "IS", "EQUALS", "NOTEQUALS", @@ -112714,7 +115100,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *vvRuleName[] = { /* 0 */ "program ::= volt_language", /* 1 */ "volt_language ::= statement_list", /* 2 */ "statement_list ::= statement_list statement", @@ -112865,8 +115251,8 @@ static const char *yyRuleName[] = { const char *phvolt_TokenName(int tokenType){ #ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ - return yyTokenName[tokenType]; + if( tokenType>0 && tokenType<(sizeof(vvTokenName)/sizeof(vvTokenName[0])) ){ + return vvTokenName[tokenType]; }else{ return "Unknown"; } @@ -112876,21 +115262,21 @@ const char *phvolt_TokenName(int tokenType){ } void *phvolt_Alloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + vvParser *pParser; + pParser = (vvParser*)(*mallocProc)( (size_t)sizeof(vvParser) ); if( pParser ){ - pParser->yyidx = -1; + pParser->vvidx = -1; } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to +** "vvmajor" is the symbol code, and "vvpminor" is a pointer to ** the value. */ -static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ - switch( yymajor ){ +static void vv_destructor(VVCODETYPE vvmajor, VVMINORTYPE *vvpminor){ + switch( vvmajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -112983,14 +115369,16 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 80: case 81: case 82: +// 702 "parser.lemon" { - if ((yypminor->yy0)) { - if ((yypminor->yy0)->free_flag) { - efree((yypminor->yy0)->token); + if ((vvpminor->vv0)) { + if ((vvpminor->vv0)->free_flag) { + efree((vvpminor->vv0)->token); } - efree((yypminor->yy0)); + efree((vvpminor->vv0)); } } +// 1654 "parser.c" break; case 86: case 87: @@ -113024,132 +115412,134 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 116: case 117: case 118: -{ zval_ptr_dtor(&(yypminor->yy92)); } +// 719 "parser.lemon" +{ zval_ptr_dtor(&(vvpminor->vv92)); } +// 1690 "parser.c" break; default: break; /* If no destructor action specified: do nothing */ } } -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int vv_pop_parser_stack(vvParser *pParser){ + VVCODETYPE vvmajor; + vvStackEntry *vvtos = &pParser->vvstack[pParser->vvidx]; - if( pParser->yyidx<0 ) return 0; + if( pParser->vvidx<0 ) return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); + if( vvTraceFILE && pParser->vvidx>=0 ){ + fprintf(vvTraceFILE,"%sPopping %s\n", + vvTracePrompt, + vvTokenName[vvtos->major]); } #endif - yymajor = yytos->major; - yy_destructor( yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + vvmajor = vvtos->major; + vv_destructor( vvmajor, &vvtos->minor); + pParser->vvidx--; + return vvmajor; } static void phvolt_Free( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ - yyParser *pParser = (yyParser*)p; + vvParser *pParser = (vvParser*)p; if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + while( pParser->vvidx>=0 ) vv_pop_parser_stack(pParser); (*freeProc)((void*)pParser); } -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ +static int vv_find_shift_action( + vvParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ - i = yy_shift_ofst[stateno]; - if( i==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; + /* if( pParser->vvidx<0 ) return VV_NO_ACTION; */ + i = vv_shift_ofst[stateno]; + if( i==VV_SHIFT_USE_DFLT ){ + return vv_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ -#ifdef YYFALLBACK + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ +#ifdef VVFALLBACK int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE, "%sFALLBACK %s => %s\n", + vvTracePrompt, vvTokenName[iLookAhead], vvTokenName[iFallback]); } #endif - return yy_find_shift_action(pParser, iFallback); + return vv_find_shift_action(pParser, iFallback); } #endif - return yy_default[stateno]; + return vv_default[stateno]; }else{ - return yy_action[i]; + return vv_action[i]; } } -static int yy_find_reduce_action( - yyParser *pParser, /* The parser */ +static int vv_find_reduce_action( + vvParser *pParser, /* The parser */ int iLookAhead /* The look-ahead token */ ){ int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - i = yy_reduce_ofst[stateno]; - if( i==YY_REDUCE_USE_DFLT ){ - return yy_default[stateno]; + i = vv_reduce_ofst[stateno]; + if( i==VV_REDUCE_USE_DFLT ){ + return vv_default[stateno]; } - if( iLookAhead==YYNOCODE ){ - return YY_NO_ACTION; + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; } i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ + return vv_default[stateno]; }else{ - return yy_action[i]; + return vv_action[i]; } } -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +static void vv_shift( + vvParser *vvpParser, /* The parser to be shifted */ + int vvNewState, /* The new state to shift in */ + int vvMajor, /* The major token to shift in */ + VVMINORTYPE *vvpMinor /* Pointer ot the minor token to shift in */ ){ - yyStackEntry *yytos; - yypParser->yyidx++; - if( yypParser->yyidx>=YYSTACKDEPTH ){ + vvStackEntry *vvtos; + vvpParser->vvidx++; + if( vvpParser->vvidx>=VVSTACKDEPTH ){ phvolt_ARG_FETCH; - yypParser->yyidx--; + vvpParser->vvidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sStack Overflow!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = yyNewState; - yytos->major = yyMajor; - yytos->minor = *yypMinor; + vvtos = &vvpParser->vvstack[vvpParser->vvidx]; + vvtos->stateno = vvNewState; + vvtos->major = vvMajor; + vvtos->minor = *vvpMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ + if( vvTraceFILE && vvpParser->vvidx>0 ){ int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); + fprintf(vvTraceFILE,"%sShift %d\n",vvTracePrompt,vvNewState); + fprintf(vvTraceFILE,"%sStack:",vvTracePrompt); + for(i=1; i<=vvpParser->vvidx; i++) + fprintf(vvTraceFILE," %s",vvTokenName[vvpParser->vvstack[i].major]); + fprintf(vvTraceFILE,"\n"); } #endif } @@ -113158,9 +115548,9 @@ static void yy_shift( ** is used during the reduce. */ static struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + VVCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { +} vvRuleInfo[] = { { 84, 1 }, { 85, 1 }, { 86, 2 }, @@ -113308,40 +115698,42 @@ static struct { { 107, 1 }, }; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void vv_accept(vvParser*); /* Forward Declaration */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ +static void vv_reduce( + vvParser *vvpParser, /* The parser */ + int vvruleno /* Number of the rule by which to reduce */ ){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ + int vvgoto; /* The next state */ + int vvact; /* The next action */ + VVMINORTYPE vvgotominor; /* The LHS of the rule reduced */ + vvStackEntry *vvmsp; /* The top of the parser's stack */ + int vvsize; /* Amount to pop the stack */ phvolt_ARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; + vvmsp = &vvpParser->vvstack[vvpParser->vvidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno=0 + && vvruleno + ** // ** { ... } // User supplied code - ** #line + ** // ** break; */ case 0: +// 711 "parser.lemon" { - status->ret = yymsp[0].minor.yy92; + status->ret = vvmsp[0].minor.vv92; } +// 2052 "parser.c" break; case 1: case 4: @@ -113364,865 +115756,1080 @@ static void yy_reduce( case 21: case 22: case 131: +// 715 "parser.lemon" { - yygotominor.yy92 = yymsp[0].minor.yy92; + vvgotominor.vv92 = vvmsp[0].minor.vv92; } +// 2079 "parser.c" break; case 2: +// 721 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(yymsp[-1].minor.yy92, yymsp[0].minor.yy92); + vvgotominor.vv92 = phvolt_ret_zval_list(vvmsp[-1].minor.vv92, vvmsp[0].minor.vv92); } +// 2086 "parser.c" break; case 3: case 36: case 45: case 128: case 135: +// 725 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(NULL, yymsp[0].minor.yy92); + vvgotominor.vv92 = phvolt_ret_zval_list(NULL, vvmsp[0].minor.vv92); } +// 2097 "parser.c" break; case 23: +// 809 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2110 "parser.c" break; case 24: +// 813 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-4].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(31,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-4].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(31,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2123 "parser.c" break; case 25: +// 817 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-9].minor.yy92, yymsp[-7].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(31,&yymsp[-10].minor); - yy_destructor(32,&yymsp[-8].minor); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(34,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-9].minor.vv92, vvmsp[-7].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(31,&vvmsp[-10].minor); + vv_destructor(32,&vvmsp[-8].minor); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(34,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2139 "parser.c" break; case 26: +// 821 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-8].minor.yy92, yymsp[-6].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(31,&yymsp[-9].minor); - yy_destructor(32,&yymsp[-7].minor); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(34,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-8].minor.vv92, vvmsp[-6].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(31,&vvmsp[-9].minor); + vv_destructor(32,&vvmsp[-7].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2155 "parser.c" break; case 27: +// 825 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_if_statement(yymsp[-7].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(31,&yymsp[-8].minor); - yy_destructor(32,&yymsp[-6].minor); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(34,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(33,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_if_statement(vvmsp[-7].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(31,&vvmsp[-8].minor); + vv_destructor(32,&vvmsp[-6].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2171 "parser.c" break; case 28: +// 831 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_elseif_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(35,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_elseif_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(35,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2181 "parser.c" break; case 29: +// 837 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_elsefor_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(36,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_elsefor_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(36,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2191 "parser.c" break; case 30: +// 843 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, NULL, yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(37,&yymsp[-8].minor); - yy_destructor(3,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-7].minor.vv0, NULL, vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(37,&vvmsp[-8].minor); + vv_destructor(3,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2205 "parser.c" break; case 31: +// 847 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, NULL, yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(37,&yymsp[-10].minor); - yy_destructor(3,&yymsp[-8].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-9].minor.vv0, NULL, vvmsp[-7].minor.vv92, vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(3,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2220 "parser.c" break; case 32: +// 851 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, yymsp[-9].minor.yy0, yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-11].minor); - yy_destructor(37,&yymsp[-10].minor); - yy_destructor(2,&yymsp[-8].minor); - yy_destructor(3,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-7].minor.vv0, vvmsp[-9].minor.vv0, vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(2,&vvmsp[-8].minor); + vv_destructor(3,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2235 "parser.c" break; case 33: +// 855 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, yymsp[-11].minor.yy0, yymsp[-7].minor.yy92, yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-13].minor); - yy_destructor(37,&yymsp[-12].minor); - yy_destructor(2,&yymsp[-10].minor); - yy_destructor(3,&yymsp[-8].minor); - yy_destructor(31,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(39,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_for_statement(vvmsp[-9].minor.vv0, vvmsp[-11].minor.vv0, vvmsp[-7].minor.vv92, vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-13].minor); + vv_destructor(37,&vvmsp[-12].minor); + vv_destructor(2,&vvmsp[-10].minor); + vv_destructor(3,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2251 "parser.c" break; case 34: +// 861 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_statement(yymsp[-1].minor.yy92); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(40,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_set_statement(vvmsp[-1].minor.vv92); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(40,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2261 "parser.c" break; case 35: case 44: case 127: case 134: +// 867 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_zval_list(yymsp[-2].minor.yy92, yymsp[0].minor.yy92); - yy_destructor(2,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_zval_list(vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92); + vv_destructor(2,&vvmsp[-1].minor); } +// 2272 "parser.c" break; case 37: +// 877 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(41,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(41,&vvmsp[-1].minor); } +// 2280 "parser.c" break; case 38: +// 881 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_ADD_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(42,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_ADD_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(42,&vvmsp[-1].minor); } +// 2288 "parser.c" break; case 39: +// 885 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_SUB_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(43,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_SUB_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(43,&vvmsp[-1].minor); } +// 2296 "parser.c" break; case 40: +// 889 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_MUL_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(44,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_MUL_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(44,&vvmsp[-1].minor); } +// 2304 "parser.c" break; case 41: +// 893 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_set_assignment(yymsp[-2].minor.yy0, PHVOLT_T_DIV_ASSIGN, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(45,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_set_assignment(vvmsp[-2].minor.vv0, PHVOLT_T_DIV_ASSIGN, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(45,&vvmsp[-1].minor); } +// 2312 "parser.c" break; case 42: +// 899 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_statement(yymsp[-7].minor.yy0, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-9].minor); - yy_destructor(46,&yymsp[-8].minor); - yy_destructor(29,&yymsp[-6].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(48,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_statement(vvmsp[-7].minor.vv0, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(46,&vvmsp[-8].minor); + vv_destructor(29,&vvmsp[-6].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(48,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2327 "parser.c" break; case 43: +// 903 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_statement(yymsp[-8].minor.yy0, yymsp[-6].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(46,&yymsp[-9].minor); - yy_destructor(29,&yymsp[-7].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(48,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_statement(vvmsp[-8].minor.vv0, vvmsp[-6].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(46,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(48,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2342 "parser.c" break; case 46: +// 919 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_parameter(yymsp[0].minor.yy0, NULL, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_macro_parameter(vvmsp[0].minor.vv0, NULL, status->scanner_state); } +// 2349 "parser.c" break; case 47: +// 923 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_parameter(yymsp[-2].minor.yy0, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(41,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_macro_parameter(vvmsp[-2].minor.vv0, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(41,&vvmsp[-1].minor); } +// 2357 "parser.c" break; case 48: case 125: case 139: +// 927 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, vvmsp[0].minor.vv0, status->scanner_state); } +// 2366 "parser.c" break; case 49: case 140: +// 931 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_STRING, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_STRING, vvmsp[0].minor.vv0, status->scanner_state); } +// 2374 "parser.c" break; case 50: case 141: +// 935 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, vvmsp[0].minor.vv0, status->scanner_state); } +// 2382 "parser.c" break; case 51: case 142: +// 939 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state); - yy_destructor(52,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state); + vv_destructor(52,&vvmsp[0].minor); } +// 2391 "parser.c" break; case 52: case 143: +// 943 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state); - yy_destructor(53,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state); + vv_destructor(53,&vvmsp[0].minor); } +// 2400 "parser.c" break; case 53: case 144: +// 947 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state); - yy_destructor(54,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state); + vv_destructor(54,&vvmsp[0].minor); } +// 2409 "parser.c" break; case 54: +// 953 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_call_statement(yymsp[-8].minor.yy92, yymsp[-6].minor.yy92, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-10].minor); - yy_destructor(55,&yymsp[-9].minor); - yy_destructor(29,&yymsp[-7].minor); - yy_destructor(47,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(56,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_call_statement(vvmsp[-8].minor.vv92, vvmsp[-6].minor.vv92, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(55,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(47,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(56,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2424 "parser.c" break; case 55: +// 957 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_macro_call_statement(yymsp[-6].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-8].minor); - yy_destructor(55,&yymsp[-7].minor); - yy_destructor(29,&yymsp[-5].minor); - yy_destructor(47,&yymsp[-4].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(56,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_macro_call_statement(vvmsp[-6].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(55,&vvmsp[-7].minor); + vv_destructor(29,&vvmsp[-5].minor); + vv_destructor(47,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(56,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2439 "parser.c" break; case 56: +// 963 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_empty_statement(status->scanner_state); - yy_destructor(1,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_empty_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2448 "parser.c" break; case 57: +// 969 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_echo_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(57,&yymsp[-2].minor); - yy_destructor(58,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_echo_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(57,&vvmsp[-2].minor); + vv_destructor(58,&vvmsp[0].minor); } +// 2457 "parser.c" break; case 58: +// 975 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_block_statement(yymsp[-5].minor.yy0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(59,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(60,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_block_statement(vvmsp[-5].minor.vv0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(59,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(60,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2470 "parser.c" break; case 59: +// 979 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_block_statement(yymsp[-4].minor.yy0, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-6].minor); - yy_destructor(59,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-3].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(60,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_block_statement(vvmsp[-4].minor.vv0, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(59,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(60,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2483 "parser.c" break; case 60: +// 985 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_cache_statement(yymsp[-5].minor.yy92, NULL, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(61,&yymsp[-6].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(62,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_cache_statement(vvmsp[-5].minor.vv92, NULL, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(61,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(62,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2496 "parser.c" break; case 61: +// 989 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_cache_statement(yymsp[-6].minor.yy92, yymsp[-5].minor.yy0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-8].minor); - yy_destructor(61,&yymsp[-7].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(62,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_cache_statement(vvmsp[-6].minor.vv92, vvmsp[-5].minor.vv0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(61,&vvmsp[-7].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(62,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2509 "parser.c" break; case 62: +// 995 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_extends_statement(yymsp[-1].minor.yy0, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(63,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_extends_statement(vvmsp[-1].minor.vv0, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(63,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2519 "parser.c" break; case 63: +// 1001 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_include_statement(yymsp[-1].minor.yy92, NULL, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(64,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_include_statement(vvmsp[-1].minor.vv92, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(64,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2529 "parser.c" break; case 64: +// 1005 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_include_statement(yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-5].minor); - yy_destructor(64,&yymsp[-4].minor); - yy_destructor(65,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_include_statement(vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(64,&vvmsp[-4].minor); + vv_destructor(65,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2540 "parser.c" break; case 65: +// 1011 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_do_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(66,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_do_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(66,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2550 "parser.c" break; case 66: +// 1017 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_return_statement(yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-3].minor); - yy_destructor(67,&yymsp[-2].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_return_statement(vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(67,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2560 "parser.c" break; case 67: +// 1023 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_autoescape_statement(0, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(68,&yymsp[-6].minor); - yy_destructor(53,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(69,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_autoescape_statement(0, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(68,&vvmsp[-6].minor); + vv_destructor(53,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2574 "parser.c" break; case 68: +// 1027 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_autoescape_statement(1, yymsp[-3].minor.yy92, status->scanner_state); - yy_destructor(1,&yymsp[-7].minor); - yy_destructor(68,&yymsp[-6].minor); - yy_destructor(54,&yymsp[-5].minor); - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(69,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); -} + vvgotominor.vv92 = phvolt_ret_autoescape_statement(1, vvmsp[-3].minor.vv92, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(68,&vvmsp[-6].minor); + vv_destructor(54,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); +} +// 2588 "parser.c" break; case 69: +// 1033 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_break_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(70,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_break_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(70,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2598 "parser.c" break; case 70: +// 1039 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_continue_statement(status->scanner_state); - yy_destructor(1,&yymsp[-2].minor); - yy_destructor(71,&yymsp[-1].minor); - yy_destructor(32,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_continue_statement(status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(71,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } +// 2608 "parser.c" break; case 71: +// 1045 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, vvmsp[0].minor.vv0, status->scanner_state); } +// 2615 "parser.c" break; case 72: +// 1051 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(22,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } +// 2623 "parser.c" break; case 73: +// 1055 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(21,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } +// 2631 "parser.c" break; case 74: +// 1059 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_SUB, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(22,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_SUB, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } +// 2639 "parser.c" break; case 75: +// 1063 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ADD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(21,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ADD, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } +// 2647 "parser.c" break; case 76: +// 1067 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MUL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(19,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MUL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-1].minor); } +// 2655 "parser.c" break; case 77: +// 1071 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_POW, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(19,&yymsp[-2].minor); - yy_destructor(19,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_POW, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-2].minor); + vv_destructor(19,&vvmsp[-1].minor); } +// 2664 "parser.c" break; case 78: +// 1075 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DIV, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(18,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DIV, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-1].minor); } +// 2672 "parser.c" break; case 79: +// 1079 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(18,&yymsp[-2].minor); - yy_destructor(18,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MOD, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-2].minor); + vv_destructor(18,&vvmsp[-1].minor); } +// 2681 "parser.c" break; case 80: +// 1083 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(20,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_MOD, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(20,&vvmsp[-1].minor); } +// 2689 "parser.c" break; case 81: +// 1087 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_AND, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(7,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_AND, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(7,&vvmsp[-1].minor); } +// 2697 "parser.c" break; case 82: +// 1091 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_OR, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(8,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_OR, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(8,&vvmsp[-1].minor); } +// 2705 "parser.c" break; case 83: +// 1095 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_CONCAT, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(23,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_CONCAT, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(23,&vvmsp[-1].minor); } +// 2713 "parser.c" break; case 84: +// 1099 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_PIPE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(25,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_PIPE, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(25,&vvmsp[-1].minor); } +// 2721 "parser.c" break; case 85: +// 1103 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_RANGE, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(6,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_RANGE, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(6,&vvmsp[-1].minor); } +// 2729 "parser.c" break; case 86: +// 1107 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_EQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(10,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_EQUALS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(10,&vvmsp[-1].minor); } +// 2737 "parser.c" break; case 87: +// 1111 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(73,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(73,&vvmsp[0].minor); } +// 2746 "parser.c" break; case 88: +// 1115 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISSET, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(73,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISSET, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(73,&vvmsp[0].minor); } +// 2755 "parser.c" break; case 89: +// 1119 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(74,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(74,&vvmsp[0].minor); } +// 2764 "parser.c" break; case 90: +// 1123 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(74,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(74,&vvmsp[0].minor); } +// 2773 "parser.c" break; case 91: +// 1127 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(75,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(75,&vvmsp[0].minor); } +// 2782 "parser.c" break; case 92: +// 1131 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISEVEN, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(75,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISEVEN, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(75,&vvmsp[0].minor); } +// 2791 "parser.c" break; case 93: +// 1135 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(76,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(76,&vvmsp[0].minor); } +// 2800 "parser.c" break; case 94: +// 1139 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISODD, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(76,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISODD, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(76,&vvmsp[0].minor); } +// 2809 "parser.c" break; case 95: +// 1143 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(77,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(77,&vvmsp[0].minor); } +// 2818 "parser.c" break; case 96: +// 1147 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(77,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(77,&vvmsp[0].minor); } +// 2827 "parser.c" break; case 97: +// 1151 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(78,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(78,&vvmsp[0].minor); } +// 2836 "parser.c" break; case 98: +// 1155 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(78,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(78,&vvmsp[0].minor); } +// 2845 "parser.c" break; case 99: +// 1159 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); - yy_destructor(79,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(79,&vvmsp[0].minor); } +// 2854 "parser.c" break; case 100: +// 1163 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, yymsp[-2].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); - yy_destructor(79,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, vvmsp[-2].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(79,&vvmsp[0].minor); } +// 2863 "parser.c" break; case 101: +// 1167 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(9,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); } +// 2871 "parser.c" break; case 102: +// 1171 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(11,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); } +// 2879 "parser.c" break; case 103: +// 1175 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(16,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(16,&vvmsp[-1].minor); } +// 2887 "parser.c" break; case 104: +// 1179 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(17,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(17,&vvmsp[-1].minor); } +// 2895 "parser.c" break; case 105: +// 1183 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_LESS, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(12,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_LESS, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(12,&vvmsp[-1].minor); } +// 2903 "parser.c" break; case 106: +// 1187 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_GREATER, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(13,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_GREATER, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(13,&vvmsp[-1].minor); } +// 2911 "parser.c" break; case 107: +// 1191 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(14,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(14,&vvmsp[-1].minor); } +// 2919 "parser.c" break; case 108: +// 1195 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(15,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(15,&vvmsp[-1].minor); } +// 2927 "parser.c" break; case 109: +// 1199 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DOT, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(30,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DOT, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(30,&vvmsp[-1].minor); } +// 2935 "parser.c" break; case 110: +// 1203 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_IN, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(3,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_IN, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(3,&vvmsp[-1].minor); } +// 2943 "parser.c" break; case 111: +// 1207 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT_IN, yymsp[-3].minor.yy92, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(26,&yymsp[-2].minor); - yy_destructor(3,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT_IN, vvmsp[-3].minor.vv92, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-2].minor); + vv_destructor(3,&vvmsp[-1].minor); } +// 2952 "parser.c" break; case 112: +// 1211 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, yymsp[0].minor.yy92, NULL, status->scanner_state); - yy_destructor(26,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, vvmsp[0].minor.vv92, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-1].minor); } +// 2960 "parser.c" break; case 113: +// 1215 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_INCR, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(27,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_INCR, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(27,&vvmsp[0].minor); } +// 2968 "parser.c" break; case 114: +// 1219 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_DECR, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(28,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_DECR, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(28,&vvmsp[0].minor); } +// 2976 "parser.c" break; case 115: +// 1223 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(29,&yymsp[-2].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 2985 "parser.c" break; case 116: +// 1227 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-1].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 2994 "parser.c" break; case 117: +// 1231 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3003 "parser.c" break; case 118: +// 1235 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - yy_destructor(81,&yymsp[-1].minor); - yy_destructor(82,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(81,&vvmsp[-1].minor); + vv_destructor(82,&vvmsp[0].minor); } +// 3012 "parser.c" break; case 119: +// 1239 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy92, NULL, NULL, status->scanner_state); - yy_destructor(81,&yymsp[-2].minor); - yy_destructor(82,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAY, vvmsp[-1].minor.vv92, NULL, NULL, status->scanner_state); + vv_destructor(81,&vvmsp[-2].minor); + vv_destructor(82,&vvmsp[0].minor); } +// 3021 "parser.c" break; case 120: +// 1243 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3030 "parser.c" break; case 121: +// 1247 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_expr(PHVOLT_T_TERNARY, yymsp[-2].minor.yy92, yymsp[0].minor.yy92, yymsp[-4].minor.yy92, status->scanner_state); - yy_destructor(4,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_expr(PHVOLT_T_TERNARY, vvmsp[-2].minor.vv92, vvmsp[0].minor.vv92, vvmsp[-4].minor.vv92, status->scanner_state); + vv_destructor(4,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-1].minor); } +// 3039 "parser.c" break; case 122: +// 1251 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-4].minor.yy92, NULL, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(24,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-4].minor.vv92, NULL, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3049 "parser.c" break; case 123: +// 1255 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-4].minor.yy92, yymsp[-2].minor.yy92, NULL, status->scanner_state); - yy_destructor(24,&yymsp[-3].minor); - yy_destructor(5,&yymsp[-1].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-4].minor.vv92, vvmsp[-2].minor.vv92, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(5,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3059 "parser.c" break; case 124: +// 1259 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_slice(yymsp[-5].minor.yy92, yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(24,&yymsp[-4].minor); - yy_destructor(5,&yymsp[-2].minor); - yy_destructor(80,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_slice(vvmsp[-5].minor.vv92, vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(24,&vvmsp[-4].minor); + vv_destructor(5,&vvmsp[-2].minor); + vv_destructor(80,&vvmsp[0].minor); } +// 3069 "parser.c" break; case 126: case 138: +// 1269 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, yymsp[0].minor.yy0, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, vvmsp[0].minor.vv0, status->scanner_state); } +// 3077 "parser.c" break; case 129: case 137: +// 1285 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_named_item(yymsp[-2].minor.yy0, yymsp[0].minor.yy92, status->scanner_state); - yy_destructor(5,&yymsp[-1].minor); + vvgotominor.vv92 = phvolt_ret_named_item(vvmsp[-2].minor.vv0, vvmsp[0].minor.vv92, status->scanner_state); + vv_destructor(5,&vvmsp[-1].minor); } +// 3086 "parser.c" break; case 130: case 136: +// 1289 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_named_item(NULL, yymsp[0].minor.yy92, status->scanner_state); + vvgotominor.vv92 = phvolt_ret_named_item(NULL, vvmsp[0].minor.vv92, status->scanner_state); } +// 3094 "parser.c" break; case 132: +// 1299 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_func_call(yymsp[-3].minor.yy92, yymsp[-1].minor.yy92, status->scanner_state); - yy_destructor(29,&yymsp[-2].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_func_call(vvmsp[-3].minor.vv92, vvmsp[-1].minor.vv92, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 3103 "parser.c" break; case 133: +// 1303 "parser.lemon" { - yygotominor.yy92 = phvolt_ret_func_call(yymsp[-2].minor.yy92, NULL, status->scanner_state); - yy_destructor(29,&yymsp[-1].minor); - yy_destructor(47,&yymsp[0].minor); + vvgotominor.vv92 = phvolt_ret_func_call(vvmsp[-2].minor.vv92, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-1].minor); + vv_destructor(47,&vvmsp[0].minor); } +// 3112 "parser.c" break; }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yypParser,yygoto); - if( yyact < YYNSTATE ){ - yy_shift(yypParser,yyact,yygoto,&yygotominor); - }else if( yyact == YYNSTATE + YYNRULE + 1 ){ - yy_accept(yypParser); + vvgoto = vvRuleInfo[vvruleno].lhs; + vvsize = vvRuleInfo[vvruleno].nrhs; + vvpParser->vvidx -= vvsize; + vvact = vv_find_reduce_action(vvpParser,vvgoto); + if( vvact < VVNSTATE ){ + vv_shift(vvpParser,vvact,vvgoto,&vvgotominor); + }else if( vvact == VVNSTATE + VVNRULE + 1 ){ + vv_accept(vvpParser); } } -static void yy_parse_failed( - yyParser *yypParser /* The parser */ +static void vv_parse_failed( + vvParser *vvpParser /* The parser */ ){ phvolt_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sFail!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will be executed whenever the ** parser fails */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ +static void vv_syntax_error( + vvParser *vvpParser, /* The parser */ + int vvmajor, /* The major type of the error token */ + VVMINORTYPE vvminor /* The minor type of the error token */ ){ phvolt_ARG_FETCH; -#define TOKEN (yyminor.yy0) +#define TOKEN (vvminor.vv0) +// 604 "parser.lemon" { @@ -114320,19 +116927,20 @@ static void yy_syntax_error( status->status = PHVOLT_PARSING_FAILED; +// 3252 "parser.c" phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void yy_accept( - yyParser *yypParser /* The parser */ +static void vv_accept( + vvParser *vvpParser /* The parser */ ){ phvolt_ARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sAccept!\n",vvTracePrompt); } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ @@ -114358,56 +116966,56 @@ static void yy_accept( ** None. */ static void phvolt_( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - phvolt_TOKENTYPE yyminor /* The value for the token */ + void *vvp, /* The parser */ + int vvmajor, /* The major token code number */ + phvolt_TOKENTYPE vvminor /* The value for the token */ phvolt_ARG_PDECL /* Optional %extra_argument parameter */ ){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ - int yyerrorhit = 0; /* True if yymajor has invoked an error */ - yyParser *yypParser; /* The parser */ + VVMINORTYPE vvminorunion; + int vvact; /* The parser action. */ + int vvendofinput; /* True if we are at the end of input */ + int vverrorhit = 0; /* True if vvmajor has invoked an error */ + vvParser *vvpParser; /* The parser */ /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ - if( yymajor==0 ) return; - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + vvpParser = (vvParser*)vvp; + if( vvpParser->vvidx<0 ){ + if( vvmajor==0 ) return; + vvpParser->vvidx = 0; + vvpParser->vverrcnt = -1; + vvpParser->vvstack[0].stateno = 0; + vvpParser->vvstack[0].major = 0; } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); + vvminorunion.vv0 = vvminor; + vvendofinput = (vvmajor==0); phvolt_ARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sInput %s\n",vvTracePrompt,vvTokenName[vvmajor]); } #endif do{ - yyact = yy_find_shift_action(yypParser,yymajor); - if( yyactyyerrcnt--; - if( yyendofinput && yypParser->yyidx>=0 ){ - yymajor = 0; + vvact = vv_find_shift_action(vvpParser,vvmajor); + if( vvactvverrcnt--; + if( vvendofinput && vvpParser->vvidx>=0 ){ + vvmajor = 0; }else{ - yymajor = YYNOCODE; + vvmajor = VVNOCODE; } - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else if( yyact == YY_ERROR_ACTION ){ - int yymx; + }else if( vvact < VVNSTATE + VVNRULE ){ + vv_reduce(vvpParser,vvact-VVNSTATE); + }else if( vvact == VV_ERROR_ACTION ){ + int vvmx; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sSyntax Error!\n",vvTracePrompt); } #endif -#ifdef YYERRORSYMBOL +#ifdef VVERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -114427,40 +117035,40 @@ static void phvolt_( ** shifted successfully. ** */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( vvpParser->vverrcnt<0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + vvmx = vvpParser->vvstack[vvpParser->vvidx].major; + if( vvmx==VVERRORSYMBOL || vverrorhit ){ #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sDiscard input token %s\n", + vvTracePrompt,vvTokenName[vvmajor]); } #endif - yy_destructor(yymajor,&yyminorunion); - yymajor = YYNOCODE; + vv_destructor(vvmajor,&vvminorunion); + vvmajor = VVNOCODE; }else{ while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE + vvpParser->vvidx >= 0 && + vvmx != VVERRORSYMBOL && + (vvact = vv_find_shift_action(vvpParser,VVERRORSYMBOL)) >= VVNSTATE ){ - yy_pop_parser_stack(yypParser); + vv_pop_parser_stack(vvpParser); } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + if( vvpParser->vvidx < 0 || vvmajor==0 ){ + vv_destructor(vvmajor,&vvminorunion); + vv_parse_failed(vvpParser); + vvmajor = VVNOCODE; + }else if( vvmx!=VVERRORSYMBOL ){ + VVMINORTYPE u2; + u2.VVERRSYMDT = 0; + vv_shift(vvpParser,vvact,VVERRORSYMBOL,&u2); } } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#else /* YYERRORSYMBOL is not defined */ + vvpParser->vverrcnt = 3; + vverrorhit = 1; +#else /* VVERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -114470,21 +117078,21 @@ static void phvolt_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); + if( vvpParser->vverrcnt<=0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); } - yypParser->yyerrcnt = 3; - yy_destructor(yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); + vvpParser->vverrcnt = 3; + vv_destructor(vvmajor,&vvminorunion); + if( vvendofinput ){ + vv_parse_failed(vvpParser); } - yymajor = YYNOCODE; + vvmajor = VVNOCODE; #endif }else{ - yy_accept(yypParser); - yymajor = YYNOCODE; + vv_accept(vvpParser); + vvmajor = VVNOCODE; } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + }while( vvmajor!=VVNOCODE && vvpParser->vvidx>=0 ); return; } @@ -115182,14 +117790,15 @@ static int phvolt_internal_parse_view(zval **result, zval *view_code, zval *temp } -/* Generated by re2c 0.13.5 on Wed Apr 29 17:20:28 2015 */ +/* Generated by re2c 0.13.6 on Mon May 4 14:07:41 2015 */ +// 1 "scanner.re" -#define YYCTYPE unsigned char -#define YYCURSOR (s->start) -#define YYLIMIT (s->end) -#define YYMARKER q +#define VVCTYPE unsigned char +#define VVCURSOR (s->start) +#define VVLIMIT (s->end) +#define VVMARKER q static void phvolt_rtrim(phvolt_scanner_token *token) { @@ -115256,7 +117865,7 @@ static void phvolt_ltrim(phvolt_scanner_token *token) { static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token) { unsigned char next, double_next; - char *q = YYCURSOR, *start = YYCURSOR; + char *q = VVCURSOR, *start = VVCURSOR; int status = PHVOLT_SCANNER_RETCODE_IMPOSSIBLE; while (PHVOLT_SCANNER_RETCODE_IMPOSSIBLE == status) { @@ -115266,18 +117875,18 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token next = '\0'; double_next = '\0'; - if (*YYCURSOR == '\n') { + if (*VVCURSOR == '\n') { s->active_line++; } - if (*YYCURSOR != '\0') { - next = *(YYCURSOR + 1); + if (*VVCURSOR != '\0') { + next = *(VVCURSOR + 1); if (next != '\0') { - double_next = *(YYCURSOR + 2); + double_next = *(VVCURSOR + 2); } } - if (*YYCURSOR == '\0' || (*YYCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { + if (*VVCURSOR == '\0' || (*VVCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { if (next != '#') { @@ -115301,16 +117910,16 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token } s->raw_buffer_cursor = 0; - q = YYCURSOR; + q = VVCURSOR; } else { token->opcode = PHVOLT_T_IGNORE; } } else { - while ((next = *(++YYCURSOR))) { - if (next == '#' && *(YYCURSOR + 1) == '}') { - YYCURSOR+=2; + while ((next = *(++VVCURSOR))) { + if (next == '#' && *(VVCURSOR + 1) == '}') { + VVCURSOR+=2; token->opcode = PHVOLT_T_IGNORE; return 0; } else { @@ -115332,72 +117941,4299 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token s->raw_buffer = erealloc(s->raw_buffer, s->raw_buffer_size); } - memcpy(s->raw_buffer+s->raw_buffer_cursor, YYCURSOR, 1); + memcpy(s->raw_buffer+s->raw_buffer_cursor, VVCURSOR, 1); s->raw_buffer_cursor++; - ++YYCURSOR; + ++VVCURSOR; + } + + } else { + + +// 181 "scanner.c" + { + VVCTYPE vvch; + unsigned int vvaccept = 0; + + vvch = *VVCURSOR; + switch (vvch) { + case 0x00: goto vv71; + case '\t': + case '\r': + case ' ': goto vv67; + case '\n': goto vv69; + case '!': goto vv59; + case '"': goto vv28; + case '%': goto vv22; + case '\'': goto vv30; + case '(': goto vv45; + case ')': goto vv47; + case '*': goto vv35; + case '+': goto vv33; + case ',': goto vv43; + case '-': goto vv24; + case '.': goto vv41; + case '/': goto vv37; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv2; + case ':': goto vv63; + case '<': goto vv53; + case '=': goto vv55; + case '>': goto vv57; + case '?': goto vv65; + case 'A': + case 'a': goto vv12; + case 'B': + case 'b': goto vv14; + case 'C': + case 'c': goto vv16; + case 'D': + case 'd': goto vv19; + case 'E': + case 'e': goto vv7; + case 'F': + case 'f': goto vv8; + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'P': + case 'Q': + case 'U': + case 'V': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'p': + case 'q': + case 'u': + case 'v': + case 'x': + case 'y': + case 'z': goto vv32; + case 'I': goto vv4; + case 'M': + case 'm': goto vv15; + case 'N': + case 'n': goto vv10; + case 'O': + case 'o': goto vv13; + case 'R': + case 'r': goto vv18; + case 'S': + case 's': goto vv9; + case 'T': + case 't': goto vv11; + case 'W': + case 'w': goto vv17; + case '[': goto vv49; + case '\\': goto vv31; + case ']': goto vv51; + case 'i': goto vv6; + case '{': goto vv20; + case '|': goto vv61; + case '}': goto vv26; + case '~': goto vv39; + default: goto vv73; + } +vv2: + vvaccept = 0; + vvch = *(VVMARKER = ++VVCURSOR); + goto vv341; +vv3: +// 182 "scanner.re" + { + token->opcode = PHVOLT_T_INTEGER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; + return 0; + } +// 295 "scanner.c" +vv4: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case 'F': + case 'f': goto vv303; + case 'N': + case 'n': goto vv305; + case 'S': + case 's': goto vv307; + case 'T': + case 't': goto vv309; + default: goto vv101; + } +vv5: +// 495 "scanner.re" + { + token->opcode = PHVOLT_T_IDENTIFIER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; + return 0; + } +// 318 "scanner.c" +vv6: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv303; + case 'N': + case 'n': goto vv305; + case 'S': goto vv307; + case 'T': + case 't': goto vv309; + case 's': goto vv310; + default: goto vv101; + } +vv7: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv235; + case 'M': + case 'm': goto vv236; + case 'N': + case 'n': goto vv237; + case 'V': + case 'v': goto vv238; + case 'X': + case 'x': goto vv239; + default: goto vv101; + } +vv8: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv227; + case 'O': + case 'o': goto vv228; + default: goto vv101; + } +vv9: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv218; + case 'E': + case 'e': goto vv219; + default: goto vv101; + } +vv10: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv205; + case 'U': + case 'u': goto vv206; + default: goto vv101; + } +vv11: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv201; + default: goto vv101; + } +vv12: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv188; + case 'U': + case 'u': goto vv189; + default: goto vv101; + } +vv13: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv183; + case 'R': + case 'r': goto vv184; + default: goto vv101; + } +vv14: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv173; + case 'R': + case 'r': goto vv174; + default: goto vv101; + } +vv15: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv168; + default: goto vv101; + } +vv16: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv152; + case 'O': + case 'o': goto vv153; + default: goto vv101; + } +vv17: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv148; + default: goto vv101; + } +vv18: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv142; + default: goto vv101; + } +vv19: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv133; + case 'O': + case 'o': goto vv134; + default: goto vv101; + } +vv20: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '%': goto vv127; + case '{': goto vv125; + default: goto vv21; + } +vv21: +// 578 "scanner.re" + { + token->opcode = PHVOLT_T_CBRACKET_OPEN; + return 0; + } +// 460 "scanner.c" +vv22: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '}': goto vv123; + default: goto vv23; + } +vv23: +// 523 "scanner.re" + { + token->opcode = PHVOLT_T_MOD; + return 0; + } +// 473 "scanner.c" +vv24: + vvaccept = 1; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case '%': goto vv118; + case '-': goto vv115; + case '=': goto vv113; + case '}': goto vv117; + default: goto vv25; + } +vv25: +// 508 "scanner.re" + { + token->opcode = PHVOLT_T_SUB; + return 0; + } +// 490 "scanner.c" +vv26: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '}': goto vv111; + default: goto vv27; + } +vv27: +// 583 "scanner.re" + { + token->opcode = PHVOLT_T_CBRACKET_CLOSE; + return 0; + } +// 503 "scanner.c" +vv28: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch >= 0x01) goto vv109; +vv29: +// 694 "scanner.re" + { + status = PHVOLT_SCANNER_RETCODE_ERR; + break; + } +// 514 "scanner.c" +vv30: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch <= 0x00) goto vv29; + goto vv103; +vv31: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv29; + } +vv32: + vvch = *++VVCURSOR; + goto vv101; +vv33: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '+': goto vv98; + case '=': goto vv96; + default: goto vv34; + } +vv34: +// 503 "scanner.re" + { + token->opcode = PHVOLT_T_ADD; + return 0; + } +// 594 "scanner.c" +vv35: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv94; + default: goto vv36; + } +vv36: +// 513 "scanner.re" + { + token->opcode = PHVOLT_T_MUL; + return 0; + } +// 607 "scanner.c" +vv37: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv92; + default: goto vv38; + } +vv38: +// 518 "scanner.re" + { + token->opcode = PHVOLT_T_DIV; + return 0; + } +// 620 "scanner.c" +vv39: + ++VVCURSOR; +// 538 "scanner.re" + { + token->opcode = PHVOLT_T_CONCAT; + return 0; + } +// 628 "scanner.c" +vv41: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '.': goto vv90; + default: goto vv42; + } +vv42: +// 548 "scanner.re" + { + token->opcode = PHVOLT_T_DOT; + return 0; + } +// 641 "scanner.c" +vv43: + ++VVCURSOR; +// 553 "scanner.re" + { + token->opcode = PHVOLT_T_COMMA; + return 0; + } +// 649 "scanner.c" +vv45: + ++VVCURSOR; +// 558 "scanner.re" + { + token->opcode = PHVOLT_T_PARENTHESES_OPEN; + return 0; + } +// 657 "scanner.c" +vv47: + ++VVCURSOR; +// 563 "scanner.re" + { + token->opcode = PHVOLT_T_PARENTHESES_CLOSE; + return 0; + } +// 665 "scanner.c" +vv49: + ++VVCURSOR; +// 568 "scanner.re" + { + token->opcode = PHVOLT_T_SBRACKET_OPEN; + return 0; + } +// 673 "scanner.c" +vv51: + ++VVCURSOR; +// 573 "scanner.re" + { + token->opcode = PHVOLT_T_SBRACKET_CLOSE; + return 0; + } +// 681 "scanner.c" +vv53: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv88; + case '>': goto vv86; + default: goto vv54; + } +vv54: +// 653 "scanner.re" + { + token->opcode = PHVOLT_T_LESS; + return 0; + } +// 695 "scanner.c" +vv55: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv82; + default: goto vv56; + } +vv56: +// 593 "scanner.re" + { + token->opcode = PHVOLT_T_ASSIGN; + return 0; + } +// 708 "scanner.c" +vv57: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv80; + default: goto vv58; + } +vv58: +// 658 "scanner.re" + { + token->opcode = PHVOLT_T_GREATER; + return 0; + } +// 721 "scanner.c" +vv59: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv76; + default: goto vv60; + } +vv60: +// 648 "scanner.re" + { + token->opcode = PHVOLT_T_NOT; + return 0; + } +// 734 "scanner.c" +vv61: + ++VVCURSOR; +// 663 "scanner.re" + { + token->opcode = PHVOLT_T_PIPE; + return 0; + } +// 742 "scanner.c" +vv63: + ++VVCURSOR; +// 668 "scanner.re" + { + token->opcode = PHVOLT_T_COLON; + return 0; + } +// 750 "scanner.c" +vv65: + ++VVCURSOR; +// 673 "scanner.re" + { + token->opcode = PHVOLT_T_QUESTION; + return 0; + } +// 758 "scanner.c" +vv67: + ++VVCURSOR; + vvch = *VVCURSOR; + goto vv75; +vv68: +// 678 "scanner.re" + { + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +// 769 "scanner.c" +vv69: + ++VVCURSOR; +// 683 "scanner.re" + { + s->active_line++; + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +// 778 "scanner.c" +vv71: + ++VVCURSOR; +// 689 "scanner.re" + { + status = PHVOLT_SCANNER_RETCODE_EOF; + break; + } +// 786 "scanner.c" +vv73: + vvch = *++VVCURSOR; + goto vv29; +vv74: + ++VVCURSOR; + vvch = *VVCURSOR; +vv75: + switch (vvch) { + case '\t': + case '\r': + case ' ': goto vv74; + default: goto vv68; + } +vv76: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv78; + default: goto vv77; + } +vv77: +// 628 "scanner.re" + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +// 812 "scanner.c" +vv78: + ++VVCURSOR; +// 643 "scanner.re" + { + token->opcode = PHVOLT_T_NOTIDENTICAL; + return 0; + } +// 820 "scanner.c" +vv80: + ++VVCURSOR; +// 618 "scanner.re" + { + token->opcode = PHVOLT_T_GREATEREQUAL; + return 0; + } +// 828 "scanner.c" +vv82: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '=': goto vv84; + default: goto vv83; + } +vv83: +// 623 "scanner.re" + { + token->opcode = PHVOLT_T_EQUALS; + return 0; + } +// 841 "scanner.c" +vv84: + ++VVCURSOR; +// 638 "scanner.re" + { + token->opcode = PHVOLT_T_IDENTICAL; + return 0; + } +// 849 "scanner.c" +vv86: + ++VVCURSOR; +// 633 "scanner.re" + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +// 857 "scanner.c" +vv88: + ++VVCURSOR; +// 588 "scanner.re" + { + token->opcode = PHVOLT_T_LESSEQUAL; + return 0; + } +// 865 "scanner.c" +vv90: + ++VVCURSOR; +// 543 "scanner.re" + { + token->opcode = PHVOLT_T_RANGE; + return 0; + } +// 873 "scanner.c" +vv92: + ++VVCURSOR; +// 613 "scanner.re" + { + token->opcode = PHVOLT_T_DIV_ASSIGN; + return 0; + } +// 881 "scanner.c" +vv94: + ++VVCURSOR; +// 608 "scanner.re" + { + token->opcode = PHVOLT_T_MUL_ASSIGN; + return 0; + } +// 889 "scanner.c" +vv96: + ++VVCURSOR; +// 598 "scanner.re" + { + token->opcode = PHVOLT_T_ADD_ASSIGN; + return 0; + } +// 897 "scanner.c" +vv98: + ++VVCURSOR; +// 528 "scanner.re" + { + token->opcode = PHVOLT_T_INCR; + return 0; + } +// 905 "scanner.c" +vv100: + ++VVCURSOR; + vvch = *VVCURSOR; +vv101: + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv5; + } +vv102: + ++VVCURSOR; + vvch = *VVCURSOR; +vv103: + switch (vvch) { + case 0x00: goto vv104; + case '\'': goto vv106; + case '\\': goto vv105; + default: goto vv102; + } +vv104: + VVCURSOR = VVMARKER; + switch (vvaccept) { + case 0: goto vv3; + case 1: goto vv25; + case 2: goto vv29; + default: goto vv308; + } +vv105: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '\n': goto vv104; + default: goto vv102; + } +vv106: + ++VVCURSOR; +// 486 "scanner.re" + { + token->opcode = PHVOLT_T_STRING; + token->value = estrndup(q, VVCURSOR - q - 1); + token->len = VVCURSOR - q - 1; + q = VVCURSOR; + return 0; + } +// 1012 "scanner.c" +vv108: + ++VVCURSOR; + vvch = *VVCURSOR; +vv109: + switch (vvch) { + case 0x00: goto vv104; + case '"': goto vv106; + case '\\': goto vv110; + default: goto vv108; + } +vv110: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '\n': goto vv104; + default: goto vv108; + } +vv111: + ++VVCURSOR; +// 465 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; + } +// 1038 "scanner.c" +vv113: + ++VVCURSOR; +// 603 "scanner.re" + { + token->opcode = PHVOLT_T_SUB_ASSIGN; + return 0; + } +// 1046 "scanner.c" +vv115: + ++VVCURSOR; +// 533 "scanner.re" + { + token->opcode = PHVOLT_T_DECR; + return 0; + } +// 1054 "scanner.c" +vv117: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv121; + default: goto vv104; + } +vv118: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv119; + default: goto vv104; + } +vv119: + ++VVCURSOR; +// 451 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; + } +// 1076 "scanner.c" +vv121: + ++VVCURSOR; +// 478 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; + } +// 1086 "scanner.c" +vv123: + ++VVCURSOR; +// 439 "scanner.re" + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; + } +// 1095 "scanner.c" +vv125: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '-': goto vv131; + default: goto vv126; + } +vv126: +// 458 "scanner.re" + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; + } +// 1110 "scanner.c" +vv127: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '-': goto vv129; + default: goto vv128; + } +vv128: +// 433 "scanner.re" + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; + } +// 1124 "scanner.c" +vv129: + ++VVCURSOR; +// 445 "scanner.re" + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; + } +// 1133 "scanner.c" +vv131: + ++VVCURSOR; +// 471 "scanner.re" + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; + } +// 1143 "scanner.c" +vv133: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv136; + default: goto vv101; + } +vv134: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv135; + } +vv135: +// 403 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_DO; + return 0; + } +// 1227 "scanner.c" +vv136: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv137; + default: goto vv101; + } +vv137: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv138; + default: goto vv101; + } +vv138: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv139; + default: goto vv101; + } +vv139: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv140; + default: goto vv101; + } +vv140: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv141; + } +vv141: +// 344 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_DEFINED; + return 0; + } +// 1332 "scanner.c" +vv142: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv143; + default: goto vv101; + } +vv143: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv144; + default: goto vv101; + } +vv144: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv145; + default: goto vv101; + } +vv145: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv146; + default: goto vv101; + } +vv146: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv147; + } +vv147: +// 309 "scanner.re" + { + token->opcode = PHVOLT_T_RETURN; + return 0; + } +// 1436 "scanner.c" +vv148: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv149; + default: goto vv101; + } +vv149: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv150; + default: goto vv101; + } +vv150: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv151; + } +vv151: +// 304 "scanner.re" + { + token->opcode = PHVOLT_T_WITH; + return 0; + } +// 1526 "scanner.c" +vv152: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv162; + case 'L': + case 'l': goto vv161; + default: goto vv101; + } +vv153: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv154; + default: goto vv101; + } +vv154: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv155; + default: goto vv101; + } +vv155: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv156; + default: goto vv101; + } +vv156: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv157; + default: goto vv101; + } +vv157: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv158; + default: goto vv101; + } +vv158: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv159; + default: goto vv101; + } +vv159: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv160; + } +vv160: +// 421 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CONTINUE; + return 0; + } +// 1654 "scanner.c" +vv161: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv166; + default: goto vv101; + } +vv162: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv163; + default: goto vv101; + } +vv163: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv164; + default: goto vv101; + } +vv164: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv165; + } +vv165: +// 392 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CACHE; + return 0; + } +// 1752 "scanner.c" +vv166: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv167; + } +vv167: +// 293 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_CALL; + return 0; + } +// 1829 "scanner.c" +vv168: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv169; + default: goto vv101; + } +vv169: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv170; + default: goto vv101; + } +vv170: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv171; + default: goto vv101; + } +vv171: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv172; + } +vv172: +// 282 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_MACRO; + return 0; + } +// 1927 "scanner.c" +vv173: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv179; + default: goto vv101; + } +vv174: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv175; + default: goto vv101; + } +vv175: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv176; + default: goto vv101; + } +vv176: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv177; + default: goto vv101; + } +vv177: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv178; + } +vv178: +// 427 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_BREAK; + return 0; + } +// 2032 "scanner.c" +vv179: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv180; + default: goto vv101; + } +vv180: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv181; + default: goto vv101; + } +vv181: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv182; + } +vv182: +// 271 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_BLOCK; + return 0; + } +// 2123 "scanner.c" +vv183: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv186; + default: goto vv101; + } +vv184: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv185; + } +vv185: +// 266 "scanner.re" + { + token->opcode = PHVOLT_T_OR; + return 0; + } +// 2206 "scanner.c" +vv186: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv187; + } +vv187: +// 368 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_ODD; + return 0; + } +// 2283 "scanner.c" +vv188: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv199; + default: goto vv101; + } +vv189: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv190; + default: goto vv101; + } +vv190: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv191; + default: goto vv101; + } +vv191: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv192; + default: goto vv101; + } +vv192: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv193; + default: goto vv101; + } +vv193: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv194; + default: goto vv101; + } +vv194: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv195; + default: goto vv101; + } +vv195: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv196; + default: goto vv101; + } +vv196: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv197; + default: goto vv101; + } +vv197: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv198; + } +vv198: +// 409 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_AUTOESCAPE; + return 0; + } +// 2423 "scanner.c" +vv199: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv200; + } +vv200: +// 261 "scanner.re" + { + token->opcode = PHVOLT_T_AND; + return 0; + } +// 2499 "scanner.c" +vv201: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv202; + default: goto vv101; + } +vv202: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv203; + default: goto vv101; + } +vv203: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv204; + } +vv204: +// 256 "scanner.re" + { + token->opcode = PHVOLT_T_TRUE; + return 0; + } +// 2589 "scanner.c" +vv205: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv216; + default: goto vv101; + } +vv206: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv207; + case 'M': + case 'm': goto vv208; + default: goto vv101; + } +vv207: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv214; + default: goto vv101; + } +vv208: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv209; + default: goto vv101; + } +vv209: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv210; + default: goto vv101; + } +vv210: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv211; + default: goto vv101; + } +vv211: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv212; + default: goto vv101; + } +vv212: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv213; + } +vv213: +// 374 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_NUMERIC; + return 0; + } +// 2717 "scanner.c" +vv214: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv215; + } +vv215: +// 246 "scanner.re" + { + token->opcode = PHVOLT_T_NULL; + return 0; + } +// 2793 "scanner.c" +vv216: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv217; + } +vv217: +// 338 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_NOT; + return 0; + } +// 2870 "scanner.c" +vv218: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv222; + default: goto vv101; + } +vv219: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv220; + default: goto vv101; + } +vv220: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv221; + } +vv221: +// 241 "scanner.re" + { + token->opcode = PHVOLT_T_SET; + return 0; + } +// 2960 "scanner.c" +vv222: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv223; + default: goto vv101; + } +vv223: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv224; + default: goto vv101; + } +vv224: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv225; + default: goto vv101; + } +vv225: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv226; + } +vv226: +// 380 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_SCALAR; + return 0; + } +// 3058 "scanner.c" +vv227: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv231; + default: goto vv101; + } +vv228: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv229; + default: goto vv101; + } +vv229: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv230; + } +vv230: +// 225 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_FOR; + return 0; + } +// 3149 "scanner.c" +vv231: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv232; + default: goto vv101; + } +vv232: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv233; + default: goto vv101; + } +vv233: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv234; + } +vv234: +// 251 "scanner.re" + { + token->opcode = PHVOLT_T_FALSE; + return 0; + } +// 3239 "scanner.c" +vv235: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv293; + default: goto vv101; + } +vv236: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv289; + default: goto vv101; + } +vv237: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv249; + default: goto vv101; + } +vv238: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv246; + default: goto vv101; + } +vv239: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv240; + default: goto vv101; + } +vv240: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv241; + default: goto vv101; + } +vv241: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv242; + default: goto vv101; + } +vv242: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv243; + default: goto vv101; + } +vv243: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv244; + default: goto vv101; + } +vv244: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv245; + } +vv245: +// 314 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EXTENDS; + return 0; + } +// 3379 "scanner.c" +vv246: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv247; + default: goto vv101; + } +vv247: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv248; + } +vv248: +// 362 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EVEN; + return 0; + } +// 3463 "scanner.c" +vv249: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv250; + case 'B': + case 'b': goto vv251; + case 'C': + case 'c': goto vv252; + case 'F': + case 'f': goto vv253; + case 'I': + case 'i': goto vv254; + case 'M': + case 'm': goto vv255; + default: goto vv101; + } +vv250: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv279; + default: goto vv101; + } +vv251: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv274; + default: goto vv101; + } +vv252: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv266; + default: goto vv101; + } +vv253: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv263; + default: goto vv101; + } +vv254: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv261; + default: goto vv101; + } +vv255: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv256; + default: goto vv101; + } +vv256: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv257; + default: goto vv101; + } +vv257: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv258; + default: goto vv101; + } +vv258: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv259; + default: goto vv101; + } +vv259: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv260; + } +vv260: +// 288 "scanner.re" + { + token->opcode = PHVOLT_T_ENDMACRO; + return 0; + } +// 3619 "scanner.c" +vv261: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv262; + } +vv262: +// 220 "scanner.re" + { + token->opcode = PHVOLT_T_ENDIF; + return 0; + } +// 3695 "scanner.c" +vv263: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv264; + default: goto vv101; + } +vv264: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv265; + } +vv265: +// 231 "scanner.re" + { + token->opcode = PHVOLT_T_ENDFOR; + return 0; + } +// 3778 "scanner.c" +vv266: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv267; + case 'L': + case 'l': goto vv268; + default: goto vv101; + } +vv267: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv271; + default: goto vv101; + } +vv268: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv269; + default: goto vv101; + } +vv269: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv270; + } +vv270: +// 299 "scanner.re" + { + token->opcode = PHVOLT_T_ENDCALL; + return 0; + } +// 3877 "scanner.c" +vv271: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv272; + default: goto vv101; + } +vv272: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv273; + } +vv273: +// 398 "scanner.re" + { + token->opcode = PHVOLT_T_ENDCACHE; + return 0; + } +// 3960 "scanner.c" +vv274: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv275; + default: goto vv101; + } +vv275: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv276; + default: goto vv101; + } +vv276: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv277; + default: goto vv101; + } +vv277: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv278; + } +vv278: +// 277 "scanner.re" + { + token->opcode = PHVOLT_T_ENDBLOCK; + return 0; + } +// 4057 "scanner.c" +vv279: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv280; + default: goto vv101; + } +vv280: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv281; + default: goto vv101; + } +vv281: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv282; + default: goto vv101; + } +vv282: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv283; + default: goto vv101; + } +vv283: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv284; + default: goto vv101; + } +vv284: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv285; + default: goto vv101; + } +vv285: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv286; + default: goto vv101; + } +vv286: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv287; + default: goto vv101; + } +vv287: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv288; + } +vv288: +// 415 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_ENDAUTOESCAPE; + return 0; + } +// 4190 "scanner.c" +vv289: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv290; + default: goto vv101; + } +vv290: + vvch = *++VVCURSOR; + switch (vvch) { + case 'Y': + case 'y': goto vv291; + default: goto vv101; + } +vv291: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv292; + } +vv292: +// 356 "scanner.re" + { + s->statement_position++; + token->opcode = PHVOLT_T_EMPTY; + return 0; + } +// 4281 "scanner.c" +vv293: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv294; + default: goto vv101; + } +vv294: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + case 'F': + case 'f': goto vv296; + case 'I': + case 'i': goto vv297; + default: goto vv295; + } +vv295: +// 205 "scanner.re" + { + token->opcode = PHVOLT_T_ELSE; + return 0; + } +// 4364 "scanner.c" +vv296: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv300; + default: goto vv101; + } +vv297: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv298; + default: goto vv101; + } +vv298: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv299; } - - } else { - - - { - YYCTYPE yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = { - 0, 48, 48, 48, 48, 48, 48, 48, - 48, 52, 48, 48, 48, 52, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 116, 48, 16, 48, 48, 48, 48, 32, - 48, 48, 48, 48, 48, 48, 48, 48, - 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 48, 48, 48, 48, 48, 48, - 48, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 48, 8, 48, 48, 56, - 48, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - }; - - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy71; - case '\t': - case '\r': - case ' ': goto yy67; - case '\n': goto yy69; - case '!': goto yy59; - case '"': goto yy28; - case '%': goto yy22; - case '\'': goto yy30; - case '(': goto yy45; - case ')': goto yy47; - case '*': goto yy35; - case '+': goto yy33; - case ',': goto yy43; - case '-': goto yy24; - case '.': goto yy41; - case '/': goto yy37; +vv299: +// 215 "scanner.re" + { + token->opcode = PHVOLT_T_ELSEIF; + return 0; + } +// 4454 "scanner.c" +vv300: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv301; + default: goto vv101; + } +vv301: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { case '0': case '1': case '2': @@ -115407,1761 +122243,744 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case '6': case '7': case '8': - case '9': goto yy2; - case ':': goto yy63; - case '<': goto yy53; - case '=': goto yy55; - case '>': goto yy57; - case '?': goto yy65; + case '9': case 'A': - case 'a': goto yy12; case 'B': - case 'b': goto yy14; case 'C': - case 'c': goto yy16; case 'D': - case 'd': goto yy19; case 'E': - case 'e': goto yy7; case 'F': - case 'f': goto yy8; case 'G': case 'H': + case 'I': case 'J': case 'K': case 'L': + case 'M': + case 'N': + case 'O': case 'P': case 'Q': + case 'R': + case 'S': + case 'T': case 'U': case 'V': + case 'W': case 'X': case 'Y': case 'Z': + case '\\': case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': case 'g': case 'h': + case 'i': case 'j': case 'k': case 'l': + case 'm': + case 'n': + case 'o': case 'p': case 'q': + case 'r': + case 's': + case 't': case 'u': case 'v': + case 'w': case 'x': case 'y': - case 'z': goto yy32; - case 'I': goto yy4; + case 'z': goto vv100; + default: goto vv302; + } +vv302: +// 210 "scanner.re" + { + token->opcode = PHVOLT_T_ELSEFOR; + return 0; + } +// 4537 "scanner.c" +vv303: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': case 'M': - case 'm': goto yy15; case 'N': - case 'n': goto yy10; case 'O': - case 'o': goto yy13; + case 'P': + case 'Q': case 'R': - case 'r': goto yy18; case 'S': - case 's': goto yy9; case 'T': - case 't': goto yy11; + case 'U': + case 'V': case 'W': - case 'w': goto yy17; - case '[': goto yy49; - case '\\': goto yy31; - case ']': goto yy51; - case 'i': goto yy6; - case '{': goto yy20; - case '|': goto yy61; - case '}': goto yy26; - case '~': goto yy39; - default: goto yy73; - } -yy2: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy341; -yy3: - { - token->opcode = PHVOLT_T_INTEGER; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; - return 0; - } -yy4: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'T') { - if (yych <= 'M') { - if (yych == 'F') goto yy303; - goto yy101; - } else { - if (yych <= 'N') goto yy305; - if (yych <= 'R') goto yy101; - if (yych <= 'S') goto yy307; - goto yy309; - } - } else { - if (yych <= 'n') { - if (yych == 'f') goto yy303; - if (yych <= 'm') goto yy101; - goto yy305; - } else { - if (yych <= 'r') goto yy101; - if (yych <= 's') goto yy307; - if (yych <= 't') goto yy309; - goto yy101; - } - } -yy5: - { - token->opcode = PHVOLT_T_IDENTIFIER; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; - return 0; - } -yy6: - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'M') { - if (yych == 'F') goto yy303; - goto yy101; - } else { - if (yych <= 'N') goto yy305; - if (yych <= 'R') goto yy101; - if (yych <= 'S') goto yy307; - goto yy309; - } - } else { - if (yych <= 'n') { - if (yych == 'f') goto yy303; - if (yych <= 'm') goto yy101; - goto yy305; - } else { - if (yych <= 'r') goto yy101; - if (yych <= 's') goto yy310; - if (yych <= 't') goto yy309; - goto yy101; - } - } -yy7: - yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych <= 'N') { - if (yych <= 'K') goto yy101; - if (yych <= 'L') goto yy235; - if (yych <= 'M') goto yy236; - goto yy237; - } else { - if (yych == 'V') goto yy238; - if (yych <= 'W') goto yy101; - goto yy239; - } - } else { - if (yych <= 'n') { - if (yych <= 'k') goto yy101; - if (yych <= 'l') goto yy235; - if (yych <= 'm') goto yy236; - goto yy237; - } else { - if (yych <= 'v') { - if (yych <= 'u') goto yy101; - goto yy238; - } else { - if (yych == 'x') goto yy239; - goto yy101; - } - } - } -yy8: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy227; - if (yych <= 'N') goto yy101; - goto yy228; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy101; - goto yy227; - } else { - if (yych == 'o') goto yy228; - goto yy101; - } - } -yy9: - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'C') goto yy218; - if (yych <= 'D') goto yy101; - goto yy219; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - goto yy218; - } else { - if (yych == 'e') goto yy219; - goto yy101; - } - } -yy10: - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'O') goto yy205; - if (yych <= 'T') goto yy101; - goto yy206; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy101; - goto yy205; - } else { - if (yych == 'u') goto yy206; - goto yy101; - } - } -yy11: - yych = *++YYCURSOR; - if (yych == 'R') goto yy201; - if (yych == 'r') goto yy201; - goto yy101; -yy12: - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'N') goto yy188; - if (yych <= 'T') goto yy101; - goto yy189; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy101; - goto yy188; - } else { - if (yych == 'u') goto yy189; - goto yy101; - } - } -yy13: - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'D') goto yy183; - if (yych <= 'Q') goto yy101; - goto yy184; - } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy101; - goto yy183; - } else { - if (yych == 'r') goto yy184; - goto yy101; - } - } -yy14: - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'L') goto yy173; - if (yych <= 'Q') goto yy101; - goto yy174; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy101; - goto yy173; - } else { - if (yych == 'r') goto yy174; - goto yy101; - } - } -yy15: - yych = *++YYCURSOR; - if (yych == 'A') goto yy168; - if (yych == 'a') goto yy168; - goto yy101; -yy16: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy152; - if (yych <= 'N') goto yy101; - goto yy153; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy101; - goto yy152; - } else { - if (yych == 'o') goto yy153; - goto yy101; - } - } -yy17: - yych = *++YYCURSOR; - if (yych == 'I') goto yy148; - if (yych == 'i') goto yy148; - goto yy101; -yy18: - yych = *++YYCURSOR; - if (yych == 'E') goto yy142; - if (yych == 'e') goto yy142; - goto yy101; -yy19: - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'E') goto yy133; - if (yych <= 'N') goto yy101; - goto yy134; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy101; - goto yy133; - } else { - if (yych == 'o') goto yy134; - goto yy101; - } - } -yy20: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '%') goto yy127; - if (yych == '{') goto yy125; - { - token->opcode = PHVOLT_T_CBRACKET_OPEN; - return 0; - } -yy22: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '}') goto yy123; - { - token->opcode = PHVOLT_T_MOD; - return 0; - } -yy24: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { - if (yych == '%') goto yy118; - if (yych >= '-') goto yy115; - } else { - if (yych <= '=') { - if (yych >= '=') goto yy113; - } else { - if (yych == '}') goto yy117; - } - } -yy25: - { - token->opcode = PHVOLT_T_SUB; - return 0; - } -yy26: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '}') goto yy111; - { - token->opcode = PHVOLT_T_CBRACKET_CLOSE; - return 0; - } -yy28: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych >= 0x01) goto yy109; -yy29: - { - status = PHVOLT_SCANNER_RETCODE_ERR; - break; - } -yy30: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy29; - goto yy103; -yy31: - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') goto yy29; - if (yych <= 'Z') goto yy100; - goto yy29; - } else { - if (yych == '`') goto yy29; - if (yych <= 'z') goto yy100; - goto yy29; - } -yy32: - yych = *++YYCURSOR; - goto yy101; -yy33: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '+') goto yy98; - if (yych == '=') goto yy96; - { - token->opcode = PHVOLT_T_ADD; - return 0; - } -yy35: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy94; - { - token->opcode = PHVOLT_T_MUL; - return 0; - } -yy37: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy92; - { - token->opcode = PHVOLT_T_DIV; - return 0; - } -yy39: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_CONCAT; - return 0; - } -yy41: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '.') goto yy90; - { - token->opcode = PHVOLT_T_DOT; - return 0; - } -yy43: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_COMMA; - return 0; - } -yy45: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_OPEN; - return 0; - } -yy47: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_CLOSE; - return 0; - } -yy49: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_OPEN; - return 0; - } -yy51: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_CLOSE; - return 0; - } -yy53: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '<') goto yy54; - if (yych <= '=') goto yy88; - if (yych <= '>') goto yy86; -yy54: - { - token->opcode = PHVOLT_T_LESS; - return 0; - } -yy55: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy82; - { - token->opcode = PHVOLT_T_ASSIGN; - return 0; - } -yy57: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy80; - { - token->opcode = PHVOLT_T_GREATER; - return 0; - } -yy59: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy76; - { - token->opcode = PHVOLT_T_NOT; - return 0; - } -yy61: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_PIPE; - return 0; - } -yy63: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_COLON; - return 0; - } -yy65: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_QUESTION; - return 0; - } -yy67: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy75; -yy68: - { - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -yy69: - ++YYCURSOR; - { - s->active_line++; - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -yy71: - ++YYCURSOR; - { - status = PHVOLT_SCANNER_RETCODE_EOF; - break; - } -yy73: - yych = *++YYCURSOR; - goto yy29; -yy74: - ++YYCURSOR; - yych = *YYCURSOR; -yy75: - if (yybm[0+yych] & 4) { - goto yy74; - } - goto yy68; -yy76: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy78; - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy78: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_NOTIDENTICAL; - return 0; - } -yy80: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_GREATEREQUAL; - return 0; - } -yy82: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy84; - { - token->opcode = PHVOLT_T_EQUALS; - return 0; - } -yy84: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_IDENTICAL; - return 0; - } -yy86: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy88: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_LESSEQUAL; - return 0; - } -yy90: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_RANGE; - return 0; - } -yy92: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_DIV_ASSIGN; - return 0; - } -yy94: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_MUL_ASSIGN; - return 0; - } -yy96: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_ADD_ASSIGN; - return 0; - } -yy98: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_INCR; - return 0; - } -yy100: - ++YYCURSOR; - yych = *YYCURSOR; -yy101: - if (yybm[0+yych] & 8) { - goto yy100; - } - goto yy5; -yy102: - ++YYCURSOR; - yych = *YYCURSOR; -yy103: - if (yybm[0+yych] & 16) { - goto yy102; - } - if (yych <= 0x00) goto yy104; - if (yych <= '[') goto yy106; - goto yy105; -yy104: - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy3; - } else { - goto yy25; - } - } else { - if (yyaccept <= 2) { - goto yy29; - } else { - goto yy308; - } - } -yy105: - ++YYCURSOR; - yych = *YYCURSOR; - if (yych == '\n') goto yy104; - goto yy102; -yy106: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_STRING; - token->value = estrndup(q, YYCURSOR - q - 1); - token->len = YYCURSOR - q - 1; - q = YYCURSOR; - return 0; - } -yy108: - ++YYCURSOR; - yych = *YYCURSOR; -yy109: - if (yybm[0+yych] & 32) { - goto yy108; - } - if (yych <= 0x00) goto yy104; - if (yych <= '[') goto yy106; - ++YYCURSOR; - yych = *YYCURSOR; - if (yych == '\n') goto yy104; - goto yy108; -yy111: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -yy113: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_SUB_ASSIGN; - return 0; - } -yy115: - ++YYCURSOR; - { - token->opcode = PHVOLT_T_DECR; - return 0; - } -yy117: - yych = *++YYCURSOR; - if (yych == '}') goto yy121; - goto yy104; -yy118: - yych = *++YYCURSOR; - if (yych != '}') goto yy104; - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -yy121: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -yy123: - ++YYCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -yy125: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy131; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -yy127: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy129; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -yy129: - ++YYCURSOR; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -yy131: - ++YYCURSOR; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -yy133: - yych = *++YYCURSOR; - if (yych == 'F') goto yy136; - if (yych == 'f') goto yy136; - goto yy101; -yy134: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_DO; - return 0; - } -yy136: - yych = *++YYCURSOR; - if (yych == 'I') goto yy137; - if (yych != 'i') goto yy101; -yy137: - yych = *++YYCURSOR; - if (yych == 'N') goto yy138; - if (yych != 'n') goto yy101; -yy138: - yych = *++YYCURSOR; - if (yych == 'E') goto yy139; - if (yych != 'e') goto yy101; -yy139: - yych = *++YYCURSOR; - if (yych == 'D') goto yy140; - if (yych != 'd') goto yy101; -yy140: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_DEFINED; - return 0; - } -yy142: - yych = *++YYCURSOR; - if (yych == 'T') goto yy143; - if (yych != 't') goto yy101; -yy143: - yych = *++YYCURSOR; - if (yych == 'U') goto yy144; - if (yych != 'u') goto yy101; -yy144: - yych = *++YYCURSOR; - if (yych == 'R') goto yy145; - if (yych != 'r') goto yy101; -yy145: - yych = *++YYCURSOR; - if (yych == 'N') goto yy146; - if (yych != 'n') goto yy101; -yy146: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_RETURN; - return 0; - } -yy148: - yych = *++YYCURSOR; - if (yych == 'T') goto yy149; - if (yych != 't') goto yy101; -yy149: - yych = *++YYCURSOR; - if (yych == 'H') goto yy150; - if (yych != 'h') goto yy101; -yy150: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_WITH; - return 0; - } -yy152: - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == 'C') goto yy162; - if (yych <= 'K') goto yy101; - goto yy161; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - goto yy162; - } else { - if (yych == 'l') goto yy161; - goto yy101; - } - } -yy153: - yych = *++YYCURSOR; - if (yych == 'N') goto yy154; - if (yych != 'n') goto yy101; -yy154: - yych = *++YYCURSOR; - if (yych == 'T') goto yy155; - if (yych != 't') goto yy101; -yy155: - yych = *++YYCURSOR; - if (yych == 'I') goto yy156; - if (yych != 'i') goto yy101; -yy156: - yych = *++YYCURSOR; - if (yych == 'N') goto yy157; - if (yych != 'n') goto yy101; -yy157: - yych = *++YYCURSOR; - if (yych == 'U') goto yy158; - if (yych != 'u') goto yy101; -yy158: - yych = *++YYCURSOR; - if (yych == 'E') goto yy159; - if (yych != 'e') goto yy101; -yy159: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CONTINUE; - return 0; - } -yy161: - yych = *++YYCURSOR; - if (yych == 'L') goto yy166; - if (yych == 'l') goto yy166; - goto yy101; -yy162: - yych = *++YYCURSOR; - if (yych == 'H') goto yy163; - if (yych != 'h') goto yy101; -yy163: - yych = *++YYCURSOR; - if (yych == 'E') goto yy164; - if (yych != 'e') goto yy101; -yy164: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CACHE; - return 0; - } -yy166: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_CALL; - return 0; - } -yy168: - yych = *++YYCURSOR; - if (yych == 'C') goto yy169; - if (yych != 'c') goto yy101; -yy169: - yych = *++YYCURSOR; - if (yych == 'R') goto yy170; - if (yych != 'r') goto yy101; -yy170: - yych = *++YYCURSOR; - if (yych == 'O') goto yy171; - if (yych != 'o') goto yy101; -yy171: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_MACRO; - return 0; - } -yy173: - yych = *++YYCURSOR; - if (yych == 'O') goto yy179; - if (yych == 'o') goto yy179; - goto yy101; -yy174: - yych = *++YYCURSOR; - if (yych == 'E') goto yy175; - if (yych != 'e') goto yy101; -yy175: - yych = *++YYCURSOR; - if (yych == 'A') goto yy176; - if (yych != 'a') goto yy101; -yy176: - yych = *++YYCURSOR; - if (yych == 'K') goto yy177; - if (yych != 'k') goto yy101; -yy177: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_BREAK; - return 0; - } -yy179: - yych = *++YYCURSOR; - if (yych == 'C') goto yy180; - if (yych != 'c') goto yy101; -yy180: - yych = *++YYCURSOR; - if (yych == 'K') goto yy181; - if (yych != 'k') goto yy101; -yy181: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_BLOCK; - return 0; - } -yy183: - yych = *++YYCURSOR; - if (yych == 'D') goto yy186; - if (yych == 'd') goto yy186; - goto yy101; -yy184: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_OR; - return 0; - } -yy186: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_ODD; - return 0; - } -yy188: - yych = *++YYCURSOR; - if (yych == 'D') goto yy199; - if (yych == 'd') goto yy199; - goto yy101; -yy189: - yych = *++YYCURSOR; - if (yych == 'T') goto yy190; - if (yych != 't') goto yy101; -yy190: - yych = *++YYCURSOR; - if (yych == 'O') goto yy191; - if (yych != 'o') goto yy101; -yy191: - yych = *++YYCURSOR; - if (yych == 'E') goto yy192; - if (yych != 'e') goto yy101; -yy192: - yych = *++YYCURSOR; - if (yych == 'S') goto yy193; - if (yych != 's') goto yy101; -yy193: - yych = *++YYCURSOR; - if (yych == 'C') goto yy194; - if (yych != 'c') goto yy101; -yy194: - yych = *++YYCURSOR; - if (yych == 'A') goto yy195; - if (yych != 'a') goto yy101; -yy195: - yych = *++YYCURSOR; - if (yych == 'P') goto yy196; - if (yych != 'p') goto yy101; -yy196: - yych = *++YYCURSOR; - if (yych == 'E') goto yy197; - if (yych != 'e') goto yy101; -yy197: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv304; } +vv304: +// 199 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_AUTOESCAPE; - return 0; - } -yy199: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_AND; + token->opcode = PHVOLT_T_IF; return 0; } -yy201: - yych = *++YYCURSOR; - if (yych == 'U') goto yy202; - if (yych != 'u') goto yy101; -yy202: - yych = *++YYCURSOR; - if (yych == 'E') goto yy203; - if (yych != 'e') goto yy101; -yy203: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4614 "scanner.c" +vv305: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + case 'C': + case 'c': goto vv333; + default: goto vv306; } +vv306: +// 236 "scanner.re" { - token->opcode = PHVOLT_T_TRUE; + token->opcode = PHVOLT_T_IN; return 0; } -yy205: - yych = *++YYCURSOR; - if (yych == 'T') goto yy216; - if (yych == 't') goto yy216; - goto yy101; -yy206: - yych = *++YYCURSOR; - if (yych <= 'M') { - if (yych <= 'K') goto yy101; - if (yych >= 'M') goto yy208; - } else { - if (yych <= 'k') goto yy101; - if (yych <= 'l') goto yy207; - if (yych <= 'm') goto yy208; - goto yy101; - } -yy207: - yych = *++YYCURSOR; - if (yych == 'L') goto yy214; - if (yych == 'l') goto yy214; - goto yy101; -yy208: - yych = *++YYCURSOR; - if (yych == 'E') goto yy209; - if (yych != 'e') goto yy101; -yy209: - yych = *++YYCURSOR; - if (yych == 'R') goto yy210; - if (yych != 'r') goto yy101; -yy210: - yych = *++YYCURSOR; - if (yych == 'I') goto yy211; - if (yych != 'i') goto yy101; -yy211: - yych = *++YYCURSOR; - if (yych == 'C') goto yy212; - if (yych != 'c') goto yy101; -yy212: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4690 "scanner.c" +vv307: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv332; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv308; } +vv308: +// 332 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_NUMERIC; + token->opcode = PHVOLT_T_IS; return 0; } -yy214: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4769 "scanner.c" +vv309: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv325; + default: goto vv101; + } +vv310: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv311; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv308; + } +vv311: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': goto vv315; + case 'n': goto vv312; + default: goto vv314; + } +vv312: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': goto vv316; + case 'o': goto vv323; + default: goto vv104; + } +vv313: + ++VVCURSOR; + vvch = *VVCURSOR; +vv314: + switch (vvch) { + case ' ': goto vv313; + case 'n': goto vv319; + default: goto vv104; + } +vv315: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv316; + default: goto vv104; } - { - token->opcode = PHVOLT_T_NULL; - return 0; - } -yy216: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv316: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv317; + default: goto vv104; } +vv317: + ++VVCURSOR; +vv318: +// 320 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_NOT; - return 0; - } -yy218: - yych = *++YYCURSOR; - if (yych == 'A') goto yy222; - if (yych == 'a') goto yy222; - goto yy101; -yy219: - yych = *++YYCURSOR; - if (yych == 'T') goto yy220; - if (yych != 't') goto yy101; -yy220: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_SET; + token->opcode = PHVOLT_T_NOTEQUALS; return 0; } -yy222: - yych = *++YYCURSOR; - if (yych == 'L') goto yy223; - if (yych != 'l') goto yy101; -yy223: - yych = *++YYCURSOR; - if (yych == 'A') goto yy224; - if (yych != 'a') goto yy101; -yy224: - yych = *++YYCURSOR; - if (yych == 'R') goto yy225; - if (yych != 'r') goto yy101; -yy225: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } +// 4894 "scanner.c" +vv319: + vvch = *++VVCURSOR; + switch (vvch) { + case 'o': goto vv320; + default: goto vv104; + } +vv320: + vvch = *++VVCURSOR; + switch (vvch) { + case 't': goto vv321; + default: goto vv104; + } +vv321: + ++VVCURSOR; +// 326 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_SCALAR; + token->opcode = PHVOLT_T_NOTEQUALS; return 0; } -yy227: - yych = *++YYCURSOR; - if (yych == 'L') goto yy231; - if (yych == 'l') goto yy231; - goto yy101; -yy228: - yych = *++YYCURSOR; - if (yych == 'R') goto yy229; - if (yych != 'r') goto yy101; -yy229: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 4915 "scanner.c" +vv323: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': goto vv317; + case 't': goto vv324; + default: goto vv104; + } +vv324: + vvch = *++VVCURSOR; + goto vv318; +vv325: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv326; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_FOR; - return 0; - } -yy231: - yych = *++YYCURSOR; - if (yych == 'S') goto yy232; - if (yych != 's') goto yy101; -yy232: - yych = *++YYCURSOR; - if (yych == 'E') goto yy233; - if (yych != 'e') goto yy101; -yy233: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv326: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv327; + default: goto vv101; } - { - token->opcode = PHVOLT_T_FALSE; - return 0; - } -yy235: - yych = *++YYCURSOR; - if (yych == 'S') goto yy293; - if (yych == 's') goto yy293; - goto yy101; -yy236: - yych = *++YYCURSOR; - if (yych == 'P') goto yy289; - if (yych == 'p') goto yy289; - goto yy101; -yy237: - yych = *++YYCURSOR; - if (yych == 'D') goto yy249; - if (yych == 'd') goto yy249; - goto yy101; -yy238: - yych = *++YYCURSOR; - if (yych == 'E') goto yy246; - if (yych == 'e') goto yy246; - goto yy101; -yy239: - yych = *++YYCURSOR; - if (yych == 'T') goto yy240; - if (yych != 't') goto yy101; -yy240: - yych = *++YYCURSOR; - if (yych == 'E') goto yy241; - if (yych != 'e') goto yy101; -yy241: - yych = *++YYCURSOR; - if (yych == 'N') goto yy242; - if (yych != 'n') goto yy101; -yy242: - yych = *++YYCURSOR; - if (yych == 'D') goto yy243; - if (yych != 'd') goto yy101; -yy243: - yych = *++YYCURSOR; - if (yych == 'S') goto yy244; - if (yych != 's') goto yy101; -yy244: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv327: + vvch = *++VVCURSOR; + switch (vvch) { + case 'B': + case 'b': goto vv328; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_EXTENDS; - return 0; - } -yy246: - yych = *++YYCURSOR; - if (yych == 'N') goto yy247; - if (yych != 'n') goto yy101; -yy247: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv328: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv329; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_EVEN; - return 0; - } -yy249: - yych = *++YYCURSOR; - switch (yych) { +vv329: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv330; + default: goto vv101; + } +vv330: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': case 'A': - case 'a': goto yy250; case 'B': - case 'b': goto yy251; case 'C': - case 'c': goto yy252; + case 'D': + case 'E': case 'F': - case 'f': goto yy253; + case 'G': + case 'H': case 'I': - case 'i': goto yy254; + case 'J': + case 'K': + case 'L': case 'M': - case 'm': goto yy255; - default: goto yy101; - } -yy250: - yych = *++YYCURSOR; - if (yych == 'U') goto yy279; - if (yych == 'u') goto yy279; - goto yy101; -yy251: - yych = *++YYCURSOR; - if (yych == 'L') goto yy274; - if (yych == 'l') goto yy274; - goto yy101; -yy252: - yych = *++YYCURSOR; - if (yych == 'A') goto yy266; - if (yych == 'a') goto yy266; - goto yy101; -yy253: - yych = *++YYCURSOR; - if (yych == 'O') goto yy263; - if (yych == 'o') goto yy263; - goto yy101; -yy254: - yych = *++YYCURSOR; - if (yych == 'F') goto yy261; - if (yych == 'f') goto yy261; - goto yy101; -yy255: - yych = *++YYCURSOR; - if (yych == 'A') goto yy256; - if (yych != 'a') goto yy101; -yy256: - yych = *++YYCURSOR; - if (yych == 'C') goto yy257; - if (yych != 'c') goto yy101; -yy257: - yych = *++YYCURSOR; - if (yych == 'R') goto yy258; - if (yych != 'r') goto yy101; -yy258: - yych = *++YYCURSOR; - if (yych == 'O') goto yy259; - if (yych != 'o') goto yy101; -yy259: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDMACRO; - return 0; - } -yy261: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDIF; - return 0; - } -yy263: - yych = *++YYCURSOR; - if (yych == 'R') goto yy264; - if (yych != 'r') goto yy101; -yy264: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDFOR; - return 0; - } -yy266: - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == 'C') goto yy267; - if (yych <= 'K') goto yy101; - goto yy268; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy101; - } else { - if (yych == 'l') goto yy268; - goto yy101; - } - } -yy267: - yych = *++YYCURSOR; - if (yych == 'H') goto yy271; - if (yych == 'h') goto yy271; - goto yy101; -yy268: - yych = *++YYCURSOR; - if (yych == 'L') goto yy269; - if (yych != 'l') goto yy101; -yy269: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDCALL; - return 0; - } -yy271: - yych = *++YYCURSOR; - if (yych == 'E') goto yy272; - if (yych != 'e') goto yy101; -yy272: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDCACHE; - return 0; - } -yy274: - yych = *++YYCURSOR; - if (yych == 'O') goto yy275; - if (yych != 'o') goto yy101; -yy275: - yych = *++YYCURSOR; - if (yych == 'C') goto yy276; - if (yych != 'c') goto yy101; -yy276: - yych = *++YYCURSOR; - if (yych == 'K') goto yy277; - if (yych != 'k') goto yy101; -yy277: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - token->opcode = PHVOLT_T_ENDBLOCK; - return 0; - } -yy279: - yych = *++YYCURSOR; - if (yych == 'T') goto yy280; - if (yych != 't') goto yy101; -yy280: - yych = *++YYCURSOR; - if (yych == 'O') goto yy281; - if (yych != 'o') goto yy101; -yy281: - yych = *++YYCURSOR; - if (yych == 'E') goto yy282; - if (yych != 'e') goto yy101; -yy282: - yych = *++YYCURSOR; - if (yych == 'S') goto yy283; - if (yych != 's') goto yy101; -yy283: - yych = *++YYCURSOR; - if (yych == 'C') goto yy284; - if (yych != 'c') goto yy101; -yy284: - yych = *++YYCURSOR; - if (yych == 'A') goto yy285; - if (yych != 'a') goto yy101; -yy285: - yych = *++YYCURSOR; - if (yych == 'P') goto yy286; - if (yych != 'p') goto yy101; -yy286: - yych = *++YYCURSOR; - if (yych == 'E') goto yy287; - if (yych != 'e') goto yy101; -yy287: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; - } - { - s->statement_position++; - token->opcode = PHVOLT_T_ENDAUTOESCAPE; - return 0; - } -yy289: - yych = *++YYCURSOR; - if (yych == 'T') goto yy290; - if (yych != 't') goto yy101; -yy290: - yych = *++YYCURSOR; - if (yych == 'Y') goto yy291; - if (yych != 'y') goto yy101; -yy291: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv331; } +vv331: +// 386 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_EMPTY; + token->opcode = PHVOLT_T_ITERABLE; return 0; } -yy293: - yych = *++YYCURSOR; - if (yych == 'E') goto yy294; - if (yych != 'e') goto yy101; -yy294: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '[') { - if (yych <= 'E') { - if (yych <= '/') goto yy295; - if (yych <= '9') goto yy100; - if (yych >= 'A') goto yy100; - } else { - if (yych <= 'H') { - if (yych <= 'F') goto yy296; - goto yy100; - } else { - if (yych <= 'I') goto yy297; - if (yych <= 'Z') goto yy100; - } - } - } else { - if (yych <= 'e') { - if (yych <= '^') { - if (yych <= '\\') goto yy100; - } else { - if (yych != '`') goto yy100; - } - } else { - if (yych <= 'h') { - if (yych <= 'f') goto yy296; - goto yy100; - } else { - if (yych <= 'i') goto yy297; - if (yych <= 'z') goto yy100; - } - } +// 5037 "scanner.c" +vv332: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv315; + default: goto vv104; } -yy295: - { - token->opcode = PHVOLT_T_ELSE; - return 0; - } -yy296: - yych = *++YYCURSOR; - if (yych == 'O') goto yy300; - if (yych == 'o') goto yy300; - goto yy101; -yy297: - yych = *++YYCURSOR; - if (yych == 'F') goto yy298; - if (yych != 'f') goto yy101; -yy298: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv333: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv334; + default: goto vv101; } - { - token->opcode = PHVOLT_T_ELSEIF; - return 0; - } -yy300: - yych = *++YYCURSOR; - if (yych == 'R') goto yy301; - if (yych != 'r') goto yy101; -yy301: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv334: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv335; + default: goto vv101; } - { - token->opcode = PHVOLT_T_ELSEFOR; - return 0; - } -yy303: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv335: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv336; + default: goto vv101; } - { - s->statement_position++; - token->opcode = PHVOLT_T_IF; - return 0; - } -yy305: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '[') { - if (yych <= '@') { - if (yych <= '/') goto yy306; - if (yych <= '9') goto yy100; - } else { - if (yych == 'C') goto yy333; - if (yych <= 'Z') goto yy100; - } - } else { - if (yych <= '`') { - if (yych <= '\\') goto yy100; - if (yych == '_') goto yy100; - } else { - if (yych == 'c') goto yy333; - if (yych <= 'z') goto yy100; - } +vv336: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv337; + default: goto vv101; } -yy306: - { - token->opcode = PHVOLT_T_IN; - return 0; - } -yy307: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy100; +vv337: + ++VVCURSOR; + switch ((vvch = *VVCURSOR)) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv100; + default: goto vv338; } - if (yych == ' ') goto yy332; -yy308: +vv338: +// 350 "scanner.re" { s->statement_position++; - token->opcode = PHVOLT_T_IS; - return 0; - } -yy309: - yych = *++YYCURSOR; - if (yych == 'E') goto yy325; - if (yych == 'e') goto yy325; - goto yy101; -yy310: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy100; - } - if (yych != ' ') goto yy308; - yych = *++YYCURSOR; - if (yych == 'N') goto yy315; - if (yych != 'n') goto yy314; - yych = *++YYCURSOR; - if (yych == 'O') goto yy316; - if (yych == 'o') goto yy323; - goto yy104; -yy313: - ++YYCURSOR; - yych = *YYCURSOR; -yy314: - if (yybm[0+yych] & 64) { - goto yy313; - } - if (yych == 'n') goto yy319; - goto yy104; -yy315: - yych = *++YYCURSOR; - if (yych == 'O') goto yy316; - if (yych != 'o') goto yy104; -yy316: - yych = *++YYCURSOR; - if (yych == 'T') goto yy317; - if (yych != 't') goto yy104; -yy317: - ++YYCURSOR; -yy318: - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -yy319: - yych = *++YYCURSOR; - if (yych != 'o') goto yy104; - yych = *++YYCURSOR; - if (yych != 't') goto yy104; - ++YYCURSOR; - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; + token->opcode = PHVOLT_T_INCLUDE; return 0; } -yy323: - yych = *++YYCURSOR; - if (yych == 'T') goto yy317; - if (yych != 't') goto yy104; - yych = *++YYCURSOR; - goto yy318; -yy325: - yych = *++YYCURSOR; - if (yych == 'R') goto yy326; - if (yych != 'r') goto yy101; -yy326: - yych = *++YYCURSOR; - if (yych == 'A') goto yy327; - if (yych != 'a') goto yy101; -yy327: - yych = *++YYCURSOR; - if (yych == 'B') goto yy328; - if (yych != 'b') goto yy101; -yy328: - yych = *++YYCURSOR; - if (yych == 'L') goto yy329; - if (yych != 'l') goto yy101; -yy329: - yych = *++YYCURSOR; - if (yych == 'E') goto yy330; - if (yych != 'e') goto yy101; -yy330: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +// 5149 "scanner.c" +vv339: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv342; + default: goto vv104; + } +vv340: + vvaccept = 0; + VVMARKER = ++VVCURSOR; + vvch = *VVCURSOR; +vv341: + switch (vvch) { + case '.': goto vv339; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv340; + default: goto vv3; } - { - s->statement_position++; - token->opcode = PHVOLT_T_ITERABLE; - return 0; - } -yy332: - yych = *++YYCURSOR; - if (yych == 'N') goto yy315; - if (yych == 'n') goto yy315; - goto yy104; -yy333: - yych = *++YYCURSOR; - if (yych == 'L') goto yy334; - if (yych != 'l') goto yy101; -yy334: - yych = *++YYCURSOR; - if (yych == 'U') goto yy335; - if (yych != 'u') goto yy101; -yy335: - yych = *++YYCURSOR; - if (yych == 'D') goto yy336; - if (yych != 'd') goto yy101; -yy336: - yych = *++YYCURSOR; - if (yych == 'E') goto yy337; - if (yych != 'e') goto yy101; -yy337: - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy100; +vv342: + ++VVCURSOR; + vvch = *VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv342; + default: goto vv344; } - { - s->statement_position++; - token->opcode = PHVOLT_T_INCLUDE; - return 0; - } -yy339: - yych = *++YYCURSOR; - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy342; - goto yy104; -yy340: - yyaccept = 0; - YYMARKER = ++YYCURSOR; - yych = *YYCURSOR; -yy341: - if (yybm[0+yych] & 128) { - goto yy340; - } - if (yych == '.') goto yy339; - goto yy3; -yy342: - ++YYCURSOR; - yych = *YYCURSOR; - if (yych <= '/') goto yy344; - if (yych <= '9') goto yy342; -yy344: +vv344: +// 191 "scanner.re" { token->opcode = PHVOLT_T_DOUBLE; - token->value = estrndup(start, YYCURSOR - start); - token->len = YYCURSOR - start; - q = YYCURSOR; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + q = VVCURSOR; return 0; } +// 5209 "scanner.c" } +// 699 "scanner.re" } @@ -117172,58 +122991,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_AdapterInterface) { - - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, AdapterInterface, phalcon, paginator_adapterinterface, phalcon_paginator_adapterinterface_method_entry); - - return SUCCESS; - -} - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, __construct); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setCurrentPage); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getPaginate); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setLimit); - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getLimit); - - - - -#ifdef HAVE_CONFIG_H -#endif - -#include - -#include -#include -#include - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { - - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; - -} - - - - #ifdef HAVE_CONFIG_H #endif @@ -117235,43 +123002,19 @@ ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) { - - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_model_method_entry, 0); +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter) { - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator, Adapter, phalcon, paginator_adapter, phalcon_paginator_adapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_paginator_adapter_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(phalcon_paginator_adapter_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_model_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { - - zval *config_param = NULL, *page, *limit; - zval *config = NULL; - - zephir_fetch_params(0, 1, 0, &config_param); - - config = config_param; - - - - zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); - if (zephir_array_isset_string_fetch(&limit, config, SS("limit"), 1 TSRMLS_CC)) { - zephir_update_property_this(this_ptr, SL("_limitRows"), limit TSRMLS_CC); - } - if (zephir_array_isset_string_fetch(&page, config, SS("page"), 1 TSRMLS_CC)) { - zephir_update_property_this(this_ptr, SL("_page"), page TSRMLS_CC); - } - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage) { +static PHP_METHOD(Phalcon_Paginator_Adapter, setCurrentPage) { zval *page_param = NULL, *_0; int page; @@ -117288,7 +123031,7 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit) { +static PHP_METHOD(Phalcon_Paginator_Adapter, setLimit) { zval *limitRows_param = NULL, *_0; int limitRows; @@ -117305,18 +123048,116 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getLimit) { +static PHP_METHOD(Phalcon_Paginator_Adapter, getLimit) { RETURN_MEMBER(this_ptr, "_limitRows"); } + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_AdapterInterface) { + + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, AdapterInterface, phalcon, paginator_adapterinterface, phalcon_paginator_adapterinterface_method_entry); + + return SUCCESS; + +} + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, __construct); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setCurrentPage); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getPaginate); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, setLimit); + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_AdapterInterface, getLimit); + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + +#include + +#include +#include +#include + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) { + + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_model_method_entry, 0); + + zend_declare_property_null(phalcon_paginator_adapter_model_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); + + zend_class_implements(phalcon_paginator_adapter_model_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); + return SUCCESS; + +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { + + zval *config_param = NULL, *page, *limit; + zval *config = NULL; + + zephir_fetch_params(0, 1, 0, &config_param); + + config = config_param; + + + + zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); + if (zephir_array_isset_string_fetch(&limit, config, SS("limit"), 1 TSRMLS_CC)) { + zephir_update_property_this(this_ptr, SL("_limitRows"), limit TSRMLS_CC); + } + if (zephir_array_isset_string_fetch(&page, config, SS("page"), 1 TSRMLS_CC)) { + zephir_update_property_this(this_ptr, SL("_page"), page TSRMLS_CC); + } + +} + static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { - zephir_fcall_cache_entry *_3 = NULL, *_5 = NULL; - int pageNumber, show, n, start, lastShowPage, i, next, pagesTotal, before, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *pageItems, *page, *valid = NULL, *_0, *_1, *_2 = NULL, *_4 = NULL, *_6; + zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; + int pageNumber, show, n, start, lastShowPage, i, next, totalPages, before, ZEPHIR_LAST_CALL_STATUS; + zval *config, *items, *pageItems, *page, *_0, *_1, *_2 = NULL, *_3 = NULL, *_4 = NULL, *_7; ZEPHIR_MM_GROW(); @@ -117326,19 +123167,19 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_OBS_VAR(config); zephir_read_property_this(&config, this_ptr, SL("_config"), PH_NOISY_CC); ZEPHIR_OBS_VAR(items); - zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/model.zep", 115 TSRMLS_CC); + zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/model.zep", 80 TSRMLS_CC); ZEPHIR_OBS_VAR(_1); zephir_read_property_this(&_1, this_ptr, SL("_page"), PH_NOISY_CC); pageNumber = zephir_get_intval(_1); if (Z_TYPE_P(items) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/model.zep", 119); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/model.zep", 84); return; } if (pageNumber <= 0) { pageNumber = 1; } if (show <= 0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "The start page number is zero or less", "phalcon/paginator/adapter/model.zep", 129); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "The start page number is zero or less", "phalcon/paginator/adapter/model.zep", 94); return; } n = zephir_fast_count_int(items TSRMLS_CC); @@ -117347,9 +123188,9 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(pageItems); array_init(pageItems); if (zephir_safe_mod_long_long(n, show TSRMLS_CC) != 0) { - pagesTotal = (int) ((zephir_safe_div_long_long(n, show TSRMLS_CC) + (double) (1))); + totalPages = (int) ((zephir_safe_div_long_long(n, show TSRMLS_CC) + (double) (1))); } else { - pagesTotal = (int) (zephir_safe_div_long_long(n, show TSRMLS_CC)); + totalPages = (int) (zephir_safe_div_long_long(n, show TSRMLS_CC)); } if (n > 0) { if (start <= n) { @@ -117366,23 +123207,25 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { } i = 1; while (1) { - ZEPHIR_CALL_METHOD(&valid, items, "valid", &_3); + ZEPHIR_CALL_METHOD(&_3, items, "valid", NULL); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(valid)) { + if (!(zephir_is_true(_3))) { break; } ZEPHIR_CALL_METHOD(&_4, items, "current", &_5); zephir_check_call_status(); - zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 162); + zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 121); if (i >= show) { break; } i++; + ZEPHIR_CALL_METHOD(NULL, items, "next", &_6); + zephir_check_call_status(); } } next = (pageNumber + 1); - if (next > pagesTotal) { - next = pagesTotal; + if (next > totalPages) { + next = totalPages; } if (pageNumber > 1) { before = (pageNumber - 1); @@ -117392,29 +123235,29 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(page); object_init(page); zephir_update_property_zval(page, SL("items"), pageItems TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, 1); - zephir_update_property_zval(page, SL("first"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, before); - zephir_update_property_zval(page, SL("before"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pageNumber); - zephir_update_property_zval(page, SL("current"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pagesTotal); - zephir_update_property_zval(page, SL("last"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, next); - zephir_update_property_zval(page, SL("next"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pagesTotal); - zephir_update_property_zval(page, SL("total_pages"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, n); - zephir_update_property_zval(page, SL("total_items"), _6 TSRMLS_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _6 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, 1); + zephir_update_property_zval(page, SL("first"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, before); + zephir_update_property_zval(page, SL("before"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, pageNumber); + zephir_update_property_zval(page, SL("current"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("last"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, next); + zephir_update_property_zval(page, SL("next"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("total_pages"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, n); + zephir_update_property_zval(page, SL("total_items"), _7 TSRMLS_CC); + _7 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _7 TSRMLS_CC); RETURN_CCTOR(page); } @@ -117435,14 +123278,10 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_nativearray_method_entry, 0); - - zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_nativearray_method_entry, 0); zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_nativearray_ce, SL("_page"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_nativearray_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; @@ -117470,61 +123309,21 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, __construct) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage) { - - zval *page_param = NULL, *_0; - int page; - - zephir_fetch_params(0, 1, 0, &page_param); - - page = zephir_get_intval(page_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, page); - zephir_update_property_this(this_ptr, SL("_page"), _0 TSRMLS_CC); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setLimit) { - - zval *limitRows_param = NULL, *_0; - int limitRows; - - zephir_fetch_params(0, 1, 0, &limitRows_param); - - limitRows = zephir_get_intval(limitRows_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, limitRows); - zephir_update_property_this(this_ptr, SL("_limitRows"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getLimit) { - - - RETURN_MEMBER(this_ptr, "_limitRows"); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { zephir_nts_static zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; double roundedTotal; int show, pageNumber, totalPages, number, before, next, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *page, *_0, *_1, _2 = zval_used_for_init, *_3 = NULL, _5, *_6 = NULL, *_8; + zval *config, *items = NULL, *page, *_0, *_1, _2 = zval_used_for_init, *_3 = NULL, _5, *_6 = NULL, *_8; ZEPHIR_MM_GROW(); ZEPHIR_OBS_VAR(config); zephir_read_property_this(&config, this_ptr, SL("_config"), PH_NOISY_CC); ZEPHIR_OBS_VAR(items); - zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/nativearray.zep", 120 TSRMLS_CC); + zephir_array_fetch_string(&items, config, SL("data"), PH_NOISY, "phalcon/paginator/adapter/nativearray.zep", 87 TSRMLS_CC); if (Z_TYPE_P(items) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/nativearray.zep", 123); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/paginator/adapter/nativearray.zep", 90); return; } ZEPHIR_OBS_VAR(_0); @@ -117536,8 +123335,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { if (pageNumber <= 0) { pageNumber = 1; } - ZEPHIR_INIT_VAR(page); - object_init(page); number = zephir_fast_count_int(items TSRMLS_CC); ZEPHIR_SINIT_VAR(_2); ZVAL_LONG(&_2, show); @@ -117554,20 +123351,20 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZVAL_LONG(&_5, show); ZEPHIR_CALL_FUNCTION(&_6, "array_slice", &_7, items, &_2, &_5); zephir_check_call_status(); - zephir_update_property_zval(page, SL("items"), _6 TSRMLS_CC); + ZEPHIR_CPY_WRT(items, _6); if (pageNumber < totalPages) { next = (pageNumber + 1); } else { next = totalPages; } - ZEPHIR_INIT_ZVAL_NREF(_8); - ZVAL_LONG(_8, next); - zephir_update_property_zval(page, SL("next"), _8 TSRMLS_CC); if (pageNumber > 1) { before = (pageNumber - 1); } else { before = 1; } + ZEPHIR_INIT_VAR(page); + object_init(page); + zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); ZVAL_LONG(_8, 1); zephir_update_property_zval(page, SL("first"), _8 TSRMLS_CC); @@ -117581,6 +123378,9 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZVAL_LONG(_8, totalPages); zephir_update_property_zval(page, SL("last"), _8 TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); + ZVAL_LONG(_8, next); + zephir_update_property_zval(page, SL("next"), _8 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_8); ZVAL_LONG(_8, totalPages); zephir_update_property_zval(page, SL("total_pages"), _8 TSRMLS_CC); ZEPHIR_INIT_ZVAL_NREF(_8); @@ -117608,16 +123408,12 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate) { ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_querybuilder_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_ce, phalcon_paginator_adapter_querybuilder_method_entry, 0); zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_config"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_builder"), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("_limitRows"), ZEND_ACC_PROTECTED TSRMLS_CC); - - zend_declare_property_long(phalcon_paginator_adapter_querybuilder_ce, SL("_page"), 1, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_class_implements(phalcon_paginator_adapter_querybuilder_ce TSRMLS_CC, 1, phalcon_paginator_adapterinterface_ce); return SUCCESS; @@ -117638,20 +123434,18 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { zephir_update_property_this(this_ptr, SL("_config"), config TSRMLS_CC); ZEPHIR_OBS_VAR(builder); if (!(zephir_array_isset_string_fetch(&builder, config, SS("builder"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/paginator/adapter/querybuilder.zep", 76); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/paginator/adapter/querybuilder.zep", 67); return; - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, builder); - zephir_check_call_status(); } ZEPHIR_OBS_VAR(limit); if (!(zephir_array_isset_string_fetch(&limit, config, SS("limit"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/paginator/adapter/querybuilder.zep", 82); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/paginator/adapter/querybuilder.zep", 71); return; - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, limit); - zephir_check_call_status(); } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, builder); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, limit); + zephir_check_call_status(); ZEPHIR_OBS_VAR(page); if (zephir_array_isset_string_fetch(&page, config, SS("page"), 0 TSRMLS_CC)) { ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcurrentpage", NULL, page); @@ -117661,23 +123455,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage) { - - zval *currentPage_param = NULL, *_0; - int currentPage; - - zephir_fetch_params(0, 1, 0, ¤tPage_param); - - currentPage = zephir_get_intval(currentPage_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, currentPage); - zephir_update_property_this(this_ptr, SL("_page"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) { @@ -117685,30 +123462,6 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) { } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setLimit) { - - zval *limitRows_param = NULL, *_0; - int limitRows; - - zephir_fetch_params(0, 1, 0, &limitRows_param); - - limitRows = zephir_get_intval(limitRows_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(_0, limitRows); - zephir_update_property_this(this_ptr, SL("_limitRows"), _0 TSRMLS_CC); - RETURN_THISW(); - -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getLimit) { - - - RETURN_MEMBER(this_ptr, "_limitRows"); - -} - static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder) { zval *builder; @@ -117732,7 +123485,7 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder) { static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { int numberPage, before, ZEPHIR_LAST_CALL_STATUS; - zval *originalBuilder, *builder, *totalBuilder, *totalPages, *limit, *number, *query = NULL, *page, *items = NULL, *totalQuery = NULL, *result = NULL, *row = NULL, *rowcount, *next = NULL, *_0, *_1, *_2 = NULL, *_3, _4, _5; + zval *originalBuilder, *builder, *totalBuilder, *totalPages, *limit, *number, *query = NULL, *page, *items = NULL, *totalQuery = NULL, *result = NULL, *row = NULL, *rowcount, *next = NULL, *_0, *_1 = NULL, *_2, _3, _4, *_5; ZEPHIR_MM_GROW(); @@ -117765,30 +123518,21 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { } ZEPHIR_CALL_METHOD(&query, builder, "getquery", NULL); zephir_check_call_status(); - ZEPHIR_INIT_VAR(page); - object_init(page); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, 1); - zephir_update_property_zval(page, SL("first"), _1 TSRMLS_CC); if (numberPage == 1) { before = 1; } else { before = (numberPage - 1); } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, before); - zephir_update_property_zval(page, SL("before"), _1 TSRMLS_CC); ZEPHIR_CALL_METHOD(&items, query, "execute", NULL); zephir_check_call_status(); - zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); - ZEPHIR_INIT_VAR(_2); - ZVAL_STRING(_2, "COUNT(*) [rowcount]", ZEPHIR_TEMP_PARAM_COPY); - ZEPHIR_CALL_METHOD(NULL, totalBuilder, "columns", NULL, _2); - zephir_check_temp_parameter(_2); + ZEPHIR_INIT_VAR(_1); + ZVAL_STRING(_1, "COUNT(*) [rowcount]", ZEPHIR_TEMP_PARAM_COPY); + ZEPHIR_CALL_METHOD(NULL, totalBuilder, "columns", NULL, _1); + zephir_check_temp_parameter(_1); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(_2); - ZVAL_NULL(_2); - ZEPHIR_CALL_METHOD(NULL, totalBuilder, "orderby", NULL, _2); + ZEPHIR_INIT_NVAR(_1); + ZVAL_NULL(_1); + ZEPHIR_CALL_METHOD(NULL, totalBuilder, "orderby", NULL, _1); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&totalQuery, totalBuilder, "getquery", NULL); zephir_check_call_status(); @@ -117796,31 +123540,40 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&row, result, "getfirst", NULL); zephir_check_call_status(); - ZEPHIR_OBS_VAR(_3); - zephir_read_property(&_3, row, SL("rowcount"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(_2); + zephir_read_property(&_2, row, SL("rowcount"), PH_NOISY_CC); ZEPHIR_INIT_VAR(rowcount); - ZVAL_LONG(rowcount, zephir_get_intval(_3)); + ZVAL_LONG(rowcount, zephir_get_intval(_2)); + ZEPHIR_SINIT_VAR(_3); + div_function(&_3, rowcount, limit TSRMLS_CC); ZEPHIR_SINIT_VAR(_4); - div_function(&_4, rowcount, limit TSRMLS_CC); - ZEPHIR_SINIT_VAR(_5); - ZVAL_DOUBLE(&_5, zephir_ceil(&_4 TSRMLS_CC)); + ZVAL_DOUBLE(&_4, zephir_ceil(&_3 TSRMLS_CC)); ZEPHIR_INIT_VAR(totalPages); - ZVAL_LONG(totalPages, zephir_get_intval(&_5)); + ZVAL_LONG(totalPages, zephir_get_intval(&_4)); if (ZEPHIR_GT_LONG(totalPages, numberPage)) { ZEPHIR_INIT_VAR(next); ZVAL_LONG(next, (numberPage + 1)); } else { ZEPHIR_CPY_WRT(next, totalPages); } - zephir_update_property_zval(page, SL("next"), next TSRMLS_CC); + ZEPHIR_INIT_VAR(page); + object_init(page); + zephir_update_property_zval(page, SL("items"), items TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, 1); + zephir_update_property_zval(page, SL("first"), _5 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, before); + zephir_update_property_zval(page, SL("before"), _5 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_5); + ZVAL_LONG(_5, numberPage); + zephir_update_property_zval(page, SL("current"), _5 TSRMLS_CC); zephir_update_property_zval(page, SL("last"), totalPages TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(_1, numberPage); - zephir_update_property_zval(page, SL("current"), _1 TSRMLS_CC); + zephir_update_property_zval(page, SL("next"), next TSRMLS_CC); zephir_update_property_zval(page, SL("total_pages"), totalPages TSRMLS_CC); zephir_update_property_zval(page, SL("total_items"), rowcount TSRMLS_CC); - _1 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _1 TSRMLS_CC); + _5 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _5 TSRMLS_CC); RETURN_CCTOR(page); } @@ -117925,10 +123678,11 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, connect) { static PHP_METHOD(Phalcon_Queue_Beanstalk, put) { + zend_bool _4; zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_4; + zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_5; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &data, &options); @@ -117966,15 +123720,15 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, put) { ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_3); zephir_check_call_status(); zephir_array_fetch_long(&status, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 128 TSRMLS_CC); - if (ZEPHIR_IS_STRING(status, "INSERTED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 131 TSRMLS_CC); - RETURN_CTOR(_4); + _4 = !ZEPHIR_IS_STRING(status, "INSERTED"); + if (_4) { + _4 = !ZEPHIR_IS_STRING(status, "BURIED"); } - if (ZEPHIR_IS_STRING(status, "BURIED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 135 TSRMLS_CC); - RETURN_CTOR(_4); + if (_4) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_5, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 134 TSRMLS_CC); + RETURN_CTOR(_5); } @@ -118002,20 +123756,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, reserve) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_0); zephir_check_call_status(); - zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 157 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_1, "RESERVED")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 153 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_1, "RESERVED")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); + zephir_check_call_status(); + RETURN_MM(); } @@ -118048,12 +123802,12 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, choose) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 181 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "USING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 182 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 176 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "USING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 180 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -118086,12 +123840,12 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, watch) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 198 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "WATCHING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 199 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 193 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "WATCHING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 197 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -118110,20 +123864,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, peekReady) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 215 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 210 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -118142,20 +123896,20 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, peekBuried) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 232 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 227 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -118208,9 +123962,9 @@ static PHP_METHOD(Phalcon_Queue_Beanstalk, read) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_2, "stream_get_meta_data", &_3, connection); zephir_check_call_status(); - zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 273 TSRMLS_CC); + zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 268 TSRMLS_CC); if (zephir_is_true(_4)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 274); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 269); return; } ZEPHIR_SINIT_NVAR(_0); @@ -118636,12 +124390,10 @@ static PHP_METHOD(Phalcon_Session_Adapter, get) { ZEPHIR_OBS_VAR(value); zephir_get_global(&_SESSION, SS("_SESSION") TSRMLS_CC); if (zephir_array_isset_fetch(&value, _SESSION, key, 0 TSRMLS_CC)) { - if (!(ZEPHIR_IS_EMPTY(value))) { - if (remove) { - zephir_array_unset(&_SESSION, key, PH_SEPARATE); - } - RETURN_CCTOR(value); + if (remove) { + zephir_array_unset(&_SESSION, key, PH_SEPARATE); } + RETURN_CCTOR(value); } RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); @@ -124345,6 +130097,7 @@ zend_class_entry *phalcon_validation_validatorinterface_ce; zend_class_entry *phalcon_mvc_model_validatorinterface_ce; zend_class_entry *phalcon_cache_backendinterface_ce; zend_class_entry *phalcon_cache_frontendinterface_ce; +zend_class_entry *phalcon_db_dialectinterface_ce; zend_class_entry *phalcon_dispatcherinterface_ce; zend_class_entry *phalcon_mvc_model_metadatainterface_ce; zend_class_entry *phalcon_annotations_adapterinterface_ce; @@ -124353,7 +130106,6 @@ zend_class_entry *phalcon_logger_adapterinterface_ce; zend_class_entry *phalcon_logger_formatterinterface_ce; zend_class_entry *phalcon_mvc_model_resultsetinterface_ce; zend_class_entry *phalcon_assets_filterinterface_ce; -zend_class_entry *phalcon_db_dialectinterface_ce; zend_class_entry *phalcon_diinterface_ce; zend_class_entry *phalcon_mvc_viewbaseinterface_ce; zend_class_entry *phalcon_paginator_adapterinterface_ce; @@ -124423,6 +130175,7 @@ zend_class_entry *phalcon_db_dialect_ce; zend_class_entry *phalcon_logger_adapter_ce; zend_class_entry *phalcon_logger_formatter_ce; zend_class_entry *phalcon_mvc_model_exception_ce; +zend_class_entry *phalcon_paginator_adapter_ce; zend_class_entry *phalcon_session_adapter_ce; zend_class_entry *phalcon_translate_adapter_ce; zend_class_entry *phalcon_assets_inline_ce; @@ -124705,6 +130458,7 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Mvc_Model_ValidatorInterface); ZEPHIR_INIT(Phalcon_Cache_BackendInterface); ZEPHIR_INIT(Phalcon_Cache_FrontendInterface); + ZEPHIR_INIT(Phalcon_Db_DialectInterface); ZEPHIR_INIT(Phalcon_DispatcherInterface); ZEPHIR_INIT(Phalcon_Mvc_Model_MetaDataInterface); ZEPHIR_INIT(Phalcon_Annotations_AdapterInterface); @@ -124713,7 +130467,6 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Logger_FormatterInterface); ZEPHIR_INIT(Phalcon_Mvc_Model_ResultsetInterface); ZEPHIR_INIT(Phalcon_Assets_FilterInterface); - ZEPHIR_INIT(Phalcon_Db_DialectInterface); ZEPHIR_INIT(Phalcon_DiInterface); ZEPHIR_INIT(Phalcon_Mvc_ViewBaseInterface); ZEPHIR_INIT(Phalcon_Paginator_AdapterInterface); @@ -124783,6 +130536,7 @@ static PHP_MINIT_FUNCTION(phalcon) ZEPHIR_INIT(Phalcon_Logger_Adapter); ZEPHIR_INIT(Phalcon_Logger_Formatter); ZEPHIR_INIT(Phalcon_Mvc_Model_Exception); + ZEPHIR_INIT(Phalcon_Paginator_Adapter); ZEPHIR_INIT(Phalcon_Session_Adapter); ZEPHIR_INIT(Phalcon_Translate_Adapter); ZEPHIR_INIT(Phalcon_Assets_Inline); diff --git a/build/safe/phalcon.zep.h b/build/safe/phalcon.zep.h index fb0c8902e23..6fe9fcc6d17 100644 --- a/build/safe/phalcon.zep.h +++ b/build/safe/phalcon.zep.h @@ -1604,6 +1604,8 @@ static PHP_METHOD(Phalcon_Cache_Backend_Memory, exists); static PHP_METHOD(Phalcon_Cache_Backend_Memory, increment); static PHP_METHOD(Phalcon_Cache_Backend_Memory, decrement); static PHP_METHOD(Phalcon_Cache_Backend_Memory, flush); +static PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize); +static PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_get, 0, 0, 1) ZEND_ARG_INFO(0, keyName) @@ -1640,6 +1642,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_decrement, 0, 0, 0) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_unserialize, 0, 0, 1) + ZEND_ARG_INFO(0, data) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, get, arginfo_phalcon_cache_backend_memory_get, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, save, arginfo_phalcon_cache_backend_memory_save, ZEND_ACC_PUBLIC) @@ -1649,6 +1655,8 @@ ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, increment, arginfo_phalcon_cache_backend_memory_increment, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, decrement, arginfo_phalcon_cache_backend_memory_decrement, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, flush, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, serialize, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, unserialize, arginfo_phalcon_cache_backend_memory_unserialize, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -2255,7 +2263,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_addmodules, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_handle, 0, 0, 0) - ZEND_ARG_INFO(0, arguments) + ZEND_ARG_ARRAY_INFO(0, arguments, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_setargument, 0, 0, 0) @@ -3211,13 +3219,13 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapter_pdo_query, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, bindParams) + ZEND_ARG_ARRAY_INFO(0, bindParams, 1) ZEND_ARG_INFO(0, bindTypes) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapter_pdo_execute, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, bindParams) + ZEND_ARG_ARRAY_INFO(0, bindParams, 1) ZEND_ARG_INFO(0, bindTypes) ZEND_END_ARG_INFO() @@ -3559,13 +3567,13 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_query, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, placeholders) + ZEND_ARG_ARRAY_INFO(0, placeholders, 1) ZEND_ARG_INFO(0, dataTypes) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_execute, 0, 0, 1) ZEND_ARG_INFO(0, sqlStatement) - ZEND_ARG_INFO(0, placeholders) + ZEND_ARG_ARRAY_INFO(0, placeholders, 1) ZEND_ARG_INFO(0, dataTypes) ZEND_END_ARG_INFO() @@ -3789,10 +3797,12 @@ zend_class_entry *phalcon_db_dialect_ce; ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect); +static PHP_METHOD(Phalcon_Db_Dialect, escape); static PHP_METHOD(Phalcon_Db_Dialect, limit); static PHP_METHOD(Phalcon_Db_Dialect, forUpdate); static PHP_METHOD(Phalcon_Db_Dialect, sharedLock); static PHP_METHOD(Phalcon_Db_Dialect, getColumnList); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn); static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression); static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable); static PHP_METHOD(Phalcon_Db_Dialect, select); @@ -3801,6 +3811,31 @@ static PHP_METHOD(Phalcon_Db_Dialect, supportsReleaseSavepoints); static PHP_METHOD(Phalcon_Db_Dialect, createSavepoint); static PHP_METHOD(Phalcon_Db_Dialect, releaseSavepoint); static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy); +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit); +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias); +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable); +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_escape, 0, 0, 1) + ZEND_ARG_INFO(0, str) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_limit, 0, 0, 2) ZEND_ARG_INFO(0, sqlQuery) @@ -3819,6 +3854,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getcolumnlist, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, columnList, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlcolumn, 0, 0, 1) + ZEND_ARG_INFO(0, column) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpression, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, expression, 0) ZEND_ARG_INFO(0, escapeChar) @@ -3845,11 +3884,116 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_rollbacksavepoint, 0, 0, 1) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionscalar, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionobject, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionqualified, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionbinaryoperations, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionunaryoperations, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionfunctioncall, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionlist, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionall, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressioncastvalue, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionconvertvalue, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, expression, 0) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionfrom, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionjoins, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionwhere, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressiongroupby, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionhaving, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionorderby, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_getsqlexpressionlimit, 0, 0, 1) + ZEND_ARG_INFO(0, expression) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparecolumnalias, 0, 0, 1) + ZEND_ARG_INFO(0, qualified) + ZEND_ARG_INFO(0, alias) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparetable, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) + ZEND_ARG_INFO(0, alias) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_preparequalified, 0, 0, 1) + ZEND_ARG_INFO(0, column) + ZEND_ARG_INFO(0, domain) + ZEND_ARG_INFO(0, escapeChar) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_db_dialect_method_entry) { + PHP_ME(Phalcon_Db_Dialect, escape, arginfo_phalcon_db_dialect_escape, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, limit, arginfo_phalcon_db_dialect_limit, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, forUpdate, arginfo_phalcon_db_dialect_forupdate, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, sharedLock, arginfo_phalcon_db_dialect_sharedlock, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, getColumnList, arginfo_phalcon_db_dialect_getcolumnlist, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlColumn, arginfo_phalcon_db_dialect_getsqlcolumn, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, getSqlExpression, arginfo_phalcon_db_dialect_getsqlexpression, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, getSqlTable, arginfo_phalcon_db_dialect_getsqltable, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Db_Dialect, select, arginfo_phalcon_db_dialect_select, ZEND_ACC_PUBLIC) @@ -3858,6 +4002,26 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_method_entry) { PHP_ME(Phalcon_Db_Dialect, createSavepoint, arginfo_phalcon_db_dialect_createsavepoint, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, releaseSavepoint, arginfo_phalcon_db_dialect_releasesavepoint, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect, rollbackSavepoint, arginfo_phalcon_db_dialect_rollbacksavepoint, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionScalar, arginfo_phalcon_db_dialect_getsqlexpressionscalar, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionObject, arginfo_phalcon_db_dialect_getsqlexpressionobject, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionQualified, arginfo_phalcon_db_dialect_getsqlexpressionqualified, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations, arginfo_phalcon_db_dialect_getsqlexpressionbinaryoperations, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations, arginfo_phalcon_db_dialect_getsqlexpressionunaryoperations, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionFunctionCall, arginfo_phalcon_db_dialect_getsqlexpressionfunctioncall, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionList, arginfo_phalcon_db_dialect_getsqlexpressionlist, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionAll, arginfo_phalcon_db_dialect_getsqlexpressionall, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionCastValue, arginfo_phalcon_db_dialect_getsqlexpressioncastvalue, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionConvertValue, arginfo_phalcon_db_dialect_getsqlexpressionconvertvalue, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionFrom, arginfo_phalcon_db_dialect_getsqlexpressionfrom, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionJoins, arginfo_phalcon_db_dialect_getsqlexpressionjoins, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionWhere, arginfo_phalcon_db_dialect_getsqlexpressionwhere, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionGroupBy, arginfo_phalcon_db_dialect_getsqlexpressiongroupby, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionHaving, arginfo_phalcon_db_dialect_getsqlexpressionhaving, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionOrderBy, arginfo_phalcon_db_dialect_getsqlexpressionorderby, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, getSqlExpressionLimit, arginfo_phalcon_db_dialect_getsqlexpressionlimit, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(Phalcon_Db_Dialect, prepareColumnAlias, arginfo_phalcon_db_dialect_preparecolumnalias, ZEND_ACC_PROTECTED) + PHP_ME(Phalcon_Db_Dialect, prepareTable, arginfo_phalcon_db_dialect_preparetable, ZEND_ACC_PROTECTED) + PHP_ME(Phalcon_Db_Dialect, prepareQualified, arginfo_phalcon_db_dialect_preparequalified, ZEND_ACC_PROTECTED) PHP_FE_END }; @@ -3875,7 +4039,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createTable); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, createView); @@ -3888,6 +4051,7 @@ static PHP_METHOD(Phalcon_Db_Dialect_MySQL, listViews); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeIndexes); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, describeReferences); static PHP_METHOD(Phalcon_Db_Dialect_MySQL, tableOptions); +static PHP_METHOD(Phalcon_Db_Dialect_MySQL, _getTableOptions); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_getcolumndefinition, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) @@ -3946,29 +4110,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropforeignkey, 0, 0, 3) ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4012,6 +4172,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql_tableoptions, 0, 0, 1) ZEND_ARG_INFO(0, schema) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_mysql__gettableoptions, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, definition, 0) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, getColumnDefinition, arginfo_phalcon_db_dialect_mysql_getcolumndefinition, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, addColumn, arginfo_phalcon_db_dialect_mysql_addcolumn, ZEND_ACC_PUBLIC) @@ -4023,7 +4187,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, dropPrimaryKey, arginfo_phalcon_db_dialect_mysql_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, addForeignKey, arginfo_phalcon_db_dialect_mysql_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, dropForeignKey, arginfo_phalcon_db_dialect_mysql_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_MySQL, _getTableOptions, arginfo_phalcon_db_dialect_mysql__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_MySQL, createTable, arginfo_phalcon_db_dialect_mysql_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, dropTable, arginfo_phalcon_db_dialect_mysql_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, createView, arginfo_phalcon_db_dialect_mysql_createview, ZEND_ACC_PUBLIC) @@ -4036,6 +4199,7 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_mysql_method_entry) { PHP_ME(Phalcon_Db_Dialect_MySQL, describeIndexes, arginfo_phalcon_db_dialect_mysql_describeindexes, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, describeReferences, arginfo_phalcon_db_dialect_mysql_describereferences, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_MySQL, tableOptions, arginfo_phalcon_db_dialect_mysql_tableoptions, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_MySQL, _getTableOptions, arginfo_phalcon_db_dialect_mysql__gettableoptions, ZEND_ACC_PROTECTED) PHP_FE_END }; @@ -4043,6 +4207,184 @@ zend_class_entry *phalcon_db_dialect_oracle_ce; ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Oracle); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, limit); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, getColumnDefinition); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, modifyColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropColumn); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addIndex); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropIndex); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addPrimaryKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropPrimaryKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, addForeignKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropForeignKey); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createTable); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropTable); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, createView); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, dropView); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, viewExists); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listViews); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableExists); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeColumns); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, listTables); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeIndexes); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, describeReferences); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, tableOptions); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsSavepoints); +static PHP_METHOD(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_limit, 0, 0, 2) + ZEND_ARG_INFO(0, sqlQuery) + ZEND_ARG_INFO(0, number) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_getcolumndefinition, 0, 0, 1) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addcolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_modifycolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, column, Phalcon\\Db\\ColumnInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropcolumn, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, columnName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addindex, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, index, Phalcon\\Db\\IndexInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropindex, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, indexName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addprimarykey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, index, Phalcon\\Db\\IndexInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropprimarykey, 0, 0, 2) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_addforeignkey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_OBJ_INFO(0, reference, Phalcon\\Db\\ReferenceInterface, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropforeignkey, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, referenceName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_createtable, 0, 0, 3) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_droptable, 0, 0, 2) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_createview, 0, 0, 2) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_dropview, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_viewexists, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_listviews, 0, 0, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_tableexists, 0, 0, 1) + ZEND_ARG_INFO(0, tableName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describecolumns, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_listtables, 0, 0, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describeindexes, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_describereferences, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_oracle_tableoptions, 0, 0, 1) + ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, schema) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_db_dialect_oracle_method_entry) { + PHP_ME(Phalcon_Db_Dialect_Oracle, limit, arginfo_phalcon_db_dialect_oracle_limit, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, getColumnDefinition, arginfo_phalcon_db_dialect_oracle_getcolumndefinition, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addColumn, arginfo_phalcon_db_dialect_oracle_addcolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, modifyColumn, arginfo_phalcon_db_dialect_oracle_modifycolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropColumn, arginfo_phalcon_db_dialect_oracle_dropcolumn, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addIndex, arginfo_phalcon_db_dialect_oracle_addindex, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropIndex, arginfo_phalcon_db_dialect_oracle_dropindex, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addPrimaryKey, arginfo_phalcon_db_dialect_oracle_addprimarykey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropPrimaryKey, arginfo_phalcon_db_dialect_oracle_dropprimarykey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, addForeignKey, arginfo_phalcon_db_dialect_oracle_addforeignkey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropForeignKey, arginfo_phalcon_db_dialect_oracle_dropforeignkey, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, createTable, arginfo_phalcon_db_dialect_oracle_createtable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropTable, arginfo_phalcon_db_dialect_oracle_droptable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, createView, arginfo_phalcon_db_dialect_oracle_createview, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, dropView, arginfo_phalcon_db_dialect_oracle_dropview, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, viewExists, arginfo_phalcon_db_dialect_oracle_viewexists, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, listViews, arginfo_phalcon_db_dialect_oracle_listviews, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, tableExists, arginfo_phalcon_db_dialect_oracle_tableexists, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeColumns, arginfo_phalcon_db_dialect_oracle_describecolumns, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, listTables, arginfo_phalcon_db_dialect_oracle_listtables, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeIndexes, arginfo_phalcon_db_dialect_oracle_describeindexes, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, describeReferences, arginfo_phalcon_db_dialect_oracle_describereferences, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, tableOptions, arginfo_phalcon_db_dialect_oracle_tableoptions, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, supportsSavepoints, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Db_Dialect_Oracle, supportsReleaseSavepoints, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; zend_class_entry *phalcon_db_dialect_postgresql_ce; @@ -4058,7 +4400,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView); @@ -4129,29 +4470,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropforeignkey, 0, ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_postgresql_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4206,7 +4543,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_postgresql_method_entry) { PHP_ME(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey, arginfo_phalcon_db_dialect_postgresql_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, addForeignKey, arginfo_phalcon_db_dialect_postgresql_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, dropForeignKey, arginfo_phalcon_db_dialect_postgresql_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_Postgresql, _getTableOptions, arginfo_phalcon_db_dialect_postgresql__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_Postgresql, createTable, arginfo_phalcon_db_dialect_postgresql_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, dropTable, arginfo_phalcon_db_dialect_postgresql_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Postgresql, createView, arginfo_phalcon_db_dialect_postgresql_createview, ZEND_ACC_PUBLIC) @@ -4236,7 +4572,6 @@ static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey); -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, _getTableOptions); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable); static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView); @@ -4308,29 +4643,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropforeignkey, 0, 0, 3 ZEND_ARG_INFO(0, referenceName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite__gettableoptions, 0, 0, 1) - ZEND_ARG_INFO(0, definition) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createtable, 0, 0, 3) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_droptable, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_droptable, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createview, 0, 0, 3) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_createview, 0, 0, 2) ZEND_ARG_INFO(0, viewName) - ZEND_ARG_INFO(0, definition) + ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropview, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialect_sqlite_dropview, 0, 0, 1) ZEND_ARG_INFO(0, viewName) ZEND_ARG_INFO(0, schemaName) ZEND_ARG_INFO(0, ifExists) @@ -4389,7 +4720,6 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialect_sqlite_method_entry) { PHP_ME(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey, arginfo_phalcon_db_dialect_sqlite_dropprimarykey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, addForeignKey, arginfo_phalcon_db_dialect_sqlite_addforeignkey, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, dropForeignKey, arginfo_phalcon_db_dialect_sqlite_dropforeignkey, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Db_Dialect_Sqlite, _getTableOptions, arginfo_phalcon_db_dialect_sqlite__gettableoptions, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Db_Dialect_Sqlite, createTable, arginfo_phalcon_db_dialect_sqlite_createtable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, dropTable, arginfo_phalcon_db_dialect_sqlite_droptable, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Db_Dialect_Sqlite, createView, arginfo_phalcon_db_dialect_sqlite_createview, ZEND_ACC_PUBLIC) @@ -4494,16 +4824,33 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_createtable, 0, 0, 3) ZEND_ARG_ARRAY_INFO(0, definition, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_createview, 0, 0, 2) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_ARRAY_INFO(0, definition, 0) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_droptable, 0, 0, 2) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_dropview, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) + ZEND_ARG_INFO(0, ifExists) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_tableexists, 0, 0, 1) ZEND_ARG_INFO(0, tableName) ZEND_ARG_INFO(0, schemaName) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_viewexists, 0, 0, 1) + ZEND_ARG_INFO(0, viewName) + ZEND_ARG_INFO(0, schemaName) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_dialectinterface_describecolumns, 0, 0, 1) ZEND_ARG_INFO(0, table) ZEND_ARG_INFO(0, schema) @@ -4557,8 +4904,11 @@ ZEPHIR_INIT_FUNCS(phalcon_db_dialectinterface_method_entry) { PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, addForeignKey, arginfo_phalcon_db_dialectinterface_addforeignkey) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropForeignKey, arginfo_phalcon_db_dialectinterface_dropforeignkey) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, createTable, arginfo_phalcon_db_dialectinterface_createtable) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, createView, arginfo_phalcon_db_dialectinterface_createview) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropTable, arginfo_phalcon_db_dialectinterface_droptable) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, dropView, arginfo_phalcon_db_dialectinterface_dropview) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, tableExists, arginfo_phalcon_db_dialectinterface_tableexists) + PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, viewExists, arginfo_phalcon_db_dialectinterface_viewexists) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, describeColumns, arginfo_phalcon_db_dialectinterface_describecolumns) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, listTables, arginfo_phalcon_db_dialectinterface_listtables) PHP_ABSTRACT_ME(Phalcon_Db_DialectInterface, describeIndexes, arginfo_phalcon_db_dialectinterface_describeindexes) @@ -4985,8 +5335,8 @@ static PHP_METHOD(Phalcon_Debug_Dump, getStyle); static PHP_METHOD(Phalcon_Debug_Dump, setStyles); static PHP_METHOD(Phalcon_Debug_Dump, one); static PHP_METHOD(Phalcon_Debug_Dump, output); -static PHP_METHOD(Phalcon_Debug_Dump, var); -static PHP_METHOD(Phalcon_Debug_Dump, vars); +static PHP_METHOD(Phalcon_Debug_Dump, variable); +static PHP_METHOD(Phalcon_Debug_Dump, variables); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_setdetailed, 0, 0, 1) ZEND_ARG_INFO(0, detailed) @@ -5016,7 +5366,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_output, 0, 0, 1) ZEND_ARG_INFO(0, tab) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_var, 0, 0, 1) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_debug_dump_variable, 0, 0, 1) ZEND_ARG_INFO(0, variable) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() @@ -5030,8 +5380,8 @@ ZEPHIR_INIT_FUNCS(phalcon_debug_dump_method_entry) { PHP_ME(Phalcon_Debug_Dump, setStyles, arginfo_phalcon_debug_dump_setstyles, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Debug_Dump, one, arginfo_phalcon_debug_dump_one, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Debug_Dump, output, arginfo_phalcon_debug_dump_output, ZEND_ACC_PROTECTED) - PHP_ME(Phalcon_Debug_Dump, var, arginfo_phalcon_debug_dump_var, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Debug_Dump, vars, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Debug_Dump, variable, arginfo_phalcon_debug_dump_variable, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Debug_Dump, variables, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -6987,6 +7337,7 @@ static PHP_METHOD(Phalcon_Http_Request, get); static PHP_METHOD(Phalcon_Http_Request, getPost); static PHP_METHOD(Phalcon_Http_Request, getPut); static PHP_METHOD(Phalcon_Http_Request, getQuery); +static PHP_METHOD(Phalcon_Http_Request, getHelper); static PHP_METHOD(Phalcon_Http_Request, getServer); static PHP_METHOD(Phalcon_Http_Request, has); static PHP_METHOD(Phalcon_Http_Request, hasPost); @@ -7068,6 +7419,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getquery, 0, 0, 0) ZEND_ARG_INFO(0, noRecursive) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_gethelper, 0, 0, 1) + ZEND_ARG_ARRAY_INFO(0, source, 0) + ZEND_ARG_INFO(0, name) + ZEND_ARG_INFO(0, filters) + ZEND_ARG_INFO(0, defaultValue) + ZEND_ARG_INFO(0, notAllowEmpty) + ZEND_ARG_INFO(0, noRecursive) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getserver, 0, 0, 1) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() @@ -7114,7 +7474,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_hasfilehelper, 0, 0, 2) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_getuploadedfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_request_smoothfiles, 0, 0, 6) @@ -7143,6 +7503,7 @@ ZEPHIR_INIT_FUNCS(phalcon_http_request_method_entry) { PHP_ME(Phalcon_Http_Request, getPost, arginfo_phalcon_http_request_getpost, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, getPut, arginfo_phalcon_http_request_getput, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, getQuery, arginfo_phalcon_http_request_getquery, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Http_Request, getHelper, arginfo_phalcon_http_request_gethelper, ZEND_ACC_PROTECTED) PHP_ME(Phalcon_Http_Request, getServer, arginfo_phalcon_http_request_getserver, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, has, arginfo_phalcon_http_request_has, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Http_Request, hasPost, arginfo_phalcon_http_request_haspost, ZEND_ACC_PUBLIC) @@ -7314,11 +7675,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_ismethod, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_hasfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_getuploadedfiles, 0, 0, 0) - ZEND_ARG_INFO(0, notErrored) + ZEND_ARG_INFO(0, onlySuccessful) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_requestinterface_method_entry) { @@ -7631,7 +7992,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers_remove, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headers_method_entry) { @@ -7664,7 +8025,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface_setraw, 0, ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headersinterface_method_entry) { @@ -7681,7 +8042,7 @@ zend_class_entry *phalcon_http_responseinterface_ce; ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface); -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 1) ZEND_ARG_INFO(0, code) ZEND_ARG_INFO(0, message) ZEND_END_ARG_INFO() @@ -9106,19 +9467,19 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_findbyid, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_findfirst, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_find, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_count, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_aggregate, 0, 0, 1) - ZEND_ARG_INFO(0, parameters) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_aggregate, 0, 0, 0) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collection_summatory, 0, 0, 1) @@ -9414,15 +9775,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_findbyid, 0, 0, 1 ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_findfirst, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_find, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_count, 0, 0, 0) - ZEND_ARG_INFO(0, parameters) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_collectioninterface_method_entry) { @@ -12851,6 +13212,7 @@ zend_class_entry *phalcon_mvc_model_resultset_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek); @@ -12867,7 +13229,6 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, isFresh); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setHydrateMode); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getHydrateMode); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update); static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete); @@ -12917,6 +13278,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset, next, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset, valid, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, key, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, rewind, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset, seek, arginfo_phalcon_mvc_model_resultset_seek, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) @@ -12933,7 +13295,6 @@ ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset, setHydrateMode, arginfo_phalcon_mvc_model_resultset_sethydratemode, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, getHydrateMode, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, getCache, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Mvc_Model_Resultset, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset, getMessages, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, update, arginfo_phalcon_mvc_model_resultset_update, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset, delete, arginfo_phalcon_mvc_model_resultset_delete, ZEND_ACC_PUBLIC) @@ -12946,7 +13307,7 @@ zend_class_entry *phalcon_mvc_model_resultset_complex_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Complex); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, valid); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, serialize); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize); @@ -12963,7 +13324,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_complex_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, __construct, arginfo_phalcon_mvc_model_resultset_complex___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, valid, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, toArray, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, serialize, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Complex, unserialize, arginfo_phalcon_mvc_model_resultset_complex_unserialize, ZEND_ACC_PUBLIC) @@ -12975,7 +13336,7 @@ zend_class_entry *phalcon_mvc_model_resultset_simple_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Simple); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct); -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, valid); +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize); static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize); @@ -12998,7 +13359,7 @@ ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_mvc_model_resultset_simple_method_entry) { PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, __construct, arginfo_phalcon_mvc_model_resultset_simple___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, valid, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, current, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, toArray, arginfo_phalcon_mvc_model_resultset_simple_toarray, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, serialize, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Mvc_Model_Resultset_Simple, unserialize, arginfo_phalcon_mvc_model_resultset_simple_unserialize, ZEND_ACC_PUBLIC) @@ -13315,6 +13676,21 @@ zend_class_entry *phalcon_mvc_model_validationfailed_ce; ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_validationfailed___construct, 0, 0, 2) + ZEND_ARG_OBJ_INFO(0, model, Phalcon\\Mvc\\Model, 0) + ZEND_ARG_ARRAY_INFO(0, validationMessages, 0) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_mvc_model_validationfailed_method_entry) { + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, __construct, arginfo_phalcon_mvc_model_validationfailed___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, getModel, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Mvc_Model_ValidationFailed, getMessages, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; zend_class_entry *phalcon_mvc_model_validator_ce; @@ -14841,7 +15217,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_convertencoding, 0, ZEND_ARG_INFO(0, to) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_slice, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_slice, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_ARG_INFO(0, start) ZEND_ARG_INFO(0, end) @@ -15032,12 +15408,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler_compilemacr ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler_compilecall, 0, 0, 2) - ZEND_ARG_INFO(0, statement) + ZEND_ARG_ARRAY_INFO(0, statement, 0) ZEND_ARG_INFO(0, extendsMode) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_view_engine_volt_compiler__statementlist, 0, 0, 1) - ZEND_ARG_INFO(0, statements) + ZEND_ARG_ARRAY_INFO(0, statements, 0) ZEND_ARG_INFO(0, extendsMode) ZEND_END_ARG_INFO() @@ -15394,33 +15770,42 @@ ZEPHIR_INIT_FUNCS(phalcon_mvc_viewinterface_method_entry) { PHP_FE_END }; +zend_class_entry *phalcon_paginator_adapter_ce; + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter); + +static PHP_METHOD(Phalcon_Paginator_Adapter, setCurrentPage); +static PHP_METHOD(Phalcon_Paginator_Adapter, setLimit); +static PHP_METHOD(Phalcon_Paginator_Adapter, getLimit); + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_setcurrentpage, 0, 0, 1) + ZEND_ARG_INFO(0, page) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_setlimit, 0, 0, 1) + ZEND_ARG_INFO(0, limitRows) +ZEND_END_ARG_INFO() + +ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_method_entry) { + PHP_ME(Phalcon_Paginator_Adapter, setCurrentPage, arginfo_phalcon_paginator_adapter_setcurrentpage, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Paginator_Adapter, setLimit, arginfo_phalcon_paginator_adapter_setlimit, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Paginator_Adapter, getLimit, NULL, ZEND_ACC_PUBLIC) + PHP_FE_END +}; + zend_class_entry *phalcon_paginator_adapter_model_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model); static PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model___construct, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, page) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_model_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_model_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_Model, __construct, arginfo_phalcon_paginator_adapter_model___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_Model, setCurrentPage, arginfo_phalcon_paginator_adapter_model_setcurrentpage, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_Model, setLimit, arginfo_phalcon_paginator_adapter_model_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_Model, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_Model, getPaginate, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -15430,28 +15815,14 @@ zend_class_entry *phalcon_paginator_adapter_nativearray_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray); static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, getPaginate); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray___construct, 0, 0, 1) ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, page) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_nativearray_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_nativearray_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_NativeArray, __construct, arginfo_phalcon_paginator_adapter_nativearray___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, setCurrentPage, arginfo_phalcon_paginator_adapter_nativearray_setcurrentpage, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, setLimit, arginfo_phalcon_paginator_adapter_nativearray_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_NativeArray, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_NativeArray, getPaginate, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -15461,10 +15832,7 @@ zend_class_entry *phalcon_paginator_adapter_querybuilder_ce; ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setLimit); -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getLimit); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder); static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate); @@ -15473,24 +15841,13 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder___construc ZEND_ARG_ARRAY_INFO(0, config, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setcurrentpage, 0, 0, 1) - ZEND_ARG_INFO(0, currentPage) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setlimit, 0, 0, 1) - ZEND_ARG_INFO(0, limitRows) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_paginator_adapter_querybuilder_setquerybuilder, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, builder, Phalcon\\Mvc\\Model\\Query\\Builder, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_paginator_adapter_querybuilder_method_entry) { PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, __construct, arginfo_phalcon_paginator_adapter_querybuilder___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setCurrentPage, arginfo_phalcon_paginator_adapter_querybuilder_setcurrentpage, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setLimit, arginfo_phalcon_paginator_adapter_querybuilder_setlimit, ZEND_ACC_PUBLIC) - PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getLimit, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder, arginfo_phalcon_paginator_adapter_querybuilder_setquerybuilder, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder, NULL, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Paginator_Adapter_QueryBuilder, getPaginate, NULL, ZEND_ACC_PUBLIC) diff --git a/ext/kernel/globals.h b/ext/kernel/globals.h index a15059ab5a4..25dd1bac719 100644 --- a/ext/kernel/globals.h +++ b/ext/kernel/globals.h @@ -164,7 +164,7 @@ typedef struct _zephir_function_cache { #ifdef ZTS #define zephir_nts_static #else -#define zephir_nts_static static +#define zephir_nts_static #endif #else #define zephir_nts_static diff --git a/ext/phalcon/cache/backend/memory.zep.c b/ext/phalcon/cache/backend/memory.zep.c index e9644bc296d..0cfce8f52a1 100644 --- a/ext/phalcon/cache/backend/memory.zep.c +++ b/ext/phalcon/cache/backend/memory.zep.c @@ -48,6 +48,7 @@ ZEPHIR_INIT_CLASS(Phalcon_Cache_Backend_Memory) { zend_declare_property_null(phalcon_cache_backend_memory_ce, SL("_data"), ZEND_ACC_PROTECTED TSRMLS_CC); zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, phalcon_cache_backendinterface_ce); + zend_class_implements(phalcon_cache_backend_memory_ce TSRMLS_CC, 1, zend_ce_serializable); return SUCCESS; } @@ -395,3 +396,52 @@ PHP_METHOD(Phalcon_Cache_Backend_Memory, flush) { } +/** + * Required for interface \Serializable + */ +PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_2 = NULL; + zval *_1; + zval *_0; + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(_0); + zephir_create_array(_0, 1, 0 TSRMLS_CC); + ZEPHIR_OBS_VAR(_1); + zephir_read_property_this(&_1, this_ptr, SL("_frontend"), PH_NOISY_CC); + zephir_array_update_string(&_0, SL("frontend"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", &_2, _0); + zephir_check_call_status(); + RETURN_MM(); + +} + +/** + * Required for interface \Serializable + */ +PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize) { + + int ZEPHIR_LAST_CALL_STATUS; + zephir_nts_static zephir_fcall_cache_entry *_0 = NULL; + zval *data, *unserialized = NULL, *_1; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + + ZEPHIR_CALL_FUNCTION(&unserialized, "unserialize", &_0, data); + zephir_check_call_status(); + if (Z_TYPE_P(unserialized) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(zend_exception_get_default(TSRMLS_C), "Unserialized data must be an array", "phalcon/cache/backend/memory.zep", 295); + return; + } + zephir_array_fetch_string(&_1, unserialized, SL("frontend"), PH_NOISY | PH_READONLY, "phalcon/cache/backend/memory.zep", 298 TSRMLS_CC); + zephir_update_property_this(this_ptr, SL("_frontend"), _1 TSRMLS_CC); + ZEPHIR_MM_RESTORE(); + +} + diff --git a/ext/phalcon/cache/backend/memory.zep.h b/ext/phalcon/cache/backend/memory.zep.h index 6f885da6b64..727136a2a7b 100644 --- a/ext/phalcon/cache/backend/memory.zep.h +++ b/ext/phalcon/cache/backend/memory.zep.h @@ -11,6 +11,8 @@ PHP_METHOD(Phalcon_Cache_Backend_Memory, exists); PHP_METHOD(Phalcon_Cache_Backend_Memory, increment); PHP_METHOD(Phalcon_Cache_Backend_Memory, decrement); PHP_METHOD(Phalcon_Cache_Backend_Memory, flush); +PHP_METHOD(Phalcon_Cache_Backend_Memory, serialize); +PHP_METHOD(Phalcon_Cache_Backend_Memory, unserialize); ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_get, 0, 0, 1) ZEND_ARG_INFO(0, keyName) @@ -47,6 +49,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_decrement, 0, 0, 0) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cache_backend_memory_unserialize, 0, 0, 1) + ZEND_ARG_INFO(0, data) +ZEND_END_ARG_INFO() + ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, get, arginfo_phalcon_cache_backend_memory_get, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, save, arginfo_phalcon_cache_backend_memory_save, ZEND_ACC_PUBLIC) @@ -56,5 +62,7 @@ ZEPHIR_INIT_FUNCS(phalcon_cache_backend_memory_method_entry) { PHP_ME(Phalcon_Cache_Backend_Memory, increment, arginfo_phalcon_cache_backend_memory_increment, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, decrement, arginfo_phalcon_cache_backend_memory_decrement, ZEND_ACC_PUBLIC) PHP_ME(Phalcon_Cache_Backend_Memory, flush, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, serialize, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Phalcon_Cache_Backend_Memory, unserialize, arginfo_phalcon_cache_backend_memory_unserialize, ZEND_ACC_PUBLIC) PHP_FE_END }; diff --git a/ext/phalcon/cache/backend/redis.zep.c b/ext/phalcon/cache/backend/redis.zep.c index ab7957112ec..a9a9ccbe914 100644 --- a/ext/phalcon/cache/backend/redis.zep.c +++ b/ext/phalcon/cache/backend/redis.zep.c @@ -141,8 +141,10 @@ PHP_METHOD(Phalcon_Cache_Backend_Redis, _connect) { zephir_read_property_this(&options, this_ptr, SL("_options"), PH_NOISY_CC); ZEPHIR_INIT_VAR(redis); object_init_ex(redis, zephir_get_internal_ce(SS("redis") TSRMLS_CC)); - ZEPHIR_CALL_METHOD(NULL, redis, "__construct", NULL); - zephir_check_call_status(); + if (zephir_has_constructor(redis TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, redis, "__construct", NULL); + zephir_check_call_status(); + } ZEPHIR_OBS_VAR(host); _0 = !(zephir_array_isset_string_fetch(&host, options, SS("host"), 0 TSRMLS_CC)); if (!(_0)) { diff --git a/ext/phalcon/cli/console.zep.c b/ext/phalcon/cli/console.zep.c index 22f9d1a51bc..20d560f9a38 100644 --- a/ext/phalcon/cli/console.zep.c +++ b/ext/phalcon/cli/console.zep.c @@ -206,29 +206,30 @@ PHP_METHOD(Phalcon_Cli_Console, getModules) { /** * Handle the whole command-line tasks - * - * @param array arguments - * @return mixed */ PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_nts_static zephir_fcall_cache_entry *_6 = NULL; zend_bool _3; int ZEPHIR_LAST_CALL_STATUS; - zval *arguments = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments_param = NULL, *dependencyInjector, *router = NULL, *eventsManager = NULL, *moduleName = NULL, *modules, *module, *path, *className = NULL, *moduleObject = NULL, *dispatcher = NULL, *task = NULL, *_0, *_1 = NULL, *_2 = NULL, *_4, *_5 = NULL, *_7 = NULL, *_8 = NULL, *_9 = NULL, *_10 = NULL; + zval *arguments = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &arguments); + zephir_fetch_params(1, 0, 1, &arguments_param); - if (!arguments) { - arguments = ZEPHIR_GLOBAL(global_null); + if (!arguments_param) { + ZEPHIR_INIT_VAR(arguments); + array_init(arguments); + } else { + zephir_get_arrval(arguments, arguments_param); } ZEPHIR_OBS_VAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 155); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "A dependency injection object is required to access internal services", "phalcon/cli/console.zep", 152); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_eventsManager"), PH_NOISY_CC); @@ -239,7 +240,7 @@ PHP_METHOD(Phalcon_Cli_Console, handle) { zephir_check_temp_parameter(_2); zephir_check_call_status(); ZEPHIR_CPY_WRT(router, _1); - _3 = !zephir_is_true(arguments); + _3 = !(zephir_fast_count_int(arguments TSRMLS_CC)); if (_3) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_arguments"), PH_NOISY_CC); _3 = zephir_is_true(_0); @@ -274,14 +275,14 @@ PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module '", moduleName, "' isn't registered in the console container"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 179 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 176 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_VAR(module); - zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 182 TSRMLS_CC); + zephir_array_fetch(&module, modules, moduleName, PH_NOISY, "phalcon/cli/console.zep", 179 TSRMLS_CC); if (Z_TYPE_P(module) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 184); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/cli/console.zep", 181); return; } ZEPHIR_OBS_VAR(path); @@ -293,7 +294,7 @@ PHP_METHOD(Phalcon_Cli_Console, handle) { ZEPHIR_CONCAT_SVS(_5, "Module definition path '", path, "' doesn't exist"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 189 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/cli/console.zep", 186 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -429,7 +430,7 @@ PHP_METHOD(Phalcon_Cli_Console, setArgument) { Z_UNSET_ISREF_P(arguments); zephir_check_call_status(); } - zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 270); + zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 267); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -486,11 +487,11 @@ PHP_METHOD(Phalcon_Cli_Console, setArgument) { zephir_substr(_9, arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, _9, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 262); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 259); } } } else { - zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 266); + zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 263); } } if (str) { diff --git a/ext/phalcon/cli/console.zep.h b/ext/phalcon/cli/console.zep.h index 3281b303d5a..ecc45bcddd4 100644 --- a/ext/phalcon/cli/console.zep.h +++ b/ext/phalcon/cli/console.zep.h @@ -35,7 +35,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_addmodules, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_handle, 0, 0, 0) - ZEND_ARG_INFO(0, arguments) + ZEND_ARG_ARRAY_INFO(0, arguments, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_cli_console_setargument, 0, 0, 0) diff --git a/ext/phalcon/db/dialect.zep.c b/ext/phalcon/db/dialect.zep.c index 129af663cf2..c4946797b55 100644 --- a/ext/phalcon/db/dialect.zep.c +++ b/ext/phalcon/db/dialect.zep.c @@ -84,6 +84,12 @@ PHP_METHOD(Phalcon_Db_Dialect, escape) { isEscape = ZEPHIR_GLOBAL(db).escape_identifiers; if (!(zephir_memnstr_str(str, SL("."), "phalcon/db/dialect.zep", 47))) { if (isEscape) { + if (ZEPHIR_IS_STRING(escapeChar, "")) { + RETURN_CTOR(str); + } + if (ZEPHIR_IS_STRING(str, "*")) { + RETURN_CTOR(str); + } ZEPHIR_CONCAT_VVV(return_value, escapeChar, str, escapeChar); RETURN_MM(); } @@ -96,7 +102,7 @@ PHP_METHOD(Phalcon_Db_Dialect, escape) { zephir_get_arrval(_4, _2); ZEPHIR_CPY_WRT(parts, _4); ZEPHIR_CPY_WRT(newParts, parts); - zephir_is_iterable(parts, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 66); + zephir_is_iterable(parts, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 77); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -161,17 +167,17 @@ PHP_METHOD(Phalcon_Db_Dialect, limit) { if (Z_TYPE_P(number) == IS_ARRAY) { - zephir_array_fetch_long(&_0, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 84 TSRMLS_CC); + zephir_array_fetch_long(&_0, number, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 95 TSRMLS_CC); ZEPHIR_INIT_VAR(_1); ZEPHIR_CONCAT_SV(_1, " LIMIT ", _0); zephir_concat_self(&sqlQuery, _1 TSRMLS_CC); _2 = zephir_array_isset_long(number, 1); if (_2) { - zephir_array_fetch_long(&_3, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 86 TSRMLS_CC); + zephir_array_fetch_long(&_3, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 97 TSRMLS_CC); _2 = (zephir_fast_strlen_ev(_3)) ? 1 : 0; } if (_2) { - zephir_array_fetch_long(&_4, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 87 TSRMLS_CC); + zephir_array_fetch_long(&_4, number, 1, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 98 TSRMLS_CC); ZEPHIR_INIT_VAR(_5); ZEPHIR_CONCAT_SV(_5, " OFFSET ", _4); zephir_concat_self(&sqlQuery, _5 TSRMLS_CC); @@ -276,7 +282,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { ZEPHIR_INIT_VAR(columns); array_init(columns); - zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 138); + zephir_is_iterable(columnList, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 149); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -284,7 +290,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getColumnList) { ZEPHIR_GET_HVALUE(column, _2); ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlcolumn", &_4, column); zephir_check_call_status(); - zephir_array_append(&columns, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 135); + zephir_array_append(&columns, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 146); } zephir_fast_join_str(return_value, SL(", "), columns TSRMLS_CC); RETURN_MM(); @@ -314,7 +320,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn) { } if (!(zephir_array_isset_string(column, SS("type")))) { ZEPHIR_OBS_VAR(columnField); - zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 157 TSRMLS_CC); + zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/db/dialect.zep", 168 TSRMLS_CC); if (Z_TYPE_P(columnField) == IS_ARRAY) { ZEPHIR_INIT_VAR(columnExpression); zephir_create_array(columnExpression, 2, 0 TSRMLS_CC); @@ -391,7 +397,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { ZEPHIR_OBS_VAR(type); if (!(zephir_array_isset_string_fetch(&type, expression, SS("type"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 217); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 228); return; } do { @@ -411,7 +417,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { RETURN_MM(); } if (ZEPHIR_IS_STRING(type, "literal") || ZEPHIR_IS_STRING(type, "placeholder")) { - zephir_array_fetch_string(&_3, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 245 TSRMLS_CC); + zephir_array_fetch_string(&_3, expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 256 TSRMLS_CC); RETURN_CTOR(_3); } if (ZEPHIR_IS_STRING(type, "binary-op")) { @@ -425,7 +431,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { RETURN_MM(); } if (ZEPHIR_IS_STRING(type, "parentheses")) { - zephir_array_fetch_string(&_3, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 263 TSRMLS_CC); + zephir_array_fetch_string(&_3, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 274 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_6, this_ptr, "getsqlexpression", &_7, _3, escapeChar); zephir_check_call_status(); ZEPHIR_CONCAT_SVS(return_value, "(", _6, ")"); @@ -464,7 +470,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) { ZEPHIR_CONCAT_SVS(_14, "Invalid SQL expression type '", type, "'"); ZEPHIR_CALL_METHOD(NULL, _13, "__construct", &_15, _14); zephir_check_call_status(); - zephir_throw_exception_debug(_13, "phalcon/db/dialect.zep", 299 TSRMLS_CC); + zephir_throw_exception_debug(_13, "phalcon/db/dialect.zep", 310 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -496,7 +502,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) { if (Z_TYPE_P(table) == IS_ARRAY) { ZEPHIR_OBS_VAR(tableName); - zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 318 TSRMLS_CC); + zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/db/dialect.zep", 329 TSRMLS_CC); ZEPHIR_OBS_VAR(schemaName); if (!(zephir_array_isset_long_fetch(&schemaName, table, 1, 0 TSRMLS_CC))) { ZEPHIR_INIT_NVAR(schemaName); @@ -537,12 +543,12 @@ PHP_METHOD(Phalcon_Db_Dialect, select) { ZEPHIR_OBS_VAR(tables); if (!(zephir_array_isset_string_fetch(&tables, definition, SS("tables"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 349); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/db/dialect.zep", 360); return; } ZEPHIR_OBS_VAR(columns); if (!(zephir_array_isset_string_fetch(&columns, definition, SS("columns"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 353); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/db/dialect.zep", 364); return; } ZEPHIR_OBS_VAR(distinct); @@ -573,7 +579,7 @@ PHP_METHOD(Phalcon_Db_Dialect, select) { _6 = zephir_is_true(joins); } if (_6) { - zephir_array_fetch_string(&_8, definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 382 TSRMLS_CC); + zephir_array_fetch_string(&_8, definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 393 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_7, this_ptr, "getsqlexpressionjoins", &_9, _8); zephir_check_call_status(); ZEPHIR_INIT_VAR(_10); @@ -782,14 +788,14 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar) { if (zephir_array_isset_string(expression, SS("column"))) { - zephir_array_fetch_string(&_0, expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 471 TSRMLS_CC); + zephir_array_fetch_string(&_0, expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 482 TSRMLS_CC); ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlcolumn", &_1, _0); zephir_check_call_status(); RETURN_MM(); } ZEPHIR_OBS_VAR(value); if (!(zephir_array_isset_string_fetch(&value, expression, SS("value"), 0 TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 475); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/db/dialect.zep", 486); return; } if (Z_TYPE_P(value) == IS_ARRAY) { @@ -874,7 +880,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified) { ZEPHIR_OBS_VAR(column); - zephir_array_fetch_string(&column, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 509 TSRMLS_CC); + zephir_array_fetch_string(&column, expression, SL("name"), PH_NOISY, "phalcon/db/dialect.zep", 520 TSRMLS_CC); ZEPHIR_OBS_VAR(domain); if (!(zephir_array_isset_string_fetch(&domain, expression, SS("domain"), 0 TSRMLS_CC))) { ZEPHIR_INIT_NVAR(domain); @@ -910,13 +916,13 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations) { } - zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 528 TSRMLS_CC); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 539 TSRMLS_CC); ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); zephir_check_call_status(); - zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 529 TSRMLS_CC); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 540 TSRMLS_CC); ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); zephir_check_call_status(); - zephir_array_fetch_string(&_3, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 531 TSRMLS_CC); + zephir_array_fetch_string(&_3, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 542 TSRMLS_CC); ZEPHIR_CONCAT_VSVSV(return_value, left, " ", _3, " ", right); RETURN_MM(); @@ -950,19 +956,19 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations) { if (zephir_array_isset_string_fetch(&left, expression, SS("left"), 0 TSRMLS_CC)) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, left, escapeChar); zephir_check_call_status(); - zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 545 TSRMLS_CC); + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 556 TSRMLS_CC); ZEPHIR_CONCAT_VSV(return_value, _0, " ", _2); RETURN_MM(); } ZEPHIR_OBS_VAR(right); if (zephir_array_isset_string_fetch(&right, expression, SS("right"), 0 TSRMLS_CC)) { - zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 552 TSRMLS_CC); + zephir_array_fetch_string(&_2, expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 563 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", &_1, right, escapeChar); zephir_check_call_status(); ZEPHIR_CONCAT_VSV(return_value, _2, " ", _0); RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 555); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/db/dialect.zep", 566); return; } @@ -1006,20 +1012,20 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall) { zephir_check_call_status(); _2 = zephir_array_isset_string(expression, SS("distinct")); if (_2) { - zephir_array_fetch_string(&_3, expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 573 TSRMLS_CC); + zephir_array_fetch_string(&_3, expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 584 TSRMLS_CC); _2 = zephir_is_true(_3); } if (_2) { - zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 574 TSRMLS_CC); + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 585 TSRMLS_CC); ZEPHIR_CONCAT_VSVS(return_value, _4, "(DISTINCT ", arguments, ")"); RETURN_MM(); } else { - zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 576 TSRMLS_CC); + zephir_array_fetch_string(&_4, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 587 TSRMLS_CC); ZEPHIR_CONCAT_VSVS(return_value, _4, "(", arguments, ")"); RETURN_MM(); } } - zephir_array_fetch_string(&_3, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 581 TSRMLS_CC); + zephir_array_fetch_string(&_3, expression, SL("name"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 592 TSRMLS_CC); ZEPHIR_CONCAT_VS(return_value, _3, "()"); RETURN_MM(); @@ -1058,7 +1064,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { ZVAL_STRING(separator, ", ", 1); if (zephir_array_isset_string(expression, SS("separator"))) { ZEPHIR_OBS_NVAR(separator); - zephir_array_fetch_string(&separator, expression, SL("separator"), PH_NOISY, "phalcon/db/dialect.zep", 595 TSRMLS_CC); + zephir_array_fetch_string(&separator, expression, SL("separator"), PH_NOISY, "phalcon/db/dialect.zep", 606 TSRMLS_CC); } ZEPHIR_OBS_VAR(values); _0 = zephir_array_isset_long_fetch(&values, expression, 0, 0 TSRMLS_CC); @@ -1071,7 +1077,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { _1 = Z_TYPE_P(values) == IS_ARRAY; } if (_1) { - zephir_is_iterable(values, &_3, &_2, 0, 0, "phalcon/db/dialect.zep", 604); + zephir_is_iterable(values, &_3, &_2, 0, 0, "phalcon/db/dialect.zep", 615); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -1079,11 +1085,11 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { ZEPHIR_GET_HVALUE(item, _4); ZEPHIR_CALL_METHOD(&_5, this_ptr, "getsqlexpression", &_6, item, escapeChar); zephir_check_call_status(); - zephir_array_append(&items, _5, PH_SEPARATE, "phalcon/db/dialect.zep", 601); + zephir_array_append(&items, _5, PH_SEPARATE, "phalcon/db/dialect.zep", 612); } _7 = zephir_array_isset_string(expression, SS("parentheses")); if (_7) { - zephir_array_fetch_string(&_8, expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 604 TSRMLS_CC); + zephir_array_fetch_string(&_8, expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 615 TSRMLS_CC); _7 = ZEPHIR_IS_FALSE_IDENTICAL(_8); } if (_7) { @@ -1096,7 +1102,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) { RETURN_MM(); } } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/db/dialect.zep", 611); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/db/dialect.zep", 622); return; } @@ -1162,10 +1168,10 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue) { } - zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 635 TSRMLS_CC); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 646 TSRMLS_CC); ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); zephir_check_call_status(); - zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 636 TSRMLS_CC); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 647 TSRMLS_CC); ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", left, " AS ", right, ")"); @@ -1197,10 +1203,10 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue) { } - zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 648 TSRMLS_CC); + zephir_array_fetch_string(&_0, expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 659 TSRMLS_CC); ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", &_1, _0, escapeChar); zephir_check_call_status(); - zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 649 TSRMLS_CC); + zephir_array_fetch_string(&_2, expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 660 TSRMLS_CC); ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", &_1, _2, escapeChar); zephir_check_call_status(); ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", left, " USING ", right, ")"); @@ -1234,7 +1240,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) { if (Z_TYPE_P(expression) == IS_ARRAY) { ZEPHIR_INIT_VAR(tables); array_init(tables); - zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 669); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 680); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -1242,7 +1248,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) { ZEPHIR_GET_HVALUE(table, _2); ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqltable", &_4, table); zephir_check_call_status(); - zephir_array_append(&tables, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 666); + zephir_array_append(&tables, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 677); } ZEPHIR_INIT_VAR(_5); zephir_fast_join_str(_5, SL(", "), tables TSRMLS_CC); @@ -1284,7 +1290,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { ZVAL_STRING(joinType, "", 1); - zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 718); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 729); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -1302,7 +1308,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { } else { ZEPHIR_INIT_NVAR(joinCondition); array_init(joinCondition); - zephir_is_iterable(joinConditionsArray, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 703); + zephir_is_iterable(joinConditionsArray, &_6, &_5, 0, 0, "phalcon/db/dialect.zep", 714); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -1310,7 +1316,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { ZEPHIR_GET_HVALUE(condition, _7); ZEPHIR_CALL_METHOD(&_8, this_ptr, "getsqlexpression", &_4, condition, escapeChar); zephir_check_call_status(); - zephir_array_append(&joinCondition, _8, PH_SEPARATE, "phalcon/db/dialect.zep", 700); + zephir_array_append(&joinCondition, _8, PH_SEPARATE, "phalcon/db/dialect.zep", 711); } ZEPHIR_INIT_NVAR(_9); zephir_fast_join_str(_9, SL(" AND "), joinCondition TSRMLS_CC); @@ -1328,7 +1334,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) { if (_10) { zephir_concat_self_str(&joinType, SL(" ") TSRMLS_CC); } - zephir_array_fetch_string(&_11, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 713 TSRMLS_CC); + zephir_array_fetch_string(&_11, join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 724 TSRMLS_CC); ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_12, _11, escapeChar); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_13); @@ -1396,19 +1402,19 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy) { if (Z_TYPE_P(expression) == IS_ARRAY) { ZEPHIR_INIT_VAR(fields); array_init(fields); - zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 756); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 767); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HVALUE(filed, _2); if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/db/dialect.zep", 750); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/db/dialect.zep", 761); return; } else { ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpression", &_4, filed, escapeChar); zephir_check_call_status(); - zephir_array_append(&fields, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 752); + zephir_array_append(&fields, _3, PH_SEPARATE, "phalcon/db/dialect.zep", 763); } } ZEPHIR_INIT_VAR(_5); @@ -1448,7 +1454,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving) { ZEPHIR_CONCAT_SV(return_value, "HAVING ", _0); RETURN_MM(); } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-HAVING expression", "phalcon/db/dialect.zep", 773); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-HAVING expression", "phalcon/db/dialect.zep", 784); return; } @@ -1483,17 +1489,17 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) { if (Z_TYPE_P(expression) == IS_ARRAY) { ZEPHIR_INIT_VAR(fields); array_init(fields); - zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 806); + zephir_is_iterable(expression, &_1, &_0, 0, 0, "phalcon/db/dialect.zep", 817); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HVALUE(filed, _2); if (unlikely(Z_TYPE_P(filed) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/db/dialect.zep", 791); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/db/dialect.zep", 802); return; } else { - zephir_array_fetch_long(&_3, filed, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 793 TSRMLS_CC); + zephir_array_fetch_long(&_3, filed, 0, PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 804 TSRMLS_CC); ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_4, _3, escapeChar); zephir_check_call_status(); } @@ -1507,7 +1513,7 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) { ZEPHIR_CONCAT_SV(_6, " ", type); zephir_concat_self(&fieldSql, _6 TSRMLS_CC); } - zephir_array_append(&fields, fieldSql, PH_SEPARATE, "phalcon/db/dialect.zep", 803); + zephir_array_append(&fields, fieldSql, PH_SEPARATE, "phalcon/db/dialect.zep", 814); } ZEPHIR_INIT_VAR(_7); zephir_fast_join_str(_7, SL(", "), fields TSRMLS_CC); @@ -1548,21 +1554,21 @@ PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit) { ZEPHIR_OBS_VAR(value); - zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/db/dialect.zep", 821 TSRMLS_CC); + zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/db/dialect.zep", 832 TSRMLS_CC); if (zephir_array_isset_string(expression, SS("sql"))) { ZEPHIR_OBS_NVAR(sql); - zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/db/dialect.zep", 824 TSRMLS_CC); + zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/db/dialect.zep", 835 TSRMLS_CC); } if (Z_TYPE_P(value) == IS_ARRAY) { ZEPHIR_OBS_VAR(_0); - zephir_array_fetch_string(&_0, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 829 TSRMLS_CC); + zephir_array_fetch_string(&_0, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 840 TSRMLS_CC); if (Z_TYPE_P(_0) == IS_ARRAY) { - zephir_array_fetch_string(&_1, value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 830 TSRMLS_CC); + zephir_array_fetch_string(&_1, value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/db/dialect.zep", 841 TSRMLS_CC); ZEPHIR_CALL_METHOD(&limit, this_ptr, "getsqlexpression", &_2, _1); zephir_check_call_status(); } else { ZEPHIR_OBS_NVAR(limit); - zephir_array_fetch_string(&limit, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 832 TSRMLS_CC); + zephir_array_fetch_string(&limit, value, SL("number"), PH_NOISY, "phalcon/db/dialect.zep", 843 TSRMLS_CC); } ZEPHIR_OBS_NVAR(offset); _3 = zephir_array_isset_string_fetch(&offset, value, SS("offset"), 0 TSRMLS_CC); diff --git a/ext/phalcon/http/request.zep.c b/ext/phalcon/http/request.zep.c index f43149131e7..93766dcf4ec 100644 --- a/ext/phalcon/http/request.zep.c +++ b/ext/phalcon/http/request.zep.c @@ -1736,7 +1736,6 @@ PHP_METHOD(Phalcon_Http_Request, getBestAccept) { /** * Gets a charsets array and their quality accepted by the browser/client from _SERVER["HTTP_ACCEPT_CHARSET"] - * */ PHP_METHOD(Phalcon_Http_Request, getClientCharsets) { @@ -1839,9 +1838,9 @@ PHP_METHOD(Phalcon_Http_Request, getBasicAuth) { if (_0) { ZEPHIR_INIT_VAR(auth); array_init(auth); - zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 879 TSRMLS_CC); + zephir_array_fetch_string(&_1, _SERVER, SL("PHP_AUTH_USER"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 878 TSRMLS_CC); zephir_array_update_string(&auth, SL("username"), &_1, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 880 TSRMLS_CC); + zephir_array_fetch_string(&_2, _SERVER, SL("PHP_AUTH_PW"), PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 879 TSRMLS_CC); zephir_array_update_string(&auth, SL("password"), &_2, PH_COPY | PH_SEPARATE); RETURN_CCTOR(auth); } @@ -1883,15 +1882,15 @@ PHP_METHOD(Phalcon_Http_Request, getDigestAuth) { RETURN_CTOR(auth); } if (Z_TYPE_P(matches) == IS_ARRAY) { - zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 905); + zephir_is_iterable(matches, &_5, &_4, 0, 0, "phalcon/http/request.zep", 904); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) ) { ZEPHIR_GET_HVALUE(match, _6); - zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 903 TSRMLS_CC); + zephir_array_fetch_long(&_7, match, 3, PH_NOISY | PH_READONLY, "phalcon/http/request.zep", 902 TSRMLS_CC); ZEPHIR_OBS_NVAR(_8); - zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 903 TSRMLS_CC); + zephir_array_fetch_long(&_8, match, 1, PH_NOISY, "phalcon/http/request.zep", 902 TSRMLS_CC); zephir_array_update_zval(&auth, _8, &_7, PH_COPY | PH_SEPARATE); } } diff --git a/ext/phalcon/http/requestinterface.zep.c b/ext/phalcon/http/requestinterface.zep.c index e4fbeb3b23d..ffd4cb894c6 100644 --- a/ext/phalcon/http/requestinterface.zep.c +++ b/ext/phalcon/http/requestinterface.zep.c @@ -201,22 +201,16 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHTTPReferer); /** * Gets array with mime/types and their quality accepted by the browser/client from $_SERVER['HTTP_ACCEPT'] - * - * @return array */ ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getAcceptableContent); /** * Gets best mime/type accepted by the browser/client from $_SERVER['HTTP_ACCEPT'] - * - * @return array */ ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestAccept); /** * Gets charsets array and their quality accepted by the browser/client from $_SERVER['HTTP_ACCEPT_CHARSET'] - * - * @return array */ ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getClientCharsets); diff --git a/ext/phalcon/http/response.zep.c b/ext/phalcon/http/response.zep.c index 0eff48c84e9..162e546dea4 100644 --- a/ext/phalcon/http/response.zep.c +++ b/ext/phalcon/http/response.zep.c @@ -635,20 +635,22 @@ PHP_METHOD(Phalcon_Http_Response, setEtag) { PHP_METHOD(Phalcon_Http_Response, redirect) { zephir_nts_static zephir_fcall_cache_entry *_3 = NULL; - zend_bool _0; int statusCode, ZEPHIR_LAST_CALL_STATUS; - zval *location = NULL, *externalRedirect = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; + zend_bool externalRedirect, _0; + zval *location = NULL, *externalRedirect_param = NULL, *statusCode_param = NULL, *header = NULL, *url = NULL, *dependencyInjector = NULL, *matched, *message = NULL, *view = NULL, _1 = zval_used_for_init, *_2 = NULL, *_4, *_5 = NULL, *_6; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &location, &externalRedirect, &statusCode_param); + zephir_fetch_params(1, 0, 3, &location, &externalRedirect_param, &statusCode_param); if (!location) { ZEPHIR_CPY_WRT(location, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(location); } - if (!externalRedirect) { - externalRedirect = ZEPHIR_GLOBAL(global_false); + if (!externalRedirect_param) { + externalRedirect = 0; + } else { + externalRedirect = zephir_get_boolval(externalRedirect_param); } if (!statusCode_param) { statusCode = 302; @@ -661,7 +663,7 @@ PHP_METHOD(Phalcon_Http_Response, redirect) { ZEPHIR_INIT_NVAR(location); ZVAL_STRING(location, "", 1); } - if (zephir_is_true(externalRedirect)) { + if (externalRedirect) { ZEPHIR_CPY_WRT(header, location); } else { _0 = Z_TYPE_P(location) == IS_STRING; diff --git a/ext/phalcon/http/response/cookiesinterface.zep.c b/ext/phalcon/http/response/cookiesinterface.zep.c index 84aee93b036..45d8413941b 100644 --- a/ext/phalcon/http/response/cookiesinterface.zep.c +++ b/ext/phalcon/http/response/cookiesinterface.zep.c @@ -72,8 +72,6 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, send); /** * Reset set cookies - * - * @return Phalcon\Http\Response\CookiesInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, reset); diff --git a/ext/phalcon/http/response/headers.zep.c b/ext/phalcon/http/response/headers.zep.c index daabcf513b9..a9d8be87442 100644 --- a/ext/phalcon/http/response/headers.zep.c +++ b/ext/phalcon/http/response/headers.zep.c @@ -19,6 +19,8 @@ #include "kernel/fcall.h" #include "kernel/hash.h" #include "kernel/concat.h" +#include "ext/spl/spl_exceptions.h" +#include "kernel/exception.h" /** @@ -176,8 +178,6 @@ PHP_METHOD(Phalcon_Http_Response_Headers, reset) { /** * Returns the current headers as an array - * - * @return array */ PHP_METHOD(Phalcon_Http_Response_Headers, toArray) { @@ -188,9 +188,6 @@ PHP_METHOD(Phalcon_Http_Response_Headers, toArray) { /** * Restore a Phalcon\Http\Response\Headers object - * - * @param array data - * @return Phalcon\Http\Response\Headers */ PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { @@ -198,10 +195,13 @@ PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { HashTable *_1; HashPosition _0; int ZEPHIR_LAST_CALL_STATUS; - zval *data, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data_param = NULL, *headers, *key = NULL, *value = NULL, *dataHeaders, **_2; + zval *data = NULL; ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &data_param); + + data = data_param; @@ -213,7 +213,7 @@ PHP_METHOD(Phalcon_Http_Response_Headers, __set_state) { } ZEPHIR_OBS_VAR(dataHeaders); if (zephir_array_isset_string_fetch(&dataHeaders, data, SS("_headers"), 0 TSRMLS_CC)) { - zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 135); + zephir_is_iterable(dataHeaders, &_1, &_0, 0, 0, "phalcon/http/response/headers.zep", 130); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) diff --git a/ext/phalcon/http/response/headers.zep.h b/ext/phalcon/http/response/headers.zep.h index 4d721a8ce18..080db06d2e5 100644 --- a/ext/phalcon/http/response/headers.zep.h +++ b/ext/phalcon/http/response/headers.zep.h @@ -30,7 +30,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers_remove, 0, 0, 1) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headers___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headers_method_entry) { diff --git a/ext/phalcon/http/response/headersinterface.zep.c b/ext/phalcon/http/response/headersinterface.zep.c index e54aec7f082..f8b6f18a995 100644 --- a/ext/phalcon/http/response/headersinterface.zep.c +++ b/ext/phalcon/http/response/headersinterface.zep.c @@ -60,9 +60,6 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, reset); /** * Restore a Phalcon\Http\Response\Headers object - * - * @param array data - * @return Phalcon\Http\Response\HeadersInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, __set_state); diff --git a/ext/phalcon/http/response/headersinterface.zep.h b/ext/phalcon/http/response/headersinterface.zep.h index 4e7df86a2c2..1a33922ff91 100644 --- a/ext/phalcon/http/response/headersinterface.zep.h +++ b/ext/phalcon/http/response/headersinterface.zep.h @@ -17,7 +17,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface_setraw, 0, ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_response_headersinterface___set_state, 0, 0, 1) - ZEND_ARG_INFO(0, data) + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() ZEPHIR_INIT_FUNCS(phalcon_http_response_headersinterface_method_entry) { diff --git a/ext/phalcon/http/responseinterface.zep.c b/ext/phalcon/http/responseinterface.zep.c index 4828eb729c6..b2d57c17cf1 100644 --- a/ext/phalcon/http/responseinterface.zep.c +++ b/ext/phalcon/http/responseinterface.zep.c @@ -27,17 +27,11 @@ ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface) { /** * Sets the HTTP response code - * - * @param int code - * @param string message - * @return Phalcon\Http\ResponseInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setStatusCode); /** * Returns headers set by the user - * - * @return Phalcon\Http\Response\Headers */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getHeaders); @@ -52,31 +46,21 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setHeader); /** * Send a raw header to the response - * - * @param string header - * @return Phalcon\Http\ResponseInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setRawHeader); /** * Resets all the stablished headers - * - * @return Phalcon\Http\ResponseInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, resetHeaders); /** * Sets output expire time header - * - * @param DateTime datetime - * @return Phalcon\Http\ResponseInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setExpires); /** * Sends a Not-Modified response - * - * @return Phalcon\Http\ResponseInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setNotModified); @@ -101,9 +85,6 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, redirect); /** * Sets HTTP response body - * - * @param string content - * @return Phalcon\Http\ResponseInterface */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContent); @@ -129,8 +110,6 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, appendContent); /** * Gets the HTTP response body - * - * @return string */ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getContent); diff --git a/ext/phalcon/http/responseinterface.zep.h b/ext/phalcon/http/responseinterface.zep.h index b1fc5e8a2bb..f76b4c0c252 100644 --- a/ext/phalcon/http/responseinterface.zep.h +++ b/ext/phalcon/http/responseinterface.zep.h @@ -3,7 +3,7 @@ extern zend_class_entry *phalcon_http_responseinterface_ce; ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface); -ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_responseinterface_setstatuscode, 0, 0, 1) ZEND_ARG_INFO(0, code) ZEND_ARG_INFO(0, message) ZEND_END_ARG_INFO() diff --git a/ext/phalcon/mvc/model.zep.c b/ext/phalcon/mvc/model.zep.c index 5a789091e57..854e82ceb19 100644 --- a/ext/phalcon/mvc/model.zep.c +++ b/ext/phalcon/mvc/model.zep.c @@ -1094,7 +1094,7 @@ PHP_METHOD(Phalcon_Mvc_Model, findFirst) { zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL, *_4 = NULL, *_5 = NULL; int ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *_1, *_3 = NULL; + zval *parameters = NULL, *params = NULL, *builder, *query = NULL, *bindParams = NULL, *bindTypes = NULL, *cache, *resultset = NULL, *hydration, *_1, *_3 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, ¶meters); @@ -1145,9 +1145,16 @@ PHP_METHOD(Phalcon_Mvc_Model, findFirst) { ZVAL_BOOL(_3, 1); ZEPHIR_CALL_METHOD(NULL, query, "setuniquerow", NULL, _3); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(query, "execute", NULL, bindParams, bindTypes); + ZEPHIR_CALL_METHOD(&resultset, query, "execute", NULL, bindParams, bindTypes); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(resultset) == IS_OBJECT) { + ZEPHIR_OBS_VAR(hydration); + if (zephir_array_isset_string_fetch(&hydration, params, SS("hydration"), 0 TSRMLS_CC)) { + ZEPHIR_CALL_METHOD(NULL, resultset, "sethydratemode", NULL, hydration); + zephir_check_call_status(); + } + } + RETURN_CCTOR(resultset); } @@ -1255,7 +1262,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _exists) { array_init(uniqueParams); ZEPHIR_INIT_NVAR(uniqueTypes); array_init(uniqueTypes); - zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 939); + zephir_is_iterable(primaryKeys, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 950); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -1270,7 +1277,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 903 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 914 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -1288,9 +1295,9 @@ PHP_METHOD(Phalcon_Mvc_Model, _exists) { if (_6) { numberEmpty++; } - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 921); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 932); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 924); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 935); numberEmpty++; } ZEPHIR_OBS_NVAR(type); @@ -1301,16 +1308,16 @@ PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 929 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 940 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 932); + zephir_array_append(&uniqueTypes, type, PH_SEPARATE, "phalcon/mvc/model.zep", 943); ZEPHIR_CALL_METHOD(&_7, connection, "escapeidentifier", &_8, field); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_9); ZEPHIR_CONCAT_VS(_9, _7, " = ?"); - zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 933); + zephir_array_append(&wherePk, _9, PH_SEPARATE, "phalcon/mvc/model.zep", 944); } if (numberPrimary == numberEmpty) { RETURN_MM_BOOL(0); @@ -1358,7 +1365,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _exists) { ZVAL_NULL(_3); ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, _9, _3, uniqueParams, uniqueTypes); zephir_check_call_status(); - zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 989 TSRMLS_CC); + zephir_array_fetch_string(&_11, num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1000 TSRMLS_CC); if (zephir_is_true(_11)) { ZEPHIR_INIT_ZVAL_NREF(_12); ZVAL_LONG(_12, 0); @@ -1419,7 +1426,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _groupResult) { ZEPHIR_INIT_VAR(params); array_init(params); if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1016); + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/mvc/model.zep", 1027); } } else { ZEPHIR_CPY_WRT(params, parameters); @@ -1876,7 +1883,7 @@ PHP_METHOD(Phalcon_Mvc_Model, validate) { if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) { ZEPHIR_CALL_METHOD(&_1, validator, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1311); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1322); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -1969,7 +1976,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_INIT_VAR(filtered); array_init(filtered); _1 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1378); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 1389); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -1978,7 +1985,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getMessages) { ZEPHIR_CALL_METHOD(&_5, message, "getfield", NULL); zephir_check_call_status(); if (ZEPHIR_IS_EQUAL(_5, filter)) { - zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1375); + zephir_array_append(&filtered, message, PH_SEPARATE, "phalcon/mvc/model.zep", 1386); } } RETURN_CCTOR(filtered); @@ -2009,7 +2016,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(belongsTo TSRMLS_CC)) { error = 0; - zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1498); + zephir_is_iterable(belongsTo, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1509); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -2022,7 +2029,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1422 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1433 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -2040,7 +2047,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL); zephir_check_call_status(); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1453); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1464); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -2049,23 +2056,23 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysRestrict) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1450 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1461 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1450); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1451); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1461); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1462); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1455); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1456); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1466); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1467); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1463); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1474); } ZEPHIR_INIT_NVAR(_13); zephir_create_array(_13, 2, 0 TSRMLS_CC); @@ -2138,7 +2145,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_CALL_METHOD(&relations, manager, "gethasoneandhasmany", NULL, this_ptr); zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1612); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1623); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -2151,7 +2158,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1551 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1562 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -2169,7 +2176,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1579); + zephir_is_iterable(fields, &_8, &_7, 0, 0, "phalcon/mvc/model.zep", 1590); for ( ; zephir_hash_get_current_data_ex(_8, (void**) &_9, &_7) == SUCCESS ; zephir_hash_move_forward_ex(_8, &_7) @@ -2178,23 +2185,23 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseCascade) { ZEPHIR_GET_HVALUE(field, _9); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1576 TSRMLS_CC); + zephir_array_fetch(&_10, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1587 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVSV(_11, "[", _10, "] = ?", position); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1576); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1577); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1587); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1588); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_11); ZEPHIR_CONCAT_SVS(_11, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1581); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1582); + zephir_array_append(&conditions, _11, PH_SEPARATE, "phalcon/mvc/model.zep", 1592); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1593); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1589); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1600); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -2238,7 +2245,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { zephir_check_call_status(); if (zephir_fast_count_int(relations TSRMLS_CC)) { error = 0; - zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1729); + zephir_is_iterable(relations, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 1740); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -2251,7 +2258,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { if (Z_TYPE_P(foreignKey) == IS_ARRAY) { if (zephir_array_isset_string(foreignKey, SS("action"))) { ZEPHIR_OBS_NVAR(_4); - zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1659 TSRMLS_CC); + zephir_array_fetch_string(&_4, foreignKey, SL("action"), PH_NOISY, "phalcon/mvc/model.zep", 1670 TSRMLS_CC); action = zephir_get_intval(_4); } } @@ -2269,7 +2276,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_INIT_NVAR(bindParams); array_init(bindParams); if (Z_TYPE_P(fields) == IS_ARRAY) { - zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1689); + zephir_is_iterable(fields, &_7, &_6, 0, 0, "phalcon/mvc/model.zep", 1700); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) @@ -2278,23 +2285,23 @@ PHP_METHOD(Phalcon_Mvc_Model, _checkForeignKeysReverseRestrict) { ZEPHIR_GET_HVALUE(field, _8); ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, field, PH_SILENT_CC); - zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1686 TSRMLS_CC); + zephir_array_fetch(&_9, referencedFields, position, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 1697 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVSV(_10, "[", _9, "] = ?", position); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1686); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1687); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1697); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1698); } } else { ZEPHIR_OBS_NVAR(value); zephir_fetch_property_zval(&value, this_ptr, fields, PH_SILENT_CC); ZEPHIR_INIT_LNVAR(_10); ZEPHIR_CONCAT_SVS(_10, "[", referencedFields, "] = ?0"); - zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1691); - zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1692); + zephir_array_append(&conditions, _10, PH_SEPARATE, "phalcon/mvc/model.zep", 1702); + zephir_array_append(&bindParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 1703); } ZEPHIR_OBS_NVAR(extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, foreignKey, SS("conditions"), 0 TSRMLS_CC)) { - zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1699); + zephir_array_append(&conditions, extraConditions, PH_SEPARATE, "phalcon/mvc/model.zep", 1710); } ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 2, 0 TSRMLS_CC); @@ -2422,7 +2429,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _preSave) { zephir_check_call_status(); } error = 0; - zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1879); + zephir_is_iterable(notNull, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 1890); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -2439,7 +2446,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _preSave) { ZEPHIR_CONCAT_SVS(_7, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1829 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 1840 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -2660,7 +2667,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2051); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 2062); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -2676,7 +2683,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2015 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2026 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -2684,7 +2691,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CPY_WRT(attributeField, field); } if (!ZEPHIR_IS_EQUAL(field, identityField)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2026); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2037); ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { ZEPHIR_OBS_NVAR(bindType); @@ -2695,15 +2702,15 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2037 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2048 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2040); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2051); } else { - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2042); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2042); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2053); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2053); } } } @@ -2715,7 +2722,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { zephir_check_call_status(); useExplicitIdentity = zephir_get_boolval(_6); if (useExplicitIdentity) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2060); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2071); } if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_OBS_NVAR(attributeField); @@ -2726,7 +2733,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2068 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -2741,12 +2748,12 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { } if (_7) { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2081); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2092); } } else { if (!(useExplicitIdentity)) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2089); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/mvc/model.zep", 2100); } ZEPHIR_OBS_NVAR(bindType); if (!(zephir_array_isset_fetch(&bindType, bindDataTypes, identityField, 0 TSRMLS_CC))) { @@ -2756,17 +2763,17 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowInsert) { ZEPHIR_CONCAT_SVS(_4, "Identity column '", identityField, "' isn\\'t part of the table columns"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2096 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 2107 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2099); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2110); } } else { if (useExplicitIdentity) { - zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2103); + zephir_array_append(&values, defaultValue, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2114); } } } @@ -2859,7 +2866,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_INIT_NVAR(columnMap); ZVAL_NULL(columnMap); } - zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2290); + zephir_is_iterable(nonPrimary, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 2301); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -2874,7 +2881,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2194 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2205 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -2887,7 +2894,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2202 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2213 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -2897,9 +2904,9 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { if (!(useDynamicUpdate)) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2218); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2219); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2229); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2230); } else { ZEPHIR_OBS_NVAR(snapshotValue); if (!(zephir_array_isset_fetch(&snapshotValue, snapshot, attributeField, 0 TSRMLS_CC))) { @@ -2941,15 +2948,15 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } } if (changed) { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2276); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2277); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2287); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2288); } } } else { - zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2282); - zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2282); + zephir_array_append(&fields, field, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&values, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2293); + zephir_array_append(&bindTypes, bindSkip, PH_SEPARATE, "phalcon/mvc/model.zep", 2293); } } } @@ -2966,12 +2973,12 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, this_ptr); zephir_check_call_status(); if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2309); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2320); return; } ZEPHIR_INIT_NVAR(uniqueParams); array_init(uniqueParams); - zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2333); + zephir_is_iterable(primaryKeys, &_13, &_12, 0, 0, "phalcon/mvc/model.zep", 2344); for ( ; zephir_hash_get_current_data_ex(_13, (void**) &_14, &_12) == SUCCESS ; zephir_hash_move_forward_ex(_13, &_12) @@ -2986,7 +2993,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { ZEPHIR_CONCAT_SVS(_6, "Column '", field, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _5, "__construct", &_7, _6); zephir_check_call_status(); - zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2320 TSRMLS_CC); + zephir_throw_exception_debug(_5, "phalcon/mvc/model.zep", 2331 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -2995,9 +3002,9 @@ PHP_METHOD(Phalcon_Mvc_Model, _doLowUpdate) { } ZEPHIR_OBS_NVAR(value); if (zephir_fetch_property_zval(&value, this_ptr, attributeField, PH_SILENT_CC)) { - zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2327); + zephir_array_append(&uniqueParams, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2338); } else { - zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2329); + zephir_array_append(&uniqueParams, ZEPHIR_GLOBAL(global_null), PH_SEPARATE, "phalcon/mvc/model.zep", 2340); } } } @@ -3041,7 +3048,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2439); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2450); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -3058,7 +3065,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(record) != IS_OBJECT) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2388); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/mvc/model.zep", 2399); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_7); @@ -3070,7 +3077,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_6, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2397); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2408); return; } ZEPHIR_CALL_METHOD(&_0, record, "save", NULL); @@ -3078,7 +3085,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _preSaveRelatedRecords) { if (!(zephir_is_true(_0))) { ZEPHIR_CALL_METHOD(&_10, record, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2426); + zephir_is_iterable(_10, &_12, &_11, 0, 0, "phalcon/mvc/model.zep", 2437); for ( ; zephir_hash_get_current_data_ex(_12, (void**) &_13, &_11) == SUCCESS ; zephir_hash_move_forward_ex(_12, &_11) @@ -3132,7 +3139,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _0); - zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2628); + zephir_is_iterable(related, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 2639); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -3155,7 +3162,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (_6) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2478); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-many-to-many relations", "phalcon/mvc/model.zep", 2489); return; } ZEPHIR_CALL_METHOD(&columns, relation, "getfields", &_8); @@ -3167,7 +3174,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (Z_TYPE_P(columns) == IS_ARRAY) { ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_7, (nesting ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false))); zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2487); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/mvc/model.zep", 2498); return; } if (Z_TYPE_P(record) == IS_OBJECT) { @@ -3187,7 +3194,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVS(_12, "The column '", columns, "' needs to be present in the model"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2501 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2512 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -3202,7 +3209,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CALL_METHOD(&intermediateReferencedFields, relation, "getintermediatereferencedfields", &_18); zephir_check_call_status(); } - zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2617); + zephir_is_iterable(relatedRecords, &_20, &_19, 0, 0, "phalcon/mvc/model.zep", 2628); for ( ; zephir_hash_get_current_data_ex(_20, (void**) &_21, &_19) == SUCCESS ; zephir_hash_move_forward_ex(_20, &_19) @@ -3217,7 +3224,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_14))) { ZEPHIR_CALL_METHOD(&_22, recordAfter, "getmessages", NULL); zephir_check_call_status(); - zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2559); + zephir_is_iterable(_22, &_24, &_23, 0, 0, "phalcon/mvc/model.zep", 2570); for ( ; zephir_hash_get_current_data_ex(_24, (void**) &_25, &_23) == SUCCESS ; zephir_hash_move_forward_ex(_24, &_23) @@ -3250,7 +3257,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { if (!(zephir_is_true(_22))) { ZEPHIR_CALL_METHOD(&_30, intermediateModel, "getmessages", &_31); zephir_check_call_status(); - zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2611); + zephir_is_iterable(_30, &_33, &_32, 0, 0, "phalcon/mvc/model.zep", 2622); for ( ; zephir_hash_get_current_data_ex(_33, (void**) &_34, &_32) == SUCCESS ; zephir_hash_move_forward_ex(_33, &_32) @@ -3279,7 +3286,7 @@ PHP_METHOD(Phalcon_Mvc_Model, _postSaveRelatedRecords) { ZEPHIR_CONCAT_SVSVS(_12, "There are no defined relations for the model '", className, "' using alias '", name, "'"); ZEPHIR_CALL_METHOD(NULL, _11, "__construct", &_13, _12); zephir_check_call_status(); - zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2620 TSRMLS_CC); + zephir_throw_exception_debug(_11, "phalcon/mvc/model.zep", 2631 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -3399,7 +3406,7 @@ PHP_METHOD(Phalcon_Mvc_Model, save) { _3 = zephir_fetch_nproperty_this(this_ptr, SL("_errorMessages"), PH_NOISY_CC); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_5, this_ptr, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2732 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 2743 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -3650,10 +3657,10 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) { ZVAL_NULL(columnMap); } if (!(zephir_fast_count_int(primaryKeys TSRMLS_CC))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2925); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/mvc/model.zep", 2936); return; } - zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2966); + zephir_is_iterable(primaryKeys, &_4, &_3, 0, 0, "phalcon/mvc/model.zep", 2977); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) @@ -3667,7 +3674,7 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2937 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2948 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -3680,7 +3687,7 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Column '", primaryKey, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2945 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2956 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -3695,17 +3702,17 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) { ZEPHIR_CONCAT_SVS(_7, "Cannot delete the record because the primary key attribute: '", attributeField, "' wasn't set"); ZEPHIR_CALL_METHOD(NULL, _6, "__construct", &_8, _7); zephir_check_call_status(); - zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2955 TSRMLS_CC); + zephir_throw_exception_debug(_6, "phalcon/mvc/model.zep", 2966 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2961); + zephir_array_append(&values, value, PH_SEPARATE, "phalcon/mvc/model.zep", 2972); ZEPHIR_CALL_METHOD(&_2, writeConnection, "escapeidentifier", &_9, primaryKey); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_VS(_7, _2, " = ?"); - zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2962); - zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2963); + zephir_array_append(&conditions, _7, PH_SEPARATE, "phalcon/mvc/model.zep", 2973); + zephir_array_append(&bindTypes, bindType, PH_SEPARATE, "phalcon/mvc/model.zep", 2974); } if (ZEPHIR_GLOBAL(orm).events) { zephir_update_property_this(this_ptr, SL("_skipped"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); @@ -3788,7 +3795,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3041); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3052); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -3813,7 +3820,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_CALL_METHOD(&_1, this_ptr, "_exists", NULL, metaData, readConnection, table); zephir_check_call_status(); if (!(zephir_is_true(_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3063); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3074); return; } ZEPHIR_OBS_NVAR(uniqueKey); @@ -3822,14 +3829,14 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_OBS_VAR(uniqueParams); zephir_read_property_this(&uniqueParams, this_ptr, SL("_uniqueParams"), PH_NOISY_CC); if (Z_TYPE_P(uniqueParams) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3071); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/mvc/model.zep", 3082); return; } ZEPHIR_INIT_VAR(fields); array_init(fields); ZEPHIR_CALL_METHOD(&_1, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3085); + zephir_is_iterable(_1, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3096); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -3838,7 +3845,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) { ZEPHIR_INIT_NVAR(_5); zephir_create_array(_5, 1, 0 TSRMLS_CC); zephir_array_fast_append(_5, attribute); - zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3079); + zephir_array_append(&fields, _5, PH_SEPARATE, "phalcon/mvc/model.zep", 3090); } ZEPHIR_CALL_METHOD(&dialect, readConnection, "getdialect", NULL); zephir_check_call_status(); @@ -3994,7 +4001,7 @@ PHP_METHOD(Phalcon_Mvc_Model, skipAttributes) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3173); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3184); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -4047,7 +4054,7 @@ PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3205); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3216); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -4098,7 +4105,7 @@ PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) { ZEPHIR_INIT_VAR(keysAttributes); array_init(keysAttributes); - zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3235); + zephir_is_iterable(attributes, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3246); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -4462,7 +4469,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_INIT_VAR(snapshot); array_init(snapshot); - zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3458); + zephir_is_iterable(data, &_1, &_0, 0, 0, "phalcon/mvc/model.zep", 3469); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) @@ -4480,7 +4487,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { ZEPHIR_CONCAT_SVS(_4, "Column '", key, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", &_5, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3452 TSRMLS_CC); + zephir_throw_exception_debug(_3, "phalcon/mvc/model.zep", 3463 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -4542,12 +4549,12 @@ PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3497); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3508); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3504); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3515); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -4569,7 +4576,7 @@ PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3536 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3547 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -4581,7 +4588,7 @@ PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not part of the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3540 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3551 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -4594,7 +4601,7 @@ PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_2, "The field '", fieldName, "' is not defined on the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3548 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3559 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -4606,14 +4613,14 @@ PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { ZEPHIR_CONCAT_SVS(_4, "The field '", fieldName, "' was not found in the snapshot"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3555 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3566 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } RETURN_MM_BOOL(!ZEPHIR_IS_EQUAL(value, originalValue)); } ZEPHIR_INIT_NVAR(_1); - zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3591); + zephir_is_iterable(allAttributes, &_6, &_5, 0, 0, "phalcon/mvc/model.zep", 3602); for ( ; zephir_hash_get_current_data_ex(_6, (void**) &_7, &_5) == SUCCESS ; zephir_hash_move_forward_ex(_6, &_5) @@ -4651,12 +4658,12 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_OBS_VAR(snapshot); zephir_read_property_this(&snapshot, this_ptr, SL("_snapshot"), PH_NOISY_CC); if (Z_TYPE_P(snapshot) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3604); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record doesn't have a valid data snapshot", "phalcon/mvc/model.zep", 3615); return; } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_dirtyState"), PH_NOISY_CC); if (!ZEPHIR_IS_LONG(_0, 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3611); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/mvc/model.zep", 3622); return; } ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL); @@ -4672,7 +4679,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_INIT_VAR(changed); array_init(changed); ZEPHIR_INIT_VAR(_1); - zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3665); + zephir_is_iterable(allAttributes, &_3, &_2, 0, 0, "phalcon/mvc/model.zep", 3676); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) @@ -4680,17 +4687,17 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) { ZEPHIR_GET_HMKEY(name, _3, _2); ZEPHIR_GET_HVALUE(_1, _4); if (!(zephir_array_isset(snapshot, name))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3643); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3654); continue; } ZEPHIR_OBS_NVAR(value); if (!(zephir_fetch_property_zval(&value, this_ptr, name, PH_SILENT_CC))) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3651); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3662); continue; } - zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3658 TSRMLS_CC); + zephir_array_fetch(&_5, snapshot, name, PH_NOISY | PH_READONLY, "phalcon/mvc/model.zep", 3669 TSRMLS_CC); if (!ZEPHIR_IS_EQUAL(value, _5)) { - zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3659); + zephir_array_append(&changed, name, PH_SEPARATE, "phalcon/mvc/model.zep", 3670); continue; } } @@ -4772,7 +4779,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getRelated) { ZEPHIR_CONCAT_SVSVS(_3, "There is no defined relations for the model '", className, "' using alias '", alias, "'"); ZEPHIR_CALL_METHOD(NULL, _2, "__construct", &_4, _3); zephir_check_call_status(); - zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3708 TSRMLS_CC); + zephir_throw_exception_debug(_2, "phalcon/mvc/model.zep", 3719 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -4929,7 +4936,7 @@ PHP_METHOD(Phalcon_Mvc_Model, __call) { ZEPHIR_CONCAT_SVSVS(_2, "The method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3800 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3811 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; @@ -4999,7 +5006,7 @@ PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVSVS(_2, "The static method '", method, "' doesn't exist on model '", modelName, "'"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3851 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3862 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -5011,7 +5018,7 @@ PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_4, "The static method '", method, "' requires one argument"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _4); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3855 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3866 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -5048,7 +5055,7 @@ PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { ZEPHIR_CONCAT_SVS(_2, "Cannot resolve attribute '", extraMethod, "' in the model"); ZEPHIR_CALL_METHOD(NULL, _1, "__construct", &_3, _2); zephir_check_call_status(); - zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3889 TSRMLS_CC); + zephir_throw_exception_debug(_1, "phalcon/mvc/model.zep", 3900 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -5113,7 +5120,7 @@ PHP_METHOD(Phalcon_Mvc_Model, __set) { zephir_check_call_status(); ZEPHIR_INIT_VAR(related); array_init(related); - zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3953); + zephir_is_iterable(value, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 3964); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -5122,7 +5129,7 @@ PHP_METHOD(Phalcon_Mvc_Model, __set) { ZEPHIR_GET_HVALUE(item, _3); if (Z_TYPE_P(item) == IS_OBJECT) { if (zephir_instance_of_ev(item, phalcon_mvc_modelinterface_ce TSRMLS_CC)) { - zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3940); + zephir_array_append(&related, item, PH_SEPARATE, "phalcon/mvc/model.zep", 3951); } } else { ZEPHIR_INIT_NVAR(lowerKey); @@ -5295,7 +5302,7 @@ PHP_METHOD(Phalcon_Mvc_Model, serialize) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4084); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4095); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -5310,7 +5317,7 @@ PHP_METHOD(Phalcon_Mvc_Model, serialize) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4068 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4079 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } @@ -5364,7 +5371,7 @@ PHP_METHOD(Phalcon_Mvc_Model, unserialize) { ZEPHIR_CALL_CE_STATIC(&dependencyInjector, phalcon_di_ce, "getdefault", &_1); zephir_check_call_status(); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4102); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A dependency injector container is required to obtain the services related to the ORM", "phalcon/mvc/model.zep", 4113); return; } zephir_update_property_this(this_ptr, SL("_dependencyInjector"), dependencyInjector TSRMLS_CC); @@ -5375,13 +5382,13 @@ PHP_METHOD(Phalcon_Mvc_Model, unserialize) { zephir_check_call_status(); ZEPHIR_CPY_WRT(manager, _2); if (Z_TYPE_P(manager) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4115); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/mvc/model.zep", 4126); return; } zephir_update_property_this(this_ptr, SL("_modelsManager"), manager TSRMLS_CC); ZEPHIR_CALL_METHOD(NULL, manager, "initialize", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4134); + zephir_is_iterable(attributes, &_5, &_4, 0, 0, "phalcon/mvc/model.zep", 4145); for ( ; zephir_hash_get_current_data_ex(_5, (void**) &_6, &_4) == SUCCESS ; zephir_hash_move_forward_ex(_5, &_4) @@ -5449,7 +5456,7 @@ PHP_METHOD(Phalcon_Mvc_Model, toArray) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, metaData, "getattributes", NULL, this_ptr); zephir_check_call_status(); - zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4193); + zephir_is_iterable(_0, &_2, &_1, 0, 0, "phalcon/mvc/model.zep", 4204); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_forward_ex(_2, &_1) @@ -5464,7 +5471,7 @@ PHP_METHOD(Phalcon_Mvc_Model, toArray) { ZEPHIR_CONCAT_SVS(_5, "Column '", attribute, "' doesn't make part of the column map"); ZEPHIR_CALL_METHOD(NULL, _4, "__construct", &_6, _5); zephir_check_call_status(); - zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4174 TSRMLS_CC); + zephir_throw_exception_debug(_4, "phalcon/mvc/model.zep", 4185 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } diff --git a/ext/phalcon/mvc/model/criteria.zep.c b/ext/phalcon/mvc/model/criteria.zep.c index 7c9912a15a5..688e6726d6d 100644 --- a/ext/phalcon/mvc/model/criteria.zep.c +++ b/ext/phalcon/mvc/model/criteria.zep.c @@ -37,7 +37,7 @@ * ->andWhere("year < 2000") * ->bind(array("type" => "mechanical")) * ->limit(5, 10) - * ->order("name") + * ->orderBy("name") * ->execute(); * */ diff --git a/ext/phalcon/mvc/model/resultset.zep.c b/ext/phalcon/mvc/model/resultset.zep.c index e00664647bb..e8538079ab8 100644 --- a/ext/phalcon/mvc/model/resultset.zep.c +++ b/ext/phalcon/mvc/model/resultset.zep.c @@ -214,16 +214,17 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); zephir_check_call_status(); zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); - } - while (1) { - _9 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); - if (!(ZEPHIR_LT_LONG(_9, position))) { - break; + } else { + while (1) { + _9 = zephir_fetch_nproperty_this(this_ptr, SL("_pointer"), PH_NOISY_CC); + if (!(ZEPHIR_LT_LONG(_9, position))) { + break; + } + ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); + zephir_check_call_status(); + zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); } - ZEPHIR_CALL_METHOD(&_8, result, "fetch", NULL, result); - zephir_check_call_status(); - zephir_update_property_this(this_ptr, SL("_row"), _8 TSRMLS_CC); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("_pointer") TSRMLS_CC)); } } ZEPHIR_INIT_ZVAL_NREF(_4); @@ -342,7 +343,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 242); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/mvc/model/resultset.zep", 243); return; } @@ -361,7 +362,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetSet) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 253); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 254); return; } @@ -379,7 +380,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetUnset) { offset = zephir_get_intval(offset_param); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 261); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/mvc/model/resultset.zep", 262); return; } @@ -560,7 +561,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, update) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 371); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 372); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -633,7 +634,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete) { } if (transaction == 0) { if (!((zephir_method_exists_ex(record, SS("getwriteconnection") TSRMLS_CC) == SUCCESS))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 434); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/mvc/model/resultset.zep", 435); return; } ZEPHIR_CALL_METHOD(&connection, record, "getwriteconnection", NULL); @@ -711,7 +712,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { _0->funcs->get_current_data(_0, &ZEPHIR_TMP_ITERATOR_PTR TSRMLS_CC); ZEPHIR_CPY_WRT(record, (*ZEPHIR_TMP_ITERATOR_PTR)); } - zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 503); + zephir_array_update_long(¶meters, 0, &record, PH_COPY | PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 504); ZEPHIR_INIT_NVAR(processedRecord); ZEPHIR_CALL_USER_FUNC_ARRAY(processedRecord, filter, parameters); zephir_check_call_status(); @@ -720,7 +721,7 @@ PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { continue; } } - zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 515); + zephir_array_append(&records, processedRecord, PH_SEPARATE, "phalcon/mvc/model/resultset.zep", 516); } _0->funcs->dtor(_0 TSRMLS_CC); RETURN_CCTOR(records); diff --git a/ext/phalcon/paginator/adapter/model.zep.c b/ext/phalcon/paginator/adapter/model.zep.c index 88172313b86..470b711326f 100644 --- a/ext/phalcon/paginator/adapter/model.zep.c +++ b/ext/phalcon/paginator/adapter/model.zep.c @@ -80,9 +80,9 @@ PHP_METHOD(Phalcon_Paginator_Adapter_Model, __construct) { */ PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { - zephir_fcall_cache_entry *_3 = NULL, *_5 = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; int pageNumber, show, n, start, lastShowPage, i, next, totalPages, before, ZEPHIR_LAST_CALL_STATUS; - zval *config, *items, *pageItems, *page, *valid = NULL, *_0, *_1, *_2 = NULL, *_4 = NULL, *_6; + zval *config, *items, *pageItems, *page, *_0, *_1, *_2 = NULL, *_3 = NULL, *_4 = NULL, *_7; ZEPHIR_MM_GROW(); @@ -132,18 +132,20 @@ PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { } i = 1; while (1) { - ZEPHIR_CALL_METHOD(&valid, items, "valid", &_3); + ZEPHIR_CALL_METHOD(&_3, items, "valid", NULL); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(valid)) { + if (!(zephir_is_true(_3))) { break; } ZEPHIR_CALL_METHOD(&_4, items, "current", &_5); zephir_check_call_status(); - zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 127); + zephir_array_append(&pageItems, _4, PH_SEPARATE, "phalcon/paginator/adapter/model.zep", 121); if (i >= show) { break; } i++; + ZEPHIR_CALL_METHOD(NULL, items, "next", &_6); + zephir_check_call_status(); } } next = (pageNumber + 1); @@ -158,29 +160,29 @@ PHP_METHOD(Phalcon_Paginator_Adapter_Model, getPaginate) { ZEPHIR_INIT_VAR(page); object_init(page); zephir_update_property_zval(page, SL("items"), pageItems TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, 1); - zephir_update_property_zval(page, SL("first"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, before); - zephir_update_property_zval(page, SL("before"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, pageNumber); - zephir_update_property_zval(page, SL("current"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, totalPages); - zephir_update_property_zval(page, SL("last"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, next); - zephir_update_property_zval(page, SL("next"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, totalPages); - zephir_update_property_zval(page, SL("total_pages"), _6 TSRMLS_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(_6, n); - zephir_update_property_zval(page, SL("total_items"), _6 TSRMLS_CC); - _6 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); - zephir_update_property_zval(page, SL("limit"), _6 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, 1); + zephir_update_property_zval(page, SL("first"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, before); + zephir_update_property_zval(page, SL("before"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, pageNumber); + zephir_update_property_zval(page, SL("current"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("last"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, next); + zephir_update_property_zval(page, SL("next"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, totalPages); + zephir_update_property_zval(page, SL("total_pages"), _7 TSRMLS_CC); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(_7, n); + zephir_update_property_zval(page, SL("total_items"), _7 TSRMLS_CC); + _7 = zephir_fetch_nproperty_this(this_ptr, SL("_limitRows"), PH_NOISY_CC); + zephir_update_property_zval(page, SL("limit"), _7 TSRMLS_CC); RETURN_CCTOR(page); } diff --git a/ext/phalcon/queue/beanstalk.zep.c b/ext/phalcon/queue/beanstalk.zep.c index db4b4099d6b..f15501b97f9 100644 --- a/ext/phalcon/queue/beanstalk.zep.c +++ b/ext/phalcon/queue/beanstalk.zep.c @@ -132,10 +132,11 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, connect) { */ PHP_METHOD(Phalcon_Queue_Beanstalk, put) { + zend_bool _4; zephir_fcall_cache_entry *_2 = NULL; int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_4; + zval *data, *options = NULL, *priority = NULL, *delay = NULL, *ttr = NULL, *serialized = NULL, *response = NULL, *status, *length, *_1, *_5; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &data, &options); @@ -173,15 +174,15 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, put) { ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_3); zephir_check_call_status(); zephir_array_fetch_long(&status, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 128 TSRMLS_CC); - if (ZEPHIR_IS_STRING(status, "INSERTED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 131 TSRMLS_CC); - RETURN_CTOR(_4); + _4 = !ZEPHIR_IS_STRING(status, "INSERTED"); + if (_4) { + _4 = !ZEPHIR_IS_STRING(status, "BURIED"); } - if (ZEPHIR_IS_STRING(status, "BURIED")) { - zephir_array_fetch_long(&_4, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 135 TSRMLS_CC); - RETURN_CTOR(_4); + if (_4) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_5, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 134 TSRMLS_CC); + RETURN_CTOR(_5); } @@ -212,20 +213,20 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, reserve) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_0); zephir_check_call_status(); - zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 157 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_1, "RESERVED")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 165 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_1, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 153 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_1, "RESERVED")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_2, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + zephir_array_fetch_long(&_4, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 163 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "read", NULL, _4); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_5, "unserialize", &_6, _3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_7, this_ptr, _2, _5); + zephir_check_call_status(); + RETURN_MM(); } @@ -261,12 +262,12 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, choose) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 181 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "USING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 182 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 176 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "USING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 180 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -302,12 +303,12 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, watch) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 198 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "WATCHING")) { - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 199 TSRMLS_CC); - RETURN_CTOR(_3); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 193 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "WATCHING")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 197 TSRMLS_CC); + RETURN_CTOR(_3); } @@ -329,20 +330,20 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, peekReady) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 215 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 216 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 210 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 214 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -364,20 +365,20 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, peekBuried) { zephir_check_call_status(); ZEPHIR_CALL_METHOD(&response, this_ptr, "readstatus", &_1); zephir_check_call_status(); - zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 232 TSRMLS_CC); - if (ZEPHIR_IS_STRING(_2, "FOUND")) { - object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); - zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 233 TSRMLS_CC); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); - zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_long(&_2, response, 0, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 227 TSRMLS_CC); + if (!ZEPHIR_IS_STRING(_2, "FOUND")) { + RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(0); + object_init_ex(return_value, phalcon_queue_beanstalk_job_ce); + zephir_array_fetch_long(&_3, response, 1, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + zephir_array_fetch_long(&_5, response, 2, PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 231 TSRMLS_CC); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "read", NULL, _5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6, "unserialize", &_7, _4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", &_8, this_ptr, _3, _6); + zephir_check_call_status(); + RETURN_MM(); } @@ -440,9 +441,9 @@ PHP_METHOD(Phalcon_Queue_Beanstalk, read) { zephir_check_call_status(); ZEPHIR_CALL_FUNCTION(&_2, "stream_get_meta_data", &_3, connection); zephir_check_call_status(); - zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 273 TSRMLS_CC); + zephir_array_fetch_string(&_4, _2, SL("timed_out"), PH_NOISY | PH_READONLY, "phalcon/queue/beanstalk.zep", 268 TSRMLS_CC); if (zephir_is_true(_4)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 274); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_exception_ce, "Connection timed out", "phalcon/queue/beanstalk.zep", 269); return; } ZEPHIR_SINIT_NVAR(_0); diff --git a/phalcon/cache/backend/memory.zep b/phalcon/cache/backend/memory.zep index 905cf7d0b47..5d29c5f65b7 100644 --- a/phalcon/cache/backend/memory.zep +++ b/phalcon/cache/backend/memory.zep @@ -42,7 +42,7 @@ use Phalcon\Cache\Exception; * * */ -class Memory extends Backend implements BackendInterface +class Memory extends Backend implements BackendInterface, \Serializable { protected _data; @@ -272,4 +272,29 @@ class Memory extends Backend implements BackendInterface let this->_data = null; return true; } + + /** + * Required for interface \Serializable + */ + public function serialize() -> string + { + return serialize([ + "frontend": this->_frontend + ]); + } + + /** + * Required for interface \Serializable + */ + public function unserialize(var data) + { + var unserialized; + + let unserialized = unserialize(data); + if typeof unserialized != "array" { + throw new \Exception("Unserialized data must be an array"); + } + + let this->_frontend = unserialized["frontend"]; + } } diff --git a/phalcon/cli/console.zep b/phalcon/cli/console.zep index 565d14b5e6a..89abe49b787 100644 --- a/phalcon/cli/console.zep +++ b/phalcon/cli/console.zep @@ -140,11 +140,8 @@ class Console implements InjectionAwareInterface, EventsAwareInterface /** * Handle the whole command-line tasks - * - * @param array arguments - * @return mixed */ - public function handle(arguments = null) + public function handle(array arguments = null) { var dependencyInjector, router, eventsManager, moduleName, modules, module, path, className, @@ -157,9 +154,9 @@ class Console implements InjectionAwareInterface, EventsAwareInterface let eventsManager = this->_eventsManager; - let router = <\Phalcon\Cli\Router> dependencyInjector->getShared("router"); + let router = dependencyInjector->getShared("router"); - if !arguments && this->_arguments { + if !count(arguments) && this->_arguments { router->handle(this->_arguments); } else { router->handle(arguments); diff --git a/phalcon/filterinterface.zep b/phalcon/filterinterface.zep index 7108f42a5dd..7da72453fb7 100644 --- a/phalcon/filterinterface.zep +++ b/phalcon/filterinterface.zep @@ -35,7 +35,7 @@ interface FilterInterface /** * Sanizites a value with a specified single or set of filters */ - public function sanitize(value, filters); + public function sanitize(value, filters) -> var; /** * Return the user-defined filters in the instance diff --git a/phalcon/mvc/model.zep b/phalcon/mvc/model.zep index b3dd3ec4f26..4b3c20b82b6 100644 --- a/phalcon/mvc/model.zep +++ b/phalcon/mvc/model.zep @@ -769,7 +769,7 @@ abstract class Model implements ModelInterface, ResultInterface, InjectionAwareI */ public static function findFirst(parameters = null) -> { - var params, builder, query, bindParams, bindTypes, cache; + var params, builder, query, bindParams, bindTypes, cache, resultset, hydration; if typeof parameters != "array" { let params = []; @@ -815,7 +815,18 @@ abstract class Model implements ModelInterface, ResultInterface, InjectionAwareI /** * Execute the query passing the bind-params and casting-types */ - return query->execute(bindParams, bindTypes); + let resultset = query->execute(bindParams, bindTypes); + + /** + * Define an hydration mode + */ + if typeof resultset == "object" { + if fetch hydration, params["hydration"] { + resultset->setHydrateMode(hydration); + } + } + + return resultset; } /** diff --git a/phalcon/mvc/model/criteria.zep b/phalcon/mvc/model/criteria.zep index 3527606c395..bf87fc0320e 100644 --- a/phalcon/mvc/model/criteria.zep +++ b/phalcon/mvc/model/criteria.zep @@ -39,7 +39,7 @@ use Phalcon\Db\Column; * ->andWhere("year < 2000") * ->bind(array("type" => "mechanical")) * ->limit(5, 10) - * ->order("name") + * ->orderBy("name") * ->execute(); * */ diff --git a/phalcon/mvc/model/resultset.zep b/phalcon/mvc/model/resultset.zep index 12e8bd25a69..5b2842d7c7d 100644 --- a/phalcon/mvc/model/resultset.zep +++ b/phalcon/mvc/model/resultset.zep @@ -148,15 +148,16 @@ abstract class Resultset if this->_row === null || this->_pointer > position { result->dataSeek(position); let this->_row = result->$fetch(result); - } - /** - * Requested postion is greater than current pointer, - * seek forward until the requested position is reached. - * We do not need to re-excute the query! - */ - while this->_pointer < position { - let this->_row = result->$fetch(result); - let this->_pointer++; + } else { + /** + * Requested postion is greater than current pointer, + * seek forward until the requested position is reached. + * We do not need to re-excute the query! + */ + while this->_pointer < position { + let this->_row = result->$fetch(result); + let this->_pointer++; + } } } diff --git a/phalcon/mvc/router.zep b/phalcon/mvc/router.zep index 1277551c643..fd316a0ae93 100755 --- a/phalcon/mvc/router.zep +++ b/phalcon/mvc/router.zep @@ -583,10 +583,14 @@ class Router implements InjectionAwareInterface, RouterInterface * Check for parameters */ if fetch paramsStr, parts["params"] { - let strParams = substr(paramsStr, 1); - if strParams { - let params = explode("/", strParams); + if typeof paramsStr == "string" { + let strParams = trim(paramsStr, "/"); + + if strParams { + let params = explode("/", strParams); + } } + unset parts["params"]; } diff --git a/phalcon/mvc/router/route.zep b/phalcon/mvc/router/route.zep index cee1bddbbe4..50c7c138f33 100644 --- a/phalcon/mvc/router/route.zep +++ b/phalcon/mvc/router/route.zep @@ -141,7 +141,7 @@ class Route implements RouteInterface * $route->via(array('GET', 'POST')); * */ - public function via(var httpMethods) -> + public function via(var httpMethods) -> { let this->_methods = httpMethods; return this; @@ -419,7 +419,7 @@ class Route implements RouteInterface * ))->setName('about'); * */ - public function setName(string name) -> + public function setName(string name) -> { let this->_name = name; return this; @@ -430,7 +430,7 @@ class Route implements RouteInterface * The developer can implement any arbitrary conditions here * If the callback returns false the route is treated as not matched */ - public function beforeMatch(callable callback) -> + public function beforeMatch(callable callback) -> { let this->_beforeMatch = callback; return this; @@ -498,7 +498,7 @@ class Route implements RouteInterface * $route->setHttpMethods(array('GET', 'POST')); * */ - public function setHttpMethods(var httpMethods) -> + public function setHttpMethods(var httpMethods) -> { let this->_methods = httpMethods; return this; @@ -519,7 +519,7 @@ class Route implements RouteInterface * $route->setHostname('localhost'); * */ - public function setHostname(string! hostname) -> + public function setHostname(string! hostname) -> { let this->_hostname = hostname; return this; @@ -536,7 +536,7 @@ class Route implements RouteInterface /** * Sets the group associated with the route */ - public function setGroup( group) -> + public function setGroup( group) -> { let this->_group = group; return this; @@ -553,7 +553,7 @@ class Route implements RouteInterface /** * Adds a converter to perform an additional transformation for certain parameter */ - public function convert(string! name, var converter) -> + public function convert(string! name, var converter) -> { let this->_converters[name] = converter; return this; diff --git a/phalcon/paginator/adapter/model.zep b/phalcon/paginator/adapter/model.zep index cdd9877dc94..7d7f212ff18 100644 --- a/phalcon/paginator/adapter/model.zep +++ b/phalcon/paginator/adapter/model.zep @@ -71,7 +71,7 @@ class Model extends Adapter implements AdapterInterface */ public function getPaginate() -> <\stdclass> { - var config, items, pageItems, page, valid; + var config, items, pageItems, page; int pageNumber, show, n, start, lastShowPage, i, next, totalPages, before; @@ -117,18 +117,13 @@ class Model extends Adapter implements AdapterInterface //The record must be iterable let i = 1; - loop { - - let valid = items->valid(); - if valid == false { - break; - } - + while items->valid() { let pageItems[] = items->current(); if i >= show { break; } let i++; + items->next(); } } diff --git a/phalcon/queue/beanstalk.zep b/phalcon/queue/beanstalk.zep index 6feebeac17a..c809161334e 100644 --- a/phalcon/queue/beanstalk.zep +++ b/phalcon/queue/beanstalk.zep @@ -127,15 +127,11 @@ class Beanstalk let response = this->readStatus(); let status = response[0]; - if status == "INSERTED" { - return response[1]; - } - - if status == "BURIED" { - return response[1]; + if status != "INSERTED" && status != "BURIED" { + return false; } - return false; + return response[1]; } /** @@ -154,18 +150,17 @@ class Beanstalk this->write(command); let response = this->readStatus(); - if response[0] == "RESERVED" { - - /** - * The job is in the first position - * Next is the job length - * The body is serialized - * Create a beanstalk job abstraction - */ - return new Job(this, response[1], unserialize(this->read(response[2]))); + if response[0] != "RESERVED" { + return false; } - return false; + /** + * The job is in the first position + * Next is the job length + * The body is serialized + * Create a beanstalk job abstraction + */ + return new Job(this, response[1], unserialize(this->read(response[2]))); } /** @@ -178,11 +173,11 @@ class Beanstalk this->write("use " . tube); let response = this->readStatus(); - if response[0] == "USING" { - return response[1]; + if response[0] != "USING" { + return false; } - return false; + return response[1]; } /** @@ -195,11 +190,11 @@ class Beanstalk this->write("watch " . tube); let response = this->readStatus(); - if response[0] == "WATCHING" { - return response[1]; + if response[0] != "WATCHING" { + return false; } - return false; + return response[1]; } /** @@ -212,11 +207,11 @@ class Beanstalk this->write("peek-ready"); let response = this->readStatus(); - if response[0] == "FOUND" { - return new Job(this, response[1], unserialize(this->read(response[2]))); + if response[0] != "FOUND" { + return false; } - return false; + return new Job(this, response[1], unserialize(this->read(response[2]))); } /** @@ -229,11 +224,11 @@ class Beanstalk this->write("peek-buried"); let response = this->readStatus(); - if response[0] == "FOUND" { - return new Job(this, response[1], unserialize(this->read(response[2]))); + if response[0] != "FOUND" { + return false; } - return false; + return new Job(this, response[1], unserialize(this->read(response[2]))); } /** diff --git a/unit-tests/ModelsResultsetTest.php b/unit-tests/ModelsResultsetTest.php index 128c723666a..9c793de28a4 100644 --- a/unit-tests/ModelsResultsetTest.php +++ b/unit-tests/ModelsResultsetTest.php @@ -600,6 +600,8 @@ public function testBigResultsetIteration() { $this->assertEquals(count($personas), 33); + $this->assertEquals(get_class($personas->getLast()), 'Personas'); + // take first object as reference $persona_first = $personas[0]; $this->assertEquals(get_class($persona_first), 'Personas'); @@ -652,6 +654,10 @@ public function testBigResultsetIteration() { $this->assertEquals(get_class($personas[1]), 'Personas'); $this->assertSame($personas->current(), $personas[1]); $this->assertEquals($persona_second, $personas[1]); + + // pick some random indices + $this->assertEquals(get_class($personas[12]), 'Personas'); + $this->assertEquals(get_class($personas[23]), 'Personas'); + $this->assertEquals(get_class($personas[23]), 'Personas'); } - } \ No newline at end of file
KeyValue