diff options
Diffstat (limited to 'upb/json/parser.c')
-rw-r--r-- | upb/json/parser.c | 99 |
1 files changed, 50 insertions, 49 deletions
diff --git a/upb/json/parser.c b/upb/json/parser.c index 78fc6c0..fe2b586 100644 --- a/upb/json/parser.c +++ b/upb/json/parser.c @@ -33,7 +33,7 @@ #include "upb/json/parser.h" -#define CHECK_RETURN(x) if (!(x)) return false +#define PARSER_CHECK_RETURN(x) if (!(x)) return false static upb_selector_t getsel_for_handlertype(upb_json_parser *p, upb_handlertype_t type) { @@ -43,7 +43,7 @@ static upb_selector_t getsel_for_handlertype(upb_json_parser *p, return sel; } -static upb_selector_t getsel(upb_json_parser *p) { +static upb_selector_t parser_getsel(upb_json_parser *p) { return getsel_for_handlertype( p, upb_handlers_getprimitivehandlertype(p->top->f)); } @@ -153,7 +153,7 @@ static void end_array(upb_json_parser *p) { static void clear_member(upb_json_parser *p) { p->top->f = NULL; } -static bool putbool(upb_json_parser *p, bool val) { +static bool parser_putbool(upb_json_parser *p, bool val) { if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL) { upb_status_seterrf(p->status, "Boolean value specified for non-bool field: %s", @@ -161,7 +161,7 @@ static bool putbool(upb_json_parser *p, bool val) { return false; } - bool ok = upb_sink_putbool(&p->top->sink, getsel(p), val); + bool ok = upb_sink_putbool(&p->top->sink, parser_getsel(p), val); UPB_ASSERT_VAR(ok, ok); return true; } @@ -297,7 +297,8 @@ static bool end_text(upb_json_parser *p, const char *ptr, bool is_num) { // This is a string field (as opposed to a member name). upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); if (upb_fielddef_type(p->top->f) == UPB_TYPE_BYTES) { - CHECK_RETURN(base64_push(p, sel, p->accumulated, p->accumulated_len)); + PARSER_CHECK_RETURN(base64_push(p, sel, p->accumulated, + p->accumulated_len)); } else { upb_sink_putstring(&p->top->sink, sel, p->accumulated, p->accumulated_len, NULL); } @@ -313,7 +314,7 @@ static bool end_text(upb_json_parser *p, const char *ptr, bool is_num) { int32_t int_val = 0; if (upb_enumdef_ntoi(enumdef, p->accumulated, p->accumulated_len, &int_val)) { - upb_selector_t sel = getsel(p); + upb_selector_t sel = parser_getsel(p); upb_sink_putint32(&p->top->sink, sel, int_val); } else { upb_status_seterrmsg(p->status, "Enum value name unknown"); @@ -379,7 +380,7 @@ static void end_number(upb_json_parser *p, const char *ptr) { if (val > INT32_MAX || val < INT32_MIN || errno == ERANGE || end != myend) assert(false); else - upb_sink_putint32(&p->top->sink, getsel(p), val); + upb_sink_putint32(&p->top->sink, parser_getsel(p), val); break; } case UPB_TYPE_INT64: { @@ -387,7 +388,7 @@ static void end_number(upb_json_parser *p, const char *ptr) { if (val > INT64_MAX || val < INT64_MIN || errno == ERANGE || end != myend) assert(false); else - upb_sink_putint64(&p->top->sink, getsel(p), val); + upb_sink_putint64(&p->top->sink, parser_getsel(p), val); break; } case UPB_TYPE_UINT32: { @@ -395,7 +396,7 @@ static void end_number(upb_json_parser *p, const char *ptr) { if (val > UINT32_MAX || errno == ERANGE || end != myend) assert(false); else - upb_sink_putuint32(&p->top->sink, getsel(p), val); + upb_sink_putuint32(&p->top->sink, parser_getsel(p), val); break; } case UPB_TYPE_UINT64: { @@ -403,7 +404,7 @@ static void end_number(upb_json_parser *p, const char *ptr) { if (val > UINT64_MAX || errno == ERANGE || end != myend) assert(false); else - upb_sink_putuint64(&p->top->sink, getsel(p), val); + upb_sink_putuint64(&p->top->sink, parser_getsel(p), val); break; } case UPB_TYPE_DOUBLE: { @@ -411,7 +412,7 @@ static void end_number(upb_json_parser *p, const char *ptr) { if (errno == ERANGE || end != myend) assert(false); else - upb_sink_putdouble(&p->top->sink, getsel(p), val); + upb_sink_putdouble(&p->top->sink, parser_getsel(p), val); break; } case UPB_TYPE_FLOAT: { @@ -419,7 +420,7 @@ static void end_number(upb_json_parser *p, const char *ptr) { if (errno == ERANGE || end != myend) assert(false); else - upb_sink_putfloat(&p->top->sink, getsel(p), val); + upb_sink_putfloat(&p->top->sink, parser_getsel(p), val); break; } default: @@ -505,11 +506,11 @@ static void hex(upb_json_parser *p, const char *end) { // What follows is the Ragel parser itself. The language is specified in Ragel // and the actions call our C functions above. -#line 595 "upb/json/parser.rl" +#line 596 "upb/json/parser.rl" -#line 513 "upb/json/parser.c" +#line 514 "upb/json/parser.c" static const char _json_actions[] = { 0, 1, 0, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, @@ -662,7 +663,7 @@ static const int json_en_value_machine = 27; static const int json_en_main = 1; -#line 598 "upb/json/parser.rl" +#line 599 "upb/json/parser.rl" size_t parse(void *closure, const void *hd, const char *buf, size_t size, const upb_bufhandle *handle) { @@ -679,7 +680,7 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, const char *pe = buf + size; -#line 683 "upb/json/parser.c" +#line 684 "upb/json/parser.c" { int _klen; unsigned int _trans; @@ -754,114 +755,114 @@ _match: switch ( *_acts++ ) { case 0: -#line 516 "upb/json/parser.rl" +#line 517 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; case 1: -#line 517 "upb/json/parser.rl" +#line 518 "upb/json/parser.rl" { p--; {stack[top++] = cs; cs = 10; goto _again;} } break; case 2: -#line 521 "upb/json/parser.rl" +#line 522 "upb/json/parser.rl" { start_text(parser, p); } break; case 3: -#line 522 "upb/json/parser.rl" +#line 523 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_text(parser, p, false)); } break; case 4: -#line 528 "upb/json/parser.rl" +#line 529 "upb/json/parser.rl" { start_hex(parser, p); } break; case 5: -#line 529 "upb/json/parser.rl" +#line 530 "upb/json/parser.rl" { hex(parser, p); } break; case 6: -#line 535 "upb/json/parser.rl" +#line 536 "upb/json/parser.rl" { escape(parser, p); } break; case 7: -#line 538 "upb/json/parser.rl" +#line 539 "upb/json/parser.rl" { {cs = stack[--top]; goto _again;} } break; case 8: -#line 539 "upb/json/parser.rl" +#line 540 "upb/json/parser.rl" { {stack[top++] = cs; cs = 19; goto _again;} } break; case 9: -#line 541 "upb/json/parser.rl" +#line 542 "upb/json/parser.rl" { p--; {stack[top++] = cs; cs = 27; goto _again;} } break; case 10: -#line 546 "upb/json/parser.rl" +#line 547 "upb/json/parser.rl" { start_member(parser); } break; case 11: -#line 547 "upb/json/parser.rl" +#line 548 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_member(parser)); } break; case 12: -#line 550 "upb/json/parser.rl" +#line 551 "upb/json/parser.rl" { clear_member(parser); } break; case 13: -#line 556 "upb/json/parser.rl" +#line 557 "upb/json/parser.rl" { start_object(parser); } break; case 14: -#line 559 "upb/json/parser.rl" +#line 560 "upb/json/parser.rl" { end_object(parser); } break; case 15: -#line 565 "upb/json/parser.rl" +#line 566 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_array(parser)); } break; case 16: -#line 569 "upb/json/parser.rl" +#line 570 "upb/json/parser.rl" { end_array(parser); } break; case 17: -#line 574 "upb/json/parser.rl" +#line 575 "upb/json/parser.rl" { start_number(parser, p); } break; case 18: -#line 575 "upb/json/parser.rl" +#line 576 "upb/json/parser.rl" { end_number(parser, p); } break; case 19: -#line 577 "upb/json/parser.rl" +#line 578 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_stringval(parser)); } break; case 20: -#line 578 "upb/json/parser.rl" +#line 579 "upb/json/parser.rl" { end_stringval(parser); } break; case 21: -#line 580 "upb/json/parser.rl" - { CHECK_RETURN_TOP(putbool(parser, true)); } +#line 581 "upb/json/parser.rl" + { CHECK_RETURN_TOP(parser_putbool(parser, true)); } break; case 22: -#line 582 "upb/json/parser.rl" - { CHECK_RETURN_TOP(putbool(parser, false)); } +#line 583 "upb/json/parser.rl" + { CHECK_RETURN_TOP(parser_putbool(parser, false)); } break; case 23: -#line 584 "upb/json/parser.rl" +#line 585 "upb/json/parser.rl" { /* null value */ } break; case 24: -#line 586 "upb/json/parser.rl" +#line 587 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_subobject(parser)); } break; case 25: -#line 587 "upb/json/parser.rl" +#line 588 "upb/json/parser.rl" { end_subobject(parser); } break; case 26: -#line 592 "upb/json/parser.rl" +#line 593 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; -#line 865 "upb/json/parser.c" +#line 866 "upb/json/parser.c" } } @@ -874,7 +875,7 @@ _again: _out: {} } -#line 614 "upb/json/parser.rl" +#line 615 "upb/json/parser.rl" if (p != pe) { upb_status_seterrf(parser->status, "Parse error at %s\n", p); @@ -915,13 +916,13 @@ void upb_json_parser_reset(upb_json_parser *p) { int top; // Emit Ragel initialization of the parser. -#line 919 "upb/json/parser.c" +#line 920 "upb/json/parser.c" { cs = json_start; top = 0; } -#line 654 "upb/json/parser.rl" +#line 655 "upb/json/parser.rl" p->current_state = cs; p->parser_top = top; p->text_begin = NULL; |