Constant NODE_TYPES

Source
pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"asm_function_body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"asm_instruction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asm_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"asm_instruction\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"asm_instruction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"multiline_asm_instruction\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"asm_specifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parameter\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"block_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"repeat_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"try_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"const_var_declarations\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hole_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"var\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_application\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>=\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"do_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"postcondition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_application\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>=\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"empty_statement\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"expression_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"function_application\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"underscore\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_application\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"function\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"function_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"parameter_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"asm_body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"asm_function_body\",\n            \"named\": true\n          }\n        ]\n      },\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"function_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hole_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"var\",\n            \"named\": true\n          }\n        ]\n      },\n      \"specifiers\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"impure\",\n            \"named\": false\n          },\n          {\n            \"type\": \"inline\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_id\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type_variables\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"type_variables_list\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"function_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"function_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"hole_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"var\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"global_var_declarations\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hole_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"var\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"hole_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"hole_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"if_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"else\",\n            \"named\": false\n          },\n          {\n            \"type\": \"elseif\",\n            \"named\": false\n          },\n          {\n            \"type\": \"elseifnot\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_application\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>=\",\n            \"named\": false\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_application\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>=\",\n            \"named\": false\n          }\n        ]\n      },\n      \"consequent\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"include_directive\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"include_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"include_path\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"inline\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"method_call\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"method_name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"method_id\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"multiline_asm_instruction\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"multiline_string_fragment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"multiline_string_fragment\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"parameter_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"parameter\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hole_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"var\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"parameter\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parameter_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"parameter_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"function_application\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"underscore\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_type_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pragma_directive\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"major_version\",\n          \"named\": true\n        },\n        {\n          \"type\": \"minor_version\",\n          \"named\": true\n        },\n        {\n          \"type\": \"patch_version\",\n          \"named\": true\n        },\n        {\n          \"type\": \"version_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"primitive_type\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"repeat_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"count\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_application\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>=\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"return_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"function_application\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"underscore\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"string_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tensor_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"function_application\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"underscore\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tensor_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"function_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"hole_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"var\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tensor_type_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"translation_unit\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"const_var_declarations\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"global_var_declarations\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include_directive\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_directive\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"try_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"repeat_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"try_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"function_application\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"underscore\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"function_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"hole_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"var\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple_type_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"type_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"parenthesized_type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primitive_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tensor_type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_type_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"var\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_identifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_variables_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unit_literal\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"unit_type\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"variable_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"variable\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"while_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"precondition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^>>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"function_application\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tensor_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"underscore\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~>>=\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"!=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"\\\"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#include\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#pragma\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"(\",\n    \"named\": false\n  },\n  {\n    \"type\": \"()\",\n    \"named\": false\n  },\n  {\n    \"type\": \")\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+=\",\n    \"named\": false\n  },\n  {\n    \"type\": \",\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"->\",\n    \"named\": false\n  },\n  {\n    \"type\": \".\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/=\",\n    \"named\": false\n  },\n  {\n    \"type\": \":\",\n    \"named\": false\n  },\n  {\n    \"type\": \";\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<=>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"==\",\n    \"named\": false\n  },\n  {\n    \"type\": \">\",\n    \"named\": false\n  },\n  {\n    \"type\": \">=\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"?\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^%=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^/\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^/=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^>>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^>>=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"asm\",\n    \"named\": false\n  },\n  {\n    \"type\": \"builder\",\n    \"named\": false\n  },\n  {\n    \"type\": \"catch\",\n    \"named\": false\n  },\n  {\n    \"type\": \"cell\",\n    \"named\": false\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"const\",\n    \"named\": false\n  },\n  {\n    \"type\": \"cont\",\n    \"named\": false\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"elseif\",\n    \"named\": false\n  },\n  {\n    \"type\": \"elseifnot\",\n    \"named\": false\n  },\n  {\n    \"type\": \"forall\",\n    \"named\": false\n  },\n  {\n    \"type\": \"function_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"global\",\n    \"named\": false\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"ifnot\",\n    \"named\": false\n  },\n  {\n    \"type\": \"impure\",\n    \"named\": false\n  },\n  {\n    \"type\": \"inline\",\n    \"named\": false\n  },\n  {\n    \"type\": \"inline_ref\",\n    \"named\": false\n  },\n  {\n    \"type\": \"int\",\n    \"named\": false\n  },\n  {\n    \"type\": \"major_version\",\n    \"named\": true\n  },\n  {\n    \"type\": \"method_id\",\n    \"named\": false\n  },\n  {\n    \"type\": \"minor_version\",\n    \"named\": true\n  },\n  {\n    \"type\": \"not-version\",\n    \"named\": false\n  },\n  {\n    \"type\": \"number\",\n    \"named\": true\n  },\n  {\n    \"type\": \"parameter\",\n    \"named\": true\n  },\n  {\n    \"type\": \"patch_version\",\n    \"named\": true\n  },\n  {\n    \"type\": \"repeat\",\n    \"named\": false\n  },\n  {\n    \"type\": \"return\",\n    \"named\": false\n  },\n  {\n    \"type\": \"slice\",\n    \"named\": false\n  },\n  {\n    \"type\": \"string_type\",\n    \"named\": true\n  },\n  {\n    \"type\": \"test-version-set\",\n    \"named\": false\n  },\n  {\n    \"type\": \"try\",\n    \"named\": false\n  },\n  {\n    \"type\": \"tuple\",\n    \"named\": false\n  },\n  {\n    \"type\": \"type\",\n    \"named\": false\n  },\n  {\n    \"type\": \"underscore\",\n    \"named\": true\n  },\n  {\n    \"type\": \"until\",\n    \"named\": false\n  },\n  {\n    \"type\": \"var\",\n    \"named\": true\n  },\n  {\n    \"type\": \"version\",\n    \"named\": false\n  },\n  {\n    \"type\": \"version_operator\",\n    \"named\": true\n  },\n  {\n    \"type\": \"while\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"}\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~%=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~/\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~/=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~>>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~>>=\",\n    \"named\": false\n  }\n]";
Expand description

The content of the node-types.json file for this grammar.