diff --git a/arangod/Aql/grammar.cpp b/arangod/Aql/grammar.cpp index 49dff8d9c5..a491c92198 100644 --- a/arangod/Aql/grammar.cpp +++ b/arangod/Aql/grammar.cpp @@ -611,18 +611,18 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 3 +#define YYFINAL 7 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1125 +#define YYLAST 1122 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 70 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 84 +#define YYNNTS 89 /* YYNRULES -- Number of rules. */ -#define YYNRULES 200 +#define YYNRULES 209 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 335 +#define YYNSTATES 346 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -675,27 +675,27 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 334, 334, 339, 341, 344, 347, 350, 353, 359, - 361, 366, 368, 370, 372, 374, 376, 378, 380, 382, - 384, 386, 391, 397, 402, 407, 415, 423, 428, 430, - 435, 442, 452, 452, 466, 475, 486, 505, 556, 570, - 592, 594, 599, 606, 609, 612, 621, 635, 652, 652, - 666, 666, 676, 676, 687, 690, 696, 702, 705, 708, - 711, 717, 722, 729, 737, 740, 746, 756, 766, 774, - 785, 790, 798, 809, 814, 817, 823, 823, 874, 877, - 880, 886, 886, 896, 902, 905, 908, 911, 914, 917, - 923, 926, 942, 942, 954, 957, 960, 966, 969, 972, - 975, 978, 981, 984, 987, 990, 993, 996, 999, 1002, - 1005, 1008, 1011, 1014, 1017, 1020, 1023, 1026, 1029, 1032, - 1038, 1044, 1046, 1051, 1054, 1054, 1070, 1073, 1079, 1082, - 1088, 1088, 1097, 1099, 1104, 1107, 1113, 1116, 1130, 1130, - 1139, 1141, 1146, 1148, 1153, 1167, 1171, 1180, 1187, 1190, - 1196, 1199, 1205, 1208, 1211, 1217, 1220, 1226, 1229, 1237, - 1241, 1252, 1256, 1263, 1268, 1268, 1276, 1285, 1294, 1297, - 1300, 1306, 1309, 1315, 1347, 1350, 1353, 1360, 1370, 1370, - 1383, 1398, 1412, 1426, 1426, 1469, 1472, 1478, 1485, 1495, - 1498, 1501, 1504, 1507, 1513, 1516, 1519, 1529, 1535, 1538, - 1543 + 0, 335, 335, 338, 349, 353, 357, 364, 366, 366, + 377, 382, 387, 389, 392, 395, 398, 401, 407, 409, + 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, + 434, 439, 445, 450, 455, 463, 471, 476, 478, 483, + 490, 500, 500, 514, 523, 534, 553, 604, 618, 640, + 642, 647, 654, 657, 660, 669, 683, 700, 700, 714, + 714, 724, 724, 735, 738, 744, 750, 753, 756, 759, + 765, 770, 777, 785, 788, 794, 804, 814, 822, 833, + 838, 846, 857, 862, 865, 871, 871, 922, 925, 928, + 934, 934, 944, 950, 953, 956, 959, 962, 965, 971, + 974, 990, 990, 1002, 1005, 1008, 1014, 1017, 1020, 1023, + 1026, 1029, 1032, 1035, 1038, 1041, 1044, 1047, 1050, 1053, + 1056, 1059, 1062, 1065, 1068, 1071, 1074, 1077, 1080, 1086, + 1092, 1094, 1099, 1102, 1102, 1118, 1121, 1127, 1130, 1136, + 1136, 1145, 1147, 1152, 1155, 1161, 1164, 1178, 1178, 1187, + 1189, 1194, 1196, 1201, 1215, 1219, 1228, 1235, 1238, 1244, + 1247, 1253, 1256, 1259, 1265, 1268, 1274, 1277, 1285, 1289, + 1300, 1304, 1311, 1316, 1316, 1324, 1333, 1342, 1345, 1348, + 1354, 1357, 1363, 1395, 1398, 1401, 1408, 1418, 1418, 1431, + 1446, 1460, 1474, 1474, 1517, 1520, 1526, 1533, 1543, 1546, + 1549, 1552, 1555, 1561, 1564, 1567, 1577, 1583, 1586, 1591 }; #endif @@ -723,28 +723,29 @@ static const char *const yytname[] = "\"]\"", "\"outbound modifier\"", "\"inbound modifier\"", "\"any modifier\"", "\"all modifier\"", "\"none modifier\"", "UMINUS", "UPLUS", "FUNCCALL", "REFERENCE", "INDEXED", "EXPANSION", "'.'", - "$accept", "query", "final_statement", + "$accept", "with_collection", "with_collection_list", "optional_with", + "$@1", "queryStart", "query", "final_statement", "optional_statement_block_statements", "statement_block_statement", "for_statement", "filter_statement", "let_statement", "let_list", - "let_element", "count_into", "collect_variable_list", "$@1", + "let_element", "count_into", "collect_variable_list", "$@2", "collect_statement", "collect_list", "collect_element", - "collect_optional_into", "variable_list", "keep", "$@2", "aggregate", - "$@3", "sort_statement", "$@4", "sort_list", "sort_element", + "collect_optional_into", "variable_list", "keep", "$@3", "aggregate", + "$@4", "sort_statement", "$@5", "sort_list", "sort_element", "sort_direction", "limit_statement", "return_statement", "in_or_into_collection", "remove_statement", "insert_statement", "update_parameters", "update_statement", "replace_parameters", - "replace_statement", "update_or_replace", "upsert_statement", "$@5", - "quantifier", "distinct_expression", "$@6", "expression", - "function_name", "function_call", "$@7", "operator_unary", + "replace_statement", "update_or_replace", "upsert_statement", "$@6", + "quantifier", "distinct_expression", "$@7", "expression", + "function_name", "function_call", "$@8", "operator_unary", "operator_binary", "operator_ternary", - "optional_function_call_arguments", "expression_or_query", "$@8", - "function_arguments_list", "compound_value", "array", "$@9", + "optional_function_call_arguments", "expression_or_query", "$@9", + "function_arguments_list", "compound_value", "array", "$@10", "optional_array_elements", "array_elements_list", "options", "object", - "$@10", "optional_object_elements", "object_elements_list", + "$@11", "optional_object_elements", "object_elements_list", "object_element", "array_filter_operator", "optional_array_filter", "optional_array_limit", "optional_array_return", "graph_collection", - "graph_collection_list", "graph_subject", "$@11", "graph_direction", - "graph_direction_steps", "reference", "$@12", "$@13", "simple_value", + "graph_collection_list", "graph_subject", "$@12", "graph_direction", + "graph_direction_steps", "reference", "$@13", "$@14", "simple_value", "numeric_value", "value_literal", "collection_name", "bind_parameter", "object_element_name", "variable_name", YY_NULLPTR }; @@ -765,12 +766,12 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -272 +#define YYPACT_NINF -296 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-272))) + (!!((Yystate) == (-296))) -#define YYTABLE_NINF -199 +#define YYTABLE_NINF -208 #define yytable_value_is_error(Yytable_value) \ 0 @@ -779,40 +780,41 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -272, 18, 1103, -272, 42, 42, 1041, 965, 119, -272, - 182, 1041, 1041, 1041, 1041, -272, -272, -272, -272, -272, - -272, 167, -272, -272, -272, -272, 19, 20, 31, 58, - 59, -272, 9, -5, -272, 57, -272, -272, -272, 78, - -272, -272, -272, -272, 1041, 1041, 1041, 1041, -272, -272, - 854, 40, -272, -272, -272, -272, -272, -272, -272, 52, - -272, -272, -272, -272, -272, 854, 89, -272, 110, 42, - 117, 1041, 88, -272, -272, 637, 637, -272, 489, -272, - 528, 1041, 42, 110, 121, 117, 986, 42, 42, 1041, - -272, -272, -272, 673, -272, 7, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, -272, -272, -272, 105, 122, 107, - 0, 23, 1041, 146, 42, 108, -272, 112, -272, 147, - 110, 126, -272, 413, 182, 1062, 93, 110, 110, 1041, - 110, 1041, 110, 219, 165, -272, 108, 110, -272, 110, - -272, -272, -272, 564, -272, 1041, 10, -272, 854, -272, - 148, 151, -272, 152, 1041, 158, 170, -272, 154, 854, - 166, 171, 129, 925, 890, 129, 371, 371, 111, 111, - 111, 111, 149, 149, -272, -272, -272, 709, 202, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, -272, 1007, -272, - 746, 180, -272, -272, 854, 42, 112, -272, 42, 1041, - -272, 1041, -272, -272, -272, -272, -272, 322, 346, 382, - -272, -272, -272, -272, -272, -272, -272, 637, -272, 637, - -272, 1041, 1041, 42, -272, -272, 179, -272, 450, 986, - 42, -272, 1041, 782, -272, 7, 1041, -272, 1041, 1041, - 129, 129, 371, 371, 111, 111, 111, 111, 854, 174, - -272, -272, 177, -272, -272, 224, -272, -272, 854, -272, - 110, 110, 600, 854, 184, -272, 21, -272, 186, -272, - 98, -272, 564, 1041, 229, 854, 201, -272, 854, 854, - 854, -272, -272, 1041, 1041, 258, -272, -272, -272, -272, - 1041, 42, -272, -272, -272, -272, -272, 450, 986, 1041, - -272, 854, 1041, 264, 637, -272, 92, -272, 1041, 854, - 818, 1041, 214, 110, -272, 222, 450, 1041, 854, -272, - -272, 92, -272, 854, -272 + 4, -296, -296, 22, 106, -296, 363, -296, -296, -296, + -296, 112, -296, 13, 13, 1045, 129, 56, -296, 205, + 1045, 1045, 1045, 1045, -296, -296, -296, -296, -296, -296, + 89, -296, -296, -296, -296, 11, 35, 41, 48, 72, + 106, -296, -296, 12, -1, -296, 62, -296, -296, -296, + 30, -296, -296, -296, 1045, 1045, 1045, 1045, -296, -296, + 845, 38, -296, -296, -296, -296, -296, -296, -296, -29, + -296, -296, -296, -296, -296, 845, 104, -296, 121, 13, + 154, 1045, 131, -296, -296, 592, 592, -296, 444, -296, + 483, 1045, 13, 121, 158, 154, -296, 956, 13, 13, + 1045, -296, -296, -296, 628, -296, 70, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, -296, -296, -296, 139, 160, + 140, 977, 113, 1045, 183, 13, 152, -296, 159, -296, + 178, 121, 162, -296, 368, 205, 1066, 161, 121, 121, + 1045, 121, 1045, 121, 664, 180, -296, 152, 121, -296, + 121, -296, -296, -296, 519, -296, 1045, 14, -296, 845, + -296, 164, 166, -296, 167, 1045, 182, 188, -296, 196, + 845, 192, 199, 255, 916, 881, 255, 181, 181, 426, + 426, 426, 426, 150, 150, -296, -296, -296, 700, 305, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, -296, 1011, + -296, 737, 208, -296, -296, 845, 13, 159, -296, 13, + 1045, -296, 1045, -296, -296, -296, -296, -296, 25, 259, + 337, -296, -296, -296, -296, -296, -296, -296, 592, -296, + 592, -296, 1045, 1045, 13, -296, -296, 234, -296, 405, + 956, 13, -296, 1045, 773, -296, 70, 1045, -296, 1045, + 1045, 255, 255, 181, 181, 426, 426, 426, 426, 845, + 200, -296, -296, 203, -296, -296, 251, -296, -296, 845, + -296, 121, 121, 555, 845, 209, -296, 97, -296, 210, + -296, 119, -296, 519, 1045, 264, 845, 236, -296, 845, + 845, 845, -296, -296, 1045, 1045, 273, -296, -296, -296, + -296, 1045, 13, -296, -296, -296, -296, -296, 405, 956, + 1045, -296, 845, 1045, 280, 592, -296, 107, -296, 1045, + 845, 809, 1045, 231, 121, -296, 238, 405, 1045, 845, + -296, -296, 107, -296, 845, -296 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -820,68 +822,69 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 9, 0, 0, 1, 0, 0, 0, 0, 32, 52, - 0, 0, 0, 0, 0, 76, 2, 10, 11, 13, - 12, 43, 14, 15, 16, 3, 17, 18, 19, 20, - 21, 200, 0, 27, 28, 0, 191, 192, 193, 173, - 189, 187, 188, 197, 0, 0, 0, 178, 138, 130, - 26, 92, 176, 84, 85, 86, 174, 128, 129, 88, - 190, 87, 175, 81, 63, 83, 0, 50, 136, 0, - 43, 0, 61, 185, 186, 0, 0, 70, 0, 73, - 0, 0, 0, 136, 136, 43, 0, 0, 0, 0, - 96, 94, 95, 0, 9, 140, 132, 0, 0, 0, + 7, 8, 18, 0, 0, 10, 0, 1, 2, 206, + 4, 9, 3, 0, 0, 0, 0, 41, 61, 0, + 0, 0, 0, 0, 85, 11, 19, 20, 22, 21, + 52, 23, 24, 25, 12, 26, 27, 28, 29, 30, + 0, 6, 209, 0, 36, 37, 0, 200, 201, 202, + 182, 198, 196, 197, 0, 0, 0, 187, 147, 139, + 35, 101, 185, 93, 94, 95, 183, 137, 138, 97, + 199, 96, 184, 90, 72, 92, 0, 59, 145, 0, + 52, 0, 70, 194, 195, 0, 0, 79, 0, 82, + 0, 0, 0, 145, 145, 52, 5, 0, 0, 0, + 0, 105, 103, 104, 0, 18, 149, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 78, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 33, 40, 0, - 136, 53, 54, 57, 0, 0, 0, 136, 136, 0, - 136, 0, 136, 0, 44, 35, 48, 136, 38, 136, - 168, 169, 170, 22, 171, 0, 0, 29, 30, 177, - 0, 144, 199, 0, 0, 0, 141, 142, 0, 134, - 0, 133, 110, 98, 97, 111, 104, 105, 106, 107, - 108, 109, 99, 100, 101, 102, 103, 0, 89, 0, - 0, 0, 0, 0, 0, 0, 0, 91, 124, 148, - 0, 183, 180, 181, 82, 0, 51, 137, 0, 0, - 36, 0, 58, 59, 56, 60, 62, 173, 189, 197, - 64, 194, 195, 196, 65, 66, 67, 0, 68, 0, - 71, 0, 0, 0, 39, 37, 170, 172, 0, 0, - 0, 179, 0, 0, 139, 0, 0, 131, 0, 0, - 118, 119, 112, 113, 114, 115, 116, 117, 123, 0, - 126, 9, 122, 182, 149, 150, 31, 41, 42, 55, - 136, 136, 0, 45, 49, 46, 0, 157, 163, 23, - 0, 158, 0, 0, 0, 146, 0, 143, 145, 135, - 120, 93, 125, 124, 0, 152, 69, 72, 74, 75, - 0, 0, 167, 166, 164, 159, 160, 0, 0, 0, - 127, 151, 0, 155, 0, 47, 0, 24, 0, 147, - 153, 0, 0, 136, 161, 165, 0, 0, 156, 184, - 77, 0, 25, 154, 162 + 0, 0, 0, 0, 0, 88, 87, 89, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 43, 42, 49, + 0, 145, 62, 63, 66, 0, 0, 0, 145, 145, + 0, 145, 0, 145, 0, 53, 44, 57, 145, 47, + 145, 177, 178, 179, 31, 180, 0, 0, 38, 39, + 186, 0, 153, 208, 0, 0, 0, 150, 151, 0, + 143, 0, 142, 119, 107, 106, 120, 113, 114, 115, + 116, 117, 118, 108, 109, 110, 111, 112, 0, 98, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 133, + 157, 0, 192, 189, 190, 91, 0, 60, 146, 0, + 0, 45, 0, 67, 68, 65, 69, 71, 182, 198, + 206, 73, 203, 204, 205, 74, 75, 76, 0, 77, + 0, 80, 0, 0, 0, 48, 46, 179, 181, 0, + 0, 0, 188, 0, 0, 148, 0, 0, 140, 0, + 0, 127, 128, 121, 122, 123, 124, 125, 126, 132, + 0, 135, 18, 131, 191, 158, 159, 40, 50, 51, + 64, 145, 145, 0, 54, 58, 55, 0, 166, 172, + 32, 0, 167, 0, 0, 0, 155, 0, 152, 154, + 144, 129, 102, 134, 133, 0, 161, 78, 81, 83, + 84, 0, 0, 176, 175, 173, 168, 169, 0, 0, + 0, 136, 160, 0, 164, 0, 56, 0, 33, 0, + 156, 162, 0, 0, 145, 170, 174, 0, 0, 165, + 193, 86, 0, 34, 163, 171 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -272, -85, -272, -272, -272, -272, -272, -272, -272, 187, - 253, -272, -272, -272, 159, 68, -35, -272, -272, -272, - 257, -272, -272, -272, -272, 71, -272, -272, -272, -63, - -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, - -272, -272, -6, -272, -272, -272, -272, -272, -272, -272, - -9, -272, -272, -272, -272, -272, -272, -272, -73, -80, - -272, -272, -272, 41, -272, -272, -272, -272, -269, -272, - -271, -272, -74, -223, -272, -272, -272, -56, -272, 4, - 153, -8, -272, -1 + -296, 27, -296, -296, -296, -296, -102, -296, -296, -296, + -296, -296, -296, -296, 191, 261, -296, -296, -296, 171, + 88, -20, -296, -296, -296, 278, -296, -296, -296, -296, + 91, -296, -296, -296, -78, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -2, -296, -296, + -296, -296, -296, -296, -296, 7, -296, -296, -296, -296, + -296, -296, -296, -92, -99, -296, -296, -296, 59, -296, + -296, -296, -296, -257, -296, -295, -296, -81, -246, -296, + -296, -296, -64, -296, -10, 169, -4, -296, -8 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 16, 2, 17, 18, 19, 20, 33, 34, - 68, 21, 69, 22, 127, 128, 84, 274, 147, 233, - 70, 124, 23, 71, 131, 132, 214, 24, 25, 137, - 26, 27, 77, 28, 79, 29, 300, 30, 81, 117, - 64, 122, 133, 51, 52, 119, 53, 54, 55, 259, - 260, 261, 262, 56, 57, 96, 170, 171, 126, 58, - 95, 165, 166, 167, 201, 295, 313, 322, 278, 325, - 279, 316, 280, 155, 59, 94, 265, 72, 60, 61, - 220, 62, 168, 129 + -1, 10, 11, 2, 4, 3, 5, 25, 6, 26, + 27, 28, 29, 44, 45, 78, 30, 79, 31, 138, + 139, 94, 285, 158, 244, 80, 135, 32, 81, 142, + 143, 225, 33, 34, 148, 35, 36, 87, 37, 89, + 38, 311, 39, 91, 128, 74, 133, 144, 61, 62, + 130, 63, 64, 65, 270, 271, 272, 273, 66, 67, + 107, 181, 182, 137, 68, 106, 176, 177, 178, 212, + 306, 324, 333, 289, 336, 290, 327, 291, 166, 69, + 105, 276, 82, 70, 71, 231, 72, 179, 140 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -889,328 +892,329 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 50, 65, 74, 32, 35, 75, 76, 78, 80, 160, - 145, 148, 154, 138, 73, 140, 283, 142, 3, -4, - -5, 86, 239, 36, 37, 38, 39, 40, 41, 42, - 43, -6, 44, 161, 162, 130, 317, 163, 90, 91, - 92, 93, 45, 46, 199, 207, 88, 324, 302, 202, - 149, 43, 47, 43, 48, 332, 49, 210, -7, -8, - 87, 240, 334, 164, 225, 226, 207, 228, 31, 230, - -4, -5, -4, -5, 234, 143, 235, 215, 216, 237, - 153, 144, -6, 158, -6, 318, 156, 35, 89, 118, - 169, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 120, -7, - -8, -7, -8, 203, 200, 123, 204, 189, 277, 221, - 222, 121, 43, 223, 305, 74, 74, -90, 43, 172, - -90, 82, 66, 227, 67, 229, 125, 73, 73, 134, - 190, 191, 192, 193, 194, 195, 196, 146, 197, 238, - 150, 151, 152, 107, 108, 109, 110, 111, 243, 198, - 205, 113, 48, 208, 270, 154, 271, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 292, 211, 209, 113, - 66, 82, 67, 250, 251, 252, 253, 254, 255, 256, - 257, -79, 258, 109, 110, 111, 232, 296, 297, -198, - 242, 241, 246, 268, 266, 36, 37, 38, 237, 40, - 41, 42, 43, 244, -79, -79, -79, -79, -79, -79, - -79, 245, 248, 247, 264, 272, 273, 291, 293, 294, - 281, 97, 275, 282, 154, 301, 285, 304, 231, 284, - 288, 308, 289, 290, 107, 108, 109, 110, 111, 309, - 330, 323, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 312, 303, 113, - 321, 329, 306, 331, 83, 157, 267, 307, 85, 114, - 115, 116, 269, 206, 310, 0, 287, 258, 311, 224, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 281, - 315, 0, 282, 319, 0, 0, 320, 0, 281, 0, - 0, 0, 326, 0, 0, 328, 0, 0, 281, 0, - 0, 333, -194, 281, 0, -194, -194, -194, -194, -194, - -194, -194, 0, 0, 0, 0, 0, 0, 0, 0, - -194, -194, -194, -194, -194, 0, -195, 0, -194, -195, - -195, -195, -195, -195, -195, -195, 0, 0, 0, 0, - 0, 0, 0, 0, -195, -195, -195, -195, -195, 0, - 0, -90, -195, -194, -90, -194, 0, 0, 0, 0, - 0, 0, -196, 97, 0, -196, -196, -196, -196, -196, - -196, -196, 0, 0, 0, 0, 0, -195, 0, -195, - -196, -196, -196, -196, -196, 0, 100, 0, -196, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 0, 0, - 0, 113, 0, 212, 213, 97, 0, 0, 0, 0, - 0, 0, 0, -196, 0, -196, 36, 37, 38, 0, - 40, 41, 42, 43, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 0, 97, 113, 0, 0, 276, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 277, 0, 0, 0, - 43, 0, 0, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 0, 0, - 113, 135, 139, 136, 0, 0, 0, 0, 150, 151, - 236, 115, 116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 0, 0, 113, - 135, 141, 136, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 97, 0, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 0, 0, 0, 0, 0, 0, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 97, 0, 113, 0, 0, 0, 0, 0, - 298, 299, 150, 151, 236, 115, 116, 0, 0, 0, - 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 0, 135, - 113, 136, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 97, 0, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 97, 0, 113, 0, 0, 159, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 0, 0, 0, 0, - 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 249, 97, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 0, 0, 0, 0, 0, 0, 0, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 97, 0, 113, 0, 0, 0, - 0, 0, 0, 263, 0, 0, 114, 115, 116, 0, - 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 97, 0, 113, 0, 0, 0, 0, 0, 0, 286, - 0, 0, 114, 115, 116, 0, 0, 0, 0, 0, - 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 97, 0, 113, 327, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 0, 0, 0, 0, 0, 0, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 97, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 0, 0, 0, - 0, 0, 0, 98, 0, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 97, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 0, 0, 0, 113, 0, 0, 0, 0, - 0, 0, 63, 0, 0, 114, 115, 116, 36, 37, - 38, 39, 40, 41, 42, 43, 0, 44, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 46, 36, - 37, 38, 39, 40, 41, 42, 43, 47, 44, 48, - 0, 49, 0, 0, 0, 0, 0, 0, 45, 46, - 36, 37, 38, 39, 40, 41, 42, 43, 47, 44, - 48, 0, 49, 0, 150, 151, 152, 0, 0, 45, - 46, 0, 0, 0, 0, 0, 0, 0, 0, 47, - -121, 48, 0, 49, 36, 37, 38, 39, 40, 41, - 42, 43, 0, 44, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 46, 36, 37, 38, 217, 218, - 41, 42, 219, 47, 44, 48, 0, 49, 0, 0, - 0, 0, 0, 0, 45, 46, 4, 5, 6, 7, - 8, 9, 10, 0, 47, 0, 48, 0, 49, 0, - 0, 11, 12, 13, 14, 15 + 12, 156, 159, 171, 294, 43, 46, 12, 149, 83, + 151, -13, 153, 60, 75, 84, 165, 1, 85, 86, + 88, 90, 7, 328, 97, -203, 250, 131, -203, -203, + -203, -203, -203, -203, -203, -14, 12, 218, 41, 42, + 132, -15, 343, -203, -203, -203, -203, -203, -16, 221, + 99, -203, 101, 102, 103, 104, 236, 237, 218, 239, + 141, 241, -13, 98, -13, 251, 245, 96, 246, 76, + 335, 77, -17, 329, -99, 160, -203, -99, -203, -99, + 226, 227, -99, 248, 155, 345, -14, 129, -14, 154, + 167, 46, -15, 100, -15, 164, 172, 173, 169, -16, + 174, -16, 76, 92, 77, 180, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, -17, 313, -17, 175, 9, 214, 211, + 134, 215, 8, 288, 83, 83, 9, 9, 8, 213, + 84, 84, 9, 9, 183, 316, 73, 136, 238, 9, + 240, 200, 47, 48, 49, 50, 51, 52, 53, 9, + 281, 54, 282, 40, 249, 161, 162, 163, 92, 165, + 303, 55, 56, 254, 201, 202, 203, 204, 205, 206, + 207, 57, 145, 58, 157, 59, 208, 232, 233, 307, + 308, 234, 209, 108, 120, 121, 122, 216, 261, 262, + 263, 264, 265, 266, 267, 268, 58, 269, 277, 220, + 219, 243, 248, 222, -207, 253, 111, 252, 279, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 47, 48, + 49, 124, 51, 52, 53, 9, 286, 255, 165, 256, + 283, 284, 341, 295, 257, 292, -88, 334, 293, 258, + 259, 296, 275, 302, 304, 299, 305, 300, 301, -204, + 312, 315, -204, -204, -204, -204, -204, -204, -204, -88, + -88, -88, -88, -88, -88, -88, 319, -204, -204, -204, + -204, -204, 323, 314, 320, -204, 332, 317, 340, 342, + 168, 93, 318, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 269, 322, 326, 124, 217, 278, 95, 325, + -204, 321, -204, 280, 292, 298, 235, 293, 330, 0, + 0, 331, 0, 292, 0, 0, 0, 337, 0, 0, + 339, 0, 0, 292, 0, 0, 344, -205, 292, 0, + -205, -205, -205, -205, -205, -205, -205, 118, 119, 120, + 121, 122, 0, 0, 0, -205, -205, -205, -205, -205, + 0, 0, 0, -205, 0, 0, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 223, 224, + 108, 20, 21, 22, 23, 24, 0, 0, -205, 0, + -205, 47, 48, 49, 0, 51, 52, 53, 9, 0, + 0, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 0, 108, 124, 0, + 0, 287, 0, 0, 0, 0, 0, 0, 125, 126, + 127, 288, 0, 0, 0, 9, 0, 0, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 0, 0, 124, 146, 150, 147, 0, + 0, 0, 0, 161, 162, 247, 126, 127, 118, 119, + 120, 121, 122, 0, 0, 0, 124, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 146, 152, 147, 0, 0, + 0, 0, 0, 0, 125, 126, 127, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 108, 0, 124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 108, 0, 124, + 0, 0, 0, 0, 0, 309, 310, 161, 162, 247, + 126, 127, 0, 0, 0, 0, 0, 0, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 0, 146, 124, 147, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 108, 0, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 126, 127, 0, 0, 0, 0, 0, + 0, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 108, 0, 124, 0, + 0, 170, 0, 242, 0, 0, 0, 0, 125, 126, + 127, 0, 0, 0, 0, 0, 0, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 108, 0, 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 126, 127, 0, 0, 0, + 0, 0, 0, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 260, 108, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 108, 0, 124, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 108, 0, 124, 0, 0, 0, 0, 0, 0, + 297, 0, 0, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 108, 0, 124, + 338, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 108, 0, 124, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 109, 0, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 108, 0, + 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 0, 0, 0, 124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 126, 127, 47, + 48, 49, 50, 51, 52, 53, 9, 0, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, + 47, 48, 49, 50, 51, 52, 53, 9, 57, 54, + 58, 0, 59, 0, 161, 162, 163, 0, 0, 55, + 56, 210, 0, 0, 0, 0, 0, 0, 0, 57, + 0, 58, 0, 59, 47, 48, 49, 50, 51, 52, + 53, 9, 0, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 57, -130, 58, 0, 59, 47, 48, + 49, 50, 51, 52, 53, 9, 0, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 56, 47, + 48, 49, 228, 229, 52, 53, 230, 57, 54, 58, + 0, 59, 0, 0, 0, 0, 0, 0, 55, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, + 58, 0, 59 }; static const yytype_int16 yycheck[] = { - 6, 7, 10, 4, 5, 11, 12, 13, 14, 94, - 83, 84, 86, 76, 10, 78, 239, 80, 0, 0, - 0, 12, 12, 23, 24, 25, 26, 27, 28, 29, - 30, 0, 32, 26, 27, 70, 307, 30, 44, 45, - 46, 47, 42, 43, 44, 125, 51, 316, 27, 26, - 85, 30, 52, 30, 54, 326, 56, 130, 0, 0, - 51, 51, 331, 56, 137, 138, 146, 140, 26, 142, - 51, 51, 53, 53, 147, 81, 149, 133, 134, 153, - 86, 82, 51, 89, 53, 308, 87, 88, 31, 49, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 56, 51, - 51, 53, 53, 121, 120, 26, 122, 12, 26, 26, - 27, 69, 30, 30, 26, 133, 134, 49, 30, 135, - 52, 14, 13, 139, 15, 141, 26, 133, 134, 51, - 35, 36, 37, 38, 39, 40, 41, 26, 26, 155, - 58, 59, 60, 42, 43, 44, 45, 46, 164, 52, - 14, 50, 54, 51, 227, 239, 229, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 261, 51, 31, 50, - 13, 14, 15, 189, 190, 191, 192, 193, 194, 195, - 196, 12, 198, 44, 45, 46, 31, 270, 271, 48, - 48, 53, 48, 209, 205, 23, 24, 25, 282, 27, - 28, 29, 30, 55, 35, 36, 37, 38, 39, 40, - 41, 51, 51, 57, 44, 231, 232, 53, 51, 5, - 238, 12, 233, 239, 308, 51, 242, 51, 19, 240, - 246, 12, 248, 249, 42, 43, 44, 45, 46, 48, - 323, 314, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 9, 276, 50, - 6, 57, 280, 51, 21, 88, 208, 283, 21, 60, - 61, 62, 211, 124, 293, -1, 245, 293, 294, 136, - -1, -1, -1, -1, 300, -1, -1, -1, -1, 307, - 301, -1, 308, 309, -1, -1, 312, -1, 316, -1, - -1, -1, 318, -1, -1, 321, -1, -1, 326, -1, - -1, 327, 0, 331, -1, 3, 4, 5, 6, 7, - 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, - 18, 19, 20, 21, 22, -1, 0, -1, 26, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, - -1, -1, -1, -1, 18, 19, 20, 21, 22, -1, - -1, 49, 26, 51, 52, 53, -1, -1, -1, -1, - -1, -1, 0, 12, -1, 3, 4, 5, 6, 7, - 8, 9, -1, -1, -1, -1, -1, 51, -1, 53, - 18, 19, 20, 21, 22, -1, 35, -1, 26, 38, - 39, 40, 41, 42, 43, 44, 45, 46, -1, -1, - -1, 50, -1, 10, 11, 12, -1, -1, -1, -1, - -1, -1, -1, 51, -1, 53, 23, 24, 25, -1, - 27, 28, 29, 30, -1, -1, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, -1, 12, 50, -1, -1, 16, -1, -1, -1, - -1, -1, -1, 60, 61, 62, 26, -1, -1, -1, - 30, -1, -1, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, - 50, 12, 13, 14, -1, -1, -1, -1, 58, 59, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, -1, -1, 50, - 12, 13, 14, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 93, 94, 105, 250, 13, 14, 11, 86, 19, + 88, 0, 90, 15, 16, 19, 97, 13, 20, 21, + 22, 23, 0, 318, 12, 0, 12, 56, 3, 4, + 5, 6, 7, 8, 9, 0, 40, 136, 11, 26, + 69, 0, 337, 18, 19, 20, 21, 22, 0, 141, + 51, 26, 54, 55, 56, 57, 148, 149, 157, 151, + 80, 153, 51, 51, 53, 51, 158, 40, 160, 13, + 327, 15, 0, 319, 49, 95, 51, 52, 53, 49, + 144, 145, 52, 164, 92, 342, 51, 49, 53, 91, + 98, 99, 51, 31, 53, 97, 26, 27, 100, 51, + 30, 53, 13, 14, 15, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 51, 27, 53, 56, 30, 132, 131, + 26, 133, 26, 26, 144, 145, 30, 30, 26, 26, + 144, 145, 30, 30, 146, 26, 17, 26, 150, 30, + 152, 12, 23, 24, 25, 26, 27, 28, 29, 30, + 238, 32, 240, 51, 166, 58, 59, 60, 14, 250, + 272, 42, 43, 175, 35, 36, 37, 38, 39, 40, + 41, 52, 51, 54, 26, 56, 26, 26, 27, 281, + 282, 30, 52, 12, 44, 45, 46, 14, 200, 201, + 202, 203, 204, 205, 206, 207, 54, 209, 216, 31, + 51, 31, 293, 51, 48, 48, 35, 53, 220, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 23, 24, + 25, 50, 27, 28, 29, 30, 244, 55, 319, 51, + 242, 243, 334, 251, 48, 249, 12, 325, 250, 57, + 51, 253, 44, 53, 51, 257, 5, 259, 260, 0, + 51, 51, 3, 4, 5, 6, 7, 8, 9, 35, + 36, 37, 38, 39, 40, 41, 12, 18, 19, 20, + 21, 22, 9, 287, 48, 26, 6, 291, 57, 51, + 99, 30, 294, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 304, 305, 312, 50, 135, 219, 30, 311, + 51, 304, 53, 222, 318, 256, 147, 319, 320, -1, + -1, 323, -1, 327, -1, -1, -1, 329, -1, -1, + 332, -1, -1, 337, -1, -1, 338, 0, 342, -1, + 3, 4, 5, 6, 7, 8, 9, 42, 43, 44, + 45, 46, -1, -1, -1, 18, 19, 20, 21, 22, + -1, -1, -1, 26, -1, -1, 3, 4, 5, 6, + 7, 8, 9, -1, -1, -1, -1, -1, 10, 11, + 12, 18, 19, 20, 21, 22, -1, -1, 51, -1, + 53, 23, 24, 25, -1, 27, 28, 29, 30, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 12, -1, 50, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, - 62, -1, -1, -1, -1, -1, -1, 33, 34, 35, + 42, 43, 44, 45, 46, 47, -1, 12, 50, -1, + -1, 16, -1, -1, -1, -1, -1, -1, 60, 61, + 62, 26, -1, -1, -1, 30, -1, -1, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, -1, -1, 50, 12, 13, 14, -1, + -1, -1, -1, 58, 59, 60, 61, 62, 42, 43, + 44, 45, 46, -1, -1, -1, 50, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 12, -1, 50, -1, -1, -1, -1, -1, - 20, 21, 58, 59, 60, 61, 62, -1, -1, -1, - -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, 12, - 50, 14, -1, -1, -1, -1, -1, -1, -1, -1, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 12, -1, 50, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, + 46, 47, -1, -1, 50, 12, 13, 14, -1, -1, + -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 12, -1, 50, -1, -1, 53, -1, -1, -1, + 47, 12, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 12, 50, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 12, -1, 50, -1, -1, -1, - -1, -1, -1, 57, -1, -1, 60, 61, 62, -1, + 41, 42, 43, 44, 45, 46, 47, 12, -1, 50, + -1, -1, -1, -1, -1, 20, 21, 58, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, -1, 12, 50, 14, -1, -1, -1, + -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 12, -1, 50, -1, -1, -1, -1, -1, -1, 57, + 12, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 12, -1, 50, 51, - -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, + 42, 43, 44, 45, 46, 47, 12, -1, 50, -1, + -1, 53, -1, 19, -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 12, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, - -1, -1, -1, 33, -1, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 12, -1, -1, + -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 12, -1, 50, -1, -1, + -1, -1, -1, -1, 57, -1, -1, 60, 61, 62, + -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 12, -1, 50, -1, -1, -1, -1, -1, -1, + 57, -1, -1, 60, 61, 62, -1, -1, -1, -1, + -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 12, -1, 50, + 51, -1, -1, -1, -1, -1, -1, -1, -1, 60, + 61, 62, -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, -1, -1, -1, 50, -1, -1, -1, -1, - -1, -1, 17, -1, -1, 60, 61, 62, 23, 24, + 45, 46, 47, 12, -1, 50, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, + -1, -1, -1, -1, 33, -1, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 12, -1, + -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, -1, -1, -1, 50, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 60, 61, 62, 23, + 24, 25, 26, 27, 28, 29, 30, -1, 32, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, + 23, 24, 25, 26, 27, 28, 29, 30, 52, 32, + 54, -1, 56, -1, 58, 59, 60, -1, -1, 42, + 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, + -1, 54, -1, 56, 23, 24, 25, 26, 27, 28, + 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 43, -1, -1, -1, -1, -1, + -1, -1, -1, 52, 53, 54, -1, 56, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, 23, 24, 25, 26, 27, 28, 29, 30, 52, 32, 54, -1, 56, -1, -1, -1, -1, -1, -1, 42, 43, - 23, 24, 25, 26, 27, 28, 29, 30, 52, 32, - 54, -1, 56, -1, 58, 59, 60, -1, -1, 42, - 43, -1, -1, -1, -1, -1, -1, -1, -1, 52, - 53, 54, -1, 56, 23, 24, 25, 26, 27, 28, - 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 42, 43, 23, 24, 25, 26, 27, - 28, 29, 30, 52, 32, 54, -1, 56, -1, -1, - -1, -1, -1, -1, 42, 43, 3, 4, 5, 6, - 7, 8, 9, -1, 52, -1, 54, -1, 56, -1, - -1, 18, 19, 20, 21, 22 + -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, + 54, -1, 56 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 71, 73, 0, 3, 4, 5, 6, 7, 8, - 9, 18, 19, 20, 21, 22, 72, 74, 75, 76, - 77, 81, 83, 92, 97, 98, 100, 101, 103, 105, - 107, 26, 153, 78, 79, 153, 23, 24, 25, 26, - 27, 28, 29, 30, 32, 42, 43, 52, 54, 56, - 112, 113, 114, 116, 117, 118, 123, 124, 129, 144, - 148, 149, 151, 17, 110, 112, 13, 15, 80, 82, - 90, 93, 147, 149, 151, 112, 112, 102, 112, 104, - 112, 108, 14, 80, 86, 90, 12, 51, 51, 31, - 112, 112, 112, 112, 145, 130, 125, 12, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 50, 60, 61, 62, 109, 49, 115, - 56, 69, 111, 26, 91, 26, 128, 84, 85, 153, - 86, 94, 95, 112, 51, 12, 14, 99, 99, 13, - 99, 13, 99, 112, 153, 128, 26, 88, 128, 86, - 58, 59, 60, 112, 142, 143, 153, 79, 112, 53, - 71, 26, 27, 30, 56, 131, 132, 133, 152, 112, - 126, 127, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 12, - 35, 36, 37, 38, 39, 40, 41, 26, 52, 44, - 112, 134, 26, 151, 112, 14, 84, 129, 51, 31, - 128, 51, 10, 11, 96, 147, 147, 26, 27, 30, - 150, 26, 27, 30, 150, 128, 128, 112, 128, 112, - 128, 19, 31, 89, 128, 128, 60, 142, 112, 12, - 51, 53, 48, 112, 55, 51, 48, 57, 51, 48, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 119, - 120, 121, 122, 57, 44, 146, 153, 85, 112, 95, - 99, 99, 112, 112, 87, 153, 16, 26, 138, 140, - 142, 151, 112, 143, 153, 112, 57, 133, 112, 112, - 112, 53, 71, 51, 5, 135, 128, 128, 20, 21, - 106, 51, 27, 151, 51, 26, 151, 112, 12, 48, - 120, 112, 9, 136, 112, 153, 141, 140, 143, 112, - 112, 6, 137, 99, 138, 139, 112, 51, 112, 57, - 128, 51, 140, 112, 138 + 0, 13, 73, 75, 74, 76, 78, 0, 26, 30, + 71, 72, 156, 3, 4, 5, 6, 7, 8, 9, + 18, 19, 20, 21, 22, 77, 79, 80, 81, 82, + 86, 88, 97, 102, 103, 105, 106, 108, 110, 112, + 51, 71, 26, 158, 83, 84, 158, 23, 24, 25, + 26, 27, 28, 29, 32, 42, 43, 52, 54, 56, + 117, 118, 119, 121, 122, 123, 128, 129, 134, 149, + 153, 154, 156, 17, 115, 117, 13, 15, 85, 87, + 95, 98, 152, 154, 156, 117, 117, 107, 117, 109, + 117, 113, 14, 85, 91, 95, 71, 12, 51, 51, + 31, 117, 117, 117, 117, 150, 135, 130, 12, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 50, 60, 61, 62, 114, 49, + 120, 56, 69, 116, 26, 96, 26, 133, 89, 90, + 158, 91, 99, 100, 117, 51, 12, 14, 104, 104, + 13, 104, 13, 104, 117, 158, 133, 26, 93, 133, + 91, 58, 59, 60, 117, 147, 148, 158, 84, 117, + 53, 76, 26, 27, 30, 56, 136, 137, 138, 157, + 117, 131, 132, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 12, 35, 36, 37, 38, 39, 40, 41, 26, 52, + 44, 117, 139, 26, 156, 117, 14, 89, 134, 51, + 31, 133, 51, 10, 11, 101, 152, 152, 26, 27, + 30, 155, 26, 27, 30, 155, 133, 133, 117, 133, + 117, 133, 19, 31, 94, 133, 133, 60, 147, 117, + 12, 51, 53, 48, 117, 55, 51, 48, 57, 51, + 48, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 124, 125, 126, 127, 57, 44, 151, 158, 90, 117, + 100, 104, 104, 117, 117, 92, 158, 16, 26, 143, + 145, 147, 156, 117, 148, 158, 117, 57, 138, 117, + 117, 117, 53, 76, 51, 5, 140, 133, 133, 20, + 21, 111, 51, 27, 156, 51, 26, 156, 117, 12, + 48, 125, 117, 9, 141, 117, 158, 146, 145, 148, + 117, 117, 6, 142, 104, 143, 144, 117, 51, 117, + 57, 133, 51, 145, 117, 143 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 70, 71, 72, 72, 72, 72, 72, 72, 73, - 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 75, 75, 75, 75, 76, 77, 78, 78, - 79, 80, 82, 81, 83, 83, 83, 83, 83, 83, - 84, 84, 85, 86, 86, 86, 87, 87, 89, 88, - 91, 90, 93, 92, 94, 94, 95, 96, 96, 96, - 96, 97, 97, 98, 99, 99, 100, 101, 102, 102, - 103, 104, 104, 105, 106, 106, 108, 107, 109, 109, - 109, 111, 110, 110, 112, 112, 112, 112, 112, 112, - 113, 113, 115, 114, 116, 116, 116, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 118, 119, 119, 120, 121, 120, 122, 122, 123, 123, - 125, 124, 126, 126, 127, 127, 128, 128, 130, 129, - 131, 131, 132, 132, 133, 133, 133, 133, 134, 134, - 135, 135, 136, 136, 136, 137, 137, 138, 138, 138, - 138, 139, 139, 140, 141, 140, 140, 140, 142, 142, - 142, 143, 143, 144, 144, 144, 144, 144, 145, 144, - 144, 144, 144, 146, 144, 147, 147, 148, 148, 149, - 149, 149, 149, 149, 150, 150, 150, 151, 152, 152, - 153 + 0, 70, 71, 71, 72, 72, 72, 73, 74, 73, + 75, 76, 77, 77, 77, 77, 77, 77, 78, 78, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 80, 80, 80, 80, 81, 82, 83, 83, 84, + 85, 87, 86, 88, 88, 88, 88, 88, 88, 89, + 89, 90, 91, 91, 91, 92, 92, 94, 93, 96, + 95, 98, 97, 99, 99, 100, 101, 101, 101, 101, + 102, 102, 103, 104, 104, 105, 106, 107, 107, 108, + 109, 109, 110, 111, 111, 113, 112, 114, 114, 114, + 116, 115, 115, 117, 117, 117, 117, 117, 117, 118, + 118, 120, 119, 121, 121, 121, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, + 124, 124, 125, 126, 125, 127, 127, 128, 128, 130, + 129, 131, 131, 132, 132, 133, 133, 135, 134, 136, + 136, 137, 137, 138, 138, 138, 138, 139, 139, 140, + 140, 141, 141, 141, 142, 142, 143, 143, 143, 143, + 144, 144, 145, 146, 145, 145, 145, 147, 147, 147, + 148, 148, 149, 149, 149, 149, 149, 150, 149, 149, + 149, 149, 151, 149, 152, 152, 153, 153, 154, 154, + 154, 154, 154, 155, 155, 155, 156, 157, 157, 158 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 2, 1, 1, 1, 1, 1, 1, 0, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 6, 8, 10, 2, 2, 1, 3, - 3, 4, 0, 3, 3, 3, 4, 4, 3, 4, - 1, 3, 3, 0, 2, 4, 1, 3, 0, 3, - 0, 3, 0, 3, 1, 3, 2, 0, 1, 1, - 1, 2, 4, 2, 2, 2, 4, 4, 3, 5, - 2, 3, 5, 2, 1, 1, 0, 9, 1, 1, - 1, 0, 3, 1, 1, 1, 1, 1, 1, 3, - 1, 3, 0, 5, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 0, 1, 1, 0, 2, 1, 3, 1, 1, - 0, 4, 0, 1, 1, 3, 0, 2, 0, 4, - 0, 1, 1, 3, 1, 3, 3, 5, 1, 2, - 0, 2, 0, 2, 4, 0, 2, 1, 1, 2, - 2, 1, 3, 1, 0, 4, 2, 2, 1, 1, - 1, 1, 2, 1, 1, 1, 1, 3, 0, 4, - 3, 3, 4, 0, 8, 1, 1, 1, 1, 1, + 0, 2, 1, 1, 1, 3, 2, 0, 0, 3, + 2, 2, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1 + 1, 4, 6, 8, 10, 2, 2, 1, 3, 3, + 4, 0, 3, 3, 3, 4, 4, 3, 4, 1, + 3, 3, 0, 2, 4, 1, 3, 0, 3, 0, + 3, 0, 3, 1, 3, 2, 0, 1, 1, 1, + 2, 4, 2, 2, 2, 4, 4, 3, 5, 2, + 3, 5, 2, 1, 1, 0, 9, 1, 1, 1, + 0, 3, 1, 1, 1, 1, 1, 1, 3, 1, + 3, 0, 5, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 0, 1, 1, 0, 2, 1, 3, 1, 1, 0, + 4, 0, 1, 1, 3, 0, 2, 0, 4, 0, + 1, 1, 3, 1, 3, 3, 5, 1, 2, 0, + 2, 0, 2, 4, 0, 2, 1, 1, 2, 2, + 1, 3, 1, 0, 4, 2, 2, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 3, 0, 4, 3, + 3, 4, 0, 8, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; @@ -1988,233 +1992,314 @@ yyreduce: switch (yyn) { case 2: -#line 334 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 335 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + (yyval.node) = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); } -#line 1995 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2000 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 3: -#line 339 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 338 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + char const* p = (yyvsp[0].node)->getStringValue(); + size_t const len = (yyvsp[0].node)->getStringLength(); + if (len < 1 || *p != '@') { + parser->registerParseError(TRI_ERROR_QUERY_BIND_PARAMETER_TYPE, TRI_errno_string(TRI_ERROR_QUERY_BIND_PARAMETER_TYPE), p, yylloc.first_line, yylloc.first_column); + } + (yyval.node) = (yyvsp[0].node); } -#line 2002 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2013 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 4: -#line 341 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 349 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - parser->ast()->scopes()->endNested(); - } -#line 2010 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + auto node = static_cast(parser->peekStack()); + node->addMember((yyvsp[0].node)); + } +#line 2022 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 5: -#line 344 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 353 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - parser->ast()->scopes()->endNested(); - } -#line 2018 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + auto node = static_cast(parser->peekStack()); + node->addMember((yyvsp[0].node)); + } +#line 2031 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 6: -#line 347 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 357 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - parser->ast()->scopes()->endNested(); - } -#line 2026 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + auto node = static_cast(parser->peekStack()); + node->addMember((yyvsp[0].node)); + } +#line 2040 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 7: -#line 350 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 364 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - parser->ast()->scopes()->endNested(); - } -#line 2034 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + } +#line 2047 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 8: -#line 353 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 366 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - parser->ast()->scopes()->endNested(); - } -#line 2042 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 9: -#line 359 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - } -#line 2049 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 10: -#line 361 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - } + auto node = parser->ast()->createNodeArray(); + parser->pushStack(node); + } #line 2056 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 11: -#line 366 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 9: +#line 369 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + auto node = static_cast(parser->popStack()); + auto withNode = parser->ast()->createNodeWithCollections(node); + parser->ast()->addOperation(withNode); + } +#line 2066 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 10: +#line 377 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2063 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2073 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 11: +#line 382 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2080 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 12: -#line 368 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 387 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2070 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2087 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 13: -#line 370 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 389 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + parser->ast()->scopes()->endNested(); } -#line 2077 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2095 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 14: -#line 372 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 392 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + parser->ast()->scopes()->endNested(); } -#line 2084 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2103 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 15: -#line 374 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 395 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + parser->ast()->scopes()->endNested(); } -#line 2091 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2111 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 16: -#line 376 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - } -#line 2098 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 17: -#line 378 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - } -#line 2105 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 18: -#line 380 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - } -#line 2112 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 19: -#line 382 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 398 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + parser->ast()->scopes()->endNested(); } #line 2119 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 20: -#line 384 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 17: +#line 401 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + parser->ast()->scopes()->endNested(); + } +#line 2127 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 18: +#line 407 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2126 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2134 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 19: +#line 409 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2141 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 20: +#line 414 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2148 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 21: -#line 386 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 416 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2133 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2155 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 22: -#line 391 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 418 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2162 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 23: +#line 420 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2169 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 24: +#line 422 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2176 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 25: +#line 424 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2183 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 26: +#line 426 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2190 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 27: +#line 428 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2197 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 28: +#line 430 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2204 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 29: +#line 432 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2211 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 30: +#line 434 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 2218 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 31: +#line 439 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->ast()->scopes()->start(arangodb::aql::AQL_SCOPE_FOR); auto node = parser->ast()->createNodeFor((yyvsp[-2].strval).value, (yyvsp[-2].strval).length, (yyvsp[0].node), true); parser->ast()->addOperation(node); } -#line 2144 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2229 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 23: -#line 397 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 32: +#line 445 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->ast()->scopes()->start(arangodb::aql::AQL_SCOPE_FOR); auto node = parser->ast()->createNodeTraversal((yyvsp[-4].strval).value, (yyvsp[-4].strval).length, (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2154 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2239 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 24: -#line 402 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 33: +#line 450 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->ast()->scopes()->start(arangodb::aql::AQL_SCOPE_FOR); auto node = parser->ast()->createNodeTraversal((yyvsp[-6].strval).value, (yyvsp[-6].strval).length, (yyvsp[-4].strval).value, (yyvsp[-4].strval).length, (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2164 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2249 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 25: -#line 407 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 34: +#line 455 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->ast()->scopes()->start(arangodb::aql::AQL_SCOPE_FOR); auto node = parser->ast()->createNodeTraversal((yyvsp[-8].strval).value, (yyvsp[-8].strval).length, (yyvsp[-6].strval).value, (yyvsp[-6].strval).length, (yyvsp[-4].strval).value, (yyvsp[-4].strval).length, (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2174 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2259 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 26: -#line 415 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 35: +#line 463 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // operand is a reference. can use it directly auto node = parser->ast()->createNodeFilter((yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2184 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2269 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 27: -#line 423 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 36: +#line 471 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2191 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2276 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 28: -#line 428 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 37: +#line 476 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2198 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2283 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 29: -#line 430 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 38: +#line 478 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2205 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2290 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 30: -#line 435 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 39: +#line 483 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeLet((yyvsp[-2].strval).value, (yyvsp[-2].strval).length, (yyvsp[0].node), true); parser->ast()->addOperation(node); } -#line 2214 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2299 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 31: -#line 442 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 40: +#line 490 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! TRI_CaseEqualString((yyvsp[-2].strval).value, "COUNT")) { parser->registerParseError(TRI_ERROR_QUERY_PARSE, "unexpected qualifier '%s', expecting 'COUNT'", (yyvsp[-2].strval).value, yylloc.first_line, yylloc.first_column); @@ -2222,20 +2307,20 @@ yyreduce: (yyval.strval) = (yyvsp[0].strval); } -#line 2226 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2311 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 32: -#line 452 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 41: +#line 500 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); parser->pushStack(node); } -#line 2235 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2320 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 33: -#line 455 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 42: +#line 503 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto list = static_cast(parser->popStack()); @@ -2244,11 +2329,11 @@ yyreduce: } (yyval.node) = list; } -#line 2248 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2333 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 34: -#line 466 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 43: +#line 514 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { /* COLLECT WITH COUNT INTO var OPTIONS ... */ auto scopes = parser->ast()->scopes(); @@ -2258,11 +2343,11 @@ yyreduce: auto node = parser->ast()->createNodeCollectCount(parser->ast()->createNodeArray(), (yyvsp[-1].strval).value, (yyvsp[-1].strval).length, (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2262 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2347 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 35: -#line 475 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 44: +#line 523 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { /* COLLECT var = expr WITH COUNT INTO var OPTIONS ... */ auto scopes = parser->ast()->scopes(); @@ -2274,11 +2359,11 @@ yyreduce: auto node = parser->ast()->createNodeCollectCount((yyvsp[-2].node), (yyvsp[-1].strval).value, (yyvsp[-1].strval).length, (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2278 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2363 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 36: -#line 486 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 45: +#line 534 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { /* AGGREGATE var = expr OPTIONS ... */ auto scopes = parser->ast()->scopes(); @@ -2298,11 +2383,11 @@ yyreduce: auto node = parser->ast()->createNodeCollect(parser->ast()->createNodeArray(), (yyvsp[-2].node), into, intoExpression, nullptr, (yyvsp[-1].node)); parser->ast()->addOperation(node); } -#line 2302 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2387 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 37: -#line 505 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 46: +#line 553 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { /* COLLECT var = expr AGGREGATE var = expr OPTIONS ... */ auto scopes = parser->ast()->scopes(); @@ -2354,11 +2439,11 @@ yyreduce: auto node = parser->ast()->createNodeCollect((yyvsp[-3].node), (yyvsp[-2].node), into, intoExpression, nullptr, (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2358 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2443 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 38: -#line 556 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 47: +#line 604 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { /* COLLECT var = expr INTO var OPTIONS ... */ auto scopes = parser->ast()->scopes(); @@ -2373,11 +2458,11 @@ yyreduce: auto node = parser->ast()->createNodeCollect((yyvsp[-2].node), parser->ast()->createNodeArray(), into, intoExpression, nullptr, (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2377 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2462 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 39: -#line 570 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 48: +#line 618 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { /* COLLECT var = expr INTO var KEEP ... OPTIONS ... */ auto scopes = parser->ast()->scopes(); @@ -2397,61 +2482,61 @@ yyreduce: auto node = parser->ast()->createNodeCollect((yyvsp[-3].node), parser->ast()->createNodeArray(), into, intoExpression, (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2401 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2486 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 40: -#line 592 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 49: +#line 640 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2408 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2493 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 41: -#line 594 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 50: +#line 642 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2415 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2500 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 42: -#line 599 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 51: +#line 647 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeAssign((yyvsp[-2].strval).value, (yyvsp[-2].strval).length, (yyvsp[0].node)); parser->pushArrayElement(node); } -#line 2424 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2509 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 43: -#line 606 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 52: +#line 654 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = nullptr; } -#line 2432 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2517 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 44: -#line 609 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 53: +#line 657 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); } -#line 2440 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2525 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 45: -#line 612 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 54: +#line 660 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); node->addMember(parser->ast()->createNodeValueString((yyvsp[-2].strval).value, (yyvsp[-2].strval).length)); node->addMember((yyvsp[0].node)); (yyval.node) = node; } -#line 2451 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2536 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 46: -#line 621 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 55: +#line 669 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->ast()->scopes()->existsVariable((yyvsp[0].strval).value, (yyvsp[0].strval).length)) { parser->registerParseError(TRI_ERROR_QUERY_PARSE, "use of unknown variable '%s' for KEEP", (yyvsp[0].strval).value, yylloc.first_line, yylloc.first_column); @@ -2466,11 +2551,11 @@ yyreduce: node->setFlag(FLAG_KEEP_VARIABLENAME); parser->pushArrayElement(node); } -#line 2470 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2555 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 47: -#line 635 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 56: +#line 683 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->ast()->scopes()->existsVariable((yyvsp[0].strval).value, (yyvsp[0].strval).length)) { parser->registerParseError(TRI_ERROR_QUERY_PARSE, "use of unknown variable '%s' for KEEP", (yyvsp[0].strval).value, yylloc.first_line, yylloc.first_column); @@ -2485,11 +2570,11 @@ yyreduce: node->setFlag(FLAG_KEEP_VARIABLENAME); parser->pushArrayElement(node); } -#line 2489 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2574 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 48: -#line 652 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 57: +#line 700 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! TRI_CaseEqualString((yyvsp[0].strval).value, "KEEP")) { parser->registerParseError(TRI_ERROR_QUERY_PARSE, "unexpected qualifier '%s', expecting 'KEEP'", (yyvsp[0].strval).value, yylloc.first_line, yylloc.first_column); @@ -2498,158 +2583,158 @@ yyreduce: auto node = parser->ast()->createNodeArray(); parser->pushStack(node); } -#line 2502 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2587 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 49: -#line 659 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 58: +#line 707 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto list = static_cast(parser->popStack()); (yyval.node) = list; } -#line 2511 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2596 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 50: -#line 666 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 59: +#line 714 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); parser->pushStack(node); } -#line 2520 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2605 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 51: -#line 669 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 60: +#line 717 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto list = static_cast(parser->popStack()); (yyval.node) = list; } -#line 2529 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2614 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 52: -#line 676 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 61: +#line 724 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); parser->pushStack(node); } -#line 2538 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2623 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 53: -#line 679 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 62: +#line 727 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto list = static_cast(parser->popStack()); auto node = parser->ast()->createNodeSort(list); parser->ast()->addOperation(node); } -#line 2548 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2633 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 54: -#line 687 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 63: +#line 735 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushArrayElement((yyvsp[0].node)); } -#line 2556 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2641 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 55: -#line 690 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 64: +#line 738 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushArrayElement((yyvsp[0].node)); } -#line 2564 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2649 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 56: -#line 696 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 65: +#line 744 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeSortElement((yyvsp[-1].node), (yyvsp[0].node)); } -#line 2572 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2657 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 57: -#line 702 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 66: +#line 750 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueBool(true); } -#line 2580 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2665 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 58: -#line 705 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 67: +#line 753 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueBool(true); } -#line 2588 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2673 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 59: -#line 708 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 68: +#line 756 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueBool(false); } -#line 2596 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2681 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 60: -#line 711 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 69: +#line 759 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 2604 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2689 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 61: -#line 717 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 70: +#line 765 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto offset = parser->ast()->createNodeValueInt(0); auto node = parser->ast()->createNodeLimit(offset, (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2614 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2699 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 62: -#line 722 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 71: +#line 770 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeLimit((yyvsp[-2].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2623 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2708 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 63: -#line 729 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 72: +#line 777 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeReturn((yyvsp[0].node)); parser->ast()->addOperation(node); parser->ast()->scopes()->endNested(); } -#line 2633 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2718 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 64: -#line 737 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 73: +#line 785 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 2641 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2726 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 65: -#line 740 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 74: +#line 788 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 2649 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2734 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 66: -#line 746 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 75: +#line 794 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2657,11 +2742,11 @@ yyreduce: auto node = parser->ast()->createNodeRemove((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2661 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2746 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 67: -#line 756 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 76: +#line 804 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2669,11 +2754,11 @@ yyreduce: auto node = parser->ast()->createNodeInsert((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2673 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2758 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 68: -#line 766 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 77: +#line 814 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2682,11 +2767,11 @@ yyreduce: AstNode* node = parser->ast()->createNodeUpdate(nullptr, (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2686 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2771 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 69: -#line 774 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 78: +#line 822 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2695,18 +2780,18 @@ yyreduce: AstNode* node = parser->ast()->createNodeUpdate((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2699 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2784 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 70: -#line 785 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 79: +#line 833 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2706 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2791 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 71: -#line 790 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 80: +#line 838 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2715,11 +2800,11 @@ yyreduce: AstNode* node = parser->ast()->createNodeReplace(nullptr, (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2719 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2804 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 72: -#line 798 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 81: +#line 846 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2728,44 +2813,44 @@ yyreduce: AstNode* node = parser->ast()->createNodeReplace((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2732 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2817 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 73: -#line 809 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 82: +#line 857 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 2739 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2824 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 74: -#line 814 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 83: +#line 862 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.intval) = static_cast(NODE_TYPE_UPDATE); } -#line 2747 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2832 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 75: -#line 817 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 84: +#line 865 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.intval) = static_cast(NODE_TYPE_REPLACE); } -#line 2755 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2840 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 76: -#line 823 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 85: +#line 871 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // reserve a variable named "$OLD", we might need it in the update expression // and in a later return thing parser->pushStack(parser->ast()->createNodeVariable(TRI_CHAR_LENGTH_PAIR(Variable::NAME_OLD), true)); } -#line 2765 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2850 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 77: -#line 827 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 86: +#line 875 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if (! parser->configureWriteQuery((yyvsp[-1].node), (yyvsp[0].node))) { YYABORT; @@ -2810,35 +2895,35 @@ yyreduce: auto node = parser->ast()->createNodeUpsert(static_cast((yyvsp[-3].intval)), parser->ast()->createNodeReference(TRI_CHAR_LENGTH_PAIR(Variable::NAME_OLD)), (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); parser->ast()->addOperation(node); } -#line 2814 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2899 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 78: -#line 874 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 87: +#line 922 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeQuantifier(Quantifier::ALL); } -#line 2822 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2907 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 79: -#line 877 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 88: +#line 925 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeQuantifier(Quantifier::ANY); } -#line 2830 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2915 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 80: -#line 880 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 89: +#line 928 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeQuantifier(Quantifier::NONE); } -#line 2838 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2923 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 81: -#line 886 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 90: +#line 934 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto const scopeType = parser->ast()->scopes()->type(); @@ -2847,83 +2932,83 @@ yyreduce: parser->registerParseError(TRI_ERROR_QUERY_PARSE, "cannot use DISTINCT modifier on top-level query element", yylloc.first_line, yylloc.first_column); } } -#line 2851 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 82: -#line 893 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeDistinct((yyvsp[0].node)); - } -#line 2859 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 83: -#line 896 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 2867 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 84: -#line 902 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 2875 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 85: -#line 905 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 2883 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 86: -#line 908 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 2891 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 87: -#line 911 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 2899 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 88: -#line 914 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 2907 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 89: -#line 917 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeRange((yyvsp[-2].node), (yyvsp[0].node)); - } -#line 2915 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 90: -#line 923 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.strval) = (yyvsp[0].strval); - } -#line 2923 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 2936 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 91: -#line 926 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 941 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeDistinct((yyvsp[0].node)); + } +#line 2944 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 92: +#line 944 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 2952 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 93: +#line 950 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 2960 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 94: +#line 953 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 2968 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 95: +#line 956 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 2976 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 96: +#line 959 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 2984 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 97: +#line 962 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 2992 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 98: +#line 965 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeRange((yyvsp[-2].node), (yyvsp[0].node)); + } +#line 3000 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 99: +#line 971 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.strval) = (yyvsp[0].strval); + } +#line 3008 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 100: +#line 974 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { std::string temp((yyvsp[-2].strval).value, (yyvsp[-2].strval).length); temp.append("::"); @@ -2937,278 +3022,278 @@ yyreduce: (yyval.strval).value = p; (yyval.strval).length = temp.size(); } -#line 2941 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3026 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 92: -#line 942 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 101: +#line 990 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushStack((yyvsp[0].strval).value); auto node = parser->ast()->createNodeArray(); parser->pushStack(node); } -#line 2952 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3037 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 93: -#line 947 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 102: +#line 995 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto list = static_cast(parser->popStack()); (yyval.node) = parser->ast()->createNodeFunctionCall(static_cast(parser->popStack()), list); } -#line 2961 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 94: -#line 954 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_PLUS, (yyvsp[0].node)); - } -#line 2969 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 95: -#line 957 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_MINUS, (yyvsp[0].node)); - } -#line 2977 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 96: -#line 960 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_NOT, (yyvsp[0].node)); - } -#line 2985 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 97: -#line 966 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_OR, (yyvsp[-2].node), (yyvsp[0].node)); - } -#line 2993 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 98: -#line 969 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_AND, (yyvsp[-2].node), (yyvsp[0].node)); - } -#line 3001 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 99: -#line 972 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_PLUS, (yyvsp[-2].node), (yyvsp[0].node)); - } -#line 3009 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 100: -#line 975 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_MINUS, (yyvsp[-2].node), (yyvsp[0].node)); - } -#line 3017 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 101: -#line 978 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_TIMES, (yyvsp[-2].node), (yyvsp[0].node)); - } -#line 3025 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 102: -#line 981 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_DIV, (yyvsp[-2].node), (yyvsp[0].node)); - } -#line 3033 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3046 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 103: -#line 984 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1002 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_MOD, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_PLUS, (yyvsp[0].node)); } -#line 3041 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3054 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 104: -#line 987 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1005 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_EQ, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_MINUS, (yyvsp[0].node)); } -#line 3049 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3062 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 105: -#line 990 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_NE, (yyvsp[-2].node), (yyvsp[0].node)); +#line 1008 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_NOT, (yyvsp[0].node)); } -#line 3057 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3070 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 106: -#line 993 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1014 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_LT, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_OR, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3065 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3078 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 107: -#line 996 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1017 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_GT, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_AND, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3073 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3086 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 108: -#line 999 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1020 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_LE, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_PLUS, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3081 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3094 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 109: -#line 1002 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1023 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_GE, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_MINUS, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3089 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3102 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 110: -#line 1005 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1026 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_IN, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_TIMES, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3097 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3110 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 111: -#line 1008 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1029 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_NIN, (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_DIV, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3105 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3118 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 112: -#line 1011 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1032 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_EQ, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_MOD, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3113 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3126 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 113: -#line 1014 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1035 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NE, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_EQ, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3121 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3134 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 114: -#line 1017 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1038 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_LT, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_NE, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3129 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3142 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 115: -#line 1020 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1041 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_GT, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_LT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3137 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3150 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 116: -#line 1023 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1044 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_LE, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_GT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3145 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3158 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 117: -#line 1026 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1047 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_GE, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_LE, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3153 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3166 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 118: -#line 1029 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1050 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_IN, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_GE, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3161 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3174 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 119: -#line 1032 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1053 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NIN, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_IN, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3169 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3182 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 120: -#line 1038 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1056 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeTernaryOperator((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); + (yyval.node) = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_NIN, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3177 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3190 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 121: -#line 1044 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1059 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_EQ, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); } -#line 3184 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3198 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 122: -#line 1046 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1062 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NE, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); } -#line 3191 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3206 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 123: -#line 1051 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1065 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = (yyvsp[0].node); + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_LT, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); } -#line 3199 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3214 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 124: -#line 1054 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1068 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_GT, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + } +#line 3222 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 125: +#line 1071 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_LE, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + } +#line 3230 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 126: +#line 1074 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_GE, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + } +#line 3238 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 127: +#line 1077 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_IN, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + } +#line 3246 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 128: +#line 1080 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NIN, (yyvsp[-3].node), (yyvsp[0].node), (yyvsp[-2].node)); + } +#line 3254 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 129: +#line 1086 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeTernaryOperator((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); + } +#line 3262 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 130: +#line 1092 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 3269 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 131: +#line 1094 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + } +#line 3276 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 132: +#line 1099 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 3284 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 133: +#line 1102 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->ast()->scopes()->start(arangodb::aql::AQL_SCOPE_SUBQUERY); parser->ast()->startSubQuery(); } -#line 3208 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3293 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 125: -#line 1057 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 134: +#line 1105 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { AstNode* node = parser->ast()->endSubQuery(); parser->ast()->scopes()->endCurrent(); @@ -3219,98 +3304,98 @@ yyreduce: (yyval.node) = parser->ast()->createNodeReference(variableName); } -#line 3223 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3308 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 126: -#line 1070 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 135: +#line 1118 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushArrayElement((yyvsp[0].node)); } -#line 3231 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3316 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 127: -#line 1073 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 136: +#line 1121 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushArrayElement((yyvsp[0].node)); } -#line 3239 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3324 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 128: -#line 1079 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 137: +#line 1127 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3247 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3332 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 129: -#line 1082 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 138: +#line 1130 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3255 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3340 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 130: -#line 1088 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 139: +#line 1136 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); parser->pushStack(node); } -#line 3264 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3349 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 131: -#line 1091 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 140: +#line 1139 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = static_cast(parser->popStack()); } -#line 3272 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3357 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 132: -#line 1097 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 141: +#line 1145 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 3279 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3364 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 133: -#line 1099 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 142: +#line 1147 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 3286 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3371 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 134: -#line 1104 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 143: +#line 1152 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushArrayElement((yyvsp[0].node)); } -#line 3294 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3379 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 135: -#line 1107 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 144: +#line 1155 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->pushArrayElement((yyvsp[0].node)); } -#line 3302 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3387 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 136: -#line 1113 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 145: +#line 1161 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = nullptr; } -#line 3310 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3395 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 137: -#line 1116 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 146: +#line 1164 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if ((yyvsp[0].node) == nullptr) { ABORT_OOM @@ -3322,56 +3407,56 @@ yyreduce: (yyval.node) = (yyvsp[0].node); } -#line 3326 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3411 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 138: -#line 1130 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 147: +#line 1178 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeObject(); parser->pushStack(node); } -#line 3335 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3420 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 139: -#line 1133 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 148: +#line 1181 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = static_cast(parser->popStack()); } -#line 3343 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3428 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 140: -#line 1139 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 149: +#line 1187 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 3350 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3435 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 141: -#line 1141 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 150: +#line 1189 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 3357 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3442 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 142: -#line 1146 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 151: +#line 1194 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 3364 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3449 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 143: -#line 1148 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 152: +#line 1196 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { } -#line 3371 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3456 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 144: -#line 1153 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 153: +#line 1201 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // attribute-name-only (comparable to JS enhanced object literals, e.g. { foo, bar }) auto ast = parser->ast(); @@ -3386,20 +3471,20 @@ yyreduce: auto node = ast->createNodeReference(variable); parser->pushObjectElement((yyvsp[0].strval).value, (yyvsp[0].strval).length, node); } -#line 3390 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3475 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 145: -#line 1167 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 154: +#line 1215 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // attribute-name : attribute-value parser->pushObjectElement((yyvsp[-2].strval).value, (yyvsp[-2].strval).length, (yyvsp[0].node)); } -#line 3399 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3484 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 146: -#line 1171 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 155: +#line 1219 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // bind-parameter : attribute-value if ((yyvsp[-2].strval).length < 1 || (yyvsp[-2].strval).value[0] == '@') { @@ -3409,100 +3494,100 @@ yyreduce: auto param = parser->ast()->createNodeParameter((yyvsp[-2].strval).value, (yyvsp[-2].strval).length); parser->pushObjectElement(param, (yyvsp[0].node)); } -#line 3413 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3498 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 147: -#line 1180 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 156: +#line 1228 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // [ attribute-name-expression ] : attribute-value parser->pushObjectElement((yyvsp[-3].node), (yyvsp[0].node)); } -#line 3422 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 148: -#line 1187 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.intval) = 1; - } -#line 3430 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 149: -#line 1190 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.intval) = (yyvsp[-1].intval) + 1; - } -#line 3438 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 150: -#line 1196 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = nullptr; - } -#line 3446 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 151: -#line 1199 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 3454 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 152: -#line 1205 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = nullptr; - } -#line 3462 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 153: -#line 1208 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeArrayLimit(nullptr, (yyvsp[0].node)); - } -#line 3470 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 154: -#line 1211 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = parser->ast()->createNodeArrayLimit((yyvsp[-2].node), (yyvsp[0].node)); - } -#line 3478 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 155: -#line 1217 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = nullptr; - } -#line 3486 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ - break; - - case 156: -#line 1220 "arangod/Aql/grammar.y" /* yacc.c:1646 */ - { - (yyval.node) = (yyvsp[0].node); - } -#line 3494 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3507 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 157: -#line 1226 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1235 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { - (yyval.node) = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); + (yyval.intval) = 1; } -#line 3502 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3515 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; case 158: -#line 1229 "arangod/Aql/grammar.y" /* yacc.c:1646 */ +#line 1238 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.intval) = (yyvsp[-1].intval) + 1; + } +#line 3523 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 159: +#line 1244 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = nullptr; + } +#line 3531 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 160: +#line 1247 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 3539 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 161: +#line 1253 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = nullptr; + } +#line 3547 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 162: +#line 1256 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeArrayLimit(nullptr, (yyvsp[0].node)); + } +#line 3555 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 163: +#line 1259 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeArrayLimit((yyvsp[-2].node), (yyvsp[0].node)); + } +#line 3563 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 164: +#line 1265 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = nullptr; + } +#line 3571 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 165: +#line 1268 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 3579 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 166: +#line 1274 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + { + (yyval.node) = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); + } +#line 3587 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ + break; + + case 167: +#line 1277 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { char const* p = (yyvsp[0].node)->getStringValue(); size_t const len = (yyvsp[0].node)->getStringLength(); @@ -3511,20 +3596,20 @@ yyreduce: } (yyval.node) = (yyvsp[0].node); } -#line 3515 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3600 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 159: -#line 1237 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 168: +#line 1285 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto tmp = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); (yyval.node) = parser->ast()->createNodeCollectionDirection((yyvsp[-1].intval), tmp); } -#line 3524 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3609 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 160: -#line 1241 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 169: +#line 1289 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { char const* p = (yyvsp[0].node)->getStringValue(); size_t const len = (yyvsp[0].node)->getStringLength(); @@ -3533,58 +3618,58 @@ yyreduce: } (yyval.node) = parser->ast()->createNodeCollectionDirection((yyvsp[-1].intval), (yyvsp[0].node)); } -#line 3537 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3622 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 161: -#line 1252 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 170: +#line 1300 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = static_cast(parser->peekStack()); node->addMember((yyvsp[0].node)); } -#line 3546 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3631 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 162: -#line 1256 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 171: +#line 1304 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = static_cast(parser->peekStack()); node->addMember((yyvsp[0].node)); } -#line 3555 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3640 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 163: -#line 1263 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 172: +#line 1311 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); node->addMember((yyvsp[0].node)); (yyval.node) = parser->ast()->createNodeCollectionList(node); } -#line 3565 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3650 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 164: -#line 1268 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 173: +#line 1316 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = parser->ast()->createNodeArray(); parser->pushStack(node); node->addMember((yyvsp[-1].node)); } -#line 3575 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3660 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 165: -#line 1272 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 174: +#line 1320 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto node = static_cast(parser->popStack()); (yyval.node) = parser->ast()->createNodeCollectionList(node); } -#line 3584 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3669 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 166: -#line 1276 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 175: +#line 1324 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // graph name char const* p = (yyvsp[0].node)->getStringValue(); @@ -3594,60 +3679,60 @@ yyreduce: } (yyval.node) = (yyvsp[0].node); } -#line 3598 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3683 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 167: -#line 1285 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 176: +#line 1333 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // graph name (yyval.node) = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); } -#line 3607 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3692 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 168: -#line 1294 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 177: +#line 1342 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.intval) = 2; } -#line 3615 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3700 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 169: -#line 1297 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 178: +#line 1345 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.intval) = 1; } -#line 3623 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3708 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 170: -#line 1300 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 179: +#line 1348 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.intval) = 0; } -#line 3631 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3716 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 171: -#line 1306 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 180: +#line 1354 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeDirection((yyvsp[0].intval), 1); } -#line 3639 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3724 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 172: -#line 1309 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 181: +#line 1357 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeDirection((yyvsp[0].intval), (yyvsp[-1].node)); } -#line 3647 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3732 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 173: -#line 1315 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 182: +#line 1363 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // variable or collection auto ast = parser->ast(); @@ -3680,27 +3765,27 @@ yyreduce: (yyval.node) = node; } -#line 3684 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3769 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 174: -#line 1347 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 183: +#line 1395 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3692 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3777 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 175: -#line 1350 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 184: +#line 1398 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3700 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3785 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 176: -#line 1353 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 185: +#line 1401 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); @@ -3708,11 +3793,11 @@ yyreduce: ABORT_OOM } } -#line 3712 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3797 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 177: -#line 1360 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 186: +#line 1408 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if ((yyvsp[-1].node)->type == NODE_TYPE_EXPANSION) { // create a dummy passthru node that reduces and evaluates the expansion first @@ -3723,20 +3808,20 @@ yyreduce: (yyval.node) = (yyvsp[-1].node); } } -#line 3727 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3812 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 178: -#line 1370 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 187: +#line 1418 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { parser->ast()->scopes()->start(arangodb::aql::AQL_SCOPE_SUBQUERY); parser->ast()->startSubQuery(); } -#line 3736 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3821 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 179: -#line 1373 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 188: +#line 1421 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { AstNode* node = parser->ast()->endSubQuery(); parser->ast()->scopes()->endCurrent(); @@ -3747,11 +3832,11 @@ yyreduce: (yyval.node) = parser->ast()->createNodeReference(variableName); } -#line 3751 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3836 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 180: -#line 1383 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 189: +#line 1431 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // named variable access, e.g. variable.reference if ((yyvsp[-2].node)->type == NODE_TYPE_EXPANSION) { @@ -3767,11 +3852,11 @@ yyreduce: (yyval.node) = parser->ast()->createNodeAttributeAccess((yyvsp[-2].node), (yyvsp[0].strval).value, (yyvsp[0].strval).length); } } -#line 3771 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3856 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 181: -#line 1398 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 190: +#line 1446 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // named variable access, e.g. variable.@reference if ((yyvsp[-2].node)->type == NODE_TYPE_EXPANSION) { @@ -3786,11 +3871,11 @@ yyreduce: (yyval.node) = parser->ast()->createNodeBoundAttributeAccess((yyvsp[-2].node), (yyvsp[0].node)); } } -#line 3790 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3875 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 182: -#line 1412 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 191: +#line 1460 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // indexed variable access, e.g. variable[index] if ((yyvsp[-3].node)->type == NODE_TYPE_EXPANSION) { @@ -3805,11 +3890,11 @@ yyreduce: (yyval.node) = parser->ast()->createNodeIndexedAccess((yyvsp[-3].node), (yyvsp[-1].node)); } } -#line 3809 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3894 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 183: -#line 1426 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 192: +#line 1474 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { // variable expansion, e.g. variable[*], with optional FILTER, LIMIT and RETURN clauses if ((yyvsp[0].intval) > 1 && (yyvsp[-2].node)->type == NODE_TYPE_EXPANSION) { @@ -3833,11 +3918,11 @@ yyreduce: auto scopes = parser->ast()->scopes(); scopes->stackCurrentVariable(scopes->getVariable(nextName)); } -#line 3837 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3922 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 184: -#line 1448 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 193: +#line 1496 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { auto scopes = parser->ast()->scopes(); scopes->unstackCurrentVariable(); @@ -3856,27 +3941,27 @@ yyreduce: (yyval.node) = parser->ast()->createNodeExpansion((yyvsp[-5].intval), iterator, parser->ast()->createNodeReference(variable->name), (yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node)); } } -#line 3860 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3945 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 185: -#line 1469 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 194: +#line 1517 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3868 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3953 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 186: -#line 1472 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 195: +#line 1520 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3876 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3961 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 187: -#line 1478 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 196: +#line 1526 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if ((yyvsp[0].node) == nullptr) { ABORT_OOM @@ -3884,11 +3969,11 @@ yyreduce: (yyval.node) = (yyvsp[0].node); } -#line 3888 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3973 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 188: -#line 1485 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 197: +#line 1533 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if ((yyvsp[0].node) == nullptr) { ABORT_OOM @@ -3896,67 +3981,67 @@ yyreduce: (yyval.node) = (yyvsp[0].node); } -#line 3900 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3985 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 189: -#line 1495 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 198: +#line 1543 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueString((yyvsp[0].strval).value, (yyvsp[0].strval).length); } -#line 3908 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 3993 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 190: -#line 1498 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 199: +#line 1546 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = (yyvsp[0].node); } -#line 3916 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4001 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 191: -#line 1501 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 200: +#line 1549 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueNull(); } -#line 3924 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4009 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 192: -#line 1504 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 201: +#line 1552 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueBool(true); } -#line 3932 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4017 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 193: -#line 1507 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 202: +#line 1555 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeValueBool(false); } -#line 3940 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4025 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 194: -#line 1513 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 203: +#line 1561 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeCollection((yyvsp[0].strval).value, TRI_TRANSACTION_WRITE); } -#line 3948 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4033 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 195: -#line 1516 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 204: +#line 1564 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeCollection((yyvsp[0].strval).value, TRI_TRANSACTION_WRITE); } -#line 3956 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4041 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 196: -#line 1519 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 205: +#line 1567 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { if ((yyvsp[0].strval).length < 2 || (yyvsp[0].strval).value[0] != '@') { parser->registerParseError(TRI_ERROR_QUERY_BIND_PARAMETER_TYPE, TRI_errno_string(TRI_ERROR_QUERY_BIND_PARAMETER_TYPE), (yyvsp[0].strval).value, yylloc.first_line, yylloc.first_column); @@ -3964,43 +4049,43 @@ yyreduce: (yyval.node) = parser->ast()->createNodeParameter((yyvsp[0].strval).value, (yyvsp[0].strval).length); } -#line 3968 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4053 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 197: -#line 1529 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 206: +#line 1577 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.node) = parser->ast()->createNodeParameter((yyvsp[0].strval).value, (yyvsp[0].strval).length); } -#line 3976 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4061 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 198: -#line 1535 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 207: +#line 1583 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.strval) = (yyvsp[0].strval); } -#line 3984 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4069 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 199: -#line 1538 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 208: +#line 1586 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.strval) = (yyvsp[0].strval); } -#line 3992 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4077 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; - case 200: -#line 1543 "arangod/Aql/grammar.y" /* yacc.c:1646 */ + case 209: +#line 1591 "arangod/Aql/grammar.y" /* yacc.c:1646 */ { (yyval.strval) = (yyvsp[0].strval); } -#line 4000 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4085 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ break; -#line 4004 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ +#line 4089 "arangod/Aql/grammar.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires