private void ParseDefinition() { if (_isString[(int)_reader.Kind]) { ParseDescription(); } else if (_reader.Kind == TokenKind.Name) { if (_reader.Value.SequenceEqual(GraphQLKeywords.Query) || _reader.Value.SequenceEqual(GraphQLKeywords.Mutation) || _reader.Value.SequenceEqual(GraphQLKeywords.Subscription)) { ParseOperationDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Fragment)) { ParseFragmentDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Schema)) { ParseSchemaDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Scalar)) { ParseScalarTypeDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Type)) { ParseObjectTypeDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Interface)) { ParseInterfaceTypeDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Union)) { ParseUnionTypeDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Enum)) { ParseEnumTypeDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Input)) { ParseInputObjectTypeDefinition(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Extend)) { ParseTypeExtension(); } else if (_reader.Value.SequenceEqual(GraphQLKeywords.Directive)) { ParseDirectiveDefinition(); } else { _classifications.AddClassification( SyntaxClassificationKind.Error, _reader.Token); MoveNext(); } } else if (_reader.Kind == TokenKind.LeftBrace) { ParseShortOperationDefinition(); } else { _classifications.AddClassification( SyntaxClassificationKind.Error, _reader.Token); MoveNext(); } }