a
    ;@b   ã                   @   sf   d Z ddl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.nimrod
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexer for the Nim language (formerly known as Nimrod).

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚincludeÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚNimrodLexerc                   @   s,  e Zd ZdZdZddgZddgZdgZej	ej
B ejB Zdd	„ Zg d
¢Zg d¢Zg d¢Zg d¢Zdejfdefdefdefdedfdedfdedfdejdfdeeƒ ejfdedfdeeƒ efdeg d¢ƒ ejfdejfdeeƒ ejfdeeƒ ejfdefd ej d!fd"ej!d#fd$ej"d#fd%ej#d#fd&ej$d#fd'e%fd(e&fgd)ej'fdejd*fd+ejfgd,ej(fd-efd.efd/efgd0ej'fded*fe)d1ƒgd2ed*fd3ej'fe)d1ƒgd4ed*fe)d1ƒe)d5ƒgd6ej*d*fd7ej*d*fgd8efgd9ej fd:ej fe+d*ƒgd;ej fe+d*ƒgd<ej$j,fd=ej$fe+d*ƒgd>œZ-d?S )@r   zS
    For `Nim <http://nim-lang.org/>`_ source code.

    .. versionadded:: 1.5
    ZNimrodZnimrodZnimz*.nimz*.nimrodz
text/x-nimc                 C   s@   g }d}| D ](}|D ]}||d 7 }q|  |¡ d}qd |¡S )NÚ z_?ú|)ÚappendÚjoin)ÚwordsZnewWordsÚnewZwordZch© r   ú5lib/python3.9/site-packages/pygments/lexers/nimrod.pyÚunderscorize"   s    
zNimrodLexer.underscorize)=ZaddrÚandÚasZasmZbindÚblockÚbreakZcaseÚcastZconceptÚconstÚcontinueZ	converterZdeferÚdiscardZdistinctÚdivZdoÚelifÚelseÚendÚenumÚexceptZexportÚfinallyÚforÚfuncÚifÚinÚyieldZ	interfaceÚisÚisnotÚiteratorZletZmacroÚmethodZmixinÚmodÚnotÚnotinÚobjectZofÚorÚoutÚprocZptrÚraiseÚrefÚreturnÚshlÚshrZstaticÚtemplateÚtryÚtupleÚtypeZusingZwhenÚwhileÚxor)ZnilÚtrueZfalse)r   r4   r1   rA   r:   r;   r    r0   r*   r2   r,   r-   )ÚintZint8Zint16Zint32Zint64ÚfloatZfloat32Zfloat64ÚboolÚcharÚrangeZarrayÚseqÚsetÚstringz##.*$z#.*$z[*=><+\-/@$~&%!?|\\\[\]]z<\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;z
(?:[\w]+)"Úrdqsz"""Útdqsú"Údqsú'Úcharsz(%s)\bz(p_?r_?o_?c_?\s)(?![(\[\]])Úfuncname)ÚfromÚimportr   z(v_?a_?r)\bz&\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*z![0-9][0-9_]*(?=([e.]|\'f(32|64))))úfloat-suffixúfloat-numberz0x[a-f0-9][a-f0-9_]*ú
int-suffixz0b[01][01_]*z0o[0-7][0-7_]*z[0-9][0-9_]*z\s+z.+$z-\\([\\abcefnrtvl"\']|x[a-f0-9]{2}|[0-9]{1,3})z#popÚ.z(?<!\$)\$(\d+|#|\w+)+z[^\\\'"$\n]+z[\'"\\]z\$z0\\([\\abcefnrtvl"\']|\n|x[a-f0-9]{2}|[0-9]{1,3})Ústringsz"(?!")z""z"""(?!")Únlz$((?![\d_])\w)(((?!_)\w)|(_(?!_)\w))*z`.+`z\nz\.(?!\.)[0-9_]*ze[+-]?[0-9][0-9_]*z
\'f(32|64)z
\'i(32|64)z	\'i(8|16))ÚrootrP   rX   rN   rK   rL   rQ   rY   rU   rT   rV   N).Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesZ	mimetypesÚreÚ	MULTILINEÚ
IGNORECASEÚUNICODEÚflagsr   ÚkeywordsZkeywordsPseudoZopWordsÚtypesr
   ZDocr   r   r   ZCharZWordr   Ú	NamespaceZDeclarationÚTypeZPseudor	   r   ZFloatZHexZBinZOctZIntegerr   r   ZEscapeZInterpolr   ZFunctionr   ZLongÚtokensr   r   r   r   r      s¢   
ÿ
ÿÿ



Ý&
ýú
ÿüýý

þÿýþ
ý¬)r^   rb   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   Ú__all__r   r   r   r   r   Ú<module>   s
   
,