§
    £E±cœ(  ã                   óþ   — d Z ddl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 g d¢Z G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )zÓ
    pygments.lexers.esoteric
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for esoteric languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚincludeÚwordsÚbygroups)	ÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚ
Whitespace)ÚBrainfuckLexerÚBefungeLexerÚRedcodeLexerÚCAmkESLexerÚ
CapDLLexerÚ
AheuiLexerc                   ó¾   — e Zd ZdZdZdZddgZddgZdgZd	e	j
        fd
e	j        fde	j        fdefgdedfdef ed¦  «        gdedfdedf ed¦  «        gdœZd„ ZdS )r   z4
    Lexer for the esoteric BrainFuck language.
    Ú	Brainfuckz'http://www.muppetlabs.com/~breadbox/bf/Ú	brainfuckÚbfz*.bfz*.bzapplication/x-brainfuckz[.,]+z[+-]+z[<>]+z[^.,+\-<>\[\]]+z\[Úloopz\]Úcommonz#pushz#pop)r   Úrootr   c                 óè   — d}d}t          dt          | ¦  «        ¦  «        }| d|…         D ]$}|dk    s|dk    r|dz  }|dk    s|dk    r|dz  }Œ%|d	|z  k    rd
S |d	|z  k    rd
S d}d| v r|dz  }|S )z]It's safe to assume that a program which mostly consists of + -
        and < > is brainfuck.r   é   Nú+ú-é   ú<ú>g      Ð?g      ð?z[-]g      à?)ÚmaxÚlen)ÚtextÚplus_minus_countÚgreater_less_countÚrange_to_checkÚcÚresults         ú:/usr/lib/python3/dist-packages/pygments/lexers/esoteric.pyÚanalyse_textzBrainfuckLexer.analyse_text2   s¼   € ð ÐØÐå˜S¥# d¡)¤)Ñ,Ô,ˆà�o�~�oÔ&ð 	(ð 	(ˆAØ�CŠxˆx˜1 š8˜8Ø  AÑ%Ð Ø�CŠxˆx˜1 š8˜8Ø" aÑ'Ð"øà˜t nÑ4Ò5Ð5Ø�3Ø ¨Ñ!6Ò7Ð7Ø�3àˆØ�Dˆ=ˆ=Ø�c‰MˆFàˆó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesr
   ÚTagÚBuiltinÚVariabler   r	   r   r   Útokensr-   © r.   r,   r   r      sÚ   € € € € € ðð ð €DØ
3€CØ˜DÐ!€GØ˜�€IØ*Ð+€Ið
 �t”xÐ Ø�t”|Ð$Ø�t”}Ð%Ø Ð)ð
ð �G˜VÐ$Ø�EˆNØˆG�HÑÔð
ð �G˜WÐ%Ø�G˜VÐ$ØˆG�HÑÔð
ðð €Fð(ð ð ð ð r.   r   c                   ó®   — e Zd ZdZdZdZdgZdgZdgZdde	fd	e
fd
ej        fdej        fdefdej        fdej        fdej        fdefdefdefdefgiZdS )r   zM
    Lexer for the esoteric Befunge language.

    .. versionadded:: 0.7
    ÚBefungez$http://en.wikipedia.org/wiki/BefungeÚbefungez	*.befungezapplication/x-befunger   z[0-9a-f]z	[+*/%!`-]z[<>^v?\[\]rxjk]z	[:\\$.,n]z[|_mw]z[{}]z".*?"z\'.z[#;]z[pg&~=@iotsy]z[()A-Z]ú\s+N)r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r   r
   r:   r9   r	   r8   r   ÚDoubleÚSingler   r   r;   r<   r.   r,   r   r   L   sµ   € € € € € ðð ð
 €DØ
