diff --git a/corpus/ambiguities.txt b/corpus/ambiguities.txt index 96a42ae..cd77f08 100644 --- a/corpus/ambiguities.txt +++ b/corpus/ambiguities.txt @@ -6,8 +6,9 @@ int main() { // declare a function pointer T1 * b(T2 a); - // evaluate an expression + // evaluate expressions c * d(5); + e(f * g); } --- @@ -25,7 +26,10 @@ int main() { (comment) (expression_statement (math_expression (identifier) - (call_expression (identifier) (argument_list (number_literal)))))))) + (call_expression (identifier) (argument_list (number_literal))))) + (expression_statement (call_expression + (identifier) + (argument_list (math_expression (identifier) (identifier)))))))) ======================================================================== casts vs multiplications diff --git a/grammar.js b/grammar.js index 944e856..112f01d 100644 --- a/grammar.js +++ b/grammar.js @@ -1,4 +1,5 @@ const PREC = { + PAREN_DECLARATOR: -10, ASSIGNMENT: -1, CONDITIONAL: -2, DEFAULT: 0, @@ -174,7 +175,7 @@ module.exports = grammar({ $.pointer_declarator, $.function_declarator, $.array_declarator, - seq('(', $._declarator, ')'), + prec.dynamic(PREC.PAREN_DECLARATOR, seq('(', $._declarator, ')')), $.identifier ), @@ -182,7 +183,7 @@ module.exports = grammar({ alias($.pointer_field_declarator, $.pointer_declarator), alias($.function_field_declarator, $.function_declarator), alias($.array_field_declarator, $.array_declarator), - seq('(', $._field_declarator, ')'), + prec.dynamic(PREC.PAREN_DECLARATOR, seq('(', $._field_declarator, ')')), $._field_identifier ), @@ -190,7 +191,7 @@ module.exports = grammar({ alias($.pointer_type_declarator, $.pointer_declarator), alias($.function_type_declarator, $.function_declarator), alias($.array_type_declarator, $.array_declarator), - seq('(', $._type_declarator, ')'), + prec.dynamic(PREC.PAREN_DECLARATOR, seq('(', $._type_declarator, ')')), $._type_identifier ), @@ -201,10 +202,10 @@ module.exports = grammar({ prec(1, seq('(', $._abstract_declarator, ')')) ), - pointer_declarator: $ => prec.right(seq('*', repeat($.type_qualifier), $._declarator)), - pointer_field_declarator: $ => prec.right(seq('*', repeat($.type_qualifier), $._field_declarator)), - pointer_type_declarator: $ => prec.right(seq('*', repeat($.type_qualifier), $._type_declarator)), - abstract_pointer_declarator: $ => prec.right(seq('*', repeat($.type_qualifier), optional($._abstract_declarator))), + pointer_declarator: $ => prec.dynamic(1, prec.right(seq('*', repeat($.type_qualifier), $._declarator))), + pointer_field_declarator: $ => prec.dynamic(1, prec.right(seq('*', repeat($.type_qualifier), $._field_declarator))), + pointer_type_declarator: $ => prec.dynamic(1, prec.right(seq('*', repeat($.type_qualifier), $._type_declarator))), + abstract_pointer_declarator: $ => prec.dynamic(1, prec.right(seq('*', repeat($.type_qualifier), optional($._abstract_declarator)))), function_declarator: $ => prec(1, seq($._declarator, $.parameter_list)), function_field_declarator: $ => prec(1, seq($._field_declarator, $.parameter_list)), @@ -371,11 +372,11 @@ module.exports = grammar({ optional(seq('=', $._expression)) ), - parameter_list: $ => prec.dynamic(1, seq( + parameter_list: $ => seq( '(', commaSep(choice($.parameter_declaration, '...')), ')' - )), + ), parameter_declaration: $ => seq( $._declaration_specifiers, @@ -619,7 +620,7 @@ module.exports = grammar({ call_expression: $ => prec(PREC.CALL, seq($._expression, $.argument_list)), - argument_list: $ => prec.dynamic(1, seq('(', commaSep($._expression), ')')), + argument_list: $ => seq('(', commaSep($._expression), ')'), field_expression: $ => seq( prec(PREC.FIELD, seq( diff --git a/src/grammar.json b/src/grammar.json index 4a7106f..12ac5ec 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1172,21 +1172,25 @@ "name": "array_declarator" }, { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_declarator" - }, - { - "type": "STRING", - "value": ")" - } - ] + "type": "PREC_DYNAMIC", + "value": -10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } }, { "type": "SYMBOL", @@ -1225,21 +1229,25 @@ "value": "array_declarator" }, { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_field_declarator" - }, - { - "type": "STRING", - "value": ")" - } - ] + "type": "PREC_DYNAMIC", + "value": -10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_field_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } }, { "type": "SYMBOL", @@ -1278,21 +1286,25 @@ "value": "array_declarator" }, { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_type_declarator" - }, - { - "type": "STRING", - "value": ")" - } - ] + "type": "PREC_DYNAMIC", + "value": -10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_type_declarator" + }, + { + "type": "STRING", + "value": ")" + } + ] + } }, { "type": "SYMBOL", @@ -1339,107 +1351,123 @@ ] }, "pointer_declarator": { - "type": "PREC_RIGHT", - "value": 0, + "type": "PREC_DYNAMIC", + "value": 1, "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "REPEAT", - "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { "type": "SYMBOL", - "name": "type_qualifier" + "name": "_declarator" } - }, - { - "type": "SYMBOL", - "name": "_declarator" - } - ] + ] + } } }, "pointer_field_declarator": { - "type": "PREC_RIGHT", - "value": 0, + "type": "PREC_DYNAMIC", + "value": 1, "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "REPEAT", - "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { "type": "SYMBOL", - "name": "type_qualifier" + "name": "_field_declarator" } - }, - { - "type": "SYMBOL", - "name": "_field_declarator" - } - ] + ] + } } }, "pointer_type_declarator": { - "type": "PREC_RIGHT", - "value": 0, + "type": "PREC_DYNAMIC", + "value": 1, "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "REPEAT", - "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "type_qualifier" + } + }, + { "type": "SYMBOL", - "name": "type_qualifier" + "name": "_type_declarator" } - }, - { - "type": "SYMBOL", - "name": "_type_declarator" - } - ] + ] + } } }, "abstract_pointer_declarator": { - "type": "PREC_RIGHT", - "value": 0, + "type": "PREC_DYNAMIC", + "value": 1, "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "type_qualifier" - } - }, - { - "type": "CHOICE", - "members": [ - { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { "type": "SYMBOL", - "name": "_abstract_declarator" - }, - { - "type": "BLANK" + "name": "type_qualifier" } - ] - } - ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_abstract_declarator" + }, + { + "type": "BLANK" + } + ] + } + ] + } } }, "function_declarator": { @@ -2305,72 +2333,68 @@ ] }, "parameter_list": { - "type": "PREC_DYNAMIC", - "value": 1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "parameter_declaration" + }, + { + "type": "STRING", + "value": "..." + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "parameter_declaration" + "type": "STRING", + "value": "," }, { - "type": "STRING", - "value": "..." + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "parameter_declaration" + }, + { + "type": "STRING", + "value": "..." + } + ] } ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "parameter_declaration" - }, - { - "type": "STRING", - "value": "..." - } - ] - } - ] - } } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] }, "parameter_declaration": { "type": "SEQ", @@ -3658,54 +3682,50 @@ } }, "argument_list": { - "type": "PREC_DYNAMIC", - "value": 1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_expression" - } - ] - } + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] }, "field_expression": { "type": "SEQ", @@ -4349,6 +4369,7 @@ "_statement_identifier" ], "PREC": { + "PAREN_DECLARATOR": -10, "ASSIGNMENT": -1, "CONDITIONAL": -2, "DEFAULT": 0, diff --git a/src/parser.c b/src/parser.c index 40d6fc4..251845e 100644 --- a/src/parser.c +++ b/src/parser.c @@ -56009,7 +56009,7 @@ static TSParseActionEntry ts_parse_actions[] = { [520] = {.count = 1, .reusable = false}, SHIFT(215), [522] = {.count = 1, .reusable = false}, SHIFT(53), [524] = {.count = 1, .reusable = true}, SHIFT(217), - [526] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_declarator, 2), + [526] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_declarator, 2, .dynamic_precedence = 1), [528] = {.count = 1, .reusable = false}, SHIFT(218), [530] = {.count = 1, .reusable = true}, SHIFT(220), [532] = {.count = 1, .reusable = true}, SHIFT(221), @@ -56126,7 +56126,7 @@ static TSParseActionEntry ts_parse_actions[] = { [763] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_ifdef, 4, .alias_sequence_id = 17), [765] = {.count = 1, .reusable = true}, SHIFT(327), [767] = {.count = 1, .reusable = true}, SHIFT(329), - [769] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_type_declarator, 2), + [769] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_type_declarator, 2, .dynamic_precedence = 1), [771] = {.count = 1, .reusable = true}, REDUCE(sym_type_definition, 4), [773] = {.count = 1, .reusable = false}, REDUCE(sym_type_definition, 4), [775] = {.count = 1, .reusable = true}, SHIFT(331), @@ -56192,7 +56192,7 @@ static TSParseActionEntry ts_parse_actions[] = { [905] = {.count = 2, .reusable = false}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(14), [908] = {.count = 2, .reusable = false}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(15), [911] = {.count = 2, .reusable = false}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2), SHIFT_REPEAT(207), - [914] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_pointer_declarator, 1), + [914] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_pointer_declarator, 1, .dynamic_precedence = 1), [916] = {.count = 1, .reusable = true}, SHIFT(11), [918] = {.count = 1, .reusable = true}, SHIFT(388), [920] = {.count = 1, .reusable = true}, SHIFT(390), @@ -56203,8 +56203,8 @@ static TSParseActionEntry ts_parse_actions[] = { [930] = {.count = 1, .reusable = true}, REDUCE(sym_macro_type_specifier, 4), [932] = {.count = 1, .reusable = false}, REDUCE(sym_macro_type_specifier, 4), [934] = {.count = 2, .reusable = false}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2), SHIFT_REPEAT(215), - [937] = {.count = 1, .reusable = true}, REDUCE(sym__declarator, 3), - [939] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_declarator, 3), + [937] = {.count = 1, .reusable = true}, REDUCE(sym__declarator, 3, .dynamic_precedence = -10), + [939] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_declarator, 3, .dynamic_precedence = 1), [941] = {.count = 1, .reusable = true}, REDUCE(aux_sym_type_definition_repeat1, 2), [943] = {.count = 1, .reusable = true}, REDUCE(aux_sym_declaration_repeat1, 2), [945] = {.count = 1, .reusable = true}, SHIFT(395), @@ -56298,7 +56298,7 @@ static TSParseActionEntry ts_parse_actions[] = { [1125] = {.count = 1, .reusable = true}, SHIFT(467), [1127] = {.count = 1, .reusable = true}, SHIFT(469), [1129] = {.count = 1, .reusable = true}, SHIFT(470), - [1131] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_list, 2, .dynamic_precedence = 1), + [1131] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_list, 2), [1133] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_declaration, 1), [1135] = {.count = 1, .reusable = true}, SHIFT(472), [1137] = {.count = 1, .reusable = true}, SHIFT(473), @@ -56385,8 +56385,8 @@ static TSParseActionEntry ts_parse_actions[] = { [1308] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_ifdef, 5, .alias_sequence_id = 20), [1310] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_ifdef, 5, .alias_sequence_id = 21), [1312] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_ifdef, 5, .alias_sequence_id = 21), - [1314] = {.count = 1, .reusable = true}, REDUCE(sym__type_declarator, 3), - [1316] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_type_declarator, 3), + [1314] = {.count = 1, .reusable = true}, REDUCE(sym__type_declarator, 3, .dynamic_precedence = -10), + [1316] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_type_declarator, 3, .dynamic_precedence = 1), [1318] = {.count = 1, .reusable = true}, REDUCE(sym_array_type_declarator, 3), [1320] = {.count = 1, .reusable = true}, SHIFT(552), [1322] = {.count = 1, .reusable = true}, SHIFT(553), @@ -56436,7 +56436,7 @@ static TSParseActionEntry ts_parse_actions[] = { [1411] = {.count = 1, .reusable = true}, SHIFT(586), [1413] = {.count = 1, .reusable = true}, SHIFT(587), [1415] = {.count = 1, .reusable = true}, SHIFT(591), - [1417] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_field_declarator, 2), + [1417] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_field_declarator, 2, .dynamic_precedence = 1), [1419] = {.count = 1, .reusable = true}, SHIFT(594), [1421] = {.count = 1, .reusable = true}, SHIFT(595), [1423] = {.count = 1, .reusable = false}, SHIFT(595), @@ -56465,7 +56465,7 @@ static TSParseActionEntry ts_parse_actions[] = { [1469] = {.count = 1, .reusable = true}, REDUCE(sym_function_field_declarator, 2), [1471] = {.count = 1, .reusable = true}, SHIFT(615), [1473] = {.count = 1, .reusable = true}, SHIFT(617), - [1475] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_pointer_declarator, 2), + [1475] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_pointer_declarator, 2, .dynamic_precedence = 1), [1477] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_array_declarator, 2), [1479] = {.count = 1, .reusable = true}, SHIFT(620), [1481] = {.count = 1, .reusable = true}, SHIFT(621), @@ -56656,7 +56656,7 @@ static TSParseActionEntry ts_parse_actions[] = { [1888] = {.count = 2, .reusable = false}, REDUCE(aux_sym_preproc_if_in_compound_statement_repeat1, 2), SHIFT_REPEAT(251), [1891] = {.count = 2, .reusable = false}, REDUCE(aux_sym_preproc_if_in_compound_statement_repeat1, 2), SHIFT_REPEAT(247), [1894] = {.count = 1, .reusable = true}, SHIFT(748), - [1896] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_list, 3, .dynamic_precedence = 1), + [1896] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_list, 3), [1898] = {.count = 1, .reusable = true}, SHIFT(749), [1900] = {.count = 1, .reusable = true}, SHIFT(751), [1902] = {.count = 1, .reusable = false}, SHIFT(752), @@ -56774,8 +56774,8 @@ static TSParseActionEntry ts_parse_actions[] = { [2129] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .alias_sequence_id = 17), [2131] = {.count = 1, .reusable = true}, SHIFT(827), [2133] = {.count = 1, .reusable = true}, SHIFT(828), - [2135] = {.count = 1, .reusable = true}, REDUCE(sym__field_declarator, 3), - [2137] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_field_declarator, 3), + [2135] = {.count = 1, .reusable = true}, REDUCE(sym__field_declarator, 3, .dynamic_precedence = -10), + [2137] = {.count = 1, .reusable = true}, REDUCE(sym_pointer_field_declarator, 3, .dynamic_precedence = 1), [2139] = {.count = 1, .reusable = true}, SHIFT(829), [2141] = {.count = 1, .reusable = false}, REDUCE(sym_field_declaration, 4), [2143] = {.count = 1, .reusable = true}, REDUCE(sym_field_declaration, 4), @@ -56811,7 +56811,7 @@ static TSParseActionEntry ts_parse_actions[] = { [2203] = {.count = 1, .reusable = false}, SHIFT(846), [2205] = {.count = 2, .reusable = true}, REDUCE(aux_sym_field_declaration_repeat1, 2), SHIFT_REPEAT(377), [2208] = {.count = 1, .reusable = true}, REDUCE(sym__abstract_declarator, 3), - [2210] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_pointer_declarator, 3), + [2210] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_pointer_declarator, 3, .dynamic_precedence = 1), [2212] = {.count = 2, .reusable = true}, REDUCE(aux_sym_type_definition_repeat1, 2), SHIFT_REPEAT(11), [2215] = {.count = 1, .reusable = true}, REDUCE(sym_abstract_array_declarator, 3), [2217] = {.count = 1, .reusable = true}, SHIFT(847), @@ -56963,8 +56963,8 @@ static TSParseActionEntry ts_parse_actions[] = { [2509] = {.count = 1, .reusable = false}, REDUCE(sym_labeled_statement, 3, .alias_sequence_id = 29), [2511] = {.count = 1, .reusable = true}, REDUCE(sym_labeled_statement, 3, .alias_sequence_id = 29), [2513] = {.count = 1, .reusable = true}, REDUCE(sym_comma_expression, 3), - [2515] = {.count = 1, .reusable = true}, REDUCE(sym_argument_list, 2, .dynamic_precedence = 1), - [2517] = {.count = 1, .reusable = false}, REDUCE(sym_argument_list, 2, .dynamic_precedence = 1), + [2515] = {.count = 1, .reusable = true}, REDUCE(sym_argument_list, 2), + [2517] = {.count = 1, .reusable = false}, REDUCE(sym_argument_list, 2), [2519] = {.count = 1, .reusable = true}, SHIFT(966), [2521] = {.count = 1, .reusable = true}, SHIFT(967), [2523] = {.count = 1, .reusable = true}, REDUCE(sym_math_expression, 3), @@ -56988,7 +56988,7 @@ static TSParseActionEntry ts_parse_actions[] = { [2559] = {.count = 1, .reusable = false}, REDUCE(aux_sym_concatenated_string_repeat1, 2), [2561] = {.count = 2, .reusable = true}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(22), [2564] = {.count = 1, .reusable = true}, REDUCE(aux_sym_parameter_list_repeat1, 2), - [2566] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_list, 4, .dynamic_precedence = 1), + [2566] = {.count = 1, .reusable = true}, REDUCE(sym_parameter_list, 4), [2568] = {.count = 2, .reusable = true}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(469), [2571] = {.count = 2, .reusable = true}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .alias_sequence_id = 1), [2574] = {.count = 3, .reusable = true}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .alias_sequence_id = 1), SHIFT(42), @@ -57167,8 +57167,8 @@ static TSParseActionEntry ts_parse_actions[] = { [2947] = {.count = 1, .reusable = false}, SHIFT(242), [2949] = {.count = 1, .reusable = true}, SHIFT(1086), [2951] = {.count = 1, .reusable = false}, SHIFT(1086), - [2953] = {.count = 1, .reusable = true}, REDUCE(sym_argument_list, 3, .dynamic_precedence = 1), - [2955] = {.count = 1, .reusable = false}, REDUCE(sym_argument_list, 3, .dynamic_precedence = 1), + [2953] = {.count = 1, .reusable = true}, REDUCE(sym_argument_list, 3), + [2955] = {.count = 1, .reusable = false}, REDUCE(sym_argument_list, 3), [2957] = {.count = 1, .reusable = true}, SHIFT(1087), [2959] = {.count = 1, .reusable = true}, REDUCE(sym_subscript_expression, 4), [2961] = {.count = 1, .reusable = false}, REDUCE(sym_subscript_expression, 4), @@ -57307,8 +57307,8 @@ static TSParseActionEntry ts_parse_actions[] = { [3251] = {.count = 1, .reusable = false}, SHIFT(1178), [3253] = {.count = 1, .reusable = true}, SHIFT(1179), [3255] = {.count = 1, .reusable = true}, REDUCE(aux_sym_for_statement_repeat1, 2), - [3257] = {.count = 1, .reusable = true}, REDUCE(sym_argument_list, 4, .dynamic_precedence = 1), - [3259] = {.count = 1, .reusable = false}, REDUCE(sym_argument_list, 4, .dynamic_precedence = 1), + [3257] = {.count = 1, .reusable = true}, REDUCE(sym_argument_list, 4), + [3259] = {.count = 1, .reusable = false}, REDUCE(sym_argument_list, 4), [3261] = {.count = 2, .reusable = true}, REDUCE(aux_sym_for_statement_repeat1, 2), SHIFT_REPEAT(966), [3264] = {.count = 1, .reusable = true}, REDUCE(sym_conditional_expression, 5), [3266] = {.count = 1, .reusable = true}, REDUCE(sym_initializer_list, 5),