diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-12-14 13:03:24 +0100 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-12-14 13:03:24 +0100 |
commit | 3b4b0ee9c1c1a38eb5cabb4a52393cb6c1154bc2 (patch) | |
tree | 75e4ff9ca1f9a007e200765fff8a17913262f46b | |
parent | build(treewide): Update (diff) | |
download | yt-1.4.0.tar.gz yt-1.4.0.zip |
chore(version): v1.4.0 v1.4.0
-rw-r--r-- | Cargo.lock | 14 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | NEWS.md | 18 | ||||
-rw-r--r-- | tree-sitter-yts/grammar.js | 3 | ||||
-rw-r--r-- | tree-sitter-yts/package.json | 2 | ||||
-rw-r--r-- | tree-sitter-yts/package.nix | 1 | ||||
-rw-r--r-- | tree-sitter-yts/src/node-types.json | 2 | ||||
-rw-r--r-- | tree-sitter-yts/src/parser.c | 2053 | ||||
-rw-r--r-- | tree-sitter-yts/src/tree_sitter/alloc.h | 23 | ||||
-rw-r--r-- | tree-sitter-yts/src/tree_sitter/array.h | 400 | ||||
-rw-r--r-- | tree-sitter-yts/src/tree_sitter/parser.h | 464 | ||||
-rw-r--r-- | tree-sitter-yts/tree-sitter.json | 8 | ||||
-rw-r--r-- | yt/src/cli.rs | 16 | ||||
-rw-r--r-- | yt/src/watch/events/mod.rs | 2 |
14 files changed, 1645 insertions, 1363 deletions
diff --git a/Cargo.lock b/Cargo.lock index e2c478f..dde2b2d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -239,7 +239,7 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.3.3" +version = "1.4.0" dependencies = [ "serde", ] @@ -1040,7 +1040,7 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libmpv2" -version = "1.3.3" +version = "1.4.0" dependencies = [ "crossbeam", "libmpv2-sys", @@ -1051,7 +1051,7 @@ dependencies = [ [[package]] name = "libmpv2-sys" -version = "1.3.3" +version = "1.4.0" dependencies = [ "bindgen", ] @@ -2655,11 +2655,11 @@ dependencies = [ [[package]] name = "yt" -version = "1.3.3" +version = "1.4.0" dependencies = [ "anyhow", "blake3", - "bytes 1.3.3", + "bytes 1.4.0", "chrono", "chrono-humanize", "clap", @@ -2684,9 +2684,9 @@ dependencies = [ [[package]] name = "yt_dlp" -version = "1.3.3" +version = "1.4.0" dependencies = [ - "bytes 1.3.3", + "bytes 1.4.0", "log", "pyo3", "serde", diff --git a/Cargo.toml b/Cargo.toml index 3c51ae0..27d9c05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ members = [ [workspace.package] edition = "2021" -version = "1.3.3" +version = "1.4.0" rust-version = "1.80.0" authors = ["Benedikt Peetz <benedikt.peetz@b-peetz.de>"] repository = "https://git.vhack.eu/soispha/clients/yt" diff --git a/NEWS.md b/NEWS.md index 7ff6a6e..2c09ec9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -14,6 +14,24 @@ If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. - - - +## [v1.4.0](https://git.vhack.eu/soispha/clients/yt/compare/fcb297027bfb5f1bb97094b23b18522c761106f4..v1.4.0) - 2024-12-14 +#### Bug Fixes +- **(yt/cli)** Ensure that all `[No <xyz>]` value can be parsed - ([beb5640](https://git.vhack.eu/soispha/clients/yt/commit/beb56409e033fb6d89749788cbf0c91046e3fc16)) - [@soispha](https://git.vhack.eu/soispha) +- **(yt_dlp/wrappers/info_json)** Add missing fields to `Subtitle` - ([68c9070](https://git.vhack.eu/soispha/clients/yt/commit/68c9070641ac714918c5cfcdbb3c5009113761d1)) - [@soispha](https://git.vhack.eu/soispha) +- **(yt_dlp/wrappers/info_json)** Treat `Extractor` and `ExtractorKey` as Strings - ([fcb2970](https://git.vhack.eu/soispha/clients/yt/commit/fcb297027bfb5f1bb97094b23b18522c761106f4)) - [@soispha](https://git.vhack.eu/soispha) +#### Build system +- **(treewide)** Update - ([964f305](https://git.vhack.eu/soispha/clients/yt/commit/964f3050d6db9f4539a26d8d1da65c489126f5fb)) - [@soispha](https://git.vhack.eu/soispha) +#### Features +- **(tree-sitter-yts)** Update to new tree-sitter version & improve parsing - ([a9a4ba6](https://git.vhack.eu/soispha/clients/yt/commit/a9a4ba60a37eb351d3ed872f1cfcf53e673be9ef)) - [@soispha](https://git.vhack.eu/soispha) +- **(yt/description)** Init - ([00ce7b4](https://git.vhack.eu/soispha/clients/yt/commit/00ce7b46ba96f97247d339e67b9ffc503d32100d)) - [@soispha](https://git.vhack.eu/soispha) +- **(yt/watch/events)** Wire up the `yt-description-*` client commands - ([5133e7e](https://git.vhack.eu/soispha/clients/yt/commit/5133e7e1be3e581ee9853a59f7d05e29900f9458)) - [@soispha](https://git.vhack.eu/soispha) +#### Refactoring +- **(yt/comments)** Move the display code to a separate function - ([59eb7fa](https://git.vhack.eu/soispha/clients/yt/commit/59eb7fa29694c7dd63c71c6906885b7229be7354)) - [@soispha](https://git.vhack.eu/soispha) +- **(yt/config)** Rename `local_comments_length` to `local_display_length` - ([4031f2a](https://git.vhack.eu/soispha/clients/yt/commit/4031f2ac80108cf8c557bc88111f1ad983ddeaca)) - [@soispha](https://git.vhack.eu/soispha) +- **(yt/description)** Provide `get` function, returning a string - ([7105c4f](https://git.vhack.eu/soispha/clients/yt/commit/7105c4f672456a2b928279a6f24b97d2ebf65a54)) - [@soispha](https://git.vhack.eu/soispha) + +- - - + ## [v1.3.3](https://git.vhack.eu/soispha/clients/yt/compare/d387d04730a9a0f52bf5139c0bcf05d1534ec4ac..v1.3.3) - 2024-11-16 #### Bug Fixes - **(yt/select/add)** Avoid crash on adding a video - ([d387d04](https://git.vhack.eu/soispha/clients/yt/commit/d387d04730a9a0f52bf5139c0bcf05d1534ec4ac)) - [@soispha](https://git.vhack.eu/soispha) diff --git a/tree-sitter-yts/grammar.js b/tree-sitter-yts/grammar.js index c1c193f..7576228 100644 --- a/tree-sitter-yts/grammar.js +++ b/tree-sitter-yts/grammar.js @@ -59,7 +59,8 @@ module.exports = grammar({ ), id: ($) => /[a-z0-9]+/, title: ($) => seq($._q, /[^"]+/, $._q), - date: ($) => seq($._q, choice("[No release date]", /\d{4}-\d{2}-\d{2}/), $._q), + date: ($) => + seq($._q, choice("[No release date]", /\d{4}-\d{2}-\d{2}/), $._q), author: ($) => seq($._q, choice("[No author]", /[^"]+/), $._q), duration: ($) => seq($._q, seq(choice("[No duration]", /\d+m \d+s/, /\d+h \d+m/)), $._q), diff --git a/tree-sitter-yts/package.json b/tree-sitter-yts/package.json index 013ff3b..5bd57c0 100644 --- a/tree-sitter-yts/package.json +++ b/tree-sitter-yts/package.json @@ -16,4 +16,4 @@ "scripts": { "test": "tree-sitter test" } -} \ No newline at end of file +} diff --git a/tree-sitter-yts/package.nix b/tree-sitter-yts/package.nix index 5b86d93..3a0f8f6 100644 --- a/tree-sitter-yts/package.nix +++ b/tree-sitter-yts/package.nix @@ -7,7 +7,6 @@ # # You should have received a copy of the License along with this program. # If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. - { stdenv, nodejs, diff --git a/tree-sitter-yts/src/node-types.json b/tree-sitter-yts/src/node-types.json index 9656433..809eb38 100644 --- a/tree-sitter-yts/src/node-types.json +++ b/tree-sitter-yts/src/node-types.json @@ -223,4 +223,4 @@ "type": "wd", "named": false } -] \ No newline at end of file +] diff --git a/tree-sitter-yts/src/parser.c b/tree-sitter-yts/src/parser.c index 72974fe..9552850 100644 --- a/tree-sitter-yts/src/parser.c +++ b/tree-sitter-yts/src/parser.c @@ -27,7 +27,8 @@ #define MAX_ALIAS_SEQUENCE_LENGTH 9 #define PRODUCTION_ID_COUNT 1 -enum ts_symbol_identifiers { +enum ts_symbol_identifiers +{ anon_sym_LF = 1, anon_sym_pick = 2, anon_sym_p = 3, @@ -77,7 +78,7 @@ enum ts_symbol_identifiers { aux_sym_line_repeat1 = 47, }; -static const char * const ts_symbol_names[] = { +static const char *const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [anon_sym_LF] = "\n", [anon_sym_pick] = "pick", @@ -374,693 +375,777 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }, }; -static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { - [0] = {0}, -}; +static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT] + [MAX_ALIAS_SEQUENCE_LENGTH] + = { + [0] = { 0 }, + }; static const uint16_t ts_non_terminal_alias_map[] = { 0, }; static const TSStateId ts_primary_state_ids[STATE_COUNT] = { - [0] = 0, - [1] = 1, - [2] = 2, - [3] = 3, - [4] = 4, - [5] = 5, - [6] = 6, - [7] = 7, - [8] = 8, - [9] = 9, - [10] = 10, - [11] = 11, - [12] = 12, - [13] = 13, - [14] = 14, - [15] = 15, - [16] = 16, - [17] = 17, - [18] = 18, - [19] = 19, - [20] = 20, - [21] = 21, - [22] = 22, - [23] = 23, - [24] = 24, - [25] = 25, - [26] = 26, - [27] = 27, - [28] = 28, - [29] = 29, - [30] = 30, - [31] = 31, - [32] = 32, - [33] = 33, - [34] = 34, - [35] = 35, - [36] = 36, - [37] = 37, - [38] = 38, + [0] = 0, [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6, + [7] = 7, [8] = 8, [9] = 9, [10] = 10, [11] = 11, [12] = 12, [13] = 13, + [14] = 14, [15] = 15, [16] = 16, [17] = 17, [18] = 18, [19] = 19, [20] = 20, + [21] = 21, [22] = 22, [23] = 23, [24] = 24, [25] = 25, [26] = 26, [27] = 27, + [28] = 28, [29] = 29, [30] = 30, [31] = 31, [32] = 32, [33] = 33, [34] = 34, + [35] = 35, [36] = 36, [37] = 37, [38] = 38, }; -static bool ts_lex(TSLexer *lexer, TSStateId state) { - START_LEXER(); - eof = lexer->eof(lexer); - switch (state) { +static bool +ts_lex (TSLexer *lexer, TSStateId state) +{ + START_LEXER (); + eof = lexer->eof (lexer); + switch (state) + { case 0: - if (eof) ADVANCE(78); - ADVANCE_MAP( - '"', 134, - '#', 133, - '-', 21, - '[', 24, - 'a', 87, - 'd', 89, - 'p', 81, - 'u', 91, - 'w', 83, - ); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(0); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(44); - END_STATE(); + if (eof) + ADVANCE (78); + ADVANCE_MAP ('"', 134, '#', 133, '-', 21, '[', 24, 'a', 87, 'd', 89, 'p', + 81, 'u', 91, 'w', 83, ); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + SKIP (0); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (44); + END_STATE (); case 1: - if (lookahead == '\n') ADVANCE(79); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(1); - END_STATE(); + if (lookahead == '\n') + ADVANCE (79); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + SKIP (1); + END_STATE (); case 2: - if (lookahead == ' ') ADVANCE(8); - if (lookahead == '=') ADVANCE(9); - END_STATE(); + if (lookahead == ' ') + ADVANCE (8); + if (lookahead == '=') + ADVANCE (9); + END_STATE (); case 3: - if (lookahead == ' ') ADVANCE(70); - END_STATE(); + if (lookahead == ' ') + ADVANCE (70); + END_STATE (); case 4: - if (lookahead == ' ') ADVANCE(29); - END_STATE(); + if (lookahead == ' ') + ADVANCE (29); + END_STATE (); case 5: - if (lookahead == ' ') ADVANCE(71); - END_STATE(); + if (lookahead == ' ') + ADVANCE (71); + END_STATE (); case 6: - if (lookahead == ' ') ADVANCE(37); - END_STATE(); + if (lookahead == ' ') + ADVANCE (37); + END_STATE (); case 7: - if (lookahead == ' ') ADVANCE(10); - if (lookahead == '=') ADVANCE(11); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(7); - END_STATE(); + if (lookahead == ' ') + ADVANCE (10); + if (lookahead == '=') + ADVANCE (11); + if (lookahead == '-' || ('0' <= lookahead && lookahead <= '9') + || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' + || ('a' <= lookahead && lookahead <= 'z')) + ADVANCE (7); + END_STATE (); case 8: - if (lookahead == '"') ADVANCE(92); - if (lookahead == '\'') ADVANCE(93); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(94); - END_STATE(); + if (lookahead == '"') + ADVANCE (92); + if (lookahead == '\'') + ADVANCE (93); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (94); + END_STATE (); case 9: - if (lookahead == '"') ADVANCE(97); - if (lookahead == '\'') ADVANCE(98); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(99); - END_STATE(); + if (lookahead == '"') + ADVANCE (97); + if (lookahead == '\'') + ADVANCE (98); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (99); + END_STATE (); case 10: - if (lookahead == '"') ADVANCE(102); - if (lookahead == '\'') ADVANCE(103); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(104); - END_STATE(); + if (lookahead == '"') + ADVANCE (102); + if (lookahead == '\'') + ADVANCE (103); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (104); + END_STATE (); case 11: - if (lookahead == '"') ADVANCE(107); - if (lookahead == '\'') ADVANCE(108); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(109); - END_STATE(); + if (lookahead == '"') + ADVANCE (107); + if (lookahead == '\'') + ADVANCE (108); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (109); + END_STATE (); case 12: - if (lookahead == '"') ADVANCE(96); - if (lookahead != 0) ADVANCE(12); - END_STATE(); + if (lookahead == '"') + ADVANCE (96); + if (lookahead != 0) + ADVANCE (12); + END_STATE (); case 13: - if (lookahead == '"') ADVANCE(101); - if (lookahead != 0) ADVANCE(13); - END_STATE(); + if (lookahead == '"') + ADVANCE (101); + if (lookahead != 0) + ADVANCE (13); + END_STATE (); case 14: - if (lookahead == '"') ADVANCE(106); - if (lookahead != 0) ADVANCE(14); - END_STATE(); + if (lookahead == '"') + ADVANCE (106); + if (lookahead != 0) + ADVANCE (14); + END_STATE (); case 15: - if (lookahead == '"') ADVANCE(111); - if (lookahead != 0) ADVANCE(15); - END_STATE(); + if (lookahead == '"') + ADVANCE (111); + if (lookahead != 0) + ADVANCE (15); + END_STATE (); case 16: - if (lookahead == '\'') ADVANCE(95); - if (lookahead != 0) ADVANCE(16); - END_STATE(); + if (lookahead == '\'') + ADVANCE (95); + if (lookahead != 0) + ADVANCE (16); + END_STATE (); case 17: - if (lookahead == '\'') ADVANCE(100); - if (lookahead != 0) ADVANCE(17); - END_STATE(); + if (lookahead == '\'') + ADVANCE (100); + if (lookahead != 0) + ADVANCE (17); + END_STATE (); case 18: - if (lookahead == '\'') ADVANCE(105); - if (lookahead != 0) ADVANCE(18); - END_STATE(); + if (lookahead == '\'') + ADVANCE (105); + if (lookahead != 0) + ADVANCE (18); + END_STATE (); case 19: - if (lookahead == '\'') ADVANCE(110); - if (lookahead != 0) ADVANCE(19); - END_STATE(); + if (lookahead == '\'') + ADVANCE (110); + if (lookahead != 0) + ADVANCE (19); + END_STATE (); case 20: - if (lookahead == '-') ADVANCE(21); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(20); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(112); - END_STATE(); + if (lookahead == '-') + ADVANCE (21); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + SKIP (20); + if (('0' <= lookahead && lookahead <= '9') + || ('a' <= lookahead && lookahead <= 'z')) + ADVANCE (112); + END_STATE (); case 21: - if (lookahead == '-') ADVANCE(76); - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(2); - END_STATE(); + if (lookahead == '-') + ADVANCE (76); + if (('0' <= lookahead && lookahead <= '9') + || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' + || ('a' <= lookahead && lookahead <= 'z')) + ADVANCE (2); + END_STATE (); case 22: - if (lookahead == '-') ADVANCE(74); - if (lookahead == 'h') ADVANCE(3); - if (lookahead == 'm') ADVANCE(5); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); - END_STATE(); + if (lookahead == '-') + ADVANCE (74); + if (lookahead == 'h') + ADVANCE (3); + if (lookahead == 'm') + ADVANCE (5); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (45); + END_STATE (); case 23: - if (lookahead == '-') ADVANCE(75); - END_STATE(); + if (lookahead == '-') + ADVANCE (75); + END_STATE (); case 24: - if (lookahead == 'N') ADVANCE(56); - END_STATE(); + if (lookahead == 'N') + ADVANCE (56); + END_STATE (); case 25: - if (lookahead == '[') ADVANCE(114); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(115); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + if (lookahead == '[') + ADVANCE (114); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (115); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 26: - if (lookahead == ']') ADVANCE(128); - END_STATE(); + if (lookahead == ']') + ADVANCE (128); + END_STATE (); case 27: - if (lookahead == ']') ADVANCE(130); - END_STATE(); + if (lookahead == ']') + ADVANCE (130); + END_STATE (); case 28: - if (lookahead == ']') ADVANCE(126); - END_STATE(); + if (lookahead == ']') + ADVANCE (126); + END_STATE (); case 29: - if (lookahead == 'a') ADVANCE(68); - if (lookahead == 'd') ADVANCE(67); - if (lookahead == 'r') ADVANCE(38); - END_STATE(); + if (lookahead == 'a') + ADVANCE (68); + if (lookahead == 'd') + ADVANCE (67); + if (lookahead == 'r') + ADVANCE (38); + END_STATE (); case 30: - if (lookahead == 'a') ADVANCE(62); - END_STATE(); + if (lookahead == 'a') + ADVANCE (62); + END_STATE (); case 31: - if (lookahead == 'a') ADVANCE(63); - END_STATE(); + if (lookahead == 'a') + ADVANCE (63); + END_STATE (); case 32: - if (lookahead == 'a') ADVANCE(66); - END_STATE(); + if (lookahead == 'a') + ADVANCE (66); + END_STATE (); case 33: - if (lookahead == 'c') ADVANCE(49); - END_STATE(); + if (lookahead == 'c') + ADVANCE (49); + END_STATE (); case 34: - if (lookahead == 'c') ADVANCE(46); - END_STATE(); + if (lookahead == 'c') + ADVANCE (46); + END_STATE (); case 35: - if (lookahead == 'd') ADVANCE(86); - END_STATE(); + if (lookahead == 'd') + ADVANCE (86); + END_STATE (); case 36: - if (lookahead == 'd') ADVANCE(84); - END_STATE(); + if (lookahead == 'd') + ADVANCE (84); + END_STATE (); case 37: - if (lookahead == 'd') ADVANCE(32); - END_STATE(); + if (lookahead == 'd') + ADVANCE (32); + END_STATE (); case 38: - if (lookahead == 'e') ADVANCE(51); - END_STATE(); + if (lookahead == 'e') + ADVANCE (51); + END_STATE (); case 39: - if (lookahead == 'e') ADVANCE(30); - END_STATE(); + if (lookahead == 'e') + ADVANCE (30); + END_STATE (); case 40: - if (lookahead == 'e') ADVANCE(6); - END_STATE(); + if (lookahead == 'e') + ADVANCE (6); + END_STATE (); case 41: - if (lookahead == 'e') ADVANCE(28); - END_STATE(); + if (lookahead == 'e') + ADVANCE (28); + END_STATE (); case 42: - if (lookahead == 'h') ADVANCE(3); - if (lookahead == 'm') ADVANCE(5); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(22); - END_STATE(); + if (lookahead == 'h') + ADVANCE (3); + if (lookahead == 'm') + ADVANCE (5); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (22); + END_STATE (); case 43: - if (lookahead == 'h') ADVANCE(3); - if (lookahead == 'm') ADVANCE(5); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); - END_STATE(); + if (lookahead == 'h') + ADVANCE (3); + if (lookahead == 'm') + ADVANCE (5); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (42); + END_STATE (); case 44: - if (lookahead == 'h') ADVANCE(3); - if (lookahead == 'm') ADVANCE(5); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(43); - END_STATE(); + if (lookahead == 'h') + ADVANCE (3); + if (lookahead == 'm') + ADVANCE (5); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (43); + END_STATE (); case 45: - if (lookahead == 'h') ADVANCE(3); - if (lookahead == 'm') ADVANCE(5); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); - END_STATE(); + if (lookahead == 'h') + ADVANCE (3); + if (lookahead == 'm') + ADVANCE (5); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (45); + END_STATE (); case 46: - if (lookahead == 'h') ADVANCE(82); - END_STATE(); + if (lookahead == 'h') + ADVANCE (82); + END_STATE (); case 47: - if (lookahead == 'h') ADVANCE(57); - END_STATE(); + if (lookahead == 'h') + ADVANCE (57); + END_STATE (); case 48: - if (lookahead == 'i') ADVANCE(55); - END_STATE(); + if (lookahead == 'i') + ADVANCE (55); + END_STATE (); case 49: - if (lookahead == 'k') ADVANCE(80); - END_STATE(); + if (lookahead == 'k') + ADVANCE (80); + END_STATE (); case 50: - if (lookahead == 'l') ADVANCE(90); - END_STATE(); + if (lookahead == 'l') + ADVANCE (90); + END_STATE (); case 51: - if (lookahead == 'l') ADVANCE(39); - END_STATE(); + if (lookahead == 'l') + ADVANCE (39); + END_STATE (); case 52: - if (lookahead == 'm') ADVANCE(132); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(52); - END_STATE(); + if (lookahead == 'm') + ADVANCE (132); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (52); + END_STATE (); case 53: - if (lookahead == 'n') ADVANCE(27); - END_STATE(); + if (lookahead == 'n') + ADVANCE (27); + END_STATE (); case 54: - if (lookahead == 'o') ADVANCE(58); - END_STATE(); + if (lookahead == 'o') + ADVANCE (58); + END_STATE (); case 55: - if (lookahead == 'o') ADVANCE(53); - END_STATE(); + if (lookahead == 'o') + ADVANCE (53); + END_STATE (); case 56: - if (lookahead == 'o') ADVANCE(4); - END_STATE(); + if (lookahead == 'o') + ADVANCE (4); + END_STATE (); case 57: - if (lookahead == 'o') ADVANCE(60); - END_STATE(); + if (lookahead == 'o') + ADVANCE (60); + END_STATE (); case 58: - if (lookahead == 'p') ADVANCE(88); - END_STATE(); + if (lookahead == 'p') + ADVANCE (88); + END_STATE (); case 59: - if (lookahead == 'r') ADVANCE(31); - END_STATE(); + if (lookahead == 'r') + ADVANCE (31); + END_STATE (); case 60: - if (lookahead == 'r') ADVANCE(26); - END_STATE(); + if (lookahead == 'r') + ADVANCE (26); + END_STATE (); case 61: - if (lookahead == 's') ADVANCE(131); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61); - END_STATE(); + if (lookahead == 's') + ADVANCE (131); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (61); + END_STATE (); case 62: - if (lookahead == 's') ADVANCE(40); - END_STATE(); + if (lookahead == 's') + ADVANCE (40); + END_STATE (); case 63: - if (lookahead == 't') ADVANCE(48); - END_STATE(); + if (lookahead == 't') + ADVANCE (48); + END_STATE (); case 64: - if (lookahead == 't') ADVANCE(34); - END_STATE(); + if (lookahead == 't') + ADVANCE (34); + END_STATE (); case 65: - if (lookahead == 't') ADVANCE(47); - END_STATE(); + if (lookahead == 't') + ADVANCE (47); + END_STATE (); case 66: - if (lookahead == 't') ADVANCE(41); - END_STATE(); + if (lookahead == 't') + ADVANCE (41); + END_STATE (); case 67: - if (lookahead == 'u') ADVANCE(59); - END_STATE(); + if (lookahead == 'u') + ADVANCE (59); + END_STATE (); case 68: - if (lookahead == 'u') ADVANCE(65); - END_STATE(); + if (lookahead == 'u') + ADVANCE (65); + END_STATE (); case 69: - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(124); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (124); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 70: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(52); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (52); + END_STATE (); case 71: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (61); + END_STATE (); case 72: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(23); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (23); + END_STATE (); case 73: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (127); + END_STATE (); case 74: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (72); + END_STATE (); case 75: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9')) + ADVANCE (73); + END_STATE (); case 76: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77); - END_STATE(); + if (('0' <= lookahead && lookahead <= '9') + || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' + || ('a' <= lookahead && lookahead <= 'z')) + ADVANCE (77); + END_STATE (); case 77: - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(7); - END_STATE(); + if (lookahead == '-' || ('0' <= lookahead && lookahead <= '9') + || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' + || ('a' <= lookahead && lookahead <= 'z')) + ADVANCE (7); + END_STATE (); case 78: - ACCEPT_TOKEN(ts_builtin_sym_end); - END_STATE(); + ACCEPT_TOKEN (ts_builtin_sym_end); + END_STATE (); case 79: - ACCEPT_TOKEN(anon_sym_LF); - if (lookahead == '\n') ADVANCE(79); - END_STATE(); + ACCEPT_TOKEN (anon_sym_LF); + if (lookahead == '\n') + ADVANCE (79); + END_STATE (); case 80: - ACCEPT_TOKEN(anon_sym_pick); - END_STATE(); + ACCEPT_TOKEN (anon_sym_pick); + END_STATE (); case 81: - ACCEPT_TOKEN(anon_sym_p); - if (lookahead == 'i') ADVANCE(33); - END_STATE(); + ACCEPT_TOKEN (anon_sym_p); + if (lookahead == 'i') + ADVANCE (33); + END_STATE (); case 82: - ACCEPT_TOKEN(anon_sym_watch); - if (lookahead == 'e') ADVANCE(36); - END_STATE(); + ACCEPT_TOKEN (anon_sym_watch); + if (lookahead == 'e') + ADVANCE (36); + END_STATE (); case 83: - ACCEPT_TOKEN(anon_sym_w); - if (lookahead == 'a') ADVANCE(64); - if (lookahead == 'd') ADVANCE(85); - END_STATE(); + ACCEPT_TOKEN (anon_sym_w); + if (lookahead == 'a') + ADVANCE (64); + if (lookahead == 'd') + ADVANCE (85); + END_STATE (); case 84: - ACCEPT_TOKEN(anon_sym_watched); - END_STATE(); + ACCEPT_TOKEN (anon_sym_watched); + END_STATE (); case 85: - ACCEPT_TOKEN(anon_sym_wd); - END_STATE(); + ACCEPT_TOKEN (anon_sym_wd); + END_STATE (); case 86: - ACCEPT_TOKEN(anon_sym_add); - END_STATE(); + ACCEPT_TOKEN (anon_sym_add); + END_STATE (); case 87: - ACCEPT_TOKEN(anon_sym_a); - if (lookahead == 'd') ADVANCE(35); - END_STATE(); + ACCEPT_TOKEN (anon_sym_a); + if (lookahead == 'd') + ADVANCE (35); + END_STATE (); case 88: - ACCEPT_TOKEN(anon_sym_drop); - END_STATE(); + ACCEPT_TOKEN (anon_sym_drop); + END_STATE (); case 89: - ACCEPT_TOKEN(anon_sym_d); - if (lookahead == 'r') ADVANCE(54); - END_STATE(); + ACCEPT_TOKEN (anon_sym_d); + if (lookahead == 'r') + ADVANCE (54); + END_STATE (); case 90: - ACCEPT_TOKEN(anon_sym_url); - END_STATE(); + ACCEPT_TOKEN (anon_sym_url); + END_STATE (); case 91: - ACCEPT_TOKEN(anon_sym_u); - if (lookahead == 'r') ADVANCE(50); - END_STATE(); + ACCEPT_TOKEN (anon_sym_u); + if (lookahead == 'r') + ADVANCE (50); + END_STATE (); case 92: - ACCEPT_TOKEN(aux_sym_flag_token1); - if (lookahead == '"') ADVANCE(94); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(12); - if (lookahead != 0) ADVANCE(92); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token1); + if (lookahead == '"') + ADVANCE (94); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (12); + if (lookahead != 0) + ADVANCE (92); + END_STATE (); case 93: - ACCEPT_TOKEN(aux_sym_flag_token1); - if (lookahead == '\'') ADVANCE(94); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(16); - if (lookahead != 0) ADVANCE(93); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token1); + if (lookahead == '\'') + ADVANCE (94); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (16); + if (lookahead != 0) + ADVANCE (93); + END_STATE (); case 94: - ACCEPT_TOKEN(aux_sym_flag_token1); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(94); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token1); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (94); + END_STATE (); case 95: - ACCEPT_TOKEN(aux_sym_flag_token2); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token2); + END_STATE (); case 96: - ACCEPT_TOKEN(aux_sym_flag_token3); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token3); + END_STATE (); case 97: - ACCEPT_TOKEN(aux_sym_flag_token4); - if (lookahead == '"') ADVANCE(99); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(13); - if (lookahead != 0) ADVANCE(97); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token4); + if (lookahead == '"') + ADVANCE (99); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (13); + if (lookahead != 0) + ADVANCE (97); + END_STATE (); case 98: - ACCEPT_TOKEN(aux_sym_flag_token4); - if (lookahead == '\'') ADVANCE(99); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(17); - if (lookahead != 0) ADVANCE(98); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token4); + if (lookahead == '\'') + ADVANCE (99); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (17); + if (lookahead != 0) + ADVANCE (98); + END_STATE (); case 99: - ACCEPT_TOKEN(aux_sym_flag_token4); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(99); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token4); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (99); + END_STATE (); case 100: - ACCEPT_TOKEN(aux_sym_flag_token5); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token5); + END_STATE (); case 101: - ACCEPT_TOKEN(aux_sym_flag_token6); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token6); + END_STATE (); case 102: - ACCEPT_TOKEN(aux_sym_flag_token7); - if (lookahead == '"') ADVANCE(104); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(14); - if (lookahead != 0) ADVANCE(102); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token7); + if (lookahead == '"') + ADVANCE (104); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (14); + if (lookahead != 0) + ADVANCE (102); + END_STATE (); case 103: - ACCEPT_TOKEN(aux_sym_flag_token7); - if (lookahead == '\'') ADVANCE(104); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(18); - if (lookahead != 0) ADVANCE(103); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token7); + if (lookahead == '\'') + ADVANCE (104); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (18); + if (lookahead != 0) + ADVANCE (103); + END_STATE (); case 104: - ACCEPT_TOKEN(aux_sym_flag_token7); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(104); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token7); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (104); + END_STATE (); case 105: - ACCEPT_TOKEN(aux_sym_flag_token8); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token8); + END_STATE (); case 106: - ACCEPT_TOKEN(aux_sym_flag_token9); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token9); + END_STATE (); case 107: - ACCEPT_TOKEN(aux_sym_flag_token10); - if (lookahead == '"') ADVANCE(109); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(15); - if (lookahead != 0) ADVANCE(107); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token10); + if (lookahead == '"') + ADVANCE (109); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (15); + if (lookahead != 0) + ADVANCE (107); + END_STATE (); case 108: - ACCEPT_TOKEN(aux_sym_flag_token10); - if (lookahead == '\'') ADVANCE(109); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(19); - if (lookahead != 0) ADVANCE(108); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token10); + if (lookahead == '\'') + ADVANCE (109); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (19); + if (lookahead != 0) + ADVANCE (108); + END_STATE (); case 109: - ACCEPT_TOKEN(aux_sym_flag_token10); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != ' ') ADVANCE(109); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token10); + if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) + && lookahead != ' ') + ADVANCE (109); + END_STATE (); case 110: - ACCEPT_TOKEN(aux_sym_flag_token11); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token11); + END_STATE (); case 111: - ACCEPT_TOKEN(aux_sym_flag_token12); - END_STATE(); + ACCEPT_TOKEN (aux_sym_flag_token12); + END_STATE (); case 112: - ACCEPT_TOKEN(sym_id); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(112); - END_STATE(); + ACCEPT_TOKEN (sym_id); + if (('0' <= lookahead && lookahead <= '9') + || ('a' <= lookahead && lookahead <= 'z')) + ADVANCE (112); + END_STATE (); case 113: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == ' ') ADVANCE(117); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == ' ') + ADVANCE (117); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 114: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'N') ADVANCE(119); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'N') + ADVANCE (119); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 115: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == '[') ADVANCE(114); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(115); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == '[') + ADVANCE (114); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (115); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 116: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == ']') ADVANCE(129); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == ']') + ADVANCE (129); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 117: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'a') ADVANCE(123); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'a') + ADVANCE (123); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 118: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'h') ADVANCE(120); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'h') + ADVANCE (120); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 119: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'o') ADVANCE(113); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'o') + ADVANCE (113); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 120: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'o') ADVANCE(121); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'o') + ADVANCE (121); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 121: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'r') ADVANCE(116); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'r') + ADVANCE (116); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 122: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 't') ADVANCE(118); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 't') + ADVANCE (118); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 123: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead == 'u') ADVANCE(122); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead == 'u') + ADVANCE (122); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 124: - ACCEPT_TOKEN(aux_sym_title_token1); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(124); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') + ADVANCE (124); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 125: - ACCEPT_TOKEN(aux_sym_title_token1); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (aux_sym_title_token1); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 126: - ACCEPT_TOKEN(anon_sym_LBRACKNoreleasedate_RBRACK); - END_STATE(); + ACCEPT_TOKEN (anon_sym_LBRACKNoreleasedate_RBRACK); + END_STATE (); case 127: - ACCEPT_TOKEN(aux_sym_date_token1); - END_STATE(); + ACCEPT_TOKEN (aux_sym_date_token1); + END_STATE (); case 128: - ACCEPT_TOKEN(anon_sym_LBRACKNoauthor_RBRACK); - END_STATE(); + ACCEPT_TOKEN (anon_sym_LBRACKNoauthor_RBRACK); + END_STATE (); case 129: - ACCEPT_TOKEN(anon_sym_LBRACKNoauthor_RBRACK); - if (lookahead != 0 && - lookahead != '"') ADVANCE(125); - END_STATE(); + ACCEPT_TOKEN (anon_sym_LBRACKNoauthor_RBRACK); + if (lookahead != 0 && lookahead != '"') + ADVANCE (125); + END_STATE (); case 130: - ACCEPT_TOKEN(anon_sym_LBRACKNoduration_RBRACK); - END_STATE(); + ACCEPT_TOKEN (anon_sym_LBRACKNoduration_RBRACK); + END_STATE (); case 131: - ACCEPT_TOKEN(aux_sym_duration_token1); - END_STATE(); + ACCEPT_TOKEN (aux_sym_duration_token1); + END_STATE (); case 132: - ACCEPT_TOKEN(aux_sym_duration_token2); - END_STATE(); + ACCEPT_TOKEN (aux_sym_duration_token2); + END_STATE (); case 133: - ACCEPT_TOKEN(sym_comment); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(133); - END_STATE(); + ACCEPT_TOKEN (sym_comment); + if (lookahead != 0 && lookahead != '\n') + ADVANCE (133); + END_STATE (); case 134: - ACCEPT_TOKEN(sym_quote); - END_STATE(); + ACCEPT_TOKEN (sym_quote); + END_STATE (); default: return false; - } + } } static const TSLexMode ts_lex_modes[STATE_COUNT] = { - [0] = {.lex_state = 0}, - [1] = {.lex_state = 0}, - [2] = {.lex_state = 0}, - [3] = {.lex_state = 0}, - [4] = {.lex_state = 20}, - [5] = {.lex_state = 20}, - [6] = {.lex_state = 20}, - [7] = {.lex_state = 0}, - [8] = {.lex_state = 0}, - [9] = {.lex_state = 20}, - [10] = {.lex_state = 20}, - [11] = {.lex_state = 0}, - [12] = {.lex_state = 0}, - [13] = {.lex_state = 0}, - [14] = {.lex_state = 0}, - [15] = {.lex_state = 0}, - [16] = {.lex_state = 0}, - [17] = {.lex_state = 0}, - [18] = {.lex_state = 0}, - [19] = {.lex_state = 0}, - [20] = {.lex_state = 0}, - [21] = {.lex_state = 0}, - [22] = {.lex_state = 0}, - [23] = {.lex_state = 25}, - [24] = {.lex_state = 0}, - [25] = {.lex_state = 0}, - [26] = {.lex_state = 0}, - [27] = {.lex_state = 0}, - [28] = {.lex_state = 0}, - [29] = {.lex_state = 69}, - [30] = {.lex_state = 0}, - [31] = {.lex_state = 0}, - [32] = {.lex_state = 0}, - [33] = {.lex_state = 0}, - [34] = {.lex_state = 1}, - [35] = {.lex_state = 0}, - [36] = {.lex_state = 1}, - [37] = {.lex_state = 1}, - [38] = {.lex_state = 69}, + [0] = { .lex_state = 0 }, [1] = { .lex_state = 0 }, + [2] = { .lex_state = 0 }, [3] = { .lex_state = 0 }, + [4] = { .lex_state = 20 }, [5] = { .lex_state = 20 }, + [6] = { .lex_state = 20 }, [7] = { .lex_state = 0 }, + [8] = { .lex_state = 0 }, [9] = { .lex_state = 20 }, + [10] = { .lex_state = 20 }, [11] = { .lex_state = 0 }, + [12] = { .lex_state = 0 }, [13] = { .lex_state = 0 }, + [14] = { .lex_state = 0 }, [15] = { .lex_state = 0 }, + [16] = { .lex_state = 0 }, [17] = { .lex_state = 0 }, + [18] = { .lex_state = 0 }, [19] = { .lex_state = 0 }, + [20] = { .lex_state = 0 }, [21] = { .lex_state = 0 }, + [22] = { .lex_state = 0 }, [23] = { .lex_state = 25 }, + [24] = { .lex_state = 0 }, [25] = { .lex_state = 0 }, + [26] = { .lex_state = 0 }, [27] = { .lex_state = 0 }, + [28] = { .lex_state = 0 }, [29] = { .lex_state = 69 }, + [30] = { .lex_state = 0 }, [31] = { .lex_state = 0 }, + [32] = { .lex_state = 0 }, [33] = { .lex_state = 0 }, + [34] = { .lex_state = 1 }, [35] = { .lex_state = 0 }, + [36] = { .lex_state = 1 }, [37] = { .lex_state = 1 }, + [38] = { .lex_state = 69 }, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -1123,445 +1208,557 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 6, - ACTIONS(11), 1, - ts_builtin_sym_end, - ACTIONS(19), 1, - sym_comment, - STATE(4), 1, - sym_command, - STATE(2), 2, - sym_line, - aux_sym_source_file_repeat1, - ACTIONS(13), 6, - anon_sym_pick, - anon_sym_watched, - anon_sym_wd, - anon_sym_add, - anon_sym_drop, - anon_sym_url, - ACTIONS(16), 6, - anon_sym_p, - anon_sym_watch, - anon_sym_w, - anon_sym_a, - anon_sym_d, - anon_sym_u, + ACTIONS (11), + 1, + ts_builtin_sym_end, + ACTIONS (19), + 1, + sym_comment, + STATE (4), + 1, + sym_command, + STATE (2), + 2, + sym_line, + aux_sym_source_file_repeat1, + ACTIONS (13), + 6, + anon_sym_pick, + anon_sym_watched, + anon_sym_wd, + anon_sym_add, + anon_sym_drop, + anon_sym_url, + ACTIONS (16), + 6, + anon_sym_p, + anon_sym_watch, + anon_sym_w, + anon_sym_a, + anon_sym_d, + anon_sym_u, [30] = 6, - ACTIONS(22), 1, - ts_builtin_sym_end, - ACTIONS(24), 1, - sym_comment, - STATE(4), 1, - sym_command, - STATE(2), 2, - sym_line, - aux_sym_source_file_repeat1, - ACTIONS(5), 6, - anon_sym_pick, - anon_sym_watched, - anon_sym_wd, - anon_sym_add, - anon_sym_drop, - anon_sym_url, - ACTIONS(7), 6, - anon_sym_p, - anon_sym_watch, - anon_sym_w, - anon_sym_a, - anon_sym_d, - anon_sym_u, + ACTIONS (22), + 1, + ts_builtin_sym_end, + ACTIONS (24), + 1, + sym_comment, + STATE (4), + 1, + sym_command, + STATE (2), + 2, + sym_line, + aux_sym_source_file_repeat1, + ACTIONS (5), + 6, + anon_sym_pick, + anon_sym_watched, + anon_sym_wd, + anon_sym_add, + anon_sym_drop, + anon_sym_url, + ACTIONS (7), + 6, + anon_sym_p, + anon_sym_watch, + anon_sym_w, + anon_sym_a, + anon_sym_d, + anon_sym_u, [60] = 3, - ACTIONS(28), 1, - sym_id, - STATE(5), 2, - sym_flag, - aux_sym_line_repeat1, - ACTIONS(26), 12, - aux_sym_flag_token1, - aux_sym_flag_token2, - aux_sym_flag_token3, - aux_sym_flag_token4, - aux_sym_flag_token5, - aux_sym_flag_token6, - aux_sym_flag_token7, - aux_sym_flag_token8, - aux_sym_flag_token9, - aux_sym_flag_token10, - aux_sym_flag_token11, - aux_sym_flag_token12, + ACTIONS (28), + 1, + sym_id, + STATE (5), + 2, + sym_flag, + aux_sym_line_repeat1, + ACTIONS (26), + 12, + aux_sym_flag_token1, + aux_sym_flag_token2, + aux_sym_flag_token3, + aux_sym_flag_token4, + aux_sym_flag_token5, + aux_sym_flag_token6, + aux_sym_flag_token7, + aux_sym_flag_token8, + aux_sym_flag_token9, + aux_sym_flag_token10, + aux_sym_flag_token11, + aux_sym_flag_token12, [82] = 3, - ACTIONS(30), 1, - sym_id, - STATE(6), 2, - sym_flag, - aux_sym_line_repeat1, - ACTIONS(26), 12, - aux_sym_flag_token1, - aux_sym_flag_token2, - aux_sym_flag_token3, - aux_sym_flag_token4, - aux_sym_flag_token5, - aux_sym_flag_token6, - aux_sym_flag_token7, - aux_sym_flag_token8, - aux_sym_flag_token9, - aux_sym_flag_token10, - aux_sym_flag_token11, - aux_sym_flag_token12, + ACTIONS (30), + 1, + sym_id, + STATE (6), + 2, + sym_flag, + aux_sym_line_repeat1, + ACTIONS (26), + 12, + aux_sym_flag_token1, + aux_sym_flag_token2, + aux_sym_flag_token3, + aux_sym_flag_token4, + aux_sym_flag_token5, + aux_sym_flag_token6, + aux_sym_flag_token7, + aux_sym_flag_token8, + aux_sym_flag_token9, + aux_sym_flag_token10, + aux_sym_flag_token11, + aux_sym_flag_token12, [104] = 3, - ACTIONS(35), 1, - sym_id, - STATE(6), 2, - sym_flag, - aux_sym_line_repeat1, - ACTIONS(32), 12, - aux_sym_flag_token1, - aux_sym_flag_token2, - aux_sym_flag_token3, - aux_sym_flag_token4, - aux_sym_flag_token5, - aux_sym_flag_token6, - aux_sym_flag_token7, - aux_sym_flag_token8, - aux_sym_flag_token9, - aux_sym_flag_token10, - aux_sym_flag_token11, - aux_sym_flag_token12, + ACTIONS (35), + 1, + sym_id, + STATE (6), + 2, + sym_flag, + aux_sym_line_repeat1, + ACTIONS (32), + 12, + aux_sym_flag_token1, + aux_sym_flag_token2, + aux_sym_flag_token3, + aux_sym_flag_token4, + aux_sym_flag_token5, + aux_sym_flag_token6, + aux_sym_flag_token7, + aux_sym_flag_token8, + aux_sym_flag_token9, + aux_sym_flag_token10, + aux_sym_flag_token11, + aux_sym_flag_token12, [126] = 2, - ACTIONS(39), 6, - anon_sym_p, - anon_sym_watch, - anon_sym_w, - anon_sym_a, - anon_sym_d, - anon_sym_u, - ACTIONS(37), 8, - ts_builtin_sym_end, - anon_sym_pick, - anon_sym_watched, - anon_sym_wd, - anon_sym_add, - anon_sym_drop, - anon_sym_url, - sym_comment, + ACTIONS (39), + 6, + anon_sym_p, + anon_sym_watch, + anon_sym_w, + anon_sym_a, + anon_sym_d, + anon_sym_u, + ACTIONS (37), + 8, + ts_builtin_sym_end, + anon_sym_pick, + anon_sym_watched, + anon_sym_wd, + anon_sym_add, + anon_sym_drop, + anon_sym_url, + sym_comment, [145] = 2, - ACTIONS(43), 6, - anon_sym_p, - anon_sym_watch, - anon_sym_w, - anon_sym_a, - anon_sym_d, - anon_sym_u, - ACTIONS(41), 8, - ts_builtin_sym_end, - anon_sym_pick, - anon_sym_watched, - anon_sym_wd, - anon_sym_add, - anon_sym_drop, - anon_sym_url, - sym_comment, + ACTIONS (43), + 6, + anon_sym_p, + anon_sym_watch, + anon_sym_w, + anon_sym_a, + anon_sym_d, + anon_sym_u, + ACTIONS (41), + 8, + ts_builtin_sym_end, + anon_sym_pick, + anon_sym_watched, + anon_sym_wd, + anon_sym_add, + anon_sym_drop, + anon_sym_url, + sym_comment, [164] = 2, - ACTIONS(47), 1, - sym_id, - ACTIONS(45), 12, - aux_sym_flag_token1, - aux_sym_flag_token2, - aux_sym_flag_token3, - aux_sym_flag_token4, - aux_sym_flag_token5, - aux_sym_flag_token6, - aux_sym_flag_token7, - aux_sym_flag_token8, - aux_sym_flag_token9, - aux_sym_flag_token10, - aux_sym_flag_token11, - aux_sym_flag_token12, + ACTIONS (47), + 1, + sym_id, + ACTIONS (45), + 12, + aux_sym_flag_token1, + aux_sym_flag_token2, + aux_sym_flag_token3, + aux_sym_flag_token4, + aux_sym_flag_token5, + aux_sym_flag_token6, + aux_sym_flag_token7, + aux_sym_flag_token8, + aux_sym_flag_token9, + aux_sym_flag_token10, + aux_sym_flag_token11, + aux_sym_flag_token12, [182] = 2, - ACTIONS(51), 1, - sym_id, - ACTIONS(49), 12, - aux_sym_flag_token1, - aux_sym_flag_token2, - aux_sym_flag_token3, - aux_sym_flag_token4, - aux_sym_flag_token5, - aux_sym_flag_token6, - aux_sym_flag_token7, - aux_sym_flag_token8, - aux_sym_flag_token9, - aux_sym_flag_token10, - aux_sym_flag_token11, - aux_sym_flag_token12, + ACTIONS (51), + 1, + sym_id, + ACTIONS (49), + 12, + aux_sym_flag_token1, + aux_sym_flag_token2, + aux_sym_flag_token3, + aux_sym_flag_token4, + aux_sym_flag_token5, + aux_sym_flag_token6, + aux_sym_flag_token7, + aux_sym_flag_token8, + aux_sym_flag_token9, + aux_sym_flag_token10, + aux_sym_flag_token11, + aux_sym_flag_token12, [200] = 3, - ACTIONS(53), 1, - sym_quote, - STATE(12), 1, - sym_title, - STATE(38), 1, - sym__q, + ACTIONS (53), + 1, + sym_quote, + STATE (12), + 1, + sym_title, + STATE (38), + 1, + sym__q, [210] = 3, - ACTIONS(55), 1, - sym_quote, - STATE(14), 1, - sym_date, - STATE(24), 1, - sym__q, + ACTIONS (55), + 1, + sym_quote, + STATE (14), + 1, + sym_date, + STATE (24), + 1, + sym__q, [220] = 3, - ACTIONS(53), 1, - sym_quote, - STATE(15), 1, - sym_title, - STATE(38), 1, - sym__q, + ACTIONS (53), + 1, + sym_quote, + STATE (15), + 1, + sym_title, + STATE (38), + 1, + sym__q, [230] = 3, - ACTIONS(57), 1, - sym_quote, - STATE(16), 1, - sym_author, - STATE(23), 1, - sym__q, + ACTIONS (57), + 1, + sym_quote, + STATE (16), + 1, + sym_author, + STATE (23), + 1, + sym__q, [240] = 3, - ACTIONS(55), 1, - sym_quote, - STATE(17), 1, - sym_date, - STATE(24), 1, - sym__q, + ACTIONS (55), + 1, + sym_quote, + STATE (17), + 1, + sym_date, + STATE (24), + 1, + sym__q, [250] = 3, - ACTIONS(59), 1, - sym_quote, - STATE(18), 1, - sym_duration, - STATE(19), 1, - sym__q, + ACTIONS (59), + 1, + sym_quote, + STATE (18), + 1, + sym_duration, + STATE (19), + 1, + sym__q, [260] = 3, - ACTIONS(57), 1, - sym_quote, - STATE(20), 1, - sym_author, - STATE(23), 1, - sym__q, + ACTIONS (57), + 1, + sym_quote, + STATE (20), + 1, + sym_author, + STATE (23), + 1, + sym__q, [270] = 3, - ACTIONS(61), 1, - sym_quote, - STATE(29), 1, - sym__q, - STATE(34), 1, - sym_url, + ACTIONS (61), + 1, + sym_quote, + STATE (29), + 1, + sym__q, + STATE (34), + 1, + sym_url, [280] = 1, - ACTIONS(63), 3, - anon_sym_LBRACKNoduration_RBRACK, - aux_sym_duration_token1, - aux_sym_duration_token2, + ACTIONS (63), + 3, + anon_sym_LBRACKNoduration_RBRACK, + aux_sym_duration_token1, + aux_sym_duration_token2, [286] = 3, - ACTIONS(59), 1, - sym_quote, - STATE(19), 1, - sym__q, - STATE(21), 1, - sym_duration, + ACTIONS (59), + 1, + sym_quote, + STATE (19), + 1, + sym__q, + STATE (21), + 1, + sym_duration, [296] = 3, - ACTIONS(61), 1, - sym_quote, - STATE(29), 1, - sym__q, - STATE(36), 1, - sym_url, + ACTIONS (61), + 1, + sym_quote, + STATE (29), + 1, + sym__q, + STATE (36), + 1, + sym_url, [306] = 2, - ACTIONS(65), 1, - sym_quote, - STATE(33), 1, - sym__q, + ACTIONS (65), + 1, + sym_quote, + STATE (33), + 1, + sym__q, [313] = 1, - ACTIONS(67), 2, - aux_sym_title_token1, - anon_sym_LBRACKNoauthor_RBRACK, + ACTIONS (67), + 2, + aux_sym_title_token1, + anon_sym_LBRACKNoauthor_RBRACK, [318] = 1, - ACTIONS(69), 2, - anon_sym_LBRACKNoreleasedate_RBRACK, - aux_sym_date_token1, + ACTIONS (69), + 2, + anon_sym_LBRACKNoreleasedate_RBRACK, + aux_sym_date_token1, [323] = 2, - ACTIONS(71), 1, - sym_quote, - STATE(31), 1, - sym__q, + ACTIONS (71), + 1, + sym_quote, + STATE (31), + 1, + sym__q, [330] = 2, - ACTIONS(73), 1, - sym_quote, - STATE(35), 1, - sym__q, + ACTIONS (73), + 1, + sym_quote, + STATE (35), + 1, + sym__q, [337] = 2, - ACTIONS(75), 1, - sym_quote, - STATE(32), 1, - sym__q, + ACTIONS (75), + 1, + sym_quote, + STATE (32), + 1, + sym__q, [344] = 2, - ACTIONS(77), 1, - sym_quote, - STATE(37), 1, - sym__q, + ACTIONS (77), + 1, + sym_quote, + STATE (37), + 1, + sym__q, [351] = 1, - ACTIONS(79), 1, - aux_sym_title_token1, + ACTIONS (79), + 1, + aux_sym_title_token1, [355] = 1, - ACTIONS(81), 1, - ts_builtin_sym_end, + ACTIONS (81), + 1, + ts_builtin_sym_end, [359] = 1, - ACTIONS(83), 1, - sym_quote, + ACTIONS (83), + 1, + sym_quote, [363] = 1, - ACTIONS(85), 1, - sym_quote, + ACTIONS (85), + 1, + sym_quote, [367] = 1, - ACTIONS(87), 1, - sym_quote, + ACTIONS (87), + 1, + sym_quote, [371] = 1, - ACTIONS(89), 1, - anon_sym_LF, + ACTIONS (89), + 1, + anon_sym_LF, [375] = 1, - ACTIONS(91), 1, - sym_quote, + ACTIONS (91), + 1, + sym_quote, [379] = 1, - ACTIONS(93), 1, - anon_sym_LF, + ACTIONS (93), + 1, + anon_sym_LF, [383] = 1, - ACTIONS(95), 1, - anon_sym_LF, + ACTIONS (95), + 1, + anon_sym_LF, [387] = 1, - ACTIONS(97), 1, - aux_sym_title_token1, + ACTIONS (97), + 1, + aux_sym_title_token1, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 30, - [SMALL_STATE(4)] = 60, - [SMALL_STATE(5)] = 82, - [SMALL_STATE(6)] = 104, - [SMALL_STATE(7)] = 126, - [SMALL_STATE(8)] = 145, - [SMALL_STATE(9)] = 164, - [SMALL_STATE(10)] = 182, - [SMALL_STATE(11)] = 200, - [SMALL_STATE(12)] = 210, - [SMALL_STATE(13)] = 220, - [SMALL_STATE(14)] = 230, - [SMALL_STATE(15)] = 240, - [SMALL_STATE(16)] = 250, - [SMALL_STATE(17)] = 260, - [SMALL_STATE(18)] = 270, - [SMALL_STATE(19)] = 280, - [SMALL_STATE(20)] = 286, - [SMALL_STATE(21)] = 296, - [SMALL_STATE(22)] = 306, - [SMALL_STATE(23)] = 313, - [SMALL_STATE(24)] = 318, - [SMALL_STATE(25)] = 323, - [SMALL_STATE(26)] = 330, - [SMALL_STATE(27)] = 337, - [SMALL_STATE(28)] = 344, - [SMALL_STATE(29)] = 351, - [SMALL_STATE(30)] = 355, - [SMALL_STATE(31)] = 359, - [SMALL_STATE(32)] = 363, - [SMALL_STATE(33)] = 367, - [SMALL_STATE(34)] = 371, - [SMALL_STATE(35)] = 375, - [SMALL_STATE(36)] = 379, - [SMALL_STATE(37)] = 383, - [SMALL_STATE(38)] = 387, + [SMALL_STATE (2)] = 0, [SMALL_STATE (3)] = 30, [SMALL_STATE (4)] = 60, + [SMALL_STATE (5)] = 82, [SMALL_STATE (6)] = 104, [SMALL_STATE (7)] = 126, + [SMALL_STATE (8)] = 145, [SMALL_STATE (9)] = 164, [SMALL_STATE (10)] = 182, + [SMALL_STATE (11)] = 200, [SMALL_STATE (12)] = 210, [SMALL_STATE (13)] = 220, + [SMALL_STATE (14)] = 230, [SMALL_STATE (15)] = 240, [SMALL_STATE (16)] = 250, + [SMALL_STATE (17)] = 260, [SMALL_STATE (18)] = 270, [SMALL_STATE (19)] = 280, + [SMALL_STATE (20)] = 286, [SMALL_STATE (21)] = 296, [SMALL_STATE (22)] = 306, + [SMALL_STATE (23)] = 313, [SMALL_STATE (24)] = 318, [SMALL_STATE (25)] = 323, + [SMALL_STATE (26)] = 330, [SMALL_STATE (27)] = 337, [SMALL_STATE (28)] = 344, + [SMALL_STATE (29)] = 351, [SMALL_STATE (30)] = 355, [SMALL_STATE (31)] = 359, + [SMALL_STATE (32)] = 363, [SMALL_STATE (33)] = 367, [SMALL_STATE (34)] = 371, + [SMALL_STATE (35)] = 375, [SMALL_STATE (36)] = 379, [SMALL_STATE (37)] = 383, + [SMALL_STATE (38)] = 387, }; 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_source_file, 0, 0, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [11] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), - [13] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(10), - [16] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(10), - [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2), - [22] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), - [24] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [26] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [28] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [30] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [32] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_repeat1, 2, 0, 0), SHIFT_REPEAT(9), - [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_line_repeat1, 2, 0, 0), - [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line, 8, 0, 0), - [39] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_line, 8, 0, 0), - [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line, 9, 0, 0), - [43] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_line, 9, 0, 0), - [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_flag, 1, 0, 0), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_flag, 1, 0, 0), - [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 1, 0, 0), - [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 1, 0, 0), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [81] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_author, 3, 0, 0), - [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_date, 3, 0, 0), - [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_title, 3, 0, 0), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_duration, 3, 0, 0), - [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url, 3, 0, 0), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [0] = { .entry = { .count = 0, .reusable = false } }, + [1] = { .entry = { .count = 1, .reusable = false } }, + RECOVER (), + [3] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_source_file, 0, 0, 0), + [5] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (10), + [7] = { .entry = { .count = 1, .reusable = false } }, + SHIFT (10), + [9] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (3), + [11] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (aux_sym_source_file_repeat1, 2, 0, 0), + [13] = { .entry = { .count = 2, .reusable = true } }, + REDUCE (aux_sym_source_file_repeat1, 2, 0, 0), + SHIFT_REPEAT (10), + [16] = { .entry = { .count = 2, .reusable = false } }, + REDUCE (aux_sym_source_file_repeat1, 2, 0, 0), + SHIFT_REPEAT (10), + [19] = { .entry = { .count = 2, .reusable = true } }, + REDUCE (aux_sym_source_file_repeat1, 2, 0, 0), + SHIFT_REPEAT (2), + [22] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_source_file, 1, 0, 0), + [24] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (2), + [26] = { .entry = { .count = 1, .reusable = false } }, + SHIFT (9), + [28] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (11), + [30] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (13), + [32] = { .entry = { .count = 2, .reusable = false } }, + REDUCE (aux_sym_line_repeat1, 2, 0, 0), + SHIFT_REPEAT (9), + [35] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (aux_sym_line_repeat1, 2, 0, 0), + [37] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_line, 8, 0, 0), + [39] = { .entry = { .count = 1, .reusable = false } }, + REDUCE (sym_line, 8, 0, 0), + [41] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_line, 9, 0, 0), + [43] = { .entry = { .count = 1, .reusable = false } }, + REDUCE (sym_line, 9, 0, 0), + [45] = { .entry = { .count = 1, .reusable = false } }, + REDUCE (sym_flag, 1, 0, 0), + [47] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_flag, 1, 0, 0), + [49] = { .entry = { .count = 1, .reusable = false } }, + REDUCE (sym_command, 1, 0, 0), + [51] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_command, 1, 0, 0), + [53] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (38), + [55] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (24), + [57] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (23), + [59] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (19), + [61] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (29), + [63] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (26), + [65] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (33), + [67] = { .entry = { .count = 1, .reusable = false } }, + SHIFT (25), + [69] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (27), + [71] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (31), + [73] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (35), + [75] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (32), + [77] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (37), + [79] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (28), + [81] = { .entry = { .count = 1, .reusable = true } }, + ACCEPT_INPUT (), + [83] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_author, 3, 0, 0), + [85] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_date, 3, 0, 0), + [87] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_title, 3, 0, 0), + [89] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (7), + [91] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_duration, 3, 0, 0), + [93] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (8), + [95] = { .entry = { .count = 1, .reusable = true } }, + REDUCE (sym_url, 3, 0, 0), + [97] = { .entry = { .count = 1, .reusable = true } }, + SHIFT (22), }; #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif #ifdef TREE_SITTER_HIDE_SYMBOLS #define TS_PUBLIC #elif defined(_WIN32) -#define TS_PUBLIC __declspec(dllexport) +#define TS_PUBLIC __declspec (dllexport) #else -#define TS_PUBLIC __attribute__((visibility("default"))) +#define TS_PUBLIC __attribute__ ((visibility ("default"))) #endif -TS_PUBLIC const TSLanguage *tree_sitter_yts(void) { - static const TSLanguage language = { - .version = LANGUAGE_VERSION, - .symbol_count = SYMBOL_COUNT, - .alias_count = ALIAS_COUNT, - .token_count = TOKEN_COUNT, - .external_token_count = EXTERNAL_TOKEN_COUNT, - .state_count = STATE_COUNT, - .large_state_count = LARGE_STATE_COUNT, - .production_id_count = PRODUCTION_ID_COUNT, - .field_count = FIELD_COUNT, - .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, - .parse_table = &ts_parse_table[0][0], - .small_parse_table = ts_small_parse_table, - .small_parse_table_map = ts_small_parse_table_map, - .parse_actions = ts_parse_actions, - .symbol_names = ts_symbol_names, - .symbol_metadata = ts_symbol_metadata, - .public_symbol_map = ts_symbol_map, - .alias_map = ts_non_terminal_alias_map, - .alias_sequences = &ts_alias_sequences[0][0], - .lex_modes = ts_lex_modes, - .lex_fn = ts_lex, - .primary_state_ids = ts_primary_state_ids, - }; - return &language; -} + TS_PUBLIC const TSLanguage * + tree_sitter_yts (void) + { + static const TSLanguage language = { + .version = LANGUAGE_VERSION, + .symbol_count = SYMBOL_COUNT, + .alias_count = ALIAS_COUNT, + .token_count = TOKEN_COUNT, + .external_token_count = EXTERNAL_TOKEN_COUNT, + .state_count = STATE_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .production_id_count = PRODUCTION_ID_COUNT, + .field_count = FIELD_COUNT, + .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, + .parse_table = &ts_parse_table[0][0], + .small_parse_table = ts_small_parse_table, + .small_parse_table_map = ts_small_parse_table_map, + .parse_actions = ts_parse_actions, + .symbol_names = ts_symbol_names, + .symbol_metadata = ts_symbol_metadata, + .public_symbol_map = ts_symbol_map, + .alias_map = ts_non_terminal_alias_map, + .alias_sequences = &ts_alias_sequences[0][0], + .lex_modes = ts_lex_modes, + .lex_fn = ts_lex, + .primary_state_ids = ts_primary_state_ids, + }; + return &language; + } #ifdef __cplusplus } #endif diff --git a/tree-sitter-yts/src/tree_sitter/alloc.h b/tree-sitter-yts/src/tree_sitter/alloc.h index e5e685d..fcaeaad 100644 --- a/tree-sitter-yts/src/tree_sitter/alloc.h +++ b/tree-sitter-yts/src/tree_sitter/alloc.h @@ -14,7 +14,8 @@ #define TREE_SITTER_ALLOC_H_ #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif #include <stdbool.h> @@ -24,37 +25,37 @@ extern "C" { // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR -extern void *(*ts_current_malloc)(size_t size); -extern void *(*ts_current_calloc)(size_t count, size_t size); -extern void *(*ts_current_realloc)(void *ptr, size_t size); -extern void (*ts_current_free)(void *ptr); + extern void *(*ts_current_malloc) (size_t size); + extern void *(*ts_current_calloc) (size_t count, size_t size); + extern void *(*ts_current_realloc) (void *ptr, size_t size); + extern void (*ts_current_free) (void *ptr); #ifndef ts_malloc -#define ts_malloc ts_current_malloc +#define ts_malloc ts_current_malloc #endif #ifndef ts_calloc -#define ts_calloc ts_current_calloc +#define ts_calloc ts_current_calloc #endif #ifndef ts_realloc #define ts_realloc ts_current_realloc #endif #ifndef ts_free -#define ts_free ts_current_free +#define ts_free ts_current_free #endif #else #ifndef ts_malloc -#define ts_malloc malloc +#define ts_malloc malloc #endif #ifndef ts_calloc -#define ts_calloc calloc +#define ts_calloc calloc #endif #ifndef ts_realloc #define ts_realloc realloc #endif #ifndef ts_free -#define ts_free free +#define ts_free free #endif #endif diff --git a/tree-sitter-yts/src/tree_sitter/array.h b/tree-sitter-yts/src/tree_sitter/array.h index a961107..576d72e 100644 --- a/tree-sitter-yts/src/tree_sitter/array.h +++ b/tree-sitter-yts/src/tree_sitter/array.h @@ -14,7 +14,8 @@ #define TREE_SITTER_ARRAY_H_ #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif #include "./alloc.h" @@ -32,30 +33,30 @@ extern "C" { #pragma GCC diagnostic ignored "-Wunused-variable" #endif -#define Array(T) \ - struct { \ - T *contents; \ - uint32_t size; \ - uint32_t capacity; \ +#define Array(T) \ + struct \ + { \ + T *contents; \ + uint32_t size; \ + uint32_t capacity; \ } /// Initialize an array. -#define array_init(self) \ +#define array_init(self) \ ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) /// Create an empty array. -#define array_new() \ - { NULL, 0, 0 } +#define array_new() { NULL, 0, 0 } /// Get a pointer to the element at a given `index` in the array. -#define array_get(self, _index) \ - (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) +#define array_get(self, _index) \ + (assert ((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) /// Get a pointer to the first element in the array. -#define array_front(self) array_get(self, 0) +#define array_front(self) array_get (self, 0) /// Get a pointer to the last element in the array. -#define array_back(self) array_get(self, (self)->size - 1) +#define array_back(self) array_get (self, (self)->size - 1) /// Clear the array, setting its size to zero. Note that this does not free any /// memory allocated for the array's contents. @@ -63,67 +64,69 @@ extern "C" { /// Reserve `new_capacity` elements of space in the array. If `new_capacity` is /// less than the array's current capacity, this function has no effect. -#define array_reserve(self, new_capacity) \ - _array__reserve((Array *)(self), array_elem_size(self), new_capacity) +#define array_reserve(self, new_capacity) \ + _array__reserve ((Array *)(self), array_elem_size (self), new_capacity) /// Free any memory allocated for this array. Note that this does not free any /// memory allocated for the array's contents. -#define array_delete(self) _array__delete((Array *)(self)) +#define array_delete(self) _array__delete ((Array *)(self)) /// Push a new `element` onto the end of the array. -#define array_push(self, element) \ - (_array__grow((Array *)(self), 1, array_elem_size(self)), \ +#define array_push(self, element) \ + (_array__grow ((Array *)(self), 1, array_elem_size (self)), \ (self)->contents[(self)->size++] = (element)) /// Increase the array's size by `count` elements. /// New elements are zero-initialized. -#define array_grow_by(self, count) \ - do { \ - if ((count) == 0) break; \ - _array__grow((Array *)(self), count, array_elem_size(self)); \ - memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ - (self)->size += (count); \ - } while (0) +#define array_grow_by(self, count) \ + do \ + { \ + if ((count) == 0) \ + break; \ + _array__grow ((Array *)(self), count, array_elem_size (self)); \ + memset ((self)->contents + (self)->size, 0, \ + (count) * array_elem_size (self)); \ + (self)->size += (count); \ + } \ + while (0) /// Append all elements from one array to the end of another. -#define array_push_all(self, other) \ - array_extend((self), (other)->size, (other)->contents) - -/// Append `count` elements to the end of the array, reading their values from the -/// `contents` pointer. -#define array_extend(self, count, contents) \ - _array__splice( \ - (Array *)(self), array_elem_size(self), (self)->size, \ - 0, count, contents \ - ) - -/// Remove `old_count` elements from the array starting at the given `index`. At -/// the same index, insert `new_count` new elements, reading their values from the -/// `new_contents` pointer. -#define array_splice(self, _index, old_count, new_count, new_contents) \ - _array__splice( \ - (Array *)(self), array_elem_size(self), _index, \ - old_count, new_count, new_contents \ - ) +#define array_push_all(self, other) \ + array_extend ((self), (other)->size, (other)->contents) + +/// Append `count` elements to the end of the array, reading their values from +/// the `contents` pointer. +#define array_extend(self, count, contents) \ + _array__splice ((Array *)(self), array_elem_size (self), (self)->size, 0, \ + count, contents) + +/// Remove `old_count` elements from the array starting at the given `index`. +/// At the same index, insert `new_count` new elements, reading their values +/// from the `new_contents` pointer. +#define array_splice(self, _index, old_count, new_count, new_contents) \ + _array__splice ((Array *)(self), array_elem_size (self), _index, old_count, \ + new_count, new_contents) /// Insert one `element` into the array at the given `index`. -#define array_insert(self, _index, element) \ - _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) +#define array_insert(self, _index, element) \ + _array__splice ((Array *)(self), array_elem_size (self), _index, 0, 1, \ + &(element)) /// Remove one element from the array at the given `index`. -#define array_erase(self, _index) \ - _array__erase((Array *)(self), array_elem_size(self), _index) +#define array_erase(self, _index) \ + _array__erase ((Array *)(self), array_elem_size (self), _index) /// Pop the last element off the array, returning the element by value. #define array_pop(self) ((self)->contents[--(self)->size]) /// Assign the contents of one array to another, reallocating if necessary. -#define array_assign(self, other) \ - _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) +#define array_assign(self, other) \ + _array__assign ((Array *)(self), (const Array *)(other), \ + array_elem_size (self)) /// Swap one array with another -#define array_swap(self, other) \ - _array__swap((Array *)(self), (Array *)(other)) +#define array_swap(self, other) \ + _array__swap ((Array *)(self), (Array *)(other)) /// Get the size of the array contents #define array_elem_size(self) (sizeof *(self)->contents) @@ -136,157 +139,194 @@ extern "C" { /// out-parameter is set to true. Otherwise, `index` is set to an index where /// `needle` should be inserted in order to preserve the sorting, and `exists` /// is set to false. -#define array_search_sorted_with(self, compare, needle, _index, _exists) \ - _array__search_sorted(self, 0, compare, , needle, _index, _exists) +#define array_search_sorted_with(self, compare, needle, _index, _exists) \ + _array__search_sorted (self, 0, compare, , needle, _index, _exists) /// Search a sorted array for a given `needle` value, using integer comparisons -/// of a given struct field (specified with a leading dot) to determine the order. +/// of a given struct field (specified with a leading dot) to determine the +/// order. /// /// See also `array_search_sorted_with`. -#define array_search_sorted_by(self, field, needle, _index, _exists) \ - _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) +#define array_search_sorted_by(self, field, needle, _index, _exists) \ + _array__search_sorted (self, 0, _compare_int, field, needle, _index, _exists) /// Insert a given `value` into a sorted array, using the given `compare` /// callback to determine the order. -#define array_insert_sorted_with(self, compare, value) \ - do { \ - unsigned _index, _exists; \ - array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ - if (!_exists) array_insert(self, _index, value); \ - } while (0) +#define array_insert_sorted_with(self, compare, value) \ + do \ + { \ + unsigned _index, _exists; \ + array_search_sorted_with (self, compare, &(value), &_index, &_exists); \ + if (!_exists) \ + array_insert (self, _index, value); \ + } \ + while (0) /// Insert a given `value` into a sorted array, using integer comparisons of /// a given struct field (specified with a leading dot) to determine the order. /// /// See also `array_search_sorted_by`. -#define array_insert_sorted_by(self, field, value) \ - do { \ - unsigned _index, _exists; \ - array_search_sorted_by(self, field, (value) field, &_index, &_exists); \ - if (!_exists) array_insert(self, _index, value); \ - } while (0) - -// Private - -typedef Array(void) Array; - -/// This is not what you're looking for, see `array_delete`. -static inline void _array__delete(Array *self) { - if (self->contents) { - ts_free(self->contents); - self->contents = NULL; - self->size = 0; - self->capacity = 0; +#define array_insert_sorted_by(self, field, value) \ + do \ + { \ + unsigned _index, _exists; \ + array_search_sorted_by (self, field, (value)field, &_index, &_exists); \ + if (!_exists) \ + array_insert (self, _index, value); \ + } \ + while (0) + + // Private + + typedef Array (void) Array; + + /// This is not what you're looking for, see `array_delete`. + static inline void + _array__delete (Array *self) + { + if (self->contents) + { + ts_free (self->contents); + self->contents = NULL; + self->size = 0; + self->capacity = 0; + } } -} - -/// This is not what you're looking for, see `array_erase`. -static inline void _array__erase(Array *self, size_t element_size, - uint32_t index) { - assert(index < self->size); - char *contents = (char *)self->contents; - memmove(contents + index * element_size, contents + (index + 1) * element_size, - (self->size - index - 1) * element_size); - self->size--; -} -/// This is not what you're looking for, see `array_reserve`. -static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { - if (new_capacity > self->capacity) { - if (self->contents) { - self->contents = ts_realloc(self->contents, new_capacity * element_size); - } else { - self->contents = ts_malloc(new_capacity * element_size); - } - self->capacity = new_capacity; + /// This is not what you're looking for, see `array_erase`. + static inline void + _array__erase (Array *self, size_t element_size, uint32_t index) + { + assert (index < self->size); + char *contents = (char *)self->contents; + memmove (contents + index * element_size, + contents + (index + 1) * element_size, + (self->size - index - 1) * element_size); + self->size--; } -} -/// This is not what you're looking for, see `array_assign`. -static inline void _array__assign(Array *self, const Array *other, size_t element_size) { - _array__reserve(self, element_size, other->size); - self->size = other->size; - memcpy(self->contents, other->contents, self->size * element_size); -} + /// This is not what you're looking for, see `array_reserve`. + static inline void + _array__reserve (Array *self, size_t element_size, uint32_t new_capacity) + { + if (new_capacity > self->capacity) + { + if (self->contents) + { + self->contents + = ts_realloc (self->contents, new_capacity * element_size); + } + else + { + self->contents = ts_malloc (new_capacity * element_size); + } + self->capacity = new_capacity; + } + } -/// This is not what you're looking for, see `array_swap`. -static inline void _array__swap(Array *self, Array *other) { - Array swap = *other; - *other = *self; - *self = swap; -} + /// This is not what you're looking for, see `array_assign`. + static inline void + _array__assign (Array *self, const Array *other, size_t element_size) + { + _array__reserve (self, element_size, other->size); + self->size = other->size; + memcpy (self->contents, other->contents, self->size * element_size); + } -/// This is not what you're looking for, see `array_push` or `array_grow_by`. -static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { - uint32_t new_size = self->size + count; - if (new_size > self->capacity) { - uint32_t new_capacity = self->capacity * 2; - if (new_capacity < 8) new_capacity = 8; - if (new_capacity < new_size) new_capacity = new_size; - _array__reserve(self, element_size, new_capacity); + /// This is not what you're looking for, see `array_swap`. + static inline void + _array__swap (Array *self, Array *other) + { + Array swap = *other; + *other = *self; + *self = swap; } -} -/// This is not what you're looking for, see `array_splice`. -static inline void _array__splice(Array *self, size_t element_size, - uint32_t index, uint32_t old_count, - uint32_t new_count, const void *elements) { - uint32_t new_size = self->size + new_count - old_count; - uint32_t old_end = index + old_count; - uint32_t new_end = index + new_count; - assert(old_end <= self->size); - - _array__reserve(self, element_size, new_size); - - char *contents = (char *)self->contents; - if (self->size > old_end) { - memmove( - contents + new_end * element_size, - contents + old_end * element_size, - (self->size - old_end) * element_size - ); + /// This is not what you're looking for, see `array_push` or `array_grow_by`. + static inline void + _array__grow (Array *self, uint32_t count, size_t element_size) + { + uint32_t new_size = self->size + count; + if (new_size > self->capacity) + { + uint32_t new_capacity = self->capacity * 2; + if (new_capacity < 8) + new_capacity = 8; + if (new_capacity < new_size) + new_capacity = new_size; + _array__reserve (self, element_size, new_capacity); + } } - if (new_count > 0) { - if (elements) { - memcpy( - (contents + index * element_size), - elements, - new_count * element_size - ); - } else { - memset( - (contents + index * element_size), - 0, - new_count * element_size - ); - } + + /// This is not what you're looking for, see `array_splice`. + static inline void + _array__splice (Array *self, size_t element_size, uint32_t index, + uint32_t old_count, uint32_t new_count, const void *elements) + { + uint32_t new_size = self->size + new_count - old_count; + uint32_t old_end = index + old_count; + uint32_t new_end = index + new_count; + assert (old_end <= self->size); + + _array__reserve (self, element_size, new_size); + + char *contents = (char *)self->contents; + if (self->size > old_end) + { + memmove (contents + new_end * element_size, + contents + old_end * element_size, + (self->size - old_end) * element_size); + } + if (new_count > 0) + { + if (elements) + { + memcpy ((contents + index * element_size), elements, + new_count * element_size); + } + else + { + memset ((contents + index * element_size), 0, + new_count * element_size); + } + } + self->size += new_count - old_count; } - self->size += new_count - old_count; -} /// A binary search routine, based on Rust's `std::slice::binary_search_by`. -/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`. -#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ - do { \ - *(_index) = start; \ - *(_exists) = false; \ - uint32_t size = (self)->size - *(_index); \ - if (size == 0) break; \ - int comparison; \ - while (size > 1) { \ - uint32_t half_size = size / 2; \ - uint32_t mid_index = *(_index) + half_size; \ - comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ - if (comparison <= 0) *(_index) = mid_index; \ - size -= half_size; \ - } \ - comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ - if (comparison == 0) *(_exists) = true; \ - else if (comparison < 0) *(_index) += 1; \ - } while (0) - -/// Helper macro for the `_sorted_by` routines below. This takes the left (existing) -/// parameter by reference in order to work with the generic sorting function above. +/// This is not what you're looking for, see `array_search_sorted_with` or +/// `array_search_sorted_by`. +#define _array__search_sorted(self, start, compare, suffix, needle, _index, \ + _exists) \ + do \ + { \ + *(_index) = start; \ + *(_exists) = false; \ + uint32_t size = (self)->size - *(_index); \ + if (size == 0) \ + break; \ + int comparison; \ + while (size > 1) \ + { \ + uint32_t half_size = size / 2; \ + uint32_t mid_index = *(_index) + half_size; \ + comparison \ + = compare (&((self)->contents[mid_index] suffix), (needle)); \ + if (comparison <= 0) \ + *(_index) = mid_index; \ + size -= half_size; \ + } \ + comparison = compare (&((self)->contents[*(_index)] suffix), (needle)); \ + if (comparison == 0) \ + *(_exists) = true; \ + else if (comparison < 0) \ + *(_index) += 1; \ + } \ + while (0) + +/// Helper macro for the `_sorted_by` routines below. This takes the left +/// (existing) parameter by reference in order to work with the generic sorting +/// function above. #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER @@ -299,4 +339,4 @@ static inline void _array__splice(Array *self, size_t element_size, } #endif -#endif // TREE_SITTER_ARRAY_H_ +#endif // TREE_SITTER_ARRAY_H_ diff --git a/tree-sitter-yts/src/tree_sitter/parser.h b/tree-sitter-yts/src/tree_sitter/parser.h index fab4621..aec3b17 100644 --- a/tree-sitter-yts/src/tree_sitter/parser.h +++ b/tree-sitter-yts/src/tree_sitter/parser.h @@ -14,210 +14,233 @@ #define TREE_SITTER_PARSER_H_ #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif #include <stdbool.h> #include <stdint.h> #include <stdlib.h> -#define ts_builtin_sym_error ((TSSymbol)-1) +#define ts_builtin_sym_error ((TSSymbol) - 1) #define ts_builtin_sym_end 0 #define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 #ifndef TREE_SITTER_API_H_ -typedef uint16_t TSStateId; -typedef uint16_t TSSymbol; -typedef uint16_t TSFieldId; -typedef struct TSLanguage TSLanguage; + typedef uint16_t TSStateId; + typedef uint16_t TSSymbol; + typedef uint16_t TSFieldId; + typedef struct TSLanguage TSLanguage; #endif -typedef struct { - TSFieldId field_id; - uint8_t child_index; - bool inherited; -} TSFieldMapEntry; - -typedef struct { - uint16_t index; - uint16_t length; -} TSFieldMapSlice; - -typedef struct { - bool visible; - bool named; - bool supertype; -} TSSymbolMetadata; - -typedef struct TSLexer TSLexer; - -struct TSLexer { - int32_t lookahead; - TSSymbol result_symbol; - void (*advance)(TSLexer *, bool); - void (*mark_end)(TSLexer *); - uint32_t (*get_column)(TSLexer *); - bool (*is_at_included_range_start)(const TSLexer *); - bool (*eof)(const TSLexer *); - void (*log)(const TSLexer *, const char *, ...); -}; - -typedef enum { - TSParseActionTypeShift, - TSParseActionTypeReduce, - TSParseActionTypeAccept, - TSParseActionTypeRecover, -} TSParseActionType; - -typedef union { - struct { + typedef struct + { + TSFieldId field_id; + uint8_t child_index; + bool inherited; + } TSFieldMapEntry; + + typedef struct + { + uint16_t index; + uint16_t length; + } TSFieldMapSlice; + + typedef struct + { + bool visible; + bool named; + bool supertype; + } TSSymbolMetadata; + + typedef struct TSLexer TSLexer; + + struct TSLexer + { + int32_t lookahead; + TSSymbol result_symbol; + void (*advance) (TSLexer *, bool); + void (*mark_end) (TSLexer *); + uint32_t (*get_column) (TSLexer *); + bool (*is_at_included_range_start) (const TSLexer *); + bool (*eof) (const TSLexer *); + void (*log) (const TSLexer *, const char *, ...); + }; + + typedef enum + { + TSParseActionTypeShift, + TSParseActionTypeReduce, + TSParseActionTypeAccept, + TSParseActionTypeRecover, + } TSParseActionType; + + typedef union + { + struct + { + uint8_t type; + TSStateId state; + bool extra; + bool repetition; + } shift; + struct + { + uint8_t type; + uint8_t child_count; + TSSymbol symbol; + int16_t dynamic_precedence; + uint16_t production_id; + } reduce; uint8_t type; - TSStateId state; - bool extra; - bool repetition; - } shift; - struct { - uint8_t type; - uint8_t child_count; - TSSymbol symbol; - int16_t dynamic_precedence; - uint16_t production_id; - } reduce; - uint8_t type; -} TSParseAction; - -typedef struct { - uint16_t lex_state; - uint16_t external_lex_state; -} TSLexMode; - -typedef union { - TSParseAction action; - struct { - uint8_t count; - bool reusable; - } entry; -} TSParseActionEntry; - -typedef struct { - int32_t start; - int32_t end; -} TSCharacterRange; - -struct TSLanguage { - uint32_t version; - uint32_t symbol_count; - uint32_t alias_count; - uint32_t token_count; - uint32_t external_token_count; - uint32_t state_count; - uint32_t large_state_count; - uint32_t production_id_count; - uint32_t field_count; - uint16_t max_alias_sequence_length; - const uint16_t *parse_table; - const uint16_t *small_parse_table; - const uint32_t *small_parse_table_map; - const TSParseActionEntry *parse_actions; - const char * const *symbol_names; - const char * const *field_names; - const TSFieldMapSlice *field_map_slices; - const TSFieldMapEntry *field_map_entries; - const TSSymbolMetadata *symbol_metadata; - const TSSymbol *public_symbol_map; - const uint16_t *alias_map; - const TSSymbol *alias_sequences; - const TSLexMode *lex_modes; - bool (*lex_fn)(TSLexer *, TSStateId); - bool (*keyword_lex_fn)(TSLexer *, TSStateId); - TSSymbol keyword_capture_token; - struct { - const bool *states; - const TSSymbol *symbol_map; - void *(*create)(void); - void (*destroy)(void *); - bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); - unsigned (*serialize)(void *, char *); - void (*deserialize)(void *, const char *, unsigned); - } external_scanner; - const TSStateId *primary_state_ids; -}; - -static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { - uint32_t index = 0; - uint32_t size = len - index; - while (size > 1) { - uint32_t half_size = size / 2; - uint32_t mid_index = index + half_size; - TSCharacterRange *range = &ranges[mid_index]; - if (lookahead >= range->start && lookahead <= range->end) { - return true; - } else if (lookahead > range->end) { - index = mid_index; - } - size -= half_size; + } TSParseAction; + + typedef struct + { + uint16_t lex_state; + uint16_t external_lex_state; + } TSLexMode; + + typedef union + { + TSParseAction action; + struct + { + uint8_t count; + bool reusable; + } entry; + } TSParseActionEntry; + + typedef struct + { + int32_t start; + int32_t end; + } TSCharacterRange; + + struct TSLanguage + { + uint32_t version; + uint32_t symbol_count; + uint32_t alias_count; + uint32_t token_count; + uint32_t external_token_count; + uint32_t state_count; + uint32_t large_state_count; + uint32_t production_id_count; + uint32_t field_count; + uint16_t max_alias_sequence_length; + const uint16_t *parse_table; + const uint16_t *small_parse_table; + const uint32_t *small_parse_table_map; + const TSParseActionEntry *parse_actions; + const char *const *symbol_names; + const char *const *field_names; + const TSFieldMapSlice *field_map_slices; + const TSFieldMapEntry *field_map_entries; + const TSSymbolMetadata *symbol_metadata; + const TSSymbol *public_symbol_map; + const uint16_t *alias_map; + const TSSymbol *alias_sequences; + const TSLexMode *lex_modes; + bool (*lex_fn) (TSLexer *, TSStateId); + bool (*keyword_lex_fn) (TSLexer *, TSStateId); + TSSymbol keyword_capture_token; + struct + { + const bool *states; + const TSSymbol *symbol_map; + void *(*create) (void); + void (*destroy) (void *); + bool (*scan) (void *, TSLexer *, const bool *symbol_whitelist); + unsigned (*serialize) (void *, char *); + void (*deserialize) (void *, const char *, unsigned); + } external_scanner; + const TSStateId *primary_state_ids; + }; + + static inline bool + set_contains (TSCharacterRange *ranges, uint32_t len, int32_t lookahead) + { + uint32_t index = 0; + uint32_t size = len - index; + while (size > 1) + { + uint32_t half_size = size / 2; + uint32_t mid_index = index + half_size; + TSCharacterRange *range = &ranges[mid_index]; + if (lookahead >= range->start && lookahead <= range->end) + { + return true; + } + else if (lookahead > range->end) + { + index = mid_index; + } + size -= half_size; + } + TSCharacterRange *range = &ranges[index]; + return (lookahead >= range->start && lookahead <= range->end); } - TSCharacterRange *range = &ranges[index]; - return (lookahead >= range->start && lookahead <= range->end); -} -/* - * Lexer Macros - */ + /* + * Lexer Macros + */ #ifdef _MSC_VER -#define UNUSED __pragma(warning(suppress : 4101)) +#define UNUSED __pragma (warning (suppress : 4101)) #else -#define UNUSED __attribute__((unused)) +#define UNUSED __attribute__ ((unused)) #endif -#define START_LEXER() \ - bool result = false; \ - bool skip = false; \ - UNUSED \ - bool eof = false; \ - int32_t lookahead; \ - goto start; \ - next_state: \ - lexer->advance(lexer, skip); \ - start: \ - skip = false; \ +#define START_LEXER() \ + bool result = false; \ + bool skip = false; \ + UNUSED \ + bool eof = false; \ + int32_t lookahead; \ + goto start; \ + next_state: \ + lexer->advance (lexer, skip); \ + start: \ + skip = false; \ lookahead = lexer->lookahead; -#define ADVANCE(state_value) \ - { \ - state = state_value; \ - goto next_state; \ +#define ADVANCE(state_value) \ + { \ + state = state_value; \ + goto next_state; \ } -#define ADVANCE_MAP(...) \ - { \ - static const uint16_t map[] = { __VA_ARGS__ }; \ - for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \ - if (map[i] == lookahead) { \ - state = map[i + 1]; \ - goto next_state; \ - } \ - } \ +#define ADVANCE_MAP(...) \ + { \ + static const uint16_t map[] = { __VA_ARGS__ }; \ + for (uint32_t i = 0; i < sizeof (map) / sizeof (map[0]); i += 2) \ + { \ + if (map[i] == lookahead) \ + { \ + state = map[i + 1]; \ + goto next_state; \ + } \ + } \ } -#define SKIP(state_value) \ - { \ - skip = true; \ - state = state_value; \ - goto next_state; \ +#define SKIP(state_value) \ + { \ + skip = true; \ + state = state_value; \ + goto next_state; \ } -#define ACCEPT_TOKEN(symbol_value) \ - result = true; \ - lexer->result_symbol = symbol_value; \ - lexer->mark_end(lexer); +#define ACCEPT_TOKEN(symbol_value) \ + result = true; \ + lexer->result_symbol = symbol_value; \ + lexer->mark_end (lexer); #define END_STATE() return result; -/* - * Parse Table Macros - */ + /* + * Parse Table Macros + */ #define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) @@ -225,54 +248,57 @@ static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t #define ACTIONS(id) id -#define SHIFT(state_value) \ - {{ \ - .shift = { \ - .type = TSParseActionTypeShift, \ - .state = (state_value) \ - } \ - }} - -#define SHIFT_REPEAT(state_value) \ - {{ \ - .shift = { \ - .type = TSParseActionTypeShift, \ - .state = (state_value), \ - .repetition = true \ - } \ - }} - -#define SHIFT_EXTRA() \ - {{ \ - .shift = { \ - .type = TSParseActionTypeShift, \ - .extra = true \ - } \ - }} - -#define REDUCE(symbol_name, children, precedence, prod_id) \ - {{ \ - .reduce = { \ - .type = TSParseActionTypeReduce, \ - .symbol = symbol_name, \ - .child_count = children, \ - .dynamic_precedence = precedence, \ - .production_id = prod_id \ - }, \ - }} - -#define RECOVER() \ - {{ \ - .type = TSParseActionTypeRecover \ - }} - -#define ACCEPT_INPUT() \ - {{ \ - .type = TSParseActionTypeAccept \ - }} +#define SHIFT(state_value) \ + { \ + { \ + .shift = {.type = TSParseActionTypeShift, .state = (state_value) } \ + } \ + } + +#define SHIFT_REPEAT(state_value) \ + { \ + { \ + .shift \ + = {.type = TSParseActionTypeShift, \ + .state = (state_value), \ + .repetition = true } \ + } \ + } + +#define SHIFT_EXTRA() \ + { \ + { \ + .shift = {.type = TSParseActionTypeShift, .extra = true } \ + } \ + } + +#define REDUCE(symbol_name, children, precedence, prod_id) \ + { \ + { \ + .reduce = { .type = TSParseActionTypeReduce, \ + .symbol = symbol_name, \ + .child_count = children, \ + .dynamic_precedence = precedence, \ + .production_id = prod_id }, \ + } \ + } + +#define RECOVER() \ + { \ + { \ + .type = TSParseActionTypeRecover \ + } \ + } + +#define ACCEPT_INPUT() \ + { \ + { \ + .type = TSParseActionTypeAccept \ + } \ + } #ifdef __cplusplus } #endif -#endif // TREE_SITTER_PARSER_H_ +#endif // TREE_SITTER_PARSER_H_ diff --git a/tree-sitter-yts/tree-sitter.json b/tree-sitter-yts/tree-sitter.json index 380caf6..f1a0586 100644 --- a/tree-sitter-yts/tree-sitter.json +++ b/tree-sitter-yts/tree-sitter.json @@ -5,12 +5,8 @@ "camelcase": "Yts", "scope": "source.yts", "path": ".", - "file-types": [ - "yts" - ], - "highlights": [ - "queries/highlights.scm" - ], + "file-types": ["yts"], + "highlights": ["queries/highlights.scm"], "injection-regex": "^(yts)$" } ], diff --git a/yt/src/cli.rs b/yt/src/cli.rs index fe85a89..d7e084a 100644 --- a/yt/src/cli.rs +++ b/yt/src/cli.rs @@ -230,11 +230,13 @@ pub struct OptionalNaiveDate { } impl FromStr for OptionalNaiveDate { type Err = anyhow::Error; - fn from_str(v: &str) -> Result<Self,Self::Err> { + fn from_str(v: &str) -> Result<Self, Self::Err> { if v == "[No release date]" { - Ok(Self {date: None}) + Ok(Self { date: None }) } else { - Ok(Self {date: Some(NaiveDate::from_str(v)?)}) + Ok(Self { + date: Some(NaiveDate::from_str(v)?), + }) } } } @@ -244,11 +246,13 @@ pub struct OptionalPublisher { } impl FromStr for OptionalPublisher { type Err = anyhow::Error; - fn from_str(v: &str) -> Result<Self,Self::Err> { + fn from_str(v: &str) -> Result<Self, Self::Err> { if v == "[No author]" { - Ok(Self {publisher: None}) + Ok(Self { publisher: None }) } else { - Ok(Self {publisher: Some(v.to_owned())}) + Ok(Self { + publisher: Some(v.to_owned()), + }) } } } diff --git a/yt/src/watch/events/mod.rs b/yt/src/watch/events/mod.rs index 2f74639..b63b33b 100644 --- a/yt/src/watch/events/mod.rs +++ b/yt/src/watch/events/mod.rs @@ -293,7 +293,7 @@ impl MpvEventHandler { } &["yt-description-external"] => { Self::handle_client_message_yt_description_external(app).await?; - }, + } &["yt-description-local"] => { Self::handle_client_message_yt_description_local(app, mpv).await?; } |