0€CØˆk€GØ�€IØ(Ð)€Ið 	Ø˜&Ð!Ø˜8Ð$Ø ¤Ð/Ø˜4œ<Ð(Ø˜Ð Ø�d”hÐØ�v”}Ð%Ø�V”]Ð#Ø�gÐØ˜wÐ'Ø˜Ð!Ø�ZÐ ð
ð€F€F€Fr.   r   c                   ó�  — e Zd ZdZdZdZddgZddgZdd	 ee	e
j        e	¦  «        fd
e	fde
fde
fdefdef edd¬¦  «        ef edd¬¦  «        ej        fdej        f edd¬¦  «        ej        fd ee
j        e	e
j        ¦  «        fd ee
j        e	e
j        ¦  «        fdej        fdefdej        fdefdej        fdefgiZdS )r   zj
    Basic lexer for the input language for the CAmkES component platform.

    .. versionadded:: 2.1
    ÚCAmkESzhttps://sel4.systems/CAmkES/ÚcamkesÚidl4z*.camkesz*.idl4r   ú^(\s*)(#.*)(\n)r@   ú/\*(.|\n)*?\*/z//.*$z[\[(){},.;\]]z[~!%^&*+=|?:<>/-])"ÚassemblyÚ	attributeÚ	componentÚcompositionÚconfigurationÚ
connectionÚ	connectorÚconsumesÚcontrolÚdataportÚDataportÚ	DataportsÚemitsÚeventÚEventÚEventsÚexportÚfromÚgroupÚhardwareÚhasÚ	interfaceÚ	InterfaceÚmaybeÚ	procedureÚ	ProcedureÚ
ProceduresÚprovidesÚtemplateÚthreadÚthreadsÚtoÚusesÚwithú\b©Úsuffix)ÚboolÚbooleanÚBufÚcharÚ	characterÚdoubleÚfloatÚinÚinoutÚintÚint16_6Úint32_tÚint64_tÚint8_tÚintegerÚmutexÚoutÚrealÚrefinÚ	semaphoreÚsignedÚstringÚstructÚuint16_tÚuint32_tÚuint64_tÚuint8_tÚ	uintptr_tÚunsignedÚvoidz%[a-zA-Z_]\w*_(priority|domain|buffer))Údma_poolÚfrom_accessÚ	to_accessz#(import)(\s+)((?:<[^>]*>|"[^"]*");)z$(include)(\s+)((?:<[^>]*>|"[^"]*");)ú0[xX][\da-fA-F]+z-?[\d]+z-?[\d]+\.[\d]+z"[^"]*"z[Tt]rue|[Ff]alsez[a-zA-Z_]\w*N)r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   ÚPreprocr   r   r   r	   ÚTypeÚReservedr   ÚHexÚFloatr   r
   r9   r;   r<   r.   r,   r   r   j   s�  € € € € € ðð ð
 €DØ
