�
|�e7 � �h � d Z ddlmZmZmZmZ ddlmZmZm Z m
Z
mZmZm
Z
mZmZ dgZ G d� de� Zy)z�
pygments.lexers.solidity
~~~~~~~~~~~~~~~~~~~~~~~~
Lexers for Solidity.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�bygroups�include�words) �Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�
Whitespace�
SolidityLexerc � � e Zd ZdZdZdgZdgZg ZdZ e d� e d� de
d fd
ee
ee
j � fedz dz ee
j ee
e
j � fd
ee
j ee
j � fde
f eddd�� e
j f eddd�� e
j$ fee
j f e d� defdefdefgdej. fdej0 fdej0 fgdej4 fdej. fdej8 fdej: fg e d� e d� d eeee
� fded fgd!efd"efgd#�Zy$)%r z>
For Solidity source code.
.. versionadded:: 2.5
�Solidity�solidityz*.solz�\b(address|bool|(?:(?:bytes|hash|int|string|uint)(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?))\b�
whitespace�commentsz\bpragma\s+solidity\b�pragmaz\b(contract)(\s+)([a-zA-Z_]\w*)z/(\s+)((?:external|public|internal|private)\s+)?z([a-zA-Z_]\w*)z1\b(enum|event|function|struct)(\s+)([a-zA-Z_]\w*)z,\b(msg|block|tx)\.([A-Za-z_][a-zA-Z0-9_]*)\b)%�block�break�constant�constructor�continue�contract�do�else�external�false�for�function�if�import� inherited�internal�is�library�mapping�memory�modifier�msg�new�payable�private�public�require�return�returns�struct�suicide�throw�this�true�tx�var�whilez\b)�prefix�suffix)� keccak256� constantsz[a-zA-Z_]\w*z[~!%^&*+=|?:<>/-]z
[.;{}(),\[\]]z//(\n|[\w\W]*?[^\\]\n)z/(\\\n)?[*][\w\W]*?[*](\\\n)?/z/(\\\n)?[*][\w\W]*z
("(\\"|.)*?")z
('(\\'|.)*?')z\b0[xX][0-9a-fA-F]+\bz\b\d+\bz(\^|>=|<)(\s*)(\d+\.\d+\.\d+)�;z#popz\s+z\n)�rootr r? r r N)�__name__�
__module__�__qualname__�__doc__�name�aliases� filenames� mimetypes�datatyper r
r r r �Entity�Type�Variabler �Builtinr r r r �Single� Multiliner �Doubler
�Hex�Decimal�tokens� � �:/usr/lib/python3/dist-packages/pygments/lexers/solidity.pyr r s� � �� �D��l�G�� �I��I� *�
�
�L�!��J��
%�w��9�
/�
�g�z�4�;�;�
7�
9�
�J�
J�
��
�g�l�l�J�����
G�
I� B�
�g�l�l�J��
�
�
>�
@�
<�g�F�
� &� /4�E�C� �\�\�
� �>�%��
>����M�
�w�|�|�$��K� �
�d�#�
!�8�,�
�{�+�5
�: '����7�
.��0A�0A�B�
"�G�$5�$5�6�
� �v�}�}�-�
�v�}�}�-�
%�v�z�z�2�
����(�
�
�L�!��J��
-�
�h�
�G�
4�
6�
�;��'�
� �Z� �
�J��
�_3�FrV N)rE �pygments.lexerr r r r �pygments.tokenr r r r
r r r
r r �__all__r rU rV rW �<module>r[ s: ��� @� ?�$� $� $� �
��E�J� ErV |