private function parseEnumTypeDefinition()
    {
        $start       = $this->lexer->token;
        $description = $this->parseDescription();
        $this->expectKeyword('enum');
        $name       = $this->parseName();
        $directives = $this->parseDirectives(true);
        $values     = $this->parseEnumValuesDefinition();

        return new EnumTypeDefinitionNode([
            'name'        => $name,
            'directives'  => $directives,
            'values'      => $values,
            'loc'         => $this->loc($start),
            'description' => $description,
        ]);
    }
private function parseEnumTypeDefinition()
    {
        $start       = $this->lexer->token;
        $description = $this->parseDescription();
        $this->expectKeyword('enum');
        $name       = $this->parseName();
        $directives = $this->parseDirectives(true);
        $values     = $this->parseEnumValuesDefinition();

        return new EnumTypeDefinitionNode([
            'name'        => $name,
            'directives'  => $directives,
            'values'      => $values,
            'loc'         => $this->loc($start),
            'description' => $description,
        ]);
    }
private function parseEnumTypeDefinition ( ) { $ start = $ this -> lexer -> token ; $ description = $ this -> parseDescription ( ) ; $ this -> expectKeyword ( 'enum' ) ; $ name = $ this -> parseName ( ) ; $ directives = $ this -> parseDirectives ( true ) ; $ values = $ this -> parseEnumValuesDefinition ( ) ; return new EnumTypeDefinitionNode ( [ 'name' => $ name , 'directives' => $ directives , 'values' => $ values , 'loc' => $ this -> loc ( $ start ) , 'description' => $ description , ] ) ; }
@return EnumTypeDefinitionNode

@throws SyntaxError
@return EnumTypeDefinitionNode