[
  {
    "type": "_abstract_declarator",
    "named": true,
    "subtypes": [
      {
        "type": "abstract_array_declarator",
        "named": true
      },
      {
        "type": "abstract_function_declarator",
        "named": true
      },
      {
        "type": "abstract_parenthesized_declarator",
        "named": true
      },
      {
        "type": "abstract_pointer_declarator",
        "named": true
      },
      {
        "type": "block_abstract_declarator",
        "named": true
      }
    ]
  },
  {
    "type": "_declarator",
    "named": true,
    "subtypes": [
      {
        "type": "array_declarator",
        "named": true
      },
      {
        "type": "block_declarator",
        "named": true
      },
      {
        "type": "function_declarator",
        "named": true
      },
      {
        "type": "identifier",
        "named": true
      },
      {
        "type": "parenthesized_declarator",
        "named": true
      },
      {
        "type": "pointer_declarator",
        "named": true
      }
    ]
  },
  {
    "type": "_expression",
    "named": true,
    "subtypes": [
      {
        "type": "NO",
        "named": true
      },
      {
        "type": "YES",
        "named": true
      },
      {
        "type": "array_expression",
        "named": true
      },
      {
        "type": "assignment_expression",
        "named": true
      },
      {
        "type": "available_expression",
        "named": true
      },
      {
        "type": "binary_expression",
        "named": true
      },
      {
        "type": "block_expression",
        "named": true
      },
      {
        "type": "boolean_expression",
        "named": true
      },
      {
        "type": "call_expression",
        "named": true
      },
      {
        "type": "cast_expression",
        "named": true
      },
      {
        "type": "char_literal",
        "named": true
      },
      {
        "type": "compound_literal_expression",
        "named": true
      },
      {
        "type": "concatenated_string",
        "named": true
      },
      {
        "type": "conditional_expression",
        "named": true
      },
      {
        "type": "dictionary_expression",
        "named": true
      },
      {
        "type": "encode_expression",
        "named": true
      },
      {
        "type": "false",
        "named": true
      },
      {
        "type": "field_expression",
        "named": true
      },
      {
        "type": "identifier",
        "named": true
      },
      {
        "type": "message_expression",
        "named": true
      },
      {
        "type": "nil",
        "named": true
      },
      {
        "type": "null",
        "named": true
      },
      {
        "type": "number_expression",
        "named": true
      },
      {
        "type": "number_literal",
        "named": true
      },
      {
        "type": "object_expression",
        "named": true
      },
      {
        "type": "parenthesized_expression",
        "named": true
      },
      {
        "type": "pointer_expression",
        "named": true
      },
      {
        "type": "protocol_expression",
        "named": true
      },
      {
        "type": "selector_expression",
        "named": true
      },
      {
        "type": "self",
        "named": true
      },
      {
        "type": "sizeof_expression",
        "named": true
      },
      {
        "type": "statement_expression",
        "named": true
      },
      {
        "type": "string_expression",
        "named": true
      },
      {
        "type": "string_literal",
        "named": true
      },
      {
        "type": "subscript_expression",
        "named": true
      },
      {
        "type": "super",
        "named": true
      },
      {
        "type": "true",
        "named": true
      },
      {
        "type": "unary_expression",
        "named": true
      },
      {
        "type": "update_expression",
        "named": true
      },
      {
        "type": "va_arg_expression",
        "named": true
      }
    ]
  },
  {
    "type": "_field_declarator",
    "named": true,
    "subtypes": [
      {
        "type": "array_declarator",
        "named": true
      },
      {
        "type": "block_declarator",
        "named": true
      },
      {
        "type": "field_identifier",
        "named": true
      },
      {
        "type": "function_declarator",
        "named": true
      },
      {
        "type": "parenthesized_declarator",
        "named": true
      },
      {
        "type": "pointer_declarator",
        "named": true
      }
    ]
  },
  {
    "type": "_statement",
    "named": true,
    "subtypes": [
      {
        "type": "autoreleasepool_statement",
        "named": true
      },
      {
        "type": "break_statement",
        "named": true
      },
      {
        "type": "case_statement",
        "named": true
      },
      {
        "type": "compound_statement",
        "named": true
      },
      {
        "type": "continue_statement",
        "named": true
      },
      {
        "type": "do_statement",
        "named": true
      },
      {
        "type": "expression_statement",
        "named": true
      },
      {
        "type": "for_in_statement",
        "named": true
      },
      {
        "type": "for_statement",
        "named": true
      },
      {
        "type": "goto_statement",
        "named": true
      },
      {
        "type": "if_statement",
        "named": true
      },
      {
        "type": "labeled_statement",
        "named": true
      },
      {
        "type": "return_statement",
        "named": true
      },
      {
        "type": "switch_statement",
        "named": true
      },
      {
        "type": "synchronized_statement",
        "named": true
      },
      {
        "type": "throw_statement",
        "named": true
      },
      {
        "type": "try_catch_statement",
        "named": true
      },
      {
        "type": "while_statement",
        "named": true
      }
    ]
  },
  {
    "type": "_type_declarator",
    "named": true,
    "subtypes": [
      {
        "type": "array_declarator",
        "named": true
      },
      {
        "type": "block_declarator",
        "named": true
      },
      {
        "type": "function_declarator",
        "named": true
      },
      {
        "type": "parenthesized_declarator",
        "named": true
      },
      {
        "type": "pointer_declarator",
        "named": true
      },
      {
        "type": "type_identifier",
        "named": true
      }
    ]
  },
  {
    "type": "abstract_array_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          }
        ]
      },
      "size": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "*",
            "named": false
          },
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "abstract_function_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parameter_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "abstract_parenthesized_declarator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_abstract_declarator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "abstract_pointer_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "argument_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        },
        {
          "type": "preproc_defined",
          "named": true
        },
        {
          "type": "preproc_has_include",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "_field_declarator",
            "named": true
          },
          {
            "type": "_type_declarator",
            "named": true
          }
        ]
      },
      "size": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "*",
            "named": false
          },
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "field_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pointer_expression",
            "named": true
          },
          {
            "type": "self",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "atomic_specifier",
    "named": true,
    "fields": {
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_Atomic",
            "named": false
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_descriptor",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "attribute_specifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "availability_attribute_specifier",
          "named": true
        },
        {
          "type": "method_attribute_specifier",
          "named": true
        },
        {
          "type": "method_variadic_arguments_attribute_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "autoreleasepool_statement",
    "named": true,
    "fields": {
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "availability_attribute_specifier",
    "named": true,
    "fields": {
      "message": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "string_literal",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "platform_version",
          "named": true
        }
      ]
    }
  },
  {
    "type": "available_expression",
    "named": true,
    "fields": {
      "platform": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "binary_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "preproc_defined",
            "named": true
          },
          {
            "type": "preproc_has_include",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "!=",
            "named": false
          },
          {
            "type": "%",
            "named": false
          },
          {
            "type": "&",
            "named": false
          },
          {
            "type": "&&",
            "named": false
          },
          {
            "type": "*",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": "/",
            "named": false
          },
          {
            "type": "<",
            "named": false
          },
          {
            "type": "<<",
            "named": false
          },
          {
            "type": "<=",
            "named": false
          },
          {
            "type": "==",
            "named": false
          },
          {
            "type": ">",
            "named": false
          },
          {
            "type": ">=",
            "named": false
          },
          {
            "type": ">>",
            "named": false
          },
          {
            "type": "^",
            "named": false
          },
          {
            "type": "|",
            "named": false
          },
          {
            "type": "||",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "preproc_defined",
            "named": true
          },
          {
            "type": "preproc_has_include",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "bitfield_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block_abstract_declarator",
    "named": true,
    "fields": {
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parameter_list",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parameter_list",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "block_declarator",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block_expression",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_descriptor",
            "named": true
          },
          {
            "type": "type_qualifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "parameter_list",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "compound_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "boolean_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "NO",
          "named": true
        },
        {
          "type": "YES",
          "named": true
        }
      ]
    }
  },
  {
    "type": "break_statement",
    "named": true,
    "fields": {}
  },
  {
    "type": "call_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "argument_list",
            "named": true
          }
        ]
      },
      "function": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "case_statement",
    "named": true,
    "fields": {
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "autoreleasepool_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "compound_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "for_in_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_catch_statement",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cast_expression",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block_abstract_declarator",
            "named": true
          },
          {
            "type": "type_descriptor",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "category_implementation",
    "named": true,
    "fields": {
      "category": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "dynamic_definition",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "method_definition",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "synthesize_definition",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        }
      ]
    }
  },
  {
    "type": "category_interface",
    "named": true,
    "fields": {
      "category": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "generics_type_reference",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "optional",
          "named": true
        },
        {
          "type": "package",
          "named": true
        },
        {
          "type": "parameterized_class_type_arguments",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "private",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "protected",
          "named": true
        },
        {
          "type": "protocol_qualifiers",
          "named": true
        },
        {
          "type": "public",
          "named": true
        },
        {
          "type": "required",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "char_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_forward_declaration",
    "named": true,
    "fields": {
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "parameterized_class_type_arguments",
          "named": true
        },
        {
          "type": "protocol_qualifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_implementation",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "dynamic_definition",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "method_definition",
          "named": true
        },
        {
          "type": "package",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "private",
          "named": true
        },
        {
          "type": "protected",
          "named": true
        },
        {
          "type": "public",
          "named": true
        },
        {
          "type": "superclass_reference",
          "named": true
        },
        {
          "type": "synthesize_definition",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_interface",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "class_interface_attribute_sepcifier",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "generics_type_reference",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "optional",
          "named": true
        },
        {
          "type": "package",
          "named": true
        },
        {
          "type": "parameterized_class_type_arguments",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "private",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "protected",
          "named": true
        },
        {
          "type": "protocol_qualifiers",
          "named": true
        },
        {
          "type": "public",
          "named": true
        },
        {
          "type": "required",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "superclass_reference",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_scope",
    "named": true,
    "fields": {}
  },
  {
    "type": "comma_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "comma_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "compatibility_alias_declaration",
    "named": true,
    "fields": {
      "alias_name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "class_name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "compound_literal_expression",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_descriptor",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "initializer_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "compound_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "concatenated_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_expression",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "continue_statement",
    "named": true,
    "fields": {}
  },
  {
    "type": "declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "init_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "ms_declspec_modifier",
          "named": true
        },
        {
          "type": "storage_class_specifier",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declaration_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "dictionary_expression",
    "named": true,
    "fields": {
      "key": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "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
          }
        ]
      }
    }
  },
  {
    "type": "dynamic_definition",
    "named": true,
    "fields": {
      "property": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "encode_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type_descriptor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_specifier",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "enumerator_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      },
      "superclass": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": ":",
            "named": false
          },
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "enumerator",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enumerator_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "enumerator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        },
        {
          "type": "comma_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_field_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "bitfield_clause",
          "named": true
        },
        {
          "type": "ms_declspec_modifier",
          "named": true
        },
        {
          "type": "storage_class_specifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_declaration_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "preproc_call",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_designator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "field_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "field": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "field_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "for_in_statement",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "initializer": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "NS_NOESCAPE",
            "named": false
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "attribute_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ms_declspec_modifier",
            "named": true
          },
          {
            "type": "nonnull",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "nullable",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "storage_class_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "type_qualifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      },
      "loop": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {
      "condition": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "initializer": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "comma_expression",
            "named": true
          },
          {
            "type": "declaration",
            "named": true
          }
        ]
      },
      "update": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "comma_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "_field_declarator",
            "named": true
          },
          {
            "type": "_type_declarator",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parameter_list",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_definition",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "declarator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "ms_call_modifier",
          "named": true
        },
        {
          "type": "ms_declspec_modifier",
          "named": true
        },
        {
          "type": "storage_class_specifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "generic_type_references",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_descriptor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "generic_type_specifier",
    "named": true,
    "fields": {
      "class_name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      },
      "type_reference": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "generic_type_references",
            "named": true
          },
          {
            "type": "protocol_qualifiers",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "generics_type_reference",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "getter",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "goto_statement",
    "named": true,
    "fields": {
      "label": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "if_statement",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "init_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "initializer_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "initializer_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        },
        {
          "type": "initializer_list",
          "named": true
        },
        {
          "type": "initializer_pair",
          "named": true
        }
      ]
    }
  },
  {
    "type": "initializer_pair",
    "named": true,
    "fields": {
      "designator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "field_designator",
            "named": true
          },
          {
            "type": "subscript_designator",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "initializer_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "instance_scope",
    "named": true,
    "fields": {}
  },
  {
    "type": "keyword_argument",
    "named": true,
    "fields": {
      "argument": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "keyword": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "keyword_argument_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "keyword_argument",
          "named": true
        }
      ]
    }
  },
  {
    "type": "keyword_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "keyword": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "NS_NOESCAPE",
            "named": false
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "attribute_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ms_declspec_modifier",
            "named": true
          },
          {
            "type": "nonnull",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "nullable",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "storage_class_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "type_qualifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "keyword_selector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "keyword_declarator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "labeled_statement",
    "named": true,
    "fields": {
      "label": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "linkage_specification",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "declaration",
            "named": true
          },
          {
            "type": "declaration_list",
            "named": true
          },
          {
            "type": "function_definition",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "string_literal",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "macro_type_specifier",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_descriptor",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "message_expression",
    "named": true,
    "fields": {
      "receiver": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      },
      "selector": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "keyword_argument_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "method_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "NS_NOESCAPE",
            "named": false
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "attribute_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ms_declspec_modifier",
            "named": true
          },
          {
            "type": "nonnull",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "nullable",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "storage_class_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "type_qualifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      },
      "scope": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_scope",
            "named": true
          },
          {
            "type": "instance_scope",
            "named": true
          }
        ]
      },
      "selector": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "...",
            "named": false
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "keyword_selector",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "method_definition",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "NS_NOESCAPE",
            "named": false
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "attribute_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ms_declspec_modifier",
            "named": true
          },
          {
            "type": "nonnull",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "nullable",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "storage_class_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "type_qualifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      },
      "scope": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_scope",
            "named": true
          },
          {
            "type": "instance_scope",
            "named": true
          }
        ]
      },
      "selector": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "...",
            "named": false
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "keyword_selector",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "method_variadic_arguments_attribute_specifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "number_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_import",
    "named": true,
    "fields": {
      "module": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "module_string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "ms_based_modifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "ms_call_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "ms_declspec_modifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "ms_pointer_modifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "ms_restrict_modifier",
          "named": true
        },
        {
          "type": "ms_signed_ptr_modifier",
          "named": true
        },
        {
          "type": "ms_unaligned_ptr_modifier",
          "named": true
        },
        {
          "type": "ms_unsigned_ptr_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "ms_unaligned_ptr_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "ns_enum_specifier",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "enumerator_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "number_expression",
    "named": true,
    "fields": {}
  },
  {
    "type": "object_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          },
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "ms_declspec_modifier",
          "named": true
        },
        {
          "type": "storage_class_specifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "parameter_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameterized_class_type_arguments",
    "named": true,
    "fields": {
      "type": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_descriptor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_declarator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_declarator",
          "named": true
        },
        {
          "type": "_field_declarator",
          "named": true
        },
        {
          "type": "_type_declarator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_expression",
          "named": true
        },
        {
          "type": "comma_expression",
          "named": true
        },
        {
          "type": "preproc_defined",
          "named": true
        },
        {
          "type": "preproc_has_include",
          "named": true
        }
      ]
    }
  },
  {
    "type": "platform",
    "named": true,
    "fields": {}
  },
  {
    "type": "platform_version",
    "named": true,
    "fields": {
      "platform": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "platform",
            "named": true
          }
        ]
      },
      "version": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "number_literal",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "pointer_declarator",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          },
          {
            "type": "_field_declarator",
            "named": true
          },
          {
            "type": "_type_declarator",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "ms_based_modifier",
          "named": true
        },
        {
          "type": "ms_pointer_modifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pointer_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "&",
            "named": false
          },
          {
            "type": "*",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "preproc_call",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "preproc_arg",
            "named": true
          }
        ]
      },
      "directive": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "preproc_directive",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "preproc_def",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "preproc_arg",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "preproc_defined",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "preproc_elif",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "preproc_elif",
            "named": true
          },
          {
            "type": "preproc_else",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "binary_expression",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "char_literal",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "number_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "preproc_defined",
            "named": true
          },
          {
            "type": "preproc_has_include",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_call",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "preproc_else",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_call",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "preproc_function_def",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "preproc_params",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "preproc_arg",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "preproc_has_include",
    "named": true,
    "fields": {
      "path": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "module_string",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "system_lib_string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "preproc_if",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "preproc_elif",
            "named": true
          },
          {
            "type": "preproc_else",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "binary_expression",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "char_literal",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "number_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "preproc_defined",
            "named": true
          },
          {
            "type": "preproc_has_include",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_call",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "preproc_ifdef",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "preproc_elif",
            "named": true
          },
          {
            "type": "preproc_else",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_call",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "preproc_import",
    "named": true,
    "fields": {
      "path": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "system_lib_string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "preproc_include",
    "named": true,
    "fields": {
      "path": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "system_lib_string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "preproc_params",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "DISPATCH_QUEUE_REFERENCE_TYPE",
          "named": true
        },
        {
          "type": "NS_NONATOMIC_IOSONLY",
          "named": true
        },
        {
          "type": "assign",
          "named": true
        },
        {
          "type": "atomic",
          "named": true
        },
        {
          "type": "class",
          "named": true
        },
        {
          "type": "copy",
          "named": true
        },
        {
          "type": "direct",
          "named": true
        },
        {
          "type": "getter",
          "named": true
        },
        {
          "type": "nonatomic",
          "named": true
        },
        {
          "type": "nonnull",
          "named": true
        },
        {
          "type": "null_resettable",
          "named": true
        },
        {
          "type": "null_unspecified",
          "named": true
        },
        {
          "type": "nullable",
          "named": true
        },
        {
          "type": "readonly",
          "named": true
        },
        {
          "type": "readwrite",
          "named": true
        },
        {
          "type": "retain",
          "named": true
        },
        {
          "type": "setter",
          "named": true
        },
        {
          "type": "strong",
          "named": true
        },
        {
          "type": "unsafe_unretained",
          "named": true
        },
        {
          "type": "weak",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "property_attributes",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "protocol_declaration",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "optional",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "protocol_qualifiers",
          "named": true
        },
        {
          "type": "required",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "protocol_expression",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "protocol_forward_declaration",
    "named": true,
    "fields": {
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "protocol_qualifiers",
    "named": true,
    "fields": {
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        },
        {
          "type": "comma_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "selector_expression",
    "named": true,
    "fields": {
      "name": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "setter",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "sized_type_specifier",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "sizeof_expression",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_descriptor",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "statement_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "storage_class_specifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "string_expression",
    "named": true,
    "fields": {}
  },
  {
    "type": "string_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_specifier",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "@defs",
            "named": false
          },
          {
            "type": "field_declaration_list",
            "named": true
          }
        ]
      },
      "class_name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "superclass_reference",
          "named": true
        }
      ]
    }
  },
  {
    "type": "subscript_designator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "subscript_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "index": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "superclass_reference",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type_reference": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "generic_type_references",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "swift_name_attribute_sepcifier",
    "named": true,
    "fields": {
      "class": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "method": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ":",
            "named": false
          },
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "switch_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "synchronized_statement",
    "named": true,
    "fields": {
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "synthesize_definition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "synthesize_property",
          "named": true
        }
      ]
    }
  },
  {
    "type": "synthesize_property",
    "named": true,
    "fields": {
      "instance_variable": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "property": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "throw_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "_expression",
          "named": true
        },
        {
          "type": "comma_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "translation_unit",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "BOOL",
          "named": true
        },
        {
          "type": "Class",
          "named": true
        },
        {
          "type": "IMP",
          "named": true
        },
        {
          "type": "SEL",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "atomic_specifier",
          "named": true
        },
        {
          "type": "auto",
          "named": true
        },
        {
          "type": "category_implementation",
          "named": true
        },
        {
          "type": "category_interface",
          "named": true
        },
        {
          "type": "class_forward_declaration",
          "named": true
        },
        {
          "type": "class_implementation",
          "named": true
        },
        {
          "type": "class_interface",
          "named": true
        },
        {
          "type": "compatibility_alias_declaration",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_specifier",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "generic_type_specifier",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "instancetype",
          "named": true
        },
        {
          "type": "linkage_specification",
          "named": true
        },
        {
          "type": "macro_type_specifier",
          "named": true
        },
        {
          "type": "module_import",
          "named": true
        },
        {
          "type": "ns_enum_specifier",
          "named": true
        },
        {
          "type": "preproc_def",
          "named": true
        },
        {
          "type": "preproc_function_def",
          "named": true
        },
        {
          "type": "preproc_if",
          "named": true
        },
        {
          "type": "preproc_ifdef",
          "named": true
        },
        {
          "type": "preproc_import",
          "named": true
        },
        {
          "type": "preproc_include",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "protocol_declaration",
          "named": true
        },
        {
          "type": "protocol_forward_declaration",
          "named": true
        },
        {
          "type": "sized_type_specifier",
          "named": true
        },
        {
          "type": "struct_specifier",
          "named": true
        },
        {
          "type": "type_definition",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typeof_specifier",
          "named": true
        },
        {
          "type": "union_specifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "try_catch_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      },
      "catch": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      },
      "declaration": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "...",
            "named": false
          },
          {
            "type": "parameter_declaration",
            "named": true
          }
        ]
      },
      "finally": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_definition",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_specifier",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_type_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "swift_name_attribute_sepcifier",
          "named": true
        },
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_descriptor",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_abstract_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "BOOL",
            "named": true
          },
          {
            "type": "Class",
            "named": true
          },
          {
            "type": "IMP",
            "named": true
          },
          {
            "type": "SEL",
            "named": true
          },
          {
            "type": "atomic_specifier",
            "named": true
          },
          {
            "type": "auto",
            "named": true
          },
          {
            "type": "enum_specifier",
            "named": true
          },
          {
            "type": "generic_type_specifier",
            "named": true
          },
          {
            "type": "id",
            "named": true
          },
          {
            "type": "instancetype",
            "named": true
          },
          {
            "type": "macro_type_specifier",
            "named": true
          },
          {
            "type": "ns_enum_specifier",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "sized_type_specifier",
            "named": true
          },
          {
            "type": "struct_specifier",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "typeof_specifier",
            "named": true
          },
          {
            "type": "union_specifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_qualifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_qualifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "typeof_specifier",
    "named": true,
    "fields": {
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "__typeof",
            "named": false
          },
          {
            "type": "__typeof__",
            "named": false
          },
          {
            "type": "typeof",
            "named": false
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "unary_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "preproc_defined",
            "named": true
          },
          {
            "type": "preproc_has_include",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "!",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": "~",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "union_specifier",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "field_declaration_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "ms_declspec_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "update_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "++",
            "named": false
          },
          {
            "type": "--",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "va_arg_expression",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_descriptor",
            "named": true
          }
        ]
      },
      "va_list": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "while_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
          }
        ]
      }
    }
  },
  {
    "type": "\n",
    "named": false
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "#define",
    "named": false
  },
  {
    "type": "#elif",
    "named": false
  },
  {
    "type": "#else",
    "named": false
  },
  {
    "type": "#endif",
    "named": false
  },
  {
    "type": "#if",
    "named": false
  },
  {
    "type": "#ifdef",
    "named": false
  },
  {
    "type": "#ifndef",
    "named": false
  },
  {
    "type": "#import",
    "named": false
  },
  {
    "type": "#include",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "%=",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&=",
    "named": false
  },
  {
    "type": "'",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "*=",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": "++",
    "named": false
  },
  {
    "type": "+=",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "--",
    "named": false
  },
  {
    "type": "-=",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": "/=",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<<=",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": ">>=",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "@autoreleasepool",
    "named": false
  },
  {
    "type": "@available",
    "named": false
  },
  {
    "type": "@catch",
    "named": false
  },
  {
    "type": "@class",
    "named": false
  },
  {
    "type": "@compatibility_alias",
    "named": false
  },
  {
    "type": "@defs",
    "named": false
  },
  {
    "type": "@dynamic",
    "named": false
  },
  {
    "type": "@encode",
    "named": false
  },
  {
    "type": "@end",
    "named": false
  },
  {
    "type": "@finally",
    "named": false
  },
  {
    "type": "@implementation",
    "named": false
  },
  {
    "type": "@import",
    "named": false
  },
  {
    "type": "@interface",
    "named": false
  },
  {
    "type": "@property",
    "named": false
  },
  {
    "type": "@protocol",
    "named": false
  },
  {
    "type": "@selector",
    "named": false
  },
  {
    "type": "@synchronized",
    "named": false
  },
  {
    "type": "@synthesize",
    "named": false
  },
  {
    "type": "@throw",
    "named": false
  },
  {
    "type": "@try",
    "named": false
  },
  {
    "type": "API_AVAILABLE",
    "named": false
  },
  {
    "type": "API_DEPRECATED",
    "named": false
  },
  {
    "type": "API_UNAVAILABLE",
    "named": false
  },
  {
    "type": "BOOL",
    "named": true
  },
  {
    "type": "CF_FORMAT_FUNCTION",
    "named": false
  },
  {
    "type": "Class",
    "named": true
  },
  {
    "type": "DEPRECATED_ATTRIBUTE",
    "named": false
  },
  {
    "type": "DEPRECATED_MSG_ATTRIBUTE",
    "named": false
  },
  {
    "type": "DISPATCH_QUEUE_REFERENCE_TYPE",
    "named": true
  },
  {
    "type": "IBInspectable",
    "named": false
  },
  {
    "type": "IBOutlet",
    "named": false
  },
  {
    "type": "IMP",
    "named": true
  },
  {
    "type": "L\"",
    "named": false
  },
  {
    "type": "L'",
    "named": false
  },
  {
    "type": "NO",
    "named": true
  },
  {
    "type": "NS_AVAILABLE",
    "named": false
  },
  {
    "type": "NS_AVAILABLE_IOS",
    "named": false
  },
  {
    "type": "NS_CLASS_AVAILABLE_IOS",
    "named": false
  },
  {
    "type": "NS_CLASS_DEPRECATED_IOS",
    "named": false
  },
  {
    "type": "NS_DEPRECATED_IOS",
    "named": false
  },
  {
    "type": "NS_ENUM",
    "named": false
  },
  {
    "type": "NS_ENUM_AVAILABLE_IOS",
    "named": false
  },
  {
    "type": "NS_ENUM_DEPRECATED_IOS",
    "named": false
  },
  {
    "type": "NS_ERROR_ENUM",
    "named": false
  },
  {
    "type": "NS_EXTENSION_UNAVAILABLE_IOS",
    "named": false
  },
  {
    "type": "NS_FORMAT_FUNCTION",
    "named": false
  },
  {
    "type": "NS_NOESCAPE",
    "named": false
  },
  {
    "type": "NS_NONATOMIC_IOSONLY",
    "named": true
  },
  {
    "type": "NS_OPTIONS",
    "named": false
  },
  {
    "type": "NS_REFINED_FOR_SWIFT",
    "named": false
  },
  {
    "type": "NS_SWIFT_NAME",
    "named": false
  },
  {
    "type": "NS_SWIFT_UNAVAILABLE",
    "named": false
  },
  {
    "type": "NS_UNAVAILABLE",
    "named": false
  },
  {
    "type": "NS_VALID_UNTIL_END_OF_SCOPE",
    "named": false
  },
  {
    "type": "SEL",
    "named": true
  },
  {
    "type": "U\"",
    "named": false
  },
  {
    "type": "U'",
    "named": false
  },
  {
    "type": "UI_APPEARANCE_SELECTOR",
    "named": false
  },
  {
    "type": "UNAVAILABLE_ATTRIBUTE",
    "named": false
  },
  {
    "type": "YES",
    "named": true
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "^=",
    "named": false
  },
  {
    "type": "_Atomic",
    "named": false
  },
  {
    "type": "_Complex",
    "named": false
  },
  {
    "type": "_Nonnull",
    "named": false
  },
  {
    "type": "_Null_unspecified",
    "named": false
  },
  {
    "type": "_Nullable",
    "named": false
  },
  {
    "type": "_Nullable_result",
    "named": false
  },
  {
    "type": "__GENERICS",
    "named": false
  },
  {
    "type": "__IOS_AVAILABLE",
    "named": false
  },
  {
    "type": "__attribute",
    "named": false
  },
  {
    "type": "__attribute__",
    "named": false
  },
  {
    "type": "__autoreleasing",
    "named": false
  },
  {
    "type": "__based",
    "named": false
  },
  {
    "type": "__block",
    "named": false
  },
  {
    "type": "__bridge",
    "named": false
  },
  {
    "type": "__bridge_retained",
    "named": false
  },
  {
    "type": "__bridge_transfer",
    "named": false
  },
  {
    "type": "__builtin_available",
    "named": false
  },
  {
    "type": "__cdecl",
    "named": false
  },
  {
    "type": "__clrcall",
    "named": false
  },
  {
    "type": "__complex",
    "named": false
  },
  {
    "type": "__contravariant",
    "named": false
  },
  {
    "type": "__covariant",
    "named": false
  },
  {
    "type": "__declspec",
    "named": false
  },
  {
    "type": "__deprecated_enum_msg",
    "named": false
  },
  {
    "type": "__deprecated_msg",
    "named": false
  },
  {
    "type": "__fastcall",
    "named": false
  },
  {
    "type": "__has_include",
    "named": false
  },
  {
    "type": "__kindof",
    "named": false
  },
  {
    "type": "__nonnull",
    "named": false
  },
  {
    "type": "__nullable",
    "named": false
  },
  {
    "type": "__objc_no",
    "named": false
  },
  {
    "type": "__objc_yes",
    "named": false
  },
  {
    "type": "__stdcall",
    "named": false
  },
  {
    "type": "__strong",
    "named": false
  },
  {
    "type": "__thiscall",
    "named": false
  },
  {
    "type": "__typeof",
    "named": false
  },
  {
    "type": "__typeof__",
    "named": false
  },
  {
    "type": "__unaligned",
    "named": false
  },
  {
    "type": "__unsafe_unretained",
    "named": false
  },
  {
    "type": "__unused",
    "named": false
  },
  {
    "type": "__vectorcall",
    "named": false
  },
  {
    "type": "__weak",
    "named": false
  },
  {
    "type": "_unaligned",
    "named": false
  },
  {
    "type": "assign",
    "named": true
  },
  {
    "type": "atomic",
    "named": true
  },
  {
    "type": "auto",
    "named": false
  },
  {
    "type": "auto",
    "named": true
  },
  {
    "type": "break",
    "named": false
  },
  {
    "type": "bycopy",
    "named": false
  },
  {
    "type": "byref",
    "named": false
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "class",
    "named": true
  },
  {
    "type": "class_interface_attribute_sepcifier",
    "named": true
  },
  {
    "type": "comment",
    "named": true
  },
  {
    "type": "const",
    "named": false
  },
  {
    "type": "continue",
    "named": false
  },
  {
    "type": "copy",
    "named": true
  },
  {
    "type": "default",
    "named": false
  },
  {
    "type": "defined",
    "named": false
  },
  {
    "type": "direct",
    "named": true
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "extern",
    "named": false
  },
  {
    "type": "false",
    "named": true
  },
  {
    "type": "field_identifier",
    "named": true
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "getter",
    "named": false
  },
  {
    "type": "goto",
    "named": false
  },
  {
    "type": "id",
    "named": true
  },
  {
    "type": "identifier",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "inline",
    "named": false
  },
  {
    "type": "inout",
    "named": false
  },
  {
    "type": "instancetype",
    "named": true
  },
  {
    "type": "ios",
    "named": false
  },
  {
    "type": "long",
    "named": false
  },
  {
    "type": "macos",
    "named": false
  },
  {
    "type": "macosx",
    "named": false
  },
  {
    "type": "method_attribute_specifier",
    "named": true
  },
  {
    "type": "module_string",
    "named": true
  },
  {
    "type": "ms_restrict_modifier",
    "named": true
  },
  {
    "type": "ms_signed_ptr_modifier",
    "named": true
  },
  {
    "type": "ms_unsigned_ptr_modifier",
    "named": true
  },
  {
    "type": "nil",
    "named": true
  },
  {
    "type": "nonatomic",
    "named": true
  },
  {
    "type": "nonnull",
    "named": true
  },
  {
    "type": "null",
    "named": true
  },
  {
    "type": "null_resettable",
    "named": true
  },
  {
    "type": "null_unspecified",
    "named": true
  },
  {
    "type": "nullable",
    "named": true
  },
  {
    "type": "number_literal",
    "named": false
  },
  {
    "type": "number_literal",
    "named": true
  },
  {
    "type": "oneway",
    "named": false
  },
  {
    "type": "optional",
    "named": true
  },
  {
    "type": "out",
    "named": false
  },
  {
    "type": "package",
    "named": true
  },
  {
    "type": "pragma",
    "named": true
  },
  {
    "type": "preproc_arg",
    "named": true
  },
  {
    "type": "preproc_directive",
    "named": true
  },
  {
    "type": "primitive_type",
    "named": true
  },
  {
    "type": "private",
    "named": true
  },
  {
    "type": "protected",
    "named": true
  },
  {
    "type": "public",
    "named": true
  },
  {
    "type": "readonly",
    "named": true
  },
  {
    "type": "readwrite",
    "named": true
  },
  {
    "type": "register",
    "named": false
  },
  {
    "type": "required",
    "named": true
  },
  {
    "type": "restrict",
    "named": false
  },
  {
    "type": "retain",
    "named": true
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "self",
    "named": true
  },
  {
    "type": "setter",
    "named": false
  },
  {
    "type": "short",
    "named": false
  },
  {
    "type": "signed",
    "named": false
  },
  {
    "type": "sizeof",
    "named": false
  },
  {
    "type": "statement_identifier",
    "named": true
  },
  {
    "type": "static",
    "named": false
  },
  {
    "type": "strong",
    "named": true
  },
  {
    "type": "struct",
    "named": false
  },
  {
    "type": "super",
    "named": true
  },
  {
    "type": "switch",
    "named": false
  },
  {
    "type": "system_lib_string",
    "named": true
  },
  {
    "type": "true",
    "named": true
  },
  {
    "type": "tvos",
    "named": false
  },
  {
    "type": "type_identifier",
    "named": true
  },
  {
    "type": "typedef",
    "named": false
  },
  {
    "type": "typeof",
    "named": false
  },
  {
    "type": "u\"",
    "named": false
  },
  {
    "type": "u'",
    "named": false
  },
  {
    "type": "u8\"",
    "named": false
  },
  {
    "type": "u8'",
    "named": false
  },
  {
    "type": "union",
    "named": false
  },
  {
    "type": "unsafe_unretained",
    "named": true
  },
  {
    "type": "unsigned",
    "named": false
  },
  {
    "type": "va_arg",
    "named": false
  },
  {
    "type": "volatile",
    "named": false
  },
  {
    "type": "watchos",
    "named": false
  },
  {
    "type": "weak",
    "named": true
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "|=",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  },
  {
    "type": "~",
    "named": false
  }
]