3 ��X� � @ sZ d Z ddlmZmZmZ ddlmZmZmZm Z m Z mZmZm Z dgZG dd� de�ZdS )z� pygments.lexers.eiffel ~~~~~~~~~~~~~~~~~~~~~~ Lexer for the Eiffel language. :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � )� RegexLexer�include�words)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�EiffelLexerc 9 @ s� e Zd ZdZdZdgZdgZdgZdefde j fdefdejfd e jfedPd=d>d?�ejfd@efdAefedB�dCejfdDe fdEefdFefdGejfdHefgdIejfdJejfdKejfdLejfdMejfgdN�ZdOS )Qr zW For `Eiffel <http://www.eiffel.com>`_ source code. .. versionadded:: 2.0 ZEiffelZeiffelz*.ez text/x-eiffelz[^\S\n]+z--.*?\nz0(?i)(true|false|void|current|result|precursor)\bz2(?i)(and(\s+then)?|not|xor|implies|or(\s+else)?)\b�across�agent�alias�all�as�assign�attached� attribute�check�class�convert�create�debug�deferred� detachable�do�else�elseif�end�ensure�expanded�export�external�feature�from�frozen�if�inherit�inspect� invariant�like�local�loop�none�note�obsolete�old�once�only�redefine�rename�require�rescue�retry�select�separate�then�undefine�until�variant�whenz(?i)\bz\b)�prefix�suffixz$"\[(([^\]%]|\n)|%(.|\n)|\][^"])*?\]"z"([^"%\n]|%.)*?"�numbersz'([^'%]|%'|%%)'z4(//|\\\\|>=|<=|:=|/=|~|/~|[\\?!#%&@|+/\-=>*$<^\[\]])z([{}():;,.])z$([a-z]\w*)|([A-Z][A-Z0-9_]*[a-z]\w*)z([A-Z][A-Z0-9_]*)z\n+z0[xX][a-fA-F0-9]+z 0[bB][01]+z0[cC][0-7]+z!([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)z[0-9]+)�rootrC N)3r r r r r r r r r r r r r r r r r r r r! r"