aboutsummaryrefslogtreecommitdiff
path: root/lib/less.php/Visitor/extendFinder.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/less.php/Visitor/extendFinder.php114
1 files changed, 0 insertions, 114 deletions
diff --git a/lib/less.php/Visitor/extendFinder.php b/lib/less.php/Visitor/extendFinder.php
deleted file mode 100644
index 22b3aac..0000000
--- a/lib/less.php/Visitor/extendFinder.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/**
- * Extend Finder Visitor
- *
- * @package Less
- * @subpackage visitor
- */
-class Less_Visitor_extendFinder extends Less_Visitor{
-
- public $contexts = array();
- public $allExtendsStack;
- public $foundExtends;
-
- public function __construct(){
- $this->contexts = array();
- $this->allExtendsStack = array(array());
- parent::__construct();
- }
-
- /**
- * @param Less_Tree_Ruleset $root
- */
- public function run($root){
- $root = $this->visitObj($root);
- $root->allExtends =& $this->allExtendsStack[0];
- return $root;
- }
-
- public function visitRule($ruleNode, &$visitDeeper ){
- $visitDeeper = false;
- }
-
- public function visitMixinDefinition( $mixinDefinitionNode, &$visitDeeper ){
- $visitDeeper = false;
- }
-
- public function visitRuleset($rulesetNode){
-
- if( $rulesetNode->root ){
- return;
- }
-
- $allSelectorsExtendList = array();
-
- // get &:extend(.a); rules which apply to all selectors in this ruleset
- if( $rulesetNode->rules ){
- foreach($rulesetNode->rules as $rule){
- if( $rule instanceof Less_Tree_Extend ){
- $allSelectorsExtendList[] = $rule;
- $rulesetNode->extendOnEveryPath = true;
- }
- }
- }
-
-
- // now find every selector and apply the extends that apply to all extends
- // and the ones which apply to an individual extend
- foreach($rulesetNode->paths as $selectorPath){
- $selector = end($selectorPath); //$selectorPath[ count($selectorPath)-1];
-
- $j = 0;
- foreach($selector->extendList as $extend){
- $this->allExtendsStackPush($rulesetNode, $selectorPath, $extend, $j);
- }
- foreach($allSelectorsExtendList as $extend){
- $this->allExtendsStackPush($rulesetNode, $selectorPath, $extend, $j);
- }
- }
-
- $this->contexts[] = $rulesetNode->selectors;
- }
-
- public function allExtendsStackPush($rulesetNode, $selectorPath, $extend, &$j){
- $this->foundExtends = true;
- $extend = clone $extend;
- $extend->findSelfSelectors( $selectorPath );
- $extend->ruleset = $rulesetNode;
- if( $j === 0 ){
- $extend->firstExtendOnThisSelectorPath = true;
- }
-
- $end_key = count($this->allExtendsStack)-1;
- $this->allExtendsStack[$end_key][] = $extend;
- $j++;
- }
-
-
- public function visitRulesetOut( $rulesetNode ){
- if( !is_object($rulesetNode) || !$rulesetNode->root ){
- array_pop($this->contexts);
- }
- }
-
- public function visitMedia( $mediaNode ){
- $mediaNode->allExtends = array();
- $this->allExtendsStack[] =& $mediaNode->allExtends;
- }
-
- public function visitMediaOut(){
- array_pop($this->allExtendsStack);
- }
-
- public function visitDirective( $directiveNode ){
- $directiveNode->allExtends = array();
- $this->allExtendsStack[] =& $directiveNode->allExtends;
- }
-
- public function visitDirectiveOut(){
- array_pop($this->allExtendsStack);
- }
-}
-
-