~repos /plum
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 }]