diff options
Diffstat (limited to '')
-rw-r--r-- | library/vendor/lessphp/lib/Less/Visitor.php | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/library/vendor/lessphp/lib/Less/Visitor.php b/library/vendor/lessphp/lib/Less/Visitor.php new file mode 100644 index 0000000..19e041f --- /dev/null +++ b/library/vendor/lessphp/lib/Less/Visitor.php @@ -0,0 +1,46 @@ +<?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 .= "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; + } +} |