File: //opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/__pycache__/tact.cpython-310.pyc
o
;j<* � @ s^ d Z ddlmZmZmZmZ ddlmZmZm Z m
Z
mZmZm
Z
mZ dgZG dd� de�ZdS )z�
pygments.lexers.tact
~~~~~~~~~~~~~~~~~~~~
Lexers for Tact.
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�include�bygroups�words)�Comment�Operator�Keyword�Name�String�Number�
Whitespace�Punctuation� TactLexerc @ sP e Zd ZdZdZdgZdgZdZdZi dde fd e
fd
efed�ed�ed
�ed�ed�ed�ed�ed�g�dde
e
ee �dfg�dde
dfed�ed�de fg�d
de
e
e�dfg�ded�ed�ed�de fg�ded�dejfde
e
eje
�fde
e
eje
�fg�dde
d fg�d d!e
d"fed�ed#�g�dd$ed%fg�d%ed�d&efdejfed'�de fd(e
fg�d'de
d)fg�d)d!e
d"fed�ed*�ed+�ed,�ed�ed�ed#�de fg �d#dejd-fg�d-de
dfed�ed.�ed/�g�dd0ed1fg�d1d2e
dfd3efed4d5d6�efd7ejfed�ed.�ed/�de fg�d*d8ed9fg�i d9d:e
dfed�ed;�ed<�de fg�d+d=ed>fg�d>d:e
dfed�ed;�ed<�g�d,d?ed@fg�d@d:e
dfed�ed;�ed<�g�ddAedBfg�dBdCe
dfdDefdEefdFejfedG�dHe
fg�dGed�ed;�ed.�ed<�de fg�d;dIe
dJfg�dJdKe
dfed�ed�ed.�dLe
ejjej�fd(e
fde fg�d<de
dMfg�dMd!e
dfed�g�ded�ed<�edN�g�ddOe
ejee
�dPfg�dPdKe
dfedQ�de fg�dQdRejjfg�dNed�ed.�edS�edT�ed�edU�edV�edW�g��i dWdXe
eje e
�dYfg�dYdZe
dfed�ed[�de fd(e
fg�d[d\e
eje e
�d]fg�d]d^e
dfed�edN�de fg�d/d_ed`fg�d`dae
dfed�edN�de fg�d.dbe
e
e �dcfg�dcdde
dfed�ede�edf�dgefdejfde fg�dfdhe
difg�didje
dfed�ede�dejfde fd(e
fg�dedke
ee �dlfg�dldme
dfed�dejfde fg�dSednd5d5do�efdpefedqd5d5do�ejfg�ddredsfg�dsdredfdtejfduejfg�dTdvejfdwejfg�ddxe j!fdye j"dzfg��d{e j"dfd|e j"fd}e j"fgd~ejfgdejfgd���Z#d�S )�r zFor Tact source code.ZTactZtactz*.tactzhttps://tact-lang.orgz2.18�rootz\s+z
[.;(),\[\]{}]z\?|!!Zcommentsz import-inz struct-inzcontract-or-trait-inz
annotation-inzfun-declaration-inzconst-declaration-inZ
statementsz(((?<=\.\.\.)|(?<![.$]))\b(import)\b(\s*)�import�;z#popz string-inz+((?<=\.\.\.)|(?<![.$]))\b(struct|message)\b�structz
struct-headerzstruct-body-inz\b\w+z/(\()((?:\b0[xX])[0-9a-fA-F][0-9a-fA-F_]*\b)(\))z(\()((?:\b[0-9]+\b))(\))z\{zstruct-bodyz\}z#pop:2zfield-declaration-inz+((?<=\.\.\.)|(?<![.$]))\b(contract|trait)\bzcontract-or-trait�withzcontract-or-trait-body-in�,zcontract-or-trait-bodyzinit-declaration-inzreceive-declaration-inzbounce-declaration-inzfield-declarationztype-annotation-inzvariable-init-inzT(?=\b(?:(?:get|native|extends|mutates|virtual|override|inline|abstract)\s*)*const\b)zconst-declarationz(;)�const)�get�native�extends�mutates�virtual�override�inlineZabstractz\b)�suffixz\b\w+\bz(init)zinit-declarationz(?<=\})zfun-arguments-inzblock-declaration-inz(receive|exernal)zreceive-declarationz (bounced)zbounce-declarationzR(?=\b(?:(?:get|native|extends|mutates|virtual|override|inline|abstract)\s*)*fun\b)zfun-declarationz
(?<=\}|\;)�funzA\b(get|native|extends|mutates|virtual|override|inline|abstract)\bz\b[\w]+zfun-declaration-bodyz[,;]z\(z
fun-argumentsz\)z(self)|(\b[\w]+\b)zblock-declarationZexpressionsz(@)(\w+)(\()�
annotationzannotation-argumentz\w+�keywords�numeric�variable�
function-callzstruct-init-inz(\b\w+)(\s*)(\{)zstruct-initz(\})zstruct-property-inz(\b[\w]+)(\s*)(:)zstruct-propertyz (?=\}|\,)z(=)z
variable-initz(?=\}|\{|\,|\;)z(:)(\s+)ztype-annotationz(?=\{|\;|\=|\,|\))z
type-as-inztype-generic-inz\?�<ztype-generic�>z\b(as)(\s+)ztype-asz(?=\{|\;|\=|\,|\)|\>))�if�else�whileZdoZuntil�repeat�returnr r r r r r Zletr r �self�isZinitOf�mapZbouncedr �as)�prefixr z�(<=>|>=|<=|!=|==|\^>>|~>>|>>|<<|\/%|\^%|~%|\^\/|~\/|\+=|-=|\*=|\/=|~\/=|\^\/=|%=|\^%=|<<=|>>=|~>>=|\^>>=|&=|\|=|\^=|\^|=|~|\/|%|-|\*|\+|>|<|&|\||:|\?))�true�false�"�stringz\\.z[^\\"]+z%(?:\b0[xX])[0-9a-fA-F][0-9a-fA-F_]*\bz(?:\b[0-9]+\b)z//.*z/\*�comments-multilinez\*/z[^*]+z[*]z\b\w+\b(?!\s*\()(?!\s*\{)z\b\w+\b(?=\s*\()(?!\s*\{))r4 r"