@ast-grep/napi
Version:
Search and Rewrite code at large scale using precise AST pattern
2,585 lines (2,584 loc) • 101 kB
TypeScript
// Auto-generated from tree-sitter TypeScript v0.23.2
type TypeScriptTypes = {
"declaration": {
"type": "declaration",
"named": true,
"subtypes": [
{
"type": "abstract_class_declaration",
"named": true
},
{
"type": "ambient_declaration",
"named": true
},
{
"type": "class_declaration",
"named": true
},
{
"type": "enum_declaration",
"named": true
},
{
"type": "function_declaration",
"named": true
},
{
"type": "function_signature",
"named": true
},
{
"type": "generator_function_declaration",
"named": true
},
{
"type": "import_alias",
"named": true
},
{
"type": "interface_declaration",
"named": true
},
{
"type": "internal_module",
"named": true
},
{
"type": "lexical_declaration",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "type_alias_declaration",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
},
"expression": {
"type": "expression",
"named": true,
"subtypes": [
{
"type": "as_expression",
"named": true
},
{
"type": "assignment_expression",
"named": true
},
{
"type": "augmented_assignment_expression",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "instantiation_expression",
"named": true
},
{
"type": "internal_module",
"named": true
},
{
"type": "new_expression",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "satisfies_expression",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "type_assertion",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
},
{
"type": "yield_expression",
"named": true
}
]
},
"pattern": {
"type": "pattern",
"named": true,
"subtypes": [
{
"type": "array_pattern",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "non_null_expression",
"named": true
},
{
"type": "object_pattern",
"named": true
},
{
"type": "rest_pattern",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "undefined",
"named": true
}
]
},
"primary_expression": {
"type": "primary_expression",
"named": true,
"subtypes": [
{
"type": "array",
"named": true
},
{
"type": "arrow_function",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "class",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "function_expression",
"named": true
},
{
"type": "generator_function",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "meta_property",
"named": true
},
{
"type": "non_null_expression",
"named": true
},
{
"type": "null",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "object",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "super",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "this",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "undefined",
"named": true
}
]
},
"primary_type": {
"type": "primary_type",
"named": true,
"subtypes": [
{
"type": "array_type",
"named": true
},
{
"type": "conditional_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "flow_maybe_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "index_type_query",
"named": true
},
{
"type": "intersection_type",
"named": true
},
{
"type": "literal_type",
"named": true
},
{
"type": "lookup_type",
"named": true
},
{
"type": "nested_type_identifier",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "parenthesized_type",
"named": true
},
{
"type": "predefined_type",
"named": true
},
{
"type": "template_literal_type",
"named": true
},
{
"type": "this_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_query",
"named": true
},
{
"type": "union_type",
"named": true
}
]
},
"statement": {
"type": "statement",
"named": true,
"subtypes": [
{
"type": "break_statement",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "debugger_statement",
"named": true
},
{
"type": "declaration",
"named": true
},
{
"type": "do_statement",
"named": true
},
{
"type": "empty_statement",
"named": true
},
{
"type": "export_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "import_statement",
"named": true
},
{
"type": "labeled_statement",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "statement_block",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "throw_statement",
"named": true
},
{
"type": "try_statement",
"named": true
},
{
"type": "while_statement",
"named": true
},
{
"type": "with_statement",
"named": true
}
]
},
"type": {
"type": "type",
"named": true,
"subtypes": [
{
"type": "call_expression",
"named": true
},
{
"type": "constructor_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "infer_type",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "primary_type",
"named": true
},
{
"type": "readonly_type",
"named": true
}
]
},
"abstract_class_declaration": {
"type": "abstract_class_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "class_body",
"named": true
}
]
},
"decorator": {
"multiple": true,
"required": false,
"types": [
{
"type": "decorator",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "class_heritage",
"named": true
}
]
}
},
"abstract_method_signature": {
"type": "abstract_method_signature",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "computed_property_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "private_property_identifier",
"named": true
},
{
"type": "property_identifier",
"named": true
},
{
"type": "string",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "accessibility_modifier",
"named": true
},
{
"type": "override_modifier",
"named": true
}
]
}
},
"accessibility_modifier": {
"type": "accessibility_modifier",
"named": true,
"fields": {}
},
"adding_type_annotation": {
"type": "adding_type_annotation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
},
"ambient_declaration": {
"type": "ambient_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "property_identifier",
"named": true
},
{
"type": "statement_block",
"named": true
},
{
"type": "type",
"named": true
}
]
}
},
"arguments": {
"type": "arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "spread_element",
"named": true
}
]
}
},
"array": {
"type": "array",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "spread_element",
"named": true
}
]
}
},
"array_pattern": {
"type": "array_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_pattern",
"named": true
},
{
"type": "pattern",
"named": true
}
]
}
},
"array_type": {
"type": "array_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_type",
"named": true
}
]
}
},
"arrow_function": {
"type": "arrow_function",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "statement_block",
"named": true
}
]
},
"parameter": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"as_expression": {
"type": "as_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "type",
"named": true
}
]
}
},
"asserts": {
"type": "asserts",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "this",
"named": true
},
{
"type": "type_predicate",
"named": true
}
]
}
},
"asserts_annotation": {
"type": "asserts_annotation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "asserts",
"named": true
}
]
}
},
"assignment_expression": {
"type": "assignment_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "non_null_expression",
"named": true
},
{
"type": "object_pattern",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "undefined",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"assignment_pattern": {
"type": "assignment_pattern",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "pattern",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"augmented_assignment_expression": {
"type": "augmented_assignment_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "non_null_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": []
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"await_expression": {
"type": "await_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
"binary_expression": {
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "private_property_identifier",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": []
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"break_statement": {
"type": "break_statement",
"named": true,
"fields": {
"label": {
"multiple": false,
"required": false,
"types": [
{
"type": "statement_identifier",
"named": true
}
]
}
}
},
"call_expression": {
"type": "call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
},
{
"type": "template_string",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "import",
"named": true
}
]
},
"type_arguments": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_arguments",
"named": true
}
]
}
}
},
"call_signature": {
"type": "call_signature",
"named": true,
"fields": {
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"catch_clause": {
"type": "catch_clause",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
},
"parameter": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "object_pattern",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_annotation",
"named": true
}
]
}
}
},
"class": {
"type": "class",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "class_body",
"named": true
}
]
},
"decorator": {
"multiple": true,
"required": false,
"types": [
{
"type": "decorator",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_identifier",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "class_heritage",
"named": true
}
]
}
},
"class_body": {
"type": "class_body",
"named": true,
"fields": {
"decorator": {
"multiple": true,
"required": false,
"types": [
{
"type": "decorator",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract_method_signature",
"named": true
},
{
"type": "class_static_block",
"named": true
},
{
"type": "index_signature",
"named": true
},
{
"type": "method_definition",
"named": true
},
{
"type": "method_signature",
"named": true
},
{
"type": "public_field_definition",
"named": true
}
]
}
},
"class_declaration": {
"type": "class_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "class_body",
"named": true
}
]
},
"decorator": {
"multiple": true,
"required": false,
"types": [
{
"type": "decorator",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "class_heritage",
"named": true
}
]
}
},
"class_heritage": {
"type": "class_heritage",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "extends_clause",
"named": true
},
{
"type": "implements_clause",
"named": true
}
]
}
},
"class_static_block": {
"type": "class_static_block",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
}
}
},
"computed_property_name": {
"type": "computed_property_name",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
"conditional_type": {
"type": "conditional_type",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
},
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
"constraint": {
"type": "constraint",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
},
"construct_signature": {
"type": "construct_signature",
"named": true,
"fields": {
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"constructor_type": {
"type": "constructor_type",
"named": true,
"fields": {
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"continue_statement": {
"type": "continue_statement",
"named": true,
"fields": {
"label": {
"multiple": false,
"required": false,
"types": [
{
"type": "statement_identifier",
"named": true
}
]
}
}
},
"debugger_statement": {
"type": "debugger_statement",
"named": true,
"fields": {}
},
"decorator": {
"type": "decorator",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "call_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
}
]
}
},
"default_type": {
"type": "default_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
},
"do_statement": {
"type": "do_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
"else_clause": {
"type": "else_clause",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
"empty_statement": {
"type": "empty_statement",
"named": true,
"fields": {}
},
"enum_assignment": {
"type": "enum_assignment",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "computed_property_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "private_property_identifier",
"named": true
},
{
"type": "property_identifier",
"named": true
},
{
"type": "string",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"enum_body": {
"type": "enum_body",
"named": true,
"fields": {
"name": {
"multiple": true,
"required": false,
"types": [
{
"type": "computed_property_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "private_property_identifier",
"named": true
},
{
"type": "property_identifier",
"named": true
},
{
"type": "string",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "enum_assignment",
"named": true
}
]
}
},
"enum_declaration": {
"type": "enum_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "enum_body",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
"existential_type": {
"type": "existential_type",
"named": true,
"fields": {}
},
"export_clause": {
"type": "export_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "export_specifier",
"named": true
}
]
}
},
"export_specifier": {
"type": "export_specifier",
"named": true,
"fields": {
"alias": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "string",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "string",
"named": true
}
]
}
}
},
"export_statement": {
"type": "export_statement",
"named": true,
"fields": {
"declaration": {
"multiple": false,
"required": false,
"types": [
{
"type": "declaration",
"named": true
}
]
},
"decorator": {
"multiple": true,
"required": false,
"types": [
{
"type": "decorator",
"named": true
}
]
},
"source": {
"multiple": false,
"required": false,
"types": [
{
"type": "string",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "export_clause",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "namespace_export",
"named": true
}
]
}
},
"expression_statement": {
"type": "expression_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
}
},
"extends_clause": {
"type": "extends_clause",
"named": true,
"fields": {
"type_arguments": {
"multiple": true,
"required": false,
"types": [
{
"type": "type_arguments",
"named": true
}
]
},
"value": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"extends_type_clause": {
"type": "extends_type_clause",
"named": true,
"fields": {
"type": {
"multiple": true,
"required": true,
"types": [
{
"type": "generic_type",
"named": true
},
{
"type": "nested_type_identifier",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
}
}
},
"finally_clause": {
"type": "finally_clause",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
}
}
},
"flow_maybe_type": {
"type": "flow_maybe_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_type",
"named": true
}
]
}
},
"for_in_statement": {
"type": "for_in_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
},
"kind": {
"multiple": false,
"required": false,
"types": []
},
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "non_null_expression",
"named": true
},
{
"type": "object_pattern",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "undefined",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": []
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
"for_statement": {
"type": "for_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": true,
"required": true,
"types": [
{
"type": "empty_statement",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
},
"increment": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
},
"initializer": {
"multiple": false,
"required": true,
"types": [
{
"type": "empty_statement",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "lexical_declaration",
"named": true
},
{
"type": "sequence_expression",
"named": true
},
{
"type": "variable_declaration",
"named": true
}
]
}
}
},
"formal_parameters": {
"type": "formal_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "optional_parameter",
"named": true
},
{
"type": "required_parameter",
"named": true
}
]
}
},
"function_declaration": {
"type": "function_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"function_expression": {
"type": "function_expression",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"function_signature": {
"type": "function_signature",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"function_type": {
"type": "function_type",
"named": true,
"fields": {
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": true,
"types": [
{
"type": "asserts",
"named": true
},
{
"type": "type",
"named": true
},
{
"type": "type_predicate",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"generator_function": {
"type": "generator_function",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"generator_function_declaration": {
"type": "generator_function_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement_block",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "asserts_annotation",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "type_predicate_annotation",
"named": true
}
]
},
"type_parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_parameters",
"named": true
}
]
}
}
},
"generic_type": {
"type": "generic_type",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "nested_type_identifier",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
},
"type_arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_arguments",
"named": true
}
]
}
}
},
"identifier": {
"type": "identifier",
"named": true,
"fields": {}
},
"if_statement": {
"type": "if_statement",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "else_clause",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
}
}
},
"implements_clause": {
"type": "implements_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
},
"import": {
"type": "import",
"named": true,
"fields": {}