tree-sitter-janet
Version:
Janet grammar for tree-sitter
1,264 lines • 21.1 kB
JSON
[
{
"type": "_expr",
"named": true,
"subtypes": [
{
"type": "_identifier",
"named": true
},
{
"type": "_literals",
"named": true
},
{
"type": "_shorthand",
"named": true
},
{
"type": "_special_forms",
"named": true
},
{
"type": "_specials",
"named": true
},
{
"type": "array",
"named": true
},
{
"type": "peg_set",
"named": true
},
{
"type": "sqr_array",
"named": true
},
{
"type": "sqr_tuple",
"named": true
},
{
"type": "struct",
"named": true
},
{
"type": "table",
"named": true
},
{
"type": "tuple",
"named": true
}
]
},
{
"type": "_identifier",
"named": true,
"subtypes": [
{
"type": "keyword",
"named": true
},
{
"type": "symbol",
"named": true
}
]
},
{
"type": "_literals",
"named": true,
"subtypes": [
{
"type": "bool_literal",
"named": true
},
{
"type": "buffer_literal",
"named": true
},
{
"type": "long_buffer_literal",
"named": true
},
{
"type": "long_str_literal",
"named": true
},
{
"type": "nil_literal",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "str_literal",
"named": true
}
]
},
{
"type": "_shorthand",
"named": true,
"subtypes": [
{
"type": "short_fn",
"named": true
},
{
"type": "short_quasiquote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "short_splice",
"named": true
},
{
"type": "short_unquote",
"named": true
}
]
},
{
"type": "_special_forms",
"named": true,
"subtypes": [
{
"type": "break",
"named": true
},
{
"type": "def",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "fn",
"named": true
},
{
"type": "if",
"named": true
},
{
"type": "quasiquote",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "set",
"named": true
},
{
"type": "splice",
"named": true
},
{
"type": "unquote",
"named": true
},
{
"type": "upscope",
"named": true
},
{
"type": "var",
"named": true
},
{
"type": "while",
"named": true
}
]
},
{
"type": "_specials",
"named": true,
"subtypes": [
{
"type": "extra_defs",
"named": true
}
]
},
{
"type": "array",
"named": true,
"fields": {
"item": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "body",
"named": true,
"fields": {
"form": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "bool_literal",
"named": true,
"fields": {}
},
{
"type": "break",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "def",
"named": true,
"fields": {
"metadata": {
"multiple": true,
"required": false,
"types": [
{
"type": "metadata",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "do",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "body",
"named": true
}
]
}
}
},
{
"type": "extra_defs",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "body",
"named": true
}
]
},
"metadata": {
"multiple": true,
"required": false,
"types": [
{
"type": "metadata",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "_identifier",
"named": true
},
{
"type": "quasiquote",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "short_quasiquote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "short_splice",
"named": true
},
{
"type": "short_unquote",
"named": true
},
{
"type": "splice",
"named": true
},
{
"type": "unquote",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "_identifier",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "quasiquote",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "short_quasiquote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "short_splice",
"named": true
},
{
"type": "short_unquote",
"named": true
},
{
"type": "splice",
"named": true
},
{
"type": "tuple_parameters",
"named": true
},
{
"type": "unquote",
"named": true
}
]
}
}
},
{
"type": "fn",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "body",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "_identifier",
"named": true
},
{
"type": "quasiquote",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "short_quasiquote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "short_splice",
"named": true
},
{
"type": "short_unquote",
"named": true
},
{
"type": "splice",
"named": true
},
{
"type": "unquote",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "_identifier",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "quasiquote",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "short_quasiquote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "short_splice",
"named": true
},
{
"type": "short_unquote",
"named": true
},
{
"type": "splice",
"named": true
},
{
"type": "tuple_parameters",
"named": true
},
{
"type": "unquote",
"named": true
}
]
}
}
},
{
"type": "if",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"else": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"then": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "long_buffer_literal",
"named": true,
"fields": {}
},
{
"type": "long_str_literal",
"named": true,
"fields": {}
},
{
"type": "metadata",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "keyword",
"named": true
},
{
"type": "long_str_literal",
"named": true
},
{
"type": "quasiquote",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "short_quasiquote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "short_splice",
"named": true
},
{
"type": "short_unquote",
"named": true
},
{
"type": "splice",
"named": true
},
{
"type": "str_literal",
"named": true
},
{
"type": "struct",
"named": true
},
{
"type": "unquote",
"named": true
}
]
}
},
{
"type": "number_literal",
"named": true,
"fields": {}
},
{
"type": "parameters",
"named": true,
"fields": {
"parameter": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "keys_marker",
"named": true
},
{
"type": "optional_marker",
"named": true
},
{
"type": "variadic_marker",
"named": true
}
]
}
},
{
"type": "peg_set",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "long_str_literal",
"named": true
},
{
"type": "quote",
"named": true
},
{
"type": "short_quote",
"named": true
},
{
"type": "str_literal",
"named": true
}
]
}
},
{
"type": "quasiquote",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "quote",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "set",
"named": true,
"fields": {
"l_value": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"r_value": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "short_fn",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "short_quasiquote",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "short_quote",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "short_splice",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "short_unquote",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "source_file",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "splice",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "sqr_array",
"named": true,
"fields": {
"item": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "sqr_tuple",
"named": true,
"fields": {
"item": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "struct",
"named": true,
"fields": {
"key": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"value": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "table",
"named": true,
"fields": {
"key": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"value": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "tuple",
"named": true,
"fields": {
"item": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "tuple_parameters",
"named": true,
"fields": {
"parameter": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "keys_marker",
"named": true
},
{
"type": "optional_marker",
"named": true
},
{
"type": "variadic_marker",
"named": true
}
]
}
},
{
"type": "unquote",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
},
{
"type": "upscope",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "body",
"named": true
}
]
}
}
},
{
"type": "var",
"named": true,
"fields": {
"metadata": {
"multiple": true,
"required": false,
"types": [
{
"type": "metadata",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "while",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expr",
"named": true
}
]
},
"form": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expr",
"named": true
}
]
}
}
},
{
"type": "'",
"named": false
},
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": ";",
"named": false
},
{
"type": "@(",
"named": false
},
{
"type": "@[",
"named": false
},
{
"type": "@{",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "break",
"named": false
},
{
"type": "buffer_literal",
"named": true
},
{
"type": "def",
"named": false
},
{
"type": "defmacro",
"named": false
},
{
"type": "defmacro-",
"named": false
},
{
"type": "defn",
"named": false
},
{
"type": "defn-",
"named": false
},
{
"type": "do",
"named": false
},
{
"type": "false",
"named": false
},
{
"type": "fn",
"named": false
},
{
"type": "if",
"named": false
},
{
"type": "keys_marker",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "line_comment",
"named": true
},
{
"type": "nil_literal",
"named": true
},
{
"type": "optional_marker",
"named": true
},
{
"type": "quasiquote",
"named": false
},
{
"type": "quote",
"named": false
},
{
"type": "set",
"named": false
},
{
"type": "splice",
"named": false
},
{
"type": "str_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "true",
"named": false
},
{
"type": "unquote",
"named": false
},
{
"type": "upscope",
"named": false
},
{
"type": "var",
"named": false
},
{
"type": "varfn",
"named": false
},
{
"type": "varfn-",
"named": false
},
{
"type": "variadic_marker",
"named": true
},
{
"type": "while",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "~",
"named": false
}
]