
    (                         S r SSKJrJrJrJr  SSKJrJrJ	r	J
r
JrJrJrJrJr  / SQr " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)z
pygments.lexers.esoteric
~~~~~~~~~~~~~~~~~~~~~~~~

Lexers for esoteric languages.

:copyright: Copyright 2006-2023 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                       \ rS rSrSrSrSrSS/rSS/rS	/r	S
\
R                  4S\
R                  4S\
R                  4S\4/S\S4S\4\" S5      /S\S4S\S4\" S5      /S.rS rSrg)r      z,
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                     SnSn[        S[        U 5      5      nU SU  H'  nUS:X  d  US:X  a  US-  nUS:X  d  US:X  d  M"  US-  nM)     US	U-  :  a  g
US	U-  :  a  g
SnSU ;   a  US-  nU$ )zUIt'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         +lib/third_party/pygments/lexers/esoteric.pyanalyse_textBrainfuckLexer.analyse_text2   s     S#d),o~&ACx18 A% Cx18"a'"	 ' tn45!67D=cMF     N)__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenames	mimetypesr
   TagBuiltinVariabler   r	   r   r   tokensr.   __static_attributes__r1   r0   r-   r   r      s     D
3CD!GI*+I
 txx t||$t}}%)
 GV$ENH
 GW%GV$H
F(r0   r   c                       \ rS rSrSrSrSrS/rS/rS/r	SS	\
4S
\4S\R                  4S\R                  4S\4S\R                   4S\R$                  4S\R&                  4S\4S\4S\4S\4/0rSrg)r   L   zA
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+r1   N)r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r   r   r
   r>   r=   r	   r<   r   DoubleSingler   r   r?   r@   r1   r0   r-   r   r   L   s    
 D
0CkGI()I 	&!8$/4<<( dhhv}}%V]]#gw'!Z 
Fr0   r   c                      \ rS rSrSrSrSrSS/rSS/rS	S
\	" \
\R                  \
5      4S\
4S\4S\4S\4S\4\" SSS9\4\" SSS9\R"                  4S\R$                  4\" SSS9\R$                  4S\	" \R                  \
\R                  5      4S\	" \R                  \
\R                  5      4S\R(                  4S\4S\R*                  4S\4S\R0                  4S\4/0rSrg) r   j   z^
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)rE   /\*(.|\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*r1   N)r2   r3   r4   r5   r6   r7   r8   r9   r:   r   r   r   Preprocr   r   r   r	   TypeReservedr   HexFloatr   r
   r=   r?   r@   r1   r0   r-   r   r   j   sc   
 D
(C GX&I 	*goo"  Z (w{+!8, K  ! #*+  (  ! #*,,0 6w7G7GH;EJ  " 4*gooFH 5*gooFH !&**- -  $,,/ d#g4
6Fr0   r   c                      \ rS rSrSrSrSrS/rS/rSS\	" \
\R                  \
5      4S	\
4S
\4S\4S\4S\4\" SSS9\4\" SSS9\R                   4\" SSS9\R"                  4S\R&                  4S\4\" SSS9\4\" SSS9\4S\4/0rSrg)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   rM   rE   rN   z
(//|--).*$z[<>\[(){},:;=\]]z\.\.)archarm11capschild_ofia32irqmapsobjectsrq   rr   )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]*r1   N)r2   r3   r4   r5   r6   r7   r8   r9   r:   r   r   r   r   r   r   r	   r   r   r   r   r
   r?   r@   r1   r0   r-   r   r      s    D
YCiG	I 	W__jAC Z (G$ +.k" ',./68  "*/129,,@
  2 ;@	A
  !&**-!6*9U+V4 '/467=? #D)I%
'Fr0   r   c                      \ rS rSrSrSrS/rS/rSrSr	SS	\
4S
\R                  4SSR                  \5      -  \R                  4SSR                  \	5      -  \R                   4S\4S\4S\4S\4S\R(                  4/	0rSrg)r      zr
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   rE   z;.*$z\b(%s)\b|z[A-Za-z_]\w+z[-+*/%]z[#$@<>]z[.,]z[-+]?\d+r1   N)r2   r3   r4   r5   r6   r7   r9   r:   opcodes	modifiersr   r   rG   joinr
   Function	Decoratorr   r   r   Integerr?   r@   r1   r0   r-   r   r      s     DkGI$G 6I 	Z gnn% 388G,,dmm<388I..?d#""k"&..)
Fr0   r   c                   @    \ rS rSrSrSrSrS/rS/rSS\	4S	\
4/0rS
rg)r   i  z7
Aheui is esoteric language based on Korean alphabets.
Aheuizhttp://aheui.github.io/aheuiz*.aheuir   u  [나-낳냐-냫너-넣녀-녛노-놓뇨-눟뉴-닇다-닿댜-댷더-덯뎌-뎧도-돟됴-둫듀-딓따-땋땨-떃떠-떻뗘-뗳또-똫뚀-뚷뜌-띟라-랗랴-럏러-렇려-렿로-롷료-뤃류-릫마-맣먀-먛머-멓며-몋모-뫃묘-뭏뮤-믷바-밯뱌-뱧버-벟벼-볗보-봏뵤-붛뷰-빃빠-빻뺘-뺳뻐-뻫뼈-뼣뽀-뽛뾰-뿧쀼-삏사-샇샤-샿서-섷셔-셯소-솧쇼-숳슈-싛싸-쌓쌰-썋써-쎃쎠-쎻쏘-쏳쑈-쑿쓔-씧자-잫쟈-쟣저-젛져-졓조-좋죠-줗쥬-즿차-챃챠-챻처-첳쳐-쳫초-촣쵸-춯츄-칗카-캏캬-컇커-컿켜-켷코-콯쿄-쿻큐-킣타-탛탸-턓터-텋텨-톃토-톻툐-퉇튜-틯파-팧퍄-퍟퍼-펗펴-폏포-퐇표-풓퓨-픻하-핳햐-햫허-헣혀-혛호-홓효-훟휴-힇].r1   N)r2   r3   r4   r5   r6   r7   r8   r9   r:   r   r   r?   r@   r1   r0   r-   r   r     sJ     D
#CiGI 	  !" 'N%
Fr0   r   N)r6   pygments.lexerr   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   __all__r   r   r   r   r   r   r1   r0   r-   <module>r     sw    @ ?# # #'6Z 6r: <A* AH9 9x!: !H r0   