original_string: private function processNode(array $node): array
      {
          $config = [];
          foreach ($node as $name => $value) {
              if (\preg_match('/^num__([0-9]+)$/', $name, $matches)) {
                  $name = $matches[1];
              }
              if (\count($nameEx = \explode('.', $name)) > 1) {
                  $name = \array_shift($nameEx);
                  $mergeBase = isset($config[$name]) ? $config[$name] : [];
                  $mergeWith = $this->processNode([\implode('.', $nameEx) => $value]);
                  $config[$name] = \array_merge_recursive($mergeBase, $mergeWith);
              } elseif (\is_array($value)) {
                  $config[$name] = $this->processNode($value);
              } else {
                  $config[$name] = $this->castValue((string)$value);
              }
          }
          return $config;
      }
code: private function processNode(array $node): array
      {
          $config = [];
          foreach ($node as $name => $value) {
              if (\preg_match('/^num__([0-9]+)$/', $name, $matches)) {
                  $name = $matches[1];
              }
              if (\count($nameEx = \explode('.', $name)) > 1) {
                  $name = \array_shift($nameEx);
                  $mergeBase = isset($config[$name]) ? $config[$name] : [];
                  $mergeWith = $this->processNode([\implode('.', $nameEx) => $value]);
                  $config[$name] = \array_merge_recursive($mergeBase, $mergeWith);
              } elseif (\is_array($value)) {
                  $config[$name] = $this->processNode($value);
              } else {
                  $config[$name] = $this->castValue((string)$value);
              }
          }
          return $config;
      }
code_tokens: private function processNode ( array $ node ) : array { $ config = [ ] ; foreach ( $ node as $ name => $ value ) { if ( \ preg_match ( '/^num__([0-9]+)$/' , $ name , $ matches ) ) { $ name = $ matches [ 1 ] ; } if ( \ count ( $ nameEx = \ explode ( '.' , $ name ) ) > 1 ) { $ name = \ array_shift ( $ nameEx ) ; $ mergeBase = isset ( $ config [ $ name ] ) ? $ config [ $ name ] : [ ] ; $ mergeWith = $ this -> processNode ( [ \ implode ( '.' , $ nameEx ) => $ value ] ) ; $ config [ $ name ] = \ array_merge_recursive ( $ mergeBase , $ mergeWith ) ; } elseif ( \ is_array ( $ value ) ) { $ config [ $ name ] = $ this -> processNode ( $ value ) ; } else { $ config [ $ name ] = $ this -> castValue ( ( string ) $ value ) ; } } return $ config ; }
docstring: Processes INI config node
  
  @param array $node
  @return array
docstring_tokens: Processes INI config node