]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - vendor/oyejorge/less.php/lib/Less/Tree/Directive.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / oyejorge / less.php / lib / Less / Tree / Directive.php
1 <?php
2
3 /**
4  * Directive
5  *
6  * @package Less
7  * @subpackage tree
8  */
9 class Less_Tree_Directive extends Less_Tree{
10
11         public $name;
12         public $value;
13         public $rules;
14         public $index;
15         public $isReferenced;
16         public $currentFileInfo;
17         public $debugInfo;
18         public $type = 'Directive';
19
20         public function __construct($name, $value = null, $rules, $index = null, $currentFileInfo = null, $debugInfo = null ){
21                 $this->name = $name;
22                 $this->value = $value;
23                 if( $rules ){
24                         $this->rules = $rules;
25                         $this->rules->allowImports = true;
26                 }
27
28                 $this->index = $index;
29                 $this->currentFileInfo = $currentFileInfo;
30                 $this->debugInfo = $debugInfo;
31         }
32
33
34     public function accept( $visitor ){
35                 if( $this->rules ){
36                         $this->rules = $visitor->visitObj( $this->rules );
37                 }
38                 if( $this->value ){
39                         $this->value = $visitor->visitObj( $this->value );
40                 }
41         }
42
43
44     /**
45      * @see Less_Tree::genCSS
46      */
47     public function genCSS( $output ){
48                 $value = $this->value;
49                 $rules = $this->rules;
50                 $output->add( $this->name, $this->currentFileInfo, $this->index );
51                 if( $this->value ){
52                         $output->add(' ');
53                         $this->value->genCSS($output);
54                 }
55                 if( $this->rules ){
56                         Less_Tree::outputRuleset( $output, array($this->rules));
57                 } else {
58                         $output->add(';');
59                 }
60         }
61
62         public function compile($env){
63
64                 $value = $this->value;
65                 $rules = $this->rules;
66                 if( $value ){
67                         $value = $value->compile($env);
68                 }
69
70                 if( $rules ){
71                         $rules = $rules->compile($env);
72                         $rules->root = true;
73                 }
74
75                 return new Less_Tree_Directive( $this->name, $value, $rules, $this->index, $this->currentFileInfo, $this->debugInfo );
76         }
77
78
79         public function variable($name){
80                 if( $this->rules ){
81                         return $this->rules->variable($name);
82                 }
83         }
84
85         public function find($selector){
86                 if( $this->rules ){
87                         return $this->rules->find($selector, $this);
88                 }
89         }
90
91         //rulesets: function () { if (this.rules) return tree.Ruleset.prototype.rulesets.apply(this.rules); },
92
93         public function markReferenced(){
94                 $this->isReferenced = true;
95                 if( $this->rules ){
96                         Less_Tree::ReferencedArray($this->rules->rules);
97                 }
98         }
99
100 }