@@ -15,11 +15,11 @@ |
||
| 15 | 15 | * @return Token |
| 16 | 16 | */ |
| 17 | 17 | public function read( |
| 18 | - int $code, |
|
| 19 | - int $pos, |
|
| 20 | - int $line, |
|
| 21 | - int $col, |
|
| 22 | - Token $prev |
|
| 18 | + int $code, |
|
| 19 | + int $pos, |
|
| 20 | + int $line, |
|
| 21 | + int $col, |
|
| 22 | + Token $prev |
|
| 23 | 23 | ): Token; |
| 24 | 24 | |
| 25 | 25 | /** |
@@ -35,11 +35,11 @@ discard block |
||
| 35 | 35 | * @inheritdoc |
| 36 | 36 | */ |
| 37 | 37 | public function read( |
| 38 | - int $code, |
|
| 39 | - int $pos, |
|
| 40 | - int $line, |
|
| 41 | - int $col, |
|
| 42 | - Token $prev |
|
| 38 | + int $code, |
|
| 39 | + int $pos, |
|
| 40 | + int $line, |
|
| 41 | + int $col, |
|
| 42 | + Token $prev |
|
| 43 | 43 | ): Token { |
| 44 | 44 | switch ($code) { |
| 45 | 45 | case 33: // ! |
@@ -107,11 +107,11 @@ discard block |
||
| 107 | 107 | * @return Token |
| 108 | 108 | */ |
| 109 | 109 | protected function readName( |
| 110 | - int $code, |
|
| 111 | - int $pos, |
|
| 112 | - int $line, |
|
| 113 | - int $col, |
|
| 114 | - Token $prev |
|
| 110 | + int $code, |
|
| 111 | + int $pos, |
|
| 112 | + int $line, |
|
| 113 | + int $col, |
|
| 114 | + Token $prev |
|
| 115 | 115 | ): Token { |
| 116 | 116 | $body = $this->lexer->getBody(); |
| 117 | 117 | $bodyLength = mb_strlen($body); |
@@ -124,7 +124,7 @@ discard block |
||
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | return new Token(TokenKindEnum::NAME, $start, $pos, $line, $col, $prev, |
| 127 | - sliceString($body, $start, $pos)); |
|
| 127 | + sliceString($body, $start, $pos)); |
|
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | /** |
@@ -137,11 +137,11 @@ discard block |
||
| 137 | 137 | * @throws SyntaxErrorException |
| 138 | 138 | */ |
| 139 | 139 | protected function readBlockString( |
| 140 | - int $code, |
|
| 141 | - int $pos, |
|
| 142 | - int $line, |
|
| 143 | - int $col, |
|
| 144 | - Token $prev |
|
| 140 | + int $code, |
|
| 141 | + int $pos, |
|
| 142 | + int $line, |
|
| 143 | + int $col, |
|
| 144 | + Token $prev |
|
| 145 | 145 | ): Token { |
| 146 | 146 | $body = $this->lexer->getBody(); |
| 147 | 147 | $bodyLength = mb_strlen($body); |
@@ -157,21 +157,21 @@ discard block |
||
| 157 | 157 | $rawValue .= sliceString($body, $chunkStart, $pos); |
| 158 | 158 | |
| 159 | 159 | return new Token( |
| 160 | - TokenKindEnum::BLOCK_STRING, |
|
| 161 | - $start, |
|
| 162 | - $pos + 3, |
|
| 163 | - $line, |
|
| 164 | - $col, |
|
| 165 | - $prev, |
|
| 166 | - blockStringValue($rawValue) |
|
| 160 | + TokenKindEnum::BLOCK_STRING, |
|
| 161 | + $start, |
|
| 162 | + $pos + 3, |
|
| 163 | + $line, |
|
| 164 | + $col, |
|
| 165 | + $prev, |
|
| 166 | + blockStringValue($rawValue) |
|
| 167 | 167 | ); |
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | if (isSourceCharacter($code)) { |
| 171 | 171 | throw new SyntaxErrorException( |
| 172 | - $this->lexer->getSource(), |
|
| 173 | - $pos, |
|
| 174 | - sprintf('Invalid character within String: %s', |
|
| 172 | + $this->lexer->getSource(), |
|
| 173 | + $pos, |
|
| 174 | + sprintf('Invalid character within String: %s', |
|
| 175 | 175 | printCharCode($code)) |
| 176 | 176 | ); |
| 177 | 177 | } |
@@ -186,7 +186,7 @@ discard block |
||
| 186 | 186 | } |
| 187 | 187 | |
| 188 | 188 | throw new SyntaxErrorException($this->lexer->getSource(), $pos, |
| 189 | - 'Unterminated string.'); |
|
| 189 | + 'Unterminated string.'); |
|
| 190 | 190 | } |
| 191 | 191 | |
| 192 | 192 | /** |
@@ -199,11 +199,11 @@ discard block |
||
| 199 | 199 | * @throws SyntaxErrorException |
| 200 | 200 | */ |
| 201 | 201 | protected function readNumber( |
| 202 | - int $code, |
|
| 203 | - int $pos, |
|
| 204 | - int $line, |
|
| 205 | - int $col, |
|
| 206 | - Token $prev |
|
| 202 | + int $code, |
|
| 203 | + int $pos, |
|
| 204 | + int $line, |
|
| 205 | + int $col, |
|
| 206 | + Token $prev |
|
| 207 | 207 | ): Token { |
| 208 | 208 | $body = $this->lexer->getBody(); |
| 209 | 209 | $start = $pos; |
@@ -219,9 +219,9 @@ discard block |
||
| 219 | 219 | $code = charCodeAt($body, ++$pos); |
| 220 | 220 | if (isNumber($code)) { |
| 221 | 221 | throw new SyntaxErrorException( |
| 222 | - $this->lexer->getSource(), |
|
| 223 | - $pos, |
|
| 224 | - sprintf('Invalid number, unexpected digit after 0: %s.', |
|
| 222 | + $this->lexer->getSource(), |
|
| 223 | + $pos, |
|
| 224 | + sprintf('Invalid number, unexpected digit after 0: %s.', |
|
| 225 | 225 | printCharCode($code)) |
| 226 | 226 | ); |
| 227 | 227 | } |
@@ -252,13 +252,13 @@ discard block |
||
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | return new Token( |
| 255 | - $isFloat ? TokenKindEnum::FLOAT : TokenKindEnum::INT, |
|
| 256 | - $start, |
|
| 257 | - $pos, |
|
| 258 | - $line, |
|
| 259 | - $col, |
|
| 260 | - $prev, |
|
| 261 | - sliceString($body, $start, $pos) |
|
| 255 | + $isFloat ? TokenKindEnum::FLOAT : TokenKindEnum::INT, |
|
| 256 | + $start, |
|
| 257 | + $pos, |
|
| 258 | + $line, |
|
| 259 | + $col, |
|
| 260 | + $prev, |
|
| 261 | + sliceString($body, $start, $pos) |
|
| 262 | 262 | ); |
| 263 | 263 | } |
| 264 | 264 | |
@@ -272,11 +272,11 @@ discard block |
||
| 272 | 272 | * @throws SyntaxErrorException |
| 273 | 273 | */ |
| 274 | 274 | protected function readString( |
| 275 | - int $code, |
|
| 276 | - int $pos, |
|
| 277 | - int $line, |
|
| 278 | - int $col, |
|
| 279 | - Token $prev |
|
| 275 | + int $code, |
|
| 276 | + int $pos, |
|
| 277 | + int $line, |
|
| 278 | + int $col, |
|
| 279 | + Token $prev |
|
| 280 | 280 | ): Token { |
| 281 | 281 | $body = $this->lexer->getBody(); |
| 282 | 282 | $bodyLength = mb_strlen($body); |
@@ -292,14 +292,14 @@ discard block |
||
| 292 | 292 | $value .= sliceString($body, $chunkStart, $pos); |
| 293 | 293 | |
| 294 | 294 | return new Token(TokenKindEnum::STRING, $start, $pos + 1, $line, |
| 295 | - $col, $prev, $value); |
|
| 295 | + $col, $prev, $value); |
|
| 296 | 296 | } |
| 297 | 297 | |
| 298 | 298 | if ($this->isSourceCharacter($code)) { |
| 299 | 299 | throw new SyntaxErrorException( |
| 300 | - $this->lexer->getSource(), |
|
| 301 | - $pos, |
|
| 302 | - sprintf('Invalid character within String: %s', |
|
| 300 | + $this->lexer->getSource(), |
|
| 301 | + $pos, |
|
| 302 | + sprintf('Invalid character within String: %s', |
|
| 303 | 303 | printCharCode($code)) |
| 304 | 304 | ); |
| 305 | 305 | } |
@@ -339,19 +339,19 @@ discard block |
||
| 339 | 339 | case 117: |
| 340 | 340 | // u |
| 341 | 341 | $charCode = uniCharCode( |
| 342 | - charCodeAt($body, $pos + 1), |
|
| 343 | - charCodeAt($body, $pos + 2), |
|
| 344 | - charCodeAt($body, $pos + 3), |
|
| 345 | - charCodeAt($body, $pos + 4) |
|
| 342 | + charCodeAt($body, $pos + 1), |
|
| 343 | + charCodeAt($body, $pos + 2), |
|
| 344 | + charCodeAt($body, $pos + 3), |
|
| 345 | + charCodeAt($body, $pos + 4) |
|
| 346 | 346 | ); |
| 347 | 347 | if ($charCode < 0) { |
| 348 | 348 | throw new SyntaxErrorException( |
| 349 | - $this->lexer->getSource(), |
|
| 350 | - $pos, |
|
| 351 | - sprintf( |
|
| 349 | + $this->lexer->getSource(), |
|
| 350 | + $pos, |
|
| 351 | + sprintf( |
|
| 352 | 352 | 'Invalid character escape sequence: \\u%s', |
| 353 | 353 | sliceString($body, $pos + 1, $pos + 5) |
| 354 | - ) |
|
| 354 | + ) |
|
| 355 | 355 | ); |
| 356 | 356 | } |
| 357 | 357 | $value .= chr($charCode); |
@@ -359,9 +359,9 @@ discard block |
||
| 359 | 359 | break; |
| 360 | 360 | default: |
| 361 | 361 | throw new SyntaxErrorException( |
| 362 | - $this->lexer->getSource(), |
|
| 363 | - $pos, |
|
| 364 | - sprintf('Invalid character escape sequence: \\%s', |
|
| 362 | + $this->lexer->getSource(), |
|
| 363 | + $pos, |
|
| 364 | + sprintf('Invalid character escape sequence: \\%s', |
|
| 365 | 365 | chr($code)) |
| 366 | 366 | ); |
| 367 | 367 | } |
@@ -372,7 +372,7 @@ discard block |
||
| 372 | 372 | } |
| 373 | 373 | |
| 374 | 374 | throw new SyntaxErrorException($this->lexer->getSource(), $pos, |
| 375 | - 'Unterminated string.'); |
|
| 375 | + 'Unterminated string.'); |
|
| 376 | 376 | } |
| 377 | 377 | |
| 378 | 378 | /** |
@@ -384,14 +384,14 @@ discard block |
||
| 384 | 384 | * @return Token |
| 385 | 385 | */ |
| 386 | 386 | protected function readSpread( |
| 387 | - int $code, |
|
| 388 | - int $pos, |
|
| 389 | - int $line, |
|
| 390 | - int $col, |
|
| 391 | - Token $prev |
|
| 387 | + int $code, |
|
| 388 | + int $pos, |
|
| 389 | + int $line, |
|
| 390 | + int $col, |
|
| 391 | + Token $prev |
|
| 392 | 392 | ): Token { |
| 393 | 393 | return new Token(TokenKindEnum::SPREAD, $pos, $pos + 3, $line, $col, |
| 394 | - $prev); |
|
| 394 | + $prev); |
|
| 395 | 395 | } |
| 396 | 396 | |
| 397 | 397 | /** |
@@ -403,14 +403,14 @@ discard block |
||
| 403 | 403 | * @return Token |
| 404 | 404 | */ |
| 405 | 405 | protected function readDollar( |
| 406 | - int $code, |
|
| 407 | - int $pos, |
|
| 408 | - int $line, |
|
| 409 | - int $col, |
|
| 410 | - Token $prev |
|
| 406 | + int $code, |
|
| 407 | + int $pos, |
|
| 408 | + int $line, |
|
| 409 | + int $col, |
|
| 410 | + Token $prev |
|
| 411 | 411 | ): Token { |
| 412 | 412 | return new Token(TokenKindEnum::DOLLAR, $pos, $pos + 1, $line, $col, |
| 413 | - $prev); |
|
| 413 | + $prev); |
|
| 414 | 414 | } |
| 415 | 415 | |
| 416 | 416 | /** |
@@ -422,14 +422,14 @@ discard block |
||
| 422 | 422 | * @return Token |
| 423 | 423 | */ |
| 424 | 424 | protected function readPipe( |
| 425 | - int $code, |
|
| 426 | - int $pos, |
|
| 427 | - int $line, |
|
| 428 | - int $col, |
|
| 429 | - Token $prev |
|
| 425 | + int $code, |
|
| 426 | + int $pos, |
|
| 427 | + int $line, |
|
| 428 | + int $col, |
|
| 429 | + Token $prev |
|
| 430 | 430 | ): Token { |
| 431 | 431 | return new Token(TokenKindEnum::PIPE, $pos, $pos + 1, $line, $col, |
| 432 | - $prev); |
|
| 432 | + $prev); |
|
| 433 | 433 | } |
| 434 | 434 | |
| 435 | 435 | /** |
@@ -441,11 +441,11 @@ discard block |
||
| 441 | 441 | * @return Token |
| 442 | 442 | */ |
| 443 | 443 | protected function readParenthesis( |
| 444 | - int $code, |
|
| 445 | - int $pos, |
|
| 446 | - int $line, |
|
| 447 | - int $col, |
|
| 448 | - Token $prev |
|
| 444 | + int $code, |
|
| 445 | + int $pos, |
|
| 446 | + int $line, |
|
| 447 | + int $col, |
|
| 448 | + Token $prev |
|
| 449 | 449 | ): Token { |
| 450 | 450 | return $code === 40 |
| 451 | 451 | ? new Token(TokenKindEnum::PAREN_L, $pos, $pos + 1, $line, $col, |
@@ -463,14 +463,14 @@ discard block |
||
| 463 | 463 | * @return Token |
| 464 | 464 | */ |
| 465 | 465 | protected function readEquals( |
| 466 | - int $code, |
|
| 467 | - int $pos, |
|
| 468 | - int $line, |
|
| 469 | - int $col, |
|
| 470 | - Token $prev |
|
| 466 | + int $code, |
|
| 467 | + int $pos, |
|
| 468 | + int $line, |
|
| 469 | + int $col, |
|
| 470 | + Token $prev |
|
| 471 | 471 | ): Token { |
| 472 | 472 | return new Token(TokenKindEnum::EQUALS, $pos, $pos + 1, $line, $col, |
| 473 | - $prev); |
|
| 473 | + $prev); |
|
| 474 | 474 | } |
| 475 | 475 | |
| 476 | 476 | /** |
@@ -482,11 +482,11 @@ discard block |
||
| 482 | 482 | * @return Token |
| 483 | 483 | */ |
| 484 | 484 | protected function readAt( |
| 485 | - int $code, |
|
| 486 | - int $pos, |
|
| 487 | - int $line, |
|
| 488 | - int $col, |
|
| 489 | - Token $prev |
|
| 485 | + int $code, |
|
| 486 | + int $pos, |
|
| 487 | + int $line, |
|
| 488 | + int $col, |
|
| 489 | + Token $prev |
|
| 490 | 490 | ): Token { |
| 491 | 491 | return new Token(TokenKindEnum::AT, $pos, $pos + 1, $line, $col, $prev); |
| 492 | 492 | } |
@@ -500,11 +500,11 @@ discard block |
||
| 500 | 500 | * @return Token |
| 501 | 501 | */ |
| 502 | 502 | protected function readComment( |
| 503 | - int $code, |
|
| 504 | - int $pos, |
|
| 505 | - int $line, |
|
| 506 | - int $col, |
|
| 507 | - Token $prev |
|
| 503 | + int $code, |
|
| 504 | + int $pos, |
|
| 505 | + int $line, |
|
| 506 | + int $col, |
|
| 507 | + Token $prev |
|
| 508 | 508 | ): Token { |
| 509 | 509 | $body = $this->lexer->getBody(); |
| 510 | 510 | $start = $pos; |
@@ -514,13 +514,13 @@ discard block |
||
| 514 | 514 | } while ($code !== null && ($code > 0x001f || $code === 0x0009)); // SourceCharacter but not LineTerminator |
| 515 | 515 | |
| 516 | 516 | return new Token( |
| 517 | - TokenKindEnum::COMMENT, |
|
| 518 | - $start, |
|
| 519 | - $pos, |
|
| 520 | - $line, |
|
| 521 | - $col, |
|
| 522 | - $prev, |
|
| 523 | - sliceString($body, $start + 1, $pos) |
|
| 517 | + TokenKindEnum::COMMENT, |
|
| 518 | + $start, |
|
| 519 | + $pos, |
|
| 520 | + $line, |
|
| 521 | + $col, |
|
| 522 | + $prev, |
|
| 523 | + sliceString($body, $start + 1, $pos) |
|
| 524 | 524 | ); |
| 525 | 525 | } |
| 526 | 526 | |
@@ -533,14 +533,14 @@ discard block |
||
| 533 | 533 | * @return Token |
| 534 | 534 | */ |
| 535 | 535 | protected function readColon( |
| 536 | - int $code, |
|
| 537 | - int $pos, |
|
| 538 | - int $line, |
|
| 539 | - int $col, |
|
| 540 | - Token $prev |
|
| 536 | + int $code, |
|
| 537 | + int $pos, |
|
| 538 | + int $line, |
|
| 539 | + int $col, |
|
| 540 | + Token $prev |
|
| 541 | 541 | ): Token { |
| 542 | 542 | return new Token(TokenKindEnum::COLON, $pos, $pos + 1, $line, $col, |
| 543 | - $prev); |
|
| 543 | + $prev); |
|
| 544 | 544 | } |
| 545 | 545 | |
| 546 | 546 | /** |
@@ -552,14 +552,14 @@ discard block |
||
| 552 | 552 | * @return Token |
| 553 | 553 | */ |
| 554 | 554 | protected function readAmp( |
| 555 | - int $code, |
|
| 556 | - int $pos, |
|
| 557 | - int $line, |
|
| 558 | - int $col, |
|
| 559 | - Token $prev |
|
| 555 | + int $code, |
|
| 556 | + int $pos, |
|
| 557 | + int $line, |
|
| 558 | + int $col, |
|
| 559 | + Token $prev |
|
| 560 | 560 | ): Token { |
| 561 | 561 | return new Token(TokenKindEnum::AMP, $pos, $pos + 1, $line, $col, |
| 562 | - $prev); |
|
| 562 | + $prev); |
|
| 563 | 563 | } |
| 564 | 564 | |
| 565 | 565 | /** |
@@ -571,14 +571,14 @@ discard block |
||
| 571 | 571 | * @return Token |
| 572 | 572 | */ |
| 573 | 573 | protected function readBang( |
| 574 | - int $code, |
|
| 575 | - int $pos, |
|
| 576 | - int $line, |
|
| 577 | - int $col, |
|
| 578 | - Token $prev |
|
| 574 | + int $code, |
|
| 575 | + int $pos, |
|
| 576 | + int $line, |
|
| 577 | + int $col, |
|
| 578 | + Token $prev |
|
| 579 | 579 | ): Token { |
| 580 | 580 | return new Token(TokenKindEnum::BANG, $pos, $pos + 1, $line, $col, |
| 581 | - $prev); |
|
| 581 | + $prev); |
|
| 582 | 582 | } |
| 583 | 583 | |
| 584 | 584 | /** |
@@ -590,11 +590,11 @@ discard block |
||
| 590 | 590 | * @return Token |
| 591 | 591 | */ |
| 592 | 592 | protected function readBrace( |
| 593 | - int $code, |
|
| 594 | - int $pos, |
|
| 595 | - int $line, |
|
| 596 | - int $col, |
|
| 597 | - Token $prev |
|
| 593 | + int $code, |
|
| 594 | + int $pos, |
|
| 595 | + int $line, |
|
| 596 | + int $col, |
|
| 597 | + Token $prev |
|
| 598 | 598 | ): Token { |
| 599 | 599 | return $code === 123 |
| 600 | 600 | ? new Token(TokenKindEnum::BRACE_L, $pos, $pos + 1, $line, $col, |
@@ -612,11 +612,11 @@ discard block |
||
| 612 | 612 | * @return Token |
| 613 | 613 | */ |
| 614 | 614 | protected function readBracket( |
| 615 | - int $code, |
|
| 616 | - int $pos, |
|
| 617 | - int $line, |
|
| 618 | - int $col, |
|
| 619 | - Token $prev |
|
| 615 | + int $code, |
|
| 616 | + int $pos, |
|
| 617 | + int $line, |
|
| 618 | + int $col, |
|
| 619 | + Token $prev |
|
| 620 | 620 | ): Token { |
| 621 | 621 | return $code === 91 |
| 622 | 622 | ? new Token(TokenKindEnum::BRACKET_L, $pos, $pos + 1, $line, $col, |
@@ -644,9 +644,9 @@ discard block |
||
| 644 | 644 | } |
| 645 | 645 | |
| 646 | 646 | throw new SyntaxErrorException( |
| 647 | - $this->lexer->getSource(), |
|
| 648 | - $pos, |
|
| 649 | - sprintf('Invalid number, expected digit but got: %s', |
|
| 647 | + $this->lexer->getSource(), |
|
| 648 | + $pos, |
|
| 649 | + sprintf('Invalid number, expected digit but got: %s', |
|
| 650 | 650 | printCharCode($code)) |
| 651 | 651 | ); |
| 652 | 652 | } |
@@ -696,9 +696,9 @@ discard block |
||
| 696 | 696 | * @return bool |
| 697 | 697 | */ |
| 698 | 698 | protected function isEscapedTripleQuote( |
| 699 | - string $body, |
|
| 700 | - int $code, |
|
| 701 | - int $pos |
|
| 699 | + string $body, |
|
| 700 | + int $code, |
|
| 701 | + int $pos |
|
| 702 | 702 | ): bool { |
| 703 | 703 | return $code === 92 && |
| 704 | 704 | charCodeAt($body, $pos + 1) === 34 && |