コード例 #1
0
        private static DirectiveDefinitionNode ParseDirectiveDefinition(
            ParserContext context)
        {
            SyntaxToken     start       = context.Current;
            StringValueNode description = ParseDescription(context);

            context.ExpectDirectiveKeyword();
            context.ExpectAt();
            NameNode name = ParseName(context);
            List <InputValueDefinitionNode> arguments =
                ParseArgumentDefinitions(context);
            bool isRepeatable = context.SkipRepeatableKeyword();

            context.ExpectOnKeyword();
            List <NameNode> locations =
                ParseDirectiveLocations(context);
            Location location = context.CreateLocation(start);

            return(new DirectiveDefinitionNode
                   (
                       location,
                       name,
                       description,
                       isRepeatable,
                       arguments,
                       locations
                   ));
        }