Ë
    !täis3  ã                   óÎ   — d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZ g d¢Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Zy)zÓ
    pygments.lexers.php
    ~~~~~~~~~~~~~~~~~~~

    Lexers for PHP and related languages.

    :copyright: Copyright 2006-present 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                   ó4  — e Zd ZdZdZdZdgZdgZdZg d¢Z	g d¢Z
ej                  ej                  z  Zd	efd
ej"                  fdej$                  fg ed«      dej*                  dfdedf ed«      gdedfgdedf ed«      dedfdedfdefdedfdej4                  dfdej6                  fdej8                  fdej<                  fdej>                  fde jB                  fde jD                  fde jF                  fdejH                  fd ej"                  fgd!œZ%y")#r   z‹
    For Zephir language source code.

    Zephir is a compiled high level language aimed
    to the creation of C-extensions for PHP.
    ÚZephirzhttp://zephir-lang.com/Úzephirz*.zepz2.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]?z0x[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Ú	Multiliner   r   ÚRegexr   r   r   r   ÚDeclarationÚReservedÚConstantr   ÚBuiltinr   r   ÚFloatÚHexÚIntegerÚDoubleÚtokens© ó    úb/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/php.pyr   r      s›  „ ñð €DØ
#€CØˆj€GØ�	€IØ€Mâ9€OÚ+€Kà�I‰I˜Ÿ™Ñ$€Eð �TˆNØ˜Ÿ™Ð(Ø˜7×,Ñ,Ð-ð"
ñ Ð+Ó,ðØ%Ÿ|™|¨Vð5à�8˜VÐ$Ù�F‹Oð
ð �D˜&Ð!ð
ð ˜4Ð!3Ð4ÙÐ+Ó,ð4Ø5=Ð?QðSà˜+Ð'9Ð:Ø˜Ð%ðð "Ð#5ð7ð *¨7×+>Ñ+>Ð@RÐSð/ð 18×0@Ñ0@ðBð .¨w×/?Ñ/?Ð@ðàŸ<™<ð)ð " 4§:¡:Ð.Ø5°v·|±|ÐDØ §
¡
Ð+Ø˜Ÿ™Ð'Ø(¨&¯-©-Ð8Ø(¨&¯-©-Ð8ð3
ñ!+�FrL   r   c                   ó.   — e Zd ZdZdZdZdgZdZd„ Zd„ Z	y)	r   u  
    For PsySH console output, such as:

    .. sourcecode:: psysh

        >>> $greeting = function($name): string {
        ...     return "Hello, {$name}";
        ... };
        => Closure($name): string {#2371 â€¦3}
        >>> $greeting('World')
        => "Hello, World"
    zPsySH console session for PHPzhttps://psysh.org/Úpsyshz2.7c                 ó:   — d|d<   t        j                  | fi |¤Ž y )NTÚstartinline)r   Ú__init__)ÚselfÚoptionss     rM   rR   zPsyshConsoleLexer.__init__i   s   € Ø!%ˆ�ÑÜ�‰�tÑ'˜wÓ'rL   c           	   #   óÎ  K  — t        di | j                  ¤Ž}d}g }t        j                  |«      D �]  }|j	                  «       }|j                  d«      s|j                  d«      r:|j                  t        |«      dt        j                  |d d fgf«       ||dd  z  }Œp|j                  «       dk(  r7|j                  t        |«      dt        j                  dfgf«       ||dd  z  }Œº|r't        ||j                  |«      «      E d {  –—†  d}g }|j                  «       t        j                  |f–— �Œ |r$t        ||j                  |«      «      E d {  –—†  y y 7 ŒU7 Œ­w)	NÚ z>>> z... r   é   z...é   rK   )r   rT   r   ÚfinditerÚgroupÚ
startswithÚappendÚlenr   ÚPromptÚrstripr   Úget_tokens_unprocessedÚstartÚOutput)rS   ÚtextÚphplexerÚcurcodeÚ
insertionsÚmatchÚlines          rM   r`   z(PsyshConsoleLexer.get_tokens_unprocessedm   si  è ø€ ÜÑ+˜dŸl™lÑ+ˆØˆØˆ
Ü×%Ñ% d×+ˆEØ—;‘;“=ˆDØ�‰˜vÔ&¨$¯/©/¸&Ô*AØ×!Ñ!¤3 w£<Ø%&¬¯©¸¸R¸a¸Ð$AÐ#Bð#Dô Eà˜4  ˜8Ñ#‘Ø—‘“ %Ò'Ø×!Ñ!¤3 w£<Ø%&¬¯©¸Ð$>Ð#?ð#Aô Bà˜4  ˜8Ñ#‘áÜ,Ø" H×$CÑ$CÀGÓ$Ló N÷ Nð Nà �GØ!#�JØ—k‘k“m¤W§^¡^°TÐ9Ô9ð! ,ñ" Ü$ ZØ%-×%DÑ%DÀWÓ%MóO÷ Oñ Oð ðNøðOús%   ‚D	E%ÄE!ÄAE%ÅE#ÅE%Å#E%N)
r0   r1   r2   r3   r4   r5   r6   r8   rR   r`   rK   rL   rM   r   r   W   s*   „ ñð +€DØ
€CØˆi€GØ€Mò(óOrL   r   c                   ó   — e Zd ZdZdZdZg d¢Zg d¢ZdgZdZ	dZ
d	Zej                  ej                  z  ej                  z  Zd
ej$                  dfdefdefgg dej$                  df‘dez   dz    eeeej,                  eej,                  ee«      f‘def‘dedf‘dej2                  f‘dej2                  f‘dej4                  f‘dej6                  f‘dej4                  f‘dez   dz    eeeej<                  «      f‘def‘def‘def‘d eeee«      f‘d  eee«      d!f‘d" eee«      f‘d# eeeee«      d$f‘d%e
z   dz    eeeej@                  «      f‘d&ef‘d'ej@                  f‘ e!d(«      ‘d)ejD                  d*f‘d+e
z   ejD                  f‘e
ej&                  f‘d,e#jH                  f‘d-e#jH                  f‘d.e#jJ                  f‘d/e#jL                  f‘d0e#jN                  f‘d1e#jP                  f‘d2ej2                  f‘d3ejR                  f‘d4ejT                  d5f‘d6ejD                  df e!d«      g e+d7d8¬9«      ejX                  jZ                  fg e+d:d8¬9«      ej@                  fge
ej\                  dfg e!d;«      e
ejX                  df e/d«      gd4ejT                  dfd<ejT                  fd=ej`                  fd>ez   d?z   ez   d@z   ejb                  fdA eejb                   e2e3dB¬C«      ejb                  «      fdD eejb                   e2e3dB¬C«      ejb                  «      fdE eejb                  ejD                  ejb                  «      fdFejT                  fgdGedfdHedIfe
ejh                  f e!d«      gdJedf e!d«      gdKœ
Z5dL„ Z6dM„ Z7dN„ Z8yO)Pr   a;  
    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.
    ÚPHPzhttps://www.php.net/)ÚphpÚphp3Úphp4Úphp5)z*.phpz
*.php[345]z*.incz
text/x-phprV   z1(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*z+(?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*z	<\?(php)?rk   z[^<]+Ú<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( from)?|finally|match|readonly)\bz(true|false|null)\bÚmagicconstantsz\$\{Úvariablevariablez\$+z"(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?z\d+e[+-]?[0-9]+z0[0-7]+z0x[a-f0-9]+z\d+z0b[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__Ú__PROPERTY__Ú
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/   rk   ru   r�   rt   rr   rs   r&   rp   r’   c                 ó˜  — t        |dd«      | _        t        |ddg«      | _        t        |dd«      | _        d|v r|j                  d«      | _        t        «       | _        | j                  rHdd	lm	} |j                  «       D ]/  \  }}|| j                  vsŒ| j                  j                  |«       Œ1 t        j                  | fi |¤Ž y )
NÚfuncnamehighlightingTÚdisabledmodulesÚunknownrQ   Fr‘   r   )ÚMODULES)r   r”   r   r•   rQ   ÚpopÚsetÚ
_functionsÚpygments.lexers._php_builtinsr—   ÚitemsÚupdater   rR   )rS   rT   r—   ÚkeyÚvalues        rM   rR   zPhpLexer.__init__)  sº   € Ü$0ØÐ+¨Tó%3ˆÔ!ä+ØÐ&¨¨ó 5ˆÔä'¨°ÀÓFˆÔð ˜WÑ$Ø&Ÿ{™{¨>Ó:ˆDÔô ›%ˆŒØ×$Ò$Ý=Ø%Ÿm™mžo‘
��UØ˜d×2Ñ2Ò2Ø—O‘O×*Ñ*¨5Õ1ð .ô 	×Ñ˜DÑ, GÓ,rL   c              #   ó  K  — dg}| j                   r|j                  d«       t        j                  | ||«      D ]C  \  }}}|t        j
                  u r$|| j                  v r|t        j                  |f–— Œ=|||f–— ŒE y ­w)Nr/   rk   )rQ   r\   r   r`   r   r   rš   rE   )rS   rc   ÚstackÚindexÚtokenrŸ   s         rM   r`   zPhpLexer.get_tokens_unprocessed=  s~   è ø€ Ø�ˆØ×ÒØ�L‰L˜Ôä×1Ñ1°$¸¸eÖDñ  ˆE�5˜%àœŸ
™
Ñ"Ø˜DŸO™OÑ+Ø¤§¡¨uÐ4Ò4ØØ˜ Ð%Ó%ñ Eùs   ‚A?Bc                 óZ   — t        | d«      ryd}t        j                  d| «      r|dz  }|S )Nrk   Tg        z
<\?(?!xml)g333333Ó?)r   r;   Úsearch)rc   Úrvs     rM   Úanalyse_textzPhpLexer.analyse_textI  s0   € Ü˜4 Ô(ØØˆÜ�9‰9�] DÔ)Ø�#‰IˆBØˆ	rL   N)9r0   r1   r2   r3   r4   r5   r6   r7   Ú	mimetypesr8   Ú_ident_innerÚ_ident_nonsr;   Ú
IGNORECASEr<   r=   r>   r   ÚPreprocr   r   r   Ú	Delimiterr   r   r?   r@   ÚDocr   r   Ú	Attributer   rD   r   ÚVariabler   rF   ÚOctrG   rH   ÚBinÚBacktickrI   r
   ÚFunctionÚMagicÚClassr   ÚEscapeÚInterpolr   r	   Ú	DecoratorrJ   rR   r`   r§   rK   rL   rM   r   r   ‡   sN  „ ñð@ €DØ
 €CÚ-€GÚ0€IØ�€IØ€Mð H€Là@€Kà�M‰M˜BŸI™IÑ%¨¯©Ñ4€Eð ˜7Ÿ?™?¨EÐ2Ø�uÐØ�5ˆMð
