diff --git a/tree-sitter-uvl/grammar.js b/tree-sitter-uvl/grammar.js index 5807f009..7f87bedd 100644 --- a/tree-sitter-uvl/grammar.js +++ b/tree-sitter-uvl/grammar.js @@ -3,7 +3,7 @@ const PREC = { not: 6, consequence: 2, - logic: 2, + logic: 3, eq: 4, mul: 5, add: 5, diff --git a/tree-sitter-uvl/src/grammar.json b/tree-sitter-uvl/src/grammar.json index 8e20ed54..dfd2f4a4 100644 --- a/tree-sitter-uvl/src/grammar.json +++ b/tree-sitter-uvl/src/grammar.json @@ -615,7 +615,7 @@ "members": [ { "type": "PREC_LEFT", - "value": 2, + "value": 3, "content": { "type": "SEQ", "members": [ @@ -648,7 +648,7 @@ }, { "type": "PREC_LEFT", - "value": 2, + "value": 3, "content": { "type": "SEQ", "members": [ diff --git a/tree-sitter-uvl/src/parser.c b/tree-sitter-uvl/src/parser.c index e5280533..8dc45bba 100644 --- a/tree-sitter-uvl/src/parser.c +++ b/tree-sitter-uvl/src/parser.c @@ -6,7 +6,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 311 +#define STATE_COUNT 319 #define LARGE_STATE_COUNT 21 #define SYMBOL_COUNT 96 #define ALIAS_COUNT 2 @@ -937,22 +937,22 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, - [3] = 3, + [3] = 2, [4] = 4, [5] = 5, [6] = 6, [7] = 7, [8] = 8, - [9] = 3, + [9] = 9, [10] = 10, - [11] = 8, - [12] = 12, - [13] = 6, - [14] = 2, - [15] = 7, - [16] = 12, - [17] = 17, - [18] = 17, + [11] = 11, + [12] = 8, + [13] = 13, + [14] = 6, + [15] = 11, + [16] = 7, + [17] = 13, + [18] = 9, [19] = 4, [20] = 5, [21] = 21, @@ -961,35 +961,35 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [24] = 24, [25] = 25, [26] = 26, - [27] = 27, - [28] = 27, + [27] = 22, + [28] = 26, [29] = 23, - [30] = 26, - [31] = 22, - [32] = 32, + [30] = 30, + [31] = 25, + [32] = 30, [33] = 33, - [34] = 33, - [35] = 25, + [34] = 34, + [35] = 34, [36] = 36, - [37] = 24, - [38] = 21, - [39] = 32, + [37] = 36, + [38] = 24, + [39] = 21, [40] = 40, - [41] = 40, + [41] = 41, [42] = 42, [43] = 43, [44] = 44, - [45] = 45, - [46] = 46, + [45] = 43, + [46] = 42, [47] = 44, [48] = 48, [49] = 49, - [50] = 45, - [51] = 43, - [52] = 46, - [53] = 48, - [54] = 42, - [55] = 49, + [50] = 49, + [51] = 51, + [52] = 51, + [53] = 40, + [54] = 41, + [55] = 48, [56] = 56, [57] = 57, [58] = 58, @@ -1004,247 +1004,255 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [67] = 67, [68] = 68, [69] = 66, - [70] = 70, - [71] = 66, + [70] = 66, + [71] = 68, [72] = 72, - [73] = 66, - [74] = 67, - [75] = 67, - [76] = 76, - [77] = 67, - [78] = 57, - [79] = 79, + [73] = 73, + [74] = 68, + [75] = 75, + [76] = 66, + [77] = 68, + [78] = 78, + [79] = 78, [80] = 80, - [81] = 81, - [82] = 81, - [83] = 83, + [81] = 57, + [82] = 82, + [83] = 82, [84] = 84, [85] = 85, - [86] = 83, - [87] = 85, - [88] = 79, - [89] = 89, - [90] = 89, - [91] = 83, - [92] = 85, - [93] = 93, - [94] = 89, - [95] = 95, - [96] = 96, - [97] = 81, - [98] = 96, - [99] = 79, - [100] = 81, - [101] = 96, - [102] = 89, - [103] = 96, - [104] = 79, - [105] = 105, - [106] = 85, - [107] = 83, - [108] = 70, - [109] = 109, + [86] = 86, + [87] = 87, + [88] = 88, + [89] = 84, + [90] = 90, + [91] = 91, + [92] = 82, + [93] = 90, + [94] = 91, + [95] = 88, + [96] = 84, + [97] = 91, + [98] = 90, + [99] = 87, + [100] = 78, + [101] = 88, + [102] = 82, + [103] = 87, + [104] = 104, + [105] = 91, + [106] = 87, + [107] = 78, + [108] = 90, + [109] = 84, [110] = 110, - [111] = 70, + [111] = 88, [112] = 112, - [113] = 70, - [114] = 114, + [113] = 113, + [114] = 80, [115] = 80, - [116] = 80, - [117] = 80, + [116] = 72, + [117] = 72, [118] = 118, - [119] = 119, - [120] = 120, - [121] = 114, - [122] = 114, - [123] = 109, + [119] = 72, + [120] = 80, + [121] = 121, + [122] = 122, + [123] = 123, [124] = 124, - [125] = 118, - [126] = 109, - [127] = 68, - [128] = 118, - [129] = 118, - [130] = 68, - [131] = 109, - [132] = 68, - [133] = 114, - [134] = 134, - [135] = 135, - [136] = 136, - [137] = 119, + [125] = 113, + [126] = 123, + [127] = 121, + [128] = 121, + [129] = 129, + [130] = 123, + [131] = 113, + [132] = 121, + [133] = 123, + [134] = 67, + [135] = 67, + [136] = 113, + [137] = 67, [138] = 138, - [139] = 119, - [140] = 140, + [139] = 139, + [140] = 124, [141] = 141, [142] = 142, - [143] = 138, + [143] = 124, [144] = 144, - [145] = 119, + [145] = 124, [146] = 146, - [147] = 147, + [147] = 142, [148] = 148, - [149] = 138, + [149] = 149, [150] = 150, [151] = 151, [152] = 152, [153] = 153, - [154] = 57, + [154] = 142, [155] = 155, - [156] = 138, + [156] = 156, [157] = 57, - [158] = 153, - [159] = 150, + [158] = 158, + [159] = 159, [160] = 160, - [161] = 150, - [162] = 135, - [163] = 163, - [164] = 135, - [165] = 150, - [166] = 140, - [167] = 141, - [168] = 142, - [169] = 148, - [170] = 134, - [171] = 136, - [172] = 152, - [173] = 153, - [174] = 174, - [175] = 146, - [176] = 147, - [177] = 146, - [178] = 147, - [179] = 174, - [180] = 142, - [181] = 141, - [182] = 152, - [183] = 140, - [184] = 148, - [185] = 134, - [186] = 135, - [187] = 136, - [188] = 134, - [189] = 148, - [190] = 140, - [191] = 142, - [192] = 146, - [193] = 193, - [194] = 147, - [195] = 152, - [196] = 141, - [197] = 153, - [198] = 136, + [161] = 142, + [162] = 57, + [163] = 152, + [164] = 138, + [165] = 155, + [166] = 146, + [167] = 159, + [168] = 144, + [169] = 151, + [170] = 139, + [171] = 139, + [172] = 151, + [173] = 141, + [174] = 158, + [175] = 152, + [176] = 176, + [177] = 144, + [178] = 178, + [179] = 159, + [180] = 153, + [181] = 150, + [182] = 149, + [183] = 158, + [184] = 138, + [185] = 178, + [186] = 146, + [187] = 187, + [188] = 153, + [189] = 155, + [190] = 149, + [191] = 155, + [192] = 149, + [193] = 150, + [194] = 146, + [195] = 141, + [196] = 138, + [197] = 150, + [198] = 153, [199] = 199, - [200] = 199, - [201] = 199, - [202] = 199, - [203] = 203, - [204] = 204, - [205] = 203, - [206] = 206, - [207] = 204, - [208] = 204, - [209] = 206, - [210] = 203, - [211] = 206, - [212] = 204, - [213] = 203, - [214] = 206, + [200] = 158, + [201] = 159, + [202] = 144, + [203] = 141, + [204] = 139, + [205] = 152, + [206] = 151, + [207] = 207, + [208] = 207, + [209] = 207, + [210] = 207, + [211] = 211, + [212] = 211, + [213] = 213, + [214] = 211, [215] = 215, - [216] = 216, - [217] = 217, - [218] = 218, - [219] = 219, - [220] = 220, - [221] = 221, - [222] = 222, - [223] = 222, + [216] = 215, + [217] = 213, + [218] = 213, + [219] = 213, + [220] = 215, + [221] = 211, + [222] = 215, + [223] = 223, [224] = 224, - [225] = 222, + [225] = 225, [226] = 226, [227] = 227, - [228] = 222, - [229] = 226, + [228] = 228, + [229] = 229, [230] = 230, [231] = 231, - [232] = 232, - [233] = 233, - [234] = 234, - [235] = 235, - [236] = 234, - [237] = 235, + [232] = 231, + [233] = 231, + [234] = 229, + [235] = 231, + [236] = 236, + [237] = 237, [238] = 238, [239] = 239, [240] = 240, [241] = 241, [242] = 242, - [243] = 234, + [243] = 243, [244] = 244, - [245] = 235, + [245] = 239, [246] = 246, - [247] = 238, - [248] = 239, - [249] = 249, + [247] = 247, + [248] = 248, + [249] = 244, [250] = 250, - [251] = 251, + [251] = 244, [252] = 252, - [253] = 238, - [254] = 238, - [255] = 255, - [256] = 234, - [257] = 252, + [253] = 253, + [254] = 239, + [255] = 248, + [256] = 256, + [257] = 257, [258] = 258, - [259] = 235, - [260] = 249, - [261] = 261, - [262] = 27, + [259] = 259, + [260] = 260, + [261] = 248, + [262] = 248, [263] = 263, - [264] = 264, - [265] = 265, - [266] = 266, - [267] = 267, - [268] = 268, - [269] = 266, + [264] = 239, + [265] = 260, + [266] = 258, + [267] = 244, + [268] = 253, + [269] = 25, [270] = 270, [271] = 271, - [272] = 25, - [273] = 33, - [274] = 261, - [275] = 26, - [276] = 23, + [272] = 272, + [273] = 273, + [274] = 274, + [275] = 275, + [276] = 276, [277] = 277, [278] = 278, - [279] = 268, - [280] = 25, - [281] = 281, - [282] = 282, - [283] = 23, + [279] = 23, + [280] = 280, + [281] = 270, + [282] = 277, + [283] = 283, [284] = 26, - [285] = 33, + [285] = 30, [286] = 286, - [287] = 267, - [288] = 263, - [289] = 27, + [287] = 30, + [288] = 280, + [289] = 289, [290] = 290, - [291] = 291, - [292] = 292, - [293] = 292, - [294] = 294, + [291] = 275, + [292] = 25, + [293] = 271, + [294] = 23, [295] = 295, - [296] = 296, - [297] = 297, - [298] = 298, - [299] = 297, - [300] = 298, + [296] = 22, + [297] = 22, + [298] = 26, + [299] = 299, + [300] = 300, [301] = 301, - [302] = 291, - [303] = 292, - [304] = 298, - [305] = 297, - [306] = 292, - [307] = 291, - [308] = 298, - [309] = 297, - [310] = 291, + [302] = 300, + [303] = 303, + [304] = 304, + [305] = 305, + [306] = 306, + [307] = 305, + [308] = 306, + [309] = 299, + [310] = 300, + [311] = 299, + [312] = 306, + [313] = 305, + [314] = 314, + [315] = 299, + [316] = 306, + [317] = 305, + [318] = 300, }; static inline bool sym_name_character_set_1(int32_t c) { @@ -9037,14 +9045,14 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0, .external_lex_state = 1}, [1] = {.lex_state = 77, .external_lex_state = 2}, - [2] = {.lex_state = 77, .external_lex_state = 3}, + [2] = {.lex_state = 77, .external_lex_state = 2}, [3] = {.lex_state = 77, .external_lex_state = 3}, [4] = {.lex_state = 77, .external_lex_state = 3}, [5] = {.lex_state = 77, .external_lex_state = 3}, [6] = {.lex_state = 77, .external_lex_state = 3}, [7] = {.lex_state = 77, .external_lex_state = 3}, [8] = {.lex_state = 77, .external_lex_state = 3}, - [9] = {.lex_state = 77, .external_lex_state = 2}, + [9] = {.lex_state = 77, .external_lex_state = 3}, [10] = {.lex_state = 77, .external_lex_state = 2}, [11] = {.lex_state = 77, .external_lex_state = 3}, [12] = {.lex_state = 77, .external_lex_state = 3}, @@ -9061,31 +9069,31 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [23] = {.lex_state = 77, .external_lex_state = 4}, [24] = {.lex_state = 77, .external_lex_state = 4}, [25] = {.lex_state = 77, .external_lex_state = 5}, - [26] = {.lex_state = 77, .external_lex_state = 5}, - [27] = {.lex_state = 77, .external_lex_state = 4}, + [26] = {.lex_state = 77, .external_lex_state = 4}, + [27] = {.lex_state = 77, .external_lex_state = 5}, [28] = {.lex_state = 77, .external_lex_state = 5}, [29] = {.lex_state = 77, .external_lex_state = 5}, [30] = {.lex_state = 77, .external_lex_state = 4}, - [31] = {.lex_state = 77, .external_lex_state = 5}, + [31] = {.lex_state = 77, .external_lex_state = 4}, [32] = {.lex_state = 77, .external_lex_state = 5}, - [33] = {.lex_state = 77, .external_lex_state = 4}, - [34] = {.lex_state = 77, .external_lex_state = 5}, - [35] = {.lex_state = 77, .external_lex_state = 4}, - [36] = {.lex_state = 77, .external_lex_state = 6}, + [33] = {.lex_state = 77, .external_lex_state = 6}, + [34] = {.lex_state = 77, .external_lex_state = 4}, + [35] = {.lex_state = 77, .external_lex_state = 5}, + [36] = {.lex_state = 77, .external_lex_state = 4}, [37] = {.lex_state = 77, .external_lex_state = 5}, [38] = {.lex_state = 77, .external_lex_state = 5}, - [39] = {.lex_state = 77, .external_lex_state = 4}, - [40] = {.lex_state = 77, .external_lex_state = 3}, - [41] = {.lex_state = 77, .external_lex_state = 2}, - [42] = {.lex_state = 77, .external_lex_state = 3}, + [39] = {.lex_state = 77, .external_lex_state = 5}, + [40] = {.lex_state = 77, .external_lex_state = 2}, + [41] = {.lex_state = 77, .external_lex_state = 3}, + [42] = {.lex_state = 77, .external_lex_state = 2}, [43] = {.lex_state = 77, .external_lex_state = 3}, [44] = {.lex_state = 77, .external_lex_state = 3}, - [45] = {.lex_state = 77, .external_lex_state = 3}, - [46] = {.lex_state = 77, .external_lex_state = 2}, + [45] = {.lex_state = 77, .external_lex_state = 2}, + [46] = {.lex_state = 77, .external_lex_state = 3}, [47] = {.lex_state = 77, .external_lex_state = 2}, [48] = {.lex_state = 77, .external_lex_state = 2}, [49] = {.lex_state = 77, .external_lex_state = 2}, - [50] = {.lex_state = 77, .external_lex_state = 2}, + [50] = {.lex_state = 77, .external_lex_state = 3}, [51] = {.lex_state = 77, .external_lex_state = 2}, [52] = {.lex_state = 77, .external_lex_state = 3}, [53] = {.lex_state = 77, .external_lex_state = 3}, @@ -9102,21 +9110,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [64] = {.lex_state = 5, .external_lex_state = 2}, [65] = {.lex_state = 5, .external_lex_state = 6}, [66] = {.lex_state = 5, .external_lex_state = 9}, - [67] = {.lex_state = 5, .external_lex_state = 9}, - [68] = {.lex_state = 5, .external_lex_state = 6}, + [67] = {.lex_state = 5, .external_lex_state = 6}, + [68] = {.lex_state = 5, .external_lex_state = 9}, [69] = {.lex_state = 5, .external_lex_state = 9}, - [70] = {.lex_state = 5, .external_lex_state = 6}, + [70] = {.lex_state = 5, .external_lex_state = 9}, [71] = {.lex_state = 5, .external_lex_state = 9}, - [72] = {.lex_state = 5, .external_lex_state = 8}, - [73] = {.lex_state = 5, .external_lex_state = 9}, + [72] = {.lex_state = 5, .external_lex_state = 6}, + [73] = {.lex_state = 5, .external_lex_state = 8}, [74] = {.lex_state = 5, .external_lex_state = 9}, - [75] = {.lex_state = 5, .external_lex_state = 9}, - [76] = {.lex_state = 5, .external_lex_state = 8}, + [75] = {.lex_state = 5, .external_lex_state = 8}, + [76] = {.lex_state = 5, .external_lex_state = 9}, [77] = {.lex_state = 5, .external_lex_state = 9}, - [78] = {.lex_state = 5, .external_lex_state = 6}, + [78] = {.lex_state = 5, .external_lex_state = 2}, [79] = {.lex_state = 5, .external_lex_state = 2}, [80] = {.lex_state = 5, .external_lex_state = 6}, - [81] = {.lex_state = 5, .external_lex_state = 2}, + [81] = {.lex_state = 5, .external_lex_state = 6}, [82] = {.lex_state = 5, .external_lex_state = 2}, [83] = {.lex_state = 5, .external_lex_state = 2}, [84] = {.lex_state = 5, .external_lex_state = 2}, @@ -9143,209 +9151,217 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [105] = {.lex_state = 5, .external_lex_state = 2}, [106] = {.lex_state = 5, .external_lex_state = 2}, [107] = {.lex_state = 5, .external_lex_state = 2}, - [108] = {.lex_state = 5, .external_lex_state = 9}, - [109] = {.lex_state = 5, .external_lex_state = 6}, - [110] = {.lex_state = 77, .external_lex_state = 6}, - [111] = {.lex_state = 5, .external_lex_state = 8}, + [108] = {.lex_state = 5, .external_lex_state = 2}, + [109] = {.lex_state = 5, .external_lex_state = 2}, + [110] = {.lex_state = 5, .external_lex_state = 2}, + [111] = {.lex_state = 5, .external_lex_state = 2}, [112] = {.lex_state = 77, .external_lex_state = 6}, - [113] = {.lex_state = 5, .external_lex_state = 7}, - [114] = {.lex_state = 5, .external_lex_state = 6}, - [115] = {.lex_state = 5, .external_lex_state = 9}, - [116] = {.lex_state = 5, .external_lex_state = 7}, - [117] = {.lex_state = 5, .external_lex_state = 8}, - [118] = {.lex_state = 5, .external_lex_state = 6}, - [119] = {.lex_state = 5, .external_lex_state = 6}, - [120] = {.lex_state = 5, .external_lex_state = 6}, - [121] = {.lex_state = 77, .external_lex_state = 8}, - [122] = {.lex_state = 77, .external_lex_state = 7}, - [123] = {.lex_state = 77, .external_lex_state = 8}, + [113] = {.lex_state = 5, .external_lex_state = 6}, + [114] = {.lex_state = 5, .external_lex_state = 9}, + [115] = {.lex_state = 5, .external_lex_state = 8}, + [116] = {.lex_state = 5, .external_lex_state = 9}, + [117] = {.lex_state = 5, .external_lex_state = 7}, + [118] = {.lex_state = 77, .external_lex_state = 6}, + [119] = {.lex_state = 5, .external_lex_state = 8}, + [120] = {.lex_state = 5, .external_lex_state = 7}, + [121] = {.lex_state = 5, .external_lex_state = 6}, + [122] = {.lex_state = 5, .external_lex_state = 6}, + [123] = {.lex_state = 5, .external_lex_state = 6}, [124] = {.lex_state = 5, .external_lex_state = 6}, [125] = {.lex_state = 77, .external_lex_state = 8}, [126] = {.lex_state = 77, .external_lex_state = 9}, - [127] = {.lex_state = 77, .external_lex_state = 8}, - [128] = {.lex_state = 77, .external_lex_state = 9}, - [129] = {.lex_state = 77, .external_lex_state = 7}, - [130] = {.lex_state = 77, .external_lex_state = 7}, + [127] = {.lex_state = 77, .external_lex_state = 7}, + [128] = {.lex_state = 77, .external_lex_state = 8}, + [129] = {.lex_state = 5, .external_lex_state = 6}, + [130] = {.lex_state = 77, .external_lex_state = 8}, [131] = {.lex_state = 77, .external_lex_state = 7}, [132] = {.lex_state = 77, .external_lex_state = 9}, - [133] = {.lex_state = 77, .external_lex_state = 9}, - [134] = {.lex_state = 5, .external_lex_state = 6}, - [135] = {.lex_state = 5, .external_lex_state = 6}, - [136] = {.lex_state = 5, .external_lex_state = 6}, - [137] = {.lex_state = 77, .external_lex_state = 7}, - [138] = {.lex_state = 0, .external_lex_state = 9}, - [139] = {.lex_state = 77, .external_lex_state = 8}, - [140] = {.lex_state = 5, .external_lex_state = 6}, + [133] = {.lex_state = 77, .external_lex_state = 7}, + [134] = {.lex_state = 77, .external_lex_state = 8}, + [135] = {.lex_state = 77, .external_lex_state = 7}, + [136] = {.lex_state = 77, .external_lex_state = 9}, + [137] = {.lex_state = 77, .external_lex_state = 9}, + [138] = {.lex_state = 5, .external_lex_state = 6}, + [139] = {.lex_state = 5, .external_lex_state = 6}, + [140] = {.lex_state = 77, .external_lex_state = 7}, [141] = {.lex_state = 5, .external_lex_state = 6}, - [142] = {.lex_state = 5, .external_lex_state = 6}, - [143] = {.lex_state = 0, .external_lex_state = 9}, - [144] = {.lex_state = 0, .external_lex_state = 8}, - [145] = {.lex_state = 77, .external_lex_state = 9}, + [142] = {.lex_state = 0, .external_lex_state = 9}, + [143] = {.lex_state = 77, .external_lex_state = 9}, + [144] = {.lex_state = 5, .external_lex_state = 6}, + [145] = {.lex_state = 77, .external_lex_state = 8}, [146] = {.lex_state = 5, .external_lex_state = 6}, - [147] = {.lex_state = 5, .external_lex_state = 6}, - [148] = {.lex_state = 5, .external_lex_state = 6}, - [149] = {.lex_state = 0, .external_lex_state = 9}, + [147] = {.lex_state = 0, .external_lex_state = 9}, + [148] = {.lex_state = 0, .external_lex_state = 8}, + [149] = {.lex_state = 5, .external_lex_state = 6}, [150] = {.lex_state = 5, .external_lex_state = 6}, - [151] = {.lex_state = 77, .external_lex_state = 2}, + [151] = {.lex_state = 5, .external_lex_state = 6}, [152] = {.lex_state = 5, .external_lex_state = 6}, [153] = {.lex_state = 5, .external_lex_state = 6}, - [154] = {.lex_state = 77, .external_lex_state = 9}, + [154] = {.lex_state = 0, .external_lex_state = 9}, [155] = {.lex_state = 5, .external_lex_state = 6}, - [156] = {.lex_state = 0, .external_lex_state = 9}, - [157] = {.lex_state = 77, .external_lex_state = 8}, - [158] = {.lex_state = 0, .external_lex_state = 9}, - [159] = {.lex_state = 0, .external_lex_state = 7}, - [160] = {.lex_state = 0, .external_lex_state = 9}, - [161] = {.lex_state = 0, .external_lex_state = 8}, - [162] = {.lex_state = 0, .external_lex_state = 8}, - [163] = {.lex_state = 0, .external_lex_state = 7}, - [164] = {.lex_state = 0, .external_lex_state = 9}, + [156] = {.lex_state = 77, .external_lex_state = 2}, + [157] = {.lex_state = 77, .external_lex_state = 9}, + [158] = {.lex_state = 5, .external_lex_state = 6}, + [159] = {.lex_state = 5, .external_lex_state = 6}, + [160] = {.lex_state = 5, .external_lex_state = 6}, + [161] = {.lex_state = 0, .external_lex_state = 9}, + [162] = {.lex_state = 77, .external_lex_state = 8}, + [163] = {.lex_state = 0, .external_lex_state = 9}, + [164] = {.lex_state = 0, .external_lex_state = 7}, [165] = {.lex_state = 0, .external_lex_state = 9}, [166] = {.lex_state = 0, .external_lex_state = 9}, [167] = {.lex_state = 0, .external_lex_state = 9}, - [168] = {.lex_state = 0, .external_lex_state = 7}, + [168] = {.lex_state = 0, .external_lex_state = 9}, [169] = {.lex_state = 0, .external_lex_state = 9}, [170] = {.lex_state = 0, .external_lex_state = 9}, - [171] = {.lex_state = 0, .external_lex_state = 9}, - [172] = {.lex_state = 0, .external_lex_state = 9}, - [173] = {.lex_state = 0, .external_lex_state = 8}, - [174] = {.lex_state = 0, .external_lex_state = 8}, - [175] = {.lex_state = 0, .external_lex_state = 7}, - [176] = {.lex_state = 0, .external_lex_state = 9}, - [177] = {.lex_state = 0, .external_lex_state = 9}, - [178] = {.lex_state = 0, .external_lex_state = 7}, - [179] = {.lex_state = 0, .external_lex_state = 7}, + [171] = {.lex_state = 0, .external_lex_state = 8}, + [172] = {.lex_state = 0, .external_lex_state = 8}, + [173] = {.lex_state = 0, .external_lex_state = 9}, + [174] = {.lex_state = 0, .external_lex_state = 9}, + [175] = {.lex_state = 0, .external_lex_state = 8}, + [176] = {.lex_state = 0, .external_lex_state = 7}, + [177] = {.lex_state = 0, .external_lex_state = 8}, + [178] = {.lex_state = 0, .external_lex_state = 8}, + [179] = {.lex_state = 0, .external_lex_state = 8}, [180] = {.lex_state = 0, .external_lex_state = 9}, - [181] = {.lex_state = 0, .external_lex_state = 8}, - [182] = {.lex_state = 0, .external_lex_state = 7}, + [181] = {.lex_state = 0, .external_lex_state = 9}, + [182] = {.lex_state = 0, .external_lex_state = 9}, [183] = {.lex_state = 0, .external_lex_state = 8}, - [184] = {.lex_state = 0, .external_lex_state = 8}, - [185] = {.lex_state = 0, .external_lex_state = 8}, - [186] = {.lex_state = 0, .external_lex_state = 7}, - [187] = {.lex_state = 0, .external_lex_state = 7}, - [188] = {.lex_state = 0, .external_lex_state = 7}, - [189] = {.lex_state = 0, .external_lex_state = 7}, + [184] = {.lex_state = 0, .external_lex_state = 9}, + [185] = {.lex_state = 0, .external_lex_state = 7}, + [186] = {.lex_state = 0, .external_lex_state = 8}, + [187] = {.lex_state = 0, .external_lex_state = 9}, + [188] = {.lex_state = 0, .external_lex_state = 8}, + [189] = {.lex_state = 0, .external_lex_state = 8}, [190] = {.lex_state = 0, .external_lex_state = 7}, - [191] = {.lex_state = 0, .external_lex_state = 8}, + [191] = {.lex_state = 0, .external_lex_state = 7}, [192] = {.lex_state = 0, .external_lex_state = 8}, [193] = {.lex_state = 0, .external_lex_state = 8}, - [194] = {.lex_state = 0, .external_lex_state = 8}, + [194] = {.lex_state = 0, .external_lex_state = 7}, [195] = {.lex_state = 0, .external_lex_state = 8}, - [196] = {.lex_state = 0, .external_lex_state = 7}, + [196] = {.lex_state = 0, .external_lex_state = 8}, [197] = {.lex_state = 0, .external_lex_state = 7}, - [198] = {.lex_state = 0, .external_lex_state = 8}, - [199] = {.lex_state = 0, .external_lex_state = 9}, - [200] = {.lex_state = 0, .external_lex_state = 9}, - [201] = {.lex_state = 0, .external_lex_state = 9}, - [202] = {.lex_state = 0, .external_lex_state = 9}, - [203] = {.lex_state = 5, .external_lex_state = 7}, - [204] = {.lex_state = 5, .external_lex_state = 7}, - [205] = {.lex_state = 5, .external_lex_state = 7}, - [206] = {.lex_state = 5, .external_lex_state = 7}, - [207] = {.lex_state = 5, .external_lex_state = 7}, - [208] = {.lex_state = 5, .external_lex_state = 7}, - [209] = {.lex_state = 5, .external_lex_state = 7}, - [210] = {.lex_state = 5, .external_lex_state = 7}, + [198] = {.lex_state = 0, .external_lex_state = 7}, + [199] = {.lex_state = 0, .external_lex_state = 8}, + [200] = {.lex_state = 0, .external_lex_state = 7}, + [201] = {.lex_state = 0, .external_lex_state = 7}, + [202] = {.lex_state = 0, .external_lex_state = 7}, + [203] = {.lex_state = 0, .external_lex_state = 7}, + [204] = {.lex_state = 0, .external_lex_state = 7}, + [205] = {.lex_state = 0, .external_lex_state = 7}, + [206] = {.lex_state = 0, .external_lex_state = 7}, + [207] = {.lex_state = 0, .external_lex_state = 9}, + [208] = {.lex_state = 0, .external_lex_state = 9}, + [209] = {.lex_state = 0, .external_lex_state = 9}, + [210] = {.lex_state = 0, .external_lex_state = 9}, [211] = {.lex_state = 5, .external_lex_state = 7}, [212] = {.lex_state = 5, .external_lex_state = 7}, [213] = {.lex_state = 5, .external_lex_state = 7}, [214] = {.lex_state = 5, .external_lex_state = 7}, - [215] = {.lex_state = 5, .external_lex_state = 2}, - [216] = {.lex_state = 5, .external_lex_state = 6}, - [217] = {.lex_state = 5, .external_lex_state = 6}, - [218] = {.lex_state = 5, .external_lex_state = 6}, - [219] = {.lex_state = 5, .external_lex_state = 6}, - [220] = {.lex_state = 5, .external_lex_state = 6}, - [221] = {.lex_state = 5, .external_lex_state = 6}, - [222] = {.lex_state = 5, .external_lex_state = 2}, + [215] = {.lex_state = 5, .external_lex_state = 7}, + [216] = {.lex_state = 5, .external_lex_state = 7}, + [217] = {.lex_state = 5, .external_lex_state = 7}, + [218] = {.lex_state = 5, .external_lex_state = 7}, + [219] = {.lex_state = 5, .external_lex_state = 7}, + [220] = {.lex_state = 5, .external_lex_state = 7}, + [221] = {.lex_state = 5, .external_lex_state = 7}, + [222] = {.lex_state = 5, .external_lex_state = 7}, [223] = {.lex_state = 5, .external_lex_state = 2}, [224] = {.lex_state = 5, .external_lex_state = 6}, - [225] = {.lex_state = 5, .external_lex_state = 2}, + [225] = {.lex_state = 5, .external_lex_state = 6}, [226] = {.lex_state = 5, .external_lex_state = 6}, [227] = {.lex_state = 5, .external_lex_state = 6}, - [228] = {.lex_state = 5, .external_lex_state = 2}, + [228] = {.lex_state = 5, .external_lex_state = 6}, [229] = {.lex_state = 5, .external_lex_state = 6}, [230] = {.lex_state = 5, .external_lex_state = 6}, - [231] = {.lex_state = 5, .external_lex_state = 6}, - [232] = {.lex_state = 0, .external_lex_state = 8}, - [233] = {.lex_state = 0, .external_lex_state = 8}, - [234] = {.lex_state = 0, .external_lex_state = 9}, - [235] = {.lex_state = 0, .external_lex_state = 7}, - [236] = {.lex_state = 0, .external_lex_state = 9}, - [237] = {.lex_state = 0, .external_lex_state = 7}, - [238] = {.lex_state = 0, .external_lex_state = 7}, - [239] = {.lex_state = 0, .external_lex_state = 8}, + [231] = {.lex_state = 5, .external_lex_state = 2}, + [232] = {.lex_state = 5, .external_lex_state = 2}, + [233] = {.lex_state = 5, .external_lex_state = 2}, + [234] = {.lex_state = 5, .external_lex_state = 6}, + [235] = {.lex_state = 5, .external_lex_state = 2}, + [236] = {.lex_state = 5, .external_lex_state = 6}, + [237] = {.lex_state = 5, .external_lex_state = 6}, + [238] = {.lex_state = 5, .external_lex_state = 6}, + [239] = {.lex_state = 0, .external_lex_state = 9}, [240] = {.lex_state = 5, .external_lex_state = 6}, - [241] = {.lex_state = 0, .external_lex_state = 9}, + [241] = {.lex_state = 5, .external_lex_state = 6}, [242] = {.lex_state = 5, .external_lex_state = 6}, - [243] = {.lex_state = 0, .external_lex_state = 9}, - [244] = {.lex_state = 5, .external_lex_state = 6}, - [245] = {.lex_state = 0, .external_lex_state = 7}, - [246] = {.lex_state = 0, .external_lex_state = 8}, - [247] = {.lex_state = 0, .external_lex_state = 7}, - [248] = {.lex_state = 0, .external_lex_state = 8}, - [249] = {.lex_state = 0, .external_lex_state = 8}, + [243] = {.lex_state = 0, .external_lex_state = 8}, + [244] = {.lex_state = 0, .external_lex_state = 7}, + [245] = {.lex_state = 0, .external_lex_state = 9}, + [246] = {.lex_state = 5, .external_lex_state = 6}, + [247] = {.lex_state = 0, .external_lex_state = 9}, + [248] = {.lex_state = 0, .external_lex_state = 7}, + [249] = {.lex_state = 0, .external_lex_state = 7}, [250] = {.lex_state = 5, .external_lex_state = 6}, - [251] = {.lex_state = 5, .external_lex_state = 6}, - [252] = {.lex_state = 0, .external_lex_state = 6}, - [253] = {.lex_state = 0, .external_lex_state = 7}, - [254] = {.lex_state = 0, .external_lex_state = 7}, + [251] = {.lex_state = 0, .external_lex_state = 7}, + [252] = {.lex_state = 0, .external_lex_state = 7}, + [253] = {.lex_state = 0, .external_lex_state = 8}, + [254] = {.lex_state = 0, .external_lex_state = 9}, [255] = {.lex_state = 0, .external_lex_state = 7}, - [256] = {.lex_state = 0, .external_lex_state = 9}, - [257] = {.lex_state = 0, .external_lex_state = 6}, - [258] = {.lex_state = 5, .external_lex_state = 6}, - [259] = {.lex_state = 0, .external_lex_state = 7}, - [260] = {.lex_state = 0, .external_lex_state = 8}, - [261] = {.lex_state = 0, .external_lex_state = 8}, + [256] = {.lex_state = 5, .external_lex_state = 6}, + [257] = {.lex_state = 0, .external_lex_state = 8}, + [258] = {.lex_state = 0, .external_lex_state = 8}, + [259] = {.lex_state = 5, .external_lex_state = 6}, + [260] = {.lex_state = 0, .external_lex_state = 6}, + [261] = {.lex_state = 0, .external_lex_state = 7}, [262] = {.lex_state = 0, .external_lex_state = 7}, [263] = {.lex_state = 0, .external_lex_state = 8}, - [264] = {.lex_state = 6, .external_lex_state = 2}, - [265] = {.lex_state = 0, .external_lex_state = 7}, + [264] = {.lex_state = 0, .external_lex_state = 9}, + [265] = {.lex_state = 0, .external_lex_state = 6}, [266] = {.lex_state = 0, .external_lex_state = 8}, - [267] = {.lex_state = 0, .external_lex_state = 8}, - [268] = {.lex_state = 0, .external_lex_state = 2}, + [267] = {.lex_state = 0, .external_lex_state = 7}, + [268] = {.lex_state = 0, .external_lex_state = 8}, [269] = {.lex_state = 0, .external_lex_state = 7}, - [270] = {.lex_state = 6, .external_lex_state = 2}, + [270] = {.lex_state = 0, .external_lex_state = 8}, [271] = {.lex_state = 0, .external_lex_state = 7}, - [272] = {.lex_state = 0, .external_lex_state = 7}, - [273] = {.lex_state = 0, .external_lex_state = 8}, + [272] = {.lex_state = 6, .external_lex_state = 2}, + [273] = {.lex_state = 6, .external_lex_state = 2}, [274] = {.lex_state = 0, .external_lex_state = 7}, [275] = {.lex_state = 0, .external_lex_state = 7}, [276] = {.lex_state = 0, .external_lex_state = 8}, - [277] = {.lex_state = 0, .external_lex_state = 7}, - [278] = {.lex_state = 6, .external_lex_state = 8}, - [279] = {.lex_state = 0, .external_lex_state = 2}, - [280] = {.lex_state = 0, .external_lex_state = 8}, + [277] = {.lex_state = 0, .external_lex_state = 2}, + [278] = {.lex_state = 0, .external_lex_state = 7}, + [279] = {.lex_state = 0, .external_lex_state = 8}, + [280] = {.lex_state = 0, .external_lex_state = 7}, [281] = {.lex_state = 0, .external_lex_state = 7}, - [282] = {.lex_state = 0, .external_lex_state = 8}, + [282] = {.lex_state = 0, .external_lex_state = 2}, [283] = {.lex_state = 0, .external_lex_state = 7}, [284] = {.lex_state = 0, .external_lex_state = 8}, - [285] = {.lex_state = 0, .external_lex_state = 7}, - [286] = {.lex_state = 0, .external_lex_state = 7}, + [285] = {.lex_state = 0, .external_lex_state = 8}, + [286] = {.lex_state = 6, .external_lex_state = 8}, [287] = {.lex_state = 0, .external_lex_state = 7}, - [288] = {.lex_state = 0, .external_lex_state = 7}, - [289] = {.lex_state = 0, .external_lex_state = 8}, + [288] = {.lex_state = 0, .external_lex_state = 8}, + [289] = {.lex_state = 0, .external_lex_state = 7}, [290] = {.lex_state = 0, .external_lex_state = 7}, - [291] = {.lex_state = 0, .external_lex_state = 2}, - [292] = {.lex_state = 0, .external_lex_state = 2}, - [293] = {.lex_state = 0, .external_lex_state = 2}, - [294] = {.lex_state = 0, .external_lex_state = 2}, - [295] = {.lex_state = 0, .external_lex_state = 2}, - [296] = {.lex_state = 0, .external_lex_state = 8}, - [297] = {.lex_state = 130, .external_lex_state = 2}, - [298] = {.lex_state = 135, .external_lex_state = 2}, - [299] = {.lex_state = 130, .external_lex_state = 2}, - [300] = {.lex_state = 135, .external_lex_state = 2}, - [301] = {.lex_state = 0, .external_lex_state = 8}, + [291] = {.lex_state = 0, .external_lex_state = 8}, + [292] = {.lex_state = 0, .external_lex_state = 8}, + [293] = {.lex_state = 0, .external_lex_state = 8}, + [294] = {.lex_state = 0, .external_lex_state = 7}, + [295] = {.lex_state = 0, .external_lex_state = 7}, + [296] = {.lex_state = 0, .external_lex_state = 7}, + [297] = {.lex_state = 0, .external_lex_state = 8}, + [298] = {.lex_state = 0, .external_lex_state = 7}, + [299] = {.lex_state = 0, .external_lex_state = 2}, + [300] = {.lex_state = 0, .external_lex_state = 2}, + [301] = {.lex_state = 0, .external_lex_state = 2}, [302] = {.lex_state = 0, .external_lex_state = 2}, [303] = {.lex_state = 0, .external_lex_state = 2}, - [304] = {.lex_state = 135, .external_lex_state = 2}, + [304] = {.lex_state = 0, .external_lex_state = 8}, [305] = {.lex_state = 130, .external_lex_state = 2}, - [306] = {.lex_state = 0, .external_lex_state = 2}, - [307] = {.lex_state = 0, .external_lex_state = 2}, + [306] = {.lex_state = 135, .external_lex_state = 2}, + [307] = {.lex_state = 130, .external_lex_state = 2}, [308] = {.lex_state = 135, .external_lex_state = 2}, - [309] = {.lex_state = 130, .external_lex_state = 2}, + [309] = {.lex_state = 0, .external_lex_state = 2}, [310] = {.lex_state = 0, .external_lex_state = 2}, + [311] = {.lex_state = 0, .external_lex_state = 2}, + [312] = {.lex_state = 135, .external_lex_state = 2}, + [313] = {.lex_state = 130, .external_lex_state = 2}, + [314] = {.lex_state = 0, .external_lex_state = 8}, + [315] = {.lex_state = 0, .external_lex_state = 2}, + [316] = {.lex_state = 135, .external_lex_state = 2}, + [317] = {.lex_state = 130, .external_lex_state = 2}, + [318] = {.lex_state = 0, .external_lex_state = 2}, }; enum { @@ -9472,29 +9488,29 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__newline] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(295), + [sym_source_file] = STATE(303), [sym_blk] = STATE(10), - [sym__header] = STATE(229), - [sym_typed_feature] = STATE(229), - [sym_ref] = STATE(229), - [sym_namespace] = STATE(229), - [sym_incomplete_namespace] = STATE(229), - [sym_incomplete_ref] = STATE(229), - [sym_cardinality] = STATE(229), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(229), - [sym_group_mode] = STATE(229), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(234), + [sym_typed_feature] = STATE(234), + [sym_ref] = STATE(234), + [sym_namespace] = STATE(234), + [sym_incomplete_namespace] = STATE(234), + [sym_incomplete_ref] = STATE(234), + [sym_cardinality] = STATE(234), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(234), + [sym_group_mode] = STATE(234), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(229), + [sym_constraints] = STATE(234), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(10), [ts_builtin_sym_end] = ACTIONS(5), @@ -9527,136 +9543,136 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_include] = ACTIONS(33), }, [2] = { - [sym_blk] = STATE(16), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(2), + [sym__header] = STATE(234), + [sym_typed_feature] = STATE(234), + [sym_ref] = STATE(234), + [sym_namespace] = STATE(234), + [sym_incomplete_namespace] = STATE(234), + [sym_incomplete_ref] = STATE(234), + [sym_cardinality] = STATE(234), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(234), + [sym_group_mode] = STATE(234), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(234), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(16), - [sym_name] = ACTIONS(7), - [anon_sym_namespace] = ACTIONS(9), - [anon_sym_LBRACK] = ACTIONS(11), - [anon_sym_STAR] = ACTIONS(13), - [anon_sym_constraints] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_true] = ACTIONS(21), - [anon_sym_false] = ACTIONS(21), - [sym_number] = ACTIONS(23), + [aux_sym_source_file_repeat1] = STATE(2), + [ts_builtin_sym_end] = ACTIONS(35), + [sym_name] = ACTIONS(37), + [anon_sym_namespace] = ACTIONS(40), + [anon_sym_LBRACK] = ACTIONS(43), + [anon_sym_STAR] = ACTIONS(46), + [anon_sym_constraints] = ACTIONS(49), + [anon_sym_BANG] = ACTIONS(52), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_true] = ACTIONS(58), + [anon_sym_false] = ACTIONS(58), + [sym_number] = ACTIONS(61), [sym_comment] = ACTIONS(3), - [anon_sym_or] = ACTIONS(25), - [anon_sym_alternative] = ACTIONS(25), - [anon_sym_mandatory] = ACTIONS(25), - [anon_sym_optional] = ACTIONS(25), - [anon_sym_SMT_DASHlevel] = ACTIONS(27), - [anon_sym_SAT_DASHlevel] = ACTIONS(27), - [anon_sym_TYPE_DASHlevel] = ACTIONS(27), - [anon_sym_group_DASHcardinality] = ACTIONS(13), - [anon_sym_feature_DASHcardinality] = ACTIONS(13), - [anon_sym_aggregate_DASHfunction] = ACTIONS(13), - [anon_sym_type_DASHconstraints] = ACTIONS(13), - [anon_sym_SQUOTE] = ACTIONS(29), - [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), - [sym__dedent] = ACTIONS(37), + [anon_sym_or] = ACTIONS(64), + [anon_sym_alternative] = ACTIONS(64), + [anon_sym_mandatory] = ACTIONS(64), + [anon_sym_optional] = ACTIONS(64), + [anon_sym_SMT_DASHlevel] = ACTIONS(67), + [anon_sym_SAT_DASHlevel] = ACTIONS(67), + [anon_sym_TYPE_DASHlevel] = ACTIONS(67), + [anon_sym_group_DASHcardinality] = ACTIONS(46), + [anon_sym_feature_DASHcardinality] = ACTIONS(46), + [anon_sym_aggregate_DASHfunction] = ACTIONS(46), + [anon_sym_type_DASHconstraints] = ACTIONS(46), + [anon_sym_SQUOTE] = ACTIONS(70), + [anon_sym_DQUOTE] = ACTIONS(73), + [sym_imports] = ACTIONS(76), + [sym_features] = ACTIONS(76), + [sym_include] = ACTIONS(76), }, [3] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), - [sym_name] = ACTIONS(39), - [anon_sym_namespace] = ACTIONS(42), - [anon_sym_LBRACK] = ACTIONS(45), - [anon_sym_STAR] = ACTIONS(48), - [anon_sym_constraints] = ACTIONS(51), - [anon_sym_BANG] = ACTIONS(54), - [anon_sym_LPAREN] = ACTIONS(57), - [anon_sym_true] = ACTIONS(60), - [anon_sym_false] = ACTIONS(60), - [sym_number] = ACTIONS(63), + [sym_name] = ACTIONS(37), + [anon_sym_namespace] = ACTIONS(40), + [anon_sym_LBRACK] = ACTIONS(43), + [anon_sym_STAR] = ACTIONS(46), + [anon_sym_constraints] = ACTIONS(49), + [anon_sym_BANG] = ACTIONS(52), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_true] = ACTIONS(58), + [anon_sym_false] = ACTIONS(58), + [sym_number] = ACTIONS(61), [sym_comment] = ACTIONS(3), - [anon_sym_or] = ACTIONS(66), - [anon_sym_alternative] = ACTIONS(66), - [anon_sym_mandatory] = ACTIONS(66), - [anon_sym_optional] = ACTIONS(66), - [anon_sym_SMT_DASHlevel] = ACTIONS(69), - [anon_sym_SAT_DASHlevel] = ACTIONS(69), - [anon_sym_TYPE_DASHlevel] = ACTIONS(69), - [anon_sym_group_DASHcardinality] = ACTIONS(48), - [anon_sym_feature_DASHcardinality] = ACTIONS(48), - [anon_sym_aggregate_DASHfunction] = ACTIONS(48), - [anon_sym_type_DASHconstraints] = ACTIONS(48), - [anon_sym_SQUOTE] = ACTIONS(72), - [anon_sym_DQUOTE] = ACTIONS(75), - [sym_imports] = ACTIONS(78), - [sym_features] = ACTIONS(78), - [sym_include] = ACTIONS(78), - [sym__dedent] = ACTIONS(81), + [anon_sym_or] = ACTIONS(64), + [anon_sym_alternative] = ACTIONS(64), + [anon_sym_mandatory] = ACTIONS(64), + [anon_sym_optional] = ACTIONS(64), + [anon_sym_SMT_DASHlevel] = ACTIONS(67), + [anon_sym_SAT_DASHlevel] = ACTIONS(67), + [anon_sym_TYPE_DASHlevel] = ACTIONS(67), + [anon_sym_group_DASHcardinality] = ACTIONS(46), + [anon_sym_feature_DASHcardinality] = ACTIONS(46), + [anon_sym_aggregate_DASHfunction] = ACTIONS(46), + [anon_sym_type_DASHconstraints] = ACTIONS(46), + [anon_sym_SQUOTE] = ACTIONS(70), + [anon_sym_DQUOTE] = ACTIONS(73), + [sym_imports] = ACTIONS(79), + [sym_features] = ACTIONS(79), + [sym_include] = ACTIONS(79), + [sym__dedent] = ACTIONS(35), }, [4] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), @@ -9683,34 +9699,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), - [sym__dedent] = ACTIONS(83), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), + [sym__dedent] = ACTIONS(84), }, [5] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), @@ -9737,34 +9753,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), - [sym__dedent] = ACTIONS(85), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), + [sym__dedent] = ACTIONS(86), }, [6] = { [sym_blk] = STATE(4), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(4), [sym_name] = ACTIONS(7), @@ -9791,34 +9807,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), - [sym__dedent] = ACTIONS(87), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), + [sym__dedent] = ACTIONS(88), }, [7] = { [sym_blk] = STATE(5), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(5), [sym_name] = ACTIONS(7), @@ -9845,34 +9861,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), - [sym__dedent] = ACTIONS(89), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), + [sym__dedent] = ACTIONS(90), }, [8] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), @@ -9899,13 +9915,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), - [sym__dedent] = ACTIONS(91), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), + [sym__dedent] = ACTIONS(92), }, [9] = { - [sym_blk] = STATE(9), + [sym_blk] = STATE(12), [sym__header] = STATE(229), [sym_typed_feature] = STATE(229), [sym_ref] = STATE(229), @@ -9913,76 +9929,76 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_incomplete_namespace] = STATE(229), [sym_incomplete_ref] = STATE(229), [sym_cardinality] = STATE(229), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), [sym_lang_lvl] = STATE(229), [sym_group_mode] = STATE(229), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(9), - [ts_builtin_sym_end] = ACTIONS(81), - [sym_name] = ACTIONS(39), - [anon_sym_namespace] = ACTIONS(42), - [anon_sym_LBRACK] = ACTIONS(45), - [anon_sym_STAR] = ACTIONS(48), - [anon_sym_constraints] = ACTIONS(51), - [anon_sym_BANG] = ACTIONS(54), - [anon_sym_LPAREN] = ACTIONS(57), - [anon_sym_true] = ACTIONS(60), - [anon_sym_false] = ACTIONS(60), - [sym_number] = ACTIONS(63), + [aux_sym_source_file_repeat1] = STATE(12), + [sym_name] = ACTIONS(7), + [anon_sym_namespace] = ACTIONS(9), + [anon_sym_LBRACK] = ACTIONS(11), + [anon_sym_STAR] = ACTIONS(13), + [anon_sym_constraints] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [sym_number] = ACTIONS(23), [sym_comment] = ACTIONS(3), - [anon_sym_or] = ACTIONS(66), - [anon_sym_alternative] = ACTIONS(66), - [anon_sym_mandatory] = ACTIONS(66), - [anon_sym_optional] = ACTIONS(66), - [anon_sym_SMT_DASHlevel] = ACTIONS(69), - [anon_sym_SAT_DASHlevel] = ACTIONS(69), - [anon_sym_TYPE_DASHlevel] = ACTIONS(69), - [anon_sym_group_DASHcardinality] = ACTIONS(48), - [anon_sym_feature_DASHcardinality] = ACTIONS(48), - [anon_sym_aggregate_DASHfunction] = ACTIONS(48), - [anon_sym_type_DASHconstraints] = ACTIONS(48), - [anon_sym_SQUOTE] = ACTIONS(72), - [anon_sym_DQUOTE] = ACTIONS(75), - [sym_imports] = ACTIONS(93), - [sym_features] = ACTIONS(93), - [sym_include] = ACTIONS(93), + [anon_sym_or] = ACTIONS(25), + [anon_sym_alternative] = ACTIONS(25), + [anon_sym_mandatory] = ACTIONS(25), + [anon_sym_optional] = ACTIONS(25), + [anon_sym_SMT_DASHlevel] = ACTIONS(27), + [anon_sym_SAT_DASHlevel] = ACTIONS(27), + [anon_sym_TYPE_DASHlevel] = ACTIONS(27), + [anon_sym_group_DASHcardinality] = ACTIONS(13), + [anon_sym_feature_DASHcardinality] = ACTIONS(13), + [anon_sym_aggregate_DASHfunction] = ACTIONS(13), + [anon_sym_type_DASHconstraints] = ACTIONS(13), + [anon_sym_SQUOTE] = ACTIONS(29), + [anon_sym_DQUOTE] = ACTIONS(31), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), + [sym__dedent] = ACTIONS(94), }, [10] = { - [sym_blk] = STATE(9), - [sym__header] = STATE(229), - [sym_typed_feature] = STATE(229), - [sym_ref] = STATE(229), - [sym_namespace] = STATE(229), - [sym_incomplete_namespace] = STATE(229), - [sym_incomplete_ref] = STATE(229), - [sym_cardinality] = STATE(229), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(229), - [sym_group_mode] = STATE(229), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(2), + [sym__header] = STATE(234), + [sym_typed_feature] = STATE(234), + [sym_ref] = STATE(234), + [sym_namespace] = STATE(234), + [sym_incomplete_namespace] = STATE(234), + [sym_incomplete_ref] = STATE(234), + [sym_cardinality] = STATE(234), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(234), + [sym_group_mode] = STATE(234), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(229), + [sym_constraints] = STATE(234), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(9), + [aux_sym_source_file_repeat1] = STATE(2), [ts_builtin_sym_end] = ACTIONS(96), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), @@ -10013,30 +10029,30 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_include] = ACTIONS(33), }, [11] = { - [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(17), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(3), + [aux_sym_source_file_repeat1] = STATE(17), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10061,34 +10077,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(98), }, [12] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), @@ -10115,36 +10131,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(100), }, [13] = { - [sym_blk] = STATE(19), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(3), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(19), + [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10169,36 +10185,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(102), }, [14] = { - [sym_blk] = STATE(12), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(19), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(12), + [aux_sym_source_file_repeat1] = STATE(19), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10223,36 +10239,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(104), }, [15] = { - [sym_blk] = STATE(20), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(13), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(20), + [aux_sym_source_file_repeat1] = STATE(13), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10277,36 +10293,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(106), }, [16] = { - [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(20), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(3), + [aux_sym_source_file_repeat1] = STATE(20), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10331,36 +10347,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(108), }, [17] = { - [sym_blk] = STATE(8), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(3), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(8), + [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10385,36 +10401,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(110), }, [18] = { - [sym_blk] = STATE(11), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym_blk] = STATE(8), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), - [aux_sym_source_file_repeat1] = STATE(11), + [aux_sym_source_file_repeat1] = STATE(8), [sym_name] = ACTIONS(7), [anon_sym_namespace] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -10439,34 +10455,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(112), }, [19] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), @@ -10493,34 +10509,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(114), }, [20] = { [sym_blk] = STATE(3), - [sym__header] = STATE(226), - [sym_typed_feature] = STATE(226), - [sym_ref] = STATE(226), - [sym_namespace] = STATE(226), - [sym_incomplete_namespace] = STATE(226), - [sym_incomplete_ref] = STATE(226), - [sym_cardinality] = STATE(226), - [sym__expr] = STATE(155), - [sym_unary_expr] = STATE(150), - [sym_binary_expr] = STATE(150), - [sym_nested_expr] = STATE(150), - [sym_function] = STATE(150), - [sym_bool] = STATE(150), - [sym_path] = STATE(124), - [sym_lang_lvl] = STATE(226), - [sym_group_mode] = STATE(226), - [sym_major_lvl] = STATE(219), - [sym_minor_lvl] = STATE(219), - [sym_string] = STATE(150), + [sym__header] = STATE(229), + [sym_typed_feature] = STATE(229), + [sym_ref] = STATE(229), + [sym_namespace] = STATE(229), + [sym_incomplete_namespace] = STATE(229), + [sym_incomplete_ref] = STATE(229), + [sym_cardinality] = STATE(229), + [sym__expr] = STATE(160), + [sym_unary_expr] = STATE(155), + [sym_binary_expr] = STATE(155), + [sym_nested_expr] = STATE(155), + [sym_function] = STATE(155), + [sym_bool] = STATE(155), + [sym_path] = STATE(129), + [sym_lang_lvl] = STATE(229), + [sym_group_mode] = STATE(229), + [sym_major_lvl] = STATE(227), + [sym_minor_lvl] = STATE(227), + [sym_string] = STATE(155), [sym_string_name] = STATE(65), - [sym_constraints] = STATE(226), + [sym_constraints] = STATE(229), [sym__any_name] = STATE(65), [aux_sym_source_file_repeat1] = STATE(3), [sym_name] = ACTIONS(7), @@ -10547,9 +10563,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_type_DASHconstraints] = ACTIONS(13), [anon_sym_SQUOTE] = ACTIONS(29), [anon_sym_DQUOTE] = ACTIONS(31), - [sym_imports] = ACTIONS(35), - [sym_features] = ACTIONS(35), - [sym_include] = ACTIONS(35), + [sym_imports] = ACTIONS(82), + [sym_features] = ACTIONS(82), + [sym_include] = ACTIONS(82), [sym__dedent] = ACTIONS(116), }, }; @@ -10589,11 +10605,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [38] = 4, + [38] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(128), 1, - sym__indent, ACTIONS(126), 12, anon_sym_namespace, anon_sym_constraints, @@ -10607,7 +10621,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(124), 15, + ACTIONS(124), 16, + sym__indent, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -10623,10 +10638,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [76] = 3, + [74] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(132), 12, + ACTIONS(130), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10639,7 +10654,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(130), 16, + ACTIONS(128), 16, sym__indent, ts_builtin_sym_end, anon_sym_LBRACK, @@ -10656,12 +10671,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [112] = 4, + [110] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(138), 1, + ACTIONS(136), 1, sym__indent, - ACTIONS(136), 12, + ACTIONS(134), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10674,7 +10689,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(134), 15, + ACTIONS(132), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -10690,10 +10705,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [150] = 3, + [148] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(140), 12, + ACTIONS(138), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10706,7 +10721,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(142), 16, + ACTIONS(140), 16, sym__indent, sym__dedent, anon_sym_LBRACK, @@ -10723,7 +10738,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [186] = 3, + [184] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(144), 12, @@ -10739,9 +10754,9 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(146), 16, + ACTIONS(142), 16, sym__indent, - sym__dedent, + ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -10756,10 +10771,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [222] = 3, + [220] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(150), 12, + ACTIONS(126), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10772,9 +10787,9 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(148), 16, + ACTIONS(124), 16, sym__indent, - ts_builtin_sym_end, + sym__dedent, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -10789,10 +10804,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [258] = 3, + [256] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(150), 12, + ACTIONS(144), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10805,7 +10820,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(148), 16, + ACTIONS(142), 16, sym__indent, sym__dedent, anon_sym_LBRACK, @@ -10822,10 +10837,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [294] = 3, + [292] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(132), 12, + ACTIONS(130), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10838,7 +10853,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(130), 16, + ACTIONS(128), 16, sym__indent, sym__dedent, anon_sym_LBRACK, @@ -10855,10 +10870,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [330] = 3, + [328] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(144), 12, + ACTIONS(148), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10888,12 +10903,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [366] = 4, + [364] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(152), 1, - sym__indent, - ACTIONS(126), 12, + ACTIONS(138), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10906,8 +10919,9 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(124), 15, - sym__dedent, + ACTIONS(140), 16, + sym__indent, + ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -10922,12 +10936,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [404] = 4, + [400] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(158), 1, - sym__indent, - ACTIONS(154), 12, + ACTIONS(148), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10940,7 +10952,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(156), 15, + ACTIONS(146), 16, + sym__indent, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -10956,10 +10969,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [442] = 3, + [436] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(31), 1, + anon_sym_DQUOTE, + ACTIONS(150), 1, + sym_name, + STATE(122), 2, + sym_string_name, + sym__any_name, + STATE(230), 2, + sym_major_lvl, + sym_minor_lvl, + ACTIONS(27), 3, + anon_sym_SMT_DASHlevel, + anon_sym_SAT_DASHlevel, + anon_sym_TYPE_DASHlevel, + ACTIONS(152), 4, + anon_sym_cardinality, + anon_sym_as, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(13), 5, + anon_sym_STAR, + anon_sym_group_DASHcardinality, + anon_sym_feature_DASHcardinality, + anon_sym_aggregate_DASHfunction, + anon_sym_type_DASHconstraints, + ACTIONS(154), 10, + sym__newline, + anon_sym_LBRACE, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [484] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(162), 12, + ACTIONS(160), 1, + sym__indent, + ACTIONS(158), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -10972,8 +11026,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(160), 16, - sym__indent, + ACTIONS(156), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -10989,10 +11042,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [478] = 3, + [522] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(162), 12, + ACTIONS(162), 1, + sym__indent, + ACTIONS(158), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11005,8 +11060,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(160), 16, - sym__indent, + ACTIONS(156), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11022,10 +11076,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [514] = 3, + [560] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(140), 12, + ACTIONS(168), 1, + sym__indent, + ACTIONS(166), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11038,8 +11094,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(142), 16, - sym__indent, + ACTIONS(164), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -11055,51 +11110,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_DASHconstraints, anon_sym_SQUOTE, anon_sym_DQUOTE, - [550] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(31), 1, - anon_sym_DQUOTE, - ACTIONS(164), 1, - sym_name, - STATE(120), 2, - sym_string_name, - sym__any_name, - STATE(224), 2, - sym_major_lvl, - sym_minor_lvl, - ACTIONS(27), 3, - anon_sym_SMT_DASHlevel, - anon_sym_SAT_DASHlevel, - anon_sym_TYPE_DASHlevel, - ACTIONS(166), 4, - anon_sym_cardinality, - anon_sym_as, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(13), 5, - anon_sym_STAR, - anon_sym_group_DASHcardinality, - anon_sym_feature_DASHcardinality, - anon_sym_aggregate_DASHfunction, - anon_sym_type_DASHconstraints, - ACTIONS(168), 10, - sym__newline, - anon_sym_LBRACE, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, [598] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(170), 1, sym__indent, - ACTIONS(136), 12, + ACTIONS(166), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11112,7 +11128,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(134), 15, + ACTIONS(164), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11133,7 +11149,7 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(172), 1, sym__indent, - ACTIONS(120), 12, + ACTIONS(134), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11146,7 +11162,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(118), 15, + ACTIONS(132), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11167,7 +11183,7 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(174), 1, sym__indent, - ACTIONS(154), 12, + ACTIONS(120), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11180,8 +11196,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(156), 15, - ts_builtin_sym_end, + ACTIONS(118), 15, + sym__dedent, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11199,7 +11215,7 @@ static const uint16_t ts_small_parse_table[] = { [712] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(176), 12, + ACTIONS(178), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11212,8 +11228,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(178), 15, - sym__dedent, + ACTIONS(176), 15, + ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11231,7 +11247,7 @@ static const uint16_t ts_small_parse_table[] = { [747] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(176), 12, + ACTIONS(180), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11244,8 +11260,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(178), 15, - ts_builtin_sym_end, + ACTIONS(182), 15, + sym__dedent, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11263,7 +11279,7 @@ static const uint16_t ts_small_parse_table[] = { [782] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(180), 12, + ACTIONS(186), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11276,8 +11292,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(182), 15, - sym__dedent, + ACTIONS(184), 15, + ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11295,7 +11311,7 @@ static const uint16_t ts_small_parse_table[] = { [817] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(184), 12, + ACTIONS(188), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11308,7 +11324,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(186), 15, + ACTIONS(190), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11327,7 +11343,7 @@ static const uint16_t ts_small_parse_table[] = { [852] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(188), 12, + ACTIONS(192), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11340,7 +11356,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(190), 15, + ACTIONS(194), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11359,7 +11375,7 @@ static const uint16_t ts_small_parse_table[] = { [887] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(192), 12, + ACTIONS(188), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11372,8 +11388,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(194), 15, - sym__dedent, + ACTIONS(190), 15, + ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11391,7 +11407,7 @@ static const uint16_t ts_small_parse_table[] = { [922] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(198), 12, + ACTIONS(186), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11404,8 +11420,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(196), 15, - ts_builtin_sym_end, + ACTIONS(184), 15, + sym__dedent, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11423,7 +11439,7 @@ static const uint16_t ts_small_parse_table[] = { [957] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(188), 12, + ACTIONS(192), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11436,7 +11452,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(190), 15, + ACTIONS(194), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -11455,7 +11471,7 @@ static const uint16_t ts_small_parse_table[] = { [992] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(202), 12, + ACTIONS(198), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11468,7 +11484,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(200), 15, + ACTIONS(196), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -11487,7 +11503,7 @@ static const uint16_t ts_small_parse_table[] = { [1027] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(206), 12, + ACTIONS(202), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11500,7 +11516,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(204), 15, + ACTIONS(200), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -11519,7 +11535,7 @@ static const uint16_t ts_small_parse_table[] = { [1062] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(192), 12, + ACTIONS(202), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11532,8 +11548,8 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(194), 15, - ts_builtin_sym_end, + ACTIONS(200), 15, + sym__dedent, anon_sym_LBRACK, anon_sym_STAR, anon_sym_BANG, @@ -11551,7 +11567,7 @@ static const uint16_t ts_small_parse_table[] = { [1097] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(184), 12, + ACTIONS(206), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11564,7 +11580,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(186), 15, + ACTIONS(204), 15, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_STAR, @@ -11583,7 +11599,7 @@ static const uint16_t ts_small_parse_table[] = { [1132] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(198), 12, + ACTIONS(206), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11596,7 +11612,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(196), 15, + ACTIONS(204), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11615,7 +11631,7 @@ static const uint16_t ts_small_parse_table[] = { [1167] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(202), 12, + ACTIONS(178), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11628,7 +11644,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(200), 15, + ACTIONS(176), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11679,7 +11695,7 @@ static const uint16_t ts_small_parse_table[] = { [1237] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(206), 12, + ACTIONS(198), 12, anon_sym_namespace, anon_sym_constraints, anon_sym_true, @@ -11692,7 +11708,7 @@ static const uint16_t ts_small_parse_table[] = { sym_features, sym_include, sym_name, - ACTIONS(204), 15, + ACTIONS(196), 15, sym__dedent, anon_sym_LBRACK, anon_sym_STAR, @@ -11727,7 +11743,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(226), 1, anon_sym_DQUOTE, - STATE(179), 1, + STATE(185), 1, sym__expr, ACTIONS(212), 2, anon_sym_COMMA, @@ -11735,14 +11751,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(220), 2, anon_sym_true, anon_sym_false, - STATE(129), 2, + STATE(133), 2, sym_string_name, sym__any_name, - STATE(271), 3, + STATE(290), 3, sym_attributes, sym__value, sym_vector, - STATE(159), 7, + STATE(191), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -11800,19 +11816,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(282), 3, + STATE(276), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -11841,19 +11857,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DQUOTE, ACTIONS(252), 1, anon_sym_RBRACK, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(282), 3, + STATE(276), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -11882,19 +11898,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DQUOTE, ACTIONS(254), 1, anon_sym_RBRACK, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(282), 3, + STATE(276), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -11923,19 +11939,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_RBRACK, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(282), 3, + STATE(276), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -11962,19 +11978,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(260), 3, + STATE(253), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12001,19 +12017,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(282), 3, + STATE(276), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12040,19 +12056,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(174), 1, + STATE(178), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(249), 3, + STATE(268), 3, sym_attributes, sym__value, sym_vector, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12071,14 +12087,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_cardinality, ACTIONS(268), 1, anon_sym_DOT, - STATE(109), 1, + STATE(121), 1, aux_sym_path_repeat1, - STATE(220), 1, + STATE(226), 1, aux_sym_lang_lvl_repeat1, ACTIONS(262), 2, sym__newline, anon_sym_LBRACE, - STATE(240), 2, + STATE(256), 2, sym_string_name, sym__any_name, ACTIONS(264), 3, @@ -12112,45 +12128,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(160), 1, - sym__expr, - ACTIONS(278), 2, - anon_sym_true, - anon_sym_false, - STATE(128), 2, - sym_string_name, - sym__any_name, - STATE(165), 7, - sym_unary_expr, - sym_binary_expr, - sym_nested_expr, - sym_function, - sym_bool, - sym_path, - sym_string, - [1835] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - sym_name, - ACTIONS(272), 1, - anon_sym_BANG, - ACTIONS(274), 1, - anon_sym_LPAREN, - ACTIONS(280), 1, - sym_number, - ACTIONS(282), 1, - anon_sym_SQUOTE, - ACTIONS(284), 1, - anon_sym_DQUOTE, - ACTIONS(286), 1, - anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12161,18 +12144,18 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [1880] = 4, + [1835] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(292), 1, + ACTIONS(290), 1, anon_sym_LPAREN, - ACTIONS(288), 5, + ACTIONS(286), 5, anon_sym_cardinality, anon_sym_as, anon_sym_LT, anon_sym_SLASH, sym_name, - ACTIONS(290), 13, + ACTIONS(288), 13, sym__newline, anon_sym_LBRACE, anon_sym_STAR, @@ -12186,7 +12169,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_DOT, anon_sym_DQUOTE, - [1909] = 12, + [1864] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12201,14 +12184,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(294), 1, + ACTIONS(292), 1, anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12219,34 +12202,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [1954] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(31), 1, - anon_sym_DQUOTE, - ACTIONS(296), 1, - sym_name, - STATE(119), 2, - sym_string_name, - sym__any_name, - ACTIONS(298), 4, - anon_sym_cardinality, - anon_sym_as, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(300), 11, - sym__newline, - anon_sym_LBRACE, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, - [1987] = 12, + [1909] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12261,14 +12217,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(302), 1, + ACTIONS(294), 1, anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12279,40 +12235,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2032] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(232), 1, - sym_name, - ACTIONS(240), 1, - anon_sym_BANG, - ACTIONS(242), 1, - anon_sym_LPAREN, - ACTIONS(246), 1, - sym_number, - ACTIONS(248), 1, - anon_sym_SQUOTE, - ACTIONS(250), 1, - anon_sym_DQUOTE, - ACTIONS(304), 1, - anon_sym_RBRACK, - STATE(193), 1, - sym__expr, - ACTIONS(244), 2, - anon_sym_true, - anon_sym_false, - STATE(125), 2, - sym_string_name, - sym__any_name, - STATE(161), 7, - sym_unary_expr, - sym_binary_expr, - sym_nested_expr, - sym_function, - sym_bool, - sym_path, - sym_string, - [2077] = 12, + [1954] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12327,14 +12250,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(306), 1, + ACTIONS(296), 1, anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12345,7 +12268,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2122] = 12, + [1999] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12360,14 +12283,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(308), 1, + ACTIONS(298), 1, anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12378,10 +12301,70 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2167] = 12, + [2044] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, + ACTIONS(31), 1, + anon_sym_DQUOTE, + ACTIONS(300), 1, + sym_name, + STATE(124), 2, + sym_string_name, + sym__any_name, + ACTIONS(302), 4, + anon_sym_cardinality, + anon_sym_as, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(304), 11, + sym__newline, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [2077] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(232), 1, + sym_name, + ACTIONS(240), 1, + anon_sym_BANG, + ACTIONS(242), 1, + anon_sym_LPAREN, + ACTIONS(246), 1, + sym_number, + ACTIONS(248), 1, + anon_sym_SQUOTE, + ACTIONS(250), 1, + anon_sym_DQUOTE, + ACTIONS(306), 1, + anon_sym_RBRACK, + STATE(199), 1, + sym__expr, + ACTIONS(244), 2, + anon_sym_true, + anon_sym_false, + STATE(130), 2, + sym_string_name, + sym__any_name, + STATE(189), 7, + sym_unary_expr, + sym_binary_expr, + sym_nested_expr, + sym_function, + sym_bool, + sym_path, + sym_string, + [2122] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(270), 1, sym_name, ACTIONS(272), 1, anon_sym_BANG, @@ -12393,14 +12376,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(310), 1, + ACTIONS(308), 1, anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12411,7 +12394,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2212] = 12, + [2167] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(232), 1, @@ -12426,17 +12409,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - ACTIONS(312), 1, + ACTIONS(310), 1, anon_sym_RBRACK, - STATE(193), 1, + STATE(199), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, + sym_string_name, + sym__any_name, + STATE(189), 7, + sym_unary_expr, + sym_binary_expr, + sym_nested_expr, + sym_function, + sym_bool, + sym_path, + sym_string, + [2212] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(270), 1, + sym_name, + ACTIONS(272), 1, + anon_sym_BANG, + ACTIONS(274), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + sym_number, + ACTIONS(282), 1, + anon_sym_SQUOTE, + ACTIONS(284), 1, + anon_sym_DQUOTE, + ACTIONS(312), 1, + anon_sym_RPAREN, + STATE(187), 1, + sym__expr, + ACTIONS(278), 2, + anon_sym_true, + anon_sym_false, + STATE(126), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(165), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12461,12 +12477,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DQUOTE, ACTIONS(314), 1, anon_sym_RPAREN, - STATE(160), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12477,30 +12493,38 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2302] = 3, + [2302] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(228), 5, - anon_sym_cardinality, - anon_sym_as, - anon_sym_LT, - anon_sym_SLASH, + ACTIONS(232), 1, sym_name, - ACTIONS(230), 13, - sym__newline, - anon_sym_LBRACE, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_DOT, + ACTIONS(240), 1, + anon_sym_BANG, + ACTIONS(242), 1, + anon_sym_LPAREN, + ACTIONS(246), 1, + sym_number, + ACTIONS(248), 1, + anon_sym_SQUOTE, + ACTIONS(250), 1, anon_sym_DQUOTE, - [2328] = 11, + STATE(175), 1, + sym__expr, + ACTIONS(244), 2, + anon_sym_true, + anon_sym_false, + STATE(130), 2, + sym_string_name, + sym__any_name, + STATE(189), 7, + sym_unary_expr, + sym_binary_expr, + sym_nested_expr, + sym_function, + sym_bool, + sym_path, + sym_string, + [2344] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12515,12 +12539,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(169), 1, + STATE(163), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12531,21 +12555,42 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2370] = 6, + [2386] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(31), 1, anon_sym_DQUOTE, - ACTIONS(296), 1, + ACTIONS(300), 1, sym_name, - STATE(119), 2, + STATE(124), 2, sym_string_name, sym__any_name, - ACTIONS(166), 3, + ACTIONS(152), 3, + anon_sym_cardinality, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(154), 11, + sym__newline, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [2418] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(228), 5, anon_sym_cardinality, + anon_sym_as, anon_sym_LT, anon_sym_SLASH, - ACTIONS(168), 11, + sym_name, + ACTIONS(230), 13, sym__newline, anon_sym_LBRACE, anon_sym_STAR, @@ -12557,7 +12602,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [2402] = 11, + anon_sym_DOT, + anon_sym_DQUOTE, + [2444] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12572,12 +12619,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(199), 1, + STATE(210), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12588,7 +12635,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2444] = 11, + [2486] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12603,12 +12650,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(202), 1, + STATE(208), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12619,7 +12666,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2486] = 11, + [2528] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(208), 1, @@ -12634,15 +12681,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(226), 1, anon_sym_DQUOTE, - STATE(187), 1, + STATE(204), 1, sym__expr, ACTIONS(220), 2, anon_sym_true, anon_sym_false, - STATE(129), 2, + STATE(133), 2, sym_string_name, sym__any_name, - STATE(159), 7, + STATE(191), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12650,7 +12697,38 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2528] = 11, + [2570] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(208), 1, + sym_name, + ACTIONS(216), 1, + anon_sym_BANG, + ACTIONS(218), 1, + anon_sym_LPAREN, + ACTIONS(222), 1, + sym_number, + ACTIONS(224), 1, + anon_sym_SQUOTE, + ACTIONS(226), 1, + anon_sym_DQUOTE, + STATE(176), 1, + sym__expr, + ACTIONS(220), 2, + anon_sym_true, + anon_sym_false, + STATE(133), 2, + sym_string_name, + sym__any_name, + STATE(191), 7, + sym_unary_expr, + sym_binary_expr, + sym_nested_expr, + sym_function, + sym_bool, + sym_path, + sym_string, + [2612] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(232), 1, @@ -12665,15 +12743,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(144), 1, + STATE(148), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12681,30 +12759,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2570] = 11, + [2654] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(208), 1, + ACTIONS(232), 1, sym_name, - ACTIONS(216), 1, + ACTIONS(240), 1, anon_sym_BANG, - ACTIONS(218), 1, + ACTIONS(242), 1, anon_sym_LPAREN, - ACTIONS(222), 1, + ACTIONS(246), 1, sym_number, - ACTIONS(224), 1, + ACTIONS(248), 1, anon_sym_SQUOTE, - ACTIONS(226), 1, + ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(188), 1, + STATE(186), 1, sym__expr, - ACTIONS(220), 2, + ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(129), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(159), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12712,7 +12790,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2612] = 11, + [2696] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(232), 1, @@ -12727,15 +12805,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(198), 1, + STATE(195), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12743,7 +12821,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2654] = 11, + [2738] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(232), 1, @@ -12758,15 +12836,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(185), 1, + STATE(171), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12774,7 +12852,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2696] = 11, + [2780] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(232), 1, @@ -12789,15 +12867,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(250), 1, anon_sym_DQUOTE, - STATE(184), 1, + STATE(172), 1, sym__expr, ACTIONS(244), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(189), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12805,7 +12883,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2738] = 11, + [2822] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12820,12 +12898,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(156), 1, + STATE(161), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12836,7 +12914,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2780] = 11, + [2864] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12851,12 +12929,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(143), 1, + STATE(207), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12867,30 +12945,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2822] = 11, + [2906] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, + ACTIONS(208), 1, sym_name, - ACTIONS(272), 1, + ACTIONS(216), 1, anon_sym_BANG, - ACTIONS(274), 1, + ACTIONS(218), 1, anon_sym_LPAREN, - ACTIONS(280), 1, + ACTIONS(222), 1, sym_number, - ACTIONS(282), 1, + ACTIONS(224), 1, anon_sym_SQUOTE, - ACTIONS(284), 1, + ACTIONS(226), 1, anon_sym_DQUOTE, - STATE(171), 1, + STATE(206), 1, sym__expr, - ACTIONS(278), 2, + ACTIONS(220), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(133), 2, sym_string_name, sym__any_name, - STATE(165), 7, + STATE(191), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -12898,7 +12976,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2864] = 11, + [2948] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12913,12 +12991,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(170), 1, + STATE(147), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12929,7 +13007,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2906] = 11, + [2990] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12944,12 +13022,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(160), 1, + STATE(173), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12960,7 +13038,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2948] = 11, + [3032] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -12975,12 +13053,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(138), 1, + STATE(170), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -12991,30 +13069,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [2990] = 11, + [3074] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(208), 1, + ACTIONS(270), 1, sym_name, - ACTIONS(216), 1, + ACTIONS(272), 1, anon_sym_BANG, - ACTIONS(218), 1, + ACTIONS(274), 1, anon_sym_LPAREN, - ACTIONS(222), 1, + ACTIONS(280), 1, sym_number, - ACTIONS(224), 1, + ACTIONS(282), 1, anon_sym_SQUOTE, - ACTIONS(226), 1, + ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(163), 1, + STATE(142), 1, sym__expr, - ACTIONS(220), 2, + ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(129), 2, + STATE(126), 2, sym_string_name, sym__any_name, - STATE(159), 7, + STATE(165), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13022,30 +13100,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3032] = 11, + [3116] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(232), 1, + ACTIONS(270), 1, sym_name, - ACTIONS(240), 1, + ACTIONS(272), 1, anon_sym_BANG, - ACTIONS(242), 1, + ACTIONS(274), 1, anon_sym_LPAREN, - ACTIONS(246), 1, + ACTIONS(280), 1, sym_number, - ACTIONS(248), 1, + ACTIONS(282), 1, anon_sym_SQUOTE, - ACTIONS(250), 1, + ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(183), 1, + STATE(169), 1, sym__expr, - ACTIONS(244), 2, + ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(126), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(165), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13053,30 +13131,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3074] = 11, + [3158] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, + ACTIONS(7), 1, sym_name, - ACTIONS(272), 1, + ACTIONS(17), 1, anon_sym_BANG, - ACTIONS(274), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(280), 1, + ACTIONS(23), 1, sym_number, - ACTIONS(282), 1, + ACTIONS(29), 1, anon_sym_SQUOTE, - ACTIONS(284), 1, + ACTIONS(31), 1, anon_sym_DQUOTE, - STATE(200), 1, + STATE(146), 1, sym__expr, - ACTIONS(278), 2, + ACTIONS(21), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(123), 2, sym_string_name, sym__any_name, - STATE(165), 7, + STATE(155), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13084,30 +13162,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3116] = 11, + [3200] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(208), 1, sym_name, - ACTIONS(17), 1, + ACTIONS(216), 1, anon_sym_BANG, - ACTIONS(19), 1, + ACTIONS(218), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(222), 1, sym_number, - ACTIONS(29), 1, + ACTIONS(224), 1, anon_sym_SQUOTE, - ACTIONS(31), 1, + ACTIONS(226), 1, anon_sym_DQUOTE, - STATE(140), 1, + STATE(205), 1, sym__expr, - ACTIONS(21), 2, + ACTIONS(220), 2, anon_sym_true, anon_sym_false, - STATE(118), 2, + STATE(133), 2, sym_string_name, sym__any_name, - STATE(150), 7, + STATE(191), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13115,7 +13193,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3158] = 11, + [3242] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(208), 1, @@ -13130,15 +13208,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(226), 1, anon_sym_DQUOTE, - STATE(189), 1, + STATE(203), 1, sym__expr, ACTIONS(220), 2, anon_sym_true, anon_sym_false, - STATE(129), 2, + STATE(133), 2, sym_string_name, sym__any_name, - STATE(159), 7, + STATE(191), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13146,7 +13224,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3200] = 11, + [3284] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -13161,12 +13239,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(201), 1, + STATE(209), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -13177,7 +13255,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3242] = 11, + [3326] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(208), 1, @@ -13192,15 +13270,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(226), 1, anon_sym_DQUOTE, - STATE(190), 1, + STATE(194), 1, sym__expr, ACTIONS(220), 2, anon_sym_true, anon_sym_false, - STATE(129), 2, + STATE(133), 2, sym_string_name, sym__any_name, - STATE(159), 7, + STATE(191), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13208,7 +13286,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3284] = 11, + [3368] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -13223,12 +13301,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(284), 1, anon_sym_DQUOTE, - STATE(149), 1, + STATE(187), 1, sym__expr, ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -13239,7 +13317,38 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3326] = 11, + [3410] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(270), 1, + sym_name, + ACTIONS(272), 1, + anon_sym_BANG, + ACTIONS(274), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + sym_number, + ACTIONS(282), 1, + anon_sym_SQUOTE, + ACTIONS(284), 1, + anon_sym_DQUOTE, + STATE(154), 1, + sym__expr, + ACTIONS(278), 2, + anon_sym_true, + anon_sym_false, + STATE(126), 2, + sym_string_name, + sym__any_name, + STATE(165), 7, + sym_unary_expr, + sym_binary_expr, + sym_nested_expr, + sym_function, + sym_bool, + sym_path, + sym_string, + [3452] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -13259,7 +13368,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(278), 2, anon_sym_true, anon_sym_false, - STATE(128), 2, + STATE(126), 2, sym_string_name, sym__any_name, STATE(165), 7, @@ -13270,7 +13379,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3368] = 11, + [3494] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -13285,15 +13394,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(31), 1, anon_sym_DQUOTE, - STATE(148), 1, + STATE(152), 1, sym__expr, ACTIONS(21), 2, anon_sym_true, anon_sym_false, - STATE(118), 2, + STATE(123), 2, sym_string_name, sym__any_name, - STATE(150), 7, + STATE(155), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13301,30 +13410,30 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3410] = 11, + [3536] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(232), 1, + ACTIONS(7), 1, sym_name, - ACTIONS(240), 1, + ACTIONS(17), 1, anon_sym_BANG, - ACTIONS(242), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(246), 1, + ACTIONS(23), 1, sym_number, - ACTIONS(248), 1, + ACTIONS(29), 1, anon_sym_SQUOTE, - ACTIONS(250), 1, + ACTIONS(31), 1, anon_sym_DQUOTE, - STATE(193), 1, + STATE(151), 1, sym__expr, - ACTIONS(244), 2, + ACTIONS(21), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(123), 2, sym_string_name, sym__any_name, - STATE(161), 7, + STATE(155), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13332,7 +13441,7 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3452] = 11, + [3578] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -13347,15 +13456,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(31), 1, anon_sym_DQUOTE, - STATE(134), 1, + STATE(139), 1, sym__expr, ACTIONS(21), 2, anon_sym_true, anon_sym_false, - STATE(118), 2, + STATE(123), 2, sym_string_name, sym__any_name, - STATE(150), 7, + STATE(155), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13363,7 +13472,38 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3494] = 11, + [3620] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(232), 1, + sym_name, + ACTIONS(240), 1, + anon_sym_BANG, + ACTIONS(242), 1, + anon_sym_LPAREN, + ACTIONS(246), 1, + sym_number, + ACTIONS(248), 1, + anon_sym_SQUOTE, + ACTIONS(250), 1, + anon_sym_DQUOTE, + STATE(199), 1, + sym__expr, + ACTIONS(244), 2, + anon_sym_true, + anon_sym_false, + STATE(130), 2, + sym_string_name, + sym__any_name, + STATE(189), 7, + sym_unary_expr, + sym_binary_expr, + sym_nested_expr, + sym_function, + sym_bool, + sym_path, + sym_string, + [3662] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -13378,15 +13518,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(31), 1, anon_sym_DQUOTE, - STATE(136), 1, + STATE(141), 1, sym__expr, ACTIONS(21), 2, anon_sym_true, anon_sym_false, - STATE(118), 2, + STATE(123), 2, sym_string_name, sym__any_name, - STATE(150), 7, + STATE(155), 7, sym_unary_expr, sym_binary_expr, sym_nested_expr, @@ -13394,71 +13534,22 @@ static const uint16_t ts_small_parse_table[] = { sym_bool, sym_path, sym_string, - [3536] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(284), 1, - anon_sym_DQUOTE, - ACTIONS(316), 1, - sym_name, - ACTIONS(298), 2, - anon_sym_LT, - anon_sym_SLASH, - STATE(145), 2, - sym_string_name, - sym__any_name, - ACTIONS(300), 11, - anon_sym_COMMA, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_RPAREN, - [3567] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(322), 1, - anon_sym_DOT, - STATE(114), 1, - aux_sym_path_repeat1, - ACTIONS(320), 2, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(318), 13, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - anon_sym_as, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, - [3596] = 9, + [3704] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(31), 1, anon_sym_DQUOTE, - ACTIONS(324), 1, + ACTIONS(316), 1, sym_name, - ACTIONS(326), 1, + ACTIONS(318), 1, anon_sym_cardinality, - ACTIONS(328), 2, + ACTIONS(320), 2, sym__newline, anon_sym_LBRACE, - STATE(224), 2, + STATE(230), 2, sym_major_lvl, sym_minor_lvl, - STATE(227), 2, + STATE(236), 2, sym_string_name, sym__any_name, ACTIONS(27), 3, @@ -13471,23 +13562,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_feature_DASHcardinality, anon_sym_aggregate_DASHfunction, anon_sym_type_DASHconstraints, - [3633] = 6, + [3741] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(250), 1, - anon_sym_DQUOTE, - ACTIONS(330), 1, - sym_name, - ACTIONS(298), 2, + ACTIONS(326), 1, + anon_sym_DOT, + STATE(113), 1, + aux_sym_path_repeat1, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - STATE(139), 2, - sym_string_name, - sym__any_name, - ACTIONS(300), 11, - anon_sym_COMMA, + ACTIONS(322), 13, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + anon_sym_as, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -13496,50 +13586,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3664] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(31), 1, - anon_sym_DQUOTE, - ACTIONS(324), 1, - sym_name, - ACTIONS(332), 1, - anon_sym_cardinality, - ACTIONS(334), 2, - sym__newline, - anon_sym_LBRACE, - STATE(224), 2, - sym_major_lvl, - sym_minor_lvl, - STATE(227), 2, - sym_string_name, - sym__any_name, - ACTIONS(27), 3, - anon_sym_SMT_DASHlevel, - anon_sym_SAT_DASHlevel, - anon_sym_TYPE_DASHlevel, - ACTIONS(13), 5, - anon_sym_STAR, - anon_sym_group_DASHcardinality, - anon_sym_feature_DASHcardinality, - anon_sym_aggregate_DASHfunction, - anon_sym_type_DASHconstraints, - [3701] = 6, + [3770] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(226), 1, + ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(336), 1, + ACTIONS(329), 1, sym_name, - ACTIONS(298), 2, + ACTIONS(152), 2, anon_sym_LT, anon_sym_SLASH, - STATE(137), 2, + STATE(143), 2, sym_string_name, sym__any_name, - ACTIONS(300), 11, + ACTIONS(154), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13549,22 +13610,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3732] = 5, + anon_sym_RPAREN, + [3801] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(342), 1, - anon_sym_DOT, - STATE(114), 1, - aux_sym_path_repeat1, - ACTIONS(340), 2, + ACTIONS(250), 1, + anon_sym_DQUOTE, + ACTIONS(331), 1, + sym_name, + ACTIONS(152), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 13, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - anon_sym_as, + STATE(145), 2, + sym_string_name, + sym__any_name, + ACTIONS(154), 11, + anon_sym_COMMA, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -13573,20 +13636,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3761] = 6, + [3832] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(316), 1, + ACTIONS(329), 1, sym_name, - ACTIONS(166), 2, + ACTIONS(302), 2, anon_sym_LT, anon_sym_SLASH, - STATE(145), 2, + STATE(143), 2, sym_string_name, sym__any_name, - ACTIONS(168), 11, + ACTIONS(304), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -13598,20 +13661,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_RPAREN, - [3792] = 6, + [3863] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(336), 1, + ACTIONS(333), 1, sym_name, - ACTIONS(166), 2, + ACTIONS(302), 2, anon_sym_LT, anon_sym_SLASH, - STATE(137), 2, + STATE(140), 2, sym_string_name, sym__any_name, - ACTIONS(168), 11, + ACTIONS(304), 11, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_STAR, @@ -13623,20 +13686,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3823] = 6, + [3894] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(250), 1, + ACTIONS(31), 1, + anon_sym_DQUOTE, + ACTIONS(316), 1, + sym_name, + ACTIONS(335), 1, + anon_sym_cardinality, + ACTIONS(337), 2, + sym__newline, + anon_sym_LBRACE, + STATE(230), 2, + sym_major_lvl, + sym_minor_lvl, + STATE(236), 2, + sym_string_name, + sym__any_name, + ACTIONS(27), 3, + anon_sym_SMT_DASHlevel, + anon_sym_SAT_DASHlevel, + anon_sym_TYPE_DASHlevel, + ACTIONS(13), 5, + anon_sym_STAR, + anon_sym_group_DASHcardinality, + anon_sym_feature_DASHcardinality, + anon_sym_aggregate_DASHfunction, + anon_sym_type_DASHconstraints, + [3931] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(250), 1, anon_sym_DQUOTE, - ACTIONS(330), 1, + ACTIONS(331), 1, sym_name, - ACTIONS(166), 2, + ACTIONS(302), 2, anon_sym_LT, anon_sym_SLASH, - STATE(139), 2, + STATE(145), 2, sym_string_name, sym__any_name, - ACTIONS(168), 11, + ACTIONS(304), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -13648,20 +13739,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3854] = 5, + [3962] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(345), 1, + ACTIONS(226), 1, + anon_sym_DQUOTE, + ACTIONS(333), 1, + sym_name, + ACTIONS(152), 2, + anon_sym_LT, + anon_sym_SLASH, + STATE(140), 2, + sym_string_name, + sym__any_name, + ACTIONS(154), 11, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [3993] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(343), 1, anon_sym_DOT, - STATE(109), 1, + STATE(113), 1, aux_sym_path_repeat1, - ACTIONS(264), 2, + ACTIONS(341), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(266), 12, + ACTIONS(339), 13, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, + anon_sym_as, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13671,13 +13788,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3882] = 3, + [4022] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(340), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 14, + ACTIONS(322), 14, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -13692,13 +13809,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_DOT, - [3906] = 3, + [4046] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(345), 1, + anon_sym_DOT, + STATE(121), 1, + aux_sym_path_repeat1, + ACTIONS(264), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(266), 12, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [4074] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(340), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 14, + ACTIONS(322), 14, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -13713,17 +13853,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_DOT, - [3930] = 5, + [4098] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(347), 1, anon_sym_DOT, - STATE(121), 1, + STATE(125), 1, aux_sym_path_repeat1, - ACTIONS(340), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 11, + ACTIONS(322), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -13735,17 +13875,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3957] = 5, + [4125] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(350), 1, anon_sym_DOT, - STATE(122), 1, + STATE(132), 1, + aux_sym_path_repeat1, + ACTIONS(264), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(266), 11, + anon_sym_COMMA, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_RPAREN, + [4152] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(352), 1, + anon_sym_DOT, + STATE(131), 1, aux_sym_path_repeat1, - ACTIONS(340), 2, + ACTIONS(341), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 11, + ACTIONS(339), 11, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_STAR, @@ -13757,17 +13919,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [3984] = 5, + [4179] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(353), 1, + ACTIONS(354), 1, anon_sym_DOT, - STATE(121), 1, + STATE(125), 1, aux_sym_path_repeat1, - ACTIONS(320), 2, + ACTIONS(341), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(318), 11, + ACTIONS(339), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -13779,19 +13941,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4011] = 5, + [4206] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(357), 1, + ACTIONS(358), 1, anon_sym_as, - ACTIONS(361), 2, + ACTIONS(362), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(355), 3, + ACTIONS(356), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - ACTIONS(359), 9, + ACTIONS(360), 9, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13801,12 +13963,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4038] = 5, + [4233] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(363), 1, + ACTIONS(364), 1, anon_sym_DOT, - STATE(123), 1, + STATE(128), 1, aux_sym_path_repeat1, ACTIONS(264), 2, anon_sym_LT, @@ -13823,18 +13985,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4065] = 5, + [4260] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(365), 1, + ACTIONS(366), 1, anon_sym_DOT, - STATE(133), 1, + STATE(131), 1, aux_sym_path_repeat1, - ACTIONS(320), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(318), 11, + ACTIONS(322), 11, anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13844,19 +14007,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [4092] = 4, + [4287] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(367), 1, - anon_sym_LPAREN, - ACTIONS(288), 2, + ACTIONS(369), 1, + anon_sym_DOT, + STATE(136), 1, + aux_sym_path_repeat1, + ACTIONS(341), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(290), 12, + ACTIONS(339), 11, anon_sym_COMMA, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -13865,19 +14028,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_DOT, - [4117] = 5, + anon_sym_RPAREN, + [4314] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(369), 1, + ACTIONS(371), 1, anon_sym_DOT, - STATE(126), 1, + STATE(127), 1, aux_sym_path_repeat1, ACTIONS(264), 2, anon_sym_LT, anon_sym_SLASH, ACTIONS(266), 11, anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13887,21 +14051,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [4144] = 5, + [4341] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(371), 1, - anon_sym_DOT, - STATE(131), 1, - aux_sym_path_repeat1, - ACTIONS(264), 2, + ACTIONS(373), 1, + anon_sym_LPAREN, + ACTIONS(286), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(266), 11, + ACTIONS(288), 12, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -13910,15 +14071,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4171] = 4, + anon_sym_DOT, + [4366] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(373), 1, + ACTIONS(375), 1, anon_sym_LPAREN, - ACTIONS(288), 2, + ACTIONS(286), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(290), 12, + ACTIONS(288), 12, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_STAR, @@ -13931,19 +14093,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_DOT, - [4196] = 5, + [4391] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(375), 1, + ACTIONS(377), 1, anon_sym_DOT, - STATE(122), 1, + STATE(136), 1, aux_sym_path_repeat1, - ACTIONS(320), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(318), 11, + ACTIONS(322), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13953,15 +14114,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4223] = 4, + anon_sym_RPAREN, + [4418] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(377), 1, + ACTIONS(380), 1, anon_sym_LPAREN, - ACTIONS(288), 2, + ACTIONS(286), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(290), 12, + ACTIONS(288), 12, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -13974,18 +14136,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_RPAREN, anon_sym_DOT, - [4248] = 5, + [4443] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(379), 1, - anon_sym_DOT, - STATE(133), 1, - aux_sym_path_repeat1, - ACTIONS(340), 2, + ACTIONS(384), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 11, - anon_sym_COMMA, + ACTIONS(382), 12, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -13995,39 +14155,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [4275] = 6, + [4465] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(388), 1, + ACTIONS(394), 1, anon_sym_LT, - ACTIONS(390), 1, + ACTIONS(396), 1, anon_sym_SLASH, - ACTIONS(386), 2, + ACTIONS(390), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(392), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(384), 3, + ACTIONS(388), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(382), 7, + ACTIONS(386), 5, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [4303] = 3, + [4495] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(394), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(392), 12, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, + ACTIONS(322), 12, + anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -14037,18 +14196,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4325] = 5, + anon_sym_DOT, + [4517] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(390), 1, - anon_sym_SLASH, ACTIONS(396), 1, + anon_sym_SLASH, + ACTIONS(398), 1, anon_sym_LT, - ACTIONS(384), 3, + ACTIONS(388), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(382), 9, + ACTIONS(386), 9, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14058,60 +14218,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ_GT, anon_sym_GT, anon_sym_EQ_EQ, - [4351] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(340), 2, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(338), 12, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_DOT, - [4373] = 9, + [4543] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(398), 1, + ACTIONS(400), 1, anon_sym_COMMA, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(410), 1, + ACTIONS(414), 1, anon_sym_RPAREN, - STATE(256), 1, + STATE(264), 1, aux_sym_function_repeat1, ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4407] = 3, + [4579] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(340), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 12, + ACTIONS(322), 12, anon_sym_COMMA, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -14120,14 +14261,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, + anon_sym_RPAREN, anon_sym_DOT, - [4429] = 3, + [4601] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(414), 2, + ACTIONS(418), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(412), 12, + ACTIONS(416), 12, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14140,17 +14282,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4451] = 3, + [4623] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(418), 2, + ACTIONS(324), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(416), 12, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, + ACTIONS(322), 12, + anon_sym_COMMA, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -14159,7 +14300,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4473] = 3, + anon_sym_DOT, + [4645] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(422), 2, @@ -14178,64 +14320,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4495] = 9, + [4667] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, ACTIONS(424), 1, anon_sym_COMMA, ACTIONS(426), 1, anon_sym_RPAREN, - STATE(243), 1, + STATE(254), 1, aux_sym_function_repeat1, ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4529] = 9, + [4703] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(428), 1, anon_sym_COMMA, ACTIONS(432), 1, anon_sym_RBRACK, - ACTIONS(438), 1, - anon_sym_LT, ACTIONS(440), 1, + anon_sym_LT, + ACTIONS(442), 1, anon_sym_SLASH, - STATE(233), 1, + STATE(257), 1, aux_sym_attribute_constraints_repeat1, + ACTIONS(434), 2, + anon_sym_PIPE, + anon_sym_AMP, ACTIONS(436), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(438), 2, anon_sym_GT, anon_sym_EQ_EQ, ACTIONS(430), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(434), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4563] = 3, + [4739] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(340), 2, + ACTIONS(446), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(338), 12, - anon_sym_COMMA, + ACTIONS(444), 12, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -14245,15 +14391,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - anon_sym_DOT, - [4585] = 3, + [4761] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(444), 2, + ACTIONS(450), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(442), 12, + ACTIONS(448), 12, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14266,13 +14410,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4607] = 3, + [4783] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(394), 1, + anon_sym_LT, + ACTIONS(396), 1, + anon_sym_SLASH, + ACTIONS(392), 2, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(388), 3, + anon_sym_STAR, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(386), 7, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + [4811] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(448), 2, + ACTIONS(398), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(446), 12, + ACTIONS(386), 12, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14285,13 +14451,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4629] = 3, + [4833] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 2, + ACTIONS(454), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(382), 12, + ACTIONS(452), 12, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14304,38 +14470,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4651] = 9, + [4855] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(450), 1, + ACTIONS(456), 1, anon_sym_COMMA, - ACTIONS(452), 1, + ACTIONS(458), 1, anon_sym_RPAREN, - STATE(234), 1, + STATE(239), 1, aux_sym_function_repeat1, ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4685] = 3, + [4891] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(361), 2, + ACTIONS(362), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(359), 12, + ACTIONS(360), 12, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14348,17 +14515,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4707] = 7, + [4913] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(31), 1, anon_sym_DQUOTE, - ACTIONS(324), 1, + ACTIONS(316), 1, sym_name, - STATE(224), 2, + STATE(230), 2, sym_major_lvl, sym_minor_lvl, - STATE(227), 2, + STATE(236), 2, sym_string_name, sym__any_name, ACTIONS(27), 3, @@ -14371,16 +14538,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_feature_DASHcardinality, anon_sym_aggregate_DASHfunction, anon_sym_type_DASHconstraints, - [4737] = 3, + [4943] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(456), 2, + ACTIONS(228), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(454), 12, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, + ACTIONS(230), 12, + anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -14390,13 +14555,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4759] = 3, + anon_sym_RPAREN, + anon_sym_DOT, + [4965] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(460), 2, + ACTIONS(462), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(458), 12, + ACTIONS(460), 12, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, @@ -14409,14 +14576,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4781] = 3, + [4987] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(228), 2, + ACTIONS(466), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(230), 12, - anon_sym_COMMA, + ACTIONS(464), 12, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -14426,57 +14595,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - anon_sym_DOT, - [4803] = 7, + [5009] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(388), 1, + ACTIONS(394), 1, anon_sym_LT, - ACTIONS(390), 1, + ACTIONS(396), 1, anon_sym_SLASH, - ACTIONS(386), 2, + ACTIONS(390), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(392), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(384), 3, + ACTIONS(470), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(388), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(462), 3, + ACTIONS(468), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - ACTIONS(464), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4833] = 9, + [5041] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(466), 1, + ACTIONS(472), 1, anon_sym_COMMA, - ACTIONS(468), 1, + ACTIONS(474), 1, anon_sym_RPAREN, - STATE(236), 1, + STATE(245), 1, aux_sym_function_repeat1, ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4867] = 3, + [5077] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(228), 2, @@ -14495,13 +14664,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_DOT, - [4889] = 3, + [5099] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(460), 2, + ACTIONS(398), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(458), 11, + ACTIONS(386), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -14513,13 +14682,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_RPAREN, - [4910] = 3, + [5120] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(361), 2, + ACTIONS(384), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(359), 11, + ACTIONS(382), 11, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_STAR, @@ -14531,38 +14700,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4931] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(406), 1, - anon_sym_LT, - ACTIONS(408), 1, - anon_sym_SLASH, - ACTIONS(404), 2, - anon_sym_GT, - anon_sym_EQ_EQ, - ACTIONS(470), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(400), 3, - anon_sym_STAR, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(402), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [4960] = 3, + [5141] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(361), 2, + ACTIONS(362), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(359), 11, + ACTIONS(360), 11, anon_sym_COMMA, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -14571,16 +14717,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [4981] = 3, + anon_sym_RPAREN, + [5162] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(394), 2, + ACTIONS(422), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(392), 11, + ACTIONS(420), 11, anon_sym_COMMA, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -14589,35 +14735,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5002] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(480), 1, - anon_sym_LT, - ACTIONS(482), 1, - anon_sym_SLASH, - ACTIONS(472), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - ACTIONS(478), 2, - anon_sym_GT, - anon_sym_EQ_EQ, - ACTIONS(474), 3, - anon_sym_STAR, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(476), 4, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [5031] = 3, + anon_sym_RPAREN, + [5183] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(394), 2, + ACTIONS(466), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(392), 11, + ACTIONS(464), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -14629,13 +14754,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_RPAREN, - [5052] = 3, + [5204] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(361), 2, + ACTIONS(418), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(359), 11, + ACTIONS(416), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -14647,111 +14772,104 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_RPAREN, - [5073] = 3, + [5225] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(414), 2, + ACTIONS(410), 1, anon_sym_LT, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(412), 11, - anon_sym_COMMA, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, + ACTIONS(402), 3, + anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [5094] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(418), 2, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(416), 11, + ACTIONS(386), 6, anon_sym_COMMA, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - anon_sym_GT, - anon_sym_EQ_EQ, - anon_sym_PLUS, - anon_sym_DASH, anon_sym_RPAREN, - [5115] = 3, + [5252] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(422), 2, + ACTIONS(410), 1, anon_sym_LT, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(420), 11, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_STAR, + ACTIONS(404), 2, anon_sym_PIPE, anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, + ACTIONS(402), 3, + anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - [5136] = 3, + ACTIONS(386), 4, + anon_sym_COMMA, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_RPAREN, + [5281] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 2, + ACTIONS(440), 1, anon_sym_LT, + ACTIONS(442), 1, anon_sym_SLASH, - ACTIONS(382), 11, - anon_sym_COMMA, - anon_sym_STAR, + ACTIONS(434), 2, anon_sym_PIPE, anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, + ACTIONS(438), 2, anon_sym_GT, anon_sym_EQ_EQ, + ACTIONS(430), 3, + anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [5157] = 6, + ACTIONS(386), 4, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + [5310] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(440), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(442), 1, anon_sym_SLASH, - ACTIONS(404), 2, + ACTIONS(438), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(430), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(382), 6, + ACTIONS(386), 6, anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - anon_sym_RPAREN, - [5184] = 5, + [5337] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 1, + ACTIONS(398), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(382), 8, + ACTIONS(386), 8, anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, @@ -14760,13 +14878,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_EQ_EQ, anon_sym_RPAREN, - [5209] = 3, + [5362] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(456), 2, + ACTIONS(462), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(454), 11, + ACTIONS(460), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -14778,13 +14896,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_RPAREN, - [5230] = 3, + [5383] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(460), 2, + ACTIONS(398), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(458), 11, + ACTIONS(386), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -14796,38 +14914,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5251] = 7, + [5404] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(438), 1, + ACTIONS(486), 1, anon_sym_LT, - ACTIONS(440), 1, + ACTIONS(488), 1, anon_sym_SLASH, - ACTIONS(436), 2, - anon_sym_GT, - anon_sym_EQ_EQ, - ACTIONS(484), 2, + ACTIONS(476), 2, anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(430), 3, - anon_sym_STAR, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(434), 4, + anon_sym_RBRACE, + ACTIONS(480), 2, anon_sym_PIPE, anon_sym_AMP, + ACTIONS(482), 2, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5280] = 3, + ACTIONS(484), 2, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(478), 3, + anon_sym_STAR, + anon_sym_PLUS, + anon_sym_DASH, + [5435] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(444), 2, + ACTIONS(418), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(442), 11, + ACTIONS(416), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -14836,33 +14955,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5301] = 3, + [5456] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(448), 2, + ACTIONS(440), 1, anon_sym_LT, + ACTIONS(442), 1, anon_sym_SLASH, - ACTIONS(446), 11, - anon_sym_COMMA, - anon_sym_STAR, + ACTIONS(434), 2, anon_sym_PIPE, anon_sym_AMP, + ACTIONS(436), 2, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, + ACTIONS(438), 2, anon_sym_GT, anon_sym_EQ_EQ, + ACTIONS(490), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(430), 3, + anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [5322] = 3, + [5487] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(444), 2, + ACTIONS(466), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(442), 11, + ACTIONS(464), 11, anon_sym_COMMA, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -14871,16 +14996,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - anon_sym_RPAREN, - [5343] = 3, + [5508] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(448), 2, + ACTIONS(454), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(446), 11, + ACTIONS(452), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -14890,35 +15013,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5364] = 7, + anon_sym_RPAREN, + [5529] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(480), 1, + ACTIONS(450), 2, anon_sym_LT, - ACTIONS(482), 1, anon_sym_SLASH, - ACTIONS(478), 2, - anon_sym_GT, - anon_sym_EQ_EQ, - ACTIONS(484), 2, + ACTIONS(448), 11, anon_sym_COMMA, - anon_sym_RBRACE, - ACTIONS(474), 3, anon_sym_STAR, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(476), 4, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5393] = 3, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_RPAREN, + [5550] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(422), 2, + ACTIONS(446), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(420), 11, + ACTIONS(444), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_PIPE, @@ -14930,13 +15050,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_RPAREN, - [5414] = 3, + [5571] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(418), 2, + ACTIONS(462), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(416), 11, + ACTIONS(460), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -14948,15 +15068,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5435] = 3, + [5592] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(456), 2, + ACTIONS(384), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(454), 11, + ACTIONS(382), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -14966,31 +15085,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5456] = 3, + anon_sym_RPAREN, + [5613] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(414), 2, + ACTIONS(486), 1, anon_sym_LT, + ACTIONS(488), 1, anon_sym_SLASH, - ACTIONS(412), 11, - anon_sym_COMMA, - anon_sym_STAR, - anon_sym_RBRACK, + ACTIONS(480), 2, anon_sym_PIPE, anon_sym_AMP, + ACTIONS(482), 2, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, + ACTIONS(484), 2, anon_sym_GT, anon_sym_EQ_EQ, + ACTIONS(490), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + ACTIONS(478), 3, + anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - [5477] = 3, + [5644] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 2, + ACTIONS(422), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(382), 11, + ACTIONS(420), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -15002,37 +15127,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5498] = 6, + [5665] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(438), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(440), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(436), 2, + ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(430), 3, + ACTIONS(492), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(382), 6, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_GT, - anon_sym_LT_EQ_GT, - [5525] = 3, + [5696] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(394), 2, + ACTIONS(454), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(392), 11, + ACTIONS(452), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -15041,54 +15168,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5546] = 5, + [5717] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 1, + ACTIONS(362), 2, anon_sym_LT, - ACTIONS(482), 1, anon_sym_SLASH, - ACTIONS(474), 3, - anon_sym_STAR, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(382), 8, + ACTIONS(360), 11, anon_sym_COMMA, - anon_sym_RBRACE, + anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, anon_sym_GT, anon_sym_EQ_EQ, - [5571] = 6, + anon_sym_PLUS, + anon_sym_DASH, + [5738] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(480), 1, + ACTIONS(446), 2, anon_sym_LT, - ACTIONS(482), 1, anon_sym_SLASH, - ACTIONS(478), 2, - anon_sym_GT, - anon_sym_EQ_EQ, - ACTIONS(474), 3, - anon_sym_STAR, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(382), 6, + ACTIONS(444), 11, anon_sym_COMMA, anon_sym_RBRACE, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5598] = 3, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [5759] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 2, + ACTIONS(362), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(382), 11, + ACTIONS(360), 11, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_STAR, @@ -15100,16 +15222,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5619] = 3, + [5780] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(414), 2, + ACTIONS(446), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(412), 11, + ACTIONS(444), 11, anon_sym_COMMA, - anon_sym_RBRACE, anon_sym_STAR, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -15118,13 +15240,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5640] = 3, + [5801] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(422), 2, + ACTIONS(450), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(420), 11, + ACTIONS(448), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -15136,16 +15258,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5661] = 3, + [5822] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(444), 2, + ACTIONS(422), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(442), 11, + ACTIONS(420), 11, anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -15154,35 +15276,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5682] = 7, + [5843] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(438), 1, + ACTIONS(398), 1, anon_sym_LT, - ACTIONS(440), 1, + ACTIONS(442), 1, anon_sym_SLASH, - ACTIONS(436), 2, - anon_sym_GT, - anon_sym_EQ_EQ, - ACTIONS(486), 2, - anon_sym_COMMA, - anon_sym_RBRACK, ACTIONS(430), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(434), 4, + ACTIONS(386), 8, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5711] = 3, + anon_sym_GT, + anon_sym_EQ_EQ, + [5868] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(448), 2, + ACTIONS(384), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(446), 11, + ACTIONS(382), 11, anon_sym_COMMA, anon_sym_STAR, anon_sym_RBRACK, @@ -15194,16 +15314,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5732] = 3, + [5889] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(456), 2, + ACTIONS(450), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(454), 11, + ACTIONS(448), 11, anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_STAR, - anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, @@ -15212,13 +15332,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5753] = 3, + [5910] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(418), 2, + ACTIONS(454), 2, anon_sym_LT, anon_sym_SLASH, - ACTIONS(416), 11, + ACTIONS(452), 11, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_STAR, @@ -15230,1117 +15350,1241 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - [5774] = 3, + [5931] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(460), 2, + ACTIONS(440), 1, anon_sym_LT, + ACTIONS(442), 1, anon_sym_SLASH, - ACTIONS(458), 11, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_STAR, + ACTIONS(434), 2, anon_sym_PIPE, anon_sym_AMP, + ACTIONS(436), 2, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, + ACTIONS(438), 2, anon_sym_GT, anon_sym_EQ_EQ, + ACTIONS(494), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(430), 3, + anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - [5795] = 5, + [5962] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(396), 1, + ACTIONS(462), 2, anon_sym_LT, - ACTIONS(440), 1, anon_sym_SLASH, - ACTIONS(430), 3, + ACTIONS(460), 11, + anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(382), 8, + [5983] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(466), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(464), 11, anon_sym_COMMA, - anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [6004] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(418), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(416), 11, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, anon_sym_GT, anon_sym_EQ_EQ, - [5820] = 7, + anon_sym_PLUS, + anon_sym_DASH, + [6025] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(398), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(488), 1, anon_sym_SLASH, + ACTIONS(478), 3, + anon_sym_STAR, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(386), 8, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + anon_sym_GT, + anon_sym_EQ_EQ, + [6050] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(486), 1, + anon_sym_LT, ACTIONS(488), 1, - anon_sym_RPAREN, - ACTIONS(404), 2, + anon_sym_SLASH, + ACTIONS(480), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(484), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(478), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, + ACTIONS(386), 4, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + [6079] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(398), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(386), 11, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5848] = 7, + anon_sym_GT, + anon_sym_EQ_EQ, + anon_sym_PLUS, + anon_sym_DASH, + [6100] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(486), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(488), 1, anon_sym_SLASH, - ACTIONS(490), 1, - anon_sym_RPAREN, - ACTIONS(404), 2, + ACTIONS(484), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(478), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, + ACTIONS(386), 6, + anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5876] = 7, + [6127] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(492), 1, + ACTIONS(496), 1, anon_sym_RPAREN, ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, + [6157] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(410), 1, + anon_sym_LT, + ACTIONS(412), 1, + anon_sym_SLASH, + ACTIONS(498), 1, + anon_sym_RPAREN, + ACTIONS(404), 2, anon_sym_PIPE, anon_sym_AMP, + ACTIONS(406), 2, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5904] = 7, + ACTIONS(408), 2, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(402), 3, + anon_sym_STAR, + anon_sym_PLUS, + anon_sym_DASH, + [6187] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_LT, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_SLASH, - ACTIONS(494), 1, + ACTIONS(500), 1, anon_sym_RPAREN, ACTIONS(404), 2, + anon_sym_PIPE, + anon_sym_AMP, + ACTIONS(406), 2, + anon_sym_EQ_GT, + anon_sym_LT_EQ_GT, + ACTIONS(408), 2, anon_sym_GT, anon_sym_EQ_EQ, - ACTIONS(400), 3, + ACTIONS(402), 3, anon_sym_STAR, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(402), 4, + [6217] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(410), 1, + anon_sym_LT, + ACTIONS(412), 1, + anon_sym_SLASH, + ACTIONS(502), 1, + anon_sym_RPAREN, + ACTIONS(404), 2, anon_sym_PIPE, anon_sym_AMP, + ACTIONS(406), 2, anon_sym_EQ_GT, anon_sym_LT_EQ_GT, - [5932] = 8, + ACTIONS(408), 2, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(402), 3, + anon_sym_STAR, + anon_sym_PLUS, + anon_sym_DASH, + [6247] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(498), 1, + ACTIONS(506), 1, anon_sym_RBRACE, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [5961] = 8, + [6276] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(504), 1, + ACTIONS(512), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(253), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [5990] = 8, + [6305] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(506), 1, + ACTIONS(514), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6019] = 8, + [6334] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(508), 1, + ACTIONS(516), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6048] = 8, + [6363] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, - anon_sym_constraints, ACTIONS(510), 1, + anon_sym_constraints, + ACTIONS(518), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(254), 4, + STATE(261), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6077] = 8, + [6392] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(512), 1, + ACTIONS(520), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(247), 4, + STATE(248), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6106] = 8, + [6421] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(514), 1, + ACTIONS(522), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6135] = 8, + [6450] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(516), 1, + ACTIONS(524), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6164] = 8, + [6479] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(518), 1, + ACTIONS(526), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6193] = 8, + [6508] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(520), 1, + ACTIONS(528), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(238), 4, + STATE(262), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6222] = 8, + [6537] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(522), 1, + ACTIONS(530), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6251] = 8, + [6566] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, - ACTIONS(524), 1, + ACTIONS(532), 1, anon_sym_RBRACE, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(255), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6280] = 7, + [6595] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(496), 1, + ACTIONS(504), 1, sym_name, - ACTIONS(500), 1, + ACTIONS(508), 1, anon_sym_constraint, - ACTIONS(502), 1, + ACTIONS(510), 1, anon_sym_constraints, STATE(56), 2, sym_string_name, sym__any_name, - STATE(265), 4, + STATE(295), 4, sym_attribute_constraint, sym_attribute_constraints, sym_attribute_value, sym__attribute, - [6306] = 7, + [6621] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(31), 1, anon_sym_DQUOTE, - ACTIONS(526), 1, + ACTIONS(534), 1, sym_name, - ACTIONS(528), 1, + ACTIONS(536), 1, anon_sym_cardinality, - STATE(231), 1, + STATE(250), 1, sym_path, - ACTIONS(530), 2, + ACTIONS(538), 2, sym__newline, anon_sym_LBRACE, - STATE(118), 2, + STATE(123), 2, sym_string_name, sym__any_name, - [6330] = 6, + [6645] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(31), 1, anon_sym_DQUOTE, - ACTIONS(532), 1, + ACTIONS(540), 1, sym_name, - ACTIONS(534), 1, + ACTIONS(542), 1, anon_sym_cardinality, - ACTIONS(536), 2, + ACTIONS(544), 2, sym__newline, anon_sym_LBRACE, - STATE(251), 2, + STATE(259), 2, sym_string_name, sym__any_name, - [6351] = 4, + [6666] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(540), 1, + ACTIONS(548), 1, anon_sym_DOT, - STATE(218), 1, + STATE(228), 1, aux_sym_lang_lvl_repeat1, - ACTIONS(538), 3, + ACTIONS(546), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6366] = 4, + [6681] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(545), 1, + ACTIONS(552), 1, anon_sym_DOT, - STATE(220), 1, + STATE(226), 1, aux_sym_lang_lvl_repeat1, - ACTIONS(543), 3, + ACTIONS(550), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6381] = 4, + [6696] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(556), 1, anon_sym_DOT, - STATE(218), 1, + STATE(228), 1, aux_sym_lang_lvl_repeat1, - ACTIONS(547), 3, + ACTIONS(554), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6396] = 2, + [6711] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(559), 1, + anon_sym_cardinality, + ACTIONS(561), 1, + anon_sym_LBRACE, + ACTIONS(563), 1, + sym__newline, + STATE(35), 1, + sym_attributes, + [6727] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(551), 4, + ACTIONS(554), 4, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, anon_sym_DOT, - [6406] = 4, + [6737] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(250), 1, anon_sym_DQUOTE, - ACTIONS(330), 1, + ACTIONS(331), 1, sym_name, - STATE(139), 2, + STATE(145), 2, sym_string_name, sym__any_name, - [6420] = 4, + [6751] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(226), 1, + ACTIONS(31), 1, anon_sym_DQUOTE, - ACTIONS(336), 1, + ACTIONS(565), 1, sym_name, - STATE(137), 2, + STATE(124), 2, sym_string_name, sym__any_name, - [6434] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(538), 4, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - anon_sym_DOT, - [6444] = 4, + [6765] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(31), 1, + ACTIONS(284), 1, anon_sym_DQUOTE, - ACTIONS(553), 1, + ACTIONS(329), 1, sym_name, - STATE(119), 2, + STATE(143), 2, sym_string_name, sym__any_name, - [6458] = 5, + [6779] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(555), 1, + ACTIONS(567), 1, anon_sym_cardinality, - ACTIONS(557), 1, + ACTIONS(569), 1, anon_sym_LBRACE, - ACTIONS(559), 1, + ACTIONS(571), 1, sym__newline, - STATE(31), 1, + STATE(34), 1, sym_attributes, - [6474] = 2, + [6795] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(538), 4, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - anon_sym_DOT, - [6484] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(284), 1, + ACTIONS(226), 1, anon_sym_DQUOTE, - ACTIONS(316), 1, + ACTIONS(333), 1, sym_name, - STATE(145), 2, + STATE(140), 2, sym_string_name, sym__any_name, - [6498] = 5, + [6809] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(561), 1, + ACTIONS(554), 4, + sym__newline, anon_sym_cardinality, - ACTIONS(563), 1, anon_sym_LBRACE, - ACTIONS(565), 1, - sym__newline, - STATE(22), 1, - sym_attributes, - [6514] = 2, + anon_sym_DOT, + [6819] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(567), 4, + ACTIONS(573), 4, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, anon_sym_DOT, - [6524] = 2, + [6829] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(569), 3, + ACTIONS(575), 4, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6533] = 4, + anon_sym_DOT, + [6839] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(571), 1, + ACTIONS(577), 1, anon_sym_COMMA, - ACTIONS(574), 1, - anon_sym_RBRACK, - STATE(232), 1, - aux_sym_attribute_constraints_repeat1, - [6546] = 4, + ACTIONS(579), 1, + anon_sym_RPAREN, + STATE(247), 1, + aux_sym_function_repeat1, + [6852] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(576), 1, - anon_sym_COMMA, - ACTIONS(578), 1, - anon_sym_RBRACK, - STATE(232), 1, - aux_sym_attribute_constraints_repeat1, - [6559] = 4, + ACTIONS(581), 3, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + [6861] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(580), 1, - anon_sym_COMMA, - ACTIONS(582), 1, - anon_sym_RPAREN, - STATE(241), 1, - aux_sym_function_repeat1, - [6572] = 4, + ACTIONS(583), 3, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + [6870] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(584), 1, - anon_sym_COMMA, - ACTIONS(586), 1, - anon_sym_RBRACE, - STATE(255), 1, - aux_sym_attributes_repeat1, - [6585] = 4, + ACTIONS(585), 3, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + [6879] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(588), 1, + ACTIONS(587), 1, anon_sym_COMMA, ACTIONS(590), 1, - anon_sym_RPAREN, - STATE(241), 1, - aux_sym_function_repeat1, - [6598] = 4, + anon_sym_RBRACK, + STATE(243), 1, + aux_sym_vector_repeat1, + [6892] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(592), 1, anon_sym_COMMA, ACTIONS(594), 1, anon_sym_RBRACE, - STATE(255), 1, + STATE(252), 1, aux_sym_attributes_repeat1, - [6611] = 4, + [6905] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(596), 1, anon_sym_COMMA, ACTIONS(598), 1, - anon_sym_RBRACE, - STATE(235), 1, - aux_sym_attributes_repeat1, - [6624] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(600), 1, - anon_sym_COMMA, - ACTIONS(602), 1, - anon_sym_RBRACK, - STATE(246), 1, - aux_sym_vector_repeat1, - [6637] = 2, + anon_sym_RPAREN, + STATE(247), 1, + aux_sym_function_repeat1, + [6918] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(604), 3, + ACTIONS(600), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6646] = 4, + [6927] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(606), 1, + ACTIONS(602), 1, anon_sym_COMMA, - ACTIONS(609), 1, + ACTIONS(605), 1, anon_sym_RPAREN, - STATE(241), 1, + STATE(247), 1, aux_sym_function_repeat1, - [6659] = 2, + [6940] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 3, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - [6668] = 4, + ACTIONS(607), 1, + anon_sym_COMMA, + ACTIONS(609), 1, + anon_sym_RBRACE, + STATE(244), 1, + aux_sym_attributes_repeat1, + [6953] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(613), 1, + ACTIONS(611), 1, anon_sym_COMMA, - ACTIONS(615), 1, - anon_sym_RPAREN, - STATE(241), 1, - aux_sym_function_repeat1, - [6681] = 2, + ACTIONS(613), 1, + anon_sym_RBRACE, + STATE(252), 1, + aux_sym_attributes_repeat1, + [6966] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(617), 3, + ACTIONS(615), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6690] = 4, + [6975] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(619), 1, + ACTIONS(617), 1, anon_sym_COMMA, - ACTIONS(621), 1, + ACTIONS(619), 1, anon_sym_RBRACE, - STATE(255), 1, + STATE(252), 1, aux_sym_attributes_repeat1, - [6703] = 4, + [6988] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(623), 1, + ACTIONS(621), 1, anon_sym_COMMA, + ACTIONS(624), 1, + anon_sym_RBRACE, + STATE(252), 1, + aux_sym_attributes_repeat1, + [7001] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(626), 1, + anon_sym_COMMA, + ACTIONS(628), 1, anon_sym_RBRACK, - STATE(246), 1, + STATE(266), 1, aux_sym_vector_repeat1, - [6716] = 4, + [7014] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(628), 1, - anon_sym_COMMA, ACTIONS(630), 1, + anon_sym_COMMA, + ACTIONS(632), 1, + anon_sym_RPAREN, + STATE(247), 1, + aux_sym_function_repeat1, + [7027] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(634), 1, + anon_sym_COMMA, + ACTIONS(636), 1, anon_sym_RBRACE, - STATE(237), 1, + STATE(251), 1, aux_sym_attributes_repeat1, - [6729] = 4, + [7040] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(632), 1, + ACTIONS(638), 3, + sym__newline, + anon_sym_cardinality, + anon_sym_LBRACE, + [7049] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, anon_sym_COMMA, - ACTIONS(634), 1, + ACTIONS(642), 1, anon_sym_RBRACK, - STATE(246), 1, - aux_sym_vector_repeat1, - [6742] = 4, + STATE(263), 1, + aux_sym_attribute_constraints_repeat1, + [7062] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(636), 1, + ACTIONS(644), 1, anon_sym_COMMA, - ACTIONS(638), 1, + ACTIONS(646), 1, anon_sym_RBRACK, - STATE(248), 1, + STATE(243), 1, aux_sym_vector_repeat1, - [6755] = 2, + [7075] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 3, + ACTIONS(648), 3, sym__newline, anon_sym_cardinality, anon_sym_LBRACE, - [6764] = 2, + [7084] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(642), 3, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - [6773] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(557), 1, + ACTIONS(561), 1, anon_sym_LBRACE, - ACTIONS(644), 1, + ACTIONS(650), 1, sym__newline, - STATE(37), 1, + STATE(38), 1, sym_attributes, - [6786] = 4, + [7097] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(646), 1, + ACTIONS(652), 1, anon_sym_COMMA, - ACTIONS(648), 1, + ACTIONS(654), 1, anon_sym_RBRACE, - STATE(259), 1, + STATE(267), 1, aux_sym_attributes_repeat1, - [6799] = 4, + [7110] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(650), 1, + ACTIONS(656), 1, anon_sym_COMMA, - ACTIONS(652), 1, + ACTIONS(658), 1, anon_sym_RBRACE, - STATE(245), 1, + STATE(249), 1, aux_sym_attributes_repeat1, - [6812] = 4, + [7123] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, + ACTIONS(660), 1, anon_sym_COMMA, - ACTIONS(657), 1, - anon_sym_RBRACE, - STATE(255), 1, - aux_sym_attributes_repeat1, - [6825] = 4, + ACTIONS(663), 1, + anon_sym_RBRACK, + STATE(263), 1, + aux_sym_attribute_constraints_repeat1, + [7136] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(659), 1, + ACTIONS(665), 1, anon_sym_COMMA, - ACTIONS(661), 1, + ACTIONS(667), 1, anon_sym_RPAREN, - STATE(241), 1, + STATE(247), 1, aux_sym_function_repeat1, - [6838] = 4, + [7149] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(563), 1, + ACTIONS(569), 1, anon_sym_LBRACE, - ACTIONS(663), 1, + ACTIONS(669), 1, sym__newline, STATE(24), 1, sym_attributes, - [6851] = 2, + [7162] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(665), 3, - sym__newline, - anon_sym_cardinality, - anon_sym_LBRACE, - [6860] = 4, + ACTIONS(671), 1, + anon_sym_COMMA, + ACTIONS(673), 1, + anon_sym_RBRACK, + STATE(243), 1, + aux_sym_vector_repeat1, + [7175] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(667), 1, + ACTIONS(675), 1, anon_sym_COMMA, - ACTIONS(669), 1, + ACTIONS(677), 1, anon_sym_RBRACE, - STATE(255), 1, + STATE(252), 1, aux_sym_attributes_repeat1, - [6873] = 4, + [7188] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(671), 1, + ACTIONS(679), 1, anon_sym_COMMA, - ACTIONS(673), 1, + ACTIONS(681), 1, anon_sym_RBRACK, - STATE(239), 1, + STATE(258), 1, aux_sym_vector_repeat1, - [6886] = 2, + [7201] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(140), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7209] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(675), 2, + ACTIONS(683), 2, anon_sym_COMMA, anon_sym_RBRACK, - [6894] = 2, + [7217] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(148), 2, + ACTIONS(685), 2, anon_sym_COMMA, anon_sym_RBRACE, - [6902] = 2, + [7225] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(677), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [6910] = 2, + ACTIONS(687), 1, + anon_sym_STAR, + ACTIONS(689), 1, + sym_int, + [7235] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(679), 2, + ACTIONS(691), 2, anon_sym_STAR, sym_int, - [6918] = 2, + [7243] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(657), 2, + ACTIONS(693), 2, anon_sym_COMMA, anon_sym_RBRACE, - [6926] = 2, + [7251] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(681), 2, + ACTIONS(695), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [6934] = 2, + anon_sym_RBRACE, + [7259] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(683), 2, + ACTIONS(590), 2, anon_sym_COMMA, anon_sym_RBRACK, - [6942] = 3, + [7267] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(11), 1, anon_sym_LBRACK, - STATE(257), 1, + STATE(265), 1, sym_cardinality, - [6952] = 2, + [7277] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(681), 2, + ACTIONS(697), 2, anon_sym_COMMA, anon_sym_RBRACE, - [6960] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(685), 1, - anon_sym_STAR, - ACTIONS(687), 1, - sym_int, - [6970] = 2, + [7285] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(689), 2, + ACTIONS(128), 2, anon_sym_COMMA, - anon_sym_RBRACE, - [6978] = 2, + anon_sym_RBRACK, + [7293] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(142), 2, + ACTIONS(699), 2, anon_sym_COMMA, anon_sym_RBRACE, - [6986] = 2, + [7301] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(160), 2, + ACTIONS(683), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [6994] = 2, + anon_sym_RBRACE, + [7309] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(675), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [7002] = 2, + ACTIONS(11), 1, + anon_sym_LBRACK, + STATE(260), 1, + sym_cardinality, + [7319] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(146), 2, + ACTIONS(701), 2, anon_sym_COMMA, anon_sym_RBRACE, - [7010] = 2, + [7327] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(130), 2, + ACTIONS(142), 2, anon_sym_COMMA, anon_sym_RBRACK, - [7018] = 2, + [7335] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(691), 2, + ACTIONS(146), 2, anon_sym_COMMA, - anon_sym_RBRACE, - [7026] = 3, + anon_sym_RBRACK, + [7343] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(693), 1, + ACTIONS(703), 1, anon_sym_DOT_DOT, - ACTIONS(695), 1, + ACTIONS(705), 1, anon_sym_RBRACK, - [7036] = 3, + [7353] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(11), 1, - anon_sym_LBRACK, - STATE(252), 1, - sym_cardinality, - [7046] = 2, + ACTIONS(146), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7361] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(142), 2, + ACTIONS(699), 2, anon_sym_COMMA, anon_sym_RBRACK, - [7054] = 2, + [7369] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(697), 2, + ACTIONS(707), 2, anon_sym_COMMA, anon_sym_RBRACE, - [7062] = 2, + [7377] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(626), 2, + ACTIONS(709), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [7070] = 2, + anon_sym_RBRACE, + [7385] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(130), 2, + ACTIONS(695), 2, anon_sym_COMMA, - anon_sym_RBRACE, - [7078] = 2, + anon_sym_RBRACK, + [7393] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(146), 2, + ACTIONS(140), 2, anon_sym_COMMA, anon_sym_RBRACK, - [7086] = 2, + [7401] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(160), 2, + ACTIONS(685), 2, anon_sym_COMMA, - anon_sym_RBRACE, - [7094] = 2, + anon_sym_RBRACK, + [7409] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(699), 2, + ACTIONS(128), 2, anon_sym_COMMA, anon_sym_RBRACE, - [7102] = 2, + [7417] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(683), 2, + ACTIONS(624), 2, anon_sym_COMMA, anon_sym_RBRACE, - [7110] = 2, + [7425] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(677), 2, + ACTIONS(124), 2, anon_sym_COMMA, anon_sym_RBRACE, - [7118] = 2, + [7433] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(148), 2, + ACTIONS(124), 2, anon_sym_COMMA, anon_sym_RBRACK, - [7126] = 2, + [7441] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(701), 2, + ACTIONS(142), 2, anon_sym_COMMA, anon_sym_RBRACE, - [7134] = 2, + [7449] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(703), 1, + ACTIONS(711), 1, anon_sym_SQUOTE, - [7141] = 2, + [7456] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(705), 1, + ACTIONS(713), 1, anon_sym_DQUOTE, - [7148] = 2, + [7463] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(707), 1, - anon_sym_DQUOTE, - [7155] = 2, + ACTIONS(715), 1, + anon_sym_LBRACK, + [7470] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(709), 1, - anon_sym_LBRACK, - [7162] = 2, + ACTIONS(717), 1, + anon_sym_DQUOTE, + [7477] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(711), 1, + ACTIONS(719), 1, ts_builtin_sym_end, - [7169] = 2, + [7484] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(713), 1, + ACTIONS(705), 1, anon_sym_RBRACK, - [7176] = 2, - ACTIONS(715), 1, - sym_comment, - ACTIONS(717), 1, - aux_sym_string_name_token1, - [7183] = 2, - ACTIONS(715), 1, - sym_comment, - ACTIONS(719), 1, - sym_string_content, - [7190] = 2, - ACTIONS(715), 1, - sym_comment, + [7491] = 2, ACTIONS(721), 1, - aux_sym_string_name_token1, - [7197] = 2, - ACTIONS(715), 1, sym_comment, ACTIONS(723), 1, - sym_string_content, - [7204] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(695), 1, - anon_sym_RBRACK, - [7211] = 2, - ACTIONS(3), 1, + aux_sym_string_name_token1, + [7498] = 2, + ACTIONS(721), 1, sym_comment, ACTIONS(725), 1, - anon_sym_SQUOTE, - [7218] = 2, - ACTIONS(3), 1, + sym_string_content, + [7505] = 2, + ACTIONS(721), 1, sym_comment, ACTIONS(727), 1, - anon_sym_DQUOTE, - [7225] = 2, - ACTIONS(715), 1, + aux_sym_string_name_token1, + [7512] = 2, + ACTIONS(721), 1, sym_comment, ACTIONS(729), 1, sym_string_content, - [7232] = 2, - ACTIONS(715), 1, + [7519] = 2, + ACTIONS(3), 1, sym_comment, ACTIONS(731), 1, - aux_sym_string_name_token1, - [7239] = 2, + anon_sym_SQUOTE, + [7526] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(733), 1, anon_sym_DQUOTE, - [7246] = 2, + [7533] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(735), 1, anon_sym_SQUOTE, - [7253] = 2, - ACTIONS(715), 1, + [7540] = 2, + ACTIONS(721), 1, sym_comment, ACTIONS(737), 1, sym_string_content, - [7260] = 2, - ACTIONS(715), 1, + [7547] = 2, + ACTIONS(721), 1, sym_comment, ACTIONS(739), 1, aux_sym_string_name_token1, - [7267] = 2, + [7554] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(741), 1, + anon_sym_RBRACK, + [7561] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(743), 1, anon_sym_SQUOTE, + [7568] = 2, + ACTIONS(721), 1, + sym_comment, + ACTIONS(745), 1, + sym_string_content, + [7575] = 2, + ACTIONS(721), 1, + sym_comment, + ACTIONS(747), 1, + aux_sym_string_name_token1, + [7582] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(749), 1, + anon_sym_DQUOTE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(21)] = 0, [SMALL_STATE(22)] = 38, - [SMALL_STATE(23)] = 76, - [SMALL_STATE(24)] = 112, - [SMALL_STATE(25)] = 150, - [SMALL_STATE(26)] = 186, - [SMALL_STATE(27)] = 222, - [SMALL_STATE(28)] = 258, - [SMALL_STATE(29)] = 294, - [SMALL_STATE(30)] = 330, - [SMALL_STATE(31)] = 366, - [SMALL_STATE(32)] = 404, - [SMALL_STATE(33)] = 442, - [SMALL_STATE(34)] = 478, - [SMALL_STATE(35)] = 514, - [SMALL_STATE(36)] = 550, + [SMALL_STATE(23)] = 74, + [SMALL_STATE(24)] = 110, + [SMALL_STATE(25)] = 148, + [SMALL_STATE(26)] = 184, + [SMALL_STATE(27)] = 220, + [SMALL_STATE(28)] = 256, + [SMALL_STATE(29)] = 292, + [SMALL_STATE(30)] = 328, + [SMALL_STATE(31)] = 364, + [SMALL_STATE(32)] = 400, + [SMALL_STATE(33)] = 436, + [SMALL_STATE(34)] = 484, + [SMALL_STATE(35)] = 522, + [SMALL_STATE(36)] = 560, [SMALL_STATE(37)] = 598, [SMALL_STATE(38)] = 636, [SMALL_STATE(39)] = 674, @@ -16372,20 +16616,20 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(65)] = 1744, [SMALL_STATE(66)] = 1790, [SMALL_STATE(67)] = 1835, - [SMALL_STATE(68)] = 1880, + [SMALL_STATE(68)] = 1864, [SMALL_STATE(69)] = 1909, [SMALL_STATE(70)] = 1954, - [SMALL_STATE(71)] = 1987, - [SMALL_STATE(72)] = 2032, + [SMALL_STATE(71)] = 1999, + [SMALL_STATE(72)] = 2044, [SMALL_STATE(73)] = 2077, [SMALL_STATE(74)] = 2122, [SMALL_STATE(75)] = 2167, [SMALL_STATE(76)] = 2212, [SMALL_STATE(77)] = 2257, [SMALL_STATE(78)] = 2302, - [SMALL_STATE(79)] = 2328, - [SMALL_STATE(80)] = 2370, - [SMALL_STATE(81)] = 2402, + [SMALL_STATE(79)] = 2344, + [SMALL_STATE(80)] = 2386, + [SMALL_STATE(81)] = 2418, [SMALL_STATE(82)] = 2444, [SMALL_STATE(83)] = 2486, [SMALL_STATE(84)] = 2528, @@ -16413,208 +16657,216 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(106)] = 3452, [SMALL_STATE(107)] = 3494, [SMALL_STATE(108)] = 3536, - [SMALL_STATE(109)] = 3567, - [SMALL_STATE(110)] = 3596, - [SMALL_STATE(111)] = 3633, - [SMALL_STATE(112)] = 3664, - [SMALL_STATE(113)] = 3701, - [SMALL_STATE(114)] = 3732, - [SMALL_STATE(115)] = 3761, - [SMALL_STATE(116)] = 3792, - [SMALL_STATE(117)] = 3823, - [SMALL_STATE(118)] = 3854, - [SMALL_STATE(119)] = 3882, - [SMALL_STATE(120)] = 3906, - [SMALL_STATE(121)] = 3930, - [SMALL_STATE(122)] = 3957, - [SMALL_STATE(123)] = 3984, - [SMALL_STATE(124)] = 4011, - [SMALL_STATE(125)] = 4038, - [SMALL_STATE(126)] = 4065, - [SMALL_STATE(127)] = 4092, - [SMALL_STATE(128)] = 4117, - [SMALL_STATE(129)] = 4144, - [SMALL_STATE(130)] = 4171, - [SMALL_STATE(131)] = 4196, - [SMALL_STATE(132)] = 4223, - [SMALL_STATE(133)] = 4248, - [SMALL_STATE(134)] = 4275, - [SMALL_STATE(135)] = 4303, - [SMALL_STATE(136)] = 4325, - [SMALL_STATE(137)] = 4351, - [SMALL_STATE(138)] = 4373, - [SMALL_STATE(139)] = 4407, - [SMALL_STATE(140)] = 4429, - [SMALL_STATE(141)] = 4451, - [SMALL_STATE(142)] = 4473, - [SMALL_STATE(143)] = 4495, - [SMALL_STATE(144)] = 4529, - [SMALL_STATE(145)] = 4563, - [SMALL_STATE(146)] = 4585, - [SMALL_STATE(147)] = 4607, - [SMALL_STATE(148)] = 4629, - [SMALL_STATE(149)] = 4651, - [SMALL_STATE(150)] = 4685, - [SMALL_STATE(151)] = 4707, - [SMALL_STATE(152)] = 4737, - [SMALL_STATE(153)] = 4759, - [SMALL_STATE(154)] = 4781, - [SMALL_STATE(155)] = 4803, - [SMALL_STATE(156)] = 4833, - [SMALL_STATE(157)] = 4867, - [SMALL_STATE(158)] = 4889, - [SMALL_STATE(159)] = 4910, - [SMALL_STATE(160)] = 4931, - [SMALL_STATE(161)] = 4960, - [SMALL_STATE(162)] = 4981, - [SMALL_STATE(163)] = 5002, - [SMALL_STATE(164)] = 5031, - [SMALL_STATE(165)] = 5052, - [SMALL_STATE(166)] = 5073, - [SMALL_STATE(167)] = 5094, - [SMALL_STATE(168)] = 5115, - [SMALL_STATE(169)] = 5136, - [SMALL_STATE(170)] = 5157, - [SMALL_STATE(171)] = 5184, - [SMALL_STATE(172)] = 5209, - [SMALL_STATE(173)] = 5230, - [SMALL_STATE(174)] = 5251, - [SMALL_STATE(175)] = 5280, - [SMALL_STATE(176)] = 5301, - [SMALL_STATE(177)] = 5322, - [SMALL_STATE(178)] = 5343, - [SMALL_STATE(179)] = 5364, - [SMALL_STATE(180)] = 5393, - [SMALL_STATE(181)] = 5414, - [SMALL_STATE(182)] = 5435, - [SMALL_STATE(183)] = 5456, - [SMALL_STATE(184)] = 5477, - [SMALL_STATE(185)] = 5498, - [SMALL_STATE(186)] = 5525, - [SMALL_STATE(187)] = 5546, - [SMALL_STATE(188)] = 5571, - [SMALL_STATE(189)] = 5598, - [SMALL_STATE(190)] = 5619, - [SMALL_STATE(191)] = 5640, - [SMALL_STATE(192)] = 5661, - [SMALL_STATE(193)] = 5682, - [SMALL_STATE(194)] = 5711, - [SMALL_STATE(195)] = 5732, - [SMALL_STATE(196)] = 5753, - [SMALL_STATE(197)] = 5774, - [SMALL_STATE(198)] = 5795, - [SMALL_STATE(199)] = 5820, - [SMALL_STATE(200)] = 5848, - [SMALL_STATE(201)] = 5876, - [SMALL_STATE(202)] = 5904, - [SMALL_STATE(203)] = 5932, - [SMALL_STATE(204)] = 5961, - [SMALL_STATE(205)] = 5990, - [SMALL_STATE(206)] = 6019, - [SMALL_STATE(207)] = 6048, - [SMALL_STATE(208)] = 6077, - [SMALL_STATE(209)] = 6106, - [SMALL_STATE(210)] = 6135, - [SMALL_STATE(211)] = 6164, - [SMALL_STATE(212)] = 6193, - [SMALL_STATE(213)] = 6222, - [SMALL_STATE(214)] = 6251, - [SMALL_STATE(215)] = 6280, - [SMALL_STATE(216)] = 6306, - [SMALL_STATE(217)] = 6330, - [SMALL_STATE(218)] = 6351, - [SMALL_STATE(219)] = 6366, - [SMALL_STATE(220)] = 6381, - [SMALL_STATE(221)] = 6396, - [SMALL_STATE(222)] = 6406, - [SMALL_STATE(223)] = 6420, - [SMALL_STATE(224)] = 6434, - [SMALL_STATE(225)] = 6444, - [SMALL_STATE(226)] = 6458, - [SMALL_STATE(227)] = 6474, - [SMALL_STATE(228)] = 6484, - [SMALL_STATE(229)] = 6498, - [SMALL_STATE(230)] = 6514, - [SMALL_STATE(231)] = 6524, - [SMALL_STATE(232)] = 6533, - [SMALL_STATE(233)] = 6546, - [SMALL_STATE(234)] = 6559, - [SMALL_STATE(235)] = 6572, - [SMALL_STATE(236)] = 6585, - [SMALL_STATE(237)] = 6598, - [SMALL_STATE(238)] = 6611, - [SMALL_STATE(239)] = 6624, - [SMALL_STATE(240)] = 6637, - [SMALL_STATE(241)] = 6646, - [SMALL_STATE(242)] = 6659, - [SMALL_STATE(243)] = 6668, - [SMALL_STATE(244)] = 6681, - [SMALL_STATE(245)] = 6690, - [SMALL_STATE(246)] = 6703, - [SMALL_STATE(247)] = 6716, - [SMALL_STATE(248)] = 6729, - [SMALL_STATE(249)] = 6742, - [SMALL_STATE(250)] = 6755, - [SMALL_STATE(251)] = 6764, - [SMALL_STATE(252)] = 6773, - [SMALL_STATE(253)] = 6786, - [SMALL_STATE(254)] = 6799, - [SMALL_STATE(255)] = 6812, - [SMALL_STATE(256)] = 6825, - [SMALL_STATE(257)] = 6838, - [SMALL_STATE(258)] = 6851, - [SMALL_STATE(259)] = 6860, - [SMALL_STATE(260)] = 6873, - [SMALL_STATE(261)] = 6886, - [SMALL_STATE(262)] = 6894, - [SMALL_STATE(263)] = 6902, - [SMALL_STATE(264)] = 6910, - [SMALL_STATE(265)] = 6918, - [SMALL_STATE(266)] = 6926, - [SMALL_STATE(267)] = 6934, - [SMALL_STATE(268)] = 6942, - [SMALL_STATE(269)] = 6952, - [SMALL_STATE(270)] = 6960, - [SMALL_STATE(271)] = 6970, - [SMALL_STATE(272)] = 6978, - [SMALL_STATE(273)] = 6986, - [SMALL_STATE(274)] = 6994, - [SMALL_STATE(275)] = 7002, - [SMALL_STATE(276)] = 7010, - [SMALL_STATE(277)] = 7018, - [SMALL_STATE(278)] = 7026, - [SMALL_STATE(279)] = 7036, - [SMALL_STATE(280)] = 7046, - [SMALL_STATE(281)] = 7054, - [SMALL_STATE(282)] = 7062, - [SMALL_STATE(283)] = 7070, - [SMALL_STATE(284)] = 7078, - [SMALL_STATE(285)] = 7086, - [SMALL_STATE(286)] = 7094, - [SMALL_STATE(287)] = 7102, - [SMALL_STATE(288)] = 7110, - [SMALL_STATE(289)] = 7118, - [SMALL_STATE(290)] = 7126, - [SMALL_STATE(291)] = 7134, - [SMALL_STATE(292)] = 7141, - [SMALL_STATE(293)] = 7148, - [SMALL_STATE(294)] = 7155, - [SMALL_STATE(295)] = 7162, - [SMALL_STATE(296)] = 7169, - [SMALL_STATE(297)] = 7176, - [SMALL_STATE(298)] = 7183, - [SMALL_STATE(299)] = 7190, - [SMALL_STATE(300)] = 7197, - [SMALL_STATE(301)] = 7204, - [SMALL_STATE(302)] = 7211, - [SMALL_STATE(303)] = 7218, - [SMALL_STATE(304)] = 7225, - [SMALL_STATE(305)] = 7232, - [SMALL_STATE(306)] = 7239, - [SMALL_STATE(307)] = 7246, - [SMALL_STATE(308)] = 7253, - [SMALL_STATE(309)] = 7260, - [SMALL_STATE(310)] = 7267, + [SMALL_STATE(109)] = 3578, + [SMALL_STATE(110)] = 3620, + [SMALL_STATE(111)] = 3662, + [SMALL_STATE(112)] = 3704, + [SMALL_STATE(113)] = 3741, + [SMALL_STATE(114)] = 3770, + [SMALL_STATE(115)] = 3801, + [SMALL_STATE(116)] = 3832, + [SMALL_STATE(117)] = 3863, + [SMALL_STATE(118)] = 3894, + [SMALL_STATE(119)] = 3931, + [SMALL_STATE(120)] = 3962, + [SMALL_STATE(121)] = 3993, + [SMALL_STATE(122)] = 4022, + [SMALL_STATE(123)] = 4046, + [SMALL_STATE(124)] = 4074, + [SMALL_STATE(125)] = 4098, + [SMALL_STATE(126)] = 4125, + [SMALL_STATE(127)] = 4152, + [SMALL_STATE(128)] = 4179, + [SMALL_STATE(129)] = 4206, + [SMALL_STATE(130)] = 4233, + [SMALL_STATE(131)] = 4260, + [SMALL_STATE(132)] = 4287, + [SMALL_STATE(133)] = 4314, + [SMALL_STATE(134)] = 4341, + [SMALL_STATE(135)] = 4366, + [SMALL_STATE(136)] = 4391, + [SMALL_STATE(137)] = 4418, + [SMALL_STATE(138)] = 4443, + [SMALL_STATE(139)] = 4465, + [SMALL_STATE(140)] = 4495, + [SMALL_STATE(141)] = 4517, + [SMALL_STATE(142)] = 4543, + [SMALL_STATE(143)] = 4579, + [SMALL_STATE(144)] = 4601, + [SMALL_STATE(145)] = 4623, + [SMALL_STATE(146)] = 4645, + [SMALL_STATE(147)] = 4667, + [SMALL_STATE(148)] = 4703, + [SMALL_STATE(149)] = 4739, + [SMALL_STATE(150)] = 4761, + [SMALL_STATE(151)] = 4783, + [SMALL_STATE(152)] = 4811, + [SMALL_STATE(153)] = 4833, + [SMALL_STATE(154)] = 4855, + [SMALL_STATE(155)] = 4891, + [SMALL_STATE(156)] = 4913, + [SMALL_STATE(157)] = 4943, + [SMALL_STATE(158)] = 4965, + [SMALL_STATE(159)] = 4987, + [SMALL_STATE(160)] = 5009, + [SMALL_STATE(161)] = 5041, + [SMALL_STATE(162)] = 5077, + [SMALL_STATE(163)] = 5099, + [SMALL_STATE(164)] = 5120, + [SMALL_STATE(165)] = 5141, + [SMALL_STATE(166)] = 5162, + [SMALL_STATE(167)] = 5183, + [SMALL_STATE(168)] = 5204, + [SMALL_STATE(169)] = 5225, + [SMALL_STATE(170)] = 5252, + [SMALL_STATE(171)] = 5281, + [SMALL_STATE(172)] = 5310, + [SMALL_STATE(173)] = 5337, + [SMALL_STATE(174)] = 5362, + [SMALL_STATE(175)] = 5383, + [SMALL_STATE(176)] = 5404, + [SMALL_STATE(177)] = 5435, + [SMALL_STATE(178)] = 5456, + [SMALL_STATE(179)] = 5487, + [SMALL_STATE(180)] = 5508, + [SMALL_STATE(181)] = 5529, + [SMALL_STATE(182)] = 5550, + [SMALL_STATE(183)] = 5571, + [SMALL_STATE(184)] = 5592, + [SMALL_STATE(185)] = 5613, + [SMALL_STATE(186)] = 5644, + [SMALL_STATE(187)] = 5665, + [SMALL_STATE(188)] = 5696, + [SMALL_STATE(189)] = 5717, + [SMALL_STATE(190)] = 5738, + [SMALL_STATE(191)] = 5759, + [SMALL_STATE(192)] = 5780, + [SMALL_STATE(193)] = 5801, + [SMALL_STATE(194)] = 5822, + [SMALL_STATE(195)] = 5843, + [SMALL_STATE(196)] = 5868, + [SMALL_STATE(197)] = 5889, + [SMALL_STATE(198)] = 5910, + [SMALL_STATE(199)] = 5931, + [SMALL_STATE(200)] = 5962, + [SMALL_STATE(201)] = 5983, + [SMALL_STATE(202)] = 6004, + [SMALL_STATE(203)] = 6025, + [SMALL_STATE(204)] = 6050, + [SMALL_STATE(205)] = 6079, + [SMALL_STATE(206)] = 6100, + [SMALL_STATE(207)] = 6127, + [SMALL_STATE(208)] = 6157, + [SMALL_STATE(209)] = 6187, + [SMALL_STATE(210)] = 6217, + [SMALL_STATE(211)] = 6247, + [SMALL_STATE(212)] = 6276, + [SMALL_STATE(213)] = 6305, + [SMALL_STATE(214)] = 6334, + [SMALL_STATE(215)] = 6363, + [SMALL_STATE(216)] = 6392, + [SMALL_STATE(217)] = 6421, + [SMALL_STATE(218)] = 6450, + [SMALL_STATE(219)] = 6479, + [SMALL_STATE(220)] = 6508, + [SMALL_STATE(221)] = 6537, + [SMALL_STATE(222)] = 6566, + [SMALL_STATE(223)] = 6595, + [SMALL_STATE(224)] = 6621, + [SMALL_STATE(225)] = 6645, + [SMALL_STATE(226)] = 6666, + [SMALL_STATE(227)] = 6681, + [SMALL_STATE(228)] = 6696, + [SMALL_STATE(229)] = 6711, + [SMALL_STATE(230)] = 6727, + [SMALL_STATE(231)] = 6737, + [SMALL_STATE(232)] = 6751, + [SMALL_STATE(233)] = 6765, + [SMALL_STATE(234)] = 6779, + [SMALL_STATE(235)] = 6795, + [SMALL_STATE(236)] = 6809, + [SMALL_STATE(237)] = 6819, + [SMALL_STATE(238)] = 6829, + [SMALL_STATE(239)] = 6839, + [SMALL_STATE(240)] = 6852, + [SMALL_STATE(241)] = 6861, + [SMALL_STATE(242)] = 6870, + [SMALL_STATE(243)] = 6879, + [SMALL_STATE(244)] = 6892, + [SMALL_STATE(245)] = 6905, + [SMALL_STATE(246)] = 6918, + [SMALL_STATE(247)] = 6927, + [SMALL_STATE(248)] = 6940, + [SMALL_STATE(249)] = 6953, + [SMALL_STATE(250)] = 6966, + [SMALL_STATE(251)] = 6975, + [SMALL_STATE(252)] = 6988, + [SMALL_STATE(253)] = 7001, + [SMALL_STATE(254)] = 7014, + [SMALL_STATE(255)] = 7027, + [SMALL_STATE(256)] = 7040, + [SMALL_STATE(257)] = 7049, + [SMALL_STATE(258)] = 7062, + [SMALL_STATE(259)] = 7075, + [SMALL_STATE(260)] = 7084, + [SMALL_STATE(261)] = 7097, + [SMALL_STATE(262)] = 7110, + [SMALL_STATE(263)] = 7123, + [SMALL_STATE(264)] = 7136, + [SMALL_STATE(265)] = 7149, + [SMALL_STATE(266)] = 7162, + [SMALL_STATE(267)] = 7175, + [SMALL_STATE(268)] = 7188, + [SMALL_STATE(269)] = 7201, + [SMALL_STATE(270)] = 7209, + [SMALL_STATE(271)] = 7217, + [SMALL_STATE(272)] = 7225, + [SMALL_STATE(273)] = 7235, + [SMALL_STATE(274)] = 7243, + [SMALL_STATE(275)] = 7251, + [SMALL_STATE(276)] = 7259, + [SMALL_STATE(277)] = 7267, + [SMALL_STATE(278)] = 7277, + [SMALL_STATE(279)] = 7285, + [SMALL_STATE(280)] = 7293, + [SMALL_STATE(281)] = 7301, + [SMALL_STATE(282)] = 7309, + [SMALL_STATE(283)] = 7319, + [SMALL_STATE(284)] = 7327, + [SMALL_STATE(285)] = 7335, + [SMALL_STATE(286)] = 7343, + [SMALL_STATE(287)] = 7353, + [SMALL_STATE(288)] = 7361, + [SMALL_STATE(289)] = 7369, + [SMALL_STATE(290)] = 7377, + [SMALL_STATE(291)] = 7385, + [SMALL_STATE(292)] = 7393, + [SMALL_STATE(293)] = 7401, + [SMALL_STATE(294)] = 7409, + [SMALL_STATE(295)] = 7417, + [SMALL_STATE(296)] = 7425, + [SMALL_STATE(297)] = 7433, + [SMALL_STATE(298)] = 7441, + [SMALL_STATE(299)] = 7449, + [SMALL_STATE(300)] = 7456, + [SMALL_STATE(301)] = 7463, + [SMALL_STATE(302)] = 7470, + [SMALL_STATE(303)] = 7477, + [SMALL_STATE(304)] = 7484, + [SMALL_STATE(305)] = 7491, + [SMALL_STATE(306)] = 7498, + [SMALL_STATE(307)] = 7505, + [SMALL_STATE(308)] = 7512, + [SMALL_STATE(309)] = 7519, + [SMALL_STATE(310)] = 7526, + [SMALL_STATE(311)] = 7533, + [SMALL_STATE(312)] = 7540, + [SMALL_STATE(313)] = 7547, + [SMALL_STATE(314)] = 7554, + [SMALL_STATE(315)] = 7561, + [SMALL_STATE(316)] = 7568, + [SMALL_STATE(317)] = 7575, + [SMALL_STATE(318)] = 7582, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -16622,362 +16874,366 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(229), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(68), - [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(216), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(270), - [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(230), - [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(250), - [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(98), - [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(100), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(135), - [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(150), - [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(244), - [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(221), - [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(300), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(297), - [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(226), - [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(229), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), + [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(67), + [40] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(224), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(272), + [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(238), + [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(241), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(99), + [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(102), + [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(149), + [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(155), + [64] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(242), + [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(237), + [70] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(308), + [73] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(305), + [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(234), + [79] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(229), + [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(229), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 4, .production_id = 16), [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 4, .production_id = 16), [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 2, .production_id = 6), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 2, .production_id = 6), - [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 3), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 3), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 4, .production_id = 17), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 4, .production_id = 17), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 5, .production_id = 33), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 5, .production_id = 33), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 4), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 4), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 4, .production_id = 13), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 4, .production_id = 13), - [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 2, .production_id = 5), - [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 2, .production_id = 5), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 2), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 2), - [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 2, .production_id = 7), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2, .production_id = 7), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 6, .production_id = 31), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 6, .production_id = 31), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 4), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 4), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 3), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 3), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 4, .production_id = 17), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 4, .production_id = 17), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 5, .production_id = 33), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 5, .production_id = 33), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 4, .production_id = 13), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 4, .production_id = 13), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 2), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 2), + [150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 2, .production_id = 7), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2, .production_id = 7), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 2, .production_id = 6), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 2, .production_id = 6), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 2, .production_id = 5), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 2, .production_id = 5), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 7, .production_id = 34), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 7, .production_id = 34), [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 4, .production_id = 21), [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 4, .production_id = 21), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 7, .production_id = 34), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 7, .production_id = 34), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 4, .production_id = 15), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 4, .production_id = 15), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 5, .production_id = 27), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 5, .production_id = 27), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 5, .production_id = 28), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 5, .production_id = 28), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 5, .production_id = 27), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 5, .production_id = 27), + [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 5, .production_id = 28), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 5, .production_id = 28), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 6, .production_id = 30), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 6, .production_id = 30), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 6, .production_id = 31), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 6, .production_id = 31), [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 7, .production_id = 35), [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 7, .production_id = 35), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 6, .production_id = 30), - [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 6, .production_id = 30), - [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_blk, 4, .production_id = 15), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_blk, 4, .production_id = 15), + [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_value, 1, .production_id = 10), [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), [228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_name, 3), [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_name, 3), - [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [244] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), - [258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [244] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__header, 1), [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__header, 1), [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 1), [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 1), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), + [278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182), [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__any_name, 1), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__any_name, 1), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 3, .production_id = 13), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 3, .production_id = 13), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2), - [320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 2), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [324] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), - [326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lang_lvl, 3, .production_id = 13), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 3, .production_id = 13), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lang_lvl, 2, .production_id = 7), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 2, .production_id = 7), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), - [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2), - [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(225), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__any_name, 1), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__any_name, 1), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 3, .production_id = 13), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 3, .production_id = 13), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), + [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lang_lvl, 3, .production_id = 13), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 3, .production_id = 13), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), + [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2), + [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(232), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lang_lvl, 2, .production_id = 7), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 2, .production_id = 7), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2), + [341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 2), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [347] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(222), - [350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(223), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref, 1, .production_id = 2), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1), - [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 1), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [379] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(228), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expr, 3, .production_id = 11), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [390] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool, 1), - [394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool, 1), - [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expr, 3, .production_id = 11), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [406] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [408] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expr, 2, .production_id = 4), - [414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expr, 2, .production_id = 4), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_expr, 3), - [418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_expr, 3), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 6, .production_id = 29), - [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 6, .production_id = 29), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [347] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(231), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref, 1, .production_id = 2), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1), + [362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 1), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [366] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(235), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(233), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 6, .production_id = 29), + [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 6, .production_id = 29), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expr, 3, .production_id = 11), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [394] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [396] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expr, 3, .production_id = 11), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [410] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [412] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3), + [418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expr, 2, .production_id = 4), + [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expr, 2, .production_id = 4), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [440] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5, .production_id = 25), - [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5, .production_id = 25), - [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5, .production_id = 23), - [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5, .production_id = 23), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4, .production_id = 14), - [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4, .production_id = 14), - [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3), - [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3), - [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__header, 1, .production_id = 1), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2, .production_id = 24), - [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraint, 2, .production_id = 18), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [480] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), - [482] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__value, 1, .production_id = 20), - [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_constraints_repeat1, 2, .production_id = 18), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294), - [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [526] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [528] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_incomplete_namespace, 1), - [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_incomplete_namespace, 1), - [532] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251), - [534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_incomplete_ref, 2), - [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_incomplete_ref, 2), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_lang_lvl_repeat1, 2), - [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_lang_lvl_repeat1, 2), SHIFT_REPEAT(151), - [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 1), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 2), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_major_lvl, 1), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_minor_lvl, 1), - [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace, 2, .production_id = 3), - [571] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_constraints_repeat1, 2), SHIFT_REPEAT(105), - [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_constraints_repeat1, 2), - [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), - [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_feature, 2, .production_id = 8), - [606] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2, .production_id = 26), SHIFT_REPEAT(93), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2, .production_id = 26), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality, 3, .production_id = 9), - [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group_mode, 1), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [623] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_vector_repeat1, 2), SHIFT_REPEAT(63), - [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_vector_repeat1, 2), - [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraints, 1), - [642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref, 3, .production_id = 12), - [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), - [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [654] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), SHIFT_REPEAT(215), - [657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality, 5, .production_id = 22), - [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), - [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), - [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 4), - [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 5, .production_id = 33), - [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 4, .production_id = 13), - [683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 3), - [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_value, 2, .production_id = 19), - [691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 4, .production_id = 32), - [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 5, .production_id = 32), - [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 6, .production_id = 37), - [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 5, .production_id = 36), - [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [711] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [715] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292), - [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(303), - [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), - [731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(306), + [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool, 1), + [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool, 1), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5, .production_id = 25), + [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5, .production_id = 25), + [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5, .production_id = 23), + [454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5, .production_id = 23), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4, .production_id = 14), + [462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4, .production_id = 14), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_expr, 3), + [466] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_expr, 3), + [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__header, 1, .production_id = 1), + [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraint, 2, .production_id = 18), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [486] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__value, 1, .production_id = 20), + [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2, .production_id = 24), + [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_constraints_repeat1, 2, .production_id = 18), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [504] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [510] = {.entry = {.count = 1, .reusable = false}}, SHIFT(301), + [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [534] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [536] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_incomplete_namespace, 1), + [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_incomplete_namespace, 1), + [540] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259), + [542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_incomplete_ref, 2), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_incomplete_ref, 2), + [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 2), + [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_lvl, 1), + [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_lang_lvl_repeat1, 2), + [556] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_lang_lvl_repeat1, 2), SHIFT_REPEAT(156), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_major_lvl, 1), + [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_minor_lvl, 1), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality, 3, .production_id = 9), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraints, 1), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group_mode, 1), + [587] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_vector_repeat1, 2), SHIFT_REPEAT(63), + [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_vector_repeat1, 2), + [592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality, 5, .production_id = 22), + [602] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2, .production_id = 26), SHIFT_REPEAT(104), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2, .production_id = 26), + [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace, 2, .production_id = 3), + [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [621] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), SHIFT_REPEAT(223), + [624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_feature, 2, .production_id = 8), + [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref, 3, .production_id = 12), + [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_constraints_repeat1, 2), SHIFT_REPEAT(110), + [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_constraints_repeat1, 2), + [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 5, .production_id = 33), + [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 3), + [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 5, .production_id = 36), + [695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 4, .production_id = 13), + [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 6, .production_id = 37), + [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector, 4), + [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 5, .production_id = 32), + [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [707] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_constraints, 4, .production_id = 32), + [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_value, 2, .production_id = 19), + [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [719] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318), + [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302), + [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(293), - [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(310), + [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(300), + [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), }; #ifdef __cplusplus diff --git a/uvls/Cargo.toml b/uvls/Cargo.toml index ba0e5049..5e38e608 100644 --- a/uvls/Cargo.toml +++ b/uvls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uvls" -version = "0.1.5" +version = "0.1.6" edition = "2021" @@ -11,7 +11,7 @@ futures-util = "0.3.21" indexmap = "1.9.2" petgraph = "0.6.2" itertools = "0.10.5" -tree-sitter = "0.20.8" +tree-sitter = "0.20.9" tree-sitter-traversal = "0.1.2" dashmap = "5.4.0" tower-lsp = "0.19.0" @@ -45,4 +45,4 @@ dioxus-liveview = { version = "*", features = ["axum"] } serde = "1.0.152" enumflags2 = "0.7.5" get-port = "4.0.0" -open = "4.0.1" \ No newline at end of file +open = "4.0.1" diff --git a/uvls/src/ast.rs b/uvls/src/ast.rs index dbdb68b4..6bc2e628 100644 --- a/uvls/src/ast.rs +++ b/uvls/src/ast.rs @@ -18,7 +18,7 @@ use ustr::Ustr; //The AST is stored as an ECS like structure //This allows fast queries over all features groups etc. //Features, Attributes, Imports and Directories are stored in a typed radix tree. -//The radix tree is represented via a maps (sym0,name,ty) -> sym1 +//The radix tree is represented via a map (sym0,name,ty) -> sym1 //where ty is the type of sym1. Using this representation lowers total //memory consumption by a nice 20% //TODO recheck if the radix tree is still required @@ -340,7 +340,6 @@ pub enum Symbol { Import(usize), LangLvl(usize), Dir(usize), - Root, } impl Symbol { @@ -1405,7 +1404,6 @@ fn visit_attribute_value(state: &mut VisitorState, parent: Symbol) { } } fn visit_constraint_list(state: &mut VisitorState, parent: Symbol) { - debug_assert!(state.node().parent().unwrap().kind() == "attribute_constraints"); loop { if state.kind() == "constraint" { visit_children_arg(state, parent, visit_constraint); @@ -1416,7 +1414,6 @@ fn visit_constraint_list(state: &mut VisitorState, parent: Symbol) { } } fn visit_attributes(state: &mut VisitorState, parent: Symbol) { - debug_assert!(state.node().parent().unwrap().kind() == "attributes"); loop { match state.kind() { "attribute_constraints" => { @@ -1443,7 +1440,6 @@ fn visit_attributes(state: &mut VisitorState, parent: Symbol) { } fn visit_feature(state: &mut VisitorState, parent: Symbol, name: SymbolSpan, ty: Type) { - debug_assert!(state.node().parent().unwrap().kind() == "blk"); match parent { Symbol::Feature(..) => { state.push_error(40, "features have to be separated by groups"); @@ -1480,7 +1476,6 @@ fn visit_feature(state: &mut VisitorState, parent: Symbol, name: SymbolSpan, ty: } fn visit_ref(state: &mut VisitorState, parent: Symbol, path: Path) { - debug_assert!(state.node().parent().unwrap().kind() == "blk"); match parent { Symbol::Feature(..) => { state.push_error(40, "features have to be separated by groups"); @@ -1496,7 +1491,6 @@ fn visit_ref(state: &mut VisitorState, parent: Symbol, path: Path) { } } fn visit_group(state: &mut VisitorState, parent: Symbol, mode: GroupMode) { - debug_assert!(state.node().parent().unwrap().kind() == "blk"); match parent { Symbol::Group(..) => { state.push_error(40, "groups have to be separated by features"); @@ -1523,7 +1517,6 @@ fn visit_group(state: &mut VisitorState, parent: Symbol, mode: GroupMode) { } } fn visit_blk_decl(state: &mut VisitorState, parent: Symbol) { - debug_assert!(state.node().parent().unwrap().kind() == "blk"); state.goto_field("header"); match state.kind() { "name" => { @@ -1580,7 +1573,6 @@ fn visit_blk_decl(state: &mut VisitorState, parent: Symbol) { } } fn visit_features(state: &mut VisitorState) { - debug_assert!(state.node().parent().unwrap().kind() == "blk"); loop { check_no_extra_blk(state, "features"); if state.kind() == "blk" { diff --git a/uvls/src/cache.rs b/uvls/src/cache.rs index 661310fd..a132d3b6 100644 --- a/uvls/src/cache.rs +++ b/uvls/src/cache.rs @@ -276,7 +276,7 @@ pub struct LinkedAstDocument { pub revision: u64, pub ok: bool, } - +//A file that is not imported by any other is root file fn find_root_files<'a>(fs: &FileSystem, files: &'a AstFiles) -> impl Iterator + 'a { let mut not_root = HashSet::new(); for i in files.keys().cloned() { @@ -317,7 +317,8 @@ impl Cache { } for i in trans_dirty.iter() { if !errors.errors.contains_key(i) { - errors.errors.insert(*i, Vec::new()); + errors.errors.insert(*i, Vec::new());//Remove old errors when dependencies change + //but not the file } } let mut linked_ast: HashMap<_, _> = old @@ -328,6 +329,7 @@ impl Cache { .collect(); info!("updating cache dirty {:?}", trans_dirty); + //Link ASTs for i in trans_dirty.iter() { if !i.is_config() { linked_ast.insert( @@ -341,7 +343,7 @@ impl Cache { ); } } - + //Create linked instances of root files let modules: HashMap<_, _> = find_root_files(&fs, files) .map(|root| { let imports = fs.recursive_imports(root); @@ -355,6 +357,7 @@ impl Cache { }) .collect(); let mut config_modules = HashMap::new(); + //Create linked configuration for the json files in the project for (k, v) in configs.iter() { if let Some(content) = v.config.as_ref() { info!("uri {}", content.file.as_str()); @@ -363,6 +366,7 @@ impl Cache { || dirty.contains(k) || !old.config_modules.contains_key(k); if dirty { + //recreate let mut module = Module::new(content.file, &fs, &linked_ast); if !module.ok { continue; @@ -381,6 +385,7 @@ impl Cache { }), ); } else { + //reuse config_modules.insert(*k, old.config_modules[k].clone()); } } else { diff --git a/uvls/src/completion.rs b/uvls/src/completion.rs index 9e443315..83b8484e 100644 --- a/uvls/src/completion.rs +++ b/uvls/src/completion.rs @@ -186,7 +186,7 @@ fn node_at<'a>(node: Node<'a>, line: usize, char: usize, source: &Rope) -> Node< node.named_descendant_for_point_range(start, end).unwrap() } -pub fn containes(range: Range, pos: &Position) -> bool { +pub fn contains(range: Range, pos: &Position) -> bool { range.start.character <= pos.character && range.end.character > pos.character } pub fn estimate_expr(node: Node, pos: &Position, source: &Rope) -> CompletionEnv { @@ -218,7 +218,7 @@ pub fn estimate_expr(node: Node, pos: &Position, source: &Rope) -> CompletionEnv let mut arg_offset = -1; let mut args = Vec::new(); loop { - if containes( + if contains( lsp_range(cursor.node().byte_range(), source).unwrap(), &Position { character: pos.character - 1, @@ -273,10 +273,10 @@ pub fn estimate_expr(node: Node, pos: &Position, source: &Rope) -> CompletionEnv #[derive(Clone, Copy, PartialEq, Eq, Debug)] pub enum CompletionOffset { - Continous, // We are in path - Dot, //We are in open path ending with a dot - SameLine, // We are in a unfinished line - Cut, //We are in a empty line + Continuous, // We are in path + Dot, //We are in open path ending with a dot + SameLine, // We are in a unfinished line + Cut, //We are in a empty line } //Search for context in the vicinity of the cursor //first search one char back, then inside the line, then in the previous line etc. @@ -293,7 +293,7 @@ fn position_to_node<'a>( let base_offset = source.line_to_char(pos.line as usize); if !source.char(base_offset + rel_char - 1).is_whitespace() { ( - CompletionOffset::Continous, + CompletionOffset::Continuous, node_at(tree.root_node(), pos.line as usize, rel_char - 1, source), ) } else { @@ -373,7 +373,7 @@ fn estimate_env(node: Node, source: &Rope, pos: &Position) -> Option, }, } -impl CompletionFormater { +impl CompletionFormatter { fn text_edit(&self, _: &[Ustr], postfix: TextOP) -> TextEdit { match (self, postfix) { (Self::UVL { postfix_range }, TextOP::Put(text)) => TextEdit { @@ -401,20 +401,35 @@ impl CompletionFormater { } ( Self::FreeJSONKey { - //TODO this only works with multiple text edits sadly - whole_key, - key_prefix, + postfix_range, + key_start, }, TextOP::Put(text), ) => { - let key = format!(r#""{key_prefix}{}""#, text.replace('"', r#"\""#)); + let key = if key_start.is_some() { + format!(r#"{}""#, text.replace('"', r#"\""#)) + } else { + format!(r#""{}""#, text.replace('"', r#"\""#)) + }; TextEdit { new_text: key, - range: whole_key.clone(), + range: postfix_range.clone(), } } } } + fn additional_text_edits(&self) -> Option> { + match self { + Self::FreeJSONKey { + key_start: Some(key_start), + .. + } => Some(vec![TextEdit { + range: key_start.clone(), + new_text: "\"".into(), + }]), + _ => None, + } + } } #[derive(Debug)] pub struct CompletionQuery { @@ -422,12 +437,15 @@ pub struct CompletionQuery { pub postfix: CompactString, pub env: CompletionEnv, pub offset: CompletionOffset, - pub format: CompletionFormater, + pub format: CompletionFormatter, } impl CompletionQuery { fn text_edit(&self, text: TextOP) -> TextEdit { self.format.text_edit(&self.prefix, text) } + fn additional_text_edits(&self) -> Option> { + self.format.additional_text_edits() + } } pub fn longest_path<'a>(node: Node<'a>, source: &Rope) -> Option<(Path, Node<'a>)> { @@ -440,19 +458,19 @@ pub fn longest_path<'a>(node: Node<'a>, source: &Rope) -> Option<(Path, Node<'a> parse::parse_or_lang_lvl(node, source).map(|p| (p, node)) } } -//"smart" completion, find context arround the cursor +//"smart" completion, find context around the cursor fn estimate_context(pos: &Position, draft: &Draft) -> Option { match draft { Draft::JSON { source, tree, .. } => config::completion_query(source, tree, pos), Draft::UVL { source, tree, .. } => { let (offset, edit_node) = position_to_node(source, tree, pos); - if let (Some((path, path_node)), CompletionOffset::Continous) = + if let (Some((path, path_node)), CompletionOffset::Continuous) = (longest_path(edit_node, source), offset) { if let Some(tail) = path_node.child_by_field_name("tail") { Some(CompletionQuery { offset: CompletionOffset::Dot, - format: CompletionFormater::UVL { + format: CompletionFormatter::UVL { postfix_range: lsp_range(tail.end_byte()..tail.end_byte(), source)?, }, postfix: CompactString::new_inline(""), @@ -463,7 +481,7 @@ fn estimate_context(pos: &Position, draft: &Draft) -> Option { } else { Some(CompletionQuery { offset, - format: CompletionFormater::UVL { + format: CompletionFormatter::UVL { postfix_range: lsp_range(path.spans.last()?.clone(), source)?, }, postfix: path.names.last()?.as_str().into(), @@ -477,7 +495,7 @@ fn estimate_context(pos: &Position, draft: &Draft) -> Option { offset, prefix: Vec::new(), postfix: "".into(), - format: CompletionFormater::UVL { + format: CompletionFormatter::UVL { postfix_range: Range { start: *pos, end: *pos, @@ -525,14 +543,14 @@ struct CompletionOpt { rank: f32, name: Ustr, op: TextOP, - lable: CompactString, + label: CompactString, kind: CompletionKind, } impl CompletionOpt { fn new( kind: CompletionKind, name: Ustr, - lable: CompactString, + label: CompactString, depth: usize, edit: TextOP, query: &CompletionQuery, @@ -541,7 +559,7 @@ impl CompletionOpt { rank: completion_weight(&query.postfix, &name, depth as u32, &query.env, kind), op: edit, name, - lable, + label, kind, } } @@ -567,7 +585,7 @@ fn add_keywords( for word in words { top.push(CompletionOpt { op: TextOP::Put(word.clone()), - lable: word.clone(), + label: word.clone(), rank: if query.is_empty() { w } else { @@ -900,11 +918,17 @@ fn compute_completions_impl( add_group_keywords(&ctx.postfix, &mut top, 2.0); } CompletionEnv::Toplevel => add_top_lvl_keywords(&ctx.postfix, &mut top, 2.0), + CompletionEnv::SomeName => {} - CompletionEnv::Constraint - | CompletionEnv::Numeric - | CompletionEnv::Feature - | CompletionEnv::ConfigEntryKey => { + CompletionEnv::ConfigEntryKey => { + for i in snapshot + .resolve(origin, &ctx.prefix) + .filter(|f| f.file == origin) + { + completion_symbol_local(&snapshot, origin, i, &[], ctx, &mut top) + } + } + CompletionEnv::Constraint | CompletionEnv::Numeric | CompletionEnv::Feature => { match (&ctx.env, &ctx.offset) { //heuristic to provide nearly correct predictions, to //make it more accurate we need to respect @@ -932,7 +956,7 @@ fn compute_completions_impl( } ( CompletionEnv::Constraint | CompletionEnv::Numeric, - CompletionOffset::Cut | CompletionOffset::Continous, + CompletionOffset::Cut | CompletionOffset::Continuous, ) => { add_function_keywords(&ctx.postfix, &mut top, 2.0); completion_symbol(&snapshot, origin, &ctx, &mut top); @@ -1031,17 +1055,18 @@ pub fn compute_completions( &snapshot, ), }; - info!("Stat completion in {:?}", origin); + info!("Stat completion in {:?} {:#?}", origin, ctx); if let (Some(ctx), Some(origin)) = (ctx, origin) { let (top, is_incomplete) = compute_completions_impl(snapshot, draft, pos, &ctx, origin); let items = top .into_sorted_vec() .into_iter() - .unique_by(|c| c.lable.clone()) + .unique_by(|c| c.label.clone()) .filter(|opt| opt.kind != CompletionKind::DontCare) .map(|opt| CompletionItem { - label: opt.lable.into(), + label: opt.label.into(), text_edit: Some(CompletionTextEdit::Edit(ctx.text_edit(opt.op))), + additional_text_edits: ctx.additional_text_edits(), sort_text: Some(format!("{:X}", encode_float(-opt.rank))), filter_text: Some(opt.name.as_str().into()), kind: Some(match opt.kind { diff --git a/uvls/src/config.rs b/uvls/src/config.rs index 7dab7f25..6cf5e56b 100644 --- a/uvls/src/config.rs +++ b/uvls/src/config.rs @@ -16,6 +16,26 @@ use tokio::time::Instant; use tower_lsp::lsp_types::*; use tree_sitter::{Node, Tree, TreeCursor}; use ustr::Ustr; + +//Configuration is stored in json files like this +//{ +// "file":"file.uvl", +// "config":{ +// "submodels.subfile":{ +// "subfeature":true +// } +// "someFeatures":true, +// "someOtherFeature":1.0, +// "someFeature.attribute1":"test" +// } +// +//} +//This representation is very compact since it avoids rewriting long import prefixes but slightly +//more complex than just using the direct raw path to external symbols. +//JSON parsing is done with tree-sitter and not serde because there currently is no serde json +//crate for span information so error reporting becomes impossible. + + #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(untagged)] pub enum ConfigValue { @@ -65,7 +85,7 @@ impl Serialize for ConfigEntry { S: serde::Serializer, { use serde::ser::SerializeMap; - info!("{self:?}"); + match self { ConfigEntry::Value(..) => panic!(), @@ -143,6 +163,7 @@ impl<'a> Visitor<'a> for State<'a> { } } +//Prase a configuration object fn opt_configs(state: &mut State) -> Vec { let mut acc = Vec::new(); visit_siblings(state, |state| { @@ -248,6 +269,7 @@ fn visit_file(state: &mut State) -> Option { } }) } + fn visit_root(state: &mut State) -> Option { state.goto_first_child(); if state.kind() == "object" { @@ -299,13 +321,13 @@ pub fn parse_json(tree: Tree, source: Rope, uri: Url, timestamp: Instant) -> Con source, } } - -fn json_path<'a>(mut node: Node, rope: &'a Rope) -> Vec> { +//find the path of the object containing node(ignores arrays) +fn json_path<'a>(mut node: Node, rope: &'a Rope) -> Vec { let mut ctx = Vec::new(); while let Some(p) = node.parent() { if node.kind() == "object" && p.kind() == "pair" { if let Some(key) = p.child_by_field_name("key").and_then(|k| k.named_child(0)) { - ctx.push(rope.slice(key.byte_range()).into()) + ctx.push(rope.slice(key.byte_range()).to_string().replace(r#"\"""#,"") ) } } node = p; @@ -313,7 +335,7 @@ fn json_path<'a>(mut node: Node, rope: &'a Rope) -> Vec(tree: &'a Tree, pos: &Position, source: &Rope) -> Option> { let offset = byte_offset(pos, source); let mut node = tree @@ -342,19 +364,19 @@ fn find_selected_json_key<'a>( selected_json_object(tree, pos, source).and_then(|obj| find_json_key(obj, source, key)) } -//Try to extract the selected json value under KEY, +//Try to extract the json value under key from node, fn find_json_key<'a>(mut root: Node<'a>, source: &Rope, key: &[Ustr]) -> Option> { for k in key { let mut cursor = root.walk(); if cursor.goto_first_child() { loop { if let Some(name) = cursor.node().child_by_field_name("key") { - info!("found key {:?}", name); + if source.slice_raw(name.named_child(0)?.byte_range()) == k.as_str() { root = cursor.node().child_by_field_name("value")?; - info!("set val {:?}", name); + break; } } @@ -391,6 +413,7 @@ impl Overlaps for Span { } } } +//We allow for ruder fn estimate_json_item(pos: &Position, source: &Rope) -> Option { use lazy_static::lazy_static; use regex::Regex; @@ -403,11 +426,11 @@ fn estimate_json_item(pos: &Position, source: &Rope) -> Option { let slice: std::borrow::Cow<'_, _> = source.line(line).into(); let start_byte = source.line_to_byte(line); let pos_byte = byte_offset(pos, source) - start_byte; - info!("estimating json item in {}", slice); + RE.captures(&slice) .iter() .find_map(|cap| { - info!("Cap: {:#?} ", cap); + match (cap.get(1), cap.get(2)) { (Some(key), Some(val)) => { @@ -437,7 +460,6 @@ fn estimate_json_item(pos: &Position, source: &Rope) -> Option { static ref RE: Regex = Regex::new(r#""((?:[^"\\]|\\.)*)""#).unwrap(); }; - info!("no normal matches"); RE.captures(&slice).iter().find_map(|cap| { info!("Cap: {:#?} ", cap); @@ -458,8 +480,7 @@ fn estimate_json_item(pos: &Position, source: &Rope) -> Option { .chars() .all(|c| c.is_alphanumeric() || c.is_whitespace() || c == '.') { - info!("{slice}"); - info!("clean line"); + let start = slice .char_indices() .take_while(|(_, c)| c.is_whitespace()) @@ -474,7 +495,7 @@ fn estimate_json_item(pos: &Position, source: &Rope) -> Option { .unwrap_or_default() .0 + start; - info!("P: {} {} {}", start, last, pos_byte); + if (start..last + 1).contains(&pos_byte) { Some(JSONItem::FreeKey(offset(start..last + 1, start_byte))) @@ -490,10 +511,10 @@ fn estimate_json_item(pos: &Position, source: &Rope) -> Option { } fn parse_json_key(text: &Rope, key: Span) -> Path { //TODO this does not handle escaped strings with dots inside - //decoding them is not determinstic so we should simply frobid them + //decoding them is not deterministic so we should simply forbid them //or use a special token let text_raw = text.slice(key.clone()).to_string().replace('\\', ""); - info!("{text_raw}"); + text_raw .split('.') .filter(|i| i.len() > 0) @@ -511,13 +532,13 @@ pub fn estimate_env_json<'a>( tree: &Tree, source: &'a Rope, pos: &Position, -) -> Option<(CompletionEnv, Vec>)> { +) -> Option<(CompletionEnv, Vec)> { let offset = byte_offset(pos, source); let node = tree .root_node() .named_descendant_for_byte_range(offset, offset + 1)?; let path = json_path(node, source); - info!("path {:?}", path); + if path.len() >= 1 && path[0] == "config" { Some((CompletionEnv::ConfigEntryKey, path)) } else if path.len() <= 1 { @@ -535,7 +556,7 @@ pub fn completion_query(source: &Rope, tree: &Tree, src_pos: &Position) -> Optio let char = char_offset(&pos, source); let ctx = estimate_json_item(&pos, source); - info!("{:#?}", ctx); + match ctx? { JSONItem::Key { key, .. } => { let path = parse_json_key(source, key.clone()); @@ -543,15 +564,18 @@ pub fn completion_query(source: &Rope, tree: &Tree, src_pos: &Position) -> Optio let prefix: Vec = outer_path .iter() .skip(1) - .flat_map(|i| i.split(".").map(|i| i.replace('\\', "").into())) - .chain(path.names[0..path.len().saturating_sub(1)].iter().cloned()) + .flat_map(|i| i.split(".").map(|i| i.replace(r#"\""#, "").into())) + .chain(path.names.iter().cloned()) .filter(|i| !i.is_empty()) .collect(); + info!("path:{path:#?}"); + info!("prefix:{prefix:#?}"); + info!("char:{}",source.char(char)); if source.char(char) == '.' { Some(CompletionQuery { offset: CompletionOffset::Dot, env, - format: CompletionFormater::JSONKey { + format: CompletionFormatter::JSONKey { postfix_range: tower_lsp::lsp_types::Range { start: src_pos.clone(), end: src_pos.clone(), @@ -562,55 +586,65 @@ pub fn completion_query(source: &Rope, tree: &Tree, src_pos: &Position) -> Optio }) } else { Some(CompletionQuery { - offset: CompletionOffset::Continous, + offset: CompletionOffset::Continuous, env, - format: CompletionFormater::JSONKey { + format: CompletionFormatter::JSONKey { postfix_range: lsp_range( path.spans.last().cloned().unwrap_or(key), source, )?, }, - prefix, + prefix:prefix[0..prefix.len().saturating_sub(1)].to_vec(), postfix: path.names.last().map(|s| s.as_str()).unwrap_or("").into(), }) } } JSONItem::FreeKey(key) => { - info!(" free {:?}", key); let path = parse_json_key(source, key.clone()); - info!("{path:?}"); let (env, outer_path) = estimate_env_json(&path.names, tree, source, &pos)?; let prefix: Vec = outer_path .iter() .skip(1) .flat_map(|i| i.split(".").map(|i| i.replace('\\', "").into())) - .chain(path.names[0..path.len().saturating_sub(1)].iter().cloned()) + .chain(path.names.iter().cloned()) .filter(|i| !i.is_empty()) .collect(); if source.char(char) == '.' { Some(CompletionQuery { offset: CompletionOffset::Dot, env, - format: CompletionFormater::JSONKey { + format: CompletionFormatter::FreeJSONKey { postfix_range: tower_lsp::lsp_types::Range { start: src_pos.clone(), end: src_pos.clone(), }, + key_start:if path.len()>0{ + let start = lsp_position( path.spans[0].start,source).clone().unwrap(); + Some(Range{start:start.clone(),end:start}) + }else{ + None + } }, prefix, postfix: CompactString::new_inline(""), }) } else { Some(CompletionQuery { - offset: CompletionOffset::Continous, + offset: CompletionOffset::Continuous, env, - format: CompletionFormater::JSONKey { + format: CompletionFormatter::FreeJSONKey { postfix_range: lsp_range( path.spans.last().cloned().unwrap_or(key), source, )?, + key_start:if path.len()>1{ + let start = lsp_position( path.spans[0].start,source).clone().unwrap(); + Some(Range{start:start.clone(),end:start}) + }else{ + None + } }, - prefix, + prefix:prefix[0..prefix.len().saturating_sub(1)].to_vec(), postfix: path.names.last().map(|s| s.as_str()).unwrap_or("").into(), }) } @@ -628,11 +662,10 @@ pub fn find_file_id( find_selected_json_key(tree, pos, source, &["file".into()]).and_then(|n| { if n.kind() == "string" { n.named_child(0).and_then(|base| { - info!("JSON base is {:?}", base); let mut dir = uri.to_file_path().ok()?.parent()?.to_path_buf(); dir.push(&*source.slice_raw(base.byte_range())); let id = FileID::new(Url::from_file_path(dir).unwrap().as_str()); - if root.containes_id(id) { + if root.contains_id(id) { Some(id) } else { None diff --git a/uvls/src/definition.rs b/uvls/src/definition.rs deleted file mode 100644 index 2d1e695f..00000000 --- a/uvls/src/definition.rs +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/uvls/src/inlays.rs b/uvls/src/inlays.rs index be40df3a..ee88e374 100644 --- a/uvls/src/inlays.rs +++ b/uvls/src/inlays.rs @@ -16,11 +16,13 @@ use tower_lsp::Client; #[derive(PartialEq, Debug, Clone, Copy)] pub enum InlaySource { None, - File(FileID), - Web(u64), + File(FileID),//Inlays come from a config file + Web(u64),//Inlays come from some web instance } -//Inlays are managed as a global token state, there can only be 1 inlay source to keep things simple, -//inalays are computed asynchronously. Both configurations and webview can provide them as a SMT-Model +//Inlays are managed as a global token state, +//there can only be 1 inlay source to keep things simple, +//inlays are computed asynchronously. Both configurations +//and webview can provide them as a SMT-Model #[derive(Clone)] pub struct InlayHandler { source: Arc>, @@ -42,7 +44,7 @@ impl InlayHandler { *self.source.lock() = source; let _ = self.tx.send(InlayEvent::SetSource).await; } - //publsich if source is active + //publish if source is active pub async fn maybe_publish Arc>( &self, source: InlaySource, @@ -83,13 +85,13 @@ enum InlayEvent { SetSource, } fn generate(model: &OwnedSMTModel, id: FileID, range: Span) -> Option> { - if !model.modul.ok { + if !model.module.ok { return None; } - model.modul.files.get(&id).map(|doc| { + model.module.files.get(&id).map(|doc| { let doc = &doc.content; model - .modul + .module .instances() .filter(|(_, i)| doc.id == i.id) .flat_map(|(m, _)| match &model.model { @@ -99,7 +101,7 @@ fn generate(model: &OwnedSMTModel, id: FileID, range: Span) -> Option Option reasons .iter() .filter_map(|AssertInfo(sym, _)| { - if id == model.modul.file(sym.instance).id + if id == model.module.file(sym.instance).id && range.contains(&doc.span(sym.sym).unwrap().start) && m == sym.instance { @@ -176,7 +178,7 @@ async fn inlay_handler(mut rx: mpsc::Receiver, client: Client) -> Re } latest = timestamp; if initial { - let file = model.modul.file(InstanceID(0)); + let file = model.module.file(InstanceID(0)); let _ = client .show_document(ShowDocumentParams { uri: file.uri.clone(), diff --git a/uvls/src/interactive.rs b/uvls/src/interactive.rs deleted file mode 100644 index 17dbe65e..00000000 --- a/uvls/src/interactive.rs +++ /dev/null @@ -1,248 +0,0 @@ -use crate::ast::*; -use crate::{ - semantic::RootSymbol, - smt::{self, Binding, SmtModel}, -}; -use hashbrown::HashMap; -use serde::{Deserialize, Serialize}; -use std::sync::Arc; -use tokio::{ - select, spawn, - sync::{mpsc, oneshot}, -}; -use tokio_util::sync::CancellationToken; -use tower_lsp::lsp_types::*; -use ustr::Ustr; - -use crate::semantic::Context; - -#[derive(Deserialize, Debug)] -#[serde(untagged)] -pub enum ValueConfig { - Number(f64), - Bool(bool), -} -#[derive(Deserialize, Debug)] -pub struct FileConfig { - selections: Vec<(String, ValueConfig)>, -} -#[derive(Deserialize, Debug)] -pub struct Config { - files: Vec<(Url, FileConfig)>, - base_file: Url, - timestamp: String, -} - -#[derive(Deserialize, Debug)] -pub struct OpenSessionParams { - initial_config: Config, - base_model: Url, -} -#[derive(Serialize, Debug)] -#[serde(tag = "type")] -pub enum ValueInfo { - Feature { - value: bool, - fixed: bool, - unsat: bool, - }, - Attribute { - value: f64, - start: f64, - end: f64, - unsat: bool, - }, -} -#[derive(Serialize, Debug)] -pub struct ValueState { - name: Ustr, - range: Range, - info: ValueInfo, - children: Vec, -} - -#[derive(Serialize, Debug)] -pub struct FileState { - uri: Url, - content: Vec, -} - -#[derive(Serialize, Debug)] -pub struct State { - files: Vec, - timestamp: String, - info: String, -} - -#[derive(Serialize, Debug)] -pub struct Response { - model: State, - session: String, -} - -use std::error; -type IResult = std::result::Result>; -pub enum Message { - Update( - Config, - oneshot::Sender>, - Option, - ), - Close(String), -} -pub fn config_to_sym( - conf: Config, - ctx: &Binding, -) -> Result<(HashMap, HashMap)> { - let mut features = HashMap::new(); - let mut attribs = HashMap::new(); - for (uri, conf) in conf.files.iter() { - if let Some(file) = ctx.root().file_by_uri(uri){ - let file_id = ctx.root().file_id(uri).unwrap(); - for (path, val) in conf.selections.iter().map(|(path, val)| { - ( - path.split(".").map(|i| Ustr::from(i)).collect::>(), - val, - ) - }) { - if let Some(sym) = file - .lookup(Symbol::Root, &path, |sym| { - matches!( - sym, - Symbol::Root | Symbol::Feature(..) | Symbol::Attribute(..) - ) - }) - .next() - { - match (sym,val){ - (Symbol::Attribute(..),ValueConfig::Number(num))=>{attribs.insert(RootSymbol { file: file_id,sym }, *num);}, - (Symbol::Feature(..),ValueConfig::Bool(num))=>{features.insert(RootSymbol { file: file_id,sym }, *num);}, - _=>return - } - - } - //write!(&mut out,"",ctx.bind(sym,file_id).unwrap()); - } - } - } - Ok((features,attribs)) - - -} -pub fn define_attribs( - file: &AstDocument, - ctx: &Binding, - redefine_attribs: &HashMap, -)->Option { - let out = String::new(); - for m in ctx.members(){ - let file = ctx.root().file(m); - for i in file.all_attributes(){ - match file.value(i).unwrap(){ - Value::Number(mut num)=>{ - if let Some(rnum) = redefine_attribs.get(&RootSymbol{file:m,sym:i}){ - num = *rnum; - } - write!(out,"(assert (! (= {} (ite {} {:?} 0.0) )named c{}))") - - } - _=>{ - - } - - } - - } - - } - Some(out) - -} - -pub async fn create_model( - conf: Config, - session: String, - timestamp: String, - ctx: &Context, -) -> IResult<(SmtModel, Response, u64)> { - let root = ctx - .snapshot_sync(&conf.base_file, ctx.latest_timestamp(&conf.base_file).await) - .await - .ok_or_else(|| "shutdown")?; - let base_id = root.file_id(&conf.base_file).ok_or("internal error")?; - let members = root.fs().recursive_imports(base_id); - let binding = Binding::new(&root, &members); - let model_src = smt::smtlib_model(&binding, false) - .await - .ok_or("failed to create model source")?; - let cancel = CancellationToken::new(); - let mut model = SmtModel::new(model_src, &cancel).await?; - if !model.check_sat(&cancel).await? { - Ok(( - model, - Response { - session, - model: State { - files: vec![], - timestamp, - info: "the underlying model is inconsistent".into(), - }, - }, - root.revision(), - )) - } else { - Err("")? - } -} -pub async fn session( - mut rx: mpsc::Receiver, - ctx: Arc, - id: String, - initial_conf: Config, - initial_res: oneshot::Sender>, -) { - loop { - let msg = select! { - _=ctx.shutdown.cancelled()=>break, - Some(msg) = rx.recv()=>msg, - else => break - }; - match msg { - Message::Update(conf, res, ..) => {} - Message::Close(..) => {} - } - } -} - -pub async fn handler(mut rx: mpsc::Receiver, ctx: Arc) { - let mut sessions = HashMap::new(); - let mut counter: u64 = 0; - loop { - let msg = select! { - _=ctx.shutdown.cancelled()=>break, - Some(msg) = rx.recv()=>msg, - else => break - }; - match msg { - Message::Update(conf, res, None) => { - let (tx, rx) = mpsc::channel(32); - let session_id = format!("s{counter}"); - counter += 1; - sessions.insert(session_id.clone(), tx); - let _ = spawn(session(rx, ctx.clone(), session_id, conf, res)); - } - Message::Update(conf, res, Some(id)) => { - if let Some(tx) = sessions.get(&id) { - let _ = tx.send(Message::Update(conf, res, Some(id))).await; - } else { - let _ = res.send(Response{}); - } - } - Message::Close(id) => { - if let Some(tx) = sessions.get(&id) { - let _ = tx.send(Message::Close(id)).await; - } - } - } - } -} diff --git a/uvls/src/module.rs b/uvls/src/module.rs index 535b9456..cec60dad 100644 --- a/uvls/src/module.rs +++ b/uvls/src/module.rs @@ -17,7 +17,7 @@ impl InstanceID { } } } - +//A ast symbole within a module context #[derive(Hash, PartialEq, Eq, Debug, Clone, Copy)] pub struct ModuleSymbol { pub instance: InstanceID, @@ -79,58 +79,15 @@ fn iterate_instances<'a>( None }) } -#[derive(Debug, Clone)] -pub struct ConfigModule { - pub module: Arc, - pub values: HashMap, - pub source_map: HashMap, -} -impl ConfigModule { - fn serialize_rec(&self, path: &[Ustr], i: InstanceID) -> ConfigEntry { - let file = self.file(i); - let mut entries = Vec::new(); - for im in file.all_imports() { - let entry = self.serialize_rec(file.import_prefix(im), self.get_instance(i, im)); - if !entry.is_empty() { - entries.push(entry); - } - } - file.visit_named_children(Symbol::Root, false, |sym, prefix| match sym { - Symbol::Feature(_) | Symbol::Attribute(_) => { - if let Some(config) = self.values.get(&i.sym(sym)) { - entries.push(ConfigEntry::Value( - Path { - names: prefix.to_vec(), - spans: Vec::new(), - }, - config.clone(), - )) - } - true - } - _ => false, - }); - ConfigEntry::Import( - Path { - names: path.to_vec(), - spans: Vec::new(), - }, - entries, - ) - } - pub fn serialize(&self) -> Vec { - let ConfigEntry::Import(_,v) = self.serialize_rec(&[],InstanceID(0)) else {unreachable!()}; - v - } -} -impl std::ops::Deref for ConfigModule { - type Target = Module; - fn deref(&self) -> &Self::Target { - &self.module - } -} + //An actual instance of a root file with all subfiles +//A module is basically a depth first iteration of all features and recusive sub file contents +//Each import statement creates a new instance of some ast file. So features and attributes can +//exist multiple times in diffrent instances. This struct allows for easy instance iteration and +//resolution. Since references in diffrent instances have diffrent resolutions, we currently +//reresolve references to non local symbols, TODO this can be avoided using a static instance +//encoding scheme?. #[derive(Debug)] pub struct Module { instance_files: Vec, @@ -307,3 +264,54 @@ impl Module { .map(|(origin, i, file, depth)| (origin, i, &*self.files[&file].content, depth)) } } +//Configuration with a module and resolved configuration symboles +#[derive(Debug, Clone)] +pub struct ConfigModule { + pub module: Arc, + pub values: HashMap, + pub source_map: HashMap, +} +impl ConfigModule { + fn serialize_rec(&self, path: &[Ustr], i: InstanceID) -> ConfigEntry { + let file = self.file(i); + let mut entries = Vec::new(); + for im in file.all_imports() { + let entry = self.serialize_rec(file.import_prefix(im), self.get_instance(i, im)); + if !entry.is_empty() { + entries.push(entry); + } + } + file.visit_named_children(Symbol::Root, false, |sym, prefix| match sym { + Symbol::Feature(_) | Symbol::Attribute(_) => { + if let Some(config) = self.values.get(&i.sym(sym)) { + entries.push(ConfigEntry::Value( + Path { + names: prefix.to_vec(), + spans: Vec::new(), + }, + config.clone(), + )) + } + true + } + _ => false, + }); + ConfigEntry::Import( + Path { + names: path.to_vec(), + spans: Vec::new(), + }, + entries, + ) + } + pub fn serialize(&self) -> Vec { + let ConfigEntry::Import(_,v) = self.serialize_rec(&[],InstanceID(0)) else {unreachable!()}; + v + } +} +impl std::ops::Deref for ConfigModule { + type Target = Module; + fn deref(&self) -> &Self::Target { + &self.module + } +} diff --git a/uvls/src/pipeline.rs b/uvls/src/pipeline.rs index 830ba419..3f192207 100644 --- a/uvls/src/pipeline.rs +++ b/uvls/src/pipeline.rs @@ -29,7 +29,7 @@ use util::Result; //The parsing frontend //To allow for more nimble and robust parsing, we use 2 stage process to parse 2 different syntax //trees with different grammers: -// - Source code is initally parsed with a very relaxed UVL tree-sitter grammar. This results in +// - Source code is initally parsed with a very relaxed UVL tree-sitter grammar. This results in a // loose syntax tree of UVL codefragments. We call this tree the 'green tree' // it's used for all syntax analysis. Its also very cheap to parse and incremental so it can be // parsed on every keystroke for syntax highlighting and completion context information. @@ -40,13 +40,15 @@ use util::Result; // from green to red tree very specific syntax errors are possible and forwarded to the user. // All red trees are lated linked into a single model (the Root Graph) asynchronously. //Green Trees are stored as Drafts while red trees are stored as an AST-ECS like structure +//See https://github.com/rust-lang/rust-analyzer/blob/master/docs/dev/syntax.md for the insperation +//of this method. enum DraftMsg { Delete(Instant), Update(DidChangeTextDocumentParams, Instant), Snapshot(oneshot::Sender), - Shutdown, + Shutdown,//Not really needed, TODO remove this } - +//Turn a treesitter-tree into a useabel rust structure and send it to the linker async fn make_red_tree(draft: Draft, uri: Url, tx_link: mpsc::Sender) { info!("update red tree {uri}"); match draft { @@ -167,12 +169,13 @@ async fn link_handler( tx_cache: watch::Sender>, tx_err: mpsc::Sender, ) { + //First we gather changes toavoid redundant recomputation let mut latest_configs: HashMap> = HashMap::new(); let mut latest_ast: HashMap> = HashMap::new(); let mut timestamps: HashMap = HashMap::new(); let (tx_execute, rx_execute) = watch::channel((latest_ast.clone(), latest_configs.clone(), 0)); let mut dirty = false; - let mut revision = 0; + let mut revision = 0;//Each change is one revision info!("started link handler"); spawn(link_executor(rx_execute, tx_cache, tx_err)); let mut timer = tokio::time::interval(tokio::time::Duration::from_millis(100)); @@ -220,7 +223,7 @@ async fn link_handler( } } - _=timer.tick()=>{ + _=timer.tick()=>{//every 100ms relink if there are changes if dirty{ info!("link prepare"); dirty=false; @@ -258,6 +261,8 @@ async fn link_handler( errors: HashMap::new(), }; let old = tx_cache.borrow().cache().clone(); + + //link files incrementally let root = RootGraph::new(&ast, &configs, revison, &old, &mut err, &mut timestamps); let _ = tx_cache.send(Arc::new(root)); @@ -431,7 +436,7 @@ impl AsyncPipeline { loop { { let state = rx.borrow_and_update(); - if state.containes(uri) { + if state.contains(uri) { info!("waited {:?} for root", time.elapsed()); return Ok(state.clone()); } diff --git a/uvls/src/semantic.rs b/uvls/src/semantic.rs index a1bb09b5..ced7b0dd 100644 --- a/uvls/src/semantic.rs +++ b/uvls/src/semantic.rs @@ -80,15 +80,15 @@ pub struct RootGraph { pub configs: ConfigFiles, } impl RootGraph { - pub fn containes(&self, uri: &Url) -> bool { - self.containes_id(FileID::new(uri.as_str())) + pub fn contains(&self, uri: &Url) -> bool { + self.contains_id(FileID::new(uri.as_str())) } pub fn timestamp(&self, uri: &Url) -> Option { self.config_by_uri(uri) .map(|i| i.timestamp) .or(self.file_by_uri(uri).map(|i| i.timestamp)) } - pub fn containes_id(&self, id: FileID) -> bool { + pub fn contains_id(&self, id: FileID) -> bool { self.files.contains_key(&id) || self.configs.contains_key(&id) } pub fn try_file(&self, id: FileID) -> Option<&AstDocument> { diff --git a/uvls/src/smt.rs b/uvls/src/smt.rs index f9f579de..7f1b3b77 100644 --- a/uvls/src/smt.rs +++ b/uvls/src/smt.rs @@ -31,15 +31,15 @@ use tokio::{ use tokio_util::sync::CancellationToken; use tower_lsp::lsp_types::*; //SMT semantic analysis with Z3, communication with the solver happens over stdio and SMT-LIB2. -//While the performance is worse than linking with Z3, we are solver independent and dont have to interact +//While the performance is worse than linking with Z3, we are solver independent and don't have to interact //with any C-Bindings. UVL is translated directly into SMT-LIB, both attributes and features are treated as -//free variables. The rest is mostly encoded in named asserts, this allows to get a accurat unsat core. -//Eg. each attribute is ristrcited with an assert that allows it to either be its defined value or 0 depending +//free variables. The rest is mostly encoded in named asserts, this allows to get a accurate unsat core. +//Eg. each attribute is restricted with an assert that allows it to either be its defined value or 0 depending //on the parent feature value. //Using functions might be more efficient, but this way we can reconfigure and detect if //an attribute value contributes to the unsat core. //Variables are named as v{n} where n is an index into a lookup table of UVL ModuleSymbols -//Asserts are encoded similarly as a{n} where n is and index into a list of nameing information +//Asserts are encoded similarly as a{n} where n is and index into a list of naming information //that links uvl expression to asserts. pub struct SmtSolver { proc: Child, @@ -172,7 +172,7 @@ impl Display for AssertName { #[derive(Debug, Clone)] pub struct AssertInfo(pub ModuleSymbol, pub AssertName); struct SMTModule { - //maped to each named assert + //mapped to each named assert asserts: Vec, //a map form a ModuleSymbol to a variable index inside SMT-LIB sym2var: IndexSet, @@ -261,7 +261,7 @@ impl SMTModule { } } struct SMTBuilder<'a> { - //Eeach variable is encoded as v{n} where n is an index into sym2var using an IndexSet + //Each variable is encoded as v{n} where n is an index into sym2var using an IndexSet //enables us to lookup a variable both by index and ModuleSymbol sym2var: IndexSet, assert: Vec, @@ -312,7 +312,7 @@ impl<'a> SMTBuilder<'a> { } } -//We need special formating for SMT, so we reimplement display +//We need special formatting for SMT, so we reimplement display struct SmtConfigValue<'a>(&'a ConfigValue); impl<'a> Display for SmtConfigValue<'a> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { @@ -609,7 +609,7 @@ fn create_module<'a>( let _ = write!(out, " :named a{name}))\n"); } } - //info!("{out}"); + info!("{out}"); ( out, SMTModule { @@ -637,7 +637,7 @@ pub enum SMTModel { } pub struct OwnedSMTModel { pub model: SMTModel, - pub modul: Arc, + pub module: Arc, } impl Default for SMTModel { fn default() -> Self { @@ -887,7 +887,7 @@ async fn check_config( .maybe_publish(InlaySource::File(k), Instant::now(), || { Arc::new(OwnedSMTModel { model: model.clone(), - modul: module.module.clone(), + module: module.module.clone(), }) }) .await; @@ -948,7 +948,7 @@ pub async fn check_handler( .send_notification::( ShowMessageParams { typ: MessageType::INFO, - message: "UVLS: Z3 was not found on youre system. It is required for semantic analysis".into(), + message: "UVLS: Z3 was not found on you're system. It is required for semantic analysis".into(), }, ) .await; @@ -987,7 +987,7 @@ pub async fn web_view_handler( .maybe_publish(inlay_source, Instant::now(), || { Arc::new(OwnedSMTModel { model: model.clone(), - modul: module.module.clone(), + module: module.module.clone(), }) }) .await; diff --git a/uvls/src/webview.rs b/uvls/src/webview.rs index 15062136..0955b8ea 100644 --- a/uvls/src/webview.rs +++ b/uvls/src/webview.rs @@ -22,7 +22,7 @@ use tokio::{ }; use tokio_util::sync::CancellationToken; use ustr::Ustr; -/* This web interface allow simple configuration of uvl models within the sever. +/* This web interface allows simple configuration of uvl models within the sever. The GUI is written as a html-over-wire liveview, via dioxus. The liveview can then be accessed directly in vs-code or the native browser. Each server instance has its own localhost TCP port {p}, configuration is possible over two diffrent entries: @@ -385,7 +385,7 @@ async fn ui_sync( info!("dirty"); tx_sync.send(UIAction::TreeDirty).await?; let root =pipeline.sync_root_global().await?; - if root.containes_id(target){ + if root.contains_id(target){ tx_sync .send(UIAction::UpdateRoot( @@ -639,7 +639,7 @@ pub async fn ui_main( AppInitialParams::Create(path) => { let root = pipeline.sync_root_global().await?; let id = FileID::new(format!("file:///{path}").as_str()); - if root.containes_id(id) { + if root.contains_id(id) { let c = ConfigSource { root: id, module: ConfigModule {