B
    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-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   sV   g }g }xB| D ]:}x |D ]}| | | d qW | d| g }qW d|S )Nz_? |)appendjoin)ZwordsZnewWordsnewZwordZch r   5lib/python3.7/site-packages/pygments/lexers/nimrod.pyunderscorize#   s    


zNimrodLexer.underscorizeZaddrandasZasmZbindblockbreakZcasecastZconceptconstcontinueZ	converterZdeferdiscardZdistinctZdivZdoelifelseendenumexceptZexportfinallyforfuncifinyieldZ	interfaceisZisnotiteratorZletZmacromethodZmixinmodnotZnotinobjectZoforoutprocZptrraiserefreturnZshlZshrZstatictemplatetrytupletypeZusingZwhenwhilexorZniltrueZfalse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))))zfloat-suffixzfloat-numberz0x[a-f0-9][a-f0-9_]*z
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))rootrJ   rO   rH   rE   rF   rK   rP   zfloat-numberzfloat-suffixz
int-suffixN).__name__
__module____qualname____doc__nameZurlaliases	filenamesZ	mimetypesre	MULTILINE
IGNORECASEflagsr   keywordsZkeywordsPseudoZopWordstypesr
   ZDocr   r   r   ZCharZWordr   	NamespaceZDeclarationr	   ZBuiltinZPseudor   ZFloatZHexZBinZOctZIntegerr   r   ZEscapeZInterpolr   ZFunctionr   ZLongtokensr   r   r   r   r      s   










)rU   rY   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   r   r   r   r   <module>	   s
   ,