DetachedRuleset.php 822 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. /**
  3. * DetachedRuleset
  4. *
  5. * @package Less
  6. * @subpackage tree
  7. */
  8. class Less_Tree_DetachedRuleset extends Less_Tree{
  9. public $ruleset;
  10. public $frames;
  11. public $type = 'DetachedRuleset';
  12. public function __construct( $ruleset, $frames = null ){
  13. $this->ruleset = $ruleset;
  14. $this->frames = $frames;
  15. }
  16. public function accept($visitor) {
  17. $this->ruleset = $visitor->visitObj($this->ruleset);
  18. }
  19. public function compile($env){
  20. if( $this->frames ){
  21. $frames = $this->frames;
  22. }else{
  23. $frames = $env->frames;
  24. }
  25. return new Less_Tree_DetachedRuleset($this->ruleset, $frames);
  26. }
  27. public function callEval($env) {
  28. if( $this->frames ){
  29. return $this->ruleset->compile( $env->copyEvalEnv( array_merge($this->frames,$env->frames) ) );
  30. }
  31. return $this->ruleset->compile( $env );
  32. }
  33. }