/** * Evaluate selectors * * @param array $selectors * * @return array */ protected function evalSelectors($selectors) { $this->shouldEvaluate = false; $selectors = array_map(array($this, 'evalSelector'), $selectors); // after evaluating interpolates, we might need a second pass if ($this->shouldEvaluate) { $buffer = $this->collapseSelectors($selectors); $parser = new Parser(__METHOD__, false); if ($parser->parseSelector($buffer, $newSelectors)) { $selectors = array_map(array($this, 'evalSelector'), $newSelectors); } } return $selectors; }