|
14 | 14 | use Sabberworm\CSS\CSSList\AtRuleBlockList; |
15 | 15 | use Sabberworm\CSS\RuleSet\DeclarationBlock; |
16 | 16 | use Sabberworm\CSS\Value\CSSFunction; |
| 17 | +use Sabberworm\CSS\Value\CalcFunction; |
17 | 18 | use Sabberworm\CSS\Value\RuleValueList; |
| 19 | +use Sabberworm\CSS\Value\CalcRuleValueList; |
18 | 20 | use Sabberworm\CSS\Value\Size; |
19 | 21 | use Sabberworm\CSS\Value\Color; |
20 | 22 | use Sabberworm\CSS\Value\URL; |
@@ -372,7 +374,7 @@ private function parseRule() { |
372 | 374 | return $oRule; |
373 | 375 | } |
374 | 376 |
|
375 | | - private function parseValue($aListDelimiters) { |
| 377 | + private function parseValue($aListDelimiters, $ruleValueListClass = '\Sabberworm\CSS\Value\RuleValueList') { |
376 | 378 | $aStack = array(); |
377 | 379 | $this->consumeWhiteSpace(); |
378 | 380 | //Build a list of delimiters and parsed values |
@@ -408,7 +410,7 @@ private function parseValue($aListDelimiters) { |
408 | 410 | break; |
409 | 411 | } |
410 | 412 | } |
411 | | - $oList = new RuleValueList($sDelimiter, $this->iLineNo); |
| 413 | + $oList = new $ruleValueListClass($sDelimiter, $this->iLineNo); |
412 | 414 | for ($i = $iStartPosition - 1; $i - $iStartPosition + 1 < $iLength * 2; $i+=2) { |
413 | 415 | $oList->addListComponent($aStack[$i]); |
414 | 416 | } |
@@ -527,8 +529,8 @@ private function parseCalcValue() { |
527 | 529 | $this->consume($func); |
528 | 530 | $this->consumeWhiteSpace(); |
529 | 531 | $this->consume('('); |
530 | | - $aArguments = $this->parseValue(array('+', '-', '*', '/', ' ')); |
531 | | - return new CSSFunction($func, $aArguments, ',', $this->iLineNo); |
| 532 | + $aArguments = $this->parseValue(array('+', '-', '*', '/', ' '), '\Sabberworm\CSS\Value\CalcRuleValueList'); |
| 533 | + return new CalcFunction($func, $aArguments, ',', $this->iLineNo); |
532 | 534 | } |
533 | 535 |
|
534 | 536 | /** |
|
0 commit comments