ð
4
Ø�W—_‘_ fÐ-ð4
à Ñ,Ð/MÑMÙ�f˜f f×&6Ñ&6¸À×@PÑ@PØ! 4ó)ð*ð4
ð
 �TˆNð4
ð �[ +Ð.ð4
ð ˜Ÿ™Ð'ð4
ð ˜Ÿ™Ð(ð4
ð ˜×)Ñ)Ð*ð4
ð ˜VŸZ™ZÐ(ð4
ð ˜7×,Ñ,Ð-ð4
ð  Ñ+¨cÑ1Ù�h  d§n¡nÓ5ð7ð4
ð  $ XÐ.ð!4
ð" �HÐð#4
ð$ ˜{Ð+ð%4
ð& $¡X¨g°t¸WÓ%EÐFð'4
ð( ™h w°Ó5°{ÐCð)4
ð* &¡x°¸Ó'>Ð?ð+4
ð, )Ù�g˜t X¨tÓ4°nðFð-4
ð0  Ñ,¨sÑ2Ù�g˜t T§]¡]Ó3ð5ð14
ð6
*ð ,3ð
4ð74
ðL $ W×%5Ñ%5Ð6ðM4
ñN Ð$Ó%ðO4
ðP �d—m‘mÐ%7Ð8ðQ4
ðR �lÑ" D§M¡MÐ2ðS4
ðT ˜4Ÿ:™:Ð&ðU4
ðV 3°F·L±LÐAðW4
ðX   §¡Ð.ðY4
ðZ ˜Ÿ™Ð$ð[4
ð\ ˜VŸZ™ZÐ(ð]4
ð^ �V—^‘^Ð$ð_4
ð` ˜Ÿ™Ð$ða4
ðb +¨F¯M©MÐ:ðc4
ðd +¨F¯O©OÐ<ðe4
ðf �6—=‘= (Ð+ðg4
ðl �D—M‘M 6Ð*Ù�E‹Nð
ñ ð :ð CHôIð �]‰]× Ñ ð	"ð
ñ ð Mð ôð �]‰]ð	ð
ð ˜4Ÿ:™: vÐ.ð
ñ �LÓ!Ø˜4Ÿ=™=¨&Ð1Ù�F‹Oð
ð �6—=‘= &Ð)Ø˜6Ÿ=™=Ð)Ø7¸¿¹ÐGØ�[Ñ  ?Ñ2°[Ñ@À4ÑGØ�_‰_ðà#Ù�f—o‘o¡u¨TÀÔ'EØ—o‘oó'ð(ð  Ù�f—o‘o¡u¨TÀÔ'EØ—o‘oó'ð(ð  Ù�f—o‘o t§}¡}°f·o±oÓFðHà˜Ÿ™Ð&ð
ð" �K Ð(Ø�KÐ!2Ð3Ø˜4Ÿ>™>Ð*Ù�E‹Nð	
ð �K Ð(Ù�E‹Nð
ñ[q€Fòf-ò(
&órL   r   ) r3   r;   Úpygments.lexerr   r   r   r   r   r   r	   r
   r   r   Úpygments.tokenr   r   r   r   r   r   r   r   r   r   Úpygments.utilr   r   r   Ú__all__r   r   r   rK   rL   rM   Ú<module>r¾      sb   ðñó 
÷/÷ /÷ /÷(÷ (÷ (ç EÑ Eâ
:€ô>�*ô >ôB-O˜ô -Oô`Hˆzõ HrL   