/
var
/
www
/
html
/
eccsm
/
lib
/
lessphp
/
Upload File
HOME
<?php /** * Visitor * * @package Less * @subpackage visitor */ class Less_Visitor{ protected $methods = array(); protected $_visitFnCache = array(); public function __construct(){ $this->_visitFnCache = get_class_methods(get_class($this)); $this->_visitFnCache = array_flip($this->_visitFnCache); } public function visitObj( $node ){ $funcName = 'visit'.$node->type; if( isset($this->_visitFnCache[$funcName]) ){ $visitDeeper = true; $this->$funcName( $node, $visitDeeper ); if( $visitDeeper ){ $node->accept($this); } $funcName = $funcName . "Out"; if( isset($this->_visitFnCache[$funcName]) ){ $this->$funcName( $node ); } }else{ $node->accept($this); } return $node; } public function visitArray( $nodes ){ array_map( array($this,'visitObj'), $nodes); return $nodes; } }