public override object VisitDocument(GraphQLParser.DocumentContext context) { var document = new Document(); NewNode(document, context); context.definition().Apply(childContext => { var definition = Visit(childContext) as IDefinition; document.AddDefinition(definition); if (definition is FragmentDefinition) { document.Fragments.Add(definition as FragmentDefinition); } else if (definition is Operation) { document.Operations.Add(definition as Operation); } else { throw new ExecutionError("Unhandled document definition"); } }); return(document); }
protected IEnumerable <GraphQLParser.OperationDefinitionContext> GetOperations(Predicate <GraphQLParser.OperationDefinitionContext> filter) { return(documentContext.definition() .Where(x => x.operationDefinition() != null) .Select(x => x.operationDefinition()).Where(x => filter(x)).ToArray()); }