PHP 8.3.31
Preview: CodeArgumentParser.php Size: 1.48 KB
/home/getspomw/royalsquad.us/vendor/psy/psysh/src/Command/CodeArgumentParser.php

<?php

/*
 * This file is part of Psy Shell.
 *
 * (c) 2012-2023 Justin Hileman
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Psy\Command;

use PhpParser\Parser;
use Psy\Exception\ParseErrorException;
use Psy\ParserFactory;

/**
 * Class CodeArgumentParser.
 */
class CodeArgumentParser
{
    private Parser $parser;

    public function __construct(?Parser $parser = null)
    {
        $this->parser = $parser ?? (new ParserFactory())->createParser();
    }

    /**
     * Lex and parse a string of code into statements.
     *
     * This is intended for code arguments, so the code string *should not* start with <?php
     *
     * @throws ParseErrorException
     *
     * @return array Statements
     */
    public function parse(string $code): array
    {
        $code = '<?php '.$code;

        try {
            return $this->parser->parse($code);
        } catch (\PhpParser\Error $e) {
            if (\strpos($e->getMessage(), 'unexpected EOF') === false) {
                throw ParseErrorException::fromParseError($e);
            }

            // If we got an unexpected EOF, let's try it again with a semicolon.
            try {
                return $this->parser->parse($code.';');
            } catch (\PhpParser\Error $_e) {
                // Throw the original error, not the semicolon one.
                throw ParseErrorException::fromParseError($e);
            }
        }
    }
}

Directory Contents

Dirs: 2 × Files: 22

Name Size Perms Modified Actions
- drwxrwxrwx 2026-04-19 14:56:12
Edit Download
- drwxrwxrwx 2026-04-19 14:56:22
Edit Download
2.25 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
1.11 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
1.48 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
7.54 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
8.93 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
2.44 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
5.67 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
38.66 KB lrw-r--r-- 2026-04-26 13:03:26
Edit Download
1.13 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
2.80 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
7.55 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
9.66 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
3.10 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
958 B lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
10.54 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
9.50 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
3.18 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
3.40 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
4.82 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
2.64 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
4.18 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download
3.65 KB lrw-rw-rw- 2025-09-17 06:53:38
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).