DetachedRuleset.php 831 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. }