UNPKG

tree-sitter-alv

Version:

tree-sitter grammar for the alv livecoding langauge

451 lines (449 loc) 9.28 kB
{ "name": "alv", "rules": { "source_file": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sp" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "_sp" } ] } } ] }, "_wc": { "type": "PATTERN", "value": "[ \\t\\r\\n]" }, "_sp": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "comment" }, { "type": "SYMBOL", "name": "_wc" } ] } } ] }, "_comment_contents": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_comment_contents" }, { "type": "PATTERN", "value": "[^)]" } ] } }, { "type": "STRING", "value": ")" } ] }, "comment": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#" }, { "type": "SYMBOL", "name": "_comment_contents" } ] }, "_first": { "type": "PATTERN", "value": "[a-zA-Z-_+*\\/\\.=~!?%]" }, "_digit": { "type": "PATTERN", "value": "[0-9]" }, "_int": { "type": "PREC", "value": 2, "content": { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_digit" } } }, "_float": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_digit" } }, { "type": "STRING", "value": "." }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_digit" } } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_digit" } }, { "type": "STRING", "value": "." }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_digit" } } ] } ] }, "escape_char": { "type": "PATTERN", "value": "\\\\[\"'\\\\]" }, "sym": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_first" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_first" }, { "type": "SYMBOL", "name": "_digit" } ] } } ] }, "num": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "-" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_float" }, { "type": "SYMBOL", "name": "_int" } ] } ] }, "str": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_char" }, { "type": "PATTERN", "value": "[^\"]" } ] } }, { "type": "STRING", "value": "\"" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_char" }, { "type": "PATTERN", "value": "[^']" } ] } }, { "type": "STRING", "value": "'" } ] } ] }, "_atom": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "sym" }, { "type": "SYMBOL", "name": "num" }, { "type": "SYMBOL", "name": "str" } ] }, "_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_atom" }, { "type": "SYMBOL", "name": "cell" } ] }, "tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_digit" } }, { "type": "STRING", "value": "]" } ] }, "head": { "type": "SYMBOL", "name": "_expression" }, "cell": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "tag" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sp" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "head" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_sp" }, { "type": "SYMBOL", "name": "_expression" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sp" }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "STRING", "value": ")" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] }