
                         p    S r SSKrSSKJrJrJrJr  SSKJrJ	r	J
r
JrJrJrJrJrJr  S/r " S S\5      rg)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                   
   \ rS rSrSrSrSrSS/rSS/rS	/r	\
R                  \
R                  -  rS
 r/ SQr/ SQr/ SQr/ SQrS\R(                  S4S\R(                  4S\R,                  S4S\4S\R.                  S4S\4S\4S\" \R8                  \\R8                  5      S4S\S4S\R<                  S4S\S 4S!\R>                  S"4S#\" \5      -  \R@                  4S$\" \\R8                  5      S%4S#\" \5      -  \4S#\" / S&Q5      -  \RB                  4S'\RD                  4S#\" \5      -  \#RH                  4S#\" \5      -  \RJ                  4S(\#4S)\&RN                  S*4S+\&RP                  S,4S-\&RR                  S,4S.\&RT                  S,4S/\&RV                  S,4S0\R8                  4S1\,4/S2\RZ                  4S!\R>                  S34S4\R>                  4/S5\R\                  4S6\4S7\4S8\4/S9\R(                  4S\R(                  S:4S;\R(                  S34S<\R(                  4/S9\R,                  4S\R,                  S:4S=\R,                  S34S<\R,                  4/S>\RZ                  4S\S34\/" S?5      /S@\S34SA\RZ                  4\/" S?5      /S\R<                  S34\/" S?5      SB\R<                  4/SC\#R`                  S34SD\#R`                  S34/SB\4/SE\&RN                  4SF\&RN                  4\1" S35      /SG\&RN                  4\1" S35      /SH\&RV                  Rd                  4SI\&RV                  4\1" S35      /SJ\4SK\R8                  4SL\S34SM\#Rf                  4/SN\4SK\R8                  4SO\R.                  S34SP\R.                  4/SQ.r4SRr5gS)Tr      z-
For Nim source code.

.. versionadded:: 1.5
Nimrodzhttp://nim-lang.org/nimrodnimz*.nimz*.nimrodz
text/x-nimc                     / n/ nU  HP  nU H%  nUR                  U5        UR                  S5        M'     UR                  SR                  U5      5        / nMR     SR                  U5      $ )Nz_? |)appendjoin)wordsnewWordsnewwordchs        )lib/third_party/pygments/lexers/nimrod.pyunderscorizeNimrodLexer.underscorize#   sc    D

2

4   OOBGGCL)C  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%   rL   rH   r[   rR   rS   r4   rG   r?   rI   rB   rC   )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   r;   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+|[^.}])rootrw   r   rn   ro   ru   rr   rs   rx   nlr|   r{   r}   rq   rp    N)6__name__
__module____qualname____firstlineno____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__static_attributes__r   r#   r    r   r      ss    D
 CG*%IILL2==(E	"	HNG
E fjj,/vzz"W&&	2g fllH- )(3L  $//7*.//";<HJ FF+V]]F+&%  &++w' g..>@gt/=h//9&MNN W001e,,dll;n55w~~F 7= 2\\;=$fjj,?fjj,7

L9fnnl; T__%UOg4
l >v}}M6;;'6;;
 &v7f% FO
 $fjj'*fjj&)vzz"	
 **+W&&0W&&/w(()	
 A]]66"I	
 'FMM"I
 V]]F+IFMM"
 5dmmVLdmmV,

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

 FNN//06>>*FO
 ;(8V$$**%	
 dO(fllF+v||,	
wAFr#   )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   /t* tr#   