Your IP : 216.73.216.61
B
̽�\�$ � @ sf d Z ddlmZmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZ dgZG dd� de�ZdS )z�
pygments.lexers.felix
~~~~~~~~~~~~~~~~~~~~~
Lexer for the Felix language.
:copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�include�bygroups�default�words�combined)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�
FelixLexerc @ s� e Zd ZdZdZddgZddgZdgZdZd Z d
Z
dZdZd
Z
dZdZdZdZed�eddd�edfeddd�edfdedfee dd�efee
dd�ejfeedd�ejfeedd�ejfee
dd�ejfed�dejfdejfdejfde ejfd e ejfd!e ejfd"e ejfd#e d$fd%e d&fd'e d(fd)e d*fd+e e!d,d$�fd-e e!d,d&�fd.e e!d,d(�fd/e e!d,d*�fd0e"fd1ej#fd2d3�$e� ej%fd2d3�$e� ej%j&fd4efgd5e'fd6e'fed7�d8e(j)d9fd:e(j)d;fgd2d3�$e� e*j+fd<e*fgd=e(j,fd>e(j-d?fgd@e(j-fd>e(j-dAfdBe(j-dCfdDe(j-fgdEe(dAfdFe(dCfdGe(fged7�dHe.e(j)e'e �dCfdIe.e(j)e'e �dCfdJe.e(j)e'e �dCfdKe(j)fdLe(j)fdMe(j)fd5e(j)dCfged�d4ej/dCfdNe'dCfged�d4ej0dCfdOe'dCfged�dPe"dQfe1dR�ged�dSej2dTfged�ed�dPe"dAfdUe"dCfdVe"fdWefd4efgdXe j3fgdYe j4fdZe fd[e fd\e fgd5e fgd]e dCfd^e j3fed_�gd`e dCfdae j3fed_�gdbe dCfed_�edc�gdde dCfed_�edc�gde�Z5dfS )gr zZ
For `Felix <http://www.felix-lang.org>`_ source code.
.. versionadded:: 1.2
ZFelixZfelixZflxz*.flxz*.flxhztext/x-felix)�elif�else�endif�ifZifdefZifndef)H�_Z_deref�all�as�assertZattempt�call�callbackZcaseZcaseno�cclass�codeZcompound�ctypesZdo�doneZdowntor r Z
endattemptZendcaser �endmatch�enum�except�
exceptionsZexpect�finally�forZforallZforget�forkZfunctorZgoto�identr Z
incompleteZinherit�instanceZ interfaceZjump�lambdaZloop�match�module� namespace�newZnoexpandZnonterm�objZof�open�parse�raiseZregexpZreglexZregmatch�rename�returnZtheZthen�to�typeZtypecaseZtypedefZ typematchZtypeofZuptoZwhenZwhilst�with�yield)Z_gc_pointerZ_gc_type�body�comment�constZexport�header�inlineZlval�macroZnoinlineZnoreturn�packageZprivateZpod�property�publicZpublish�requiresZtodoZvirtualZuse)�defZlet�ref�val�var)7Zunit�void�any�boolZbyte�offset�addressZcaddressZ cvaddressZvaddressZtiny�short�int�longZvlongZutinyZushortZvshortZuintZulongZuvlongZint8Zint16Zint32Zint64Zuint8Zuint16Zuint32Zuint64�floatZdoubleZldouble�complexZdcomplexZlcomplexZ imaginaryZ
dimaginaryZ
limaginary�charZwcharZucharZcharpZcharcpZucharpZucharcp�stringZwstringZustringZcont�arrayZvarray�listZlvalue�opt�slice)�false�true)�and�not�in�isZisin�or�xor)Z_svc�while)�root�self�thisz*([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?�
whitespace)ZaxiomZctorZfun�gen�proc�reduce�unionz\b)�suffix�funcname)�classr Zcstructr- �struct� classnamez(instance|module|typeclass)\b�
modulename� operatorszK0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\-]?[0-9_]+[lLfFdD]?zH[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)[lLfFdD]?z/\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[lLfFdD]?z
0[Bb][01_]+%sz
0[0-7_]+%sz0[xX][0-9a-fA-F_]+%sz(0|[1-9][0-9_]*)%sz([rR][cC]?|[cC][rR])"""�tdqsz([rR][cC]?|[cC][rR])'''�tsqsz([rR][cC]?|[cC][rR])"�dqsz([rR][cC]?|[cC][rR])'�sqsz[cCfFqQwWuU]?"""�stringescapez[cCfFqQwWuU]?'''z[cCfFqQwWuU]?"z[cCfFqQwWuU]?'z[\[\]{}:(),;?]z[a-zA-Z_]\w*:>z(%s)\b�|z[a-zA-Z_]\w*z\nz\s+r8 z
#\s*if\s+0�if0�#r<