o
    \h                     @   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-2025 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                   @   s  e Zd ZdZdZdZddgZddgZdgZd	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dfdejfdejdfdefdejdfdefdefdeejeejdfdedfdejdfd ed!fd"ejd#fd$ee d%ej fd&eeejd'fd$ee d%efd(!eg d)ej"fd*ej#fd$ee d%e$j%fd$ee d%ej&fd+e$fd,e'j(d-fd.e'j)d/fd0e'j*d/fd1e'j+d/fd2e'j,d/fd3ejfd4e-fgd5ej.fd"ejd6fd7ejfgd8ej/fd9efd:efd;efgd<ejfdejd=fd>ejd6fd?ejfgd<ejfdejd=fd@ejd6fd?ejfgdAej.fd ed6fe0dBgdCed6fdDej.fe0dBgdejd6fe0dBdEejfgdFe$j1d6fdGe$j1d6fgdEefgdHe'j(fdIe'j(fe2d6gdJe'j(fe2d6gdKe'j,j3fdLe'j,fe2d6gdMefdNejfdOed6fdPe$j4fgdQefdNejfdRejd6fdSejfgdTZ5dUS )Vr   z
    For Nim source code.
    Nimrodzhttp://nim-lang.org/nimrodnimz*.nimz*.nimrodz
text/x-nimz1.5c                 C   sN   g }g }| D ]}|D ]}| | | d q
| d| g }qd|S )Nz_? |)appendjoin)wordsnewWordsnewwordch r   Y/home/air/segue/gemini/backup/venv/lib/python3.10/site-packages/pygments/lexers/nimrod.pyunderscorize"   s   

zNimrodLexer.underscorize)8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ifinyield	interfaceisisnotiteratorletmixinmodnotnotinobjectoforoutptrraiserefreturnshlshrstatictrytupletypeusingwhenwhilexor)niltruefalse)r    rG   rC   rV   rM   rN   r/   rB   r:   rD   r=   r>   )intint8int16int32int64floatfloat32float64boolcharrangearrayseqsetstringz##\[
doccommentz##.*$z#\[commentz#.*$z\{\.pragmaz[*=><+\-/@$~&%!?|\\\[\]]z<\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;z(\n\s*)(of)(\s)
casebranchz
(?:[\w]+)"rdqsz"""tdqs"dqs'chars(z)\bz0(proc|func|method|macro|template)(\s)(?![(\[\]])funcnamez({})\b)fromimportr   r6   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+|[^.}])rootrr   r{   ri   rj   rp   rm   rn   rt   nlrx   rw   ry   rl   rk   N)6__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedre	MULTILINE
IGNORECASEflagsr   keywordskeywordsPseudoopWordstypesr   Docr   	MultilineOtherr   r   r   r   
Whitespacer	   DoubleCharWordformat	NamespaceDeclarationr
   BuiltinPseudor   FloatHexBinOctIntegerr   EscapeInterpolr   Functionr   LongLabeltokensr   r   r   r   r      s    









6











)r   r   pygments.lexerr   r   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   r   __all__r   r   r   r   r   <module>   s    
,