Ë
    |í¼e¹  ã                   ó¾   — 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-2023 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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j,                  fdej0                  fdej2                  fdej4                  fdej6                  fdej                  fgdœZy)r   z5
    For Awk scripts.

    .. versionadded:: 1.5
    ÚAwk)ÚawkÚgawkÚmawkÚnawkz*.awkzapplication/x-awkú\s+ú#.*$Úcommentsandwhitespacez(/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\Bú#popz(?=/))r    Úbadregexz\nz	^(?=\s|/)Úslashstartsregexz3\+\+|--|\|\||&&|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Ú	mimetypesr   r   ÚSingler   r   ÚRegexr   r   r   r   ÚDeclarationÚReservedr   ÚBuiltinÚOtherr   ÚFloatÚHexÚIntegerÚDoubleÚtokens© ó    ú:/usr/lib/python3/dist-packages/pygments/lexers/textedit.pyr   r      sY  „ ñð €DÚ-€GØ�	€IØ$Ð%€Ið �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ð-
ñ'�Fr9   r   c                   ó:  — e Zd ZdZdZg d¢ZddgZdg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j,                  «      fd eeej                   «      fdez   dz    eeej.                  e«      fdez   dz    eedej.                  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j.                  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.((?:(?:\\[^\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,   ÚreÚ	MULTILINEÚflagsÚ_inside_delimsr   r   r-   r   r5   r   r   r   r   r   r6   r.   r7   r8   r9   r:   r   r   L   sq  „ ñð €DÚ%€GØ˜+Ð&€IØ�€IØ�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Øóð ð
ð�Fr9   r   c                   óª  — e Zd ZdZdZdgZg d¢Zdg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j,                  fdej.                  fdefdefdej2                  fdefdefdefdej8                  fdej:                  fdefgiZd„ Zd„ Z d„ Z!y)r   zA
    Lexer for VimL script files.

    .. versionadded:: 0.8
    ÚVimLÚvim)	z*.vimz.vimrcz.exrcz.gvimrcÚ_vimrcÚ_exrcÚ_gvimrcÚvimrcÚgvimrcz
text/x-vimz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_builtinsrN   rO   rP   Ú_cmdÚ_optÚ_autr   Ú__init__)ÚselfÚoptionsrN   rO   rP   s        r:   rU   zVimLexer.__init__œ   s0   € ßGÑGØˆŒ	ØˆŒ	ØˆŒ	ä×Ñ˜DÑ, GÓ,r9   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)rV   Ú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Ð&¨!Ñ+ð,àr9   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   r2   r^   rR   r   rS   rT   r1   r   )rV   ÚtextÚindexÚtokenÚvalues        r:   r`   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@   rA   rB   Ú_pythonr   r	   r   r   r   r   r
   r   r   r.   r6   r-   r   r4   r   r   r1   r2   r7   rU   r^   r`   r8   r9   r:   r   r   o   sA  „ ñð
 €DØˆg€GòB€Ià�€IØ�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ò<-òó.*r9   r   )r(   r@   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   r8   r9   r:   ú<module>rj      sY   ðñó 
Ý ç N× NÝ .÷*÷ *õ *ò /€ô3ˆzô 3ôl!ˆzô !ôF[*ˆzõ [*r9   