[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/lessphp/ -> VisitorReplacing.php (source)

   1  <?php
   2  
   3  /**
   4   * Replacing Visitor
   5   *
   6   * @package Less
   7   * @subpackage visitor
   8   */
   9  class Less_VisitorReplacing extends Less_Visitor{
  10  
  11  	public function visitObj( $node ){
  12  
  13          $funcName = 'visit'.$node->type;
  14          if( isset($this->_visitFnCache[$funcName]) ){
  15  
  16              $visitDeeper = true;
  17              $node = $this->$funcName( $node, $visitDeeper );
  18  
  19              if( $node ){
  20                  if( $visitDeeper && is_object($node) ){
  21                      $node->accept($this);
  22                  }
  23  
  24                  $funcName = $funcName . "Out";
  25                  if( isset($this->_visitFnCache[$funcName]) ){
  26                      $this->$funcName( $node );
  27                  }
  28              }
  29  
  30          }else{
  31              $node->accept($this);
  32          }
  33  
  34          return $node;
  35      }
  36  
  37  	public function visitArray( $nodes ){
  38  
  39          $newNodes = array();
  40          foreach($nodes as $node){
  41              $evald = $this->visitObj($node);
  42              if( $evald ){
  43                  if( is_array($evald) ){
  44                      self::flatten($evald,$newNodes);
  45                  }else{
  46                      $newNodes[] = $evald;
  47                  }
  48              }
  49          }
  50          return $newNodes;
  51      }
  52  
  53  	public function flatten( $arr, &$out ){
  54  
  55          foreach($arr as $item){
  56              if( !is_array($item) ){
  57                  $out[] = $item;
  58                  continue;
  59              }
  60  
  61              foreach($item as $nestedItem){
  62                  if( is_array($nestedItem) ){
  63                      self::flatten( $nestedItem, $out);
  64                  }else{
  65                      $out[] = $nestedItem;
  66                  }
  67              }
  68          }
  69  
  70          return $out;
  71      }
  72  
  73  }
  74  
  75  


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1