@@ -155,7 +155,7 @@ discard block |
||
| 155 | 155 | * |
| 156 | 156 | * @throws ParserException |
| 157 | 157 | */ |
| 158 | - public static function parse(Parser $parser, TokensList $list, array $options = []): Expression|null |
|
| 158 | + public static function parse(Parser $parser, TokensList $list, array $options = []): Expression | null |
|
| 159 | 159 | { |
| 160 | 160 | $ret = new static(); |
| 161 | 161 | |
@@ -198,7 +198,7 @@ discard block |
||
| 198 | 198 | ]; |
| 199 | 199 | |
| 200 | 200 | // When a field is parsed, no parentheses are expected. |
| 201 | - if (! empty($options['parseField'])) { |
|
| 201 | + if (!empty($options['parseField'])) { |
|
| 202 | 202 | $options['breakOnParentheses'] = true; |
| 203 | 203 | $options['field'] = $options['parseField']; |
| 204 | 204 | } |
@@ -225,14 +225,14 @@ discard block |
||
| 225 | 225 | } |
| 226 | 226 | |
| 227 | 227 | if ($token->type === TokenType::Keyword) { |
| 228 | - if (($brackets > 0) && empty($ret->subquery) && ! empty(Parser::STATEMENT_PARSERS[$token->keyword])) { |
|
| 228 | + if (($brackets > 0) && empty($ret->subquery) && !empty(Parser::STATEMENT_PARSERS[$token->keyword])) { |
|
| 229 | 229 | // A `(` was previously found and this keyword is the |
| 230 | 230 | // beginning of a statement, so this is a subquery. |
| 231 | 231 | $ret->subquery = $token->keyword; |
| 232 | 232 | } elseif ( |
| 233 | 233 | ($token->flags & Token::FLAG_KEYWORD_FUNCTION) |
| 234 | 234 | && (empty($options['parseField']) |
| 235 | - && ! $alias) |
|
| 235 | + && !$alias) |
|
| 236 | 236 | ) { |
| 237 | 237 | $isExpr = true; |
| 238 | 238 | } elseif (($token->flags & Token::FLAG_KEYWORD_RESERVED) && ($brackets === 0)) { |
@@ -244,7 +244,7 @@ discard block |
||
| 244 | 244 | } |
| 245 | 245 | |
| 246 | 246 | if ($token->keyword === 'AS') { |
| 247 | - if (! empty($options['breakOnAlias'])) { |
|
| 247 | + if (!empty($options['breakOnAlias'])) { |
|
| 248 | 248 | break; |
| 249 | 249 | } |
| 250 | 250 | |
@@ -267,7 +267,7 @@ discard block |
||
| 267 | 267 | } |
| 268 | 268 | |
| 269 | 269 | $isExpr = true; |
| 270 | - } elseif ($brackets === 0 && strlen((string) $ret->expr) > 0 && ! $alias) { |
|
| 270 | + } elseif ($brackets === 0 && strlen((string) $ret->expr) > 0 && !$alias) { |
|
| 271 | 271 | /* End of expression */ |
| 272 | 272 | break; |
| 273 | 273 | } |
@@ -283,7 +283,7 @@ discard block |
||
| 283 | 283 | || (($token->type === TokenType::Operator) |
| 284 | 284 | && ($token->value !== '.')) |
| 285 | 285 | ) { |
| 286 | - if (! empty($options['parseField'])) { |
|
| 286 | + if (!empty($options['parseField'])) { |
|
| 287 | 287 | break; |
| 288 | 288 | } |
| 289 | 289 | |
@@ -293,7 +293,7 @@ discard block |
||
| 293 | 293 | } |
| 294 | 294 | |
| 295 | 295 | if ($token->type === TokenType::Operator) { |
| 296 | - if (! empty($options['breakOnParentheses']) && (($token->value === '(') || ($token->value === ')'))) { |
|
| 296 | + if (!empty($options['breakOnParentheses']) && (($token->value === '(') || ($token->value === ')'))) { |
|
| 297 | 297 | // No brackets were expected. |
| 298 | 298 | break; |
| 299 | 299 | } |
@@ -317,7 +317,7 @@ discard block |
||
| 317 | 317 | |
| 318 | 318 | --$brackets; |
| 319 | 319 | if ($brackets === 0) { |
| 320 | - if (! empty($options['parenthesesDelimited'])) { |
|
| 320 | + if (!empty($options['parenthesesDelimited'])) { |
|
| 321 | 321 | // The current token is the last bracket, the next |
| 322 | 322 | // one will be outside the expression. |
| 323 | 323 | $ret->expr .= $token->token; |
@@ -343,7 +343,7 @@ discard block |
||
| 343 | 343 | |
| 344 | 344 | if ($alias) { |
| 345 | 345 | // An alias is expected (the keyword `AS` was previously found). |
| 346 | - if (! empty($ret->alias)) { |
|
| 346 | + if (!empty($ret->alias)) { |
|
| 347 | 347 | $parser->error('An alias was previously found.', $token); |
| 348 | 348 | break; |
| 349 | 349 | } |
@@ -357,15 +357,15 @@ discard block |
||
| 357 | 357 | && ($prev[0] === null |
| 358 | 358 | || (($prev[0]->type !== TokenType::Operator || $prev[0]->token === ')') |
| 359 | 359 | && ($prev[0]->type !== TokenType::Keyword |
| 360 | - || ! ($prev[0]->flags & Token::FLAG_KEYWORD_RESERVED)))) |
|
| 360 | + || !($prev[0]->flags & Token::FLAG_KEYWORD_RESERVED)))) |
|
| 361 | 361 | && (($prev[1]->type === TokenType::String) |
| 362 | 362 | || ($prev[1]->type === TokenType::Symbol |
| 363 | - && ! ($prev[1]->flags & Token::FLAG_SYMBOL_VARIABLE) |
|
| 364 | - && ! ($prev[1]->flags & Token::FLAG_SYMBOL_PARAMETER)) |
|
| 363 | + && !($prev[1]->flags & Token::FLAG_SYMBOL_VARIABLE) |
|
| 364 | + && !($prev[1]->flags & Token::FLAG_SYMBOL_PARAMETER)) |
|
| 365 | 365 | || ($prev[1]->type === TokenType::None |
| 366 | 366 | && $prev[1]->token !== 'OVER')) |
| 367 | 367 | ) { |
| 368 | - if (! empty($ret->alias)) { |
|
| 368 | + if (!empty($ret->alias)) { |
|
| 369 | 369 | $parser->error('An alias was previously found.', $token); |
| 370 | 370 | break; |
| 371 | 371 | } |
@@ -396,7 +396,7 @@ discard block |
||
| 396 | 396 | // Found a `.` which means we expect a column name and |
| 397 | 397 | // the column name we parsed is actually the table name |
| 398 | 398 | // and the table name is actually a database name. |
| 399 | - if (! empty($ret->database) || $dot) { |
|
| 399 | + if (!empty($ret->database) || $dot) { |
|
| 400 | 400 | $parser->error('Unexpected dot.', $token); |
| 401 | 401 | } |
| 402 | 402 | |
@@ -413,11 +413,11 @@ discard block |
||
| 413 | 413 | $dot = false; |
| 414 | 414 | } else { |
| 415 | 415 | // No alias is expected. |
| 416 | - if (! empty($options['breakOnAlias'])) { |
|
| 416 | + if (!empty($options['breakOnAlias'])) { |
|
| 417 | 417 | break; |
| 418 | 418 | } |
| 419 | 419 | |
| 420 | - if (! empty($ret->alias)) { |
|
| 420 | + if (!empty($ret->alias)) { |
|
| 421 | 421 | $parser->error('An alias was previously found.', $token); |
| 422 | 422 | break; |
| 423 | 423 | } |
@@ -465,7 +465,7 @@ discard block |
||
| 465 | 465 | $ret = implode('.', Context::escapeAll($fields)); |
| 466 | 466 | } |
| 467 | 467 | |
| 468 | - if (! empty($this->alias)) { |
|
| 468 | + if (!empty($this->alias)) { |
|
| 469 | 469 | $ret .= ' AS ' . Context::escape($this->alias); |
| 470 | 470 | } |
| 471 | 471 | |
@@ -119,7 +119,7 @@ discard block |
||
| 119 | 119 | $len = $str instanceof UtfString ? $str->length() : strlen($str); |
| 120 | 120 | |
| 121 | 121 | // For multi-byte strings, a new instance of `UtfString` is initialized. |
| 122 | - if (! $str instanceof UtfString && $len !== mb_strlen($str, 'UTF-8')) { |
|
| 122 | + if (!$str instanceof UtfString && $len !== mb_strlen($str, 'UTF-8')) { |
|
| 123 | 123 | $str = new UtfString($str); |
| 124 | 124 | } |
| 125 | 125 | |
@@ -129,7 +129,7 @@ discard block |
||
| 129 | 129 | $this->strict = $strict; |
| 130 | 130 | |
| 131 | 131 | // Setting the delimiter. |
| 132 | - $this->setDelimiter(! empty($delimiter) ? $delimiter : static::$defaultDelimiter); |
|
| 132 | + $this->setDelimiter(!empty($delimiter) ? $delimiter : static::$defaultDelimiter); |
|
| 133 | 133 | |
| 134 | 134 | $this->lex(); |
| 135 | 135 | } |
@@ -238,7 +238,7 @@ discard block |
||
| 238 | 238 | $delimiterLen = 0; |
| 239 | 239 | while ( |
| 240 | 240 | ++$this->last < $this->len |
| 241 | - && ! Context::isWhitespace($this->str[$this->last]) |
|
| 241 | + && !Context::isWhitespace($this->str[$this->last]) |
|
| 242 | 242 | && $delimiterLen < 15 |
| 243 | 243 | ) { |
| 244 | 244 | $this->delimiter .= $this->str[$this->last]; |
@@ -297,8 +297,8 @@ discard block |
||
| 297 | 297 | } |
| 298 | 298 | |
| 299 | 299 | if ( |
| 300 | - ($next->type !== TokenType::Keyword || ! in_array($next->value, ['FROM', 'USING'], true)) |
|
| 301 | - && ($next->type !== TokenType::Operator || ! in_array($next->value, [',', ')'], true)) |
|
| 300 | + ($next->type !== TokenType::Keyword || !in_array($next->value, ['FROM', 'USING'], true)) |
|
| 301 | + && ($next->type !== TokenType::Operator || !in_array($next->value, [',', ')'], true)) |
|
| 302 | 302 | ) { |
| 303 | 303 | continue; |
| 304 | 304 | } |
@@ -336,10 +336,10 @@ discard block |
||
| 336 | 336 | $next = $this->list->getNext(); |
| 337 | 337 | if ( |
| 338 | 338 | ($next->type !== TokenType::Keyword |
| 339 | - || ! in_array($next->value, self::KEYWORD_NAME_INDICATORS, true) |
|
| 339 | + || !in_array($next->value, self::KEYWORD_NAME_INDICATORS, true) |
|
| 340 | 340 | ) |
| 341 | 341 | && ($next->type !== TokenType::Operator |
| 342 | - || ! in_array($next->value, self::OPERATOR_NAME_INDICATORS, true) |
|
| 342 | + || !in_array($next->value, self::OPERATOR_NAME_INDICATORS, true) |
|
| 343 | 343 | ) |
| 344 | 344 | && ($next->value !== null) |
| 345 | 345 | ) { |
@@ -378,7 +378,7 @@ discard block |
||
| 378 | 378 | /** |
| 379 | 379 | * Parses a keyword. |
| 380 | 380 | */ |
| 381 | - public function parseKeyword(): Token|null |
|
| 381 | + public function parseKeyword(): Token | null |
|
| 382 | 382 | { |
| 383 | 383 | $token = ''; |
| 384 | 384 | |
@@ -418,7 +418,7 @@ discard block |
||
| 418 | 418 | $token .= $this->str[$this->last]; |
| 419 | 419 | $flags = Context::isKeyword($token); |
| 420 | 420 | |
| 421 | - if (($this->last + 1 !== $this->len && ! Context::isSeparator($this->str[$this->last + 1])) || ! $flags) { |
|
| 421 | + if (($this->last + 1 !== $this->len && !Context::isSeparator($this->str[$this->last + 1])) || !$flags) { |
|
| 422 | 422 | continue; |
| 423 | 423 | } |
| 424 | 424 | |
@@ -438,7 +438,7 @@ discard block |
||
| 438 | 438 | /** |
| 439 | 439 | * Parses a label. |
| 440 | 440 | */ |
| 441 | - public function parseLabel(): Token|null |
|
| 441 | + public function parseLabel(): Token | null |
|
| 442 | 442 | { |
| 443 | 443 | $token = ''; |
| 444 | 444 | |
@@ -482,7 +482,7 @@ discard block |
||
| 482 | 482 | /** |
| 483 | 483 | * Parses an operator. |
| 484 | 484 | */ |
| 485 | - public function parseOperator(): Token|null |
|
| 485 | + public function parseOperator(): Token | null |
|
| 486 | 486 | { |
| 487 | 487 | $token = ''; |
| 488 | 488 | |
@@ -502,7 +502,7 @@ discard block |
||
| 502 | 502 | $token .= $this->str[$this->last]; |
| 503 | 503 | $flags = Context::isOperator($token); |
| 504 | 504 | |
| 505 | - if (! $flags) { |
|
| 505 | + if (!$flags) { |
|
| 506 | 506 | continue; |
| 507 | 507 | } |
| 508 | 508 | |
@@ -518,11 +518,11 @@ discard block |
||
| 518 | 518 | /** |
| 519 | 519 | * Parses a whitespace. |
| 520 | 520 | */ |
| 521 | - public function parseWhitespace(): Token|null |
|
| 521 | + public function parseWhitespace(): Token | null |
|
| 522 | 522 | { |
| 523 | 523 | $token = $this->str[$this->last]; |
| 524 | 524 | |
| 525 | - if (! Context::isWhitespace($token)) { |
|
| 525 | + if (!Context::isWhitespace($token)) { |
|
| 526 | 526 | return null; |
| 527 | 527 | } |
| 528 | 528 | |
@@ -538,7 +538,7 @@ discard block |
||
| 538 | 538 | /** |
| 539 | 539 | * Parses a comment. |
| 540 | 540 | */ |
| 541 | - public function parseComment(): Token|null |
|
| 541 | + public function parseComment(): Token | null |
|
| 542 | 542 | { |
| 543 | 543 | $iBak = $this->last; |
| 544 | 544 | $token = $this->str[$this->last]; |
@@ -655,7 +655,7 @@ discard block |
||
| 655 | 655 | /** |
| 656 | 656 | * Parses a boolean. |
| 657 | 657 | */ |
| 658 | - public function parseBool(): Token|null |
|
| 658 | + public function parseBool(): Token | null |
|
| 659 | 659 | { |
| 660 | 660 | if ($this->last + 3 >= $this->len) { |
| 661 | 661 | // At least `min(strlen('TRUE'), strlen('FALSE'))` characters are |
@@ -686,7 +686,7 @@ discard block |
||
| 686 | 686 | /** |
| 687 | 687 | * Parses a number. |
| 688 | 688 | */ |
| 689 | - public function parseNumber(): Token|null |
|
| 689 | + public function parseNumber(): Token | null |
|
| 690 | 690 | { |
| 691 | 691 | // A rudimentary state machine is being used to parse numbers due to |
| 692 | 692 | // the various forms of their notation. |
@@ -753,7 +753,7 @@ discard block |
||
| 753 | 753 | } elseif ($state === 2) { |
| 754 | 754 | $flags |= Token::FLAG_NUMBER_HEX; |
| 755 | 755 | if ( |
| 756 | - ! ( |
|
| 756 | + !( |
|
| 757 | 757 | ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9') |
| 758 | 758 | || ($this->str[$this->last] >= 'A' && $this->str[$this->last] <= 'F') |
| 759 | 759 | || ($this->str[$this->last] >= 'a' && $this->str[$this->last] <= 'f') |
@@ -849,12 +849,12 @@ discard block |
||
| 849 | 849 | * |
| 850 | 850 | * @throws LexerException |
| 851 | 851 | */ |
| 852 | - public function parseString($quote = ''): Token|null |
|
| 852 | + public function parseString($quote = ''): Token | null |
|
| 853 | 853 | { |
| 854 | 854 | $token = $this->str[$this->last]; |
| 855 | 855 | $flags = Context::isString($token); |
| 856 | 856 | |
| 857 | - if (! $flags && $token !== $quote) { |
|
| 857 | + if (!$flags && $token !== $quote) { |
|
| 858 | 858 | return null; |
| 859 | 859 | } |
| 860 | 860 | |
@@ -899,12 +899,12 @@ discard block |
||
| 899 | 899 | * |
| 900 | 900 | * @throws LexerException |
| 901 | 901 | */ |
| 902 | - public function parseSymbol(): Token|null |
|
| 902 | + public function parseSymbol(): Token | null |
|
| 903 | 903 | { |
| 904 | 904 | $token = $this->str[$this->last]; |
| 905 | 905 | $flags = Context::isSymbol($token); |
| 906 | 906 | |
| 907 | - if (! $flags) { |
|
| 907 | + if (!$flags) { |
|
| 908 | 908 | return null; |
| 909 | 909 | } |
| 910 | 910 | |
@@ -930,7 +930,7 @@ discard block |
||
| 930 | 930 | if ($str === null) { |
| 931 | 931 | $str = $this->parseUnknown(); |
| 932 | 932 | |
| 933 | - if ($str === null && ! ($flags & Token::FLAG_SYMBOL_PARAMETER)) { |
|
| 933 | + if ($str === null && !($flags & Token::FLAG_SYMBOL_PARAMETER)) { |
|
| 934 | 934 | $this->error('Variable name was expected.', $this->str[$this->last], $this->last); |
| 935 | 935 | } |
| 936 | 936 | } |
@@ -946,14 +946,14 @@ discard block |
||
| 946 | 946 | /** |
| 947 | 947 | * Parses unknown parts of the query. |
| 948 | 948 | */ |
| 949 | - public function parseUnknown(): Token|null |
|
| 949 | + public function parseUnknown(): Token | null |
|
| 950 | 950 | { |
| 951 | 951 | $token = $this->str[$this->last]; |
| 952 | 952 | if (Context::isSeparator($token)) { |
| 953 | 953 | return null; |
| 954 | 954 | } |
| 955 | 955 | |
| 956 | - while (++$this->last < $this->len && ! Context::isSeparator($this->str[$this->last])) { |
|
| 956 | + while (++$this->last < $this->len && !Context::isSeparator($this->str[$this->last])) { |
|
| 957 | 957 | $token .= $this->str[$this->last]; |
| 958 | 958 | |
| 959 | 959 | // Test if end of token equals the current delimiter. If so, remove it from the token. |
@@ -972,7 +972,7 @@ discard block |
||
| 972 | 972 | /** |
| 973 | 973 | * Parses the delimiter of the query. |
| 974 | 974 | */ |
| 975 | - public function parseDelimiter(): Token|null |
|
| 975 | + public function parseDelimiter(): Token | null |
|
| 976 | 976 | { |
| 977 | 977 | $idx = 0; |
| 978 | 978 | |
@@ -989,7 +989,7 @@ discard block |
||
| 989 | 989 | return new Token($this->delimiter, TokenType::Delimiter); |
| 990 | 990 | } |
| 991 | 991 | |
| 992 | - private function parse(): Token|null |
|
| 992 | + private function parse(): Token | null |
|
| 993 | 993 | { |
| 994 | 994 | // It is best to put the parsers in order of their complexity |
| 995 | 995 | // (ascending) and their occurrence rate (descending). |