protected function parseProperty(
        ClassName $className,
        array $token,
        array &$tokens,
        AccessModifier $accessModifier,
        $isStatic,
        $source,
        $lineNumber
    ) {
        $this->typeCheck->parseProperty(func_get_args());

        $name = substr($token[1], 1);

        while ($token = next($tokens)) {
            $token = $this->normalizeToken($token);
            $source .= $token[1];
            if (';' === $token[0]) {
                break;
            }
        }

        return new PropertyDefinition(
            $className,
            $name,
            $isStatic,
            $accessModifier,
            $lineNumber,
            $source
        );
    }
protected function parseProperty(
        ClassName $className,
        array $token,
        array &$tokens,
        AccessModifier $accessModifier,
        $isStatic,
        $source,
        $lineNumber
    ) {
        $this->typeCheck->parseProperty(func_get_args());

        $name = substr($token[1], 1);

        while ($token = next($tokens)) {
            $token = $this->normalizeToken($token);
            $source .= $token[1];
            if (';' === $token[0]) {
                break;
            }
        }

        return new PropertyDefinition(
            $className,
            $name,
            $isStatic,
            $accessModifier,
            $lineNumber,
            $source
        );
    }
@param ClassName                     $className
@param tuple<integer,string,integer> $token
@param array<string|array>           &$tokens
@param AccessModifier                $accessModifier
@param boolean                       $isStatic
@param string                        $source
@param integer                       $lineNumber

@return PropertyDefinition