a
    ;@b                     @   sf   d Z ddl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gZG dd deZdS )z
    pygments.lexers.tcl
    ~~~~~~~~~~~~~~~~~~~

    Lexers for Tcl and related languages.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerincludewords)TextCommentOperatorKeywordNameStringNumber
Whitespaceshebang_matchesTclLexerc                   @   s  e Zd ZdZeddddZeddddZdZdgZdd	gZ	g d
Z
d:ddZedededdefgeeeeeedeeedeeeddedfdedfdedfdejdfdejfdefgdefd ejfd!ejfd"ejfd#ejfd$ejfd%efgd&ed'fd(ed'fd)efededgded*fed+gd,ed*fed+gd-ed*fed+gdejd.fd/ejfdejd'fgdejd.fd0ejfd-ejd'fgded'fed1ededgd,ed'fed2ededgd-ed'fed3ededgd4ed'fd5efgd6Zd7d8 Zd9S );r   z:
    For Tcl source code.

    .. versionadded:: 0.10
    )ZafterZapplyZarraybreakZcatchcontinueZelseifelseerrorevalexprforZforeachglobalif	namespaceprocrenamereturnsetZswitchZthenZtraceZunsetupdateZuplevelZupvarvariableZvwaitwhilez\b)prefixsuffix)KappendZbgerrorZbinaryZcdZchanZclockcloseconcatZddedictencodingeofexecexitZfblockedZ
fconfigureZfcopyfileZ	fileeventflushformatZgetsglobhistoryhttpZincrinfoZinterpjoinlappendZlassignZlindexZlinsertlistZllengthloadZloadTkZlrangeZlrepeatZlreplaceZlreverseZlsearchZlsetZlsortZmathfuncZmathopZmemoryZmsgcatopenpackagepidzpkg::createZpkg_mkIndexplatformzplatform::shellZputspwdZ	re_syntaxreadZrefchanZregexpregistryZregsubscanseekZsocketsourcesplitstringsubsttelltimeZtmunknownZunloadZTclZtclz*.tclz*.rvt)z
text/x-tclztext/x-script.tclzapplication/x-tcl c                 C   s4   | t d| f|tjd| fdtjd| fdtdfgS )Nparamsz	([\w.-]+)#comment)r   r	   ZBuiltinVariabler   )keyword_cmds_rebuiltin_cmds_recontext rN   2lib/python3.9/site-packages/pygments/lexers/tcl.py_gen_command_rules0   s
    zTclLexer._gen_command_rulescommandbasicdataz\}z	-in-bracez-in-bracketz	-in-parenz\(parenz\[bracketz\{brace"rA   z(eq|ne|in|ni)\bz/!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]z\s+z0x[a-fA-F0-9]+z0[0-7]+z\d+\.\d+z\d+z\$([\w.:-]+)z([\w.,@:-]+);#popz\nz(else|elseif|then)\b)rY   rY   rG   z\)z\]string-squarez(?s)(\\\\|\\[0-7]+|\\.|[^"\\])z$(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])command-in-bracecommand-in-parencommand-in-bracketz	.*[^\\]\nz.*\\\n)rootrQ   r[   r]   r\   rR   rS   rG   zparams-in-bracezparams-in-parenzparams-in-bracketrA   rZ   rV   rT   rU   rI   c                 C   s
   t | dS )Nz(tcl)r   )textrN   rN   rO   analyse_text   s    zTclLexer.analyse_textN)rF   )__name__
__module____qualname____doc__r   rK   rL   namealiases	filenamesZ	mimetypesrP   r   r   r
   Doubler   ZWordr   r   ZHexZOctZFloatZIntegerr	   rJ   r   r   tokensr`   rN   rN   rN   rO   r      s   	


	




WN)rd   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   Zpygments.utilr   __all__r   rN   rN   rN   rO   <module>   s
   
(