src/Language/Parser.php
private function parseFragmentDefinition()
    {
        $start = $this->lexer->token;
        $this->expectKeyword('fragment');

        $name = $this->parseFragmentName();

        // Experimental support for defining variables within fragments changes
        // the grammar of FragmentDefinition:
        //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet
        $variableDefinitions = null;
        if (isset($this->lexer->options['experimentalFragmentVariables'])) {
            $variableDefinitions = $this->parseVariableDefinitions();
        }
        $this->expectKeyword('on');
        $typeCondition = $this->parseNamedType();

        return new FragmentDefinitionNode([
            'name'                => $name,
            'variableDefinitions' => $variableDefinitions,
            'typeCondition'       => $typeCondition,
            'directives'          => $this->parseDirectives(false),
            'selectionSet'        => $this->parseSelectionSet(),
            'loc'                 => $this->loc($start),
        ]);
    }
private function parseFragmentDefinition()
    {
        $start = $this->lexer->token;
        $this->expectKeyword('fragment');

        $name = $this->parseFragmentName();

        // Experimental support for defining variables within fragments changes
        // the grammar of FragmentDefinition:
        //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet
        $variableDefinitions = null;
        if (isset($this->lexer->options['experimentalFragmentVariables'])) {
            $variableDefinitions = $this->parseVariableDefinitions();
        }
        $this->expectKeyword('on');
        $typeCondition = $this->parseNamedType();

        return new FragmentDefinitionNode([
            'name'                => $name,
            'variableDefinitions' => $variableDefinitions,
            'typeCondition'       => $typeCondition,
            'directives'          => $this->parseDirectives(false),
            'selectionSet'        => $this->parseSelectionSet(),
            'loc'                 => $this->loc($start),
        ]);
    }
private function parseFragmentDefinition ( ) { $ start = $ this -> lexer -> token ; $ this -> expectKeyword ( 'fragment' ) ; $ name = $ this -> parseFragmentName ( ) ; // Experimental support for defining variables within fragments changes // the grammar of FragmentDefinition: //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet $ variableDefinitions = null ; if ( isset ( $ this -> lexer -> options [ 'experimentalFragmentVariables' ] ) ) { $ variableDefinitions = $ this -> parseVariableDefinitions ( ) ; } $ this -> expectKeyword ( 'on' ) ; $ typeCondition = $ this -> parseNamedType ( ) ; return new FragmentDefinitionNode ( [ 'name' => $ name , 'variableDefinitions' => $ variableDefinitions , 'typeCondition' => $ typeCondition , 'directives' => $ this -> parseDirectives ( false ) , 'selectionSet' => $ this -> parseSelectionSet ( ) , 'loc' => $ this -> loc ( $ start ) , ] ) ; }
@return FragmentDefinitionNode

@throws SyntaxError
@return FragmentDefinitionNode