diff --git a/CMakeLists.txt b/CMakeLists.txt index 727ba99..0eb2675 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.13) project(tree-sitter-dotenv - VERSION "1.1.0" + VERSION "1.0.1" DESCRIPTION "Dotenv grammar for tree-sitter" HOMEPAGE_URL "https://github.com/pnx/tree-sitter-dotenv" LANGUAGES C) diff --git a/Cargo.toml b/Cargo.toml index 24179ca..a7cdecd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tree-sitter-dotenv" description = "Dotenv grammar for tree-sitter" -version = "1.1.0" +version = "1.0.1" license = "MIT" readme = "README.md" keywords = ["incremental", "parsing", "tree-sitter", "dotenv"] diff --git a/Makefile b/Makefile index acfd9d6..ef6f106 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ ifeq ($(OS),Windows_NT) $(error Windows is not supported) endif -VERSION := 1.1.0 +VERSION := 1.0.1 LANGUAGE_NAME := tree-sitter-dotenv diff --git a/grammar.js b/grammar.js index 8dcaa63..4a9688a 100644 --- a/grammar.js +++ b/grammar.js @@ -24,17 +24,17 @@ module.exports = grammar({ seq( field("key", choice( $.identifier, - alias("export", $.identifier), + alias($.export, $.identifier), )), "=", optional(field("value", $._value)), $._end_of_assignment, ), prec(1, seq( - "export", + $.export, field("key", choice( $.identifier, - alias("export", $.identifier), + alias($.export, $.identifier), )), "=", optional(field("value", $._value)), @@ -43,6 +43,7 @@ module.exports = grammar({ ), comment: _ => /\#[^\n]*/, + export: _ => token(prec(1, 'export')), identifier: _ => /[A-Za-z_][A-Za-z0-9_]*/, variable: $ => seq('$', choice( diff --git a/package.json b/package.json index 1f0c06e..a604b24 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tree-sitter-dotenv", - "version": "1.1.0", + "version": "1.0.1", "description": "Dotenv grammar for tree-sitter", "repository": "github:pnx/tree-sitter-dotenv", "license": "MIT", diff --git a/pyproject.toml b/pyproject.toml index 393db2c..9494a91 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "tree-sitter-dotenv" description = "Dotenv grammar for tree-sitter" -version = "1.1.0" +version = "1.0.1" keywords = ["incremental", "parsing", "tree-sitter", "dotenv"] classifiers = [ "Intended Audience :: Developers", diff --git a/queries/highlights.scm b/queries/highlights.scm index 7c576b4..62d938c 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -1,9 +1,9 @@ "=" @operator -"export" @keyword - (comment) @comment +(export) @keyword + (boolean) @constant (number) @number diff --git a/src/grammar.json b/src/grammar.json index 290137a..6eefe95 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -38,8 +38,8 @@ { "type": "ALIAS", "content": { - "type": "STRING", - "value": "export" + "type": "SYMBOL", + "name": "export" }, "named": true, "value": "identifier" @@ -80,8 +80,8 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "export" + "type": "SYMBOL", + "name": "export" }, { "type": "FIELD", @@ -96,8 +96,8 @@ { "type": "ALIAS", "content": { - "type": "STRING", - "value": "export" + "type": "SYMBOL", + "name": "export" }, "named": true, "value": "identifier" @@ -138,6 +138,17 @@ "type": "PATTERN", "value": "\\#[^\\n]*" }, + "export": { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "STRING", + "value": "export" + } + } + }, "identifier": { "type": "PATTERN", "value": "[A-Za-z_][A-Za-z0-9_]*" diff --git a/src/node-types.json b/src/node-types.json index 7318f0c..360f0da 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -39,6 +39,16 @@ } ] } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "export", + "named": true + } + ] } }, { @@ -163,7 +173,7 @@ }, { "type": "export", - "named": false + "named": true }, { "type": "float", diff --git a/src/parser.c b/src/parser.c index 0cc70ec..a4ea02c 100644 --- a/src/parser.c +++ b/src/parser.c @@ -21,9 +21,9 @@ enum ts_symbol_identifiers { sym_identifier = 1, - anon_sym_export = 2, - anon_sym_EQ = 3, - sym_comment = 4, + anon_sym_EQ = 2, + sym_comment = 3, + sym_export = 4, anon_sym_DOLLAR = 5, anon_sym_LBRACE = 6, anon_sym_RBRACE = 7, @@ -53,9 +53,9 @@ enum ts_symbol_identifiers { static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", - [anon_sym_export] = "export", [anon_sym_EQ] = "=", [sym_comment] = "comment", + [sym_export] = "export", [anon_sym_DOLLAR] = "$", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", @@ -85,9 +85,9 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, - [anon_sym_export] = anon_sym_export, [anon_sym_EQ] = anon_sym_EQ, [sym_comment] = sym_comment, + [sym_export] = sym_export, [anon_sym_DOLLAR] = anon_sym_DOLLAR, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, @@ -123,10 +123,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_export] = { - .visible = true, - .named = false, - }, [anon_sym_EQ] = { .visible = true, .named = false, @@ -135,6 +131,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_export] = { + .visible = true, + .named = true, + }, [anon_sym_DOLLAR] = { .visible = true, .named = false, @@ -247,10 +247,10 @@ static const char * const ts_field_names[] = { static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 0, .length = 1}, - [3] = {.index = 1, .length = 1}, - [4] = {.index = 2, .length = 2}, - [5] = {.index = 1, .length = 1}, - [6] = {.index = 2, .length = 2}, + [3] = {.index = 1, .length = 2}, + [4] = {.index = 3, .length = 1}, + [5] = {.index = 3, .length = 1}, + [6] = {.index = 1, .length = 2}, [7] = {.index = 4, .length = 2}, [8] = {.index = 4, .length = 2}, }; @@ -259,10 +259,10 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_key, 0}, [1] = - {field_key, 1}, - [2] = {field_key, 0}, {field_value, 2}, + [3] = + {field_key, 1}, [4] = {field_key, 1}, {field_value, 3}, @@ -274,10 +274,10 @@ static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE [0] = sym_identifier, }, [3] = { - [1] = sym_identifier, + [0] = sym_identifier, }, [4] = { - [0] = sym_identifier, + [1] = sym_identifier, }, [7] = { [1] = sym_identifier, @@ -312,9 +312,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [20] = 20, [21] = 21, [22] = 22, - [23] = 22, - [24] = 24, - [25] = 25, + [23] = 23, + [24] = 22, + [25] = 20, [26] = 26, [27] = 27, [28] = 28, @@ -332,10 +332,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [40] = 40, [41] = 21, [42] = 42, - [43] = 20, + [43] = 43, [44] = 44, - [45] = 36, - [46] = 44, + [45] = 35, + [46] = 42, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -754,7 +754,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 't') ADVANCE(6); END_STATE(); case 6: - ACCEPT_TOKEN(anon_sym_export); + ACCEPT_TOKEN(sym_export); END_STATE(); default: return false; @@ -785,28 +785,28 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [20] = {.lex_state = 2}, [21] = {.lex_state = 2}, [22] = {.lex_state = 8}, - [23] = {.lex_state = 8}, - [24] = {.lex_state = 3}, + [23] = {.lex_state = 3}, + [24] = {.lex_state = 8}, [25] = {.lex_state = 0, .external_lex_state = 1}, [26] = {.lex_state = 0}, [27] = {.lex_state = 0, .external_lex_state = 1}, - [28] = {.lex_state = 0}, + [28] = {.lex_state = 0, .external_lex_state = 1}, [29] = {.lex_state = 0, .external_lex_state = 1}, [30] = {.lex_state = 0, .external_lex_state = 1}, [31] = {.lex_state = 0, .external_lex_state = 1}, - [32] = {.lex_state = 0, .external_lex_state = 1}, + [32] = {.lex_state = 0}, [33] = {.lex_state = 0, .external_lex_state = 1}, [34] = {.lex_state = 0}, [35] = {.lex_state = 0}, - [36] = {.lex_state = 0}, + [36] = {.lex_state = 0, .external_lex_state = 1}, [37] = {.lex_state = 0, .external_lex_state = 1}, - [38] = {.lex_state = 0}, + [38] = {.lex_state = 0, .external_lex_state = 1}, [39] = {.lex_state = 0, .external_lex_state = 1}, - [40] = {.lex_state = 0, .external_lex_state = 1}, + [40] = {.lex_state = 0}, [41] = {.lex_state = 0, .external_lex_state = 1}, - [42] = {.lex_state = 0, .external_lex_state = 1}, + [42] = {.lex_state = 8}, [43] = {.lex_state = 0, .external_lex_state = 1}, - [44] = {.lex_state = 8}, + [44] = {.lex_state = 0}, [45] = {.lex_state = 0}, [46] = {.lex_state = 8}, }; @@ -815,9 +815,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(0)] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), - [anon_sym_export] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [sym_comment] = ACTIONS(1), + [sym_export] = ACTIONS(1), [anon_sym_DOLLAR] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), @@ -831,21 +831,21 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }, [STATE(1)] = { [sym_document] = STATE(26), - [sym_assignment] = STATE(7), - [aux_sym_document_repeat1] = STATE(7), + [sym_assignment] = STATE(6), + [aux_sym_document_repeat1] = STATE(6), [ts_builtin_sym_end] = ACTIONS(3), [sym_identifier] = ACTIONS(5), - [anon_sym_export] = ACTIONS(7), - [sym_comment] = ACTIONS(9), + [sym_comment] = ACTIONS(7), + [sym_export] = ACTIONS(9), }, [STATE(2)] = { [sym_variable] = STATE(33), [sym__value] = STATE(33), [sym_string] = STATE(33), - [sym__literal_string] = STATE(32), - [sym__string] = STATE(32), + [sym__literal_string] = STATE(30), + [sym__string] = STATE(30), [sym_number] = STATE(33), - [sym_integer] = STATE(30), + [sym_integer] = STATE(28), [anon_sym_DOLLAR] = ACTIONS(11), [anon_sym_SQUOTE] = ACTIONS(13), [anon_sym_DQUOTE] = ACTIONS(15), @@ -860,10 +860,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_variable] = STATE(39), [sym__value] = STATE(39), [sym_string] = STATE(39), - [sym__literal_string] = STATE(32), - [sym__string] = STATE(32), + [sym__literal_string] = STATE(30), + [sym__string] = STATE(30), [sym_number] = STATE(39), - [sym_integer] = STATE(30), + [sym_integer] = STATE(28), [anon_sym_DOLLAR] = ACTIONS(11), [anon_sym_SQUOTE] = ACTIONS(13), [anon_sym_DQUOTE] = ACTIONS(15), @@ -875,13 +875,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__end_of_assignment] = ACTIONS(27), }, [STATE(4)] = { - [sym_variable] = STATE(42), - [sym__value] = STATE(42), - [sym_string] = STATE(42), - [sym__literal_string] = STATE(32), - [sym__string] = STATE(32), - [sym_number] = STATE(42), - [sym_integer] = STATE(30), + [sym_variable] = STATE(29), + [sym__value] = STATE(29), + [sym_string] = STATE(29), + [sym__literal_string] = STATE(30), + [sym__string] = STATE(30), + [sym_number] = STATE(29), + [sym_integer] = STATE(28), [anon_sym_DOLLAR] = ACTIONS(11), [anon_sym_SQUOTE] = ACTIONS(13), [anon_sym_DQUOTE] = ACTIONS(15), @@ -896,10 +896,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_variable] = STATE(31), [sym__value] = STATE(31), [sym_string] = STATE(31), - [sym__literal_string] = STATE(32), - [sym__string] = STATE(32), + [sym__literal_string] = STATE(30), + [sym__string] = STATE(30), [sym_number] = STATE(31), - [sym_integer] = STATE(30), + [sym_integer] = STATE(28), [anon_sym_DOLLAR] = ACTIONS(11), [anon_sym_SQUOTE] = ACTIONS(13), [anon_sym_DQUOTE] = ACTIONS(15), @@ -914,27 +914,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 5, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(9), 1, + sym_export, ACTIONS(37), 1, ts_builtin_sym_end, ACTIONS(39), 1, - sym_identifier, - ACTIONS(42), 1, - anon_sym_export, - ACTIONS(45), 1, sym_comment, - STATE(6), 2, + STATE(7), 2, sym_assignment, aux_sym_document_repeat1, [17] = 5, - ACTIONS(5), 1, - sym_identifier, - ACTIONS(7), 1, - anon_sym_export, - ACTIONS(48), 1, + ACTIONS(41), 1, ts_builtin_sym_end, - ACTIONS(50), 1, + ACTIONS(43), 1, + sym_identifier, + ACTIONS(46), 1, sym_comment, - STATE(6), 2, + ACTIONS(49), 1, + sym_export, + STATE(7), 2, sym_assignment, aux_sym_document_repeat1, [34] = 4, @@ -968,68 +968,68 @@ static const uint16_t ts_small_parse_table[] = { sym_variable, aux_sym__string_repeat1, [76] = 2, - ACTIONS(70), 2, + ACTIONS(72), 1, + sym_identifier, + ACTIONS(70), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(72), 2, - anon_sym_export, - sym_identifier, + sym_export, [85] = 2, - ACTIONS(74), 2, + ACTIONS(76), 1, + sym_identifier, + ACTIONS(74), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(76), 2, - anon_sym_export, - sym_identifier, + sym_export, [94] = 2, - ACTIONS(78), 2, + ACTIONS(80), 1, + sym_identifier, + ACTIONS(78), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(80), 2, - anon_sym_export, - sym_identifier, + sym_export, [103] = 2, - ACTIONS(82), 2, + ACTIONS(84), 1, + sym_identifier, + ACTIONS(82), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(84), 2, - anon_sym_export, - sym_identifier, + sym_export, [112] = 2, - ACTIONS(86), 2, + ACTIONS(88), 1, + sym_identifier, + ACTIONS(86), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(88), 2, - anon_sym_export, - sym_identifier, + sym_export, [121] = 2, - ACTIONS(90), 2, + ACTIONS(92), 1, + sym_identifier, + ACTIONS(90), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(92), 2, - anon_sym_export, - sym_identifier, + sym_export, [130] = 2, - ACTIONS(94), 2, + ACTIONS(96), 1, + sym_identifier, + ACTIONS(94), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(96), 2, - anon_sym_export, - sym_identifier, + sym_export, [139] = 2, - ACTIONS(98), 2, + ACTIONS(100), 1, + sym_identifier, + ACTIONS(98), 3, ts_builtin_sym_end, sym_comment, - ACTIONS(100), 2, - anon_sym_export, - sym_identifier, + sym_export, [148] = 3, ACTIONS(102), 1, sym_identifier, ACTIONS(104), 1, - anon_sym_export, - ACTIONS(106), 1, anon_sym_EQ, + ACTIONS(106), 1, + sym_export, [158] = 2, ACTIONS(110), 1, aux_sym__string_token1, @@ -1049,74 +1049,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, [181] = 2, ACTIONS(120), 1, - sym_identifier, + anon_sym_SQUOTE, ACTIONS(122), 1, - anon_sym_LBRACE, + aux_sym__literal_string_token1, [188] = 2, ACTIONS(124), 1, - anon_sym_SQUOTE, + sym_identifier, ACTIONS(126), 1, - aux_sym__literal_string_token1, + anon_sym_LBRACE, [195] = 1, - ACTIONS(128), 1, + ACTIONS(110), 1, sym__end_of_assignment, [199] = 1, - ACTIONS(130), 1, + ACTIONS(128), 1, ts_builtin_sym_end, [203] = 1, - ACTIONS(132), 1, + ACTIONS(130), 1, sym__end_of_assignment, [207] = 1, - ACTIONS(134), 1, - anon_sym_SQUOTE, + ACTIONS(132), 1, + sym__end_of_assignment, [211] = 1, - ACTIONS(136), 1, + ACTIONS(134), 1, sym__end_of_assignment, [215] = 1, - ACTIONS(138), 1, + ACTIONS(136), 1, sym__end_of_assignment, [219] = 1, - ACTIONS(140), 1, + ACTIONS(138), 1, sym__end_of_assignment, [223] = 1, + ACTIONS(140), 1, + anon_sym_EQ, + [227] = 1, ACTIONS(142), 1, sym__end_of_assignment, - [227] = 1, - ACTIONS(144), 1, - sym__end_of_assignment, [231] = 1, - ACTIONS(146), 1, + ACTIONS(144), 1, anon_sym_EQ, [235] = 1, - ACTIONS(148), 1, - anon_sym_EQ, - [239] = 1, - ACTIONS(150), 1, + ACTIONS(146), 1, anon_sym_RBRACE, + [239] = 1, + ACTIONS(148), 1, + sym__end_of_assignment, [243] = 1, - ACTIONS(152), 1, + ACTIONS(150), 1, sym__end_of_assignment, [247] = 1, - ACTIONS(154), 1, - anon_sym_EQ, + ACTIONS(152), 1, + sym__end_of_assignment, [251] = 1, - ACTIONS(156), 1, + ACTIONS(154), 1, sym__end_of_assignment, [255] = 1, - ACTIONS(158), 1, - sym__end_of_assignment, + ACTIONS(156), 1, + anon_sym_EQ, [259] = 1, ACTIONS(114), 1, sym__end_of_assignment, [263] = 1, - ACTIONS(160), 1, - sym__end_of_assignment, + ACTIONS(158), 1, + sym_identifier, [267] = 1, - ACTIONS(110), 1, + ACTIONS(160), 1, sym__end_of_assignment, [271] = 1, ACTIONS(162), 1, - sym_identifier, + anon_sym_SQUOTE, [275] = 1, ACTIONS(164), 1, anon_sym_RBRACE, @@ -1173,34 +1173,34 @@ static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 0, 0, 0), - [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(38), - [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(19), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(6), - [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 1, 0, 0), - [50] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [52] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [54] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 1, 0, 0), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), + [43] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(40), + [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(7), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(19), + [52] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [54] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [58] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [58] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), [60] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__string_repeat1, 2, 0, 0), SHIFT_REPEAT(22), + [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__string_repeat1, 2, 0, 0), SHIFT_REPEAT(24), [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__string_repeat1, 2, 0, 0), [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__string_repeat1, 2, 0, 0), SHIFT_REPEAT(10), [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 1), @@ -1209,46 +1209,46 @@ static const TSParseActionEntry ts_parse_actions[] = { [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 3, 0, 2), [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 4), [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 4), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 5), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 5), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 6), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 6), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 7), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 5, 0, 7), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 3), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 3), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 3), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 3), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 5), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 5), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, 0, 6), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, 0, 6), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 7), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 5, 0, 7), [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 8), [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 5, 0, 8), [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 2, 0, 0), [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 2, 0, 0), [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 4, 0, 0), [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 4, 0, 0), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string, 3, 0, 0), - [130] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_string, 2, 0, 0), - [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string, 2, 0, 0), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1, 0, 0), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_string, 3, 0, 0), - [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 1, 0, 0), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [128] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string, 2, 0, 0), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1, 0, 0), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_string, 3, 0, 0), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string, 3, 0, 0), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 1, 0, 0), + [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_string, 2, 0, 0), [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), @@ -1328,8 +1328,8 @@ TS_PUBLIC const TSLanguage *tree_sitter_dotenv(void) { .max_reserved_word_set_size = 0, .metadata = { .major_version = 1, - .minor_version = 1, - .patch_version = 0, + .minor_version = 0, + .patch_version = 1, }, }; return &language; diff --git a/test/corpus/export.txt b/test/corpus/export.txt index 1b4cbc0..f5c2c58 100644 --- a/test/corpus/export.txt +++ b/test/corpus/export.txt @@ -1,6 +1,5 @@ ================================================================================ Export keyword -:cst ================================================================================ export VAR=one @@ -10,31 +9,27 @@ export export=var -------------------------------------------------------------------------------- -1:0 - 5:0 document -1:0 - 1:14 assignment -1:0 - 1:6 "export" -1:7 - 1:10 key: identifier `VAR` -1:10 - 1:11 "=" -1:11 - 1:14 value: value `one` -2:0 - 2:18 assignment -2:0 - 2:6 "export" -2:8 - 2:11 key: identifier `VAR` -2:13 - 2:14 "=" -2:15 - 2:18 value: value `one` -3:0 - 3:14 assignment -3:0 - 3:6 "export" -3:7 - 3:10 key: identifier `TAB` -3:10 - 3:11 "=" -3:11 - 3:14 value: value `two` -4:0 - 4:17 assignment -4:0 - 4:6 "export" -4:7 - 4:13 key: identifier `export` -4:13 - 4:14 "=" -4:14 - 4:17 value: value `var` +(document + (assignment + (export) + (identifier) + (value)) + (assignment + (export) + (identifier) + (value)) + (assignment + (export) + (identifier) + (value)) + (assignment + (export) + (identifier) + (value)) +) ================================================================================ Export-like identifiers -:cst ================================================================================ export=one @@ -45,20 +40,17 @@ exportVAR = two -------------------------------------------------------------------------------- -1:0 - 6:0 document -1:0 - 1:10 assignment -1:0 - 1:6 key: identifier `export` -1:6 - 1:7 "=" -1:7 - 1:10 value: value `one` -2:0 - 2:12 assignment -2:0 - 2:6 key: identifier `export` -2:7 - 2:8 "=" -2:9 - 2:12 value: value `one` -3:0 - 3:13 assignment -3:0 - 3:9 key: identifier `exportVAR` -3:9 - 3:10 "=" -3:10 - 3:13 value: value `two` -4:0 - 4:15 assignment -4:0 - 4:9 key: identifier `exportVAR` -4:10 - 4:11 "=" -4:12 - 4:15 value: value `two` +(document + (assignment + key: (identifier) + value: (value)) + (assignment + key: (identifier) + value: (value)) + (assignment + key: (identifier) + value: (value)) + (assignment + key: (identifier) + value: (value)) +) diff --git a/tree-sitter.json b/tree-sitter.json index 10cac35..57699b3 100644 --- a/tree-sitter.json +++ b/tree-sitter.json @@ -15,7 +15,7 @@ } ], "metadata": { - "version": "1.1.0", + "version": "1.0.1", "license": "MIT", "description": "Dotenv grammar for tree-sitter", "authors": [