{
"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": "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"
}
]
},
"id": {
"type": "PATTERN",
"value": "[0-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": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "No Duration"
},
{
"type": "PATTERN",
"value": "\\d+m \\d+s"
},
{
"type": "PATTERN",
"value": "\\d+h \\d+m"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"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"
},
{
"type": "PATTERN",
"value": "\\\\\\r?\\n"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}