
    L&i(                         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         e/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/esoteric.pyanalyse_textzBrainfuckLexer.analyse_text2   s     S#d)),,o~o& 	( 	(ACxx188 A% Cxx188"a'"tn4553!6773D==cMF    N)__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesr
   TagBuiltinVariabler   r	   r   r   tokensr-    r.   r,   r   r      s          D
3CD!GI*+I
 tx t|$t}%)
 GV$ENGH
 GW%GV$GH
 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
0CkGI()I 	&!8$/4<( dhv}%V]#gw'!Z 
FFFr.   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 	*go" "  Z (w{+!8,U K  ! ! ! #*+ U (  ! ! ! #*,0 6w7GHU;EJJJ " 4*goFFH 5*goFFH !&*- -  $,/ d#g4
6FFFr.   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
YCiG	I 	W_jAAC Z (G$ +.k"U ',. . ./68 U "*/1 1 129,@
 U 2 ;@	A A A
  !&*-!6*U9U+++V4U '/46 6 67=? #D)I%
'FFFr.   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kGI$G 6I 	Z gn% 388G,,,dm<388I...?d#""k"&.)
FFFr.   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iGI 	  !" 'N%
FFFr.   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.   