§
    £E±c¹  ã                   óÒ   — 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dS )zå
    pygments.lexers.textedit
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for languages related to text processing.

    :copyright: Copyright 2006-2022 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                   ód  — 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j        fdej        fdej        fdej        fdej
        fgdœZdS )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      sk  € € € € € ðð ð €DØ-Ð-Ð-€GØ�	€IØ$Ð%€Ið �TˆNØ�g”nÐ%ð"
ð
 ˆGÐ+Ñ,Ô,ðØ”L &ð*à�tÐ1Ð2ØˆG�F‰OŒOð
ð �D˜&Ð!ð
ð ˜4Ð!3Ð4ØˆGÐ+Ñ,Ô,ð(Ø)1Ð3EðGà˜+Ð'9Ð:Ø˜Ð%ðØ"Ð$6ð8à˜GÔ/Ð1CÐDð!ð #*Ô"2ð4ð$à%)¤\ð3ð ˜tœzÐ*Ø5°v´|ÐDØ ¤
Ð+Ø˜œÐ'Ø(¨&¬-Ð8Ø(¨&¬-Ð8ð-
ð'ð '€F€F€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dS )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   s•  € € € € € ðð ð €DØ%Ð%Ð%€GØ˜+Ð&€IØ�€IØŒL€Eð G€Nð 	Ø�ZÐ Ø�g”nÐ%Ø˜œÐ'Ø�HÐØ˜Ð%Ø# WÐ-Ø'¨¨°'¸6¼=Ñ)IÔ)IÐJØ2°H°H¸WÀfÄmÑ4TÔ4TÐUØ  ¨°&´.Ñ AÔ AÐBØ�nÑ$ vÑ-¨x¨x¸ÀVÄ\ÐS^Ñ/_Ô/_Ð`Ø˜.Ñ(¨7Ñ2ØˆX�k 4¨¬°{ÑCÔCðEà˜Ñ'¨'Ñ1°NÑBÀWÑLØˆX�g˜{¨F¬M¸;ÈÌÐWbÑcÔcðeà˜Ñ'¨'Ñ1°NÑBÐEbÑbØˆX�g˜{¨F¬L¸+ÀvÄ}ÐVaØñô ð ð
ð€F€F€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j        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!dS )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                 óh   — ddl m}m}m} || _        || _        || _        t          j        | fi |¤Ž d S )Nr   )ÚautoÚcommandÚoption)	Úpygments.lexers._vim_builtinsrN   rO   rP   Ú_cmdÚ_optÚ_autr   Ú__init__)ÚselfÚoptionsrN   rO   rP   s        r:   rU   zVimLexer.__init__œ   sT   € ØGÐGÐGÐGÐGÐGÐGÐGÐGÐGØˆŒ	ØˆŒ	ØˆŒ	åÔ˜DÐ,Ð, GÐ,Ð,Ð,Ð,Ð,r9   c                 óØ  — t          ||f¦  «        }|dk    re||dz
           d         |dt          ||dz
           d         ¦  «        …         k    r,||dz
           d         dt          |¦  «        …         |k    rdS |t          |¦  «        k     rZ||         d         |dt          ||         d         ¦  «        …         k    o&||         d         dt          |¦  «        …         |k    S dS )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ˆ5Ø�q˜‘sŒ|˜AŒ !Ð$9¥S¨°°1±¬°a¬Ñ%9Ô%9Ð$9Ô":Ò:Ð:Ø�q˜‘sŒ|˜AŒ˜w¥ A¡¤˜wÔ'¨1Ò,Ð,Ø�tØ�s�7‰|Œ|ÒÐØ˜1”:˜a”= AÐ&9¥s¨7°1¬:°a¬=Ñ'9Ô'9Ð&9Ô$:Ò:ð ,Ø˜”
˜1”˜g�s 1™vœv˜gÔ&¨!Ò+ð,àˆur9   c              #   óf  K  — t          j        | |¦  «        D ]˜\  }}}|t          j        u r}|                      || j        ¦  «        r|t          |fV — Œ<|                      || j        ¦  «        s|                      || j        ¦  «        r|t          j	        |fV — Œ„|t          |fV — Œ‘|||fV — Œ™d S )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°$¸Ñ=Ô=ð	*ð 	*ÑˆE�5˜%à�œ
Ð"Ð"Ø—:’:˜e T¤YÑ/Ô/ð -Ø¥¨%Ð/Ð/Ð/Ð/Ð/Ø—Z’Z  t¤yÑ1Ô1ð -ØŸ
š
 5¨$¬)Ñ4Ô4ð-à¥¤¨uÐ4Ð4Ð4Ð4Ð4à¥ uÐ,Ð,Ð,Ð,Ð,à˜U EÐ)Ð)Ð)Ð)Ð)ð	*ð 	*r9   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   s’  € € € € € ðð ð
 €DØˆg€GðBð Bð B€Ià�€IØŒL€Eà+€Gð 	Ø˜gÑ%Ð(SÑSØˆX�e�e˜D‘k”k 7¨D°(¸DÀ$Ø�e˜KÑ(Ô(¨$ñ0ô 0ð1ð ˜gÑ%¨Ñ7ØˆX�e�e˜D‘k”k 7¨D°%°%¸Ñ2DÔ2DÑEÔEðGð ˜Ð!à˜Ðà1°6´<Ð@Ø1°6´=ÐAØ'¨¬Ð7ð & wÐ/Ø�vÐØ˜fœ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      s}  ððð ð 
€	€	€	Ø Ð Ð Ð Ð Ð à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ .Ð .Ð .Ð .Ð .Ð .ð*ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð /Ð
.Ð
.€ð3ð 3ð 3ð 3ð 3ˆzñ 3ô 3ð 3ðl!ð !ð !ð !ð !ˆzñ !ô !ð !ðF[*ð [*ð [*ð [*ð [*ˆzñ [*ô [*ð [*ð [*ð [*r9   