(€CØ˜Ð €GØ˜XÐ&€Ið 	à  ¨*°g´oØñ"ô "ð ð �ZÐ Ø Ð(Ø�wÐà˜{Ð+Ø! 8Ð,àˆUð Kð  ð!ñ !ô !ð #*ð+ð ˆUð (ð  ð!ñ !ô !ð #*¤,ð0ð 6°wÔ7GÐHØˆUÐ;ÀEÐJÑJÔJØÔ ð"ð 4Ø�˜œ¨*°g´oÑFÔFðHð 5Ø�˜œ¨*°g´oÑFÔFðHð ! &¤*Ð-Ø˜Ð Ø ¤Ð-Ø˜Ð Ø  $¤,Ð/ð ˜dÐ#ðg4
ð6€F€F€Fr.   r   c                   ó.  — e Zd ZdZdZdZdgZdgZdd ee	e
j        e	¦  «        fde	fd	e
fd
e
fdefdef edd¬¦  «        ef edd¬¦  «        ej        f edd¬¦  «        ej        fdej        fdef edd¬¦  «        ef edd¬¦  «        efdefgiZdS )r   aæ  
    Basic lexer for CapDL.

    The source of the primary tool that reads such specifications is available
    at https://github.com/seL4/capdl/tree/master/capDL-tool. Note that this
    lexer only supports a subset of the grammar. For example, identifiers can
    shadow type names, but these instances are currently incorrectly
    highlighted as types. Supporting this would need a stateful lexer that is
    considered unnecessarily complex for now.

    .. versionadded:: 2.2
    ÚCapDLzMhttps://ssrg.nicta.com.au/publications/nictaabstracts/Kuz_KLW_10.abstract.pmlÚcapdlz*.cdlr   rG   r@   rH   z
(//|--).*$z[<>\[(){},:;=\]]z\.\.)ÚarchÚarm11ÚcapsÚchild_ofÚia32ÚirqÚmapsÚobjectsrk   rl   )ÚaepÚ	asid_poolÚcnodeÚepÚframeÚ	io_deviceÚio_portsÚio_ptÚnotificationÚpdÚptÚtcbÚutÚvcpu)ÚasidÚaddrÚbadgeÚcachedÚdomÚdomainIDÚelfÚfault_epÚGÚguardÚ
guard_sizeÚinitÚipÚprioÚspÚRÚRGÚRXÚRWÚRWGÚRWXÚWÚWGÚWXÚlevelÚmaskedÚmaster_replyÚpaddrÚportsÚreplyÚuncachedr�   z\d+(\.\d+)?(k|M)?)Úbits)ÚcspaceÚvspaceÚ
reply_slotÚcaller_slotÚipc_buffer_slotz[a-zA-Z_][-@\.\w]*N)r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r�   r   r   r	   r‘   r’   r   r“   r
   r;   r<   r.   r,   r   r   ®   sa  € € € € € ðð ð €DØ
