diff --git a/Cargo.lock b/Cargo.lock index 63ebab37d..e5a351434 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2249,7 +2249,7 @@ dependencies = [ [[package]] name = "tree-sitter-preproc" -version = "0.16.0" +version = "0.17.0" dependencies = [ "cc", "tree-sitter 0.17.1", diff --git a/Cargo.toml b/Cargo.toml index a4cb1ff12..b60ec5960 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ termcolor = "^1.1" tree-sitter = "^0.17" tree-sitter-java = "^0.16" -tree-sitter-preproc = { path = "./tree-sitter-preproc", version = "^0.16" } +tree-sitter-preproc = { path = "./tree-sitter-preproc", version = "^0.17" } tree-sitter-ccomment = { path = "./tree-sitter-ccomment", version = "^0.17" } tree-sitter-mozcpp = { path = "./tree-sitter-mozcpp", version = "^0.16" } tree-sitter-mozjs = { path = "./tree-sitter-mozjs", version = "^0.16" } diff --git a/enums/Cargo.lock b/enums/Cargo.lock index a39b28c5a..539dae02f 100644 --- a/enums/Cargo.lock +++ b/enums/Cargo.lock @@ -543,7 +543,7 @@ dependencies = [ [[package]] name = "tree-sitter-preproc" -version = "0.16.0" +version = "0.17.0" dependencies = [ "cc", "tree-sitter 0.17.1", diff --git a/enums/Cargo.toml b/enums/Cargo.toml index c0124c4b8..14401a213 100644 --- a/enums/Cargo.toml +++ b/enums/Cargo.toml @@ -18,7 +18,7 @@ libc = "^0.2" tree-sitter = "^0.17" tree-sitter-java = "^0.16" -tree-sitter-preproc = { path = "../tree-sitter-preproc" } +tree-sitter-preproc = { path = "../tree-sitter-preproc", version = "^0.17" } tree-sitter-ccomment = { path = "../tree-sitter-ccomment", version = "^0.17" } tree-sitter-mozcpp = { path = "../tree-sitter-mozcpp" } tree-sitter-mozjs = { path = "../tree-sitter-mozjs" } diff --git a/tree-sitter-preproc/Cargo.toml b/tree-sitter-preproc/Cargo.toml index cdc835919..1ba09f57f 100644 --- a/tree-sitter-preproc/Cargo.toml +++ b/tree-sitter-preproc/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tree-sitter-preproc" description = "Preproc grammar for the tree-sitter parsing library" -version = "0.16.0" +version = "0.17.0" authors = ["Calixte Denizet "] license = "MIT" readme = "bindings/rust/README.md" diff --git a/tree-sitter-preproc/package.json b/tree-sitter-preproc/package.json index 192504e8a..c6b0b3a39 100644 --- a/tree-sitter-preproc/package.json +++ b/tree-sitter-preproc/package.json @@ -1,24 +1,25 @@ { - "name": "tree-sitter-c", - "version": "0.15.2", - "description": "C grammar for node-tree-sitter", + "name": "tree-sitter-preproc", + "version": "0.17.0", + "description": "Preproc grammar for node-tree-sitter", "main": "index.js", "keywords": [ "parser", "lexer" ], - "author": "Max Brunsfeld", + "author": "Calixte Denizet", "license": "MIT", "dependencies": { - "nan": "^2.10.0" + "nan": "^2.14.2" }, "devDependencies": { - "tree-sitter-cli": "^0.15.5" + "tree-sitter-cli": "^0.17.3" }, "scripts": { "build": "tree-sitter generate && node-gyp build", "test": "tree-sitter test && tree-sitter parse examples/* --quiet --time", - "test-windows": "tree-sitter test" + "test-windows": "tree-sitter test", + "install": "node-gyp rebuild" }, "tree-sitter": [ { @@ -27,5 +28,9 @@ "c" ] } - ] + ], + "gypfile": true, + "directories": { + "example": "examples" + } } diff --git a/tree-sitter-preproc/src/grammar.json b/tree-sitter-preproc/src/grammar.json index be987faaf..8c8229b53 100644 --- a/tree-sitter-preproc/src/grammar.json +++ b/tree-sitter-preproc/src/grammar.json @@ -351,7 +351,7 @@ }, { "type": "PATTERN", - "value": "[^*]*\\*+([^\\/*][^*]*\\*+)*" + "value": "[^*]*\\*+([^/*][^*]*\\*+)*" }, { "type": "STRING", diff --git a/tree-sitter-preproc/src/node-types.json b/tree-sitter-preproc/src/node-types.json index 1ee1b2e60..6a1253d14 100644 --- a/tree-sitter-preproc/src/node-types.json +++ b/tree-sitter-preproc/src/node-types.json @@ -364,5 +364,9 @@ { "type": "preproc_line", "named": true + }, + { + "type": "raw_string_literal", + "named": true } ] \ No newline at end of file diff --git a/tree-sitter-preproc/src/parser.c b/tree-sitter-preproc/src/parser.c index 100d25ee6..f0bb7c58b 100644 --- a/tree-sitter-preproc/src/parser.c +++ b/tree-sitter-preproc/src/parser.c @@ -5,7 +5,7 @@ #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif -#define LANGUAGE_VERSION 11 +#define LANGUAGE_VERSION 12 #define STATE_COUNT 121 #define LARGE_STATE_COUNT 16 #define SYMBOL_COUNT 36 @@ -282,6 +282,10 @@ static TSSymbol ts_alias_sequences[1][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, }; +static uint16_t ts_non_terminal_alias_map[] = { + 0, +}; + static bool ts_lex(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); @@ -2599,197 +2603,200 @@ static uint32_t ts_small_parse_table_map[] = { }; static TSParseActionEntry ts_parse_actions[] = { - [0] = {.count = 0, .reusable = false}, - [1] = {.count = 1, .reusable = false}, RECOVER(), - [3] = {.count = 1, .reusable = true}, REDUCE(sym_translation_unit, 0), - [5] = {.count = 1, .reusable = false}, SHIFT(13), - [7] = {.count = 1, .reusable = false}, SHIFT(66), - [9] = {.count = 1, .reusable = false}, SHIFT(96), - [11] = {.count = 1, .reusable = false}, SHIFT(4), - [13] = {.count = 1, .reusable = false}, SHIFT(93), - [15] = {.count = 1, .reusable = false}, SHIFT(81), - [17] = {.count = 1, .reusable = false}, SHIFT(43), - [19] = {.count = 1, .reusable = false}, SHIFT(52), - [21] = {.count = 1, .reusable = true}, SHIFT(13), - [23] = {.count = 1, .reusable = false}, SHIFT(8), - [25] = {.count = 1, .reusable = false}, SHIFT(65), - [27] = {.count = 1, .reusable = false}, SHIFT(117), - [29] = {.count = 1, .reusable = false}, SHIFT(6), - [31] = {.count = 1, .reusable = false}, SHIFT(47), - [33] = {.count = 1, .reusable = false}, SHIFT(10), - [35] = {.count = 1, .reusable = false}, SHIFT(11), - [37] = {.count = 1, .reusable = false}, SHIFT(118), - [39] = {.count = 1, .reusable = false}, SHIFT(79), - [41] = {.count = 1, .reusable = false}, SHIFT(27), - [43] = {.count = 1, .reusable = false}, SHIFT(26), - [45] = {.count = 1, .reusable = true}, SHIFT(8), - [47] = {.count = 1, .reusable = false}, SHIFT(2), - [49] = {.count = 1, .reusable = false}, SHIFT(32), - [51] = {.count = 1, .reusable = true}, SHIFT(2), - [53] = {.count = 1, .reusable = false}, SHIFT(7), - [55] = {.count = 1, .reusable = false}, SHIFT(55), - [57] = {.count = 1, .reusable = true}, SHIFT(7), - [59] = {.count = 1, .reusable = false}, SHIFT(22), - [61] = {.count = 1, .reusable = false}, SHIFT(5), - [63] = {.count = 1, .reusable = false}, SHIFT(24), - [65] = {.count = 1, .reusable = true}, SHIFT(5), - [67] = {.count = 1, .reusable = false}, SHIFT(31), - [69] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(8), - [72] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(65), - [75] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(117), - [78] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(6), - [81] = {.count = 1, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), - [83] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(118), - [86] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(79), - [89] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(27), - [92] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(26), - [95] = {.count = 2, .reusable = true}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(8), - [98] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_elif, 2), - [100] = {.count = 1, .reusable = false}, SHIFT(9), - [102] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_elif, 1), - [104] = {.count = 1, .reusable = true}, SHIFT(9), - [106] = {.count = 1, .reusable = false}, SHIFT(15), - [108] = {.count = 1, .reusable = false}, SHIFT(67), - [110] = {.count = 1, .reusable = false}, SHIFT(119), - [112] = {.count = 1, .reusable = false}, SHIFT(3), - [114] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_else, 1), - [116] = {.count = 1, .reusable = false}, SHIFT(120), - [118] = {.count = 1, .reusable = false}, SHIFT(84), - [120] = {.count = 1, .reusable = false}, SHIFT(36), - [122] = {.count = 1, .reusable = false}, SHIFT(34), - [124] = {.count = 1, .reusable = true}, SHIFT(15), - [126] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(12), - [129] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(67), - [132] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(119), - [135] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(3), - [138] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(120), - [141] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(84), - [144] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(36), - [147] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(34), - [150] = {.count = 2, .reusable = true}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(12), - [153] = {.count = 1, .reusable = true}, REDUCE(sym_translation_unit, 1), - [155] = {.count = 1, .reusable = false}, SHIFT(14), - [157] = {.count = 1, .reusable = true}, SHIFT(14), - [159] = {.count = 1, .reusable = true}, REDUCE(aux_sym_translation_unit_repeat1, 2), - [161] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(14), - [164] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(66), - [167] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(96), - [170] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(4), - [173] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(93), - [176] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(81), - [179] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(43), - [182] = {.count = 2, .reusable = false}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(52), - [185] = {.count = 2, .reusable = true}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(14), - [188] = {.count = 1, .reusable = false}, SHIFT(12), - [190] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_else, 2), - [192] = {.count = 1, .reusable = true}, SHIFT(12), - [194] = {.count = 1, .reusable = false}, REDUCE(sym_define, 5), - [196] = {.count = 1, .reusable = true}, REDUCE(sym_define, 5), - [198] = {.count = 1, .reusable = false}, REDUCE(sym_undef, 5), - [200] = {.count = 1, .reusable = true}, REDUCE(sym_undef, 5), - [202] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_if, 4), - [204] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_if, 4), - [206] = {.count = 1, .reusable = false}, REDUCE(sym_define, 4), - [208] = {.count = 1, .reusable = true}, REDUCE(sym_define, 4), - [210] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_include, 4), - [212] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_include, 4), - [214] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_nothing, 3), - [216] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_nothing, 3), - [218] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_if, 3), - [220] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_if, 3), - [222] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_nothing, 2), - [224] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_nothing, 2), - [226] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_if, 2), - [228] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_if, 2), - [230] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_include, 2), - [232] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_include, 2), - [234] = {.count = 1, .reusable = false}, REDUCE(sym_char_literal, 1), - [236] = {.count = 1, .reusable = true}, REDUCE(sym_char_literal, 1), - [238] = {.count = 1, .reusable = false}, REDUCE(sym_string_literal, 1), - [240] = {.count = 1, .reusable = true}, REDUCE(sym_string_literal, 1), - [242] = {.count = 1, .reusable = false}, REDUCE(sym_undef, 4), - [244] = {.count = 1, .reusable = true}, REDUCE(sym_undef, 4), - [246] = {.count = 1, .reusable = false}, REDUCE(sym_preproc_if, 5), - [248] = {.count = 1, .reusable = true}, REDUCE(sym_preproc_if, 5), - [250] = {.count = 1, .reusable = true}, SHIFT(40), - [252] = {.count = 1, .reusable = true}, SHIFT(10), - [254] = {.count = 1, .reusable = true}, SHIFT(11), - [256] = {.count = 1, .reusable = true}, SHIFT(47), - [258] = {.count = 1, .reusable = true}, SHIFT(22), - [260] = {.count = 1, .reusable = true}, SHIFT(18), - [262] = {.count = 1, .reusable = true}, SHIFT(53), - [264] = {.count = 1, .reusable = true}, SHIFT(31), - [266] = {.count = 1, .reusable = true}, REDUCE(aux_sym_preproc_if_repeat1, 2), - [268] = {.count = 2, .reusable = true}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(10), - [271] = {.count = 1, .reusable = true}, SHIFT(25), - [273] = {.count = 1, .reusable = true}, SHIFT(107), - [275] = {.count = 1, .reusable = true}, SHIFT(27), - [277] = {.count = 1, .reusable = true}, SHIFT(39), - [279] = {.count = 1, .reusable = true}, SHIFT(108), - [281] = {.count = 1, .reusable = true}, SHIFT(43), - [283] = {.count = 1, .reusable = true}, SHIFT(33), - [285] = {.count = 1, .reusable = true}, SHIFT(112), - [287] = {.count = 1, .reusable = true}, SHIFT(36), - [289] = {.count = 1, .reusable = true}, SHIFT(69), - [291] = {.count = 1, .reusable = false}, SHIFT(94), - [293] = {.count = 1, .reusable = true}, SHIFT(73), - [295] = {.count = 1, .reusable = false}, SHIFT(87), - [297] = {.count = 1, .reusable = true}, SHIFT(86), - [299] = {.count = 1, .reusable = false}, SHIFT(104), - [301] = {.count = 1, .reusable = false}, SHIFT(35), - [303] = {.count = 1, .reusable = true}, SHIFT(74), - [305] = {.count = 1, .reusable = false}, SHIFT(114), - [307] = {.count = 2, .reusable = true}, REDUCE(aux_sym_define_repeat1, 2), SHIFT_REPEAT(73), - [310] = {.count = 1, .reusable = false}, REDUCE(aux_sym_define_repeat1, 2), - [312] = {.count = 1, .reusable = false}, SHIFT(89), - [314] = {.count = 1, .reusable = true}, SHIFT(85), - [316] = {.count = 1, .reusable = false}, SHIFT(111), - [318] = {.count = 1, .reusable = true}, SHIFT(82), - [320] = {.count = 1, .reusable = false}, SHIFT(103), - [322] = {.count = 1, .reusable = true}, SHIFT(80), - [324] = {.count = 1, .reusable = false}, SHIFT(100), - [326] = {.count = 1, .reusable = false}, SHIFT(30), - [328] = {.count = 1, .reusable = true}, SHIFT(83), - [330] = {.count = 1, .reusable = false}, SHIFT(23), - [332] = {.count = 1, .reusable = false}, SHIFT(88), - [334] = {.count = 1, .reusable = true}, SHIFT(71), - [336] = {.count = 1, .reusable = false}, SHIFT(50), - [338] = {.count = 1, .reusable = false}, SHIFT(106), - [340] = {.count = 1, .reusable = false}, SHIFT(21), - [342] = {.count = 1, .reusable = true}, SHIFT(78), - [344] = {.count = 1, .reusable = false}, SHIFT(41), - [346] = {.count = 1, .reusable = false}, SHIFT(115), - [348] = {.count = 1, .reusable = false}, SHIFT(91), - [350] = {.count = 1, .reusable = true}, SHIFT(16), - [352] = {.count = 1, .reusable = true}, SHIFT(56), - [354] = {.count = 1, .reusable = true}, SHIFT(46), - [356] = {.count = 1, .reusable = true}, SHIFT(29), - [358] = {.count = 1, .reusable = true}, SHIFT(17), - [360] = {.count = 1, .reusable = true}, SHIFT(72), - [362] = {.count = 1, .reusable = true}, SHIFT(19), - [364] = {.count = 1, .reusable = true}, SHIFT(75), - [366] = {.count = 1, .reusable = true}, SHIFT(20), - [368] = {.count = 1, .reusable = true}, SHIFT(49), - [370] = {.count = 1, .reusable = true}, SHIFT(51), - [372] = {.count = 1, .reusable = true}, ACCEPT_INPUT(), - [374] = {.count = 1, .reusable = true}, SHIFT(54), - [376] = {.count = 1, .reusable = true}, SHIFT(28), - [378] = {.count = 1, .reusable = true}, SHIFT(57), - [380] = {.count = 1, .reusable = true}, SHIFT(48), - [382] = {.count = 1, .reusable = true}, SHIFT(97), - [384] = {.count = 1, .reusable = true}, SHIFT(110), - [386] = {.count = 1, .reusable = true}, SHIFT(37), - [388] = {.count = 1, .reusable = true}, SHIFT(38), - [390] = {.count = 1, .reusable = true}, SHIFT(99), - [392] = {.count = 1, .reusable = true}, SHIFT(42), - [394] = {.count = 1, .reusable = true}, SHIFT(44), - [396] = {.count = 1, .reusable = true}, SHIFT(45), - [398] = {.count = 1, .reusable = true}, SHIFT(68), - [400] = {.count = 1, .reusable = true}, SHIFT(70), - [402] = {.count = 1, .reusable = true}, SHIFT(77), - [404] = {.count = 1, .reusable = true}, SHIFT(76), + [0] = {.entry = {.count = 0, .reusable = false}}, + [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), + [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 0), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(8), + [72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(65), + [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(117), + [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(6), + [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), + [83] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(118), + [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(79), + [89] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(27), + [92] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(26), + [95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(8), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 2), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 1), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), + [112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 1), + [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120), + [118] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), + [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(12), + [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(67), + [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(119), + [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(3), + [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(120), + [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(84), + [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(36), + [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(34), + [150] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(12), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 1), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), + [161] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(14), + [164] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(66), + [167] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(96), + [170] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(4), + [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(93), + [176] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(81), + [179] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(43), + [182] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(52), + [185] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(14), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 2), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_define, 5), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_define, 5), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_undef, 5), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_undef, 5), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 4), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 4), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_define, 4), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_define, 4), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_include, 4), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_include, 4), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_nothing, 3), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_nothing, 3), + [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 3), + [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 3), + [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_nothing, 2), + [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_nothing, 2), + [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 2), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 2), + [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_include, 2), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_include, 2), + [234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 1), + [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 1), + [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 1), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 1), + [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_undef, 4), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_undef, 4), + [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5), + [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), + [268] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(10), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), + [307] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_define_repeat1, 2), SHIFT_REPEAT(73), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_define_repeat1, 2), + [312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [324] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [330] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [332] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [336] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [338] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [340] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [346] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), + [348] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [372] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), }; +#ifdef __cplusplus +extern "C" { +#endif void *tree_sitter_preproc_external_scanner_create(void); void tree_sitter_preproc_external_scanner_destroy(void *); bool tree_sitter_preproc_external_scanner_scan(void *, TSLexer *, const bool *); @@ -2806,20 +2813,15 @@ extern const TSLanguage *tree_sitter_preproc(void) { .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, - .large_state_count = LARGE_STATE_COUNT, + .external_token_count = EXTERNAL_TOKEN_COUNT, + .symbol_names = ts_symbol_names, .symbol_metadata = ts_symbol_metadata, - .parse_table = (const unsigned short *)ts_parse_table, - .small_parse_table = (const uint16_t *)ts_small_parse_table, - .small_parse_table_map = (const uint32_t *)ts_small_parse_table_map, + .parse_table = (const uint16_t *)ts_parse_table, .parse_actions = ts_parse_actions, .lex_modes = ts_lex_modes, - .symbol_names = ts_symbol_names, - .public_symbol_map = ts_symbol_map, .alias_sequences = (const TSSymbol *)ts_alias_sequences, - .field_count = FIELD_COUNT, .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, .lex_fn = ts_lex, - .external_token_count = EXTERNAL_TOKEN_COUNT, .external_scanner = { (const bool *)ts_external_scanner_states, ts_external_scanner_symbol_map, @@ -2829,6 +2831,16 @@ extern const TSLanguage *tree_sitter_preproc(void) { tree_sitter_preproc_external_scanner_serialize, tree_sitter_preproc_external_scanner_deserialize, }, + .field_count = FIELD_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .small_parse_table = (const uint16_t *)ts_small_parse_table, + .small_parse_table_map = (const uint32_t *)ts_small_parse_table_map, + .public_symbol_map = ts_symbol_map, + .alias_map = ts_non_terminal_alias_map, + .state_count = STATE_COUNT, }; return &language; } +#ifdef __cplusplus +} +#endif diff --git a/tree-sitter-preproc/src/tree_sitter/parser.h b/tree-sitter-preproc/src/tree_sitter/parser.h index 9df91f8c3..c5a788ff6 100644 --- a/tree-sitter-preproc/src/tree_sitter/parser.h +++ b/tree-sitter-preproc/src/tree_sitter/parser.h @@ -35,6 +35,7 @@ typedef uint16_t TSStateId; typedef struct { bool visible : 1; bool named : 1; + bool supertype: 1; } TSSymbolMetadata; typedef struct TSLexer TSLexer; @@ -62,13 +63,13 @@ typedef struct { TSStateId state; bool extra : 1; bool repetition : 1; - }; + } shift; struct { TSSymbol symbol; int16_t dynamic_precedence; uint8_t child_count; uint8_t production_id; - }; + } reduce; } params; TSParseActionType type : 4; } TSParseAction; @@ -83,7 +84,7 @@ typedef union { struct { uint8_t count; bool reusable : 1; - }; + } entry; } TSParseActionEntry; struct TSLanguage { @@ -119,6 +120,8 @@ struct TSLanguage { const uint16_t *small_parse_table; const uint32_t *small_parse_table_map; const TSSymbol *public_symbol_map; + const uint16_t *alias_map; + uint32_t state_count; }; /* @@ -167,22 +170,28 @@ struct TSLanguage { #define ACTIONS(id) id -#define SHIFT(state_value) \ - { \ - { \ - .type = TSParseActionTypeShift, \ - .params = {.state = state_value}, \ - } \ +#define SHIFT(state_value) \ + { \ + { \ + .params = { \ + .shift = { \ + .state = state_value \ + } \ + }, \ + .type = TSParseActionTypeShift \ + } \ } #define SHIFT_REPEAT(state_value) \ { \ { \ - .type = TSParseActionTypeShift, \ .params = { \ - .state = state_value, \ - .repetition = true \ + .shift = { \ + .state = state_value, \ + .repetition = true \ + } \ }, \ + .type = TSParseActionTypeShift \ } \ } @@ -194,20 +203,26 @@ struct TSLanguage { #define SHIFT_EXTRA() \ { \ { \ - .type = TSParseActionTypeShift, \ - .params = {.extra = true} \ + .params = { \ + .shift = { \ + .extra = true \ + } \ + }, \ + .type = TSParseActionTypeShift \ } \ } #define REDUCE(symbol_val, child_count_val, ...) \ { \ { \ - .type = TSParseActionTypeReduce, \ .params = { \ - .symbol = symbol_val, \ - .child_count = child_count_val, \ - __VA_ARGS__ \ - } \ + .reduce = { \ + .symbol = symbol_val, \ + .child_count = child_count_val, \ + __VA_ARGS__ \ + }, \ + }, \ + .type = TSParseActionTypeReduce \ } \ }