U
    luf                     @   sj   d Z ddlZddlmZ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-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludedefaultbygroups)	TextCommentOperatorKeywordNameStringNumberPunctuationErrorNimrodLexerc                8   @   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@dAdBg8ZdCdDdEgZdd3d/dBd9d:dd.d&d0d)d*gZdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTgZdUejdVfdWejfdXejdYfdZefd[ejd\fd]efd^efd_eejeejd`fdaedbfdcejddfdeedffdgejdhfdiee ejfdjeeejdkfdiee efdiedldmdnd"g ej fdoej!fdiee e"j#fdiee ej$fdpe"fdqe%j&drfdse%j'dtfdue%j(dtfdve%j)dtfdwe%j*dtfdxejfdye+fgdzej,fdgejd{fd|ejfgd}ej-fd~efdefdefgdejfdUejdfdejd{fdejfgdejfdXejdfdejd{fdejfgdej,fdeed{fe.dgded{fdej,fe.dgdcejd{fe.ddejfgde"j/d{fde"j/d{fgdefgde%j&fde%j&fe0d{gde%j&fe0d{gde%j*j1fde%j*fe0d{gdefdejfded{fde"j2fgdefdejfdejd{fdejfgdZ3dS )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-7eq1ciah/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ifinyieldZ	interfaceisZisnotiteratorZletZmixinmodnotnotinobjectZoforoutptrraiserefreturnZshlZshrZstatic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##\[
doccommentz##.*$z#\[commentz#.*$z\{\.pragmaz[*=><+\-/@$~&%!?|\\\[\]]z<\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;z(\n\s*)(of)(\s)
casebranchz
(?:[\w]+)"rdqsz"""tdqs"dqs'charsz(%s)\bz0(proc|func|method|macro|template)(\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\$z[^\]#]+z#pushz\]##z[\]#]z\]#z0\\([\\abcefnrtvl"\']|\n|x[a-f0-9]{2}|[0-9]{1,3})stringsz"(?!")z""z\nz$((?![\d_])\w)(((?!_)\w)|(_(?!_)\w))*z`.+`z\.(?!\.)[0-9_]*[f]*ze[+-]?[0-9][0-9_]*z
\'f(32|64)z
\'i(32|64)z	\'i(8|16),z[\n ]+:z\w+|[^:]z[:,]z\.\}z\w+|\W+|[^.}])rootrZ   rb   rQ   rR   rX   rU   rV   r[   nlr_   r^   r`   rT   rS   N)4__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesre	MULTILINE
IGNORECASEflagsr   keywordsZkeywordsPseudoZopWordstypesr   ZDocr   Z	MultilineZOtherr   r   r   r   
Whitespacer	   DoubleCharWord	NamespaceZDeclarationr
   ZBuiltinZPseudor   ZFloatZHexZBinOctZIntegerr   ZEscapeZInterpolr   ZFunctionr   ZLongZLabeltokensr   r   r   r   r      s                                                                           






  



6










)rj   rp   Zpygments.lexerr   r   r   r   Zpygments.tokenr   r   r   r	   r
   r   r   r   r   __all__r   r   r   r   r   <module>   s
   
,