Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
`, `+`, or `~`). * * @phpstan-type ValidCombinatorValue ' '|'>'|'+'|'~' */ class Combinator implements Component { use ShortClassNameProvider; /** * @var ValidCombinatorValue */ private $value; /** * @param ValidCombinatorValue $value */ public function __construct(string $value) { $this->setValue($value); } /** * @param list $comments * * @throws UnexpectedTokenException * * @internal */ public static function parse(ParserState $parserState, array &$comments = []): self { $consumedWhitespace = $parserState->consumeWhiteSpace($comments); $nextToken = $parserState->peek(); if (\in_array($nextToken, ['>', '+', '~'], true)) { $value = $nextToken; $parserState->consume(1); $parserState->consumeWhiteSpace($comments); } elseif ($consumedWhitespace !== '') { $value = ' '; } else { throw new UnexpectedTokenException( 'combinator', $nextToken, 'literal', $parserState->currentLine() ); } return new self($value); } /** * @return ValidCombinatorValue */ public function getValue(): string { return $this->value; } /** * @param non-empty-string $value * * @throws \UnexpectedValueException if `$value` is not either space, '>', '+' or '~' */ public function setValue(string $value): void { if (!\in_array($value, [' ', '>', '+', '~'], true)) { throw new \UnexpectedValueException('`' . $value . '` is not a valid selector combinator.'); } $this->value = $value; } /** * @return int<0, max> */ public function getSpecificity(): int { return 0; } public function render(OutputFormat $outputFormat): string { $spacing = $outputFormat->getSpaceAroundSelectorCombinator(); if ($this->value === ' ') { $rendering = $spacing !== '' ? $spacing : ' '; } else { $rendering = $spacing . $this->value . $spacing; } return $rendering; } /** * @return array|null> * * @internal */ public function getArrayRepresentation(): array { return [ 'class' => $this->getShortClassName(), 'value' => $this->value, ]; } }