o
    ;h                     @   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-2025 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                   @   sL  e Zd ZdZeddddZeddddZdZdZdgZ	d	d
gZ
g dZdZdAddZi dedededdefgdeeedeeeddeeeddeeed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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jfd,efgd-d.ed/fd0ed/fd1efededgd2ded3fed-gd4d5ed3fed-gd6d7ed3fed-gd"dejd8fd9ejfd!ejd/fgd8dejd8fd:ejfd7ejd/fgd ded/fedededgdd5ed/fedededgdd7ed/fedededgd;d<ed/fd=efgZd>d? Zd@S )Br   z
    For Tcl source code.
    )afterapplyarraybreakZcatchcontinueZelseifelseerrorevalexprforZforeachglobalif	namespaceprocrenamereturnsetswitchZthentraceZunsetupdateZuplevelZupvarvariableZvwaitwhilez\b)prefixsuffix)KappendZbgerrorbinarycdZchanclockcloseconcatZddedictencodingeofexecexitZfblockedZ
fconfigureZfcopyfileZ	fileeventflushformatZgetsglobhistoryhttpincrinfo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refchanregexpregistryZregsubscanseeksocketsourcesplitstringsubsttelltimetmunknownZunloadTclz&https://www.tcl.tk/about/language.htmltclz*.tclz*.rvt)z
text/x-tclztext/x-script.tclzapplication/x-tclz0.10 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	   BuiltinVariabler   )keyword_cmds_rebuiltin_cmds_recontext r^   F/var/www/html/venv/lib/python3.10/site-packages/pygments/lexers/tcl.py_gen_command_rules3   s
   zTclLexer._gen_command_rulesrootcommandbasicdataz\}zcommand-in-bracez	-in-bracezcommand-in-bracketz-in-bracketzcommand-in-parenz	-in-parenz\(Zparenz\[Zbracketz\{brace"rM   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.:-]+\}z
[\w.,@:-]+rV   ;#popz\nz(else|elseif|then)\bzparams-in-brace)rh   rh   zparams-in-parenz\)zparams-in-bracketz\]zstring-squarez(?s)(\\\\|\\[0-7]+|\\.|[^"\\])z$(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])rX   z	.*[^\\]\nz.*\\\nc                 C   s
   t | dS )Nz(tcl)r   )textr^   r^   r_   analyse_text   s   
zTclLexer.analyse_textN)rU   ) __name__
__module____qualname____doc__r   r[   r\   nameurlaliases	filenames	mimetypesversion_addedr`   r   r   r
   Doubler   Wordr   r   HexOctFloatIntegerr	   rZ   r   r   tokensrj   r^   r^   r^   r_   r      s    


#*.26

;

@FLRXN)rn   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   Zpygments.utilr   __all__r   r^   r^   r^   r_   <module>   s    
(