Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/oyejorge/less.php/lib/Less/Tree/Operation.php
Строк: 58
<?php

/**
 * Operation
 *
 * @package Less
 * @subpackage tree
 */
class Less_Tree_Operation extends Less_Tree{

    public 
$op;
    public 
$operands;
    public 
$isSpaced;
    public 
$type = 'Operation';

    
/**
     * @param string $op
     */
    
public function __construct($op, $operands, $isSpaced = false){
        
$this->op = trim($op);
        
$this->operands = $operands;
        
$this->isSpaced = $isSpaced;
    }

    function 
accept($visitor) {
        
$this->operands = $visitor->visitArray($this->operands);
    }

    public function 
compile($env){
        
$a = $this->operands[0]->compile($env);
        
$b = $this->operands[1]->compile($env);


        if( 
Less_Environment::isMathOn() ){

            if( 
$a instanceof Less_Tree_Dimension && $b instanceof Less_Tree_Color ){
                
$a = $a->toColor();

            }elseif( 
$b instanceof Less_Tree_Dimension && $a instanceof Less_Tree_Color ){
                
$b = $b->toColor();

            }

            if( !
method_exists($a,'operate') ){
                throw new 
Less_Exception_Compiler("Operation on an invalid type");
            }

            return 
$a->operate( $this->op, $b);
        }

        return new 
Less_Tree_Operation($this->op, array($a, $b), $this->isSpaced );
    }


    
/**
     * @see Less_Tree::genCSS
     */
    
function genCSS( $output ){
        
$this->operands[0]->genCSS( $output );
        if( 
$this->isSpaced ){
            
$output->add( " " );
        }
        
$output->add( $this->op );
        if( 
$this->isSpaced ){
            
$output->add( ' ' );
        }
        
$this->operands[1]->genCSS( $output );
    }

}
Онлайн: 3
Реклама