name = $name; $this->index = $index; $this->currentFileInfo = $currentFileInfo; } public function compile( $env ) { if ( $this->name[1] === '@' ) { $v = new Less_Tree_Variable( substr( $this->name, 1 ), $this->index + 1, $this->currentFileInfo ); $name = '@' . $v->compile( $env )->value; } else { $name = $this->name; } if ( $this->evaluating ) { throw new Less_Exception_Compiler( "Recursive variable definition for " . $name, null, $this->index, $this->currentFileInfo ); } $this->evaluating = true; foreach ( $env->frames as $frame ) { if ( $v = $frame->variable( $name ) ) { $r = $v->value->compile( $env ); $this->evaluating = false; return $r; } } throw new Less_Exception_Compiler( "variable " . $name . " is undefined in file ".$this->currentFileInfo["filename"], null, $this->index, $this->currentFileInfo ); } }