diff options
Diffstat (limited to 'tree-sitter-yts/src/grammar.json')
-rw-r--r-- | tree-sitter-yts/src/grammar.json | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/tree-sitter-yts/src/grammar.json b/tree-sitter-yts/src/grammar.json new file mode 100644 index 0000000..a63633b --- /dev/null +++ b/tree-sitter-yts/src/grammar.json @@ -0,0 +1,286 @@ +{ + "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": [] +} + |