about summary refs log blame commit diff stats
path: root/pkgs/by-name/tr/tree-sitter-yts/src/parser.c
blob: 3b43659c6e909080a9dc1710ab8e9711f36e0e74 (plain) (tree)
1
2
3
4
5
6
7
8
9






                                                             
                      
                           
                       
                     
                      
                              
                                   
                             
    
                    


                     
                 
                   






























                                        
  
                                              

                               
                     
                             
                     
                           
                     
                         










                                          

                                          
                                                       
                                                



                                    
                      





                                                        
                                          




                                            
                            
                                    
                            
                                  
                            
                                










                                                

                                                
                                                                        
                                                      



                                      
                        





                                                              
                                                













                                                      


                    


                      


                    


                     
                  

                    
                    

                    
                  

                    














































                            










                            
                                        









                               


















                       


                    


























                                   


                            
  



                                                                   




                                                            




                                                                              
  





                                        
           






















                                                                     
           



                                                                     
           



                           
           

                           
           

                           
           

                           
           







                                                                       
           






                                                                  
           






                                                                  
           






                                                                  
            






                                                                  
            



                           
            



                           
            



                           
            



                           
            



                            
            



                            
            



                            
            



                            
            







                                                                     
            





                                                                       
            







                                                 
            

                           
            

                           
            

                           
            

                           
            

                           
            

                           
            

                           
            





                                                 
            





                                                 
            





                                                 
            





                                                 
            

                           
            

                           
            

                           
            

                           
            



                                                 
            

                           
            

                           
            

                           
            

                           
            

                           
            

                           
            



                                                 
            

                           
            

                           
            

                           
            




                                                                     
            

                                                 
            

                                                 
            

                                                 
            

                                                 
            

                                                 
            

                                                 
            



                                                                       
            



                                                                       
            
                                        
            


                                 
            
                                   
            


                                
            
                                    
            


                                
            
                                   
            


                                
            
                                  
            


                                
            







                                                                     
            







                                                                     
            



                                                                  
            
                                         
            
                                         
            







                                                                     
            







                                                                     
            



                                                                  
            
                                         
            
                                         
            







                                                                     
            







                                                                     
            



                                                                  
            
                                         
            
                                         
            







                                                                     
            







                                                                     
            



                                                                  
            
                                          
            
                                          
            



                                                    
            





                                                                     
            


                                             
            
                                         
            
                                                      
            
                                             
            
                                             
            


                                              
            
                               
                   
     

                                                    


















                                                         




                                                                         
                              
                                  
                              
                                 
                              
                                










                                        
                                       
                                                    
                                           


                               


                                             
                                      
                              
                                  
                              
                                 
                              
                                



                                                
          



















                       
           



















                       
           



















                       
           















                       
           























                              
            















                       
            























                              
            












                     
            












                     
            







               
            



                                   
            







               
            







               
            







               
            







               
            







               
            







               
            







               
            







               
            







               
            




               
            




               
            




               
            




               
            




               
            

               
            

                       
            

               
            

               
            

                       
            

               
            

                      
            

                     
            

               
            

               
            

               
            

                       

                                                    











                                                                               

                                                      

































































































                                                        

                  
          
             
                                     
      



























                                                             

                  
#include <tree_sitter/parser.h>

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#define LANGUAGE_VERSION 14
#define STATE_COUNT 39
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 42
#define ALIAS_COUNT 0
#define TOKEN_COUNT 30
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 0
#define MAX_ALIAS_SEQUENCE_LENGTH 9
#define PRODUCTION_ID_COUNT 1

