aboutsummaryrefslogtreecommitdiff
path: root/lib/less.php/Tree/DetachedRuleset.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/less.php/Tree/DetachedRuleset.php')
-rw-r--r--lib/less.php/Tree/DetachedRuleset.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/less.php/Tree/DetachedRuleset.php b/lib/less.php/Tree/DetachedRuleset.php
new file mode 100644
index 0000000..c887e40
--- /dev/null
+++ b/lib/less.php/Tree/DetachedRuleset.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * DetachedRuleset
+ *
+ * @package Less
+ * @subpackage tree
+ */
+class Less_Tree_DetachedRuleset extends Less_Tree{
+
+ public $ruleset;
+ public $frames;
+ public $type = 'DetachedRuleset';
+
+ public function __construct( $ruleset, $frames = null ){
+ $this->ruleset = $ruleset;
+ $this->frames = $frames;
+ }
+
+ public function accept($visitor) {
+ $this->ruleset = $visitor->visitObj($this->ruleset);
+ }
+
+ public function compile($env){
+ if( $this->frames ){
+ $frames = $this->frames;
+ }else{
+ $frames = $env->frames;
+ }
+ return new Less_Tree_DetachedRuleset($this->ruleset, $frames);
+ }
+
+ public function callEval($env) {
+ if( $this->frames ){
+ return $this->ruleset->compile( $env->copyEvalEnv( array_merge($this->frames,$env->frames) ) );
+ }
+ return $this->ruleset->compile( $env );
+ }
+}
+