Use GLR for for-in loop conlfict in javascript grammar

This commit is contained in:
Max Brunsfeld 2015-10-06 10:50:56 -07:00
parent 03e7fc49fd
commit 624e4651d2
2 changed files with 11 additions and 10 deletions

View file

@ -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

View file

@ -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)),