about summary refs log blame commit diff stats
path: root/pkgs/by-name/tr/tree-sitter-yts/src/grammar.json
blob: a63633b5619d31b01471bc118d3b3f859a11d5bf (plain) (tree)

























                             





                             




































                            


                           


                           


                           


                           
                      

                           
                        

                           
                      

         



























                                    
                                         

                            
                                         

                            
                                            

                            
                                         

                            
                                         

                            
                                            

         
                        
                          





























































                                         


                                   
                                          








                                        









































                            







                    
{
  "name": "yts",
  "rules": {
    "source_file": {
      "type": "REPEAT",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "line"
          },
          {
            "type": "SYMBOL",
            "name": "comment"
          }
        ]
      }
    },
    "line": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "command"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "flag"
          }
        },
        {
          "type": "SYMBOL",
          "name": "id"
        },
        {
          "type": "SYMBOL",
          "name": "title"
        },
        {
          "type": "SYMBOL",
          "name": "date"
        },
        {
          "type": "SYMBOL",
          "name": "author"
        },
        {
          "type": "SYMBOL",
          "name": "duration"
        },
        {
          "type": "SYMBOL",
          "name": "url"
        },
        {
          "type": "STRING",
          "value": "\n"
        }
      ]
    },
    "command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "pick"
        },
        {
          "type": "STRING",
          "value": "p"
        },
        {
          "type": "STRING",
          "value": "watch"
        },
        {
          "type": "STRING",
          "value": "w"
        },
        {
          "type": "STRING",
          "value": "drop"
        },
        {
          "type": "STRING",
          "value": "d"
        },
        {
          "type": "STRING",
          "value": "url"
        },
        {
          "type": "STRING",
          "value": "u"
        }
      ]
    },
    "flag": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PATTERN",
          "value": "-\\w [^\\s]+"
        },
        {
          "type": "PATTERN",
          "value": "-\\w '[^']*'"
        },
        {
          "type": "PATTERN",
          "value": "-\\w \"[^\"]*\""
        },
        {
          "type": "PATTERN",
          "value": "-\\w=[^\\s]+"
        },
        {
          "type": "PATTERN",
          "value": "-\\w='[^']*'"
        },
        {
          "type": "PATTERN",
          "value": "-\\w=\"[^\"]*\""
        },
        {
          "type": "PATTERN",
          "value": "--\\w[\\w-]+ [^\\s]+"
        },
        {
          "type": "PATTERN",
          "value": "--\\w[\\w-]+ '[^']*'"
        },
        {
          "type": "PATTERN",
          "value": "--\\w[\\w-]+ \"[^\"]*\""
        },
        {
          "type": "PATTERN",
          "value": "--\\w[\\w-]+=[^\\s]+"
        },
        {
          "type": "PATTERN",
          "value": "--\\w[\\w-]+='[^']*'"
        },
        {
          "type": "PATTERN",
          "value": "--\\w[\\w-]+=\"[^\"]*\""
        }
      ]
    },
    "id": {
      "type": "PATTERN",
      "value": "[a-z0-9]+"
    },
    "title": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_q"
        },
        {
          "type": "PATTERN",
          "value": "[^\"]+"
        },
        {
          "type": "SYMBOL",
          "name": "_q"
        }
      ]
    },
    "date": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_q"
        },
        {
          "type": "PATTERN",
          "value": "\\d{4}-\\d{2}-\\d{2}"
        },
        {
          "type": "SYMBOL",
          "name": "_q"
        }
      ]
    },
    "author": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_q"
        },
        {
          "type": "PATTERN",
          "value": "[^\"]+"
        },
        {
          "type": "SYMBOL",
          "name": "_q"
        }
      ]
    },
    "duration": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_q"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": "[No Duration]"
                },
                {
                  "type": "PATTERN",
                  "value": "\\d+m \\d+s"
                },
                {
                  "type": "PATTERN",
                  "value": "\\d+h \\d+m"
                }
              ]
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_q"
        }
      ]
    },
    "url": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_q"
        },
        {
          "type": "PATTERN",
          "value": "[^\"]+"
        },
        {
          "type": "SYMBOL",
          "name": "_q"
        }
      ]
    },
    "comment": {
      "type": "PATTERN",
      "value": "#.*"
    },
    "_q": {
      "type": "SYMBOL",
      "name": "quote"
    },
    "quote": {
      "type": "PATTERN",
      "value": "\""
    }
  },
  "extras": [
    {
      "type": "PATTERN",
      "value": "\\s"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [],
  "inline": [],
  "supertypes": []
}