original_string: private function spliceTree($envs, Block $block, $without)
      {
          $newBlock = null;
  
          foreach ($envs as $e) {
              if (! isset($e->block)) {
                  continue;
              }
  
              if ($e->block === $block) {
                  continue;
              }
  
              if (isset($e->block->type) && $e->block->type === Type::T_AT_ROOT) {
                  continue;
              }
  
              if ($e->block && $this->isWithout($without, $e->block)) {
                  continue;
              }
  
              $b = new Block;
              $b->sourceName   = $e->block->sourceName;
              $b->sourceIndex  = $e->block->sourceIndex;
              $b->sourceLine   = $e->block->sourceLine;
              $b->sourceColumn = $e->block->sourceColumn;
              $b->selectors    = [];
              $b->comments     = $e->block->comments;
              $b->parent       = null;
  
              if ($newBlock) {
                  $type = isset($newBlock->type) ? $newBlock->type : Type::T_BLOCK;
  
                  $b->children = [[$type, $newBlock]];
  
                  $newBlock->parent = $b;
              } elseif (count($block->children)) {
                  foreach ($block->children as $child) {
                      if ($child[0] === Type::T_BLOCK) {
                          $child[1]->parent = $b;
                      }
                  }
  
                  $b->children = $block->children;
              }
  
              if (isset($e->block->type)) {
                  $b->type = $e->block->type;
              }
  
              if (isset($e->block->name)) {
                  $b->name = $e->block->name;
              }
  
              if (isset($e->block->queryList)) {
                  $b->queryList = $e->block->queryList;
              }
  
              if (isset($e->block->value)) {
                  $b->value = $e->block->value;
              }
  
              $newBlock = $b;
          }
  
          $type = isset($newBlock->type) ? $newBlock->type : Type::T_BLOCK;
  
          return [$type, $newBlock];
      }
code: private function spliceTree($envs, Block $block, $without)
      {
          $newBlock = null;
  
          foreach ($envs as $e) {
              if (! isset($e->block)) {
                  continue;
              }
  
              if ($e->block === $block) {
                  continue;
              }
  
              if (isset($e->block->type) && $e->block->type === Type::T_AT_ROOT) {
                  continue;
              }
  
              if ($e->block && $this->isWithout($without, $e->block)) {
                  continue;
              }
  
              $b = new Block;
              $b->sourceName   = $e->block->sourceName;
              $b->sourceIndex  = $e->block->sourceIndex;
              $b->sourceLine   = $e->block->sourceLine;
              $b->sourceColumn = $e->block->sourceColumn;
              $b->selectors    = [];
              $b->comments     = $e->block->comments;
              $b->parent       = null;
  
              if ($newBlock) {
                  $type = isset($newBlock->type) ? $newBlock->type : Type::T_BLOCK;
  
                  $b->children = [[$type, $newBlock]];
  
                  $newBlock->parent = $b;
              } elseif (count($block->children)) {
                  foreach ($block->children as $child) {
                      if ($child[0] === Type::T_BLOCK) {
                          $child[1]->parent = $b;
                      }
                  }
  
                  $b->children = $block->children;
              }
  
              if (isset($e->block->type)) {
                  $b->type = $e->block->type;
              }
  
              if (isset($e->block->name)) {
                  $b->name = $e->block->name;
              }
  
              if (isset($e->block->queryList)) {
                  $b->queryList = $e->block->queryList;
              }
  
              if (isset($e->block->value)) {
                  $b->value = $e->block->value;
              }
  
              $newBlock = $b;
          }
  
          $type = isset($newBlock->type) ? $newBlock->type : Type::T_BLOCK;
  
          return [$type, $newBlock];
      }
code_tokens: private function spliceTree ( $ envs , Block $ block , $ without ) { $ newBlock = null ; foreach ( $ envs as $ e ) { if ( ! isset ( $ e -> block ) ) { continue ; } if ( $ e -> block === $ block ) { continue ; } if ( isset ( $ e -> block -> type ) && $ e -> block -> type === Type :: T_AT_ROOT ) { continue ; } if ( $ e -> block && $ this -> isWithout ( $ without , $ e -> block ) ) { continue ; } $ b = new Block ; $ b -> sourceName = $ e -> block -> sourceName ; $ b -> sourceIndex = $ e -> block -> sourceIndex ; $ b -> sourceLine = $ e -> block -> sourceLine ; $ b -> sourceColumn = $ e -> block -> sourceColumn ; $ b -> selectors = [ ] ; $ b -> comments = $ e -> block -> comments ; $ b -> parent = null ; if ( $ newBlock ) { $ type = isset ( $ newBlock -> type ) ? $ newBlock -> type : Type :: T_BLOCK ; $ b -> children = [ [ $ type , $ newBlock ] ] ; $ newBlock -> parent = $ b ; } elseif ( count ( $ block -> children ) ) { foreach ( $ block -> children as $ child ) { if ( $ child [ 0 ] === Type :: T_BLOCK ) { $ child [ 1 ] -> parent = $ b ; } } $ b -> children = $ block -> children ; } if ( isset ( $ e -> block -> type ) ) { $ b -> type = $ e -> block -> type ; } if ( isset ( $ e -> block -> name ) ) { $ b -> name = $ e -> block -> name ; } if ( isset ( $ e -> block -> queryList ) ) { $ b -> queryList = $ e -> block -> queryList ; } if ( isset ( $ e -> block -> value ) ) { $ b -> value = $ e -> block -> value ; } $ newBlock = $ b ; } $ type = isset ( $ newBlock -> type ) ? $ newBlock -> type : Type :: T_BLOCK ; return [ $ type , $ newBlock ] ; }
docstring: Splice parse tree
  
  @param array                $envs
  @param \Leafo\ScssPhp\Block $block
  @param integer              $without
  
  @return array
docstring_tokens: Splice parse tree