diff options
Diffstat (limited to 'lib/less.php/Tree/Condition.php')
-rw-r--r-- | lib/less.php/Tree/Condition.php | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/lib/less.php/Tree/Condition.php b/lib/less.php/Tree/Condition.php deleted file mode 100644 index 929d33b..0000000 --- a/lib/less.php/Tree/Condition.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php - -/** - * Condition - * - * @package Less - * @subpackage tree - */ -class Less_Tree_Condition extends Less_Tree{ - - public $op; - public $lvalue; - public $rvalue; - public $index; - public $negate; - public $type = 'Condition'; - - public function __construct($op, $l, $r, $i = 0, $negate = false) { - $this->op = trim($op); - $this->lvalue = $l; - $this->rvalue = $r; - $this->index = $i; - $this->negate = $negate; - } - - public function accept($visitor){ - $this->lvalue = $visitor->visitObj( $this->lvalue ); - $this->rvalue = $visitor->visitObj( $this->rvalue ); - } - - public function compile($env) { - $a = $this->lvalue->compile($env); - $b = $this->rvalue->compile($env); - - switch( $this->op ){ - case 'and': - $result = $a && $b; - break; - - case 'or': - $result = $a || $b; - break; - - default: - if( Less_Parser::is_method($a, 'compare') ){ - $result = $a->compare($b); - }elseif( Less_Parser::is_method($b, 'compare') ){ - $result = $b->compare($a); - }else{ - throw new Less_Exception_Compiler('Unable to perform comparison', null, $this->index); - } - - switch ($result) { - case -1: - $result = $this->op === '<' || $this->op === '=<' || $this->op === '<='; - break; - - case 0: - $result = $this->op === '=' || $this->op === '>=' || $this->op === '=<' || $this->op === '<='; - break; - - case 1: - $result = $this->op === '>' || $this->op === '>='; - break; - } - break; - } - - return $this->negate ? !$result : $result; - } - -} |