MDL-65759 library: Update php-css-parser to 8.3.0
[moodle.git] / lib / php-css-parser / Value / LineName.php
1 <?php
3 namespace Sabberworm\CSS\Value;
5 use Sabberworm\CSS\Parsing\ParserState;
6 use Sabberworm\CSS\Parsing\UnexpectedTokenException;
8 class LineName extends ValueList {
9         public function __construct($aComponents = array(), $iLineNo = 0) {
10                 parent::__construct($aComponents, ' ', $iLineNo);
11         }
13         public static function parse(ParserState $oParserState) {
14                 $oParserState->consume('[');
15                 $oParserState->consumeWhiteSpace();
16                 $aNames = array();
17                 do {
18                         if($oParserState->getSettings()->bLenientParsing) {
19                                 try {
20                                         $aNames[] = $oParserState->parseIdentifier();
21                                 } catch(UnexpectedTokenException $e) {}
22                         } else {
23                                 $aNames[] = $oParserState->parseIdentifier();
24                         }
25                         $oParserState->consumeWhiteSpace();
26                 } while (!$oParserState->comes(']'));
27                 $oParserState->consume(']');
28                 return new LineName($aNames, $oParserState->currentLine());
29         }
33         public function __toString() {
34                 return $this->render(new \Sabberworm\CSS\OutputFormat());
35         }
37         public function render(\Sabberworm\CSS\OutputFormat $oOutputFormat) {
38                 return '[' . parent::render(\Sabberworm\CSS\OutputFormat::createCompact()) . ']';
39         }
41 }