code: private function parseUnionTypeExtension()
      {
          $start = $this->lexer->token;
          $this->expectKeyword('extend');
          $this->expectKeyword('union');
          $name       = $this->parseName();
          $directives = $this->parseDirectives(true);
          $types      = $this->parseUnionMemberTypes();
          if (count($directives) === 0 &&
              ! $types
          ) {
              throw $this->unexpected();
          }
  
          return new UnionTypeExtensionNode([
              'name'       => $name,
              'directives' => $directives,
              'types'      => $types,
              'loc'        => $this->loc($start),
          ]);
      }
docs: UnionTypeExtension :
  - extend union Name Directives[Const]? UnionMemberTypes
  - extend union Name Directives[Const]
  
  @return UnionTypeExtensionNode
  
  @throws SyntaxError