PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / sabberworm / php-css-parser / src / Value / CalcFunction.php
wp-user-avatar / third-party / vendor / sabberworm / php-css-parser / src / Value Last commit date
CSSFunction.php 5 days ago CSSString.php 5 days ago CalcFunction.php 5 days ago CalcRuleValueList.php 5 days ago Color.php 5 days ago LineName.php 5 days ago PrimitiveValue.php 5 days ago RuleValueList.php 5 days ago Size.php 5 days ago URL.php 5 days ago Value.php 5 days ago ValueList.php 5 days ago
CalcFunction.php
85 lines
1 <?php
2
3 declare (strict_types=1);
4 namespace ProfilePressVendor\Sabberworm\CSS\Value;
5
6 use ProfilePressVendor\Sabberworm\CSS\Parsing\ParserState;
7 use ProfilePressVendor\Sabberworm\CSS\Parsing\UnexpectedEOFException;
8 use ProfilePressVendor\Sabberworm\CSS\Parsing\UnexpectedTokenException;
9 use function ProfilePressVendor\Safe\preg_match;
10 class CalcFunction extends CSSFunction
11 {
12 private const T_OPERAND = 1;
13 private const T_OPERATOR = 2;
14 /**
15 * @throws UnexpectedTokenException
16 * @throws UnexpectedEOFException
17 *
18 * @internal since V8.8.0
19 */
20 public static function parse(ParserState $parserState, bool $ignoreCase = \false): CSSFunction
21 {
22 $operators = ['+', '-', '*', '/'];
23 $function = $parserState->parseIdentifier();
24 if ($parserState->peek() !== '(') {
25 // Found ; or end of line before an opening bracket
26 throw new UnexpectedTokenException('(', $parserState->peek(), 'literal', $parserState->currentLine());
27 } elseif ($function !== 'calc') {
28 // Found invalid calc definition. Example calc (...
29 throw new UnexpectedTokenException('calc', $function, 'literal', $parserState->currentLine());
30 }
31 $parserState->consume('(');
32 $calcRuleValueList = new CalcRuleValueList($parserState->currentLine());
33 $list = new RuleValueList(',', $parserState->currentLine());
34 $nestingLevel = 0;
35 $lastComponentType = null;
36 while (!$parserState->comes(')') || $nestingLevel > 0) {
37 if ($parserState->isEnd() && $nestingLevel === 0) {
38 break;
39 }
40 $parserState->consumeWhiteSpace();
41 if ($parserState->comes('(')) {
42 $nestingLevel++;
43 $calcRuleValueList->addListComponent($parserState->consume(1));
44 $parserState->consumeWhiteSpace();
45 continue;
46 } elseif ($parserState->comes(')')) {
47 $nestingLevel--;
48 $calcRuleValueList->addListComponent($parserState->consume(1));
49 $parserState->consumeWhiteSpace();
50 continue;
51 }
52 if ($lastComponentType !== CalcFunction::T_OPERAND) {
53 $value = Value::parsePrimitiveValue($parserState);
54 $calcRuleValueList->addListComponent($value);
55 $lastComponentType = CalcFunction::T_OPERAND;
56 } else if (\in_array($parserState->peek(), $operators, \true)) {
57 if ($parserState->comes('-') || $parserState->comes('+')) {
58 if (preg_match('/\s/', $parserState->peek(1, -1)) !== 1 || preg_match('/\s/', $parserState->peek(1, 1)) !== 1) {
59 throw new UnexpectedTokenException(" {$parserState->peek()} ", $parserState->peek(1, -1) . $parserState->peek(2), 'literal', $parserState->currentLine());
60 }
61 }
62 $calcRuleValueList->addListComponent($parserState->consume(1));
63 $lastComponentType = CalcFunction::T_OPERATOR;
64 } else {
65 throw new UnexpectedTokenException(\sprintf('Next token was expected to be an operand of type %s. Instead "%s" was found.', \implode(', ', $operators), $parserState->peek()), '', 'custom', $parserState->currentLine());
66 }
67 $parserState->consumeWhiteSpace();
68 }
69 $list->addListComponent($calcRuleValueList);
70 if (!$parserState->isEnd()) {
71 $parserState->consume(')');
72 }
73 return new CalcFunction($function, $list, ',', $parserState->currentLine());
74 }
75 /**
76 * @return array<string, bool|int|float|string|array<mixed>|null>
77 *
78 * @internal
79 */
80 public function getArrayRepresentation(): array
81 {
82 throw new \BadMethodCallException('`getArrayRepresentation` is not yet implemented for `' . self::class . '`');
83 }
84 }
85