From 624e4651d27f97240bd07331ab749d2df81ecc8a Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 6 Oct 2015 10:50:56 -0700 Subject: [PATCH] Use GLR for for-in loop conlfict in javascript grammar --- spec/fixtures/grammars/javascript.cc | 9 +++++---- spec/fixtures/parsers/javascript.c | 12 ++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/spec/fixtures/grammars/javascript.cc b/spec/fixtures/grammars/javascript.cc index 8972d6c5..e4f9eeeb 100644 --- a/spec/fixtures/grammars/javascript.cc +++ b/spec/fixtures/grammars/javascript.cc @@ -99,10 +99,9 @@ extern const Grammar javascript = Grammar({ str("for"), str("("), optional(str("var")), - prec(PREC_REL, seq({ - sym("identifier"), - str("in"), - sym("_expression") })), + sym("identifier"), + str("in"), + sym("_expression"), str(")"), sym("_statement") }) }, @@ -351,6 +350,8 @@ extern const Grammar javascript = Grammar({ sym("comment"), sym("_line_break"), pattern("[ \t\r]"), +}).expected_conflicts({ + { "for_in_statement", "_expression" }, }); } // namespace tree_sitter_examples diff --git a/spec/fixtures/parsers/javascript.c b/spec/fixtures/parsers/javascript.c index 4fd30846..e292c2b9 100644 --- a/spec/fixtures/parsers/javascript.c +++ b/spec/fixtures/parsers/javascript.c @@ -21157,7 +21157,7 @@ static const TSParseAction *ts_parse_actions[STATE_COUNT][SYMBOL_COUNT] = { [sym_arguments] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_SEMI] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_LPAREN] = ACTIONS(REDUCE(sym__expression, 1)), - [anon_sym_in] = ACTIONS(SHIFT(513)), + [anon_sym_in] = ACTIONS(REDUCE(sym__expression, 1), SHIFT(513)), [anon_sym_EQ] = ACTIONS(SHIFT(514)), [anon_sym_LBRACK] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_DOT] = ACTIONS(REDUCE(sym__expression, 1)), @@ -28151,7 +28151,7 @@ static const TSParseAction *ts_parse_actions[STATE_COUNT][SYMBOL_COUNT] = { [sym_arguments] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_SEMI] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_LPAREN] = ACTIONS(REDUCE(sym__expression, 1)), - [anon_sym_in] = ACTIONS(SHIFT(766)), + [anon_sym_in] = ACTIONS(REDUCE(sym__expression, 1), SHIFT(766)), [anon_sym_EQ] = ACTIONS(SHIFT(514)), [anon_sym_LBRACK] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_DOT] = ACTIONS(REDUCE(sym__expression, 1)), @@ -31746,7 +31746,7 @@ static const TSParseAction *ts_parse_actions[STATE_COUNT][SYMBOL_COUNT] = { [sym_arguments] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_SEMI] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_LPAREN] = ACTIONS(REDUCE(sym__expression, 1)), - [anon_sym_in] = ACTIONS(SHIFT(859)), + [anon_sym_in] = ACTIONS(REDUCE(sym__expression, 1), SHIFT(859)), [anon_sym_EQ] = ACTIONS(SHIFT(514)), [anon_sym_LBRACK] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_DOT] = ACTIONS(REDUCE(sym__expression, 1)), @@ -36861,7 +36861,7 @@ static const TSParseAction *ts_parse_actions[STATE_COUNT][SYMBOL_COUNT] = { [sym_arguments] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_SEMI] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_LPAREN] = ACTIONS(REDUCE(sym__expression, 1)), - [anon_sym_in] = ACTIONS(SHIFT(990)), + [anon_sym_in] = ACTIONS(REDUCE(sym__expression, 1), SHIFT(990)), [anon_sym_EQ] = ACTIONS(SHIFT(514)), [anon_sym_LBRACK] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_DOT] = ACTIONS(REDUCE(sym__expression, 1)), @@ -44842,7 +44842,7 @@ static const TSParseAction *ts_parse_actions[STATE_COUNT][SYMBOL_COUNT] = { [sym_arguments] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_SEMI] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_LPAREN] = ACTIONS(REDUCE(sym__expression, 1)), - [anon_sym_in] = ACTIONS(SHIFT(1288)), + [anon_sym_in] = ACTIONS(REDUCE(sym__expression, 1), SHIFT(1288)), [anon_sym_EQ] = ACTIONS(SHIFT(514)), [anon_sym_LBRACK] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_DOT] = ACTIONS(REDUCE(sym__expression, 1)), @@ -48297,7 +48297,7 @@ static const TSParseAction *ts_parse_actions[STATE_COUNT][SYMBOL_COUNT] = { [sym_arguments] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_SEMI] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_LPAREN] = ACTIONS(REDUCE(sym__expression, 1)), - [anon_sym_in] = ACTIONS(SHIFT(1381)), + [anon_sym_in] = ACTIONS(REDUCE(sym__expression, 1), SHIFT(1381)), [anon_sym_EQ] = ACTIONS(SHIFT(514)), [anon_sym_LBRACK] = ACTIONS(REDUCE(sym__expression, 1)), [anon_sym_DOT] = ACTIONS(REDUCE(sym__expression, 1)),