@@ -266,9 +266,10 @@ protected function rawInteger() {
266266 * @return TokenMatcher
267267 */
268268 public function colorHex (): TokenMatcher {
269- return new TokenMatcher ( Token::T_HASH , static function ( Token $ t ) {
270- return preg_match ( '/^([0-9a-f]{3}|[0-9a-f]{6})$/i ' , $ t ->value () );
271- } );
269+ return $ this ->cache [__METHOD__ ]
270+ ??= new TokenMatcher ( Token::T_HASH , static function ( Token $ t ) {
271+ return preg_match ( '/^([0-9a-f]{3}|[0-9a-f]{6})$/i ' , $ t ->value () );
272+ } );
272273 }
273274
274275 /**
@@ -1451,49 +1452,50 @@ public function cssNegation() {
14511452 * @return KeywordMatcher
14521453 */
14531454 public function colorWords (): KeywordMatcher {
1454- return new KeywordMatcher ( [
1455- // Basic colors
1456- 'aqua ' , 'black ' , 'blue ' , 'fuchsia ' , 'gray ' , 'green ' ,
1457- 'lime ' , 'maroon ' , 'navy ' , 'olive ' , 'purple ' , 'red ' ,
1458- 'silver ' , 'teal ' , 'white ' , 'yellow ' ,
1459- // Extended colors
1460- 'aliceblue ' , 'antiquewhite ' , 'aquamarine ' , 'azure ' ,
1461- 'beige ' , 'bisque ' , 'blanchedalmond ' , 'blueviolet ' , 'brown ' ,
1462- 'burlywood ' , 'cadetblue ' , 'chartreuse ' , 'chocolate ' ,
1463- 'coral ' , 'cornflowerblue ' , 'cornsilk ' , 'crimson ' , 'cyan ' ,
1464- 'darkblue ' , 'darkcyan ' , 'darkgoldenrod ' , 'darkgray ' ,
1465- 'darkgreen ' , 'darkgrey ' , 'darkkhaki ' , 'darkmagenta ' ,
1466- 'darkolivegreen ' , 'darkorange ' , 'darkorchid ' , 'darkred ' ,
1467- 'darksalmon ' , 'darkseagreen ' , 'darkslateblue ' ,
1468- 'darkslategray ' , 'darkslategrey ' , 'darkturquoise ' ,
1469- 'darkviolet ' , 'deeppink ' , 'deepskyblue ' , 'dimgray ' ,
1470- 'dimgrey ' , 'dodgerblue ' , 'firebrick ' , 'floralwhite ' ,
1471- 'forestgreen ' , 'gainsboro ' , 'ghostwhite ' , 'gold ' ,
1472- 'goldenrod ' , 'greenyellow ' , 'grey ' , 'honeydew ' , 'hotpink ' ,
1473- 'indianred ' , 'indigo ' , 'ivory ' , 'khaki ' , 'lavender ' ,
1474- 'lavenderblush ' , 'lawngreen ' , 'lemonchiffon ' , 'lightblue ' ,
1475- 'lightcoral ' , 'lightcyan ' , 'lightgoldenrodyellow ' ,
1476- 'lightgray ' , 'lightgreen ' , 'lightgrey ' , 'lightpink ' ,
1477- 'lightsalmon ' , 'lightseagreen ' , 'lightskyblue ' ,
1478- 'lightslategray ' , 'lightslategrey ' , 'lightsteelblue ' ,
1479- 'lightyellow ' , 'limegreen ' , 'linen ' , 'magenta ' ,
1480- 'mediumaquamarine ' , 'mediumblue ' , 'mediumorchid ' ,
1481- 'mediumpurple ' , 'mediumseagreen ' , 'mediumslateblue ' ,
1482- 'mediumspringgreen ' , 'mediumturquoise ' , 'mediumvioletred ' ,
1483- 'midnightblue ' , 'mintcream ' , 'mistyrose ' , 'moccasin ' ,
1484- 'navajowhite ' , 'oldlace ' , 'olivedrab ' , 'orange ' ,
1485- 'orangered ' , 'orchid ' , 'palegoldenrod ' , 'palegreen ' ,
1486- 'paleturquoise ' , 'palevioletred ' , 'papayawhip ' ,
1487- 'peachpuff ' , 'peru ' , 'pink ' , 'plum ' , 'powderblue ' ,
1488- 'rosybrown ' , 'royalblue ' , 'saddlebrown ' , 'salmon ' ,
1489- 'sandybrown ' , 'seagreen ' , 'seashell ' , 'sienna ' , 'skyblue ' ,
1490- 'slateblue ' , 'slategray ' , 'slategrey ' , 'snow ' ,
1491- 'springgreen ' , 'steelblue ' , 'tan ' , 'thistle ' , 'tomato ' ,
1492- 'turquoise ' , 'violet ' , 'wheat ' , 'whitesmoke ' ,
1493- 'yellowgreen ' ,
1494- // Other keywords. Intentionally omitting the deprecated system colors.
1495- 'transparent ' , 'currentColor ' ,
1496- ] );
1455+ return $ this ->cache [__METHOD__ ]
1456+ ??= new KeywordMatcher ( [
1457+ // Basic colors
1458+ 'aqua ' , 'black ' , 'blue ' , 'fuchsia ' , 'gray ' , 'green ' ,
1459+ 'lime ' , 'maroon ' , 'navy ' , 'olive ' , 'purple ' , 'red ' ,
1460+ 'silver ' , 'teal ' , 'white ' , 'yellow ' ,
1461+ // Extended colors
1462+ 'aliceblue ' , 'antiquewhite ' , 'aquamarine ' , 'azure ' ,
1463+ 'beige ' , 'bisque ' , 'blanchedalmond ' , 'blueviolet ' , 'brown ' ,
1464+ 'burlywood ' , 'cadetblue ' , 'chartreuse ' , 'chocolate ' ,
1465+ 'coral ' , 'cornflowerblue ' , 'cornsilk ' , 'crimson ' , 'cyan ' ,
1466+ 'darkblue ' , 'darkcyan ' , 'darkgoldenrod ' , 'darkgray ' ,
1467+ 'darkgreen ' , 'darkgrey ' , 'darkkhaki ' , 'darkmagenta ' ,
1468+ 'darkolivegreen ' , 'darkorange ' , 'darkorchid ' , 'darkred ' ,
1469+ 'darksalmon ' , 'darkseagreen ' , 'darkslateblue ' ,
1470+ 'darkslategray ' , 'darkslategrey ' , 'darkturquoise ' ,
1471+ 'darkviolet ' , 'deeppink ' , 'deepskyblue ' , 'dimgray ' ,
1472+ 'dimgrey ' , 'dodgerblue ' , 'firebrick ' , 'floralwhite ' ,
1473+ 'forestgreen ' , 'gainsboro ' , 'ghostwhite ' , 'gold ' ,
1474+ 'goldenrod ' , 'greenyellow ' , 'grey ' , 'honeydew ' , 'hotpink ' ,
1475+ 'indianred ' , 'indigo ' , 'ivory ' , 'khaki ' , 'lavender ' ,
1476+ 'lavenderblush ' , 'lawngreen ' , 'lemonchiffon ' , 'lightblue ' ,
1477+ 'lightcoral ' , 'lightcyan ' , 'lightgoldenrodyellow ' ,
1478+ 'lightgray ' , 'lightgreen ' , 'lightgrey ' , 'lightpink ' ,
1479+ 'lightsalmon ' , 'lightseagreen ' , 'lightskyblue ' ,
1480+ 'lightslategray ' , 'lightslategrey ' , 'lightsteelblue ' ,
1481+ 'lightyellow ' , 'limegreen ' , 'linen ' , 'magenta ' ,
1482+ 'mediumaquamarine ' , 'mediumblue ' , 'mediumorchid ' ,
1483+ 'mediumpurple ' , 'mediumseagreen ' , 'mediumslateblue ' ,
1484+ 'mediumspringgreen ' , 'mediumturquoise ' , 'mediumvioletred ' ,
1485+ 'midnightblue ' , 'mintcream ' , 'mistyrose ' , 'moccasin ' ,
1486+ 'navajowhite ' , 'oldlace ' , 'olivedrab ' , 'orange ' ,
1487+ 'orangered ' , 'orchid ' , 'palegoldenrod ' , 'palegreen ' ,
1488+ 'paleturquoise ' , 'palevioletred ' , 'papayawhip ' ,
1489+ 'peachpuff ' , 'peru ' , 'pink ' , 'plum ' , 'powderblue ' ,
1490+ 'rosybrown ' , 'royalblue ' , 'saddlebrown ' , 'salmon ' ,
1491+ 'sandybrown ' , 'seagreen ' , 'seashell ' , 'sienna ' , 'skyblue ' ,
1492+ 'slateblue ' , 'slategray ' , 'slategrey ' , 'snow ' ,
1493+ 'springgreen ' , 'steelblue ' , 'tan ' , 'thistle ' , 'tomato ' ,
1494+ 'turquoise ' , 'violet ' , 'wheat ' , 'whitesmoke ' ,
1495+ 'yellowgreen ' ,
1496+ // Other keywords. Intentionally omitting the deprecated system colors.
1497+ 'transparent ' , 'currentColor ' ,
1498+ ] );
14971499 }
14981500
14991501 /** @} */
0 commit comments