original_string: private static function extractProperties(NodeInterface $node)
      {
          $class = new \ReflectionClass($node);
  
          foreach ($class->getProperties() as $property) {
              if (!$property->isPublic()) {
                  $property->setAccessible(true);
              }
  
              $name = $property->getName();
              $value = $property->getValue($node);
  
              yield $name => $value;
  
              if (!$property->isPublic()) {
                  $property->setAccessible(false);
              }
          }
      }
code: private static function extractProperties(NodeInterface $node)
      {
          $class = new \ReflectionClass($node);
  
          foreach ($class->getProperties() as $property) {
              if (!$property->isPublic()) {
                  $property->setAccessible(true);
              }
  
              $name = $property->getName();
              $value = $property->getValue($node);
  
              yield $name => $value;
  
              if (!$property->isPublic()) {
                  $property->setAccessible(false);
              }
          }
      }
code_tokens: private static function extractProperties ( NodeInterface $ node ) { $ class = new \ ReflectionClass ( $ node ) ; foreach ( $ class -> getProperties ( ) as $ property ) { if ( ! $ property -> isPublic ( ) ) { $ property -> setAccessible ( true ) ; } $ name = $ property -> getName ( ) ; $ value = $ property -> getValue ( $ node ) ; yield $ name => $ value ; if ( ! $ property -> isPublic ( ) ) { $ property -> setAccessible ( false ) ; } } }
docstring: Provides a generator that share the properties of the given node.
  
  @param NodeInterface $node The node to use for the extraction.
  
  @return \Generator A key value tuple.
docstring_tokens: Provides a generator that share the properties of the given node .