PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / orm / src / Query / Lexer.php
mailpoet / vendor-prefixed / doctrine / orm / src / Query Last commit date
AST 9 months ago Exec 9 months ago Expr 9 months ago Filter 9 months ago Expr.php 9 months ago FilterCollection.php 9 months ago Lexer.php 9 months ago OutputWalker.php 9 months ago Parameter.php 9 months ago ParameterTypeInferer.php 9 months ago Parser.php 9 months ago ParserResult.php 9 months ago Printer.php 9 months ago QueryException.php 9 months ago QueryExpressionVisitor.php 9 months ago ResultSetMapping.php 9 months ago ResultSetMappingBuilder.php 9 months ago SqlOutputWalker.php 9 months ago SqlWalker.php 9 months ago TokenType.php 9 months ago TreeWalker.php 9 months ago TreeWalkerAdapter.php 9 months ago TreeWalkerChain.php 9 months ago TreeWalkerChainIterator.php 9 months ago index.php 9 months ago
Lexer.php
193 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM\Query;
4 if (!defined('ABSPATH')) exit;
5 use MailPoetVendor\Doctrine\Common\Lexer\AbstractLexer;
6 use MailPoetVendor\Doctrine\Deprecations\Deprecation;
7 use function constant;
8 use function ctype_alpha;
9 use function defined;
10 use function is_numeric;
11 use function str_contains;
12 use function str_replace;
13 use function stripos;
14 use function strlen;
15 use function strtoupper;
16 use function substr;
17 class Lexer extends AbstractLexer
18 {
19 // All tokens that are not valid identifiers must be < 100
20 public const T_NONE = TokenType::T_NONE;
21 public const T_INTEGER = TokenType::T_INTEGER;
22 public const T_STRING = TokenType::T_STRING;
23 public const T_INPUT_PARAMETER = TokenType::T_INPUT_PARAMETER;
24 public const T_FLOAT = TokenType::T_FLOAT;
25 public const T_CLOSE_PARENTHESIS = TokenType::T_CLOSE_PARENTHESIS;
26 public const T_OPEN_PARENTHESIS = TokenType::T_OPEN_PARENTHESIS;
27 public const T_COMMA = TokenType::T_COMMA;
28 public const T_DIVIDE = TokenType::T_DIVIDE;
29 public const T_DOT = TokenType::T_DOT;
30 public const T_EQUALS = TokenType::T_EQUALS;
31 public const T_GREATER_THAN = TokenType::T_GREATER_THAN;
32 public const T_LOWER_THAN = TokenType::T_LOWER_THAN;
33 public const T_MINUS = TokenType::T_MINUS;
34 public const T_MULTIPLY = TokenType::T_MULTIPLY;
35 public const T_NEGATE = TokenType::T_NEGATE;
36 public const T_PLUS = TokenType::T_PLUS;
37 public const T_OPEN_CURLY_BRACE = TokenType::T_OPEN_CURLY_BRACE;
38 public const T_CLOSE_CURLY_BRACE = TokenType::T_CLOSE_CURLY_BRACE;
39 // All tokens that are identifiers or keywords that could be considered as identifiers should be >= 100
40 public const T_ALIASED_NAME = TokenType::T_ALIASED_NAME;
41 public const T_FULLY_QUALIFIED_NAME = TokenType::T_FULLY_QUALIFIED_NAME;
42 public const T_IDENTIFIER = TokenType::T_IDENTIFIER;
43 // All keyword tokens should be >= 200
44 public const T_ALL = TokenType::T_ALL;
45 public const T_AND = TokenType::T_AND;
46 public const T_ANY = TokenType::T_ANY;
47 public const T_AS = TokenType::T_AS;
48 public const T_ASC = TokenType::T_ASC;
49 public const T_AVG = TokenType::T_AVG;
50 public const T_BETWEEN = TokenType::T_BETWEEN;
51 public const T_BOTH = TokenType::T_BOTH;
52 public const T_BY = TokenType::T_BY;
53 public const T_CASE = TokenType::T_CASE;
54 public const T_COALESCE = TokenType::T_COALESCE;
55 public const T_COUNT = TokenType::T_COUNT;
56 public const T_DELETE = TokenType::T_DELETE;
57 public const T_DESC = TokenType::T_DESC;
58 public const T_DISTINCT = TokenType::T_DISTINCT;
59 public const T_ELSE = TokenType::T_ELSE;
60 public const T_EMPTY = TokenType::T_EMPTY;
61 public const T_END = TokenType::T_END;
62 public const T_ESCAPE = TokenType::T_ESCAPE;
63 public const T_EXISTS = TokenType::T_EXISTS;
64 public const T_FALSE = TokenType::T_FALSE;
65 public const T_FROM = TokenType::T_FROM;
66 public const T_GROUP = TokenType::T_GROUP;
67 public const T_HAVING = TokenType::T_HAVING;
68 public const T_HIDDEN = TokenType::T_HIDDEN;
69 public const T_IN = TokenType::T_IN;
70 public const T_INDEX = TokenType::T_INDEX;
71 public const T_INNER = TokenType::T_INNER;
72 public const T_INSTANCE = TokenType::T_INSTANCE;
73 public const T_IS = TokenType::T_IS;
74 public const T_JOIN = TokenType::T_JOIN;
75 public const T_LEADING = TokenType::T_LEADING;
76 public const T_LEFT = TokenType::T_LEFT;
77 public const T_LIKE = TokenType::T_LIKE;
78 public const T_MAX = TokenType::T_MAX;
79 public const T_MEMBER = TokenType::T_MEMBER;
80 public const T_MIN = TokenType::T_MIN;
81 public const T_NEW = TokenType::T_NEW;
82 public const T_NOT = TokenType::T_NOT;
83 public const T_NULL = TokenType::T_NULL;
84 public const T_NULLIF = TokenType::T_NULLIF;
85 public const T_OF = TokenType::T_OF;
86 public const T_OR = TokenType::T_OR;
87 public const T_ORDER = TokenType::T_ORDER;
88 public const T_OUTER = TokenType::T_OUTER;
89 public const T_PARTIAL = TokenType::T_PARTIAL;
90 public const T_SELECT = TokenType::T_SELECT;
91 public const T_SET = TokenType::T_SET;
92 public const T_SOME = TokenType::T_SOME;
93 public const T_SUM = TokenType::T_SUM;
94 public const T_THEN = TokenType::T_THEN;
95 public const T_TRAILING = TokenType::T_TRAILING;
96 public const T_TRUE = TokenType::T_TRUE;
97 public const T_UPDATE = TokenType::T_UPDATE;
98 public const T_WHEN = TokenType::T_WHEN;
99 public const T_WHERE = TokenType::T_WHERE;
100 public const T_WITH = TokenType::T_WITH;
101 public function __construct($input)
102 {
103 $this->setInput($input);
104 }
105 protected function getCatchablePatterns()
106 {
107 return [
108 '[a-z_][a-z0-9_]*\\:[a-z_][a-z0-9_]*(?:\\\\[a-z_][a-z0-9_]*)*',
109 // aliased name
110 '[a-z_\\\\][a-z0-9_]*(?:\\\\[a-z_][a-z0-9_]*)*',
111 // identifier or qualified name
112 '(?:[0-9]+(?:[\\.][0-9]+)*)(?:e[+-]?[0-9]+)?',
113 // numbers
114 "'(?:[^']|'')*'",
115 // quoted strings
116 '\\?[0-9]*|:[a-z_][a-z0-9_]*',
117 ];
118 }
119 protected function getNonCatchablePatterns()
120 {
121 return ['\\s+', '--.*', '(.)'];
122 }
123 protected function getType(&$value)
124 {
125 $type = TokenType::T_NONE;
126 switch (\true) {
127 // Recognize numeric values
128 case is_numeric($value):
129 if (str_contains($value, '.') || stripos($value, 'e') !== \false) {
130 return TokenType::T_FLOAT;
131 }
132 return TokenType::T_INTEGER;
133 // Recognize quoted strings
134 case $value[0] === "'":
135 $value = str_replace("''", "'", substr($value, 1, strlen($value) - 2));
136 return TokenType::T_STRING;
137 // Recognize identifiers, aliased or qualified names
138 case ctype_alpha($value[0]) || $value[0] === '_' || $value[0] === '\\':
139 $name = 'MailPoetVendor\\Doctrine\\ORM\\Query\\TokenType::T_' . strtoupper($value);
140 if (defined($name)) {
141 $type = constant($name);
142 if ($type > 100) {
143 return $type;
144 }
145 }
146 if (str_contains($value, ':')) {
147 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8818', 'Short namespace aliases such as "%s" are deprecated and will be removed in Doctrine ORM 3.0.', $value);
148 // @phpstan-ignore classConstant.deprecated
149 return TokenType::T_ALIASED_NAME;
150 }
151 if (str_contains($value, '\\')) {
152 return TokenType::T_FULLY_QUALIFIED_NAME;
153 }
154 return TokenType::T_IDENTIFIER;
155 // Recognize input parameters
156 case $value[0] === '?' || $value[0] === ':':
157 return TokenType::T_INPUT_PARAMETER;
158 // Recognize symbols
159 case $value === '.':
160 return TokenType::T_DOT;
161 case $value === ',':
162 return TokenType::T_COMMA;
163 case $value === '(':
164 return TokenType::T_OPEN_PARENTHESIS;
165 case $value === ')':
166 return TokenType::T_CLOSE_PARENTHESIS;
167 case $value === '=':
168 return TokenType::T_EQUALS;
169 case $value === '>':
170 return TokenType::T_GREATER_THAN;
171 case $value === '<':
172 return TokenType::T_LOWER_THAN;
173 case $value === '+':
174 return TokenType::T_PLUS;
175 case $value === '-':
176 return TokenType::T_MINUS;
177 case $value === '*':
178 return TokenType::T_MULTIPLY;
179 case $value === '/':
180 return TokenType::T_DIVIDE;
181 case $value === '!':
182 return TokenType::T_NEGATE;
183 case $value === '{':
184 return TokenType::T_OPEN_CURLY_BRACE;
185 case $value === '}':
186 return TokenType::T_CLOSE_CURLY_BRACE;
187 // Default
188 default:
189 }
190 return $type;
191 }
192 }
193