HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/alq-central.bikenow.co/vendor/nikic/php-parser/lib/PhpParser/Modifiers.php
<?php declare(strict_types=1);

namespace PhpParser;

/**
 * Modifiers used (as a bit mask) by various flags subnodes, for example on classes, functions,
 * properties and constants.
 */
final class Modifiers {
    public const PUBLIC    =  1;
    public const PROTECTED =  2;
    public const PRIVATE   =  4;
    public const STATIC    =  8;
    public const ABSTRACT  = 16;
    public const FINAL     = 32;
    public const READONLY  = 64;

    public const VISIBILITY_MASK = 1 | 2 | 4;

    /**
     * @internal
     */
    public static function verifyClassModifier(int $a, int $b): void {
        if ($a & Modifiers::ABSTRACT && $b & Modifiers::ABSTRACT) {
            throw new Error('Multiple abstract modifiers are not allowed');
        }

        if ($a & Modifiers::FINAL && $b & Modifiers::FINAL) {
            throw new Error('Multiple final modifiers are not allowed');
        }

        if ($a & Modifiers::READONLY && $b & Modifiers::READONLY) {
            throw new Error('Multiple readonly modifiers are not allowed');
        }

        if ($a & 48 && $b & 48) {
            throw new Error('Cannot use the final modifier on an abstract class');
        }
    }

    /**
     * @internal
     */
    public static function verifyModifier(int $a, int $b): void {
        if ($a & Modifiers::VISIBILITY_MASK && $b & Modifiers::VISIBILITY_MASK) {
            throw new Error('Multiple access type modifiers are not allowed');
        }

        if ($a & Modifiers::ABSTRACT && $b & Modifiers::ABSTRACT) {
            throw new Error('Multiple abstract modifiers are not allowed');
        }

        if ($a & Modifiers::STATIC && $b & Modifiers::STATIC) {
            throw new Error('Multiple static modifiers are not allowed');
        }

        if ($a & Modifiers::FINAL && $b & Modifiers::FINAL) {
            throw new Error('Multiple final modifiers are not allowed');
        }

        if ($a & Modifiers::READONLY && $b & Modifiers::READONLY) {
            throw new Error('Multiple readonly modifiers are not allowed');
        }

        if ($a & 48 && $b & 48) {
            throw new Error('Cannot use the final modifier on an abstract class member');
        }
    }
}