a
    ;@b%                     @   sj   d Z ddlmZmZ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 deZdS )z
    pygments.lexers.felix
    ~~~~~~~~~~~~~~~~~~~~~

    Lexer for the Felix language.

    :copyright: Copyright 2006-2021 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
Whitespace
FelixLexerc                    @   s  e Zd ZdZdZddgZddgZdgZdZd	Z	d
Z
dZdZdZdZdZdZdZededddedfedddedfdedfee	ddefee
ddejfeeddejfeeddejfeeddejfeddejfdejfdejfde ejfd e ejfd!e ejfd"e ejfd#e d$fd%e d&fd'e d(fd)e d*fd+e e!d,d$fd-e e!d,d&fd.e e!d,d(fd/e e!d,d*fd0e"fd1ej#fd2d3$e ej%fd2d3$e ej%j&fd4efgd5e'fed6d7e(e)j*e'e)j*e'e)j*d8fd9e)j*d:fgd2d3$e e+j,fd;e+fgd<e)j-fd=e)j.d>fgd?e)j.fd=e)j.d@fdAe)j.dBfdCe)j.fgdDe(e'e)e'd@fdEe(e'e)e'dBfdFe(e)e'fged6dGe(e)j*e'e dBfdHe(e)j*e'e dBfdIe(e)j*e'e dBfdJe)j*fdKe)j*fdLe)j*fdMe'dBfgedd4ej/dBfdNe0dBfgedd4ej1dBfdOe0dBfgeddPe"dQfe2dRgeddSej3dTfgededdPe"d@fdUe"dBfdVe"fdWefd4efgdXe j4fgdYe j5fdZe fd[e fd\e fgdMe fgd]e dBfd^e j4fed_gd`e dBfdae j4fed_gdbe dBfed_edcgdde dBfed_edcgdeZ6dfS )gr   zZ
    For `Felix <http://www.felix-lang.org>`_ source code.

    .. versionadded:: 1.2
    ZFelixZfelixZflxz*.flxz*.flxhztext/x-felix)elifelseendififZifdefZifndef)H_Z_derefallasassertZattemptcallcallbackZcaseZcasenocclasscodeZcompoundZctypesZdoZdoneZdowntor   r   Z
endattemptZendcaser   endmatchenumexcept
exceptionsexpectfinallyforZforallZforgetforkZfunctorZgotoidentr   Z
incompleteZinheritinstanceZ	interfaceZjumplambdaZloopmatchmodule	namespacenewZnoexpandZnontermobjZofopenparseraiseZregexpZreglexZregmatchrenamereturnZtheZthentotypeZtypecaseZtypedefZ	typematchZtypeofZuptoZwhenZwhilstwithyield)Z_gc_pointerZ_gc_typebodycommentconstZexportheaderZinlineZlvalmacroZnoinlineZnoreturnpackageZprivateZpodpropertyZpublicZpublishZrequiresZtodoZvirtualZuse)defZletrefvalvar)7ZunitZvoidanyboolZbyteoffsetZaddressZcaddressZ	cvaddressZvaddressZtinyZshortintZlongZvlongZutinyZushortZvshortZuintZulongZuvlongZint8Zint16Zint32Zint64Zuint8Zuint16Zuint32Zuint64floatZdoubleZldoublecomplexZdcomplexZlcomplexZ	imaginaryZ
dimaginaryZ
limaginarycharZwcharZucharZcharpZcharcpZucharpZucharcpstringZwstringZustringZcontZarrayZvarraylistZlvalueoptslice)Zfalsetrue)andnotinisZisinorxor)Z_svcwhile)rootselfthisz*([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?
whitespace)ZaxiomZctorZfungenprocreduceunionz\b)suffixfuncname)classr   Zcstructr-   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_]+%sz0[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\s+r8   z(#)(\s*)(if)(\s+)(0)if0#r;   z$!=|==|<<|>>|\|\||&&|[-~+/*%=<>&^|.$]z//(.*?)$z/[*]comment2z[^/*]z#pushz[*]/z#popz[/*]z^(\s*)(#if.*?(?<!\\))(\n)z^(\s*)(#endif.*?(?<!\\))(\n)z	(.*?)(\n)z(import|include)(\s+)(<[^>]*?>)z(import|include)(\s+)("[^"]*?")z(import|include)(\s+)('[^']*?')z[^/\n]+/z	(?<=\\)\nz\nz(?=\()z(?=\{)z\[)modulename2tvarlistrn   z([a-zA-Z_]\w*)z#pop:2z\],z(with|where)\bzY\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})zP%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]z[^\\\'"%\n]+z[\'"\\]%"z\\\\|\\"|\\\nstrings'z\\\\|\\'|\\\nz"""nlz''')rU   rX   rc   r8   rl   rj   r;   r^   ra   rb   rn   ro   rh   rs   ru   rf   rg   rd   re   N)7__name__
__module____qualname____doc__namealiases	filenamesZ	mimetypesZpreprockeywordsZkeyword_directivesZkeyword_declarationsZkeyword_typesZkeyword_constantsZoperator_wordsZname_builtinsZname_pseudoZdecimal_suffixesr   r   r   r   Z	DecoratorZDeclarationTypeZConstantr   ZFloatZBinZOctZHexZIntegerr   r   r   ZLabeljoinZBuiltinZPseudor   r   r	   ZPreprocr
   ZWordSingleZ	MultilineZFunctionr   ZClassr   	NamespaceZEscapeZInterpoltokens r   r   4lib/python3.9/site-packages/pygments/lexers/felix.pyr      s8  
>







 N)ry   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   r   r   r   <module>   s   
 ,