mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Use embedded json parser method structure
This commit is contained in:
parent
93b67dd511
commit
37048c0f6c
3 changed files with 27 additions and 27 deletions
|
@ -1464,7 +1464,7 @@ yyreduce:
|
||||||
|
|
||||||
{
|
{
|
||||||
PHP_JSON_DEPTH_INC;
|
PHP_JSON_DEPTH_INC;
|
||||||
if (parser->methods->object_start && FAILURE == parser->methods->object_start(parser)) {
|
if (parser->methods.object_start && FAILURE == parser->methods.object_start(parser)) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1476,7 +1476,7 @@ yyreduce:
|
||||||
{
|
{
|
||||||
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
|
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
|
||||||
PHP_JSON_DEPTH_DEC;
|
PHP_JSON_DEPTH_DEC;
|
||||||
if (parser->methods->object_end && FAILURE == parser->methods->object_end(parser, &(yyval.value))) {
|
if (parser->methods.object_end && FAILURE == parser->methods.object_end(parser, &(yyval.value))) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1495,7 +1495,7 @@ yyreduce:
|
||||||
case 8:
|
case 8:
|
||||||
|
|
||||||
{
|
{
|
||||||
parser->methods->object_create(parser, &(yyval.value));
|
parser->methods.object_create(parser, &(yyval.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -1503,8 +1503,8 @@ yyreduce:
|
||||||
case 10:
|
case 10:
|
||||||
|
|
||||||
{
|
{
|
||||||
parser->methods->object_create(parser, &(yyval.value));
|
parser->methods.object_create(parser, &(yyval.value));
|
||||||
if (parser->methods->object_update(parser, &(yyval.value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
|
if (parser->methods.object_update(parser, &(yyval.value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1514,7 +1514,7 @@ yyreduce:
|
||||||
case 11:
|
case 11:
|
||||||
|
|
||||||
{
|
{
|
||||||
if (parser->methods->object_update(parser, &(yyvsp[-2].value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
|
if (parser->methods.object_update(parser, &(yyvsp[-2].value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
|
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
|
||||||
|
@ -1551,7 +1551,7 @@ yyreduce:
|
||||||
|
|
||||||
{
|
{
|
||||||
PHP_JSON_DEPTH_INC;
|
PHP_JSON_DEPTH_INC;
|
||||||
if (parser->methods->array_start && FAILURE == parser->methods->array_start(parser)) {
|
if (parser->methods.array_start && FAILURE == parser->methods.array_start(parser)) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1563,7 +1563,7 @@ yyreduce:
|
||||||
{
|
{
|
||||||
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
|
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
|
||||||
PHP_JSON_DEPTH_DEC;
|
PHP_JSON_DEPTH_DEC;
|
||||||
if (parser->methods->array_end && FAILURE == parser->methods->array_end(parser, &(yyval.value))) {
|
if (parser->methods.array_end && FAILURE == parser->methods.array_end(parser, &(yyval.value))) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1582,7 +1582,7 @@ yyreduce:
|
||||||
case 19:
|
case 19:
|
||||||
|
|
||||||
{
|
{
|
||||||
parser->methods->array_create(parser, &(yyval.value));
|
parser->methods.array_create(parser, &(yyval.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -1590,8 +1590,8 @@ yyreduce:
|
||||||
case 21:
|
case 21:
|
||||||
|
|
||||||
{
|
{
|
||||||
parser->methods->array_create(parser, &(yyval.value));
|
parser->methods.array_create(parser, &(yyval.value));
|
||||||
parser->methods->array_append(parser, &(yyval.value), &(yyvsp[0].value));
|
parser->methods.array_append(parser, &(yyval.value), &(yyvsp[0].value));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -1599,7 +1599,7 @@ yyreduce:
|
||||||
case 22:
|
case 22:
|
||||||
|
|
||||||
{
|
{
|
||||||
parser->methods->array_append(parser, &(yyvsp[-2].value), &(yyvsp[0].value));
|
parser->methods.array_append(parser, &(yyvsp[-2].value), &(yyvsp[0].value));
|
||||||
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
|
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1947,7 +1947,7 @@ void php_json_parser_init_ex(php_json_parser *parser,
|
||||||
parser->depth = 1;
|
parser->depth = 1;
|
||||||
parser->max_depth = max_depth;
|
parser->max_depth = max_depth;
|
||||||
parser->return_value = return_value;
|
parser->return_value = return_value;
|
||||||
parser->methods = parser_methods;
|
memcpy(&parser->methods, parser_methods, sizeof(php_json_parser_methods));
|
||||||
}
|
}
|
||||||
|
|
||||||
void php_json_parser_init(php_json_parser *parser,
|
void php_json_parser_init(php_json_parser *parser,
|
||||||
|
|
|
@ -102,7 +102,7 @@ object:
|
||||||
'{'
|
'{'
|
||||||
{
|
{
|
||||||
PHP_JSON_DEPTH_INC;
|
PHP_JSON_DEPTH_INC;
|
||||||
if (parser->methods->object_start && FAILURE == parser->methods->object_start(parser)) {
|
if (parser->methods.object_start && FAILURE == parser->methods.object_start(parser)) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ object:
|
||||||
{
|
{
|
||||||
ZVAL_COPY_VALUE(&$$, &$3);
|
ZVAL_COPY_VALUE(&$$, &$3);
|
||||||
PHP_JSON_DEPTH_DEC;
|
PHP_JSON_DEPTH_DEC;
|
||||||
if (parser->methods->object_end && FAILURE == parser->methods->object_end(parser, &$$)) {
|
if (parser->methods.object_end && FAILURE == parser->methods.object_end(parser, &$$)) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ object_end:
|
||||||
members:
|
members:
|
||||||
/* empty */
|
/* empty */
|
||||||
{
|
{
|
||||||
parser->methods->object_create(parser, &$$);
|
parser->methods.object_create(parser, &$$);
|
||||||
}
|
}
|
||||||
| member
|
| member
|
||||||
;
|
;
|
||||||
|
@ -136,14 +136,14 @@ members:
|
||||||
member:
|
member:
|
||||||
pair
|
pair
|
||||||
{
|
{
|
||||||
parser->methods->object_create(parser, &$$);
|
parser->methods.object_create(parser, &$$);
|
||||||
if (parser->methods->object_update(parser, &$$, $1.key, &$1.val) == FAILURE) {
|
if (parser->methods.object_update(parser, &$$, $1.key, &$1.val) == FAILURE) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
| member ',' pair
|
| member ',' pair
|
||||||
{
|
{
|
||||||
if (parser->methods->object_update(parser, &$1, $3.key, &$3.val) == FAILURE) {
|
if (parser->methods.object_update(parser, &$1, $3.key, &$3.val) == FAILURE) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
ZVAL_COPY_VALUE(&$$, &$1);
|
ZVAL_COPY_VALUE(&$$, &$1);
|
||||||
|
@ -170,7 +170,7 @@ array:
|
||||||
'['
|
'['
|
||||||
{
|
{
|
||||||
PHP_JSON_DEPTH_INC;
|
PHP_JSON_DEPTH_INC;
|
||||||
if (parser->methods->array_start && FAILURE == parser->methods->array_start(parser)) {
|
if (parser->methods.array_start && FAILURE == parser->methods.array_start(parser)) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -178,7 +178,7 @@ array:
|
||||||
{
|
{
|
||||||
ZVAL_COPY_VALUE(&$$, &$3);
|
ZVAL_COPY_VALUE(&$$, &$3);
|
||||||
PHP_JSON_DEPTH_DEC;
|
PHP_JSON_DEPTH_DEC;
|
||||||
if (parser->methods->array_end && FAILURE == parser->methods->array_end(parser, &$$)) {
|
if (parser->methods.array_end && FAILURE == parser->methods.array_end(parser, &$$)) {
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ array_end:
|
||||||
elements:
|
elements:
|
||||||
/* empty */
|
/* empty */
|
||||||
{
|
{
|
||||||
parser->methods->array_create(parser, &$$);
|
parser->methods.array_create(parser, &$$);
|
||||||
}
|
}
|
||||||
| element
|
| element
|
||||||
;
|
;
|
||||||
|
@ -204,12 +204,12 @@ elements:
|
||||||
element:
|
element:
|
||||||
value
|
value
|
||||||
{
|
{
|
||||||
parser->methods->array_create(parser, &$$);
|
parser->methods.array_create(parser, &$$);
|
||||||
parser->methods->array_append(parser, &$$, &$1);
|
parser->methods.array_append(parser, &$$, &$1);
|
||||||
}
|
}
|
||||||
| element ',' value
|
| element ',' value
|
||||||
{
|
{
|
||||||
parser->methods->array_append(parser, &$1, &$3);
|
parser->methods.array_append(parser, &$1, &$3);
|
||||||
ZVAL_COPY_VALUE(&$$, &$1);
|
ZVAL_COPY_VALUE(&$$, &$1);
|
||||||
}
|
}
|
||||||
| element errlex
|
| element errlex
|
||||||
|
@ -339,7 +339,7 @@ void php_json_parser_init_ex(php_json_parser *parser,
|
||||||
parser->depth = 1;
|
parser->depth = 1;
|
||||||
parser->max_depth = max_depth;
|
parser->max_depth = max_depth;
|
||||||
parser->return_value = return_value;
|
parser->return_value = return_value;
|
||||||
parser->methods = parser_methods;
|
memcpy(&parser->methods, parser_methods, sizeof(php_json_parser_methods));
|
||||||
}
|
}
|
||||||
|
|
||||||
void php_json_parser_init(php_json_parser *parser,
|
void php_json_parser_init(php_json_parser *parser,
|
||||||
|
|
|
@ -57,7 +57,7 @@ struct _php_json_parser {
|
||||||
zval *return_value;
|
zval *return_value;
|
||||||
unsigned int depth;
|
unsigned int depth;
|
||||||
int max_depth;
|
int max_depth;
|
||||||
const php_json_parser_methods *methods;
|
php_json_parser_methods methods;
|
||||||
};
|
};
|
||||||
|
|
||||||
PHP_JSON_API void php_json_parser_init_ex(
|
PHP_JSON_API void php_json_parser_init_ex(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue