/* * yt - A fully featured command line YouTube client * * Copyright (C) 2024 Benedikt Peetz * SPDX-License-Identifier: GPL-3.0-or-later * * This file is part of Yt. * * You should have received a copy of the License along with this program. * If not, see . */ #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 14 #define STATE_COUNT 39 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 48 #define ALIAS_COUNT 0 #define TOKEN_COUNT 36 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 9 #define PRODUCTION_ID_COUNT 1 enum ts_symbol_identifiers { anon_sym_LF = 1, anon_sym_pick = 2, anon_sym_p = 3, anon_sym_watch = 4, anon_sym_w = 5, anon_sym_watched = 6, anon_sym_wd = 7, anon_sym_add = 8, anon_sym_a = 9, anon_sym_drop = 10, anon_sym_d = 11, anon_sym_url = 12, anon_sym_u = 13, aux_sym_flag_token1 = 14, aux_sym_flag_token2 = 15, aux_sym_flag_token3 = 16, aux_sym_flag_token4 = 17, aux_sym_flag_token5 = 18, aux_sym_flag_token6 = 19, aux_sym_flag_token7 = 20, aux_sym_flag_token8 = 21, aux_sym_flag_token9 = 22, aux_sym_flag_token10 = 23, aux_sym_flag_token11 = 24, aux_sym_flag_token12 = 25, sym_id = 26, aux_sym_title_token1 = 27, anon_sym_LBRACKNoreleasedate_RBRACK = 28, aux_sym_date_token1 = 29, anon_sym_LBRACKNoauthor_RBRACK = 30, anon_sym_LBRACKNoduration_RBRACK = 31, aux_sym_duration_token1 = 32, aux_sym_duration_token2 = 33, sym_comment = 34, sym_quote = 35, sym_source_file = 36, sym_line = 37, sym_command = 38, sym_flag = 39, sym_title = 40, sym_date = 41, sym_author = 42, sym_duration = 43, sym_url = 44, sym__q = 45, aux_sym_source_file_repeat1 = 46, aux_sym_line_repeat1 = 47, }; static const char *const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [anon_sym_LF] = "\n", [anon_sym_pick] = "pick", [anon_sym_p] = "p", [anon_sym_watch] = "watch", [anon_sym_w] = "w", [anon_sym_watched] = "watched", [anon_sym_wd] = "wd", [anon_sym_add] = "add", [anon_sym_a] = "a", [anon_sym_drop] = "drop", [anon_sym_d] = "d", [anon_sym_url] = "url", [anon_sym_u] = "u", [aux_sym_flag_token1] = "flag_token1", [aux_sym_flag_token2] = "flag_token2", [aux_sym_flag_token3] = "flag_token3", [aux_sym_flag_token4] = "flag_token4", [aux_sym_flag_token5] = "flag_token5", [aux_sym_flag_token6] = "flag_token6", [aux_sym_flag_token7] = "flag_token7", [aux_sym_flag_token8] = "flag_token8", [aux_sym_flag_token9] = "flag_token9", [aux_sym_flag_token10] = "flag_token10", [aux_sym_flag_token11] = "flag_token11", [aux_sym_flag_token12] = "flag_token12", [sym_id] = "id", [aux_sym_title_token1] = "title_token1", [anon_sym_LBRACKNoreleasedate_RBRACK] = "[No release date]", [aux_sym_date_token1] = "date_token1", [anon_sym_LBRACKNoauthor_RBRACK] = "[No author]", [anon_sym_LBRACKNoduration_RBRACK] = "[No duration]", [aux_sym_duration_token1] = "duration_token1", [aux_sym_duration_token2] = "duration_token2", [sym_comment] = "comment", [sym_quote] = "quote", [sym_source_file] = "source_file", [sym_line] = "line", [sym_command] = "command", [sym_flag] = "flag", [sym_title] = "title", [sym_date] = "date", [sym_author] = "author", [sym_duration] = "duration", [sym_url] = "url", [sym__q] = "_q", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_line_repeat1] = "line_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [anon_sym_LF] = anon_sym_LF, [anon_sym_pick] = anon_sym_pick, [anon_sym_p] = anon_sym_p, [anon_sym_watch] = anon_sym_watch, [anon_sym_w] = anon_sym_w, [anon_sym_watched] = anon_sym_watched, [anon_sym_wd] = anon_sym_wd, [anon_sym_add] = anon_sym_add, [anon_sym_a] = anon_sym_a, [anon_sym_drop] = anon_sym_drop, [anon_sym_d] = anon_sym_d, [anon_sym_url] = anon_sym_url, [anon_sym_u] = anon_sym_u, [aux_sym_flag_token1] = aux_sym_flag_token1, [aux_sym_flag_token2] = aux_sym_flag_token2, [aux_sym_flag_token3] = aux_sym_flag_token3, [aux_sym_flag_token4] = aux_sym_flag_token4, [aux_sym_flag_token5] = aux_sym_flag_token5, [aux_sym_flag_token6] = aux_sym_flag_token6, [aux_sym_flag_token7] = aux_sym_flag_token7, [aux_sym_flag_token8] = aux_sym_flag_token8, [aux_sym_flag_token9] = aux_sym_flag_token9, [aux_sym_flag_token10] = aux_sym_flag_token10, [aux_sym_flag_token11] = aux_sym_flag_token11, [aux_sym_flag_token12] = aux_sym_flag_token12, [sym_id] = sym_id, [aux_sym_title_token1] = aux_sym_title_token1, [anon_sym_LBRACKNoreleasedate_RBRACK] = anon_sym_LBRACKNoreleasedate_RBRACK, [aux_sym_date_token1] = aux_sym_date_token1, [anon_sym_LBRACKNoauthor_RBRACK] = anon_sym_LBRACKNoauthor_RBRACK, [anon_sym_LBRACKNoduration_RBRACK] = anon_sym_LBRACKNoduration_RBRACK, [aux_sym_duration_token1] = aux_sym_duration_token1, [aux_sym_duration_token2] = aux_sym_duration_token2, [sym_comment] = sym_comment, [sym_quote] = sym_quote, [sym_source_file] = sym_source_file, [sym_line] = sym_line, [sym_command] = sym_command, [sym_flag] = sym_flag, [sym_title] = sym_title, [sym_date] = sym_date, [sym_author] = sym_author, [sym_duration] = sym_duration, [sym_url] = sym_url, [sym__q] = sym__q, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_line_repeat1] = aux_sym_line_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { [ts_builtin_sym_end] = { .visible = false, .named = true, }, [anon_sym_LF] = { .visible = true, .named = false, }, [anon_sym_pick] = { .visible = true, .named = false, }, [anon_sym_p] = { .visible = true, .named = false, }, [anon_sym_watch] = { .visible = true, .named = false, }, [anon_sym_w] = { .visible = true, .named = false, }, [anon_sym_watched] = { .visible = true, .named = false, }, [anon_sym_wd] = { .visible = true, .named = false, }, [anon_sym_add] = { .visible = true, .named = false, }, [anon_sym_a] = { .visible = true, .named = false, }, [anon_sym_drop] = { .visible = true, .named = false, }, [anon_sym_d] = { .visible = true, .named = false, }, [anon_sym_url] = { .visible = true, .named = false, }, [anon_sym_u] = { .visible = true, .named = false, }, [aux_sym_flag_token1] = { .visible = false, .named = false, }, [aux_sym_flag_token2] = { .visible = false, .named = false, }, [aux_sym_flag_token3] = { .visible = false, .named = false, }, [aux_sym_flag_token4] = { .visible = false, .named = false, }, [aux_sym_flag_token5] = { .visible = false, .named = false, }, [aux_sym_flag_token6] = { .visible = false, .named = false, }, [aux_sym_flag_token7] = { .visible = false, .named = false, }, [aux_sym_flag_token8] = { .visible = false, .named = false, }, [aux_sym_flag_token9] = { .visible = false, .named = false, }, [aux_sym_flag_token10] = { .visible = false, .named = false, }, [aux_sym_flag_token11] = { .visible = false, .named = false, }, [aux_sym_flag_token12] = { .visible = false, .named = false, }, [sym_id] = { .visible = true, .named = true, }, [aux_sym_title_token1] = { .visible = false, .named = false, }, [anon_sym_LBRACKNoreleasedate_RBRACK] = { .visible = true, .named = false, }, [aux_sym_date_token1] = { .visible = false, .named = false, }, [anon_sym_LBRACKNoauthor_RBRACK] = { .visible = true, .named = false, }, [anon_sym_LBRACKNoduration_RBRACK] = { .visible = true, .named = false, }, [aux_sym_duration_token1] = { .visible = false, .named = false, }, [aux_sym_duration_token2] = { .visible = false, .named = false, }, [sym_comment] = { .visible = true, .named = true, }, [sym_quote] = { .visible = true, .named = true, }, [sym_source_file] = { .visible = true, .named = true, }, [sym_line] = { .visible = true, .named = true, }, [sym_command] = { .visible = true, .named = true, }, [sym_flag] = { .visible = true, .named = true, }, [sym_title] = { .visible = true, .named = true, }, [sym_date] = { .visible = true, .named = true, }, [sym_author] = { .visible = true, .named = true, }, [sym_duration] = { .visible = true, .named = true, }, [sym_url] = { .visible = true, .named = true, }, [sym__q] = { .visible = false, .named = true, }, [aux_sym_source_file_repeat1] = { .visible = false, .named = false, }, [aux_sym_line_repeat1] = { .visible = false, .named = false, }, }; 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, }; 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 (); case 1: 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 (); case 3: if (lookahead == ' ') ADVANCE (70); END_STATE (); case 4: if (lookahead == ' ') ADVANCE (29); END_STATE (); case 5: if (lookahead == ' ') ADVANCE (71); END_STATE (); case 6: 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 (); case 8: 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 (); case 10: 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 (); case 12: if (lookahead == '"') ADVANCE (96); if (lookahead != 0) ADVANCE (12); END_STATE (); case 13: if (lookahead == '"') ADVANCE (101); if (lookahead != 0) ADVANCE (13); END_STATE (); case 14: if (lookahead == '"') ADVANCE (106); if (lookahead != 0) ADVANCE (14); END_STATE (); case 15: if (lookahead == '"') ADVANCE (111); if (lookahead != 0) ADVANCE (15); END_STATE (); case 16: if (lookahead == '\'') ADVANCE (95); if (lookahead != 0) ADVANCE (16); END_STATE (); case 17: if (lookahead == '\'') ADVANCE (100); if (lookahead != 0) ADVANCE (17); END_STATE (); case 18: if (lookahead == '\'') ADVANCE (105); if (lookahead != 0) ADVANCE (18); END_STATE (); case 19: 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 (); case 21: 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 (); case 23: if (lookahead == '-') ADVANCE (75); END_STATE (); case 24: 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 (); case 26: if (lookahead == ']') ADVANCE (128); END_STATE (); case 27: if (lookahead == ']') ADVANCE (130); END_STATE (); case 28: 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 (); case 30: if (lookahead == 'a') ADVANCE (62); END_STATE (); case 31: if (lookahead == 'a') ADVANCE (63); END_STATE (); case 32: if (lookahead == 'a') ADVANCE (66); END_STATE (); case 33: if (lookahead == 'c') ADVANCE (49); END_STATE (); case 34: if (lookahead == 'c') ADVANCE (46); END_STATE (); case 35: if (lookahead == 'd') ADVANCE (86); END_STATE (); case 36: if (lookahead == 'd') ADVANCE (84); END_STATE (); case 37: if (lookahead == 'd') ADVANCE (32); END_STATE (); case 38: if (lookahead == 'e') ADVANCE (51); END_STATE (); case 39: if (lookahead == 'e') ADVANCE (30); END_STATE (); case 40: if (lookahead == 'e') ADVANCE (6); END_STATE (); case 41: 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 (); case 43: 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 (); case 45: 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 (); case 47: if (lookahead == 'h') ADVANCE (57); END_STATE (); case 48: if (lookahead == 'i') ADVANCE (55); END_STATE (); case 49: if (lookahead == 'k') ADVANCE (80); END_STATE (); case 50: if (lookahead == 'l') ADVANCE (90); END_STATE (); case 51: if (lookahead == 'l') ADVANCE (39); END_STATE (); case 52: if (lookahead == 'm') ADVANCE (132); if (('0' <= lookahead && lookahead <= '9')) ADVANCE (52); END_STATE (); case 53: if (lookahead == 'n') ADVANCE (27); END_STATE (); case 54: if (lookahead == 'o') ADVANCE (58); END_STATE (); case 55: if (lookahead == 'o') ADVANCE (53); END_STATE (); case 56: if (lookahead == 'o') ADVANCE (4); END_STATE (); case 57: if (lookahead == 'o') ADVANCE (60); END_STATE (); case 58: if (lookahead == 'p') ADVANCE (88); END_STATE (); case 59: if (lookahead == 'r') ADVANCE (31); END_STATE (); case 60: if (lookahead == 'r') ADVANCE (26); END_STATE (); case 61: if (lookahead == 's') ADVANCE (131); if (('0' <= lookahead && lookahead <= '9')) ADVANCE (61); END_STATE (); case 62: if (lookahead == 's') ADVANCE (40); END_STATE (); case 63: if (lookahead == 't') ADVANCE (48); END_STATE (); case 64: if (lookahead == 't') ADVANCE (34); END_STATE (); case 65: if (lookahead == 't') ADVANCE (47); END_STATE (); case 66: if (lookahead == 't') ADVANCE (41); END_STATE (); case 67: if (lookahead == 'u') ADVANCE (59); END_STATE (); case 68: 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 (); case 70: if (('0' <= lookahead && lookahead <= '9')) ADVANCE (52); END_STATE (); case 71: if (('0' <= lookahead && lookahead <= '9')) ADVANCE (61); END_STATE (); case 72: if (('0' <= lookahead && lookahead <= '9')) ADVANCE (23); END_STATE (); case 73: if (('0' <= lookahead && lookahead <= '9')) ADVANCE (127); END_STATE (); case 74: if (('0' <= lookahead && lookahead <= '9')) ADVANCE (72); END_STATE (); case 75: 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 (); case 77: 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 (); case 79: ACCEPT_TOKEN (anon_sym_LF); if (lookahead == '\n') ADVANCE (79); END_STATE (); case 80: ACCEPT_TOKEN (anon_sym_pick); END_STATE (); case 81: 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 (); case 83: 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 (); case 85: ACCEPT_TOKEN (anon_sym_wd); END_STATE (); case 86: ACCEPT_TOKEN (anon_sym_add); END_STATE (); case 87: ACCEPT_TOKEN (anon_sym_a); if (lookahead == 'd') ADVANCE (35); END_STATE (); case 88: ACCEPT_TOKEN (anon_sym_drop); END_STATE (); case 89: ACCEPT_TOKEN (anon_sym_d); if (lookahead == 'r') ADVANCE (54); END_STATE (); case 90: ACCEPT_TOKEN (anon_sym_url); END_STATE (); case 91: 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 (); 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 (); case 94: 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 (); case 96: 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 (); 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 (); case 99: 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 (); case 101: 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 (); 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 (); case 104: 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 (); case 106: 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 (); 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 (); case 109: 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 (); case 111: 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 (); case 113: 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 (); 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 (); case 116: 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 (); case 118: 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 (); case 120: 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 (); case 122: 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 (); case 124: 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 (); case 126: ACCEPT_TOKEN (anon_sym_LBRACKNoreleasedate_RBRACK); END_STATE (); case 127: ACCEPT_TOKEN (aux_sym_date_token1); END_STATE (); case 128: ACCEPT_TOKEN (anon_sym_LBRACKNoauthor_RBRACK); END_STATE (); case 129: ACCEPT_TOKEN (anon_sym_LBRACKNoauthor_RBRACK); if (lookahead != 0 && lookahead != '"') ADVANCE (125); END_STATE (); case 130: ACCEPT_TOKEN (anon_sym_LBRACKNoduration_RBRACK); END_STATE (); case 131: ACCEPT_TOKEN (aux_sym_duration_token1); END_STATE (); case 132: ACCEPT_TOKEN (aux_sym_duration_token2); END_STATE (); case 133: ACCEPT_TOKEN (sym_comment); if (lookahead != 0 && lookahead != '\n') ADVANCE (133); END_STATE (); case 134: 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 }, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_pick] = ACTIONS(1), [anon_sym_p] = ACTIONS(1), [anon_sym_watch] = ACTIONS(1), [anon_sym_w] = ACTIONS(1), [anon_sym_watched] = ACTIONS(1), [anon_sym_wd] = ACTIONS(1), [anon_sym_add] = ACTIONS(1), [anon_sym_a] = ACTIONS(1), [anon_sym_drop] = ACTIONS(1), [anon_sym_d] = ACTIONS(1), [anon_sym_url] = ACTIONS(1), [anon_sym_u] = ACTIONS(1), [aux_sym_flag_token1] = ACTIONS(1), [aux_sym_flag_token2] = ACTIONS(1), [aux_sym_flag_token3] = ACTIONS(1), [aux_sym_flag_token4] = ACTIONS(1), [aux_sym_flag_token5] = ACTIONS(1), [aux_sym_flag_token6] = ACTIONS(1), [aux_sym_flag_token7] = ACTIONS(1), [aux_sym_flag_token8] = ACTIONS(1), [aux_sym_flag_token9] = ACTIONS(1), [aux_sym_flag_token10] = ACTIONS(1), [aux_sym_flag_token11] = ACTIONS(1), [aux_sym_flag_token12] = ACTIONS(1), [anon_sym_LBRACKNoreleasedate_RBRACK] = ACTIONS(1), [aux_sym_date_token1] = ACTIONS(1), [anon_sym_LBRACKNoauthor_RBRACK] = ACTIONS(1), [anon_sym_LBRACKNoduration_RBRACK] = ACTIONS(1), [aux_sym_duration_token1] = ACTIONS(1), [aux_sym_duration_token2] = ACTIONS(1), [sym_comment] = ACTIONS(1), [sym_quote] = ACTIONS(1), }, [1] = { [sym_source_file] = STATE(30), [sym_line] = STATE(3), [sym_command] = STATE(4), [aux_sym_source_file_repeat1] = STATE(3), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_pick] = ACTIONS(5), [anon_sym_p] = ACTIONS(7), [anon_sym_watch] = ACTIONS(7), [anon_sym_w] = ACTIONS(7), [anon_sym_watched] = ACTIONS(5), [anon_sym_wd] = ACTIONS(5), [anon_sym_add] = ACTIONS(5), [anon_sym_a] = ACTIONS(7), [anon_sym_drop] = ACTIONS(5), [anon_sym_d] = ACTIONS(7), [anon_sym_url] = ACTIONS(5), [anon_sym_u] = ACTIONS(7), [sym_comment] = ACTIONS(9), }, }; 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, [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, [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, [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, [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, [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, [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, [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, [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, [200] = 3, 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, [220] = 3, 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, [240] = 3, 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, [260] = 3, 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, [280] = 1, 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, [296] = 3, 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, [313] = 1, ACTIONS (67), 2, aux_sym_title_token1, anon_sym_LBRACKNoauthor_RBRACK, [318] = 1, ACTIONS (69), 2, anon_sym_LBRACKNoreleasedate_RBRACK, aux_sym_date_token1, [323] = 2, ACTIONS (71), 1, sym_quote, STATE (31), 1, sym__q, [330] = 2, ACTIONS (73), 1, sym_quote, STATE (35), 1, sym__q, [337] = 2, ACTIONS (75), 1, sym_quote, STATE (32), 1, sym__q, [344] = 2, ACTIONS (77), 1, sym_quote, STATE (37), 1, sym__q, [351] = 1, ACTIONS (79), 1, aux_sym_title_token1, [355] = 1, ACTIONS (81), 1, ts_builtin_sym_end, [359] = 1, ACTIONS (83), 1, sym_quote, [363] = 1, ACTIONS (85), 1, sym_quote, [367] = 1, ACTIONS (87), 1, sym_quote, [371] = 1, ACTIONS (89), 1, anon_sym_LF, [375] = 1, ACTIONS (91), 1, sym_quote, [379] = 1, ACTIONS (93), 1, anon_sym_LF, [383] = 1, ACTIONS (95), 1, anon_sym_LF, [387] = 1, 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, }; 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), }; #ifdef __cplusplus extern "C" { #endif #ifdef TREE_SITTER_HIDE_SYMBOLS #define TS_PUBLIC #elif defined(_WIN32) #define TS_PUBLIC __declspec (dllexport) #else #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; } #ifdef __cplusplus } #endif