�
H�g� � �t � d Z ddlmZmZmZ ddlmZmZmZm Z m
Z
mZmZm
Z
ddlmZ dgZ G d� de� � ZdS )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 �� � e Zd ZdZ eddd�� � Z eddd�� � ZdZdZdgZ d d
gZ
g d�ZdZd?d�Z
i d ed� � ed� � ed� � defg�d e
ee� � �d e
eed� � �d e
eed� � �d e
eed� � �ddedfdedfdedfd ej d!fd"ej fd#efg�dd$efd%ej fd&ej fd'ej fd(ej fd)ej fd*ej fd+efg�d,d-ed.fd/ed.fd0ef ed� � ed� � g�d1ded2f ed,� � g�d3d4ed2f ed,� � g�d5d6ed2f ed,� � g�d!dej d7fd8ej fd ej d.fg�d7dej d7fd9ej fd6ej d.fg�dded.f ed� � ed� � ed� � g�dd4ed.f ed� � ed� � ed� � g�dd6ed.f ed� � ed� � ed� � g�d:d;ed.fd<efg�Zd=� Zd>S )@r z
For Tcl source code.
)�after�apply�array�break�catch�continue�elseif�else�error�eval�expr�for�foreach�global�if� namespace�proc�rename�return�set�switch�then�trace�unset�update�uplevel�upvar�variable�vwait�whilez\b)�prefix�suffix)K�append�bgerror�binary�cd�chan�clock�close�concat�dde�dict�encoding�eof�exec�exit�fblocked�
fconfigure�fcopy�file� fileevent�flush�format�gets�glob�history�http�incr�info�interp�join�lappend�lassign�lindex�linsert�list�llength�load�loadTk�lrange�lrepeat�lreplace�lreverse�lsearch�lset�lsort�mathfunc�mathop�memory�msgcat�open�package�pidzpkg::create�pkg_mkIndex�platformzplatform::shell�puts�pwd� re_syntax�read�refchan�regexp�registry�regsub�scan�seek�socket�source�split�string�subst�tell�time�tm�unknown�unload�Tclz&https://www.tcl.tk/about/language.html�tclz*.tclz*.rvt)z
text/x-tclztext/x-script.tclzapplication/x-tclz0.10� c �t � | t d|z f|t j d|z fdt j d|z fdt dfgS )N�paramsz ([\w.-]+)�#�comment)r r
�Builtin�Variabler )�keyword_cmds_re�builtin_cmds_re�contexts �c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/pygments/lexers/tcl.py�_gen_command_ruleszTclLexer._gen_command_rules3 sG � �
�g�x�'�'9�:�
�d�l�H�w�,>�?�
�4�=�(�W�*<�=�
�7�I�&�
�
� �root�command�basic�dataz\}zcommand-in-bracez -in-bracezcommand-in-bracketz-in-bracketzcommand-in-parenz -in-parenz\(�parenz\[�bracketz\{�brace�"rt z(eq|ne|in|ni)\bz/!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]z\s+z0x[a-fA-F0-9]+z0[0-7]+z\d+\.\d+z\d+z
\$[\w.:-]+z\$\{[\w.:-]+\}z
[\w.,@:-]+r �;�#popz\nz(else|elseif|then)\bzparams-in-brace)r� r� zparams-in-parenz\)zparams-in-bracketz\]z
string-squarez(?s)(\\\\|\\[0-7]+|\\.|[^"\\])z$(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])r� z .*[^\\]\nz.*\\\nc �"