{
  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
  "name": "capnp",
  "word": "identifier",
  "rules": {
    "message": {
      "type": "REPEAT",
      "content": {
        "type": "SYMBOL",
        "name": "statement"
      }
    },
    "unique_id": {
      "type": "TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "@"
          },
          {
            "type": "PATTERN",
            "value": "0[xX][\\da-fA-F](_?[\\da-fA-F])*"
          }
        ]
      }
    },
    "statement": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "unique_id_statement"
        },
        {
          "type": "SYMBOL",
          "name": "using_directive"
        },
        {
          "type": "SYMBOL",
          "name": "import"
        },
        {
          "type": "SYMBOL",
          "name": "annotation"
        },
        {
          "type": "SYMBOL",
          "name": "top_level_annotation"
        },
        {
          "type": "SYMBOL",
          "name": "definition"
        }
      ]
    },
    "unique_id_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "unique_id"
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "using_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "using"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_type_identifier"
            },
            {
              "type": "SYMBOL",
              "name": "replace_using"
            },
            {
              "type": "SYMBOL",
              "name": "import_using"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "replace_using": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_type_definition"
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_type_identifier"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "generics"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        }
      ]
    },
    "import_using": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "import"
            },
            {
              "type": "SYMBOL",
              "name": "_import_path"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "."
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_type_identifier"
                      }
                    ]
                  }
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_type_identifier"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "STRING",
              "value": "import"
            },
            {
              "type": "SYMBOL",
              "name": "_import_path"
            }
          ]
        }
      ]
    },
    "import": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$import"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_import_path"
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_import_path"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "."
                },
                {
                  "type": "STRING",
                  "value": "namespace"
                },
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_namespace"
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "_namespace": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "string"
      },
      "named": true,
      "value": "namespace"
    },
    "top_level_annotation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "top_level_annotation_body"
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "top_level_annotation_body": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "IMMEDIATE_TOKEN",
            "content": {
              "type": "PATTERN",
              "value": "[A-Za-z_][A-Za-z0-9._]*"
            }
          },
          "named": true,
          "value": "_type_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_namespace"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "number"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "float"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "boolean"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "concatenated_string"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "block_text"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "struct_shorthand"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_internal_const_identifier"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "data"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "const_list"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "void"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "embedded_file"
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_annotation_identifier"
                                },
                                {
                                  "type": "STRING",
                                  "value": "="
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "const_value"
                                }
                              ]
                            },
                            {
                              "type": "REPEAT",
                              "content": {
                                "type": "SEQ",
                                "members": [
                                  {
                                    "type": "STRING",
                                    "value": ","
                                  },
                                  {
                                    "type": "SEQ",
                                    "members": [
                                      {
                                        "type": "SYMBOL",
                                        "name": "_annotation_identifier"
                                      },
                                      {
                                        "type": "STRING",
                                        "value": "="
                                      },
                                      {
                                        "type": "SYMBOL",
                                        "name": "const_value"
                                      }
                                    ]
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "annotation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "annotation"
        },
        {
          "type": "SYMBOL",
          "name": "_annotation_definition_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unique_id"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "annotation_targets"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":"
                },
                {
                  "type": "SYMBOL",
                  "name": "field_type"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "annotation_targets": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "annotation_target"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "annotation_target"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "annotation_target": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "*"
        },
        {
          "type": "STRING",
          "value": "const"
        },
        {
          "type": "STRING",
          "value": "enumerant"
        },
        {
          "type": "STRING",
          "value": "field"
        },
        {
          "type": "STRING",
          "value": "file"
        },
        {
          "type": "STRING",
          "value": "method"
        },
        {
          "type": "STRING",
          "value": "param"
        },
        {
          "type": "STRING",
          "value": "annotation"
        },
        {
          "type": "STRING",
          "value": "enum"
        },
        {
          "type": "STRING",
          "value": "group"
        },
        {
          "type": "STRING",
          "value": "interface"
        },
        {
          "type": "STRING",
          "value": "struct"
        },
        {
          "type": "STRING",
          "value": "union"
        }
      ]
    },
    "_annotation_call": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_annotation_identifier"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "generics"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "("
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_param_identifier"
                    },
                    {
                      "type": "STRING",
                      "value": "="
                    },
                    {
                      "type": "SYMBOL",
                      "name": "const_value"
                    },
                    {
                      "type": "STRING",
                      "value": ")"
                    }
                  ]
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "."
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "identifier"
                    },
                    "named": true,
                    "value": "attribute"
                  }
                ]
              }
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "("
                        },
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "annotation_array"
                            },
                            {
                              "type": "BLANK"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": ")"
                        }
                      ]
                    },
                    {
                      "type": "SYMBOL",
                      "name": "annotation_literal"
                    }
                  ]
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        }
      ]
    },
    "annotation_literal": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "const_value"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "annotation_array": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "["
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "annotation_array"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "annotation_array"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "STRING",
              "value": "]"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "annotation_array"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "annotation_array"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_annotation_array_def"
        }
      ]
    },
    "_annotation_array_def": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_property"
                  },
                  {
                    "type": "STRING",
                    "value": "="
                  },
                  {
                    "type": "SYMBOL",
                    "name": "const_value"
                  }
                ]
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": ","
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_property"
                        },
                        {
                          "type": "STRING",
                          "value": "="
                        },
                        {
                          "type": "SYMBOL",
                          "name": "const_value"
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "const_value"
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": ","
                    },
                    {
                      "type": "SYMBOL",
                      "name": "const_value"
                    }
                  ]
                }
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "definition": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "struct"
        },
        {
          "type": "SYMBOL",
          "name": "enum"
        },
        {
          "type": "SYMBOL",
          "name": "const"
        },
        {
          "type": "SYMBOL",
          "name": "interface"
        }
      ]
    },
    "struct": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "struct"
        },
        {
          "type": "SYMBOL",
          "name": "_type_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "generics"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unique_id"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "field"
              },
              {
                "type": "SYMBOL",
                "name": "using_directive"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "nested_struct": {
      "type": "SYMBOL",
      "name": "struct"
    },
    "enum": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "enum"
        },
        {
          "type": "SYMBOL",
          "name": "_enum_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unique_id"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "enum_field"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "nested_enum": {
      "type": "SYMBOL",
      "name": "enum"
    },
    "enum_field": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_enum_member"
        },
        {
          "type": "SYMBOL",
          "name": "field_version"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "group": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_type_identifier"
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "STRING",
          "value": "group"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "field"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "field": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_field_identifier"
            },
            {
              "type": "SYMBOL",
              "name": "field_version"
            },
            {
              "type": "STRING",
              "value": ":"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "field_type"
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "="
                            },
                            {
                              "type": "SYMBOL",
                              "name": "const_value"
                            }
                          ]
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SYMBOL",
                        "name": "_annotation_call"
                      }
                    }
                  ]
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "import"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_import_path"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "."
                          },
                          {
                            "type": "SYMBOL",
                            "name": "_type_identifier"
                          }
                        ]
                      }
                    }
                  ]
                }
              ]
            },
            {
              "type": "STRING",
              "value": ";"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "annotation"
        },
        {
          "type": "SYMBOL",
          "name": "nested_struct"
        },
        {
          "type": "SYMBOL",
          "name": "nested_enum"
        },
        {
          "type": "SYMBOL",
          "name": "const"
        },
        {
          "type": "SYMBOL",
          "name": "group"
        },
        {
          "type": "SYMBOL",
          "name": "union"
        },
        {
          "type": "SYMBOL",
          "name": "interface"
        }
      ]
    },
    "union": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_named_union"
        },
        {
          "type": "SYMBOL",
          "name": "_unnamed_union"
        }
      ]
    },
    "nested_union": {
      "type": "SYMBOL",
      "name": "union"
    },
    "_unnamed_union": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "union"
        },
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "union_field"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "_named_union": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_type_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "field_version"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "STRING",
          "value": "union"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "union_field"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "union_field": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "union"
                  },
                  "named": true,
                  "value": "field_identifier"
                },
                {
                  "type": "SYMBOL",
                  "name": "_field_identifier"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "field_version"
            },
            {
              "type": "STRING",
              "value": ":"
            },
            {
              "type": "SYMBOL",
              "name": "field_type"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "_annotation_call"
              }
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "="
                    },
                    {
                      "type": "SYMBOL",
                      "name": "const_value"
                    }
                  ]
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "STRING",
              "value": ";"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "group"
        },
        {
          "type": "SYMBOL",
          "name": "nested_union"
        }
      ]
    },
    "interface": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "interface"
        },
        {
          "type": "SYMBOL",
          "name": "_type_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unique_id"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "generics"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "extends"
                },
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_extend_type"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "generics"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "method"
              },
              {
                "type": "SYMBOL",
                "name": "interface"
              },
              {
                "type": "SYMBOL",
                "name": "struct"
              },
              {
                "type": "SYMBOL",
                "name": "enum"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "method": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_method_identifier"
        },
        {
          "type": "SYMBOL",
          "name": "field_version"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "implicit_generics"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "method_parameters"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_type_identifier"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "generics"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "->"
                },
                {
                  "type": "SYMBOL",
                  "name": "return_type"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "method_parameters": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "parameters"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "parameters": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "parameter"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "parameter"
              }
            ]
          }
        }
      ]
    },
    "parameter": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_param_identifier"
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SYMBOL",
          "name": "field_type"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "SYMBOL",
                  "name": "const_value"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "return_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "named_return_types"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unnamed_return_type"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "generics"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        }
      ]
    },
    "named_return_types": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "named_return_type"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "unnamed_return_type": {
      "type": "SYMBOL",
      "name": "_type_identifier"
    },
    "_single_named_return_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_return_identifier"
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_type_identifier"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "generics"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "SYMBOL",
                  "name": "const_value"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "named_return_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_single_named_return_type"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "_single_named_return_type"
              }
            ]
          }
        }
      ]
    },
    "field_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "primitive_type"
        },
        {
          "type": "SYMBOL",
          "name": "list_type"
        },
        {
          "type": "SYMBOL",
          "name": "custom_type"
        }
      ]
    },
    "primitive_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "AnyPointer"
        },
        {
          "type": "STRING",
          "value": "Bool"
        },
        {
          "type": "STRING",
          "value": "Int8"
        },
        {
          "type": "STRING",
          "value": "Int16"
        },
        {
          "type": "STRING",
          "value": "Int32"
        },
        {
          "type": "STRING",
          "value": "Int64"
        },
        {
          "type": "STRING",
          "value": "UInt8"
        },
        {
          "type": "STRING",
          "value": "UInt16"
        },
        {
          "type": "STRING",
          "value": "UInt32"
        },
        {
          "type": "STRING",
          "value": "UInt64"
        },
        {
          "type": "STRING",
          "value": "Float32"
        },
        {
          "type": "STRING",
          "value": "Float64"
        },
        {
          "type": "STRING",
          "value": "Text"
        },
        {
          "type": "STRING",
          "value": "Data"
        },
        {
          "type": "STRING",
          "value": "Void"
        }
      ]
    },
    "list_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "List"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "field_type"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "custom_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_type_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "generics"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "."
              },
              {
                "type": "SYMBOL",
                "name": "_type_identifier"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "generics"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "const": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "const"
        },
        {
          "type": "SYMBOL",
          "name": "_const_identifier"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unique_id"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SYMBOL",
          "name": "field_type"
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "const_value"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_annotation_call"
          }
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "const_value": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "float"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "concatenated_string"
        },
        {
          "type": "SYMBOL",
          "name": "block_text"
        },
        {
          "type": "SYMBOL",
          "name": "struct_shorthand"
        },
        {
          "type": "SYMBOL",
          "name": "_internal_const_identifier"
        },
        {
          "type": "SYMBOL",
          "name": "data"
        },
        {
          "type": "SYMBOL",
          "name": "const_list"
        },
        {
          "type": "SYMBOL",
          "name": "void"
        },
        {
          "type": "SYMBOL",
          "name": "embedded_file"
        }
      ]
    },
    "_same_scope_const_value": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "."
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "const_value"
          },
          "named": true,
          "value": "local_const"
        }
      ]
    },
    "number": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "-"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "0x"
                  },
                  {
                    "type": "STRING",
                    "value": "0X"
                  }
                ]
              },
              {
                "type": "PATTERN",
                "value": "[\\da-fA-F](_?[\\da-fA-F])*"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "-"
                          },
                          {
                            "type": "STRING",
                            "value": "+"
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "0"
                      },
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "CHOICE",
                            "members": [
                              {
                                "type": "STRING",
                                "value": "0"
                              },
                              {
                                "type": "BLANK"
                              }
                            ]
                          },
                          {
                            "type": "PATTERN",
                            "value": "[1-9]"
                          },
                          {
                            "type": "CHOICE",
                            "members": [
                              {
                                "type": "SEQ",
                                "members": [
                                  {
                                    "type": "CHOICE",
                                    "members": [
                                      {
                                        "type": "STRING",
                                        "value": "_"
                                      },
                                      {
                                        "type": "BLANK"
                                      }
                                    ]
                                  },
                                  {
                                    "type": "PATTERN",
                                    "value": "\\d(_?\\d)*"
                                  }
                                ]
                              },
                              {
                                "type": "BLANK"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "type": "PATTERN",
                "value": "\\d(_?\\d)*"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "-"
                          },
                          {
                            "type": "STRING",
                            "value": "+"
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\d(_?\\d)*"
                  }
                ]
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "-"
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": "inf"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": "nan"
              }
            ]
          }
        ]
      }
    },
    "field_version": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_normal_version"
        },
        {
          "type": "SYMBOL",
          "name": "_inline_version"
        }
      ]
    },
    "_normal_version": {
      "type": "TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "@"
          },
          {
            "type": "PATTERN",
            "value": "\\d+"
          }
        ]
      }
    },
    "_inline_version": {
      "type": "ALIAS",
      "content": {
        "type": "TOKEN",
        "content": {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "@"
            },
            {
              "type": "PATTERN",
              "value": "\\d+"
            },
            {
              "type": "STRING",
              "value": "!"
            }
          ]
        }
      },
      "named": true,
      "value": "inline_field"
    },
    "float": {
      "type": "PATTERN",
      "value": "[+-]?(\\d+(\\.\\d+)?|\\.\\d+)([Ee][+-]?\\d+)?"
    },
    "boolean": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "true"
        },
        {
          "type": "STRING",
          "value": "false"
        }
      ]
    },
    "data": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "0x"
          },
          "named": true,
          "value": "data_hex"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "\"([0-9A-Fa-f]{2} ?)*\""
          },
          "named": true,
          "value": "data_string"
        }
      ]
    },
    "const_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "const_value"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "const_value"
                      }
                    ]
                  }
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": ","
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "void": {
      "type": "STRING",
      "value": "void"
    },
    "struct_shorthand": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "PREC_LEFT",
            "value": 0,
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_property"
                },
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_same_scope_const_value"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "const_value"
                    }
                  ]
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": ","
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_internal_const_identifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "REPEAT1",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_identifier_no_period"
                    },
                    "named": true,
                    "value": "type_identifier"
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "."
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  }
                ]
              }
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_identifier_no_period"
              },
              "named": true,
              "value": "const_identifier"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_identifier_no_period"
          },
          "named": true,
          "value": "const_identifier"
        }
      ]
    },
    "embedded_file": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "embed"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        }
      ]
    },
    "generics": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "generic_parameters"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "implicit_generics": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "generic_parameters"
          },
          "named": true,
          "value": "implicit_generic_parameters"
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "generic_parameters": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_generic_identifier"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "_generic_identifier"
              }
            ]
          }
        }
      ]
    },
    "string": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "\""
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "unescaped_double_string_fragment"
                    },
                    "named": true,
                    "value": "string_fragment"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_escape_sequence"
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": "\""
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "'"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "unescaped_single_string_fragment"
                    },
                    "named": true,
                    "value": "string_fragment"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_escape_sequence"
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": "'"
            }
          ]
        }
      ]
    },
    "concatenated_string": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SYMBOL",
            "name": "string"
          }
        }
      ]
    },
    "block_text": {
      "type": "REPEAT1",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "`"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "unescaped_block_string_fragment"
                  },
                  "named": true,
                  "value": "string_fragment"
                },
                {
                  "type": "SYMBOL",
                  "name": "_escape_sequence"
                }
              ]
            }
          }
        ]
      }
    },
    "unescaped_double_string_fragment": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PREC",
        "value": 1,
        "content": {
          "type": "PATTERN",
          "value": "[^\"\\\\]+"
        }
      }
    },
    "unescaped_single_string_fragment": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PREC",
        "value": 1,
        "content": {
          "type": "PATTERN",
          "value": "[^'\\\\]+"
        }
      }
    },
    "unescaped_block_string_fragment": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PREC",
        "value": 1,
        "content": {
          "type": "PATTERN",
          "value": "[^`\\\\;]+"
        }
      }
    },
    "_escape_sequence": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC",
          "value": 2,
          "content": {
            "type": "IMMEDIATE_TOKEN",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "\\"
                },
                {
                  "type": "PATTERN",
                  "value": "[^abfnrtvxu'\\\"\\\\\\?]"
                }
              ]
            }
          }
        },
        {
          "type": "PREC",
          "value": 1,
          "content": {
            "type": "SYMBOL",
            "name": "escape_sequence"
          }
        }
      ]
    },
    "escape_sequence": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "\\"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "PATTERN",
                "value": "[^xu0-7]"
              },
              {
                "type": "PATTERN",
                "value": "[0-7]{1,3}"
              },
              {
                "type": "PATTERN",
                "value": "x[0-9a-fA-F]{2}"
              },
              {
                "type": "PATTERN",
                "value": "u[0-9a-fA-F]{4}"
              },
              {
                "type": "PATTERN",
                "value": "u\\{[0-9a-fA-F]+\\}"
              }
            ]
          }
        ]
      }
    },
    "_import_path": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "string"
      },
      "named": true,
      "value": "import_path"
    },
    "identifier": {
      "type": "TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "[A-Za-z_][A-Za-z0-9._]*"
      }
    },
    "_identifier_no_period": {
      "type": "TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "[A-Za-z_][A-Za-z0-9_]*"
      }
    },
    "_annotation_definition_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "annotation_definition_identifier"
    },
    "_annotation_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "annotation_identifier"
    },
    "_const_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "const_identifier"
    },
    "_enum_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "enum_identifier"
    },
    "_enum_member": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "enum_member"
    },
    "_field_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "field_identifier"
    },
    "_generic_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "field_type"
      },
      "named": true,
      "value": "generic_identifier"
    },
    "_method_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "method_identifier"
    },
    "_param_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "param_identifier"
    },
    "_return_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "return_identifier"
    },
    "_type_definition": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "type_definition"
    },
    "_type_identifier": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "type_identifier"
    },
    "_extend_type": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "extend_type"
    },
    "_property": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "identifier"
      },
      "named": true,
      "value": "property"
    },
    "comment": {
      "type": "TOKEN",
      "content": {
        "type": "REPEAT1",
        "content": {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "#"
            },
            {
              "type": "PATTERN",
              "value": ".*"
            }
          ]
        }
      }
    }
  },
  "extras": [
    {
      "type": "SYMBOL",
      "name": "comment"
    },
    {
      "type": "PATTERN",
      "value": "[\\s\\f\\uFEFF\\u2060\\u200B]|\\\\\\r?\\n"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [],
  "inline": [
    "_single_named_return_type",
    "_annotation_identifier",
    "_const_identifier",
    "_enum_identifier",
    "_enum_member",
    "_field_identifier",
    "_generic_identifier",
    "_param_identifier",
    "_return_identifier",
    "_type_definition",
    "_type_identifier",
    "_extend_type",
    "_property",
    "_namespace",
    "_import_path",
    "_annotation_call"
  ],
  "supertypes": [
    "definition",
    "statement"
  ],
  "reserved": {}
}