3 ��X6 � @ sf d Z ddlZddlmZmZmZ ddlmZmZm Z m Z mZmZm Z mZmZ dgZG dd� de�ZdS )z� pygments.lexers.nimrod ~~~~~~~~~~~~~~~~~~~~~~ Lexer for the Nim language (formerly known as Nimrod). :copyright: Copyright 2006-2017 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 Zd ZdZdZddgZddgZdgZej ej B ejB Zdd � Z d ddd ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIg@ZdJdKdLgZdd6d2dId>d?dd1d'd3d*d+gZdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[gZd\ejfd]efd^efd_efd`edafdbedcfddedefdfejdgfdhe e� ejfdiedjfdhe e� efdhe dkdldmg� ejfdnejfdhe e� ejfdhe e� ejfdoefdpej d�fdsej!dtfduej"dtfdvej#dtfdwej$dtfdxe%fdye&fgdzej'fdfejd{fd|ejfgd}ej(fd~efdefd�efgd�ej'fdded{fe)d��gd�ed{fd�ej'fe)d��gd�ed{fe)d��e)d��gd�ej*d{fd�ej*d{fgd�efgd�ej fd�ej fe+d{�gd�ej fe+d{�gd�ej$j,fd�ej$fe+d{�gd��Z-d�S )�r zS For `Nim <http://nim-lang.org/>`_ source code. .. versionadded:: 1.5 ZNimrodZnimZnimrodz*.nimz*.nimrodz text/x-nimc C sH g }d}x4| D ],}x|D ]}||d 7 }qW |j |� d}qW dj|�S )N� z_?�|)�append�join)ZwordsZnewWords�newZwordZch� r �/usr/lib/python3.6/nimrod.py�underscorize# s zNimrodLexer.underscorizeZaddr�and�asZasmZatomicZbind�block�breakZcase�castZconcept�const�continueZ converterZdefer�discardZdistinctZdivZdo�elif�else�end�enum�exceptZexport�finally�for�func�if�in�yieldZ interface�isZisnot�iteratorZletZmacro�methodZmixin�mod�notZnotin�objectZof�or�out�procZptr�raise�ref�returnZsharedZshlZshrZstatic�template�try�tuple�typeZwhen�while�withZwithout�xorZnil�trueZfalse�intZint8Zint16Zint32Zint64�floatZfloat32Zfloat64�bool�char�rangeZarray�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)))�float-suffix�float-numberz0x[a-f0-9][a-f0-9_]*z int-suffixz0b[01][01_]*z0o[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_]*ze[+-]?[0-9][0-9_]*z \'f(32|64)z \'i(32|64)z \'i(8|16))�rootrK rR rI rF rG rL rS zfloat-numberzfloat-suffixz int-suffixN)rO rP ).�__name__� __module__�__qualname__�__doc__�name�aliases� filenamesZ mimetypes�re� MULTILINE� IGNORECASE�UNICODE�flagsr �keywordsZkeywordsPseudoZopWords�typesr ZDocr r r ZCharZWordr Z NamespaceZDeclarationZTypeZPseudor r ZFloatZHexZBinZOctZIntegerr r ZEscapeZInterpolr ZFunctionr ZLong�tokensr r r r r s� )rX r\ Zpygments.lexerr r r Zpygments.tokenr r r r r r r r r �__all__r r r r r �<module> s ,