Y€CØˆi€GØ�	€Ið 	àØ�˜ W¤_°jÑAÔAðCð �ZÐ Ø Ð(Ø˜GÐ$à  +Ð.Ø�kÐ"àˆUð Ø',ð.ñ .ô .Ø/6ð8ð ˆUð "à*/ð1ñ 1ô 1à29´,ð@ð
 ˆUð 2ð ;@ð	Añ Aô Að
 Ôðð ! &¤*Ð-Ø! 6Ð*ØˆU�9 UÐ+Ñ+Ô+¨VÐ4ØˆUð 'Ø/4ð6ñ 6ô 6Ø7=ð?ð # DÐ)ðI%
ð'€F€F€Fr.   r   c                   óè   — e Zd ZdZdZdgZdgZdZdZdde	fd	e
j        fd
d                     e¦  «        z  ej        fd
d                     e¦  «        z  ej        fdefdefdefdefdej        fg	iZdS )r   z‚
    A simple Redcode lexer based on ICWS'94.
    Contributed by Adam Blinkinsop <blinks@acm.org>.

    .. versionadded:: 0.8
    ÚRedcodeÚredcodez*.cw)ÚDATÚMOVÚADDÚSUBÚMULÚDIVÚMODÚJMPÚJMZÚJMNÚDJNÚCMPÚSLTÚSPLÚORGÚEQUÚEND)ÚAÚBÚABÚBAÚFÚXÚIr   r@   z;.*$z\b(%s)\bú|z[A-Za-z_]\w+z[-+*/%]z[#$@<>]z[.,]z[-+]?\d+N)r/   r0   r1   r2   r3   r5   r6   ÚopcodesÚ	modifiersr   r   rB   Újoinr
   ÚFunctionÚ	Decoratorr   r   r   ÚIntegerr;   r<   r.   r,   r   r   ê   sÀ   € € € € € ðð ð €DØˆk€GØ�€Ið$€Gð 6€Ið 	à�ZÐ Ø�g”nÐ%ð ˜3Ÿ8š8 GÑ,Ô,Ñ,¨d¬mÐ<Ø˜3Ÿ8š8 IÑ.Ô.Ñ.°´Ð?Ø˜dÐ#à˜Ð"Ø˜Ð"Ø�kÐ"à˜&œ.Ð)ð
ð€F€F€Fr.   r   c                   ó:   — e Zd ZdZdZdZdgZdgZddefde	fgiZ
d	S )
r   z?
    Aheui is esoteric language based on Korean alphabets.
    ÚAheuizhttp://aheui.github.io/Úaheuiz*.aheuir   uá  [ë‚˜-ë‚³ëƒ�-ëƒ«ë„ˆ-ë„£ë…€-ë…›ë…¸-ë†“ë‡¨-ëˆŸë‰´-ë‹‡ë‹¤-ë‹¿ëŒœ-ëŒ·ë�”-ë�¯ëŽŒ-ëŽ§ë�„-ë�Ÿë�´-ë‘«ë“€-ë”“ë”°-ë•‹ë•¨-ë–ƒë– -ë–»ë—˜-ë—³ë˜�-ë˜«ëš€-ëš·ëœŒ-ë�Ÿë�¼-ëž—ëž´-ëŸ�ëŸ¬-ë ‡ë ¤-ë ¿ë¡œ-ë¡·ë£Œ-ë¤ƒë¥˜-ë¦«ë§ˆ-ë§£ë¨€-ë¨›ë¨¸-ë©“ë©°-ëª‹ëª¨-ë«ƒë¬˜-ë­�ë®¤-ë¯·ë°”-ë°¯ë±Œ-ë±§ë²„-ë²Ÿë²¼-ë³—ë³´-ë´�ëµ¤-ë¶›ë·°-ë¹ƒë¹ -ë¹»ëº˜-ëº³ë»�-ë»«ë¼ˆ-ë¼£ë½€-ë½›ë¾°-ë¿§ì€¼-ì‚�ì‚¬-ìƒ‡ìƒ¤-ìƒ¿ì„œ-ì„·ì…”-ì…¯ì†Œ-ì†§ì‡¼-ìˆ³ìŠˆ-ì‹›ì‹¸-ìŒ“ìŒ°-ì�‹ì�¨-ìŽƒìŽ -ìŽ»ì�˜-ì�³ì‘ˆ-ì‘¿ì“”-ì”§ìž�-ìž«ìŸˆ-ìŸ£ì €-ì ›ì ¸-ì¡“ì¡°-ì¢‹ì£ -ì¤—ì¥¬-ì¦¿ì°¨-ì±ƒì± -ì±»ì²˜-ì²³ì³�-ì³«ì´ˆ-ì´£ìµ¸-ì¶¯ì¸„-ì¹—ì¹´-ìº�ìº¬-ì»‡ì»¤-ì»¿ì¼œ-ì¼·ì½”-ì½¯ì¿„-ì¿»í��-í‚£íƒ€-íƒ›íƒ¸-í„“í„°-í…‹í…¨-í†ƒí† -í†»íˆ�-í‰‡íŠœ-í‹¯íŒŒ-íŒ§í�„-í�Ÿí�¼-íŽ—íŽ´-í��í�¬-í�‡í‘œ-í’“í“¨-í”»í•˜-í•³í–�-í–«í—ˆ-í—£í˜€-í˜›í˜¸-í™“íš¨-í›Ÿíœ´-íž‡]ú.N)r/   r0   r1   r2   r3   r4   r5   r6   r   r   r;   r<   r.   r,   r   r     s[   € € € € € ðð ð €DØ
#€CØˆi€GØ�€Ið 	ðð  ð!ð" �'ˆNð%
ð€F€F€Fr.   r   N)r2   Úpygments.lexerr   r   r   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   Ú__all__r   r   r   r   r   r   r<   r.   r,   ú<module>rü      sÇ  ððð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ð#ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð'ð 'ð '€ð6ð 6ð 6ð 6ð 6�Zñ 6ô 6ð 6ðrð ð ð ð �:ñ ô ð ð<Að Að Að Að A�*ñ Aô Að AðH9ð 9ð 9ð 9ð 9�ñ 9ô 9ð 9ðx!ð !ð !ð !ð !�:ñ !ô !ð !ðHð ð ð ð �ñ ô ð ð ð r.   