
    L&i                     x    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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bygroups)	TextCommentOperatorKeywordNameStringNumberPunctuationErrorNimrodLexerc                   T   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        z  Z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          z  ej        fd# eeej                  d$fd" ee          z  efd" eg d%          z  ej         fd&ej!        fd" ee          z  e"j#        fd" ee          z  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j        fd0e+fgd1ej,        fd ej        d2fd3ej        fgd4ej-        fd5efd6efd7efgd8ej        fdej        d9fd:ej        d2fd;ej        fgd8ej        fdej        d9fd<ej        d2fd;ej        fgd=ej,        fded2f e.d>          gd?ed2fd@ej,        f e.d>          gdej        d2f e.d>          dAej        fgdBe"j/        d2fdCe"j/        d2fgdAefgdDe%j&        fdEe%j&        f e0d2          gdFe%j&        f e0d2          gdGe%j*        j1        fdHe%j*        f e0d2          gdIefdJej        fdKed2fdLe"j2        fgdMefdJej        fdNej        d2fdOej        fgdPZ3dQS )Rr   z9
    For Nim source code.

    .. versionadded:: 1.5
    Nimrodzhttp://nim-lang.org/nimrodnimz*.nimz*.nimrodz
text/x-nimc                     g }g }| D ][}|D ],}|                     |           |                     d           -|                     d                    |                     g }\d                    |          S )Nz_? |)appendjoin)wordsnewWordsnewwordchs        c/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/nimrod.pyunderscorizezNimrodLexer.underscorize#   s     	 	D ! !

2

4    OOBGGCLL)))CCxx!!!    )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#   rJ   rF   rY   rP   rQ   r2   rE   r=   rG   r@   rA   )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'charsz(%s)\bz0(proc|func|method|macro|template)(\s)(?![(\[\]])funcname)fromimportr   r9   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+|[^.}])rootru   r}   rl   rm   rs   rp   rq   rv   nlrz   ry   r{   ro   rn   N)4__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesre	MULTILINE
IGNORECASEflagsr    keywordskeywordsPseudoopWordstypesr   Docr   	MultilineOtherr	   r   r   r   
Whitespacer
   DoubleCharWord	NamespaceDeclarationr   BuiltinPseudor   FloatHexBinOctIntegerr   EscapeInterpolr   Functionr   LongLabeltokens r!   r   r   r      s         D
 CG*%IIL2=(E	" 	" 	"	 	 	H  N  G
  E fj,/vz"W&	2g flH- )(3L  $/7*./"; ";<HJ FF+V]F+&%  &+w' g...>@Xgt//=h///9&M&M&MNNN W01e,,,dl;n555w~F 7= 2\;=$fj,?fj,7
L9fnl; T_%UOg4
l >v}M6;'6;
 &v7f% FO
 $fj'*fj&)vz"	
 *+W&0W&/w()	
 A]66"GI	
 'FM"GI
 V]F+GIFM"
 5dmVLdmV,

 FO
 $V\2"FL1GFOO
 FL)GFOO

 FN/06>*GFOO
 ;(8V$$*%	
 dO(flF+v|,	
wA AFFFr!   )r   r   pygments.lexerr   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   __all__r   r   r!   r   <module>r      s     
			 A A A A A A A A A A A A                      /t t t t t* t t t t tr!   