B
    ë¹`À  ã               @   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	 ddl
mZmZmZmZmZmZmZmZ ddlmZ ddg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-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Úbisect)Ú
RegexLexerÚincludeÚdefaultÚbygroupsÚusingÚthis)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuation)ÚPythonLexerÚAwkLexerÚVimLexerc               @   sä   e Zd ZdZdZddddg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
    ZAwkZawkZgawkZmawkZnawkz*.awkzapplication/x-awkz\s+z#.*$Úcommentsandwhitespacez(/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\Bz#popz(?=/))z#popÚ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]+z[0-9]+z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*')r   r   r   ÚrootN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesr	   r
   ÚSingler   r   ÚRegexr   r   r   r   ZDeclarationZReservedr   ÚBuiltinÚOtherr   ZFloatÚHexZIntegerÚDoubleÚtokens© r'   r'   ú`/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/pygments/lexers/textedit.pyr      s@   


c               @   s  e Zd ZdZdZdgZdddddd	d
ddg	Zdg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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   zA
    Lexer for VimL script files.

    .. versionadded:: 0.8
    ZVimLZvimz*.vimz.vimrcz.exrcz.gvimrcZ_vimrcZ_exrcZ_gvimrcZvimrcZ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             K   s8   ddl m}m}m} || _|| _|| _tj| f|Ž d S )Nr   )ÚcommandÚoptionÚauto)	Zpygments.lexers._vim_builtinsr*   r+   r,   Ú_cmdÚ_optÚ_autr   Ú__init__)ÚselfÚoptionsr*   r+   r,   r'   r'   r(   r0   z   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)r1   ÚwÚmappingÚpr'   r'   r(   Úis_in‚   s    , $zVimLexer.is_inc             c   sŒ   x†t  | |¡D ]v\}}}|tjkrx|  || j¡r>|t|fV  q„|  || j¡sZ|  || j¡rj|tj	|fV  q„|t
|fV  q|||fV  qW d S )N)r   Úget_tokens_unprocessedr   r#   r8   r-   r   r.   r/   r"   r	   )r1   ÚtextÚindexÚtokenÚvaluer'   r'   r(   r9   ™   s    
zVimLexer.get_tokens_unprocessedN)"r   r   r   r   r   r   r   r   ÚreÚ	MULTILINEÚflagsZ_pythonr   r   r   r   r	   r   r   r
   r   r!   r%   r    r   r$   r   r   r"   r#   r&   r0   r8   r9   r'   r'   r'   r(   r   M   s@   

)r   r>   r   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr	   r
   r   r   r   r   r   r   Zpygments.lexers.pythonr   Ú__all__r   r   r'   r'   r'   r(   Ú<module>	   s    (6