diff options
author | derchris | 2019-02-02 15:35:30 +0100 |
---|---|---|
committer | derchris | 2019-02-02 15:35:30 +0100 |
commit | 7ad9f272a482802da2d43fe83841adbe9bcd8cb4 (patch) | |
tree | 75b43a2a8c3ab3dbdcb0694d135f4729c90b8af7 /lib/less.php/Visitor.php | |
parent | eb6601b2520d48a0be91634fada0389faadde31d (diff) |
update less.php to PHP 7.x compatible fork
Diffstat (limited to '')
-rw-r--r-- | lib/less.php/Visitor.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/less.php/Visitor.php b/lib/less.php/Visitor.php new file mode 100644 index 0000000..d85f1d9 --- /dev/null +++ b/lib/less.php/Visitor.php @@ -0,0 +1,49 @@ +<?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; + } +} + |