U
    luf                     @   s^   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mZ dgZG dd deZdS )z
    pygments.lexers.vyper
    ~~~~~~~~~~~~~~~~~~~~~

    Lexer for the Vyper Smart Contract language.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerbygroupswords)	CommentStringNameKeywordNumberOperatorPunctuationText
Whitespace
VyperLexerc                   @   s  e Zd ZdZdZdgZdgZdZdefde	e
efdejfd	ejd
fdejdfdejdfde	eeejfde	eeejfde	eeejeeeejfdejfdejfdejfeddddefeddddejfeddddejfeddddejjfeddddejfde	eeeeejefdef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j$fd&efgd	ejd'fd(ejfd)ejfgd*ejfdejd'fd+ej%fgd,ejfdejd'fd+ej%fgd-Z&d.S )/r   zKFor the Vyper smart contract language.
    
    .. versionadded:: 2.17
    ZVyperZvyperz*.vyzhttps://vyper.readthedocs.ioz\s+z(\\)(\n|\r\n|\r)z#.*$z\"\"\"multiline-comment'single-string"double-stringz"(def)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)z9(event|struct|interface|log)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)z.(from)(\s+)(vyper\.\w+)(\s+)(import)(\s+)(\w+)z\b0x[0-9a-fA-F]+\bz\b(\d{1,3}(?:_\d{3})*|\d+)\bz\b\d+\.\d*\b)defeventpassreturnforwhileifelifelseassertraiseimportinstructZ
implementsZ	interfacefromZindexedlogz\b)prefixsuffix)publicprivateviewZpureZconstantZ	immutableZ
nonpayable)+Zbitwise_andZbitwise_notZ
bitwise_orZbitwise_xorshiftZcreate_minimal_proxy_toZcreate_copy_ofZcreate_from_blueprintZecaddZecmulZ	ecrecoverZ	keccak256sha256concatconvertZuint2strZ	extract32sliceabsceilfloormaxZ	max_valueminZ	min_valueZ
pow_mod256sqrtisqrtZuint256_addmodZuint256_mulmodZ
unsafe_addZ
unsafe_subZ
unsafe_mulZ
unsafe_divZas_wei_valueZ	blockhashemptylenZ	method_idZ_abi_encodeZ_abi_decodeprintrange)z
msg.senderz	msg.valuezblock.timestampzblock.numberzmsg.gas)6ZuintZuint8Zuint16Zuint32Zuint64Zuint128Zuint256intZint8Zint16Zint32Zint64Zint128Zint256booldecimalbytesZbytes1Zbytes2Zbytes3Zbytes4Zbytes5Zbytes6Zbytes7Zbytes8Zbytes9Zbytes10Zbytes11Zbytes12Zbytes13Zbytes14Zbytes15Zbytes16Zbytes17Zbytes18Zbytes19Zbytes20Zbytes21Zbytes22Zbytes23Zbytes24Zbytes25Zbytes26Zbytes27Zbytes28Zbytes29Zbytes30Zbytes31Zbytes32stringr   addressenumr!   z)\b(indexed)\b(\s*)(\()(\s*)(\w+)(\s*)(\))z$(\+|\-|\*|\/|<=?|>=?|==|!=|=|\||&|%)z[.,:;()\[\]{}]z@[\w.]+z__\w+__ZEMPTY_BYTES32z	\bERC20\bz\bself\bzBytes\[\d+\]z\b[a-zA-Z_]\w*\b:z\b[a-zA-Z_]\w*\bz#popz[^"]+z\"z[^\\']+z\\.z[^\\"]+)rootr   r   r   N)'__name__
__module____qualname____doc__namealiases	filenamesurlr   r   r   r   SingleZ	Multiliner   Doubler   r   ZFunctionZClass	Namespacer	   ZHexZIntegerZFloatr   ZDeclarationZBuiltinZPseudoTyper   r
   Z	DecoratorZMagicConstant	AttributeVariableZEscapetokens rQ   rQ   9/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/vyper.pyr      s   


       	
 `


N)rD   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   rQ   rQ   rQ   rR   <module>   s   
,