Sha256: a8ddf3aeb433b302424172760204efb9831a801140cfd626dd38a4c1edb7a350
Contents?: true
Size: 1.67 KB
Versions: 3
Compression:
Stored size: 1.67 KB
Contents
<?php /* SVN FILE: $Id: SassWhileNode.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */ /** * SassWhileNode class file. * @author Chris Yates <chris.l.yates@gmail.com> * @copyright Copyright (c) 2010 PBM Web Development * @license http://phamlp.googlecode.com/files/license.txt * @package PHamlP * @subpackage Sass.tree */ /** * SassWhileNode class. * Represents a Sass @while loop and a Sass @do loop. * @package PHamlP * @subpackage Sass.tree */ class SassWhileNode extends SassNode { const MATCH = '/^@(do|while)\s+(.+)$/i'; const LOOP = 1; const EXPRESSION = 2; const IS_DO = 'do'; /** * @var boolean whether this is a do/while. * A do/while loop is guarenteed to run at least once. */ private $isDo; /** * @var string expression to evaluate */ private $expression; /** * SassWhileNode constructor. * @param object source token * @return SassWhileNode */ public function __construct($token) { parent::__construct($token); preg_match(self::MATCH, $token->source, $matches); $this->expression = $matches[self::EXPRESSION]; $this->isDo = ($matches[self::LOOP] === SassWhileNode::IS_DO); } /** * Parse this node. * @param SassContext the context in which this node is parsed * @return array the parsed child nodes */ public function parse($context) { $children = array(); if ($this->isDo) { do { $children = array_merge($children, $this->parseChildren($context)); } while ($this->evaluate($this->expression, $context)->toBoolean()); } else { while ($this->evaluate($this->expression, $context)->toBoolean()) { $children = array_merge($children, $this->parseChildren($context)); } } return $children; } }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
frontsau-0.0.3 | lib/Phamlp/sass/tree/SassWhileNode.php |
frontsau-0.0.2 | lib/Phamlp/sass/tree/SassWhileNode.php |
frontsau-0.0.1 | lib/Phamlp/sass/tree/SassWhileNode.php |