When GraphQL receives a query string, it goes through these steps:
GraphQL::Language::Lexer splits the string into a stream of tokensGraphQL::Language::Parser builds an abstract syntax tree (AST) out of the stream of tokensGraphQL::StaticValidation::Validator validates the incoming AST as a valid query for the schemaGraphQL::InternalRepresentation::Rewrite builds a tree of GraphQL::InternalRepresentation::Nodes which express the query in a simpler way than the ASTGraphQL::Analysis.analyze_queryresolve functions are called and the response is built