Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
NoWhitespace
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
1 / 1
 generateMatches
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2declare( strict_types = 1 );
3
4/**
5 * @file
6 * @license https://opensource.org/licenses/Apache-2.0 Apache-2.0
7 */
8
9namespace Wikimedia\CSS\Grammar;
10
11use Wikimedia\CSS\Objects\ComponentValueList;
12use Wikimedia\CSS\Objects\Token;
13
14/**
15 * Matcher that asserts there was no whitespace before the current position.
16 */
17class NoWhitespace extends Matcher {
18
19    /** @inheritDoc */
20    protected function generateMatches( ComponentValueList $values, $start, array $options ) {
21        $cv = $values[$start - 1] ?? null;
22        if ( !$cv instanceof Token || $cv->type() !== Token::T_WHITESPACE ) {
23            yield $this->makeMatch( $values, $start, $start );
24        }
25    }
26}