~repos /plum

#treesitter#compiler#wasm

git clone https://pyrossh.dev/repos/plum.git

A statically typed, imperative programming language inspired by rust, python



tooling/tree-sitter-plum/src/node-types.json



[
{
"type": "assert",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "assign",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "var_identifier",
"named": true
}
]
}
},
{
"type": "attribute",
"named": true,
"fields": {
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "fn_call",
"named": true
},
{
"type": "var_identifier",
"named": true
}
]
}
},
{
"type": "binary_operator",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"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": "|",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
}
},
{
"type": "body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assert",
"named": true
},
{
"type": "assign",
"named": true
},
{
"type": "break",
"named": true
},
{
"type": "continue",
"named": true
},
{
"type": "for",
"named": true
},
{
"type": "if",
"named": true
},
{
"type": "match",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "return",
"named": true
},
{
"type": "todo",
"named": true
},
{
"type": "while",
"named": true
}
]
}
},
{
"type": "boolean_operator",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "&&",
"named": false
},
{
"type": "||",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "break",
"named": true,
"fields": {}
},
{
"type": "case",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "case_pattern",
"named": true
}
]
}
},
{
"type": "case_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "class_pattern",
"named": true
},
{
"type": "dotted_name",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "string",
"named": true
}
]
}
},
{
"type": "class",
"named": true,
"fields": {
"fields": {
"multiple": true,
"required": false,
"types": [
{
"type": "field",
"named": true
}
]
},
"generics": {
"multiple": false,
"required": false,
"types": [
{
"type": "generics",
"named": true
}
]
},
"implements": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "type_identifier",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
}
},
{
"type": "class_argument_list",
"named": true,
"fields": {
"name": {
"multiple": true,
"required": false,
"types": [
{
"type": "var_identifier",
"named": true
}
]
},
"value": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "class_call",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "class_argument_list",
"named": true
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
}
},
{
"type": "class_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "case_pattern",
"named": true
},
{
"type": "dotted_name",
"named": true
}
]
}
},
{
"type": "comparison_operator",
"named": true,
"fields": {
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "<>",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
},
{
"type": "const",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "const_identifier",
"named": true
},
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "continue",
"named": true,
"fields": {}
},
{
"type": "dotted_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "var_identifier",
"named": true
}
]
}
},
{
"type": "else",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
}
},
{
"type": "else_if",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "enum",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "field",
"named": true
}
]
}
},
{
"type": "expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "boolean_operator",
"named": true
},
{
"type": "comparison_operator",
"named": true
},
{
"type": "not_operator",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "ternary_expression",
"named": true
}
]
}
},
{
"type": "field",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "fn_identifier",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "var_identifier",
"named": true
}
]
},
"parameters": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "type_identifier",
"named": true
}
]
},
"params": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "param",
"named": true
}
]
},
"returns": {
"multiple": true,
"required": false,
"types": [
{
"type": "->",
"named": false
},
{
"type": "return_type",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "fn",
"named": true,
"fields": {
"body": {
"multiple": true,
"required": true,
"types": [
{
"type": "=",
"named": false
},
{
"type": "body",
"named": true
},
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "fn_identifier",
"named": true
}
]
},
"params": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "param",
"named": true
}
]
},
"returns": {
"multiple": true,
"required": false,
"types": [
{
"type": "->",
"named": false
},
{
"type": "return_type",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "fn_argument_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "keyword_argument",
"named": true
},
{
"type": "pair_argument",
"named": true
}
]
}
},
{
"type": "fn_call",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "fn_argument_list",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "fn_identifier",
"named": true
}
]
}
}
},
{
"type": "for",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
},
"left": {
"multiple": true,
"required": true,
"types": [
{
"type": ",",
"named": false
},
{
"type": "var_identifier",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
}
},
{
"type": "generics",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "a",
"named": true
},
{
"type": "b",
"named": true
},
{
"type": "c",
"named": true
},
{
"type": "d",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "if",
"named": true,
"fields": {
"alternative": {
"multiple": true,
"required": false,
"types": [
{
"type": "else_if",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"otherwise": {
"multiple": false,
"required": false,
"types": [
{
"type": "else",
"named": true
}
]
}
}
},
{
"type": "import",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "url",
"named": true
}
]
}
},
{
"type": "integer",
"named": true,
"fields": {}
},
{
"type": "interpolation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
},
{
"type": "keyword_argument",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "var_identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "match",
"named": true,
"fields": {
"case": {
"multiple": true,
"required": false,
"types": [
{
"type": "case",
"named": true
}
]
},
"subject": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "mod_identifier",
"named": true,
"fields": {}
},
{
"type": "module",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "mod_identifier",
"named": true
}
]
}
},
{
"type": "not_operator",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "pair_argument",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "string",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "param",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "var_identifier",
"named": true
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
},
{
"type": "variadic_type",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "primary_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "attribute",
"named": true
},
{
"type": "binary_operator",
"named": true
},
{
"type": "class_call",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fn_call",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "self",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unary_operator",
"named": true
},
{
"type": "var_identifier",
"named": true
}
]
}
},
{
"type": "return",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "return_type",
"named": true,
"fields": {
"generics": {
"multiple": false,
"required": false,
"types": [
{
"type": "generics",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "source",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "class",
"named": true
},
{
"type": "const",
"named": true
},
{
"type": "enum",
"named": true
},
{
"type": "fn",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "trait",
"named": true
}
]
}
},
{
"type": "string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "interpolation",
"named": true
},
{
"type": "string_content",
"named": true
},
{
"type": "string_end",
"named": true
},
{
"type": "string_start",
"named": true
}
]
}
},
{
"type": "string_content",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_interpolation",
"named": true
},
{
"type": "escape_sequence",
"named": true
}
]
}
},
{
"type": "ternary_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "todo",
"named": true,
"fields": {}
},
{
"type": "trait",
"named": true,
"fields": {
"fields": {
"multiple": true,
"required": false,
"types": [
{
"type": "field",
"named": true
}
]
},
"generics": {
"multiple": false,
"required": false,
"types": [
{
"type": "generics",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
}
},
{
"type": "type",
"named": true,
"fields": {
"generics": {
"multiple": true,
"required": false,
"types": [
{
"type": ",",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "type",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "a",
"named": true
},
{
"type": "b",
"named": true
},
{
"type": "c",
"named": true
},
{
"type": "d",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "unary_operator",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
}
]
}
}
},
{
"type": "url",
"named": true,
"fields": {}
},
{
"type": "var_identifier",
"named": true,
"fields": {}
},
{
"type": "variadic_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
},
{
"type": "while",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"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": "-",
"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": "<>",
"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": "]",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "_",
"named": false
},
{
"type": "a",
"named": true
},
{
"type": "assert",
"named": false
},
{
"type": "b",
"named": true
},
{
"type": "break",
"named": false
},
{
"type": "c",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "const_identifier",
"named": true
},
{
"type": "continue",
"named": false
},
{
"type": "d",
"named": true
},
{
"type": "else",
"named": false
},
{
"type": "else if",
"named": false
},
{
"type": "enum",
"named": false
},
{
"type": "escape_interpolation",
"named": true
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fn_identifier",
"named": true
},
{
"type": "for",
"named": false
},
{
"type": "if",
"named": false
},
{
"type": "import",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "is",
"named": false
},
{
"type": "match",
"named": false
},
{
"type": "module",
"named": false
},
{
"type": "return",
"named": false
},
{
"type": "self",
"named": true
},
{
"type": "string_end",
"named": true
},
{
"type": "string_start",
"named": true
},
{
"type": "todo",
"named": false
},
{
"type": "trait",
"named": false
},
{
"type": "type",
"named": false
},
{
"type": "type_identifier",
"named": true
},
{
"type": "while",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "}",
"named": false
}
]