o
    	È·e*  ã                   @   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-2022 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ZddgZddgZdgZe	j
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d0efgd1ej'fded+fe)d2ƒgd3ed+fd4ej'fe)d2ƒgd5ed+fe)d2ƒe)d6ƒgd7ej*d+fd8ej*d+fgd9efgd:e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 )Ar   z9
    For Nim source code.

    .. versionadded:: 1.5
    ÚNimrodzhttp://nim-lang.org/ÚnimrodÚnimz*.nimz*.nimrodz
text/x-nimc                 C   sN   g }g }| D ]}|D ]}|  |¡ |  d¡ q
|  d |¡¡ g }qd |¡S )Nz_?Ú ú|)ÚappendÚjoin)ÚwordsÚnewWordsÚnewÚwordÚch© r   úM/var/www/ideatree/venv/lib/python3.10/site-packages/pygments/lexers/nimrod.pyÚunderscorize#   s   

zNimrodLexer.underscorize)=ÚaddrÚandÚasÚasmÚbindÚblockÚbreakÚcaseÚcastÚconceptÚconstÚcontinueÚ	converterÚdeferÚdiscardÚdistinctÚdivÚdoÚelifÚelseÚendÚenumÚexceptÚexportÚfinallyÚforÚfuncÚifÚinÚyieldÚ	interfaceÚisÚisnotÚiteratorÚletÚmacroÚmethodÚmixinÚmodÚnotÚnotinÚobjectÚofÚorÚoutÚprocÚptrÚraiseÚrefÚreturnÚshlÚshrÚstaticÚtemplateÚtryÚtupleÚtypeÚusingÚwhenÚwhileÚxor)ÚnilÚtrueÚfalse)r   rI   rE   rZ   rP   rQ   r.   rD   r:   rF   r=   r>   )ÚintÚint8Úint16Úint32Úint64ÚfloatÚfloat32Úfloat64ÚboolÚcharÚrangeÚarrayÚseqÚsetÚstringz##.*$z#.*$z[*=><+\-/@$~&%!?|\\\[\]]z<\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;z
(?:[\w]+)"Úrdqsz"""Útdqsú"Údqsú'Úcharsz(%s)\bz(p_?r_?o_?c_?\s)(?![(\[\]])Úfuncname)ÚfromÚimportr   r5   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))Úrootrr   rz   rp   rm   rn   rs   r{   rw   rv   rx   N).Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚ
IGNORECASEÚflagsr   ÚkeywordsÚkeywordsPseudoÚopWordsÚtypesr
   ÚDocr   r   r   ÚCharÚWordr   Ú	NamespaceÚDeclarationr	   ÚBuiltinÚPseudor   ÚFloatÚHexÚBinÚOctÚIntegerr   r   ÚEscapeÚInterpolr   ÚFunctionr   ÚLongÚtokensr   r   r   r   r      s¦    ÿ
ÿÿ



Ý&
ýú
ÿüýý

þÿýþ
ý
¬)r€   r†   Úpygments.lexerr   r   r   Úpygments.tokenr   r   r   r   r	   r
   r   r   r   Ú__all__r   r   r   r   r   Ú<module>   s    
,