Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5990546
DelimMatcher.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
DelimMatcher.php
View Options
<?php
/**
* @file
* @license https://opensource.org/licenses/Apache-2.0 Apache-2.0
*/
namespace
Wikimedia\CSS\Grammar
;
use
Wikimedia\CSS\Objects\ComponentValueList
;
use
Wikimedia\CSS\Objects\Token
;
/**
* Matcher that matches one of a set of values.
*
* This is intended for matching specific <delim-token>s, but will work for
* other types (case-sensitively) too. For the more common case-insensitive
* identifier matching, use KeywordMatcher.
*
* @see https://www.w3.org/TR/2019/CR-css-values-3-20190606/#component-types
*/
class
DelimMatcher
extends
Matcher
{
/** @var string One of the Token::T_* constants */
protected
$type
;
/** @var string[] Values to match */
protected
$values
;
/**
* @param string|string[] $values Token values to match
* @param array $options Options
* - type: (string) Token type to match. Default is Token::T_DELIM.
*/
public
function
__construct
(
$values
,
array
$options
=
[]
)
{
$options
+=
[
'type'
=>
Token
::
T_DELIM
,
];
$this
->
values
=
array_map
(
'strval'
,
(
array
)
$values
);
$this
->
type
=
$options
[
'type'
];
}
/** @inheritDoc */
protected
function
generateMatches
(
ComponentValueList
$values
,
$start
,
array
$options
)
{
$cv
=
$values
[
$start
]
??
null
;
if
(
$cv
instanceof
Token
&&
$cv
->
type
()
===
$this
->
type
&&
in_array
(
$cv
->
value
(),
$this
->
values
,
true
)
)
{
yield
$this
->
makeMatch
(
$values
,
$start
,
$this
->
next
(
$values
,
$start
,
$options
)
);
}
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Oct 4, 01:33 (3 w, 5 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
66/bc/2f4adf769b80997ffe8f9258d1b2
Default Alt Text
DelimMatcher.php (1 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment