Seditio Source
Root |
./othercms/PHPFusion 9.10.20/includes/classes/PHPFusion/Atom/lib/Less/Visitor.php
<?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;
    }
}