U
    祡c*                     @   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dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGg=ZdHdIdJgZdd6d2dGd=d>dd1d'd3d*d+gZdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYgZdZejfd[efd\efd]efd^ed_fd`edafdbedcfddejdefdfee ejfdgedhfdfee efdfedidjdkd"g ejfdlejfdfee ejfdfee ejfdmefdnej dofdpej!dqfdrej"dqfdsej#dqfdtej$dqfdue%fdve&fgdwej'fddejdxfdyejfgdzej(fd{efd|efd}efgd~ej'fdbedxfe)dgdedxfdej'fe)dgdedxfe)de)dgdej*dxfdej*dxfgdefgdej fdej fe+dxgdej fe+dxgdej$j,fdej$fe+dxgdZ-dS )r   z9
    For Nim source code.

    .. versionadded:: 1.5
    ZNimrodzhttp://nim-lang.org/ZnimrodZnimz*.nimz*.nimrodz
text/x-nimc                 C   sN   g }g }| D ]6}|D ]}| | | d q| d| g }qd|S )Nz_? |)appendjoin)wordsZnewWordsnewwordch r   :/tmp/pip-unpacked-wheel-6wad6tea/pygments/lexers/nimrod.pyunderscorize#   s    
zNimrodLexer.underscorizeaddrandasZasmbindblockbreakZcasecastZconceptconstcontinue	converterdeferdiscardZdistinctdivZdoelifelseendenumexceptexportfinallyforfuncifinyieldZ	interfaceisZisnotiteratorZletmacromethodZmixinmodnotnotinobjectZoforoutprocptrraiserefreturnZshlZshrZstatictemplatetrytupletypeZusingwhenwhilexorniltruefalseintZint8Zint16Zint32Zint64floatZfloat32Z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   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))rootrZ   rb   rX   rU   rV   r[   rc   r_   r^   r`   N).__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesre	MULTILINE
IGNORECASEflagsr   keywordsZkeywordsPseudoZopWordstypesr
   ZDocr   r   r   CharWordr   	NamespaceZDeclarationr	   ZBuiltinZPseudor   ZFloatZHexZBinOctZIntegerr   r   ZEscapeZInterpolr   ZFunctionr   ZLongtokensr   r   r   r   r      s\                                                                                
 



&




)rh   rn   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   r   r   r   r   <module>   s
   
,