In build_parse_table, switch recursion to explicit iteration
This commit is contained in:
parent
b217cd38fb
commit
4d14a65e22
5 changed files with 71476 additions and 71454 deletions
|
|
@ -209,36 +209,36 @@ LEX_FN() {
|
|||
LEX_STATES = {
|
||||
[0] = 1,
|
||||
[1] = 5,
|
||||
[2] = 1,
|
||||
[3] = 5,
|
||||
[4] = 1,
|
||||
[5] = 5,
|
||||
[6] = 1,
|
||||
[7] = 5,
|
||||
[8] = 1,
|
||||
[9] = 5,
|
||||
[10] = 1,
|
||||
[11] = 5,
|
||||
[12] = 5,
|
||||
[2] = 5,
|
||||
[3] = 1,
|
||||
[4] = 12,
|
||||
[5] = 12,
|
||||
[6] = 14,
|
||||
[7] = 1,
|
||||
[8] = 12,
|
||||
[9] = 14,
|
||||
[10] = 12,
|
||||
[11] = 1,
|
||||
[12] = 1,
|
||||
[13] = 1,
|
||||
[14] = 12,
|
||||
[14] = 1,
|
||||
[15] = 1,
|
||||
[16] = 12,
|
||||
[17] = 1,
|
||||
[17] = 12,
|
||||
[18] = 12,
|
||||
[19] = 1,
|
||||
[19] = 12,
|
||||
[20] = 12,
|
||||
[21] = 1,
|
||||
[22] = 12,
|
||||
[21] = 5,
|
||||
[22] = 1,
|
||||
[23] = 1,
|
||||
[24] = 12,
|
||||
[25] = 12,
|
||||
[24] = 1,
|
||||
[25] = 1,
|
||||
[26] = 1,
|
||||
[27] = 12,
|
||||
[28] = 12,
|
||||
[29] = 14,
|
||||
[27] = 5,
|
||||
[28] = 5,
|
||||
[29] = 5,
|
||||
[30] = 5,
|
||||
[31] = 14,
|
||||
[31] = 5,
|
||||
};
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
|
|
@ -247,125 +247,25 @@ LEX_STATES = {
|
|||
PARSE_TABLE = {
|
||||
[0] = {
|
||||
[ts_sym_expression] = SHIFT(1),
|
||||
[ts_sym_sum] = SHIFT(12),
|
||||
[ts_sym_difference] = SHIFT(12),
|
||||
[ts_sym_product] = SHIFT(12),
|
||||
[ts_sym_quotient] = SHIFT(12),
|
||||
[ts_sym_exponent] = SHIFT(12),
|
||||
[ts_sym_group] = SHIFT(12),
|
||||
[ts_sym_number] = SHIFT(12),
|
||||
[ts_sym_variable] = SHIFT(12),
|
||||
[ts_aux_sym_6] = SHIFT(13),
|
||||
[ts_sym_sum] = SHIFT(2),
|
||||
[ts_sym_difference] = SHIFT(2),
|
||||
[ts_sym_product] = SHIFT(2),
|
||||
[ts_sym_quotient] = SHIFT(2),
|
||||
[ts_sym_exponent] = SHIFT(2),
|
||||
[ts_sym_group] = SHIFT(2),
|
||||
[ts_sym_number] = SHIFT(2),
|
||||
[ts_sym_variable] = SHIFT(2),
|
||||
[ts_aux_sym_6] = SHIFT(3),
|
||||
},
|
||||
[1] = {
|
||||
[ts_builtin_sym_end] = ACCEPT_INPUT(),
|
||||
[ts_aux_sym_1] = SHIFT(2),
|
||||
[ts_aux_sym_2] = SHIFT(4),
|
||||
[ts_aux_sym_3] = SHIFT(6),
|
||||
[ts_aux_sym_4] = SHIFT(8),
|
||||
[ts_aux_sym_5] = SHIFT(10),
|
||||
[ts_aux_sym_1] = SHIFT(22),
|
||||
[ts_aux_sym_2] = SHIFT(23),
|
||||
[ts_aux_sym_3] = SHIFT(24),
|
||||
[ts_aux_sym_4] = SHIFT(25),
|
||||
[ts_aux_sym_5] = SHIFT(26),
|
||||
},
|
||||
[2] = {
|
||||
[ts_sym_expression] = SHIFT(3),
|
||||
[ts_sym_sum] = SHIFT(12),
|
||||
[ts_sym_difference] = SHIFT(12),
|
||||
[ts_sym_product] = SHIFT(12),
|
||||
[ts_sym_quotient] = SHIFT(12),
|
||||
[ts_sym_exponent] = SHIFT(12),
|
||||
[ts_sym_group] = SHIFT(12),
|
||||
[ts_sym_number] = SHIFT(12),
|
||||
[ts_sym_variable] = SHIFT(12),
|
||||
[ts_aux_sym_6] = SHIFT(13),
|
||||
},
|
||||
[3] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_sum, 3),
|
||||
[ts_aux_sym_1] = SHIFT(2),
|
||||
[ts_aux_sym_2] = SHIFT(4),
|
||||
[ts_aux_sym_3] = SHIFT(6),
|
||||
[ts_aux_sym_4] = SHIFT(8),
|
||||
[ts_aux_sym_5] = SHIFT(10),
|
||||
},
|
||||
[4] = {
|
||||
[ts_sym_expression] = SHIFT(5),
|
||||
[ts_sym_sum] = SHIFT(12),
|
||||
[ts_sym_difference] = SHIFT(12),
|
||||
[ts_sym_product] = SHIFT(12),
|
||||
[ts_sym_quotient] = SHIFT(12),
|
||||
[ts_sym_exponent] = SHIFT(12),
|
||||
[ts_sym_group] = SHIFT(12),
|
||||
[ts_sym_number] = SHIFT(12),
|
||||
[ts_sym_variable] = SHIFT(12),
|
||||
[ts_aux_sym_6] = SHIFT(13),
|
||||
},
|
||||
[5] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_difference, 3),
|
||||
[ts_aux_sym_1] = SHIFT(2),
|
||||
[ts_aux_sym_2] = SHIFT(4),
|
||||
[ts_aux_sym_3] = SHIFT(6),
|
||||
[ts_aux_sym_4] = SHIFT(8),
|
||||
[ts_aux_sym_5] = SHIFT(10),
|
||||
},
|
||||
[6] = {
|
||||
[ts_sym_expression] = SHIFT(7),
|
||||
[ts_sym_sum] = SHIFT(12),
|
||||
[ts_sym_difference] = SHIFT(12),
|
||||
[ts_sym_product] = SHIFT(12),
|
||||
[ts_sym_quotient] = SHIFT(12),
|
||||
[ts_sym_exponent] = SHIFT(12),
|
||||
[ts_sym_group] = SHIFT(12),
|
||||
[ts_sym_number] = SHIFT(12),
|
||||
[ts_sym_variable] = SHIFT(12),
|
||||
[ts_aux_sym_6] = SHIFT(13),
|
||||
},
|
||||
[7] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_3] = SHIFT(6),
|
||||
[ts_aux_sym_4] = SHIFT(8),
|
||||
[ts_aux_sym_5] = SHIFT(10),
|
||||
},
|
||||
[8] = {
|
||||
[ts_sym_expression] = SHIFT(9),
|
||||
[ts_sym_sum] = SHIFT(12),
|
||||
[ts_sym_difference] = SHIFT(12),
|
||||
[ts_sym_product] = SHIFT(12),
|
||||
[ts_sym_quotient] = SHIFT(12),
|
||||
[ts_sym_exponent] = SHIFT(12),
|
||||
[ts_sym_group] = SHIFT(12),
|
||||
[ts_sym_number] = SHIFT(12),
|
||||
[ts_sym_variable] = SHIFT(12),
|
||||
[ts_aux_sym_6] = SHIFT(13),
|
||||
},
|
||||
[9] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_3] = SHIFT(6),
|
||||
[ts_aux_sym_4] = SHIFT(8),
|
||||
[ts_aux_sym_5] = SHIFT(10),
|
||||
},
|
||||
[10] = {
|
||||
[ts_sym_expression] = SHIFT(11),
|
||||
[ts_sym_sum] = SHIFT(12),
|
||||
[ts_sym_difference] = SHIFT(12),
|
||||
[ts_sym_product] = SHIFT(12),
|
||||
[ts_sym_quotient] = SHIFT(12),
|
||||
[ts_sym_exponent] = SHIFT(12),
|
||||
[ts_sym_group] = SHIFT(12),
|
||||
[ts_sym_number] = SHIFT(12),
|
||||
[ts_sym_variable] = SHIFT(12),
|
||||
[ts_aux_sym_6] = SHIFT(13),
|
||||
},
|
||||
[11] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_5] = SHIFT(10),
|
||||
},
|
||||
[12] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_expression, 1),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_expression, 1),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_expression, 1),
|
||||
|
|
@ -373,128 +273,28 @@ PARSE_TABLE = {
|
|||
[ts_aux_sym_4] = REDUCE(ts_sym_expression, 1),
|
||||
[ts_aux_sym_5] = REDUCE(ts_sym_expression, 1),
|
||||
},
|
||||
[13] = {
|
||||
[ts_sym_expression] = SHIFT(14),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_builtin_sym_error] = SHIFT(31),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
[3] = {
|
||||
[ts_sym_expression] = SHIFT(4),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_builtin_sym_error] = SHIFT(6),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[14] = {
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_2] = SHIFT(17),
|
||||
[ts_aux_sym_3] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(21),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = SHIFT(30),
|
||||
[4] = {
|
||||
[ts_aux_sym_1] = SHIFT(11),
|
||||
[ts_aux_sym_2] = SHIFT(12),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_4] = SHIFT(14),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = SHIFT(21),
|
||||
},
|
||||
[15] = {
|
||||
[ts_sym_expression] = SHIFT(16),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
},
|
||||
[16] = {
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_2] = SHIFT(17),
|
||||
[ts_aux_sym_3] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(21),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_sum, 3),
|
||||
},
|
||||
[17] = {
|
||||
[ts_sym_expression] = SHIFT(18),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
},
|
||||
[18] = {
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_2] = SHIFT(17),
|
||||
[ts_aux_sym_3] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(21),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_difference, 3),
|
||||
},
|
||||
[19] = {
|
||||
[ts_sym_expression] = SHIFT(20),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
},
|
||||
[20] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_3] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(21),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_product, 3),
|
||||
},
|
||||
[21] = {
|
||||
[ts_sym_expression] = SHIFT(22),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
},
|
||||
[22] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_3] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(21),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_quotient, 3),
|
||||
},
|
||||
[23] = {
|
||||
[ts_sym_expression] = SHIFT(24),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
},
|
||||
[24] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_exponent, 3),
|
||||
},
|
||||
[25] = {
|
||||
[5] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_expression, 1),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_expression, 1),
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_expression, 1),
|
||||
|
|
@ -502,28 +302,34 @@ PARSE_TABLE = {
|
|||
[ts_aux_sym_5] = REDUCE(ts_sym_expression, 1),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_expression, 1),
|
||||
},
|
||||
[26] = {
|
||||
[ts_sym_expression] = SHIFT(27),
|
||||
[ts_sym_sum] = SHIFT(25),
|
||||
[ts_sym_difference] = SHIFT(25),
|
||||
[ts_sym_product] = SHIFT(25),
|
||||
[ts_sym_quotient] = SHIFT(25),
|
||||
[ts_sym_exponent] = SHIFT(25),
|
||||
[ts_sym_group] = SHIFT(25),
|
||||
[ts_builtin_sym_error] = SHIFT(29),
|
||||
[ts_sym_number] = SHIFT(25),
|
||||
[ts_sym_variable] = SHIFT(25),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
[6] = {
|
||||
[ts_aux_sym_7] = SHIFT(21),
|
||||
},
|
||||
[27] = {
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_2] = SHIFT(17),
|
||||
[ts_aux_sym_3] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(21),
|
||||
[ts_aux_sym_5] = SHIFT(23),
|
||||
[ts_aux_sym_7] = SHIFT(28),
|
||||
[7] = {
|
||||
[ts_sym_expression] = SHIFT(8),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_builtin_sym_error] = SHIFT(9),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[28] = {
|
||||
[8] = {
|
||||
[ts_aux_sym_1] = SHIFT(11),
|
||||
[ts_aux_sym_2] = SHIFT(12),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_4] = SHIFT(14),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = SHIFT(10),
|
||||
},
|
||||
[9] = {
|
||||
[ts_aux_sym_7] = SHIFT(10),
|
||||
},
|
||||
[10] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_group, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_group, 3),
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_group, 3),
|
||||
|
|
@ -531,10 +337,107 @@ PARSE_TABLE = {
|
|||
[ts_aux_sym_5] = REDUCE(ts_sym_group, 3),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_group, 3),
|
||||
},
|
||||
[29] = {
|
||||
[ts_aux_sym_7] = SHIFT(28),
|
||||
[11] = {
|
||||
[ts_sym_expression] = SHIFT(20),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[30] = {
|
||||
[12] = {
|
||||
[ts_sym_expression] = SHIFT(19),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[13] = {
|
||||
[ts_sym_expression] = SHIFT(18),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[14] = {
|
||||
[ts_sym_expression] = SHIFT(17),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[15] = {
|
||||
[ts_sym_expression] = SHIFT(16),
|
||||
[ts_sym_sum] = SHIFT(5),
|
||||
[ts_sym_difference] = SHIFT(5),
|
||||
[ts_sym_product] = SHIFT(5),
|
||||
[ts_sym_quotient] = SHIFT(5),
|
||||
[ts_sym_exponent] = SHIFT(5),
|
||||
[ts_sym_group] = SHIFT(5),
|
||||
[ts_sym_number] = SHIFT(5),
|
||||
[ts_sym_variable] = SHIFT(5),
|
||||
[ts_aux_sym_6] = SHIFT(7),
|
||||
},
|
||||
[16] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_exponent, 3),
|
||||
},
|
||||
[17] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_4] = SHIFT(14),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_quotient, 3),
|
||||
},
|
||||
[18] = {
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_4] = SHIFT(14),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_product, 3),
|
||||
},
|
||||
[19] = {
|
||||
[ts_aux_sym_1] = SHIFT(11),
|
||||
[ts_aux_sym_2] = SHIFT(12),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_4] = SHIFT(14),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_difference, 3),
|
||||
},
|
||||
[20] = {
|
||||
[ts_aux_sym_1] = SHIFT(11),
|
||||
[ts_aux_sym_2] = SHIFT(12),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_4] = SHIFT(14),
|
||||
[ts_aux_sym_5] = SHIFT(15),
|
||||
[ts_aux_sym_7] = REDUCE(ts_sym_sum, 3),
|
||||
},
|
||||
[21] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_group, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_group, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_group, 3),
|
||||
|
|
@ -542,8 +445,105 @@ PARSE_TABLE = {
|
|||
[ts_aux_sym_4] = REDUCE(ts_sym_group, 3),
|
||||
[ts_aux_sym_5] = REDUCE(ts_sym_group, 3),
|
||||
},
|
||||
[22] = {
|
||||
[ts_sym_expression] = SHIFT(31),
|
||||
[ts_sym_sum] = SHIFT(2),
|
||||
[ts_sym_difference] = SHIFT(2),
|
||||
[ts_sym_product] = SHIFT(2),
|
||||
[ts_sym_quotient] = SHIFT(2),
|
||||
[ts_sym_exponent] = SHIFT(2),
|
||||
[ts_sym_group] = SHIFT(2),
|
||||
[ts_sym_number] = SHIFT(2),
|
||||
[ts_sym_variable] = SHIFT(2),
|
||||
[ts_aux_sym_6] = SHIFT(3),
|
||||
},
|
||||
[23] = {
|
||||
[ts_sym_expression] = SHIFT(30),
|
||||
[ts_sym_sum] = SHIFT(2),
|
||||
[ts_sym_difference] = SHIFT(2),
|
||||
[ts_sym_product] = SHIFT(2),
|
||||
[ts_sym_quotient] = SHIFT(2),
|
||||
[ts_sym_exponent] = SHIFT(2),
|
||||
[ts_sym_group] = SHIFT(2),
|
||||
[ts_sym_number] = SHIFT(2),
|
||||
[ts_sym_variable] = SHIFT(2),
|
||||
[ts_aux_sym_6] = SHIFT(3),
|
||||
},
|
||||
[24] = {
|
||||
[ts_sym_expression] = SHIFT(29),
|
||||
[ts_sym_sum] = SHIFT(2),
|
||||
[ts_sym_difference] = SHIFT(2),
|
||||
[ts_sym_product] = SHIFT(2),
|
||||
[ts_sym_quotient] = SHIFT(2),
|
||||
[ts_sym_exponent] = SHIFT(2),
|
||||
[ts_sym_group] = SHIFT(2),
|
||||
[ts_sym_number] = SHIFT(2),
|
||||
[ts_sym_variable] = SHIFT(2),
|
||||
[ts_aux_sym_6] = SHIFT(3),
|
||||
},
|
||||
[25] = {
|
||||
[ts_sym_expression] = SHIFT(28),
|
||||
[ts_sym_sum] = SHIFT(2),
|
||||
[ts_sym_difference] = SHIFT(2),
|
||||
[ts_sym_product] = SHIFT(2),
|
||||
[ts_sym_quotient] = SHIFT(2),
|
||||
[ts_sym_exponent] = SHIFT(2),
|
||||
[ts_sym_group] = SHIFT(2),
|
||||
[ts_sym_number] = SHIFT(2),
|
||||
[ts_sym_variable] = SHIFT(2),
|
||||
[ts_aux_sym_6] = SHIFT(3),
|
||||
},
|
||||
[26] = {
|
||||
[ts_sym_expression] = SHIFT(27),
|
||||
[ts_sym_sum] = SHIFT(2),
|
||||
[ts_sym_difference] = SHIFT(2),
|
||||
[ts_sym_product] = SHIFT(2),
|
||||
[ts_sym_quotient] = SHIFT(2),
|
||||
[ts_sym_exponent] = SHIFT(2),
|
||||
[ts_sym_group] = SHIFT(2),
|
||||
[ts_sym_number] = SHIFT(2),
|
||||
[ts_sym_variable] = SHIFT(2),
|
||||
[ts_aux_sym_6] = SHIFT(3),
|
||||
},
|
||||
[27] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_exponent, 3),
|
||||
[ts_aux_sym_5] = SHIFT(26),
|
||||
},
|
||||
[28] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_quotient, 3),
|
||||
[ts_aux_sym_3] = SHIFT(24),
|
||||
[ts_aux_sym_4] = SHIFT(25),
|
||||
[ts_aux_sym_5] = SHIFT(26),
|
||||
},
|
||||
[29] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_1] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_2] = REDUCE(ts_sym_product, 3),
|
||||
[ts_aux_sym_3] = SHIFT(24),
|
||||
[ts_aux_sym_4] = SHIFT(25),
|
||||
[ts_aux_sym_5] = SHIFT(26),
|
||||
},
|
||||
[30] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_difference, 3),
|
||||
[ts_aux_sym_1] = SHIFT(22),
|
||||
[ts_aux_sym_2] = SHIFT(23),
|
||||
[ts_aux_sym_3] = SHIFT(24),
|
||||
[ts_aux_sym_4] = SHIFT(25),
|
||||
[ts_aux_sym_5] = SHIFT(26),
|
||||
},
|
||||
[31] = {
|
||||
[ts_aux_sym_7] = SHIFT(30),
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_sum, 3),
|
||||
[ts_aux_sym_1] = SHIFT(22),
|
||||
[ts_aux_sym_2] = SHIFT(23),
|
||||
[ts_aux_sym_3] = SHIFT(24),
|
||||
[ts_aux_sym_4] = SHIFT(25),
|
||||
[ts_aux_sym_5] = SHIFT(26),
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -202,51 +202,6 @@ LEX_FN() {
|
|||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(28);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(29);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 29:
|
||||
ACCEPT_TOKEN(ts_aux_sym_3);
|
||||
case 30:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(30);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 31:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(31);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(2);
|
||||
LEX_ERROR();
|
||||
case 32:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(32);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(33);
|
||||
LEX_ERROR();
|
||||
case 33:
|
||||
ACCEPT_TOKEN(ts_aux_sym_2);
|
||||
case 34:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(34);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(2);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
|
|
@ -254,7 +209,7 @@ LEX_FN() {
|
|||
if (lookahead == '[')
|
||||
ADVANCE(9);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(35);
|
||||
ADVANCE(29);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(10);
|
||||
if (lookahead == 'n')
|
||||
|
|
@ -264,19 +219,64 @@ LEX_FN() {
|
|||
if (lookahead == '{')
|
||||
ADVANCE(23);
|
||||
LEX_ERROR();
|
||||
case 35:
|
||||
case 29:
|
||||
ACCEPT_TOKEN(ts_aux_sym_6);
|
||||
case 36:
|
||||
case 30:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(36);
|
||||
ADVANCE(30);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(29);
|
||||
ADVANCE(31);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(29);
|
||||
LEX_ERROR();
|
||||
case 31:
|
||||
ACCEPT_TOKEN(ts_aux_sym_3);
|
||||
case 32:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(32);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(29);
|
||||
LEX_ERROR();
|
||||
case 33:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(33);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(31);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 34:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(34);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(35);
|
||||
LEX_ERROR();
|
||||
case 35:
|
||||
ACCEPT_TOKEN(ts_aux_sym_2);
|
||||
case 36:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(36);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 37:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
|
|
@ -284,8 +284,8 @@ LEX_FN() {
|
|||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(37);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(35);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(2);
|
||||
LEX_ERROR();
|
||||
case 38:
|
||||
START_TOKEN();
|
||||
|
|
@ -298,15 +298,15 @@ LEX_FN() {
|
|||
if (lookahead == '\"')
|
||||
ADVANCE(2);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(29);
|
||||
ADVANCE(31);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(6);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(33);
|
||||
ADVANCE(35);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(9);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(35);
|
||||
ADVANCE(29);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(10);
|
||||
if (lookahead == 'n')
|
||||
|
|
@ -319,6 +319,7 @@ LEX_FN() {
|
|||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case ts_lex_state_error:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(25);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
|
|
@ -328,15 +329,15 @@ LEX_FN() {
|
|||
if (lookahead == '\"')
|
||||
ADVANCE(2);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(29);
|
||||
ADVANCE(31);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(6);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(33);
|
||||
ADVANCE(35);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(9);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(35);
|
||||
ADVANCE(29);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(10);
|
||||
if (lookahead == 'n')
|
||||
|
|
@ -360,59 +361,59 @@ LEX_STATES = {
|
|||
[3] = 26,
|
||||
[4] = 28,
|
||||
[5] = 30,
|
||||
[6] = 24,
|
||||
[7] = 31,
|
||||
[6] = 30,
|
||||
[7] = 26,
|
||||
[8] = 28,
|
||||
[9] = 30,
|
||||
[10] = 32,
|
||||
[11] = 1,
|
||||
[12] = 28,
|
||||
[13] = 30,
|
||||
[14] = 28,
|
||||
[15] = 26,
|
||||
[16] = 28,
|
||||
[17] = 30,
|
||||
[18] = 28,
|
||||
[19] = 32,
|
||||
[9] = 24,
|
||||
[10] = 30,
|
||||
[11] = 30,
|
||||
[12] = 32,
|
||||
[13] = 1,
|
||||
[14] = 30,
|
||||
[15] = 32,
|
||||
[16] = 30,
|
||||
[17] = 33,
|
||||
[18] = 34,
|
||||
[19] = 30,
|
||||
[20] = 1,
|
||||
[21] = 28,
|
||||
[22] = 30,
|
||||
[23] = 28,
|
||||
[24] = 34,
|
||||
[25] = 36,
|
||||
[26] = 37,
|
||||
[27] = 28,
|
||||
[28] = 1,
|
||||
[29] = 36,
|
||||
[30] = 37,
|
||||
[31] = 36,
|
||||
[32] = 26,
|
||||
[33] = 28,
|
||||
[34] = 30,
|
||||
[35] = 36,
|
||||
[36] = 32,
|
||||
[37] = 1,
|
||||
[38] = 28,
|
||||
[39] = 30,
|
||||
[21] = 33,
|
||||
[22] = 33,
|
||||
[23] = 26,
|
||||
[24] = 28,
|
||||
[25] = 30,
|
||||
[26] = 33,
|
||||
[27] = 32,
|
||||
[28] = 33,
|
||||
[29] = 33,
|
||||
[30] = 34,
|
||||
[31] = 33,
|
||||
[32] = 1,
|
||||
[33] = 33,
|
||||
[34] = 36,
|
||||
[35] = 37,
|
||||
[36] = 33,
|
||||
[37] = 34,
|
||||
[38] = 1,
|
||||
[39] = 33,
|
||||
[40] = 36,
|
||||
[41] = 36,
|
||||
[42] = 34,
|
||||
[42] = 33,
|
||||
[43] = 36,
|
||||
[44] = 37,
|
||||
[44] = 33,
|
||||
[45] = 36,
|
||||
[46] = 36,
|
||||
[47] = 28,
|
||||
[48] = 28,
|
||||
[46] = 30,
|
||||
[47] = 36,
|
||||
[48] = 30,
|
||||
[49] = 32,
|
||||
[50] = 1,
|
||||
[51] = 28,
|
||||
[52] = 30,
|
||||
[50] = 24,
|
||||
[51] = 33,
|
||||
[52] = 34,
|
||||
[53] = 24,
|
||||
[54] = 24,
|
||||
[55] = 34,
|
||||
[54] = 1,
|
||||
[55] = 33,
|
||||
[56] = 36,
|
||||
[57] = 37,
|
||||
[58] = 24,
|
||||
[57] = 24,
|
||||
[58] = 36,
|
||||
[59] = 24,
|
||||
};
|
||||
|
||||
|
|
@ -430,7 +431,7 @@ PARSE_TABLE = {
|
|||
[ts_sym_true] = SHIFT(2),
|
||||
[ts_sym_false] = SHIFT(2),
|
||||
[ts_aux_sym_1] = SHIFT(3),
|
||||
[ts_aux_sym_5] = SHIFT(55),
|
||||
[ts_aux_sym_5] = SHIFT(4),
|
||||
},
|
||||
[1] = {
|
||||
[ts_builtin_sym_end] = ACCEPT_INPUT(),
|
||||
|
|
@ -439,297 +440,297 @@ PARSE_TABLE = {
|
|||
[ts_builtin_sym_end] = REDUCE(ts_sym_value, 1),
|
||||
},
|
||||
[3] = {
|
||||
[ts_builtin_sym_error] = SHIFT(4),
|
||||
[ts_sym_string] = SHIFT(49),
|
||||
[ts_aux_sym_4] = SHIFT(54),
|
||||
[ts_builtin_sym_error] = SHIFT(51),
|
||||
[ts_sym_string] = SHIFT(52),
|
||||
[ts_aux_sym_4] = SHIFT(53),
|
||||
},
|
||||
[4] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(5),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
[ts_sym_value] = SHIFT(5),
|
||||
[ts_sym_object] = SHIFT(6),
|
||||
[ts_sym_array] = SHIFT(6),
|
||||
[ts_builtin_sym_error] = SHIFT(5),
|
||||
[ts_sym_string] = SHIFT(6),
|
||||
[ts_sym_number] = SHIFT(6),
|
||||
[ts_sym_null] = SHIFT(6),
|
||||
[ts_sym_true] = SHIFT(6),
|
||||
[ts_sym_false] = SHIFT(6),
|
||||
[ts_aux_sym_1] = SHIFT(7),
|
||||
[ts_aux_sym_5] = SHIFT(8),
|
||||
[ts_aux_sym_6] = SHIFT(9),
|
||||
},
|
||||
[5] = {
|
||||
[ts_aux_sym_4] = SHIFT(6),
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(49),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
},
|
||||
[6] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_object, 4),
|
||||
},
|
||||
[7] = {
|
||||
[ts_builtin_sym_error] = SHIFT(8),
|
||||
[ts_sym_string] = SHIFT(10),
|
||||
},
|
||||
[8] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(9),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[9] = {
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 3),
|
||||
},
|
||||
[10] = {
|
||||
[ts_aux_sym_2] = SHIFT(11),
|
||||
},
|
||||
[11] = {
|
||||
[ts_sym_value] = SHIFT(12),
|
||||
[ts_sym_object] = SHIFT(14),
|
||||
[ts_sym_array] = SHIFT(14),
|
||||
[ts_sym_string] = SHIFT(14),
|
||||
[ts_sym_number] = SHIFT(14),
|
||||
[ts_sym_null] = SHIFT(14),
|
||||
[ts_sym_true] = SHIFT(14),
|
||||
[ts_sym_false] = SHIFT(14),
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[12] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(13),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[13] = {
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 5),
|
||||
},
|
||||
[14] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_value, 1),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_value, 1),
|
||||
},
|
||||
[15] = {
|
||||
[ts_builtin_sym_error] = SHIFT(16),
|
||||
[ts_sym_string] = SHIFT(19),
|
||||
[ts_aux_sym_4] = SHIFT(48),
|
||||
},
|
||||
[16] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(17),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[17] = {
|
||||
[ts_aux_sym_4] = SHIFT(18),
|
||||
},
|
||||
[18] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 4),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_object, 4),
|
||||
},
|
||||
[19] = {
|
||||
[ts_aux_sym_2] = SHIFT(20),
|
||||
},
|
||||
[20] = {
|
||||
[ts_sym_value] = SHIFT(21),
|
||||
[ts_sym_object] = SHIFT(14),
|
||||
[ts_sym_array] = SHIFT(14),
|
||||
[ts_sym_string] = SHIFT(14),
|
||||
[ts_sym_number] = SHIFT(14),
|
||||
[ts_sym_null] = SHIFT(14),
|
||||
[ts_sym_true] = SHIFT(14),
|
||||
[ts_sym_false] = SHIFT(14),
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[21] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(22),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[22] = {
|
||||
[ts_aux_sym_4] = SHIFT(23),
|
||||
},
|
||||
[23] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 6),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_object, 6),
|
||||
},
|
||||
[24] = {
|
||||
[ts_sym_value] = SHIFT(25),
|
||||
[ts_sym_object] = SHIFT(31),
|
||||
[ts_sym_array] = SHIFT(31),
|
||||
[ts_builtin_sym_error] = SHIFT(25),
|
||||
[ts_sym_string] = SHIFT(31),
|
||||
[ts_sym_number] = SHIFT(31),
|
||||
[ts_sym_null] = SHIFT(31),
|
||||
[ts_sym_true] = SHIFT(31),
|
||||
[ts_sym_false] = SHIFT(31),
|
||||
[ts_aux_sym_1] = SHIFT(32),
|
||||
[ts_aux_sym_5] = SHIFT(42),
|
||||
[ts_aux_sym_6] = SHIFT(47),
|
||||
},
|
||||
[25] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(26),
|
||||
[ts_aux_sym_3] = SHIFT(28),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
},
|
||||
[26] = {
|
||||
[ts_aux_sym_6] = SHIFT(27),
|
||||
},
|
||||
[27] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_array, 4),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_array, 4),
|
||||
},
|
||||
[28] = {
|
||||
[ts_sym_value] = SHIFT(29),
|
||||
[ts_sym_object] = SHIFT(31),
|
||||
[ts_sym_array] = SHIFT(31),
|
||||
[ts_builtin_sym_error] = SHIFT(29),
|
||||
[ts_sym_string] = SHIFT(31),
|
||||
[ts_sym_number] = SHIFT(31),
|
||||
[ts_sym_null] = SHIFT(31),
|
||||
[ts_sym_true] = SHIFT(31),
|
||||
[ts_sym_false] = SHIFT(31),
|
||||
[ts_aux_sym_1] = SHIFT(32),
|
||||
[ts_aux_sym_5] = SHIFT(42),
|
||||
},
|
||||
[29] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(30),
|
||||
[ts_aux_sym_3] = SHIFT(28),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
},
|
||||
[30] = {
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 3),
|
||||
},
|
||||
[31] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_value, 1),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_value, 1),
|
||||
},
|
||||
[32] = {
|
||||
[ts_builtin_sym_error] = SHIFT(33),
|
||||
[ts_sym_string] = SHIFT(36),
|
||||
[ts_aux_sym_4] = SHIFT(41),
|
||||
[7] = {
|
||||
[ts_builtin_sym_error] = SHIFT(17),
|
||||
[ts_sym_string] = SHIFT(18),
|
||||
[ts_aux_sym_4] = SHIFT(19),
|
||||
},
|
||||
[33] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(34),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
[8] = {
|
||||
[ts_sym_value] = SHIFT(10),
|
||||
[ts_sym_object] = SHIFT(6),
|
||||
[ts_sym_array] = SHIFT(6),
|
||||
[ts_builtin_sym_error] = SHIFT(10),
|
||||
[ts_sym_string] = SHIFT(6),
|
||||
[ts_sym_number] = SHIFT(6),
|
||||
[ts_sym_null] = SHIFT(6),
|
||||
[ts_sym_true] = SHIFT(6),
|
||||
[ts_sym_false] = SHIFT(6),
|
||||
[ts_aux_sym_1] = SHIFT(7),
|
||||
[ts_aux_sym_5] = SHIFT(8),
|
||||
[ts_aux_sym_6] = SHIFT(11),
|
||||
},
|
||||
[34] = {
|
||||
[ts_aux_sym_4] = SHIFT(35),
|
||||
[9] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_array, 2),
|
||||
},
|
||||
[35] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 4),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_object, 4),
|
||||
},
|
||||
[36] = {
|
||||
[ts_aux_sym_2] = SHIFT(37),
|
||||
},
|
||||
[37] = {
|
||||
[ts_sym_value] = SHIFT(38),
|
||||
[ts_sym_object] = SHIFT(14),
|
||||
[ts_sym_array] = SHIFT(14),
|
||||
[ts_sym_string] = SHIFT(14),
|
||||
[ts_sym_number] = SHIFT(14),
|
||||
[ts_sym_null] = SHIFT(14),
|
||||
[ts_sym_true] = SHIFT(14),
|
||||
[ts_sym_false] = SHIFT(14),
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[38] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(39),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[39] = {
|
||||
[ts_aux_sym_4] = SHIFT(40),
|
||||
},
|
||||
[40] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 6),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_object, 6),
|
||||
},
|
||||
[41] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 2),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_object, 2),
|
||||
},
|
||||
[42] = {
|
||||
[ts_sym_value] = SHIFT(43),
|
||||
[ts_sym_object] = SHIFT(31),
|
||||
[ts_sym_array] = SHIFT(31),
|
||||
[ts_builtin_sym_error] = SHIFT(43),
|
||||
[ts_sym_string] = SHIFT(31),
|
||||
[ts_sym_number] = SHIFT(31),
|
||||
[ts_sym_null] = SHIFT(31),
|
||||
[ts_sym_true] = SHIFT(31),
|
||||
[ts_sym_false] = SHIFT(31),
|
||||
[ts_aux_sym_1] = SHIFT(32),
|
||||
[ts_aux_sym_5] = SHIFT(42),
|
||||
[ts_aux_sym_6] = SHIFT(46),
|
||||
},
|
||||
[43] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(44),
|
||||
[ts_aux_sym_3] = SHIFT(28),
|
||||
[10] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(12),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
},
|
||||
[44] = {
|
||||
[ts_aux_sym_6] = SHIFT(45),
|
||||
},
|
||||
[45] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_array, 4),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_array, 4),
|
||||
},
|
||||
[46] = {
|
||||
[11] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_array, 2),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_array, 2),
|
||||
},
|
||||
[47] = {
|
||||
[12] = {
|
||||
[ts_aux_sym_6] = SHIFT(16),
|
||||
},
|
||||
[13] = {
|
||||
[ts_sym_value] = SHIFT(14),
|
||||
[ts_sym_object] = SHIFT(6),
|
||||
[ts_sym_array] = SHIFT(6),
|
||||
[ts_builtin_sym_error] = SHIFT(14),
|
||||
[ts_sym_string] = SHIFT(6),
|
||||
[ts_sym_number] = SHIFT(6),
|
||||
[ts_sym_null] = SHIFT(6),
|
||||
[ts_sym_true] = SHIFT(6),
|
||||
[ts_sym_false] = SHIFT(6),
|
||||
[ts_aux_sym_1] = SHIFT(7),
|
||||
[ts_aux_sym_5] = SHIFT(8),
|
||||
},
|
||||
[14] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(15),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
},
|
||||
[15] = {
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 3),
|
||||
},
|
||||
[16] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_array, 4),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_array, 4),
|
||||
},
|
||||
[17] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(47),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[18] = {
|
||||
[ts_aux_sym_2] = SHIFT(20),
|
||||
},
|
||||
[19] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 2),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_object, 2),
|
||||
},
|
||||
[20] = {
|
||||
[ts_sym_value] = SHIFT(21),
|
||||
[ts_sym_object] = SHIFT(22),
|
||||
[ts_sym_array] = SHIFT(22),
|
||||
[ts_sym_string] = SHIFT(22),
|
||||
[ts_sym_number] = SHIFT(22),
|
||||
[ts_sym_null] = SHIFT(22),
|
||||
[ts_sym_true] = SHIFT(22),
|
||||
[ts_sym_false] = SHIFT(22),
|
||||
[ts_aux_sym_1] = SHIFT(23),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[21] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(45),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[22] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_value, 1),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_value, 1),
|
||||
},
|
||||
[23] = {
|
||||
[ts_builtin_sym_error] = SHIFT(29),
|
||||
[ts_sym_string] = SHIFT(30),
|
||||
[ts_aux_sym_4] = SHIFT(31),
|
||||
},
|
||||
[24] = {
|
||||
[ts_sym_value] = SHIFT(25),
|
||||
[ts_sym_object] = SHIFT(6),
|
||||
[ts_sym_array] = SHIFT(6),
|
||||
[ts_builtin_sym_error] = SHIFT(25),
|
||||
[ts_sym_string] = SHIFT(6),
|
||||
[ts_sym_number] = SHIFT(6),
|
||||
[ts_sym_null] = SHIFT(6),
|
||||
[ts_sym_true] = SHIFT(6),
|
||||
[ts_sym_false] = SHIFT(6),
|
||||
[ts_aux_sym_1] = SHIFT(7),
|
||||
[ts_aux_sym_5] = SHIFT(8),
|
||||
[ts_aux_sym_6] = SHIFT(26),
|
||||
},
|
||||
[25] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(27),
|
||||
[ts_aux_sym_3] = SHIFT(13),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
},
|
||||
[26] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_array, 2),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_array, 2),
|
||||
},
|
||||
[48] = {
|
||||
[27] = {
|
||||
[ts_aux_sym_6] = SHIFT(28),
|
||||
},
|
||||
[28] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_array, 4),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_array, 4),
|
||||
},
|
||||
[29] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(43),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[30] = {
|
||||
[ts_aux_sym_2] = SHIFT(32),
|
||||
},
|
||||
[31] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 2),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_object, 2),
|
||||
},
|
||||
[49] = {
|
||||
[ts_aux_sym_2] = SHIFT(50),
|
||||
},
|
||||
[50] = {
|
||||
[ts_sym_value] = SHIFT(51),
|
||||
[ts_sym_object] = SHIFT(14),
|
||||
[ts_sym_array] = SHIFT(14),
|
||||
[ts_sym_string] = SHIFT(14),
|
||||
[ts_sym_number] = SHIFT(14),
|
||||
[ts_sym_null] = SHIFT(14),
|
||||
[ts_sym_true] = SHIFT(14),
|
||||
[ts_sym_false] = SHIFT(14),
|
||||
[ts_aux_sym_1] = SHIFT(15),
|
||||
[32] = {
|
||||
[ts_sym_value] = SHIFT(33),
|
||||
[ts_sym_object] = SHIFT(22),
|
||||
[ts_sym_array] = SHIFT(22),
|
||||
[ts_sym_string] = SHIFT(22),
|
||||
[ts_sym_number] = SHIFT(22),
|
||||
[ts_sym_null] = SHIFT(22),
|
||||
[ts_sym_true] = SHIFT(22),
|
||||
[ts_sym_false] = SHIFT(22),
|
||||
[ts_aux_sym_1] = SHIFT(23),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[33] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(34),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[34] = {
|
||||
[ts_aux_sym_4] = SHIFT(42),
|
||||
},
|
||||
[35] = {
|
||||
[ts_builtin_sym_error] = SHIFT(36),
|
||||
[ts_sym_string] = SHIFT(37),
|
||||
},
|
||||
[36] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(41),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[37] = {
|
||||
[ts_aux_sym_2] = SHIFT(38),
|
||||
},
|
||||
[38] = {
|
||||
[ts_sym_value] = SHIFT(39),
|
||||
[ts_sym_object] = SHIFT(22),
|
||||
[ts_sym_array] = SHIFT(22),
|
||||
[ts_sym_string] = SHIFT(22),
|
||||
[ts_sym_number] = SHIFT(22),
|
||||
[ts_sym_null] = SHIFT(22),
|
||||
[ts_sym_true] = SHIFT(22),
|
||||
[ts_sym_false] = SHIFT(22),
|
||||
[ts_aux_sym_1] = SHIFT(23),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[39] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(40),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[40] = {
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 5),
|
||||
},
|
||||
[41] = {
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 3),
|
||||
},
|
||||
[42] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 6),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_object, 6),
|
||||
},
|
||||
[43] = {
|
||||
[ts_aux_sym_4] = SHIFT(44),
|
||||
},
|
||||
[44] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 4),
|
||||
[ts_aux_sym_4] = REDUCE(ts_sym_object, 4),
|
||||
},
|
||||
[45] = {
|
||||
[ts_aux_sym_4] = SHIFT(46),
|
||||
},
|
||||
[46] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 6),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_object, 6),
|
||||
},
|
||||
[47] = {
|
||||
[ts_aux_sym_4] = SHIFT(48),
|
||||
},
|
||||
[48] = {
|
||||
[ts_aux_sym_3] = REDUCE(ts_sym_object, 4),
|
||||
[ts_aux_sym_6] = REDUCE(ts_sym_object, 4),
|
||||
},
|
||||
[49] = {
|
||||
[ts_aux_sym_6] = SHIFT(50),
|
||||
},
|
||||
[50] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_array, 4),
|
||||
},
|
||||
[51] = {
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(52),
|
||||
[ts_aux_sym_3] = SHIFT(7),
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(58),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[52] = {
|
||||
[ts_aux_sym_4] = SHIFT(53),
|
||||
[ts_aux_sym_2] = SHIFT(54),
|
||||
},
|
||||
[53] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_object, 6),
|
||||
},
|
||||
[54] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_object, 2),
|
||||
},
|
||||
[54] = {
|
||||
[ts_sym_value] = SHIFT(55),
|
||||
[ts_sym_object] = SHIFT(22),
|
||||
[ts_sym_array] = SHIFT(22),
|
||||
[ts_sym_string] = SHIFT(22),
|
||||
[ts_sym_number] = SHIFT(22),
|
||||
[ts_sym_null] = SHIFT(22),
|
||||
[ts_sym_true] = SHIFT(22),
|
||||
[ts_sym_false] = SHIFT(22),
|
||||
[ts_aux_sym_1] = SHIFT(23),
|
||||
[ts_aux_sym_5] = SHIFT(24),
|
||||
},
|
||||
[55] = {
|
||||
[ts_sym_value] = SHIFT(56),
|
||||
[ts_sym_object] = SHIFT(31),
|
||||
[ts_sym_array] = SHIFT(31),
|
||||
[ts_builtin_sym_error] = SHIFT(56),
|
||||
[ts_sym_string] = SHIFT(31),
|
||||
[ts_sym_number] = SHIFT(31),
|
||||
[ts_sym_null] = SHIFT(31),
|
||||
[ts_sym_true] = SHIFT(31),
|
||||
[ts_sym_false] = SHIFT(31),
|
||||
[ts_aux_sym_1] = SHIFT(32),
|
||||
[ts_aux_sym_5] = SHIFT(42),
|
||||
[ts_aux_sym_6] = SHIFT(59),
|
||||
[ts_aux_sym_object_repeat0] = SHIFT(56),
|
||||
[ts_aux_sym_3] = SHIFT(35),
|
||||
[ts_aux_sym_4] = REDUCE(ts_aux_sym_object_repeat0, 0),
|
||||
},
|
||||
[56] = {
|
||||
[ts_aux_sym_array_repeat0] = SHIFT(57),
|
||||
[ts_aux_sym_3] = SHIFT(28),
|
||||
[ts_aux_sym_6] = REDUCE(ts_aux_sym_array_repeat0, 0),
|
||||
[ts_aux_sym_4] = SHIFT(57),
|
||||
},
|
||||
[57] = {
|
||||
[ts_aux_sym_6] = SHIFT(58),
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_object, 6),
|
||||
},
|
||||
[58] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_array, 4),
|
||||
[ts_aux_sym_4] = SHIFT(59),
|
||||
},
|
||||
[59] = {
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_array, 2),
|
||||
[ts_builtin_sym_end] = REDUCE(ts_sym_object, 4),
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ namespace tree_sitter {
|
|||
const SyntaxGrammar grammar;
|
||||
ParseConflictManager conflict_manager;
|
||||
unordered_map<const ParseItemSet, ParseStateId> parse_state_ids;
|
||||
vector<pair<ParseItemSet, ParseStateId>> item_sets_to_process;
|
||||
ParseTable parse_table;
|
||||
|
||||
ParseStateId add_parse_state(const ParseItemSet &item_set) {
|
||||
|
|
@ -35,9 +36,7 @@ namespace tree_sitter {
|
|||
if (pair == parse_state_ids.end()) {
|
||||
ParseStateId state_id = parse_table.add_state();
|
||||
parse_state_ids[item_set] = state_id;
|
||||
add_reduce_actions(item_set, state_id);
|
||||
add_shift_actions(item_set, state_id);
|
||||
add_ubiquitous_token_actions(state_id);
|
||||
item_sets_to_process.push_back({ item_set, state_id });
|
||||
return state_id;
|
||||
} else {
|
||||
return pair->second;
|
||||
|
|
@ -74,15 +73,22 @@ namespace tree_sitter {
|
|||
}
|
||||
}
|
||||
|
||||
void add_ubiquitous_token_actions(ParseStateId state_id) {
|
||||
void add_shift_extra_actions(ParseStateId state_id) {
|
||||
const map<Symbol, ParseAction> &actions = parse_table.states[state_id].actions;
|
||||
for (const Symbol &ubiquitous_symbol : grammar.ubiquitous_tokens) {
|
||||
const auto &pair_for_symbol = actions.find(ubiquitous_symbol);
|
||||
if (pair_for_symbol == actions.end()) {
|
||||
parse_table.add_action(state_id, ubiquitous_symbol, ParseAction::ShiftExtra());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void add_reduce_extra_actions(ParseStateId state_id) {
|
||||
const map<Symbol, ParseAction> &actions = parse_table.states[state_id].actions;
|
||||
for (const Symbol &ubiquitous_symbol : grammar.ubiquitous_tokens) {
|
||||
const auto &pair_for_symbol = actions.find(ubiquitous_symbol);
|
||||
|
||||
if (pair_for_symbol == actions.end()) {
|
||||
parse_table.add_action(state_id, ubiquitous_symbol, ParseAction::ShiftExtra());
|
||||
} else if (pair_for_symbol->second.type == ParseActionTypeShift) {
|
||||
if (pair_for_symbol != actions.end() && pair_for_symbol->second.type == ParseActionTypeShift) {
|
||||
size_t shift_state_id = pair_for_symbol->second.state_index;
|
||||
for (const auto &pair : actions) {
|
||||
const Symbol &lookahead_sym = pair.first;
|
||||
|
|
@ -120,6 +126,21 @@ namespace tree_sitter {
|
|||
pair<ParseTable, vector<Conflict>> build() {
|
||||
ParseItem start_item(rules::START(), make_shared<Symbol>(0), 0);
|
||||
add_parse_state(item_set_closure(start_item, { rules::END_OF_INPUT() }, grammar));
|
||||
|
||||
while (!item_sets_to_process.empty()) {
|
||||
auto pair = item_sets_to_process.back();
|
||||
ParseItemSet &item_set = pair.first;
|
||||
ParseStateId &state_id = pair.second;
|
||||
item_sets_to_process.pop_back();
|
||||
|
||||
add_reduce_actions(item_set, state_id);
|
||||
add_shift_actions(item_set, state_id);
|
||||
add_shift_extra_actions(state_id);
|
||||
}
|
||||
|
||||
for (ParseStateId state_id = 0; state_id < parse_table.states.size(); state_id++)
|
||||
add_reduce_extra_actions(state_id);
|
||||
|
||||
return { parse_table, conflict_manager.conflicts() };
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue