From 2ee94551746b1099ed4b0eddd2bbae90be60e9a2 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 13 Feb 2014 13:22:47 -0800 Subject: [PATCH] Give tokens descriptive names in json grammar --- spec/fixtures/grammars/json.cpp | 25 +- spec/fixtures/parsers/json.c | 578 ++++++++++++++++---------------- 2 files changed, 305 insertions(+), 298 deletions(-) diff --git a/spec/fixtures/grammars/json.cpp b/spec/fixtures/grammars/json.cpp index 5efc608c..14e000c7 100644 --- a/spec/fixtures/grammars/json.cpp +++ b/spec/fixtures/grammars/json.cpp @@ -8,31 +8,31 @@ static rule_ptr comma_sep(const rule_ptr &rule) { return seq({ rule, choice({ - repeat(seq({ str(","), rule })), - blank() - }) + repeat(seq({ aux_sym("comma"), rule })), + blank(), + }), }); } namespace test_grammars { Grammar json() { - return Grammar({ + return Grammar("value", { { "value", choice({ sym("object"), sym("array"), sym("string"), sym("number") }) }, { "object", seq({ - str("{"), + aux_sym("left_brace"), comma_sep(seq({ sym("string"), - str(":"), + aux_sym("colon"), sym("value") })), - str("}"), }) }, + aux_sym("right_brace"), }) }, { "array", seq({ - str("["), + aux_sym("left_bracket"), comma_sep(sym("value")), - str("]"), }) }, + aux_sym("right_bracket"), }) }, { "string", seq({ character('"'), repeat(choice({ @@ -41,6 +41,13 @@ namespace test_grammars { })), character('"') }) }, { "number", pattern("\\d+") } + }, { + { "comma", str(",") }, + { "colon", str(":") }, + { "left_bracket", str("[") }, + { "right_bracket", str("]") }, + { "left_brace", str("{") }, + { "right_brace", str("}") }, }); } } diff --git a/spec/fixtures/parsers/json.c b/spec/fixtures/parsers/json.c index 2df4d80b..2bbc83a4 100644 --- a/spec/fixtures/parsers/json.c +++ b/spec/fixtures/parsers/json.c @@ -7,15 +7,15 @@ enum ts_symbol { ts_symbol_object, ts_symbol_string, ts_symbol_value, + ts_aux_colon, + ts_aux_comma, ts_aux_end, + ts_aux_left_brace, + ts_aux_left_bracket, ts_aux_repeat_helper1, ts_aux_repeat_helper2, - ts_aux_token1, - ts_aux_token2, - ts_aux_token3, - ts_aux_token4, - ts_aux_token5, - ts_aux_token6, + ts_aux_right_brace, + ts_aux_right_bracket, }; static const char *ts_symbol_names[] = { @@ -24,15 +24,15 @@ static const char *ts_symbol_names[] = { "object", "string", "value", + "colon", + "comma", "end", + "left_brace", + "left_bracket", "repeat_helper1", "repeat_helper2", - "token1", - "token2", - "token3", - "token4", - "token5", - "token6", + "right_brace", + "right_bracket", }; static void ts_lex(TSParser *parser) { @@ -47,29 +47,29 @@ static void ts_lex(TSParser *parser) { case 2: if (LOOKAHEAD_CHAR() == ',') ADVANCE(3); - if (LOOKAHEAD_CHAR() == ']') + if (LOOKAHEAD_CHAR() == '}') ADVANCE(4); - LEX_ERROR(2, EXPECT({",", "]"})); + LEX_ERROR(2, EXPECT({",", "}"})); case 3: - ACCEPT_TOKEN(ts_aux_token2); + ACCEPT_TOKEN(ts_aux_comma); case 4: - ACCEPT_TOKEN(ts_aux_token3); + ACCEPT_TOKEN(ts_aux_right_brace); case 5: - if (LOOKAHEAD_CHAR() == ']') + if (LOOKAHEAD_CHAR() == '}') ADVANCE(4); - LEX_ERROR(1, EXPECT({"]"})); + LEX_ERROR(1, EXPECT({"}"})); case 6: if (LOOKAHEAD_CHAR() == ',') ADVANCE(3); - if (LOOKAHEAD_CHAR() == '}') + if (LOOKAHEAD_CHAR() == ']') ADVANCE(7); - LEX_ERROR(2, EXPECT({",", "}"})); + LEX_ERROR(2, EXPECT({",", "]"})); case 7: - ACCEPT_TOKEN(ts_aux_token6); + ACCEPT_TOKEN(ts_aux_right_bracket); case 8: - if (LOOKAHEAD_CHAR() == '}') + if (LOOKAHEAD_CHAR() == ']') ADVANCE(7); - LEX_ERROR(1, EXPECT({"}"})); + LEX_ERROR(1, EXPECT({"]"})); case 9: if (LOOKAHEAD_CHAR() == '\"') ADVANCE(10); @@ -137,15 +137,15 @@ static void ts_lex(TSParser *parser) { ADVANCE(16); ACCEPT_TOKEN(ts_symbol_number); case 17: - ACCEPT_TOKEN(ts_aux_token1); + ACCEPT_TOKEN(ts_aux_left_bracket); case 18: - ACCEPT_TOKEN(ts_aux_token4); + ACCEPT_TOKEN(ts_aux_left_brace); case 19: if (LOOKAHEAD_CHAR() == ':') ADVANCE(20); LEX_ERROR(1, EXPECT({":"})); case 20: - ACCEPT_TOKEN(ts_aux_token5); + ACCEPT_TOKEN(ts_aux_colon); case 21: if (LOOKAHEAD_CHAR() == '\"') ADVANCE(10); @@ -172,10 +172,10 @@ static TSParseResult ts_parse(const char *input) { SHIFT(1); case ts_symbol_value: SHIFT(2); - case ts_aux_token1: + case ts_aux_left_brace: SHIFT(3); - case ts_aux_token4: - SHIFT(42); + case ts_aux_left_bracket: + SHIFT(44); default: PARSE_PANIC(); } @@ -196,292 +196,290 @@ static TSParseResult ts_parse(const char *input) { PARSE_PANIC(); } case 3: - SET_LEX_STATE(9); + SET_LEX_STATE(21); switch (LOOKAHEAD_SYM()) { - case ts_symbol_array: - SHIFT(4); - case ts_symbol_number: - SHIFT(4); - case ts_symbol_object: - SHIFT(4); case ts_symbol_string: SHIFT(4); - case ts_symbol_value: - SHIFT(5); - case ts_aux_token1: - SHIFT(11); - case ts_aux_token4: - SHIFT(16); default: PARSE_PANIC(); } case 4: - SET_LEX_STATE(2); + SET_LEX_STATE(19); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_value, 1, COLLAPSE({0})); - case ts_aux_token3: - REDUCE(ts_symbol_value, 1, COLLAPSE({0})); + case ts_aux_colon: + SHIFT(5); default: PARSE_PANIC(); } case 5: - SET_LEX_STATE(2); + SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper1: + case ts_symbol_array: SHIFT(6); - case ts_aux_token2: - SHIFT(8); - case ts_aux_token3: - SHIFT(41); + case ts_symbol_number: + SHIFT(6); + case ts_symbol_object: + SHIFT(6); + case ts_symbol_string: + SHIFT(6); + case ts_symbol_value: + SHIFT(7); + case ts_aux_left_brace: + SHIFT(13); + case ts_aux_left_bracket: + SHIFT(20); default: PARSE_PANIC(); } case 6: - SET_LEX_STATE(5); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_aux_token3: - SHIFT(7); + case ts_aux_comma: + REDUCE(ts_symbol_value, 1, COLLAPSE({0})); + case ts_aux_right_brace: + REDUCE(ts_symbol_value, 1, COLLAPSE({0})); default: PARSE_PANIC(); } case 7: - SET_LEX_STATE(0); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_aux_end: - REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); + case ts_aux_comma: + SHIFT(8); + case ts_aux_repeat_helper2: + SHIFT(41); + case ts_aux_right_brace: + SHIFT(43); default: PARSE_PANIC(); } case 8: - SET_LEX_STATE(9); + SET_LEX_STATE(21); switch (LOOKAHEAD_SYM()) { - case ts_symbol_array: - SHIFT(4); - case ts_symbol_number: - SHIFT(4); - case ts_symbol_object: - SHIFT(4); case ts_symbol_string: - SHIFT(4); - case ts_symbol_value: SHIFT(9); - case ts_aux_token1: - SHIFT(11); - case ts_aux_token4: - SHIFT(16); default: PARSE_PANIC(); } case 9: - SET_LEX_STATE(2); + SET_LEX_STATE(19); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper1: + case ts_aux_colon: SHIFT(10); - case ts_aux_token2: - SHIFT(8); - case ts_aux_token3: - REDUCE(ts_aux_repeat_helper1, 2, COLLAPSE({1, 0})); default: PARSE_PANIC(); } case 10: - SET_LEX_STATE(5); + SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { - case ts_aux_token3: - REDUCE(ts_aux_repeat_helper1, 3, COLLAPSE({1, 0, 1})); + case ts_symbol_array: + SHIFT(6); + case ts_symbol_number: + SHIFT(6); + case ts_symbol_object: + SHIFT(6); + case ts_symbol_string: + SHIFT(6); + case ts_symbol_value: + SHIFT(11); + case ts_aux_left_brace: + SHIFT(13); + case ts_aux_left_bracket: + SHIFT(20); default: PARSE_PANIC(); } case 11: - SET_LEX_STATE(9); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_symbol_array: - SHIFT(4); - case ts_symbol_number: - SHIFT(4); - case ts_symbol_object: - SHIFT(4); - case ts_symbol_string: - SHIFT(4); - case ts_symbol_value: + case ts_aux_comma: + SHIFT(8); + case ts_aux_repeat_helper2: SHIFT(12); - case ts_aux_token1: - SHIFT(11); - case ts_aux_token4: - SHIFT(16); + case ts_aux_right_brace: + REDUCE(ts_aux_repeat_helper2, 4, COLLAPSE({1, 0, 1, 0})); default: PARSE_PANIC(); } case 12: - SET_LEX_STATE(2); + SET_LEX_STATE(5); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper1: - SHIFT(13); - case ts_aux_token2: - SHIFT(8); - case ts_aux_token3: - SHIFT(15); + case ts_aux_right_brace: + REDUCE(ts_aux_repeat_helper2, 5, COLLAPSE({1, 0, 1, 0, 1})); default: PARSE_PANIC(); } case 13: - SET_LEX_STATE(5); + SET_LEX_STATE(21); switch (LOOKAHEAD_SYM()) { - case ts_aux_token3: + case ts_symbol_string: SHIFT(14); default: PARSE_PANIC(); } case 14: - SET_LEX_STATE(2); + SET_LEX_STATE(19); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); - case ts_aux_token3: - REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); + case ts_aux_colon: + SHIFT(15); default: PARSE_PANIC(); } case 15: - SET_LEX_STATE(2); + SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); - case ts_aux_token3: - REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); + case ts_symbol_array: + SHIFT(6); + case ts_symbol_number: + SHIFT(6); + case ts_symbol_object: + SHIFT(6); + case ts_symbol_string: + SHIFT(6); + case ts_symbol_value: + SHIFT(16); + case ts_aux_left_brace: + SHIFT(13); + case ts_aux_left_bracket: + SHIFT(20); default: PARSE_PANIC(); } case 16: - SET_LEX_STATE(21); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_symbol_string: + case ts_aux_comma: + SHIFT(8); + case ts_aux_repeat_helper2: SHIFT(17); + case ts_aux_right_brace: + SHIFT(19); default: PARSE_PANIC(); } case 17: - SET_LEX_STATE(19); + SET_LEX_STATE(5); switch (LOOKAHEAD_SYM()) { - case ts_aux_token5: + case ts_aux_right_brace: SHIFT(18); default: PARSE_PANIC(); } case 18: - SET_LEX_STATE(9); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_symbol_array: - SHIFT(19); - case ts_symbol_number: - SHIFT(19); - case ts_symbol_object: - SHIFT(19); - case ts_symbol_string: - SHIFT(19); - case ts_symbol_value: - SHIFT(20); - case ts_aux_token1: - SHIFT(28); - case ts_aux_token4: - SHIFT(33); + case ts_aux_comma: + REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); + case ts_aux_right_brace: + REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); default: PARSE_PANIC(); } case 19: - SET_LEX_STATE(6); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_value, 1, COLLAPSE({0})); - case ts_aux_token6: - REDUCE(ts_symbol_value, 1, COLLAPSE({0})); + case ts_aux_comma: + REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); + case ts_aux_right_brace: + REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); default: PARSE_PANIC(); } case 20: - SET_LEX_STATE(6); - switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper2: - SHIFT(21); - case ts_aux_token2: - SHIFT(23); - case ts_aux_token6: - SHIFT(40); - default: - PARSE_PANIC(); - } - case 21: - SET_LEX_STATE(8); - switch (LOOKAHEAD_SYM()) { - case ts_aux_token6: - SHIFT(22); - default: - PARSE_PANIC(); - } - case 22: - SET_LEX_STATE(2); - switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); - case ts_aux_token3: - REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); - default: - PARSE_PANIC(); - } - case 23: - SET_LEX_STATE(21); - switch (LOOKAHEAD_SYM()) { - case ts_symbol_string: - SHIFT(24); - default: - PARSE_PANIC(); - } - case 24: - SET_LEX_STATE(19); - switch (LOOKAHEAD_SYM()) { - case ts_aux_token5: - SHIFT(25); - default: - PARSE_PANIC(); - } - case 25: SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { case ts_symbol_array: - SHIFT(19); + SHIFT(21); case ts_symbol_number: - SHIFT(19); + SHIFT(21); case ts_symbol_object: - SHIFT(19); + SHIFT(21); case ts_symbol_string: - SHIFT(19); + SHIFT(21); case ts_symbol_value: + SHIFT(22); + case ts_aux_left_brace: SHIFT(26); - case ts_aux_token1: - SHIFT(28); - case ts_aux_token4: + case ts_aux_left_bracket: SHIFT(33); default: PARSE_PANIC(); } - case 26: + case 21: SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper2: - SHIFT(27); - case ts_aux_token2: + case ts_aux_comma: + REDUCE(ts_symbol_value, 1, COLLAPSE({0})); + case ts_aux_right_bracket: + REDUCE(ts_symbol_value, 1, COLLAPSE({0})); + default: + PARSE_PANIC(); + } + case 22: + SET_LEX_STATE(6); + switch (LOOKAHEAD_SYM()) { + case ts_aux_comma: SHIFT(23); - case ts_aux_token6: - REDUCE(ts_aux_repeat_helper2, 4, COLLAPSE({1, 0, 1, 0})); + case ts_aux_repeat_helper1: + SHIFT(38); + case ts_aux_right_bracket: + SHIFT(40); + default: + PARSE_PANIC(); + } + case 23: + SET_LEX_STATE(9); + switch (LOOKAHEAD_SYM()) { + case ts_symbol_array: + SHIFT(21); + case ts_symbol_number: + SHIFT(21); + case ts_symbol_object: + SHIFT(21); + case ts_symbol_string: + SHIFT(21); + case ts_symbol_value: + SHIFT(24); + case ts_aux_left_brace: + SHIFT(26); + case ts_aux_left_bracket: + SHIFT(33); + default: + PARSE_PANIC(); + } + case 24: + SET_LEX_STATE(6); + switch (LOOKAHEAD_SYM()) { + case ts_aux_comma: + SHIFT(23); + case ts_aux_repeat_helper1: + SHIFT(25); + case ts_aux_right_bracket: + REDUCE(ts_aux_repeat_helper1, 2, COLLAPSE({1, 0})); + default: + PARSE_PANIC(); + } + case 25: + SET_LEX_STATE(8); + switch (LOOKAHEAD_SYM()) { + case ts_aux_right_bracket: + REDUCE(ts_aux_repeat_helper1, 3, COLLAPSE({1, 0, 1})); + default: + PARSE_PANIC(); + } + case 26: + SET_LEX_STATE(21); + switch (LOOKAHEAD_SYM()) { + case ts_symbol_string: + SHIFT(27); default: PARSE_PANIC(); } case 27: - SET_LEX_STATE(8); + SET_LEX_STATE(19); switch (LOOKAHEAD_SYM()) { - case ts_aux_token6: - REDUCE(ts_aux_repeat_helper2, 5, COLLAPSE({1, 0, 1, 0, 1})); + case ts_aux_colon: + SHIFT(28); default: PARSE_PANIC(); } @@ -489,30 +487,30 @@ static TSParseResult ts_parse(const char *input) { SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { case ts_symbol_array: - SHIFT(4); + SHIFT(6); case ts_symbol_number: - SHIFT(4); + SHIFT(6); case ts_symbol_object: - SHIFT(4); + SHIFT(6); case ts_symbol_string: - SHIFT(4); + SHIFT(6); case ts_symbol_value: SHIFT(29); - case ts_aux_token1: - SHIFT(11); - case ts_aux_token4: - SHIFT(16); + case ts_aux_left_brace: + SHIFT(13); + case ts_aux_left_bracket: + SHIFT(20); default: PARSE_PANIC(); } case 29: SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper1: - SHIFT(30); - case ts_aux_token2: + case ts_aux_comma: SHIFT(8); - case ts_aux_token3: + case ts_aux_repeat_helper2: + SHIFT(30); + case ts_aux_right_brace: SHIFT(32); default: PARSE_PANIC(); @@ -520,7 +518,7 @@ static TSParseResult ts_parse(const char *input) { case 30: SET_LEX_STATE(5); switch (LOOKAHEAD_SYM()) { - case ts_aux_token3: + case ts_aux_right_brace: SHIFT(31); default: PARSE_PANIC(); @@ -528,130 +526,132 @@ static TSParseResult ts_parse(const char *input) { case 31: SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); - case ts_aux_token6: - REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); + case ts_aux_comma: + REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); + case ts_aux_right_bracket: + REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); default: PARSE_PANIC(); } case 32: SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); - case ts_aux_token6: - REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); + case ts_aux_comma: + REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); + case ts_aux_right_bracket: + REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); default: PARSE_PANIC(); } case 33: - SET_LEX_STATE(21); + SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { + case ts_symbol_array: + SHIFT(21); + case ts_symbol_number: + SHIFT(21); + case ts_symbol_object: + SHIFT(21); case ts_symbol_string: + SHIFT(21); + case ts_symbol_value: SHIFT(34); + case ts_aux_left_brace: + SHIFT(26); + case ts_aux_left_bracket: + SHIFT(33); default: PARSE_PANIC(); } case 34: - SET_LEX_STATE(19); + SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_token5: + case ts_aux_comma: + SHIFT(23); + case ts_aux_repeat_helper1: SHIFT(35); + case ts_aux_right_bracket: + SHIFT(37); default: PARSE_PANIC(); } case 35: - SET_LEX_STATE(9); + SET_LEX_STATE(8); switch (LOOKAHEAD_SYM()) { - case ts_symbol_array: - SHIFT(19); - case ts_symbol_number: - SHIFT(19); - case ts_symbol_object: - SHIFT(19); - case ts_symbol_string: - SHIFT(19); - case ts_symbol_value: + case ts_aux_right_bracket: SHIFT(36); - case ts_aux_token1: - SHIFT(28); - case ts_aux_token4: - SHIFT(33); default: PARSE_PANIC(); } case 36: SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper2: - SHIFT(37); - case ts_aux_token2: - SHIFT(23); - case ts_aux_token6: - SHIFT(39); + case ts_aux_comma: + REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); + case ts_aux_right_bracket: + REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); default: PARSE_PANIC(); } case 37: - SET_LEX_STATE(8); + SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_token6: - SHIFT(38); + case ts_aux_comma: + REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); + case ts_aux_right_bracket: + REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); default: PARSE_PANIC(); } case 38: - SET_LEX_STATE(6); + SET_LEX_STATE(8); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); - case ts_aux_token6: - REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); + case ts_aux_right_bracket: + SHIFT(39); default: PARSE_PANIC(); } case 39: - SET_LEX_STATE(6); + SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); - case ts_aux_token6: - REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); + case ts_aux_comma: + REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); + case ts_aux_right_brace: + REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); default: PARSE_PANIC(); } case 40: SET_LEX_STATE(2); switch (LOOKAHEAD_SYM()) { - case ts_aux_token2: - REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); - case ts_aux_token3: - REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); - default: - PARSE_PANIC(); - } - case 41: - SET_LEX_STATE(0); - switch (LOOKAHEAD_SYM()) { - case ts_aux_end: + case ts_aux_comma: + REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); + case ts_aux_right_brace: REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); default: PARSE_PANIC(); } - case 42: - SET_LEX_STATE(21); + case 41: + SET_LEX_STATE(5); switch (LOOKAHEAD_SYM()) { - case ts_symbol_string: - SHIFT(43); + case ts_aux_right_brace: + SHIFT(42); + default: + PARSE_PANIC(); + } + case 42: + SET_LEX_STATE(0); + switch (LOOKAHEAD_SYM()) { + case ts_aux_end: + REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); default: PARSE_PANIC(); } case 43: - SET_LEX_STATE(19); + SET_LEX_STATE(0); switch (LOOKAHEAD_SYM()) { - case ts_aux_token5: - SHIFT(44); + case ts_aux_end: + REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); default: PARSE_PANIC(); } @@ -659,18 +659,18 @@ static TSParseResult ts_parse(const char *input) { SET_LEX_STATE(9); switch (LOOKAHEAD_SYM()) { case ts_symbol_array: - SHIFT(19); + SHIFT(21); case ts_symbol_number: - SHIFT(19); + SHIFT(21); case ts_symbol_object: - SHIFT(19); + SHIFT(21); case ts_symbol_string: - SHIFT(19); + SHIFT(21); case ts_symbol_value: SHIFT(45); - case ts_aux_token1: - SHIFT(28); - case ts_aux_token4: + case ts_aux_left_brace: + SHIFT(26); + case ts_aux_left_bracket: SHIFT(33); default: PARSE_PANIC(); @@ -678,11 +678,11 @@ static TSParseResult ts_parse(const char *input) { case 45: SET_LEX_STATE(6); switch (LOOKAHEAD_SYM()) { - case ts_aux_repeat_helper2: - SHIFT(46); - case ts_aux_token2: + case ts_aux_comma: SHIFT(23); - case ts_aux_token6: + case ts_aux_repeat_helper1: + SHIFT(46); + case ts_aux_right_bracket: SHIFT(48); default: PARSE_PANIC(); @@ -690,7 +690,7 @@ static TSParseResult ts_parse(const char *input) { case 46: SET_LEX_STATE(8); switch (LOOKAHEAD_SYM()) { - case ts_aux_token6: + case ts_aux_right_bracket: SHIFT(47); default: PARSE_PANIC(); @@ -699,7 +699,7 @@ static TSParseResult ts_parse(const char *input) { SET_LEX_STATE(0); switch (LOOKAHEAD_SYM()) { case ts_aux_end: - REDUCE(ts_symbol_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})); + REDUCE(ts_symbol_array, 4, COLLAPSE({1, 0, 1, 1})); default: PARSE_PANIC(); } @@ -707,7 +707,7 @@ static TSParseResult ts_parse(const char *input) { SET_LEX_STATE(0); switch (LOOKAHEAD_SYM()) { case ts_aux_end: - REDUCE(ts_symbol_object, 5, COLLAPSE({1, 0, 1, 0, 1})); + REDUCE(ts_symbol_array, 3, COLLAPSE({1, 0, 1})); default: PARSE_PANIC(); }