a
    ñ»j�  ã                   @   s°   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	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	„ d	eƒZG d
d„ deƒZG dd„ deƒZdS )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Úwords)ÚPythonLexer)	ÚCommentÚKeywordÚNameÚNumberÚOperatorÚPunctuationÚStringÚTextÚ
Whitespace)ÚAwkLexerÚSedLexerÚVimLexerc                   @   sè   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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   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© r9   r9   ú>E:\soccer\ml_env\Lib\site-packages\pygments/lexers/textedit.pyr      sX   þÿûÿÿÿ
ýþêñr   c                   @   s  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jƒfdeeejƒfde d eeejeƒfde d eedejeƒfde d e d eeeejeejeƒfde d e d 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!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ÚflagsZ_inside_delimsr   r   r.   r   r6   r   r   r   r   r   r7   r/   r8   r9   r9   r9   r:   r   L   sB   
ÿÿÿÿñÿr   c                   @   s  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 d eeeƒeeeeeeeƒeƒfd
e d 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edddd�efdejfdej fdefgiZ!dd„ Z"dd „ Z#d!d"„ Z$d#S )$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]*)(.*)([\s\S]*)(\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[()<>+=!|,~-])ÚabortZcatchÚconstZechoÚelseZelseifZendforÚendifrM   ZendfunctionZendwhileÚevalÚexecuteÚforÚfunctionÚifÚinZletÚreturnÚsetZsetgZsetlÚthrowZunletZunsetÚwhilez\b)ÚsuffixÚprefixz+\b(NONE|bold|italic|underline|dark|light)\bz\b\w+\bÚ.c                 K   s<   ddl m}m}m} || _|| _|| _tj| fi |¤Ž d S )Nr   )ÚautoÚcommandÚoption)	Zpygments.lexers._vim_builtinsr[   r\   r]   Ú_cmdÚ_optÚ_autr   Ú__init__)ÚselfÚoptionsr[   r\   r]   r9   r9   r:   ra   £   s
    zVimLexer.__init__c                 C   s´   t ||fƒ}|dkrd||d  d |dt||d  d ƒ… krd||d  d dt|ƒ… |krddS |t|ƒk r°|| 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)rb   ÚwÚmappingÚpr9   r9   r:   Úis_in«   s    ,ÿ$ÿzVimLexer.is_inc                 c   sˆ   t  | |¡D ]v\}}}|tju rv|  || j¡r<|t|fV  q‚|  || j¡sX|  || j¡rh|tj	|fV  q‚|t
|fV  q|||fV  qd S )N)r   Úget_tokens_unprocessedr   r3   ri   r^   r   r_   r`   r2   r   )rb   ÚtextÚindexÚtokenÚvaluer9   r9   r:   rj   Â   s    
ÿ
ÿzVimLexer.get_tokens_unprocessedN)%r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r@   rA   rB   Z_pythonr   r   r   r   r   r   r
   r   r   r/   r7   r.   r   r5   r   r	   r   r2   r3   r8   ra   ri   rj   r9   r9   r9   r:   r   q   sR   
ÿÿ
ÿûûãÿ"r   )r'   r@   r   Zpygments.lexerr   r   r   r   r   r   r	   Zpygments.lexers.pythonr
   Zpygments.tokenr   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r9   r9   r9   r:   Ú<module>   s   
$,6%