Ë
    !täiS  ã                   ó¾   — d Z ddlZddlmZ ddlmZmZmZmZmZm	Z	 ddl
mZ ddlmZmZmZmZmZmZ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.textedit
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for languages related to text processing.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Úbisect)Ú
RegexLexerÚbygroupsÚdefaultÚincludeÚthisÚusing)ÚPythonLexer)	ÚCommentÚKeywordÚNameÚNumberÚOperatorÚPunctuationÚStringÚTextÚ
Whitespace)ÚAwkLexerÚSedLexerÚVimLexerc                   óÆ  — e Zd ZdZdZg d¢ZdgZdgZdZdZ	de
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j(                  dfdej*                  fdej.                  fdej0                  fdej4                  fdej6                  fdej8                  fdej:                  fdej                  fgdœZy )!r   z
    For Awk scripts.
    ÚAwk)ÚawkÚgawkÚmawkÚnawkz*.awkzapplication/x-awkz!https://en.wikipedia.org/wiki/AWKz1.5ú\s+ú#.*$Úcommentsandwhitespacez(/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\Bú#popz(?=/))r    Úbadregexz\nz	^(?=\s|/)Úslashstartsregexz8\+\+|--|\|\||&&|in\b|\$|!?~|\?|:|(\*\*|[-<>+*%\^/!=|])=?z[{(\[;,]z[})\].]z3(break|continue|do|while|exit|for|if|else|return)\bz
function\bzÄ(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|length|match|split|sprintf|sub|substr|tolower|toupper|close|fflush|getline|next|nextfile|print|printf|strftime|systime|delete|system)\bz‹(ARGC|ARGIND|ARGV|BEGIN|CONVFMT|ENVIRON|END|ERRNO|FIELDWIDTHS|FILENAME|FNR|FS|IGNORECASE|NF|NR|OFMT|OFS|ORFS|RLENGTH|RS|RSTART|RT|SUBSEP)\bz[$a-zA-Z_]\w*z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+ú[0-9]+z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*')r   r"   r!   ÚrootN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr   r   ÚSingler   r   ÚRegexr   r   r   r   ÚDeclarationÚReservedr   ÚBuiltinÚOtherr   ÚFloatÚHexÚIntegerÚDoubleÚtokens© ó    úg/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/textedit.pyr   r      sc  „ ñð €DÚ-€GØ�	€IØ$Ð%€IØ
-€CØ€Mð �TˆNØ�g—n‘nÐ%ð"
ñ
 Ð+Ó,ðØ—L‘L &ð*à�tÐ1Ð2Ù�F‹Oð
ð �D˜&Ð!ð
ð ˜4Ð!3Ð4ÙÐ+Ó,ð(Ø)1Ð3EðGà˜+Ð'9Ð:Ø˜Ð%ðØ"Ð$6ð8à˜G×/Ñ/Ð1CÐDð!ð #*×"2Ñ"2ð4ð$à%)§\¡\ð3ð ˜tŸz™zÐ*Ø5°v·|±|ÐDØ §
¡
Ð+Ø˜Ÿ™Ð'Ø(¨&¯-©-Ð8Ø(¨&¯-©-Ð8ð-
ñ'�Fr;   r   c                   óB  — e Zd ZdZdZg d¢ZddgZdgZdZdZ	e
j                  Zd	Zd
defdej                   fdej$                  fdefdefdefd eeej                   «      fd eeej0                  «      fd eeej$                  «      fdez   dz    eeej2                  e«      fdez   dz    eedej2                  e«      fdez   dz   ez   dz    eeeej                   eej                   e«      fdez   dz   ez   dz    eeeej2                  eej                   ee«      fgiZy)r   z%
    Lexer for Sed script files.
    ÚSed)ÚsedÚgsedÚssedz*.sedz	*.[gs]sedz
text/x-sedz!https://en.wikipedia.org/wiki/SedÚ z.((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)r$   r   r   r#   z\$z[{};,!]z[dDFgGhHlnNpPqQxz=]z([berRtTvwW:])([^;\n]*)z"([aci])((?:.*?\\\n)*(?:.*?[^\\]$))z([qQ])([0-9]*)z(/)z(\\(.))z(\2)Nz(y)(.)z(s)(.)z(\2)((?:[gpeIiMm]|[0-9])*))r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   ÚreÚ	MULTILINEÚflagsÚ_inside_delimsr   r   r/   r   r7   r   r   r   r   r   r8   r0   r9   r:   r;   r<   r   r   L   s{  „ ñð €DÚ%€GØ˜+Ð&€IØ�€IØ
-€CØ€MØ�L‰L€Eð G€Nð 	Ø�ZÐ Ø�g—n‘nÐ%Ø˜Ÿ™Ð'Ø�HÐØ˜Ð%Ø# WÐ-Ø'©°'¸6¿=¹=Ó)IÐJØ2±H¸WÀfÇmÁmÓ4TÐUØ¡¨°&·.±.Ó AÐBØ�nÑ$ vÑ-©x¸ÀVÇ\Á\ÐS^Ó/_Ð`Ø˜.Ñ(¨7Ñ2Ù�k 4¨¯©°{ÓCðEà˜Ñ'¨'Ñ1°NÑBÀWÑLÙ�g˜{¨F¯M©M¸;ÈÏÉÐWbÓcðeà˜Ñ'¨'Ñ1°NÑBÐEbÑbÙ�g˜{¨F¯L©L¸+ÀvÇ}Á}ÐVaØóð ð
ð�Fr;   r   c                   ó²  — e Zd ZdZdZdgZg d¢ZdgZdZdZ	e
j                  ZdZd	d
ez   dz    e ee«      eeeee ee«      e«      fd
ez   dz    e ee«      ee ee«      «      fdefdefdej.                  fdej0                  fdej2                  fdefdefdej6                  fdefdefdefdej<                  fdej>                  fdefgiZ d„ Z!d„ Z"d„ Z#y)r   z&
    Lexer for VimL script files.
    ÚVimLÚvim)	z*.vimz.vimrcz.exrcz.gvimrcÚ_vimrcÚ_exrcÚ_gvimrcÚvimrcÚgvimrcz
