� H�g3����dZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZmZddlmZmZmZgd�ZGd�de��ZGd �d e��ZGd �d e��ZdS) z� pygments.lexers.php ~~~~~~~~~~~~~~~~~~~ Lexers for PHP and related languages. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. �N) �Lexer� RegexLexer�include�bygroups�default�using�this�words� do_insertions�line_re) �Text�Comment�Operator�Keyword�Name�String�Number� Punctuation�Other�Generic)� get_bool_opt� get_list_opt�shebang_matches)� ZephirLexer�PsyshConsoleLexer�PhpLexerc��eZdZdZdZdZdgZdgZdZgd�Z gd�Z e j e j zZd efd ejfd ejfged ��d ejdfdedfed��gdedfgdedfed ��dedfdedfdefdedfdejdfdejfdejfdejfdejfde j!fde j"fde j#fdej$fd ejfgd!�Z%d"S)#rz� For Zephir language source code. Zephir is a compiled high level language aimed to the creation of C-extensions for PHP. �Zephirzhttp://zephir-lang.com/�zephirz*.zepz2.0)�fetch�echo�isset�empty)�bit�bits�string�\s+�//.*?\n� /\*.*?\*/�commentsandwhitespacez3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)�#pop�/z\nz ^(?=\s|/)�slashstartsregexzC\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|->|[-<>+*%&|^/])=?z[{(\[;,]z[})\].]z�(for|in|while|do|break|return|continue|switch|case|default|if|else|loop|require|inline|throw|try|catch|finally|new|delete|typeof|instanceof|void|namespace|use|extends|this|fetch|isset|unset|echo|fetch|likely|unlikely|empty)\bz(var|let|with|function)\bz�(abstract|boolean|bool|char|class|const|double|enum|export|extends|final|native|goto|implements|import|int|string|interface|long|ulong|char|uchar|float|unsigned|private|protected|public|short|static|self|throws|reverse|transient|volatile|readonly)\bz(true|false|null|undefined)\bzm(Array|Boolean|Date|_REQUEST|_COOKIE|_SESSION|_GET|_POST|_SERVER|this|stdClass|range|count|iterator|window)\bz[$a-zA-Z_][\w\\]*z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*')r*r-�badregex�rootN)&�__name__� __module__� __qualname__�__doc__�name�url�aliases� filenames� version_added�zephir_keywords� zephir_type�re�DOTALL� MULTILINE�flagsr r�Single� Multilinerr�Regexrrrr� Declaration�Reserved�Constantr�Builtinrr�Float�Hex�Integer�Double�tokens���c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/pygments/lexers/php.pyrrs��������� �D� #�C��j�G�� �I��M�9�9�9�O�+�+�+�K� �I�� � $�E��T�N� ��� (� �7�,� -�" � �G�+� ,� ,��%�|�V� 5� �8�V� $� �G�F�O�O�  ��D�&� !� ��4�!3� 4� �G�+� ,� ,�4�5=�?Q� S� �+�'9� :� �� %��"�#5� 7�*�7�+>�@R� S�/�18�0@� B�.�w�/?� @���<� )�"�4�:� .� 5�v�|� D� �� � +� ��� '� (�&�-� 8� (�&�-� 8�3 �!+�+�F�F�FrLrc�0�eZdZdZdZdZdgZdZd�Zd�Z dS) ru For PsySH console output, such as: .. sourcecode:: psysh >>> $greeting = function($name): string { ... return "Hello, {$name}"; ... }; => Closure($name): string {#2371 …3} >>> $greeting('World') => "Hello, World" zPsySH console session for PHPzhttps://psysh.org/�psyshz2.7c �4�d|d<tj|fi|��dS)NT� startinline)r�__init__)�self�optionss rMrRzPsyshConsoleLexer.__init__is*��!%�� �� ��t�'�'�w�'�'�'�'�'rLc #� K�tdi|j��}d}g}tj|��D�]3}|���}|�d��s|�d��rH|�t|��dtj |dd�fgf��||dd�z }��|� ��dkr@|�t|��dtj dfgf��||dd�z }��|r-t||� |����Ed{V��d}g}|� ��tj|fV���5|r+t||� |����Ed{V��dSdS) N�z>>> z... r�z...�rK)rrTr �finditer�group� startswith�append�lenr�Prompt�rstripr �get_tokens_unprocessed�start�Output)rS�text�phplexer�curcode� insertions�match�lines rMr`z(PsyshConsoleLexer.get_tokens_unprocessedms�����+�+�d�l�+�+����� ��%�d�+�+� :� :�E��;�;�=�=�D����v�&�&� :�$�/�/�&�*A�*A� :��!�!�3�w�<�<�%&����R�a�R��$A�#B�#D�E�E�E��4����8�#��������%�'�'��!�!�3�w�<�<�%&����$>�#?�#A�B�B�B��4����8�#����$�,�"�H�$C�$C�G�$L�$L� N� N�N�N�N�N�N�N�N� �G�!#�J��k�k�m�m�W�^�T�9�9�9�9�9� � O�$�Z�%-�%D�%D�W�%M�%M�O�O� O� O� O� O� O� O� O� O� O� O� OrLN) r0r1r2r3r4r5r6r8rRr`rKrLrMrrWsY������ � � +�D� �C��i�G��M�(�(�(�O�O�O�O�OrLrc���eZdZdZdZdZgd�Zgd�ZdgZdZ dZ d Z e j e jze jzZd ejd fd efd efggdejdf�de zdzeeeejeejee��f�def�dedf�dejf�dejf�dejf�dejf�dejf�de zdzeeeej��f�def�def�def�deeee��f�d eee��d!f�d"eee��f�d#eeeee��d$f�d%e zdzeeeej ��f�d&ef�d'ej f�e!d(���d)ej"d*f�d+e zej"f�e ejf�d,e#j$f�d-e#j$f�d.e#j%f�d/e#j&f�d0e#j'f�d1e#j(f�d2ejf�d3ej)f�d4ej*d5f�d6ej"dfe!d ��ge+d7d8�9��ej,j-fge+d:d8�9��ej fge ej.dfge!d;��e ej,dfe/d��gd4ej*dfd<ej*fd=ej0fd>e zd?ze zd@zej1fdAeej1e2e3dB�C��ej1��fdDeej1e2e3dB�C��ej1��fdEeej1ej"ej1��fdFej*fgdGedfdHedIfe ej4fe!d ��gdJedfe!d ��gdK� Z5dL�Z6dM�Z7dN�Z8dOS)Pra; For PHP source code. For PHP embedded in HTML, use the `HtmlPhpLexer`. Additional options accepted: `startinline` If given and ``True`` the lexer starts highlighting with php code (i.e.: no starting ``<?php`` required). The default is ``False``. `funcnamehighlighting` If given and ``True``, highlight builtin function names (default: ``True``). `disabledmodules` If given, must be a list of module names whose function names should not be highlighted. By default all modules are highlighted except the special ``'unknown'`` module that includes functions that are known to php but are undocumented. To get a list of allowed modules have a look into the `_php_builtins` module: .. sourcecode:: pycon >>> from pygments.lexers._php_builtins import MODULES >>> MODULES.keys() ['PHP Options/Info', 'Zip', 'dba', ...] In fact the names of those modules match the module names from the php documentation. �PHPzhttps://www.php.net/)�php�php3�php4�php5)z*.phpz *.php[345]z*.incz text/x-phprVz1(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*z+(?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*z <\?(php)?rkz[^<]+�<z\?>r+z(<<<)([\'"]?)(z)(\2\n.*?\n\s*)(\3)(;?)(\n)r'z#\[� attributez#.*?\nr(z/\*\*/z /\*\*.*?\*/r)z (->|::)(\s*)(�)z[~!%^&*+=|:.<>/@-]+z\?z [\[\]{}();,]+z(new)(\s+)(class)\bz (class)(\s+)� classnamez(function)(\s*)(?=\()z(function)(\s+)(&?)(\s*)� functionnamez (const)(\s+)(a(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally|match)\bz(true|false|null)\b�magicconstantsz\$\{�variablevariablez\$+z"(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?z\d+e[+-]?[0-9]+z0[0-7]+z 0x[a-f0-9]+z\d+z0b[01]+z'([^'\\]*(?:\\.[^'\\]*)*)'z`([^`\\]*(?:\\.[^`\\]*)*)`�"r&z\})� __construct� __destruct�__call� __callStatic�__get�__set�__isset�__unset�__sleep�__wakeup� __toString�__invoke� __set_state�__clone� __debugInfoz\b)�suffix)�__LINE__�__FILE__�__DIR__� __FUNCTION__� __CLASS__� __TRAIT__� __METHOD__� __NAMESPACE__� magicfuncsz [^{$"\\]+z'\\([nrt"$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})z\$z (\[\S+?\]|->z)?z(\{\$\{)(.*?)(\}\})T)� _startinlinez(\{)(\$.*?)(\})z(\$\{)(\S+)(\})z[${\\]z\]z\(�attributeparamsz\)) r/rkrur�rtrrrsr&rpr�c ��t|dd��|_t|ddg��|_t|dd��|_d|vr|�d��|_t ��|_|jrCdd lm }|� ��D](\}}||jvr|j� |���)tj |fi|��dS) N�funcnamehighlightingT�disabledmodules�unknownrQFr�r)�MODULES)rr�rr�rQ�pop�set� _functions�pygments.lexers._php_builtinsr��items�updaterrR)rSrTr��key�values rMrRzPhpLexer.__init__(s���$0� �+�T�%3�%3��!�+� �&�� � 5� 5���'����F�F��� �W� $� $�&�{�{�>�:�:�D� ��%�%��� � $� 2� =� =� =� =� =� =�%�m�m�o�o� 2� 2� ��U��d�2�2�2��O�*�*�5�1�1�1����D�,�,�G�,�,�,�,�,rLc#��K�dg}|jr|�d��tj|||��D]6\}}}|tjur||jvr|tj|fV��/|||fV��7dS)Nr/rk)rQr\rr`rrr�rE)rSrc�stack�index�tokenr�s rMr`zPhpLexer.get_tokens_unprocessed<s�������� � � � �L�L�� � � ��1�$��e�D�D� &� &� �E�5�%��� �"�"��D�O�+�+����u�4�4�4�4�����%� %� %� %� %�  &� &rLc�b�t|d��rdSd}tjd|��r|dz }|S)NrkTgz <\?(?!xml)g333333�?)rr;�search)rc�rvs rM� analyse_textzPhpLexer.analyse_textHs@�� �4�� (� (� ��4� �� �9�]�D� )� )� � �#�I�B�� rLN)9r0r1r2r3r4r5r6r7� mimetypesr8� _ident_inner� _ident_nonsr;� IGNORECASEr<r=r>r�Preprocrrr� Delimiterrr r?r@�Docrr� AttributerrDr�VariablerrF�OctrGrH�Bin�BacktickrIr �Function�Magic�Classr�Escape�Interpolrr � DecoratorrJrRr`r�rKrLrMrr�s���������@ �D� �C�-�-�-�G�0�0�0�I���I��M�H�L�@�K� �M�B�I� %�� � 4�E��7�?�E� 2� �u� � �5�M� � 3 � �W�_�f� -�3 � �� ,�/M� M� �X�f�f�f�&6���@P�!�4�)�)� *�3 � �T�N� 3 � �[�+� .� 3 ���� '�3 ���� (�3 ���)� *�3 ��V�Z� (�3 ��7�,� -�3 �� � +�c� 1� �X�h��d�n� 5� 5� 7�3 � $�X� .�!3 �"�H� �#3 �$�{� +�%3 �&$�X�X�g�t�W�%E�%E� F�'3 �(�h�h�w��5�5�{� C�)3 �*&�x�x���'>�'>� ?�+3 �,)� �X�g�t�X�t� 4� 4�n� F�-3 �0� � ,�s� 2� �X�g�t�T�]� 3� 3� 5�13 �4 !�#*� +�53 �J$�W�%5� 6�K3 �L �G�$� %� %�M3 �N�d�m�%7� 8�O3 �P�l� "�D�M� 2�Q3 �R�4�:� &�S3 �T3�F�L� A�U3 �V ��� .�W3 �X��� $�Y3 �Z�V�Z� (�[3 �\�V�^� $�]3 �^��� $�_3 �`+�F�M� :�a3 �b+�F�O� <�c3 �d�6�=�(� +�e3 �j�D�M�6� *� �G�E�N�N� � �U�:�CH�I�I�I��]� �  "� ��U�=������]�  � ��4�:�v� .� � �G�L� !� !� �4�=�&� 1� �G�F�O�O� � �6�=�&� )� �6�=� )� 7��� G� �[� �?� 2�[� @�4� G� �_� � #� �X�f�o�u�u�T��'E�'E�'E��o�'�'� (� � �X�f�o�u�u�T��'E�'E�'E��o�'�'� (� � �X�f�o�t�}�f�o� F� F� H� �� � &� �"�K�� (� �K�!2� 3� �4�>� *� �G�E�N�N�  ��K�� (� �G�E�N�N� �Yp�p�F�d-�-�-�( &� &� &�����rLr) r3r;�pygments.lexerrrrrrrr r r r �pygments.tokenr rrrrrrrrr� pygments.utilrrr�__all__rrrrKrLrM�<module>r�s����� � � � �/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�E�E�E�E�E�E�E�E�E�E� :� :� :��>�>�>�>�>�*�>�>�>�B-O�-O�-O�-O�-O��-O�-O�-O�`G�G�G�G�G�z�G�G�G�G�GrL
Memory