REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 3.08 KB
Close
/proc/thread-self/root/home/byroehnu/easetack.com/vendor/egulias/email-validator/src/Parser/Comment.php
Text
Base64
<?php namespace Egulias\EmailValidator\Parser; use Egulias\EmailValidator\EmailLexer; use Egulias\EmailValidator\Result\Result; use Egulias\EmailValidator\Warning\QuotedPart; use Egulias\EmailValidator\Result\InvalidEmail; use Egulias\EmailValidator\Parser\CommentStrategy\CommentStrategy; use Egulias\EmailValidator\Result\Reason\UnclosedComment; use Egulias\EmailValidator\Result\Reason\UnOpenedComment; use Egulias\EmailValidator\Warning\Comment as WarningComment; class Comment extends PartParser { /** * @var int */ private $openedParenthesis = 0; /** * @var CommentStrategy */ private $commentStrategy; public function __construct(EmailLexer $lexer, CommentStrategy $commentStrategy) { $this->lexer = $lexer; $this->commentStrategy = $commentStrategy; } public function parse(): Result { if ($this->lexer->current->isA(EmailLexer::S_OPENPARENTHESIS)) { $this->openedParenthesis++; if ($this->noClosingParenthesis()) { return new InvalidEmail(new UnclosedComment(), $this->lexer->current->value); } } if ($this->lexer->current->isA(EmailLexer::S_CLOSEPARENTHESIS)) { return new InvalidEmail(new UnOpenedComment(), $this->lexer->current->value); } $this->warnings[WarningComment::CODE] = new WarningComment(); $moreTokens = true; while ($this->commentStrategy->exitCondition($this->lexer, $this->openedParenthesis) && $moreTokens) { if ($this->lexer->isNextToken(EmailLexer::S_OPENPARENTHESIS)) { $this->openedParenthesis++; } $this->warnEscaping(); if ($this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { $this->openedParenthesis--; } $moreTokens = $this->lexer->moveNext(); } if ($this->openedParenthesis >= 1) { return new InvalidEmail(new UnclosedComment(), $this->lexer->current->value); } if ($this->openedParenthesis < 0) { return new InvalidEmail(new UnOpenedComment(), $this->lexer->current->value); } $finalValidations = $this->commentStrategy->endOfLoopValidations($this->lexer); $this->warnings = [...$this->warnings, ...$this->commentStrategy->getWarnings()]; return $finalValidations; } /** * @return void */ private function warnEscaping(): void { //Backslash found if (!$this->lexer->current->isA(EmailLexer::S_BACKSLASH)) { return; } if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) { return; } $this->warnings[QuotedPart::CODE] = new QuotedPart($this->lexer->getPrevious()->type, $this->lexer->current->type); } private function noClosingParenthesis(): bool { try { $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS); return false; } catch (\RuntimeException $e) { return true; } } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
CommentStrategy
DIR
-
drwxrwxrwx
2025-05-16 16:14:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Comment.php
3.08 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DomainLiteral.php
7.00 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DomainPart.php
10.53 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DoubleQuote.php
3.13 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
FoldingWhiteSpace.php
2.73 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
IDLeftPart.php
386 B
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
IDRightPart.php
972 B
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LocalPart.php
5.32 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PartParser.php
1.50 KB
lrw-rw-rw-
2025-03-06 22:45:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).