Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of Psy Shell.
5
 *
200 lars 6
 * (c) 2012-2023 Justin Hileman
148 lars 7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Psy\CodeCleaner;
13
 
14
use PhpParser\Node;
15
use PhpParser\Node\Expr\Exit_;
16
use PhpParser\Node\Expr\StaticCall;
17
use PhpParser\Node\Name\FullyQualified as FullyQualifiedName;
18
use Psy\Exception\BreakException;
19
 
20
class ExitPass extends CodeCleanerPass
21
{
22
    /**
23
     * Converts exit calls to BreakExceptions.
24
     *
25
     * @param \PhpParser\Node $node
26
     *
27
     * @return int|Node|Node[]|null Replacement node (or special return value)
28
     */
29
    public function leaveNode(Node $node)
30
    {
31
        if ($node instanceof Exit_) {
32
            return new StaticCall(new FullyQualifiedName(BreakException::class), 'exitShell');
33
        }
34
    }
35
}