UNPKG

tree-sitter-dune

Version:
406 lines (404 loc) 8.9 kB
{ "name": "dune", "rules": { "configuration": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_value" } }, "_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "atom" }, { "type": "SYMBOL", "name": "quoted_string" }, { "type": "SYMBOL", "name": "block_string" }, { "type": "SYMBOL", "name": "raw_string" }, { "type": "SYMBOL", "name": "list" } ] }, "atom": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[^;()\"%\\x00-\\x20\\x7f-\\xff]" } }, { "type": "STRING", "value": "%" } ] } }, { "type": "SYMBOL", "name": "variable" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[^;()\"%\\x00-\\x20\\x7f-\\xff]" } }, { "type": "STRING", "value": "%" } ] } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_immediate_variable" }, "named": true, "value": "variable" } ] } } ] }, "quoted_string": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_immediate_variable" }, "named": true, "value": "variable" }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\\\\\"%]+" } } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "%" } } ] } }, { "type": "STRING", "value": "\"" } ] }, "block_string": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"\\|" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_immediate_variable" }, "named": true, "value": "variable" }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\\\\\"%\\n\\r]+" } } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "%" } } ] } } ] }, "raw_string": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"\\>" }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": ".*" } } } ] }, "escape_sequence": { "type": "IMMEDIATE_TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "\\n\\s*" }, { "type": "STRING", "value": "%{" }, { "type": "PATTERN", "value": "[\\\\'\"ntbr]" }, { "type": "PATTERN", "value": "[0-9][0-9][0-9]" }, { "type": "PATTERN", "value": "x[A-Fa-f0-9][A-Fa-f0-9]" } ] } ] } }, "variable": { "type": "SEQ", "members": [ { "type": "STRING", "value": "%{" }, { "type": "SYMBOL", "name": "_variable_trail" } ] }, "_immediate_variable": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "%{" } }, { "type": "SYMBOL", "name": "_variable_trail" } ] }, "_variable_trail": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "variable_name" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variable_value" }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "variable_name": { "type": "TOKEN", "content": { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[^;()\"\\x00-\\x20\\x7f-\\xff:{}]" } } }, "variable_value": { "type": "TOKEN", "content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^;()\"\\x00-\\x20\\x7f-\\xff:{}]" }, { "type": "STRING", "value": ":" } ] } } }, "list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_value" } }, { "type": "STRING", "value": ")" } ] }, "comment": { "type": "PATTERN", "value": ";.*" } }, "extras": [ { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "comment" } ], "conflicts": [], "externals": [], "inline": [ "_value", "_variable_trail" ], "supertypes": [] }