From 082560dd6e4573dfc6ae590b30114803d4ef01c6 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 11 Jun 2014 14:01:38 -0700 Subject: [PATCH] Fix operator precedence of '.' operator in js grammar --- examples/grammars/javascript.cc | 4 +- examples/parsers/javascript.c | 360 +++++++++--------- .../languages/javascript/control_flow.txt | 2 + spec/runtime/languages/javascript/main.txt | 2 +- .../languages/javascript/operators.txt | 14 +- 5 files changed, 198 insertions(+), 184 deletions(-) diff --git a/examples/grammars/javascript.cc b/examples/grammars/javascript.cc index 662dd19b..8319427d 100644 --- a/examples/grammars/javascript.cc +++ b/examples/grammars/javascript.cc @@ -164,11 +164,11 @@ namespace tree_sitter_examples { sym("function_call") }) }, { "property_access", seq({ sym("expression"), - choice({ + prec(10, choice({ seq({ str("."), sym("identifier") }), - in_brackets(sym("expression")) }) }) }, + in_brackets(sym("expression")) })) }) }, { "formal_parameters", in_parens(comma_sep(sym("identifier"))) }, // Literals diff --git a/examples/parsers/javascript.c b/examples/parsers/javascript.c index 8c6d2487..90e526c7 100644 --- a/examples/parsers/javascript.c +++ b/examples/parsers/javascript.c @@ -7194,8 +7194,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [19] = { [ts_sym_expression] = SHIFT(20), @@ -7259,8 +7259,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [21] = { [ts_sym_comment] = SHIFT(21), @@ -7354,8 +7354,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [24] = { [ts_sym_expression] = SHIFT(25), @@ -7419,8 +7419,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [26] = { [ts_sym_expression] = SHIFT(27), @@ -7484,8 +7484,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [28] = { [ts_sym_expression] = SHIFT(29), @@ -7549,8 +7549,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [30] = { [ts_sym_expression] = SHIFT(31), @@ -7614,8 +7614,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [32] = { [ts_sym_expression] = SHIFT(33), @@ -8615,8 +8615,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [76] = { [ts_sym_expression] = SHIFT(77), @@ -8680,8 +8680,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(30), [ts_aux_sym_25] = SHIFT(30), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [78] = { [ts_sym_expression] = SHIFT(79), @@ -8745,8 +8745,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(38), + [ts_aux_sym_30] = SHIFT(40), }, [80] = { [ts_sym_formal_parameters] = SHIFT(81), @@ -9061,8 +9061,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [90] = { [ts_sym_expression] = SHIFT(91), @@ -9125,8 +9125,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [92] = { [ts_sym_comment] = SHIFT(92), @@ -9218,8 +9218,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [95] = { [ts_sym_expression] = SHIFT(96), @@ -9282,8 +9282,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [97] = { [ts_sym_expression] = SHIFT(98), @@ -9346,8 +9346,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [99] = { [ts_sym_expression] = SHIFT(100), @@ -9410,8 +9410,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [101] = { [ts_sym_expression] = SHIFT(102), @@ -9474,8 +9474,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [103] = { [ts_sym_expression] = SHIFT(104), @@ -9763,8 +9763,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_in_expression, 3), }, [113] = { @@ -9827,8 +9827,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_instanceof_expression, 3), }, [115] = { @@ -9920,8 +9920,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_math_op, 3), }, [118] = { @@ -9984,8 +9984,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_math_op, 3), }, [120] = { @@ -10048,8 +10048,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 3), }, [122] = { @@ -10112,8 +10112,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 3), }, [124] = { @@ -10176,8 +10176,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 3), }, [126] = { @@ -10770,8 +10770,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [150] = { [ts_sym_expression] = SHIFT(151), @@ -10835,8 +10835,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [152] = { [ts_sym_comment] = SHIFT(152), @@ -10930,8 +10930,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [155] = { [ts_sym_expression] = SHIFT(156), @@ -10995,8 +10995,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [157] = { [ts_sym_expression] = SHIFT(158), @@ -11060,8 +11060,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [159] = { [ts_sym_expression] = SHIFT(160), @@ -11125,8 +11125,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [161] = { [ts_sym_expression] = SHIFT(162), @@ -11190,8 +11190,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [163] = { [ts_sym_expression] = SHIFT(164), @@ -11606,8 +11606,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [177] = { [ts_sym_expression] = SHIFT(178), @@ -11670,8 +11670,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [179] = { [ts_sym_comment] = SHIFT(179), @@ -11763,8 +11763,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [182] = { [ts_sym_expression] = SHIFT(183), @@ -11827,8 +11827,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [184] = { [ts_sym_expression] = SHIFT(185), @@ -11891,8 +11891,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [186] = { [ts_sym_expression] = SHIFT(187), @@ -11955,8 +11955,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [188] = { [ts_sym_expression] = SHIFT(189), @@ -12019,8 +12019,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [190] = { [ts_sym_expression] = SHIFT(191), @@ -12338,8 +12338,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_typeof_expression, 2), }, [201] = { @@ -12402,8 +12402,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(124), [ts_aux_sym_25] = SHIFT(124), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_math_op, 2), }, [203] = { @@ -12466,8 +12466,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(130), + [ts_aux_sym_30] = SHIFT(132), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 2), }, [205] = { @@ -13546,8 +13546,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [253] = { [ts_sym_expression] = SHIFT(254), @@ -13611,8 +13611,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(161), [ts_aux_sym_25] = SHIFT(161), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [255] = { [ts_sym_expression] = SHIFT(256), @@ -13676,8 +13676,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(167), + [ts_aux_sym_30] = SHIFT(169), }, [257] = { [ts_sym_formal_parameters] = SHIFT(258), @@ -14495,8 +14495,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [287] = { [ts_sym_expression] = SHIFT(288), @@ -14559,8 +14559,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(188), [ts_aux_sym_25] = SHIFT(188), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [289] = { [ts_sym_expression] = SHIFT(290), @@ -14623,8 +14623,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(194), + [ts_aux_sym_30] = SHIFT(196), }, [291] = { [ts_sym_formal_parameters] = SHIFT(292), @@ -16265,8 +16265,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [350] = { [ts_sym_expression] = SHIFT(351), @@ -16328,8 +16328,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [352] = { [ts_sym_comment] = SHIFT(352), @@ -16419,8 +16419,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [355] = { [ts_sym_expression] = SHIFT(356), @@ -16482,8 +16482,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [357] = { [ts_sym_expression] = SHIFT(358), @@ -16545,8 +16545,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [359] = { [ts_sym_expression] = SHIFT(360), @@ -16608,8 +16608,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [361] = { [ts_sym_expression] = SHIFT(362), @@ -16671,8 +16671,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [363] = { [ts_sym_expression] = SHIFT(364), @@ -17623,8 +17623,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [399] = { [ts_sym_expression] = SHIFT(400), @@ -17686,8 +17686,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(361), [ts_aux_sym_25] = SHIFT(361), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [401] = { [ts_sym_expression] = SHIFT(402), @@ -17749,8 +17749,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(367), + [ts_aux_sym_30] = SHIFT(369), }, [403] = { [ts_sym_formal_parameters] = SHIFT(404), @@ -18077,8 +18077,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [416] = { [ts_sym_expression] = SHIFT(417), @@ -18141,8 +18141,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(101), [ts_aux_sym_25] = SHIFT(101), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [418] = { [ts_sym_expression] = SHIFT(419), @@ -18205,8 +18205,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(107), + [ts_aux_sym_30] = SHIFT(109), }, [420] = { [ts_sym_formal_parameters] = SHIFT(421), @@ -19005,8 +19005,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_in_expression, 3), }, [452] = { @@ -19070,8 +19070,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_instanceof_expression, 3), }, [454] = { @@ -19165,8 +19165,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_math_op, 3), }, [457] = { @@ -19230,8 +19230,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_math_op, 3), }, [459] = { @@ -19295,8 +19295,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 3), }, [461] = { @@ -19360,8 +19360,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 3), }, [463] = { @@ -19425,8 +19425,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 3), }, [465] = { @@ -20436,8 +20436,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_typeof_expression, 2), }, [506] = { @@ -20501,8 +20501,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(463), [ts_aux_sym_25] = SHIFT(463), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_math_op, 2), }, [508] = { @@ -20566,8 +20566,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(469), + [ts_aux_sym_30] = SHIFT(471), [ts_aux_sym_31] = REDUCE(ts_sym_bool_op, 2), }, [510] = { @@ -21430,8 +21430,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [553] = { [ts_sym_expression] = SHIFT(554), @@ -21494,8 +21494,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [555] = { [ts_sym_comment] = SHIFT(555), @@ -21587,8 +21587,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [558] = { [ts_sym_expression] = SHIFT(559), @@ -21651,8 +21651,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [560] = { [ts_sym_expression] = SHIFT(561), @@ -21715,8 +21715,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [562] = { [ts_sym_expression] = SHIFT(563), @@ -21779,8 +21779,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [564] = { [ts_sym_expression] = SHIFT(565), @@ -21843,8 +21843,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [566] = { [ts_sym_expression] = SHIFT(567), @@ -22557,8 +22557,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [594] = { [ts_sym_expression] = SHIFT(595), @@ -22621,8 +22621,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(564), [ts_aux_sym_25] = SHIFT(564), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [596] = { [ts_sym_expression] = SHIFT(597), @@ -22685,8 +22685,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(570), + [ts_aux_sym_30] = SHIFT(572), }, [598] = { [ts_sym_formal_parameters] = SHIFT(599), @@ -23735,8 +23735,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_in_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_in_expression, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [647] = { [ts_sym_expression] = SHIFT(648), @@ -23800,8 +23800,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_instanceof_expression, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_instanceof_expression, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [649] = { [ts_sym_comment] = SHIFT(649), @@ -23895,8 +23895,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [652] = { [ts_sym_expression] = SHIFT(653), @@ -23960,8 +23960,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [654] = { [ts_sym_expression] = SHIFT(655), @@ -24025,8 +24025,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [656] = { [ts_sym_expression] = SHIFT(657), @@ -24090,8 +24090,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [658] = { [ts_sym_expression] = SHIFT(659), @@ -24155,8 +24155,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [660] = { [ts_sym_expression] = SHIFT(661), @@ -24815,8 +24815,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_typeof_expression, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_typeof_expression, 2), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [686] = { [ts_sym_expression] = SHIFT(687), @@ -24880,8 +24880,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = SHIFT(658), [ts_aux_sym_25] = SHIFT(658), [ts_aux_sym_27] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_math_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_math_op, 2), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [688] = { [ts_sym_expression] = SHIFT(689), @@ -24945,8 +24945,8 @@ PARSE_TABLE = { [ts_aux_sym_24] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_25] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_27] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_29] = REDUCE(ts_sym_bool_op, 2), - [ts_aux_sym_30] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_29] = SHIFT(664), + [ts_aux_sym_30] = SHIFT(666), }, [690] = { [ts_sym_formal_parameters] = SHIFT(691), diff --git a/spec/runtime/languages/javascript/control_flow.txt b/spec/runtime/languages/javascript/control_flow.txt index ab8a045f..4950df65 100644 --- a/spec/runtime/languages/javascript/control_flow.txt +++ b/spec/runtime/languages/javascript/control_flow.txt @@ -100,6 +100,7 @@ parses indented code after blocks (expression_statement (function_expression (identifier) (formal_parameters) (statement_block))) (return_statement (identifier))) + =========================================== parses switch statements =========================================== @@ -126,3 +127,4 @@ switch(x) { (break_statement)) (switch_case (expression_statement (function_call (identifier) (string)))))) + diff --git a/spec/runtime/languages/javascript/main.txt b/spec/runtime/languages/javascript/main.txt index 4cc35667..40ba1112 100644 --- a/spec/runtime/languages/javascript/main.txt +++ b/spec/runtime/languages/javascript/main.txt @@ -153,7 +153,7 @@ _.each = _.forEach = function(obj, iterator, context) { (statement_block (if_statement (bool_op (identifier) (null)) (return_statement (identifier))) (if_statement - (property_access (bool_op (property_access (identifier) (identifier)) (identifier)) (identifier)) + (bool_op (property_access (identifier) (identifier)) (property_access (identifier) (identifier))) (statement_block (for_statement (var_declaration (assignment (identifier) (number))) diff --git a/spec/runtime/languages/javascript/operators.txt b/spec/runtime/languages/javascript/operators.txt index 46cadf5c..29f830db 100644 --- a/spec/runtime/languages/javascript/operators.txt +++ b/spec/runtime/languages/javascript/operators.txt @@ -46,4 +46,16 @@ parses the 'in' operator =========================================== print(x in y) --- -(program (expression_statement (function_call (identifier) (in_expression (identifier) (identifier))))) \ No newline at end of file +(program (expression_statement (function_call + (identifier) + (in_expression (identifier) (identifier))))) + +============================================ +parses property access and operators +============================================ +print(x.y.z && a.b.c) +--- +(program (expression_statement (function_call (identifier) + (bool_op + (property_access (property_access (identifier) (identifier)) (identifier)) + (property_access (property_access (identifier) (identifier)) (identifier))))))