1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /**
- * Expression
- *
- * @package Less
- * @subpackage tree
- */
- class Less_Tree_Expression extends Less_Tree {
- public $value = array();
- public $parens = false;
- public $parensInOp = false;
- public $type = 'Expression';
- public function __construct( $value, $parens = null ) {
- $this->value = $value;
- $this->parens = $parens;
- }
- public function accept( $visitor ) {
- $this->value = $visitor->visitArray( $this->value );
- }
- public function compile( $env ) {
- $doubleParen = false;
- if ( $this->parens && !$this->parensInOp ) {
- Less_Environment::$parensStack++;
- }
- $returnValue = null;
- if ( $this->value ) {
- $count = count( $this->value );
- if ( $count > 1 ) {
- $ret = array();
- foreach ( $this->value as $e ) {
- $ret[] = $e->compile( $env );
- }
- $returnValue = new Less_Tree_Expression( $ret );
- } else {
- if ( ( $this->value[0] instanceof Less_Tree_Expression ) && $this->value[0]->parens && !$this->value[0]->parensInOp ) {
- $doubleParen = true;
- }
- $returnValue = $this->value[0]->compile( $env );
- }
- } else {
- $returnValue = $this;
- }
- if ( $this->parens ) {
- if ( !$this->parensInOp ) {
- Less_Environment::$parensStack--;
- } elseif ( !Less_Environment::isMathOn() && !$doubleParen ) {
- $returnValue = new Less_Tree_Paren( $returnValue );
- }
- }
- return $returnValue;
- }
- /**
- * @see Less_Tree::genCSS
- */
- public function genCSS( $output ) {
- $val_len = count( $this->value );
- for ( $i = 0; $i < $val_len; $i++ ) {
- $this->value[$i]->genCSS( $output );
- if ( $i + 1 < $val_len ) {
- $output->add( ' ' );
- }
- }
- }
- public function throwAwayComments() {
- if ( is_array( $this->value ) ) {
- $new_value = array();
- foreach ( $this->value as $v ) {
- if ( $v instanceof Less_Tree_Comment ) {
- continue;
- }
- $new_value[] = $v;
- }
- $this->value = $new_value;
- }
- }
- }
|