code: private function parseSchemaDefinition()
      {
          $start = $this->lexer->token;
          $this->expectKeyword('schema');
          $directives = $this->parseDirectives(true);
  
          $operationTypes = $this->many(
              Token::BRACE_L,
              function () {
                  return $this->parseOperationTypeDefinition();
              },
              Token::BRACE_R
          );
  
          return new SchemaDefinitionNode([
              'directives'     => $directives,
              'operationTypes' => $operationTypes,
              'loc'            => $this->loc($start),
          ]);
      }
docs: @return SchemaDefinitionNode
  
  @throws SyntaxError