enum
{
  anon_sym_LF = 1,
  anon_sym_pick = 2,
  anon_sym_p = 3,
  anon_sym_watch = 4,
  anon_sym_w = 5,
  anon_sym_drop = 6,
  anon_sym_d = 7,
  anon_sym_url = 8,
  anon_sym_u = 9,
  aux_sym_flag_token1 = 10,
  aux_sym_flag_token2 = 11,
  aux_sym_flag_token3 = 12,
  aux_sym_flag_token4 = 13,
  aux_sym_flag_token5 = 14,
  aux_sym_flag_token6 = 15,
  aux_sym_flag_token7 = 16,
  aux_sym_flag_token8 = 17,
  aux_sym_flag_token9 = 18,
  aux_sym_flag_token10 = 19,
  aux_sym_flag_token11 = 20,
  aux_sym_flag_token12 = 21,
  sym_id = 22,
  aux_sym_title_token1 = 23,
  aux_sym_date_token1 = 24,
  anon_sym_LBRACKNoDuration_RBRACK = 25,
  aux_sym_duration_token1 = 26,
  aux_sym_duration_token2 = 27,
  sym_comment = 28,
  sym_quote = 29,
  sym_source_file = 30,
  sym_line = 31,
  sym_command = 32,
  sym_flag = 33,
  sym_title = 34,
  sym_date = 35,
  sym_author = 36,
  sym_duration = 37,
  sym_url = 38,
  sym__q = 39,
  aux_sym_source_file_repeat1 = 40,
  aux_sym_line_repeat1 = 41,
};

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_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",
  [aux_sym_date_token1] = "date_token1",
  [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_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,
  [aux_sym_date_token1] = aux_sym_date_token1,
  [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_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,
  },
  [aux_sym_date_token1] = {
    .visible = false,
    .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 (57);
      if (lookahead == '"')
        ADVANCE (95);
      if (lookahead == '#')
        ADVANCE (94);
      if (lookahead == '-')
        ADVANCE (20);
      if (lookahead == '[')
        ADVANCE (24);
      if (lookahead == 'd')
        ADVANCE (64);
      if (lookahead == 'p')
        ADVANCE (60);
      if (lookahead == 'u')
        ADVANCE (66);
      if (lookahead == 'w')
        ADVANCE (62);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        SKIP (0)
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (31);
      END_STATE ();
    case 1:
      if (lookahead == '\n')
        ADVANCE (58);
      if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ')
        SKIP (1)
      END_STATE ();
    case 2:
      if (lookahead == ' ')
        ADVANCE (7);
      if (lookahead == '=')
        ADVANCE (8);
      END_STATE ();
    case 3:
      if (lookahead == ' ')
        ADVANCE (49);
      END_STATE ();
    case 4:
      if (lookahead == ' ')
        ADVANCE (23);
      END_STATE ();
    case 5:
      if (lookahead == ' ')
        ADVANCE (50);
      END_STATE ();
    case 6:
      if (lookahead == ' ')
        ADVANCE (9);
      if (lookahead == '=')
        ADVANCE (10);
      if (lookahead == '-' || ('0' <= lookahead && lookahead <= '9')
          || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_'
          || ('a' <= lookahead && lookahead <= 'z'))
        ADVANCE (6);
      END_STATE ();
    case 7:
      if (lookahead == '"')
        ADVANCE (67);
      if (lookahead == '\'')
        ADVANCE (68);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (69);
      END_STATE ();
    case 8:
      if (lookahead == '"')
        ADVANCE (72);
      if (lookahead == '\'')
        ADVANCE (73);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (74);
      END_STATE ();
    case 9:
      if (lookahead == '"')
        ADVANCE (77);
      if (lookahead == '\'')
        ADVANCE (78);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (79);
      END_STATE ();
    case 10:
      if (lookahead == '"')
        ADVANCE (82);
      if (lookahead == '\'')
        ADVANCE (83);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (84);
      END_STATE ();
    case 11:
      if (lookahead == '"')
        ADVANCE (71);
      if (lookahead != 0)
        ADVANCE (11);
      END_STATE ();
    case 12:
      if (lookahead == '"')
        ADVANCE (76);
      if (lookahead != 0)
        ADVANCE (12);
      END_STATE ();
    case 13:
      if (lookahead == '"')
        ADVANCE (81);
      if (lookahead != 0)
        ADVANCE (13);
      END_STATE ();
    case 14:
      if (lookahead == '"')
        ADVANCE (86);
      if (lookahead != 0)
        ADVANCE (14);
      END_STATE ();
    case 15:
      if (lookahead == '\'')
        ADVANCE (70);
      if (lookahead != 0)
        ADVANCE (15);
      END_STATE ();
    case 16:
      if (lookahead == '\'')
        ADVANCE (75);
      if (lookahead != 0)
        ADVANCE (16);
      END_STATE ();
    case 17:
      if (lookahead == '\'')
        ADVANCE (80);
      if (lookahead != 0)
        ADVANCE (17);
      END_STATE ();
    case 18:
      if (lookahead == '\'')
        ADVANCE (85);
      if (lookahead != 0)
        ADVANCE (18);
      END_STATE ();
    case 19:
      if (lookahead == '-')
        ADVANCE (20);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        SKIP (19)
      if (('0' <= lookahead && lookahead <= '9')
          || ('a' <= lookahead && lookahead <= 'z'))
        ADVANCE (87);
      END_STATE ();
    case 20:
      if (lookahead == '-')
        ADVANCE (55);
      if (('0' <= lookahead && lookahead <= '9')
          || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_'
          || ('a' <= lookahead && lookahead <= 'z'))
        ADVANCE (2);
      END_STATE ();
    case 21:
      if (lookahead == '-')
        ADVANCE (53);
      if (lookahead == 'h')
        ADVANCE (3);
      if (lookahead == 'm')
        ADVANCE (5);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (32);
      END_STATE ();
    case 22:
      if (lookahead == '-')
        ADVANCE (54);
      END_STATE ();
    case 23:
      if (lookahead == 'D')
        ADVANCE (47);
      END_STATE ();
    case 24:
      if (lookahead == 'N')
        ADVANCE (41);
      END_STATE ();
    case 25:
      if (lookahead == ']')
        ADVANCE (91);
      END_STATE ();
    case 26:
      if (lookahead == 'a')
        ADVANCE (45);
      END_STATE ();
    case 27:
      if (lookahead == 'c')
        ADVANCE (35);
      END_STATE ();
    case 28:
      if (lookahead == 'c')
        ADVANCE (33);
      END_STATE ();
    case 29:
      if (lookahead == 'h')
        ADVANCE (3);
      if (lookahead == 'm')
        ADVANCE (5);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (21);
      END_STATE ();
    case 30:
      if (lookahead == 'h')
        ADVANCE (3);
      if (lookahead == 'm')
        ADVANCE (5);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (29);
      END_STATE ();
    case 31:
      if (lookahead == 'h')
        ADVANCE (3);
      if (lookahead == 'm')
        ADVANCE (5);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (30);
      END_STATE ();
    case 32:
      if (lookahead == 'h')
        ADVANCE (3);
      if (lookahead == 'm')
        ADVANCE (5);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (32);
      END_STATE ();
    case 33:
      if (lookahead == 'h')
        ADVANCE (61);
      END_STATE ();
    case 34:
      if (lookahead == 'i')
        ADVANCE (40);
      END_STATE ();
    case 35:
      if (lookahead == 'k')
        ADVANCE (59);
      END_STATE ();
    case 36:
      if (lookahead == 'l')
        ADVANCE (65);
      END_STATE ();
    case 37:
      if (lookahead == 'm')
        ADVANCE (93);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (37);
      END_STATE ();
    case 38:
      if (lookahead == 'n')
        ADVANCE (25);
      END_STATE ();
    case 39:
      if (lookahead == 'o')
        ADVANCE (42);
      END_STATE ();
    case 40:
      if (lookahead == 'o')
        ADVANCE (38);
      END_STATE ();
    case 41:
      if (lookahead == 'o')
        ADVANCE (4);
      END_STATE ();
    case 42:
      if (lookahead == 'p')
        ADVANCE (63);
      END_STATE ();
    case 43:
      if (lookahead == 'r')
        ADVANCE (26);
      END_STATE ();
    case 44:
      if (lookahead == 's')
        ADVANCE (92);
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (44);
      END_STATE ();
    case 45:
      if (lookahead == 't')
        ADVANCE (34);
      END_STATE ();
    case 46:
      if (lookahead == 't')
        ADVANCE (28);
      END_STATE ();
    case 47:
      if (lookahead == 'u')
        ADVANCE (43);
      END_STATE ();
    case 48:
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (88);
      if (lookahead != 0 && lookahead != '"')
        ADVANCE (89);
      END_STATE ();
    case 49:
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (37);
      END_STATE ();
    case 50:
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (44);
      END_STATE ();
    case 51:
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (22);
      END_STATE ();
    case 52:
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (90);
      END_STATE ();
    case 53:
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (51);
      END_STATE ();
    case 54:
      if (('0' <= lookahead && lookahead <= '9'))
        ADVANCE (52);
      END_STATE ();
    case 55:
      if (('0' <= lookahead && lookahead <= '9')
          || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_'
          || ('a' <= lookahead && lookahead <= 'z'))
        ADVANCE (56);
      END_STATE ();
    case 56:
      if (lookahead == '-' || ('0' <= lookahead && lookahead <= '9')
          || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_'
          || ('a' <= lookahead && lookahead <= 'z'))
        ADVANCE (6);
      END_STATE ();
    case 57:
      ACCEPT_TOKEN (ts_builtin_sym_end);
      END_STATE ();
    case 58:
      ACCEPT_TOKEN (anon_sym_LF);
      if (lookahead == '\n')
        ADVANCE (58);
      END_STATE ();
    case 59:
      ACCEPT_TOKEN (anon_sym_pick);
      END_STATE ();
    case 60:
      ACCEPT_TOKEN (anon_sym_p);
      if (lookahead == 'i')
        ADVANCE (27);
      END_STATE ();
    case 61:
      ACCEPT_TOKEN (anon_sym_watch);
      END_STATE ();
    case 62:
      ACCEPT_TOKEN (anon_sym_w);
      if (lookahead == 'a')
        ADVANCE (46);
      END_STATE ();
    case 63:
      ACCEPT_TOKEN (anon_sym_drop);
      END_STATE ();
    case 64:
      ACCEPT_TOKEN (anon_sym_d);
      if (lookahead == 'r')
        ADVANCE (39);
      END_STATE ();
    case 65:
      ACCEPT_TOKEN (anon_sym_url);
      END_STATE ();
    case 66:
      ACCEPT_TOKEN (anon_sym_u);
      if (lookahead == 'r')
        ADVANCE (36);
      END_STATE ();
    case 67:
      ACCEPT_TOKEN (aux_sym_flag_token1);
      if (lookahead == '"')
        ADVANCE (69);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (11);
      if (lookahead != 0)
        ADVANCE (67);
      END_STATE ();
    case 68:
      ACCEPT_TOKEN (aux_sym_flag_token1);
      if (lookahead == '\'')
        ADVANCE (69);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (15);
      if (lookahead != 0)
        ADVANCE (68);
      END_STATE ();
    case 69:
      ACCEPT_TOKEN (aux_sym_flag_token1);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (69);
      END_STATE ();
    case 70:
      ACCEPT_TOKEN (aux_sym_flag_token2);
      END_STATE ();
    case 71:
      ACCEPT_TOKEN (aux_sym_flag_token3);
      END_STATE ();
    case 72:
      ACCEPT_TOKEN (aux_sym_flag_token4);
      if (lookahead == '"')
        ADVANCE (74);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (12);
      if (lookahead != 0)
        ADVANCE (72);
      END_STATE ();
    case 73:
      ACCEPT_TOKEN (aux_sym_flag_token4);
      if (lookahead == '\'')
        ADVANCE (74);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (16);
      if (lookahead != 0)
        ADVANCE (73);
      END_STATE ();
    case 74:
      ACCEPT_TOKEN (aux_sym_flag_token4);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (74);
      END_STATE ();
    case 75:
      ACCEPT_TOKEN (aux_sym_flag_token5);
      END_STATE ();
    case 76:
      ACCEPT_TOKEN (aux_sym_flag_token6);
      END_STATE ();
    case 77:
      ACCEPT_TOKEN (aux_sym_flag_token7);
      if (lookahead == '"')
        ADVANCE (79);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (13);
      if (lookahead != 0)
        ADVANCE (77);
      END_STATE ();
    case 78:
      ACCEPT_TOKEN (aux_sym_flag_token7);
      if (lookahead == '\'')
        ADVANCE (79);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (17);
      if (lookahead != 0)
        ADVANCE (78);
      END_STATE ();
    case 79:
      ACCEPT_TOKEN (aux_sym_flag_token7);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (79);
      END_STATE ();
    case 80:
      ACCEPT_TOKEN (aux_sym_flag_token8);
      END_STATE ();
    case 81:
      ACCEPT_TOKEN (aux_sym_flag_token9);
      END_STATE ();
    case 82:
      ACCEPT_TOKEN (aux_sym_flag_token10);
      if (lookahead == '"')
        ADVANCE (84);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (14);
      if (lookahead != 0)
        ADVANCE (82);
      END_STATE ();
    case 83:
      ACCEPT_TOKEN (aux_sym_flag_token10);
      if (lookahead == '\'')
        ADVANCE (84);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (18);
      if (lookahead != 0)
        ADVANCE (83);
      END_STATE ();
    case 84:
      ACCEPT_TOKEN (aux_sym_flag_token10);
      if (lookahead != 0 && lookahead != '\t' && lookahead != '\n'
          && lookahead != '\r' && lookahead != ' ')
        ADVANCE (84);
      END_STATE ();
    case 85:
      ACCEPT_TOKEN (aux_sym_flag_token11);
      END_STATE ();
    case 86:
      ACCEPT_TOKEN (aux_sym_flag_token12);
      END_STATE ();
    case 87:
      ACCEPT_TOKEN (sym_id);
      if (('0' <= lookahead && lookahead <= '9')
          || ('a' <= lookahead && lookahead <= 'z'))
        ADVANCE (87);
      END_STATE ();
    case 88:
      ACCEPT_TOKEN (aux_sym_title_token1);
      if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r'
          || lookahead == ' ')
        ADVANCE (88);
      if (lookahead != 0 && lookahead != '"')
        ADVANCE (89);
      END_STATE ();
    case 89:
      ACCEPT_TOKEN (aux_sym_title_token1);
      if (lookahead != 0 && lookahead != '"')
        ADVANCE (89);
      END_STATE ();
    case 90:
      ACCEPT_TOKEN (aux_sym_date_token1);
      END_STATE ();
    case 91:
      ACCEPT_TOKEN (anon_sym_LBRACKNoDuration_RBRACK);
      END_STATE ();
    case 92:
      ACCEPT_TOKEN (aux_sym_duration_token1);
      END_STATE ();
    case 93:
      ACCEPT_TOKEN (aux_sym_duration_token2);
      END_STATE ();
    case 94:
      ACCEPT_TOKEN (sym_comment);
      if (lookahead != 0 && lookahead != '\n')
        ADVANCE (94);
      END_STATE ();
    case 95:
      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 = 19 },  [3] = { .lex_state = 19 },
  [4] = { .lex_state = 19 },  [5] = { .lex_state = 19 },
  [6] = { .lex_state = 0 },   [7] = { .lex_state = 19 },
  [8] = { .lex_state = 0 },   [9] = { .lex_state = 0 },
  [10] = { .lex_state = 0 },  [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 = 0 },
  [24] = { .lex_state = 0 },  [25] = { .lex_state = 0 },
  [26] = { .lex_state = 0 },  [27] = { .lex_state = 0 },
  [28] = { .lex_state = 48 }, [29] = { .lex_state = 0 },
  [30] = { .lex_state = 1 },  [31] = { .lex_state = 48 },
  [32] = { .lex_state = 0 },  [33] = { .lex_state = 0 },
  [34] = { .lex_state = 0 },  [35] = { .lex_state = 0 },
  [36] = { .lex_state = 1 },  [37] = { .lex_state = 1 },
  [38] = { .lex_state = 48 },
};

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_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),
    [aux_sym_date_token1] = 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(34),
    [sym_line] = STATE(6),
    [sym_command] = STATE(3),
    [aux_sym_source_file_repeat1] = STATE(6),
    [ts_builtin_sym_end] = ACTIONS(3),
    [anon_sym_pick] = ACTIONS(5),
    [anon_sym_p] = ACTIONS(7),
    [anon_sym_watch] = ACTIONS(5),
    [anon_sym_w] = 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] = 3,
  ACTIONS (14),
  1,
  sym_id,
  STATE (2),
  2,
  sym_flag,
  aux_sym_line_repeat1,
  ACTIONS (11),
  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,
  [22] = 3,
  ACTIONS (18),
  1,
  sym_id,
  STATE (4),
  2,
  sym_flag,
  aux_sym_line_repeat1,
  ACTIONS (16),
  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,
  [44] = 3,
  ACTIONS (20),
  1,
  sym_id,
  STATE (2),
  2,
  sym_flag,
  aux_sym_line_repeat1,
  ACTIONS (16),
  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,
  [66] = 2,
  ACTIONS (24),
  1,
  sym_id,
  ACTIONS (22),
  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,
  [84] = 6,
  ACTIONS (26),
  1,
  ts_builtin_sym_end,
  ACTIONS (28),
  1,
  sym_comment,
  STATE (3),
  1,
  sym_command,
  STATE (8),
  2,
  sym_line,
  aux_sym_source_file_repeat1,
  ACTIONS (5),
  4,
  anon_sym_pick,
  anon_sym_watch,
  anon_sym_drop,
  anon_sym_url,
  ACTIONS (7),
  4,
  anon_sym_p,
  anon_sym_w,
  anon_sym_d,
  anon_sym_u,
  [110] = 2,
  ACTIONS (32),
  1,
  sym_id,
  ACTIONS (30),
  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,
  [128] = 6,
  ACTIONS (34),
  1,
  ts_builtin_sym_end,
  ACTIONS (42),
  1,
  sym_comment,
  STATE (3),
  1,
  sym_command,
  STATE (8),
  2,
  sym_line,
  aux_sym_source_file_repeat1,
  ACTIONS (36),
  4,
  anon_sym_pick,
  anon_sym_watch,
  anon_sym_drop,
  anon_sym_url,
  ACTIONS (39),
  4,
  anon_sym_p,
  anon_sym_w,
  anon_sym_d,
  anon_sym_u,
  [154] = 2,
  ACTIONS (47),
  4,
  anon_sym_p,
  anon_sym_w,
  anon_sym_d,
  anon_sym_u,
  ACTIONS (45),
  6,
  ts_builtin_sym_end,
  anon_sym_pick,
  anon_sym_watch,
  anon_sym_drop,
  anon_sym_url,
  sym_comment,
  [169] = 2,
  ACTIONS (51),
  4,
  anon_sym_p,
  anon_sym_w,
  anon_sym_d,
  anon_sym_u,
  ACTIONS (49),
  6,
  ts_builtin_sym_end,
  anon_sym_pick,
  anon_sym_watch,
  anon_sym_drop,
  anon_sym_url,
  sym_comment,
  [184] = 3,
  ACTIONS (53),
  1,
  sym_quote,
  STATE (12),
  1,
  sym__q,
  STATE (20),
  1,
  sym_duration,
  [194] = 1,
  ACTIONS (55),
  3,
  anon_sym_LBRACKNoDuration_RBRACK,
  aux_sym_duration_token1,
  aux_sym_duration_token2,
  [200] = 3,
  ACTIONS (57),
  1,
  sym_quote,
  STATE (19),
  1,
  sym_title,
  STATE (38),
  1,
  sym__q,
  [210] = 3,
  ACTIONS (57),
  1,
  sym_quote,
  STATE (18),
  1,
  sym_title,
  STATE (38),
  1,
  sym__q,
  [220] = 3,
  ACTIONS (59),
  1,
  sym_quote,
  STATE (11),
  1,
  sym_author,
  STATE (28),
  1,
  sym__q,
  [230] = 3,
  ACTIONS (61),
  1,
  sym_quote,
  STATE (31),
  1,
  sym__q,
  STATE (36),
  1,
  sym_url,
  [240] = 3,
  ACTIONS (53),
  1,
  sym_quote,
  STATE (12),
  1,
  sym__q,
  STATE (16),
  1,
  sym_duration,
  [250] = 3,
  ACTIONS (63),
  1,
  sym_quote,
  STATE (21),
  1,
  sym_date,
  STATE (33),
  1,
  sym__q,
  [260] = 3,
  ACTIONS (63),
  1,
  sym_quote,
  STATE (15),
  1,
  sym_date,
  STATE (33),
  1,
  sym__q,
  [270] = 3,
  ACTIONS (61),
  1,
  sym_quote,
  STATE (30),
  1,
  sym_url,
  STATE (31),
  1,
  sym__q,
  [280] = 3,
  ACTIONS (59),
  1,
  sym_quote,
  STATE (17),
  1,
  sym_author,
  STATE (28),
  1,
  sym__q,
  [290] = 2,
  ACTIONS (65),
  1,
  sym_quote,
  STATE (29),
  1,
  sym__q,
  [297] = 2,
  ACTIONS (67),
  1,
  sym_quote,
  STATE (32),
  1,
  sym__q,
  [304] = 2,
  ACTIONS (69),
  1,
  sym_quote,
  STATE (27),
  1,
  sym__q,
  [311] = 2,
  ACTIONS (71),
  1,
  sym_quote,
  STATE (35),
  1,
  sym__q,
  [318] = 2,
  ACTIONS (73),
  1,
  sym_quote,
  STATE (37),
  1,
  sym__q,
  [325] = 1,
  ACTIONS (75),
  1,
  sym_quote,
  [329] = 1,
  ACTIONS (77),
  1,
  aux_sym_title_token1,
  [333] = 1,
  ACTIONS (79),
  1,
  sym_quote,
  [337] = 1,
  ACTIONS (81),
  1,
  anon_sym_LF,
  [341] = 1,
  ACTIONS (83),
  1,
  aux_sym_title_token1,
  [345] = 1,
  ACTIONS (85),
  1,
  sym_quote,
  [349] = 1,
  ACTIONS (87),
  1,
  aux_sym_date_token1,
  [353] = 1,
  ACTIONS (89),
  1,
  ts_builtin_sym_end,
  [357] = 1,
  ACTIONS (91),
  1,
  sym_quote,
  [361] = 1,
  ACTIONS (93),
  1,
  anon_sym_LF,
  [365] = 1,
  ACTIONS (95),
  1,
  anon_sym_LF,
  [369] = 1,
  ACTIONS (97),
  1,
  aux_sym_title_token1,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE (2)] = 0,    [SMALL_STATE (3)] = 22,   [SMALL_STATE (4)] = 44,
  [SMALL_STATE (5)] = 66,   [SMALL_STATE (6)] = 84,   [SMALL_STATE (7)] = 110,
  [SMALL_STATE (8)] = 128,  [SMALL_STATE (9)] = 154,  [SMALL_STATE (10)] = 169,
  [SMALL_STATE (11)] = 184, [SMALL_STATE (12)] = 194, [SMALL_STATE (13)] = 200,
  [SMALL_STATE (14)] = 210, [SMALL_STATE (15)] = 220, [SMALL_STATE (16)] = 230,
  [SMALL_STATE (17)] = 240, [SMALL_STATE (18)] = 250, [SMALL_STATE (19)] = 260,
  [SMALL_STATE (20)] = 270, [SMALL_STATE (21)] = 280, [SMALL_STATE (22)] = 290,
  [SMALL_STATE (23)] = 297, [SMALL_STATE (24)] = 304, [SMALL_STATE (25)] = 311,
  [SMALL_STATE (26)] = 318, [SMALL_STATE (27)] = 325, [SMALL_STATE (28)] = 329,
  [SMALL_STATE (29)] = 333, [SMALL_STATE (30)] = 337, [SMALL_STATE (31)] = 341,
  [SMALL_STATE (32)] = 345, [SMALL_STATE (33)] = 349, [SMALL_STATE (34)] = 353,
  [SMALL_STATE (35)] = 357, [SMALL_STATE (36)] = 361, [SMALL_STATE (37)] = 365,
  [SMALL_STATE (38)] = 369,
};

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),
  [5] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (5),
  [7] = { .entry = { .count = 1, .reusable = false } },
  SHIFT (5),
  [9] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (6),
  [11] = { .entry = { .count = 2, .reusable = false } },
  REDUCE (aux_sym_line_repeat1, 2),
  SHIFT_REPEAT (7),
  [14] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (aux_sym_line_repeat1, 2),
  [16] = { .entry = { .count = 1, .reusable = false } },
  SHIFT (7),
  [18] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (13),
  [20] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (14),
  [22] = { .entry = { .count = 1, .reusable = false } },
  REDUCE (sym_command, 1),
  [24] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_command, 1),
  [26] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_source_file, 1),
  [28] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (8),
  [30] = { .entry = { .count = 1, .reusable = false } },
  REDUCE (sym_flag, 1),
  [32] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_flag, 1),
  [34] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (aux_sym_source_file_repeat1, 2),
  [36] = { .entry = { .count = 2, .reusable = true } },
  REDUCE (aux_sym_source_file_repeat1, 2),
  SHIFT_REPEAT (5),
  [39] = { .entry = { .count = 2, .reusable = false } },
  REDUCE (aux_sym_source_file_repeat1, 2),
  SHIFT_REPEAT (5),
  [42] = { .entry = { .count = 2, .reusable = true } },
  REDUCE (aux_sym_source_file_repeat1, 2),
  SHIFT_REPEAT (8),
  [45] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_line, 9),
  [47] = { .entry = { .count = 1, .reusable = false } },
  REDUCE (sym_line, 9),
  [49] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_line, 8),
  [51] = { .entry = { .count = 1, .reusable = false } },
  REDUCE (sym_line, 8),
  [53] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (12),
  [55] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (25),
  [57] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (38),
  [59] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (28),
  [61] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (31),
  [63] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (33),
  [65] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (29),
  [67] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (32),
  [69] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (27),
  [71] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (35),
  [73] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (37),
  [75] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_title, 3),
  [77] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (23),
  [79] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_date, 3),
  [81] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (10),
  [83] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (26),
  [85] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_author, 3),
  [87] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (22),
  [89] = { .entry = { .count = 1, .reusable = true } },
  ACCEPT_INPUT (),
  [91] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_duration, 3),
  [93] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (9),
  [95] = { .entry = { .count = 1, .reusable = true } },
  REDUCE (sym_url, 3),
  [97] = { .entry = { .count = 1, .reusable = true } },
  SHIFT (24),
};

#ifdef __cplusplus
extern "C"
{
#endif
#ifdef _WIN32
#define extern __declspec (dllexport)
#endif

  extern 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