3

V'íc¹ã@s®dZddlZddlmZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
mZmZmZmZmZmZmZmZddd	gZGd
d„deƒZGdd„deƒZGdd	„d	eƒZdS)
    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@säeZdZdZdZddddgZdgZdgZd	efd
e	j
fgedƒdej
d
fded"fed
ƒgded
fgdedfedƒdedfdedfdefdedfdejdfdejfdejfdejfdejfdejfdejfdejfdej
fgd œZd!S)#rz5
    For Awk scripts.

    .. versionadded:: 1.5
    ZAwkZawkZgawkZmawkZnawkz*.awkzapplication/x-awkz\s+z#.*$Úcommentsandwhitespacez(/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\Bú#popz(?=/)Ú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]?z0x[0-9a-fA-F]+z[0-9]+z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*')rrrÚrootN)rr)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesrr
ÚSinglerrÚRegexrrrrZDeclarationZReservedrÚBuiltinÚOtherr
ZFloatÚHexÚIntegerÚDoubleÚtokens©r+r+ú</tmp/pip-build-gk9425m9/Pygments/pygments/lexers/textedit.pyrs@


c@seZdZdZdZdddgZddgZdgZej	Z
d	Zd
defde
jfd
ejfdefdefdefdeeejƒfdeeejƒfdeeejƒfdedeeejeƒfdedeedejeƒfdededeeeejeejeƒfdededeeeejeejeeƒfg
iZdS)rz%
    Lexer for Sed script files.
    ZSedZsedZgsedZssedz*.sedz	*.[gs]sedz
text/x-sedz.((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)rz\s+z#.*$z[0-9]+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])*))rrrrrr r!r"ÚreÚ	MULTILINEÚflagsZ_inside_delimsrr
r#r
r(rrrrrr)r$r*r+r+r+r,rLs2

c@seZdZdZdZdgZdddddd	d
ddg	Zd
gZej	Z
dZddedee
eƒeeeeee
eƒeƒfdedee
eƒeee
eƒƒfdefdefdejfdejfdejfdefdefdejfdefdefdefdejfdejfd efgiZd!d"„Zd#d$„Z d%d&„Z!d'S)(rzA
    Lexer for VimL script files.

    .. versionadded:: 0.8
    ZVimLZvimz*.vimz.vimrcz.exrcz.gvimrcZ_vimrcZ_exrcZ_gvimrcZvimrcZgvimrcz
text/x-vimzpy(?:t(?:h(?:o(?:n)?)?)?)?rz^([ \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Ú.cKs8ddlm}m}m}||_||_||_tj|f|ŽdS)Nr)ÚautoÚcommandÚoption)	Zpygments.lexers._vim_builtinsr1r2r3Ú_cmdÚ_optÚ_autrÚ__init__)ÚselfÚoptionsr1r2r3r+r+r,r7œs
zVimLexer.__init__cCs´t||fƒ}|dkrd||dd|dt||ddƒ…krd||dddt|ƒ…|krddS|t|ƒkr°||d|dt||dƒ…ko®||ddt|ƒ…|kSdS)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)r8ÚwÚmappingÚpr+r+r,Úis_in¤s
, $zVimLexer.is_inccsŒx†tj||ƒD]v\}}}|tjkrx|j||jƒr>|t|fVq„|j||jƒsZ|j||jƒrj|tj	|fVq„|t
|fVq|||fVqWdS)N)rÚget_tokens_unprocessedrr&r?r4rr5r6r%r)r8ÚtextÚindexÚtokenÚvaluer+r+r,r@»s
zVimLexer.get_tokens_unprocessedN)"rrrrrr r!r"r-r.r/Z_pythonrrrrrrr	r
rr$r)r#r
r'rrr%r&r*r7r?r@r+r+r+r,ros@

)rr-rZpygments.lexerrrrrrrZpygments.lexers.pythonr	Zpygments.tokenr
rrr
rrrrrÚ__all__rrrr+r+r+r,Ú<module>	s ,
6#