text/x-vimzhttps://www.vim.orgz0.8zpy(?:t(?:h(?:o(?:n)?)?)?)?r$   z^([ \t:]*)(z()([ \t]*)(<<)([ \t]*)(.*)((?:\n|.)*)(\6)z)([ \t])(.*)z^\s*".*z[ \t]+z!/[^/\\\n]*(?:\\[\s\S][^/\\\n]*)*/z!"[^"\\\n]*(?:\\[\s\S][^"\\\n]*)*"z'[^\n']*(?:''[^\n']*)*'z(?<=\s)"[^\-:.%#=*].*z-?\d+z#[0-9a-f]{6}z^:z[()<>+=!|,~-]z7\b(let|if|else|endif|elseif|fun|function|endfunction)\bz+\b(NONE|bold|italic|underline|dark|light)\bz\b\w+\bÚ.c                 ón   — ddl m}m}m} || _        || _        || _        t        j                  | fi |¤Ž y )Nr   )ÚautoÚcommandÚoption)	Úpygments.lexers._vim_builtinsrQ   rR   rS   Ú_cmdÚ_optÚ_autr   Ú__init__)ÚselfÚoptionsrQ   rR   rS   s        r<   rX   zVimLexer.__init__Ÿ   s0   € ßGÑGØˆŒ	ØˆŒ	ØˆŒ	ä×Ñ˜DÑ, GÓ,r;   c                 ó,  — t        ||f«      }|dkD  r>||dz
     d   |dt        ||dz
     d   «       k(  r||dz
     d   dt        |«       |k(  ry|t        |«      k  r6||   d   |dt        ||   d   «       k(  xr ||   d   dt        |«       |k(  S y)a  
        It's kind of difficult to decide if something might be a keyword
        in VimL because it allows you to abbreviate them.  In fact,
        'ab[breviate]' is a good example.  :ab, :abbre, or :abbreviate are
        valid ways to call it so rather than making really awful regexps
        like::

            \bab(?:b(?:r(?:e(?:v(?:i(?:a(?:t(?:e)?)?)?)?)?)?)?)?\b

        we match `\b\w+\b` and then call is_in() on those tokens.  See
        `scripts/get_vimkw.py` for how the lists are extracted.
        r   é   NTF)r   Úlen)rY   ÚwÚmappingÚps       r<   Úis_inzVimLexer.is_in§   sÁ   € ô �7˜Q˜DÓ!ˆØˆqŠ5Ø�q˜‘s‰|˜A‰ !Ð$9¤S¨°°1±©°a©Ó%9Ð":Ò:Ø�q˜‘s‰|˜A‰˜w¤ A£Ð'¨1Ò,ØØŒs�7‹|ÒØ˜1‘:˜a‘= AÐ&9¤s¨7°1©:°a©=Ó'9Ð$:Ñ:ò ,Ø˜‘
˜1‘˜gœs 1›vÐ&¨!Ñ+ð,àr;   c              #   ó€  K  — t        j                  | |«      D ]¡  \  }}}|t        j                  u r‚| j	                  || j
                  «      r|t        |f–— ŒA| j	                  || j                  «      s| j	                  || j                  «      r|t        j                  |f–— Œ�|t        |f–— Œ›|||f–— Œ£ y ­w)N)r   Úget_tokens_unprocessedr   r4   ra   rU   r   rV   rW   r3   r   )rY   ÚtextÚindexÚtokenÚvalues        r<   rc   zVimLexer.get_tokens_unprocessed¾   s¢   è ø€ ô
 ×1Ñ1°$¸Ö=ñ  ˆE�5˜%àœŸ
™
Ñ"Ø—:‘:˜e T§Y¡YÔ/Ø¤¨%Ð/Ó/Ø—Z‘Z  t§y¡yÔ1ØŸ
™
 5¨$¯)©)Ô4Ø¤§¡¨uÐ4Ó4à¤ uÐ,Ó,à˜U EÐ)Ó)ñ >ùs   ‚B<B>N)$r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   rC   rD   rE   Ú_pythonr   r	   r   r   r   r   r
   r   r   r0   r8   r/   r   r6   r   r   r3   r4   r9   rX   ra   rc   r:   r;   r<   r   r   q   sK  „ ñð €DØˆg€GòB€Ià�€IØ
€CØ€Mà�L‰L€Eà+€Gð 	Ø˜gÑ%Ð(SÑSÙ‘e˜D“k 7¨D°(¸DÀ$Ù˜KÓ(¨$ó0ð1ð ˜gÑ%¨Ñ7Ù‘e˜D“k 7¨D±%¸Ó2DÓEðGð ˜Ð!à˜Ðà1°6·<±<Ð@Ø1°6·=±=ÐAØ'¨¯©Ð7ð & wÐ/Ø�vÐØ˜fŸj™jÐ)Ø�KÐ Ø˜{Ð+ØGØðà;¸T¿\¹\ÐJØ˜Ÿ™Ð$Ø�4ˆLð3
ð€Fò<-òó.*r;   r   )r(   rC   r   Úpygments.lexerr   r   r   r   r   r	   Úpygments.lexers.pythonr
   Úpygments.tokenr   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r:   r;   r<   Ú<module>rm      sY   ðñó 
Ý ç N× NÝ .÷*÷ *õ *ò /€ô3ˆzô 3ôl#ˆzô #ôJ\*ˆzõ \*r;   