/// <summary> /// Parses a fragment spred or inline fragment within a selection set. /// <see cref="ParseFragmentSpread" /> and /// <see cref="ParseInlineFragment" />. /// </summary> /// <param name="context">The parser context.</param> private static ISelectionNode ParseFragment(ParserContext context) { SyntaxToken start = context.Current; context.ExpectSpread(); var isOnKeyword = context.Current.IsOnKeyword(); if (!isOnKeyword && context.Current.IsName()) { return(ParseFragmentSpread(context, start)); } NamedTypeNode typeCondition = null; if (isOnKeyword) { context.MoveNext(); typeCondition = ParseNamedType(context); } return(ParseInlineFragment(context, start, typeCondition)); }