mirror of
https://github.com/moodle/moodle.git
synced 2025-08-09 10:56:56 +02:00
MDL-44357 theme: Allow core to compile LESS in PHP
This commit is contained in:
parent
9b8555fbea
commit
d433cf37cd
68 changed files with 10947 additions and 47 deletions
49
lib/lessphp/Visitor.php
Normal file
49
lib/lessphp/Visitor.php
Normal file
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Visitor
|
||||
*
|
||||
* @package Less
|
||||
* @subpackage visitor
|
||||
*/
|
||||
class Less_Visitor{
|
||||
|
||||
var $methods = array();
|
||||
var $_visitFnCache = array();
|
||||
|
||||
function __construct(){
|
||||
$this->_visitFnCache = get_class_methods(get_class($this));
|
||||
$this->_visitFnCache = array_flip($this->_visitFnCache);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
function visitArray( $nodes ){
|
||||
|
||||
array_map( array($this,'visitObj'), $nodes);
|
||||
return $nodes;
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue