@amaanq/tree-sitter-func
Version:
FunC grammar for tree-sitter
2,563 lines (2,562 loc) • 60.7 kB
JSON
[
{
"type": "asm_function_body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "asm_instruction",
"named": true
},
{
"type": "asm_specifier",
"named": true
}
]
}
},
{
"type": "asm_instruction",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "asm_instruction",
"named": true
},
{
"type": "multiline_asm_instruction",
"named": true
}
]
}
},
{
"type": "asm_specifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "number",
"named": true
},
{
"type": "parameter",
"named": true
}
]
}
},
{
"type": "block_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "block_statement",
"named": true
},
{
"type": "do_statement",
"named": true
},
{
"type": "empty_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "repeat_statement",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "try_statement",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "const_var_declarations",
"named": true,
"fields": {
"name": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
},
"value": {
"multiple": true,
"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
},
{
"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": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"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": "do_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "block_statement",
"named": true
}
]
},
"postcondition": {
"multiple": true,
"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
},
{
"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": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"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": "empty_statement",
"named": true,
"fields": {}
},
{
"type": "expression_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
}
},
{
"type": "function_application",
"named": true,
"fields": {
"arguments": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "unit_literal",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
}
]
}
}
},
{
"type": "function_definition",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "parameter_list",
"named": true
}
]
},
"asm_body": {
"multiple": false,
"required": false,
"types": [
{
"type": "asm_function_body",
"named": true
}
]
},
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "block_statement",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "function_name",
"named": true
}
]
},
"return_type": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
},
"specifiers": {
"multiple": true,
"required": false,
"types": [
{
"type": "impure",
"named": false
},
{
"type": "inline",
"named": true
},
{
"type": "method_id",
"named": true
}
]
},
"type_variables": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_variables_list",
"named": true
}
]
}
}
},
{
"type": "function_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
}
},
{
"type": "global_var_declarations",
"named": true,
"fields": {
"name": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
}
}
},
{
"type": "hole_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "hole_type",
"named": true
}
]
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"alternative": {
"multiple": true,
"required": false,
"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
},
{
"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": "block_statement",
"named": true
},
{
"type": "else",
"named": false
},
{
"type": "elseif",
"named": false
},
{
"type": "elseifnot",
"named": false
},
{
"type": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"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
}
]
},
"condition": {
"multiple": true,
"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
},
{
"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": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"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
}
]
},
"consequent": {
"multiple": true,
"required": true,
"types": [
{
"type": "block_statement",
"named": true
}
]
}
}
},
{
"type": "include_directive",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "include_path",
"named": true
}
]
}
},
{
"type": "include_path",
"named": true,
"fields": {}
},
{
"type": "inline",
"named": true,
"fields": {}
},
{
"type": "method_call",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
}
]
},
"method_name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "method_id",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "number",
"named": true
},
{
"type": "string",
"named": true
}
]
}
},
{
"type": "multiline_asm_instruction",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "multiline_string_fragment",
"named": true
}
]
}
},
{
"type": "multiline_string_fragment",
"named": true,
"fields": {}
},
{
"type": "parameter_declaration",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "parameter",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "parameter",
"named": true
}
]
}
},
{
"type": "parameter_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "parameter_declaration",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
}
},
{
"type": "parenthesized_type_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_expression",
"named": true
}
]
}
},
{
"type": "pragma_directive",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "major_version",
"named": true
},
{
"type": "minor_version",
"named": true
},
{
"type": "patch_version",
"named": true
},
{
"type": "version_operator",
"named": true
}
]
}
},
{
"type": "primitive_type",
"named": true,
"fields": {}
},
{
"type": "repeat_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "block_statement",
"named": true
}
]
},
"count": {
"multiple": true,
"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
},
{
"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": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"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": "return_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
}
},
{
"type": "string",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "string_type",
"named": true
}
]
}
},
{
"type": "tensor_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
}
},
{
"type": "tensor_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
}
},
{
"type": "tensor_type_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_expression",
"named": true
}
]
}
},
{
"type": "translation_unit",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "const_var_declarations",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "global_var_declarations",
"named": true
},
{
"type": "include_directive",
"named": true
},
{
"type": "pragma_directive",
"named": true
}
]
}
},
{
"type": "try_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "block_statement",
"named": true
},
{
"type": "do_statement",
"named": true
},
{
"type": "empty_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "repeat_statement",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "try_statement",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "tuple_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_application",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "method_call",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tensor_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "type_expression",
"named": true
},
{
"type": "underscore",
"named": true
},
{
"type": "unit_literal",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
}
},
{
"type": "tuple_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_type",
"named": true
},
{
"type": "hole_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "var",
"named": true
}
]
}
},
{
"type": "tuple_type_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_expression",
"named": true
}
]
}
},
{
"type": "type_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "parenthesized_type_expression",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "tensor_type_expression",
"named": true
},
{
"type": "tuple_type_expression",
"named": true
},
{
"type": "var",
"named": true
}
]
}
},
{
"type": "type_identifier",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "type_variables_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "type_identifier",
"named": true
}