a
    ñ»jv~  ã                   @   s@  d Z ddl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dlmZmZ ddlmZ g d¢ZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZ G dd„ deƒZ!G dd„ deƒZ"G dd„ deƒZ#G dd„ deƒZ$dS ) zÖ
    pygments.lexers.c_like
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for other C-like languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚincludeÚbygroupsÚinheritÚwordsÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ
Whitespace)ÚCLexerÚCppLexer)Ú_mql_builtins)Ú	PikeLexerÚ	NesCLexerÚ	ClayLexerÚECLexerÚ	ValaLexerÚ	CudaLexerÚ	SwigLexerÚMqlLexerÚArduinoLexerÚCharmciLexerÚOmgIdlLexerÚPromelaLexerc                   @   st   e Zd ZdZdZdgZddgZdgZdZe	dd	d
�e
fde
jfdee
eƒdfdefegdejdfdedfgdœZdS )r   z@
    For `Pike <http://pike.lysator.liu.se/>`_ source code.
    ÚPikeÚpikez*.pikez*.pmodztext/x-pikeú2.0)=ÚcatchÚnewÚprivateÚ	protectedÚpublicZgaugeÚthrowÚthrowsÚclassÚ	interfaceZ	implementÚabstractÚextendsÚfromÚthisÚsuperZconstantÚfinalÚstaticÚimportZuseÚexternÚinlineÚprotoÚbreakÚcontinueÚifÚelseÚforÚwhileÚdoÚswitchÚcaseÚasÚinÚversionÚreturnÚtrueÚfalseÚnullZ__VERSION__Z	__MAJOR__Z	__MINOR__Z	__BUILD__Z__REAL_VERSION__Z__REAL_MAJOR__Z__REAL_MINOR__Z__REAL_BUILD__Z__DATE__Z__TIME__Ú__FILE__Z__DIR__Ú__LINE__Z__AUTO_BIGNUM__Z__NT__Z__PIKE__Z__amigaos__Z_PragmaÚstatic_assertZdefinedZsscanfú\b©Úsuffixz„(bool|int|long|float|short|double|char|string|object|void|mapping|array|multiset|program|function|lambda|mixed|[a-z_][a-z0-9_]*_t)\bú(class)(\s+)Ú	classnamez[~!%^&*+=|?:<>/@-]ú[a-zA-Z_]\w*ú#popz\s*(?=>))Ú
statementsrN   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedr   r   ÚTyper   r   r
   r   r   ÚClassÚtokens© r^   r^   ú<E:\soccer\ml_env\Lib\site-packages\pygments/lexers/c_like.pyr      s,   
öõýí
ýêr   c                   @   sR   e Zd ZdZdZdgZdgZdgZdZde	dd	d
�e
fe	dd	d
�e
jfegiZdS )r   zd
    For `nesC <https://github.com/tinyos/nesc>`_ source code with preprocessor
    directives.
    ÚnesCÚnescz*.ncztext/x-nescsrcr"   rQ   )r,   r@   ÚasyncÚatomicÚcallÚcommandÚ	componentÚ
componentsÚconfigurationÚeventr-   ZgenericÚimplementationZincludesr+   Úmoduler$   ZnoraceÚpostÚprovidesÚsignalÚtaskÚusesrJ   rK   )
Z	nx_structZnx_unionZ	nx_int8_tZ
nx_int16_tZ
nx_int32_tZ
nx_int64_tZ
nx_uint8_tZnx_uint16_tZnx_uint32_tZnx_uint64_tN)rR   rS   rT   rU   rV   rW   rX   rY   rZ   r   r   r[   r   r]   r^   r^   r^   r_   r   B   s(   üûþýõÿr   c                   @   sÔ   e Zd ZdZdZdgZdgZdgZdZdZ	de
fd	ejfd
ejfedddd�efdefdefdejfdejfdejfdefdedfdedfgdejfdefgdefgdedfedƒgdedfedƒedƒgdœZdS ) r   z
    For Clay source.
    ÚClayz*.clayÚclayztext/x-clayzhttp://claylabs.com/clayr"   ú\s+z//.*?$ú/(\\\n)?[*][\s\S]*?[*](\\\n)?/)1r'   r%   r3   r@   ÚrecordÚvariantÚinstanceÚdefineÚoverloadr   ZexternalÚaliasZrvalueÚrefÚforwardr5   ZnoinlineZforceinlineÚenumÚvarÚandÚorÚnotr9   r:   ÚgotorC   r<   r>   r?   r7   r8   r;   rA   rD   rE   Útryr#   r(   ÚfinallyÚonerrorZstaticassertÚevalÚwhenZnewtyperG   rH   Z
__COLUMN__Z__ARG__rJ   ©ÚprefixrL   z[~!%^&*+=|:<>/-]z[#(){}\[\],;.]z0x[0-9a-fA-F]+[LlUu]*z
\d+[LlUu]*z\b(true|false)\bz(?i)[a-z_?][\w?]*z"""Útdqsú"Údqsz(?i)\\(x[0-9a-f]{2}|.)z[^\\"]+ú\nrP   ÚstringsÚnl)ÚrootrŽ   r�   rŒ   rŠ   N)rR   rS   rT   rU   rV   rX   rW   rY   ÚurlrZ   r   r	   ÚSingleÚ	Multiliner   r   r
   r   r   ÚHexÚIntegerr   ÚBuiltinr   ÚEscaper   r]   r^   r^   r^   r_   r   ^   sJ   õõéþÿþýÛr   c                   @   sp   e Zd ZdZdZdgZddgZddgZdZd	Z	d
e
ddd�efe
ddd�ejfdeeeƒdfdejfegiZdS )r   z:
    For eC source code with preprocessor directives.
    ÚeCÚecz*.ecz*.ehztext/x-echdrztext/x-ecsrczhttps://ec-lang.orgz1.5rQ   )+Úvirtualr*   r%   r'   Úpropertyr3   Údeleter$   Znew0ZrenewZrenew0rx   ÚgetÚsetÚremoteZ	dllexportZ	dllimportZstdcallÚsubclassZ__on_register_moduleÚ	namespaceÚusingZtyped_objectZ
any_objectZincrefÚregisterÚwatchZstopwatchingZfirewatchersZ	watchableZclass_designerZclass_fixedZclass_no_expansionZissetZclass_default_propertyZproperty_categoryZ
class_dataZclass_propertyZ	thisclassZdbtableZdbindexZdatabase_openZdbfieldrJ   rK   )ÚuintÚuint16Úuint32Úuint64ÚboolÚbyteÚunicharÚint64rM   rN   z(null|value|this)\bN)rR   rS   rT   rU   rV   rW   rX   rY   r‘   rZ   r   r   r[   r   r   r   r–   r   r]   r^   r^   r^   r_   r   –   s.   	÷	÷
ÿþðÿr   c                   @   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
e
jdfde
jfdefdefdefde
jfde
jfgdefdedfdejfdejfdejfdejfdejfdejfdefdeeejeƒfdeeejƒfdefedd d!�efed"d d!�ejfd#eejeƒd$fd%eejeƒd&fd'eeej ƒfed(d d!�ej!fd)ej"fd*efge#d+ƒe$d,ƒge#d+ƒe#d-ƒd.efd/ed0fgd1ed0fd2ej%fd3efdefd4efgd5e
jd6fd7e
jd0fd8e
jd0fd9e
fgd*ej&d0fgd:ejd0fgd;œZ'd<S )=r   z<
    For Vala source code with preprocessor directives.
    ÚValaÚvalaÚvapiz*.valaz*.vapiztext/x-valazhttps://vala.devz1.1z^\s*#if\s+0Úif0z#^\s*#(?:if|elif|else|endif)\b[^\n]*r�   rs   z\\\nz//(\n|[\s\S]*?[^\\]\n)rt   z(?s)""".*?"""z[L@]?"Ústringz4L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'z%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z0x[0-9a-fA-F]+[Ll]?z0[0-7]+[Ll]?z\d+[Ll]?z[~!%^&*+=|?:<>/-]z2(\[)(Compact|Immutable|(?:Boolean|Simple)Type)(\])z$(\[)(CCode|(?:Integer|Floating)Type)z
[()\[\],.])!r@   Úbaser7   r?   r#   Z	constructr8   r   rœ   r=   r:   r}   r„   r;   Zforeachr�   r9   rA   ÚisÚlockr$   ÚoutÚparamsrC   rž   Úsizeofr>   r/   r(   rƒ   Ztypeofr<   ÚyieldrJ   rK   )r,   ÚconstZdelegateZdynamicZensuresr4   r5   ZinternalÚoverrideZownedr%   r&   r'   r{   Úrequiresrn   r2   r)   Zunownedr~   rš   ÚvolatileZweakZyieldsz(namespace|using)(\s+)r¡   z)(class|errordomain|interface|struct)(\s+)r*   ú(\.)([a-zA-Z_]\w*))Úvoidr©   ÚcharÚdoubleÚfloatÚintÚint8Úint16Úint32r¬   ÚlongÚshortZsize_tZssize_tr±   Ztime_tZucharr¥   Úuint8r¦   r§   r¨   Zulongr«   Zushortz(true|false|null)\brO   Ú
whitespaceÚ	statementrQ   z[{}]ú;rP   r‹   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z	[^\\"\n]+z\\z^\s*#if.*?(?<!\\)\nú#pushz^\s*#el(?:se|if).*\nz^\s*#endif.*?(?<!\\)\nz.*?\nz[a-zA-Z_][\w.]*)rÉ   rQ   r�   rÊ   r±   r°   r*   r¡   N)(rR   rS   rT   rU   rV   rW   rX   rY   r‘   rZ   r	   ÚPreprocr   r   r’   r“   r   ÚCharr   ÚFloatr”   ÚOctr•   r
   r   r   r   Ú	Decoratorr   r   ÚDeclarationÚ	NamespaceÚ	Attributer[   r–   r   r   r—   r\   r]   r^   r^   r^   r_   r   ·   s¨   
ù
ÿÿ
ÿûúüûÿÿ
ÿüûÔ/þüû


ü
ÿ
ÿ®r   c                   @   sl   e Zd ZdZdZddgZddgZdgZdZd	Z	h d
£Z
h d£Zh d£Zh d£Zh d£ZddhZddd„ZdS )r   u$   
    For NVIDIA CUDAâ„¢ source.
    ÚCUDAz*.cuz*.cuhÚcudaÚcuztext/x-cudaz4https://developer.nvidia.com/category/zone/cuda-zonez1.6>   Z__noinline__Z__host__Z__forceinline__Z
__global__Ú
__device__>   Z__constant__Z
__shared__Z__restrict__rØ   >+   Zint2Zfloat4Zint4Zlong3Zuint1Z
ulonglong1Zfloat3Zuchar1Zulong4Zshort4Zushort3Zlong4Zshort3Zfloat2Zchar2Zuchar2Zchar3Zlong1Zshort2Z	longlong2Zulong2Z
ulonglong2Zfloat1Zchar4Zulong1Zuint2Zchar1Zdim3Zushort1Zushort2Zuint3Zint3Zuchar3Z	longlong1Zint1Zushort4Zuint4Zshort1Zdouble1Zlong2Zulong3Zdouble2Zuchar4>   ZgridDimZblockIdxZwarpSizeZ	threadIdxZblockDim>   Z__threadfenceZ__syncthreads_orZ__syncthreads_andZ__syncthreads_countZ__syncthreadsZ__threadfence_blockZ__threadfence_systemz<<<z>>>©r�   c                 c   sœ   t  | ||¡D ]ˆ\}}}|tu rŠ|| jv r2tj}nX|| jv rDtj}nF|| jv rVtj}n4|| j	v rhtj
}n"|| jv rztj}n|| jv rŠtj}|||fV  qd S ©N)r   Úget_tokens_unprocessedr   Úvariable_qualifiersr   r[   Úvector_typesÚ	variablesr–   Úexecution_confsÚPseudoÚfunction_qualifiersÚReservedÚ	functionsÚFunction©ÚselfÚtextÚstackÚindexÚtokenÚvaluer^   r^   r_   rÛ   7  s    





z CudaLexer.get_tokens_unprocessedN)rÙ   )rR   rS   rT   rU   rV   rX   rW   rY   r‘   rZ   rá   rÜ   rÝ   rÞ   rã   rß   rÛ   r^   r^   r^   r_   r     s   r   c                   @   sj   e Zd ZdZdZdgZddgZdgZdZdZ	d	e
fegd
e
jfd	e
fdejfegdœZh d£Zdd„ ZdS )r   z9
    For `SWIG <http://www.swig.org/>`_ source code.
    ÚSWIGÚswigz*.swgz*.iz	text/swigr"   g{®Gáz¤?z\$\**\&?\w+z(%[a-z_][a-z0-9_]*)z##*[a-zA-Z_]\w*)r�   rQ   >R   z%nestedworkaroundz%sizeofz%pythonprependz%ignorez%applyz
%pythonabcz	%javaenumz%kwargsz%nspacez%exceptionvarz%inlinez%warnz%insertz
%immutablez%renamez	%constantz%clearz
%exceptionz%beginz	%perlcodez%definez%mutablez%pythonappendz%extendz
%newobjectz%trackobjectsz%shadowz%luacodez%exceptionclassz	%callbackz
%refobjectz%pythonmaybecallz	%copyctorz	%fragmentz%typesz%javaconstvaluez%modulez%csnothrowexceptionz%definedz%bangz%warnfilterz
%fragmentsz%initz%extend_smart_pointerz
%delobjectz%deletez%featurez
%typecheckz%csenumz%descriptorz%ifcplusplusz%csmethodmodifiersz%varargsz%headerz%typemapz%pragmaz%javaexceptionz%pythoncallbackz%defaultctorz%csconstz%enddefz
%attributez%argz%catchesz	%implicitz%naturalvarz%pythonnondynamicz	%directorz%pythondynamicz%pythoncodez%csconstvaluez	%templatez%shared_ptrz%defaultz
%javaconstz%javamethodmodifiersz%ignorewarnz%defaultdtorz%unrefobjectz%implicitconvz%includez%importc                 C   s:   d}t  d| t j¡}|D ]}|tjv r0d} q6qd}q|S )Nr   z^\s*(%[a-z_][a-z0-9_]*)g\�Âõ(\ï?g…ëQ¸í?)ÚreÚfindallÚMr   Úswig_directives)rç   ÚrvÚmatchesÚmr^   r^   r_   Úanalyse_text{  s    
zSwigLexer.analyse_textN)rR   rS   rT   rU   rV   rW   rX   rY   rZ   Úpriorityr   r   rä   r	   rÍ   r]   rñ   rõ   r^   r^   r^   r_   r   I  s$   ýùúr   c                
   @   s’   e Zd ZdZdZg d¢Zg d¢ZdgZdZde	e
jdd	�efe	e
jdd	�ejfe	e
jdd	�ejfe	e
jdd	�ejfe	e
jd
dd�ejfegiZdS )r   zh
    For `MQL4 <http://docs.mql4.com/>`_ and
    `MQL5 <http://www.mql5.com/en/docs>`_ source code.
    ÚMQL)ÚmqlÚmq4Úmq5Úmql4Úmql5)z*.mq4z*.mq5z*.mqhz
text/x-mqlr"   rQ   rJ   rK   z(clr)?rˆ   N)rR   rS   rT   rU   rV   rW   rX   rY   rZ   r   r   Úkeywordsr   Zc_typesr[   Útypesr   rä   Ú	constantsÚConstantÚcolorsr   r]   r^   r^   r^   r_   r   Š  s"   ÿùÿr   c                   @   s\   e Zd ZdZdZdgZdgZdgZdZddhZ	h d	£Z
h d
£Zh d£Zh d£Zddd„ZdS )r   u˜   
    For `Arduino(tm) <https://arduino.cc/>`_ source.

    This is an extension of the CppLexer, as the ArduinoÂ® Language is a superset
    of C++
    ÚArduinoÚarduinoz*.inoztext/x-arduinoz2.1ÚsetupÚloop>   r   r�   r€   Úxor>Y   ÚcomplexZPROGMEMZstatic_castZSYSTEM_RESETZEXTERNALÚarrayZdynamic_castr}   rÆ   Zuint32_tZHIGHr2   ZLED_BUILTINZOUTPUTZLOWr5   r¹   Z_BoolZ_ComplexZatomic_llongzunsigned longZatomic_charZint16_tZREPORT_ANALOGr£   ZSYSEX_STARTr¾   r*   rE   rª   Z
atomic_intÚstructr   r'   r%   Zatomic_ucharÚexplicitr·   r±   r©   Zint64_tÚoperatorÚwordZatomic_ulongr&   ZANALOG_MESSAGEZFIRMATA_STRINGZuint8_tZatomic_ullongZatomic_longZuint64_trD   rÇ   Zint32_tr4   ZREPORT_DIGITALZuint16_tZatomic_ushortZreinterpret_castrÁ   zunsigned charÚautoÚtypedefZatomic_shortZINTERNALZfriendZINPUT_PULLUPr¼   ÚunionrÀ   rœ   rš   Z
_ImaginaryZatomic_uintÚunsignedZatomic_boolZINPUTzunsigned intZINTERNAL1V1rÂ   ZSET_PIN_MODEZatomic_scharZint8_tZINTERNAL2V56ÚbooleanZDIGITAL_MESSAGEr¿   Z
const_castÚsigned>W  ZcheckPINZGSM_SMSZlocalIPÚimageZgetKeyZisListeningÚattachZisAlphaNumericZendWriteZscrollDisplayRightZremoteIPÚrectZparseCommandZparseIntZanalogWriteZ
EsploraTFTZSPIZnoInterruptsÚheightZbeginTFTZrunShellCommandAsynchronouslyZEEPROMZStreamZWiFiZ	endPacketZbeginTransmissionZserialEventZSoftwareSerialZprintFirmwareVersionZisValidr¸   ZStepperZscanNetworksZKeyboardControllerr�   ZgetVoiceCallStatusZMouseControllerZ	isPressedZ
readStringÚcursorZplayFileÚFileIOZ
macAddressZMouseÚconnectZEsploraZknobReadZnoAutoscrollZmouseDraggedZpinModeZSSIDZshiftInZattachInterruptZ	readGreenÚreadÚcosZBSSIDZscrollDisplayLeftZdigitalReadZreadBlueZparsePacketZ	YunServerZGSMVoiceCallZ	noDisplayÚtanZisHexadecimalDigitÚpointZcheckRegZtransferZGSMModemZKeyboardZ
attachGPRSZFirmataZ	pauseModeÚseekÚpowZ	getSocketZclickZcityNameReadZ	writeJSONZdetachInterruptZsetModeÚrunZ
HttpClientZendSMSZcountryNameWriteÚ	availableZisActionDoneZwriteRGBZ
playMelodyZmillisZturnÚmkdirZreadRedÚabsZbitReadZreadJoystickButtonZTFTZisLowerCaseÚwriteZ
mouseMovedÚshutdownZleftToRightZServoZ
createCharZwriteRedZprintlnÚprocessZ	onRequestZcompassReadZisWhitespaceZclearScreenZ
disconnectZ	loadImageZ
analogReadZ
interruptsZisPINZcheckPUKZ	exitValueZMailboxZsendDigitalPortsZmaintainZwaitContinueZgetSignalStrengthZlowByteZ
WiFiServerÚprepareZ
parseFloatZgetCurrentCarrierZnoStrokeZ
WiFiClientZbeginPacketÚremoveZbitClearZupdateIRÚrunningZWiFiUDPÚsizeÚexistsZsetTextSizeZGSMZrunShellCommandZaddParameterZ	SchedulerZreadJoystickSwitchZreadMessageZ
writeGreenÚflushZ	switchPINZisAlphaZisDigitZ
sendAnalogZnoBlinkZisPunctZreadStringUntilZmotorsWriteÚConsoleZ
getXChangeÚprintZ
debugPrintÚ
backgroundZgetAsynchronouslyZ	voiceCallÚpositionZEthernetClientZ	getButtonÚmapZisGraphZreadBytesUntilZdisplayLogosZisSpacerç   ZClientÚputZdrawBMPZAudioZ
sendStringZmessageAvailableZ
keyPressedZRobotControlZlistenOnLocalhostZIRreadZrunAsynchronouslyÚTaskÚbeginZopenNextFileZblinkVersionZ	GSMClientZ
getPINUsedZsetClockDividerZEthernetZ
readSliderZ	onReceiveZ
tempoWriteZuserNameReadZuserNameWriteZnoFillZ
getYChangeÚcircleZ	startLoopZanalogWriteResolutionZrequestFromZanalogReadResolutionZrewindDirectoryZreadJoystickYZ	getResultZbeginSMSZendTransmissionZshiftOutÚfindZreadLightSensorZgetBandZretrieveCallingNumberZdigitalWriteÚopenZ	sendSysexZ	getOemKeyZprocessInputÚbitZGSMBandZ	setCursorZnoListenOnLocalhostZcountryNameReadZrobotNameWriteZUSBHostZ	tuneWriteZsetSpeedZ	changePINZgetIMEIÚstrokeZrightToLeftÚdelayZ	YunClientZnoCursorÚfillZ
randomSeedÚProcessÚrmdirZbeginSDZgetModifiersÚendÚmoveZPImageZreadNetworksZwriteMicrosecondsZpressZ
motorsStopZattachedZisDirectoryZ	writeBlueZGSMPINÚ	constrainZbeepZSerialÚServerZhighByteZ
subnetMaskÚmaxÚreadyZlineFollowConfigZnoBufferZ
readButtonZsetDNSZ	isControlZkeyboardReadZisAsciiZnoToneZsetFirmwareVersionZ
setPINUsedÚconfigÚreleaseZdrawCompassÚstepÚminZ
beginWriteZEthernetUDPZreadAccelerometerZpointToZdelayMicrosecondsZ	findUntilZ	gatewayIPZanalogReferenceÚoverflowZ
autoscrollZ
releaseAllZtoneÚsinZmouseReleasedÚclearZisPrintableÚlineZreadTemperatureZ	readBytesZEthernetServerZisUpperCaseÚrandomZprintVersionÚFileZ
FileSystemZbitWriteÚwidthZ
remotePortÚ	connectedZcityNameWriteZpulseInÚcloseÚhomeZBridgeZbitSetÚdisplayZ
GSMScannerZ
RobotMotorZ	GSMServerZbeginSpeakerÚsqrtÚbufferZkeyReleasedZencryptionTypeZGPRSÚpeekZsetDataModeZ
answerCallZsendDigitalPortPairZreadMicrophoneZ	IPAddressZsetBitOrderZhangCallZrobotNameReadZLiquidCrystalÚdetachZsetBandZmousePressedZreadJoystickXZremoteNumberZwriteMessageZRSSIÚmicrosÚlistenÚstopZWireZSDÚ
setTimeoutÚblink>   Z	constexprÚmutableZthread_localÚtypeidÚdecltyperI   r¡   Znoexceptr¢   ÚasmZrestrictr/   ÚtemplateZalignofÚtypenamerÙ   c                 c   s¨   t  | ||¡D ]”\}}}|| jv r2|tj|fV  q|| jv rJ|t|fV  q|| jv rd|tj	|fV  q|| j
v r||t|fV  q|| jv r–|tj|fV  q|||fV  qd S rÚ   )r   rÛ   Ú	structurer   r–   Ú	operatorsr
   rÞ   r   râ   Úsuppress_highlightrã   rä   rå   r^   r^   r_   rÛ     s    




z#ArduinoLexer.get_tokens_unprocessedN)rÙ   )rR   rS   rT   rU   rV   rW   rX   rY   rZ   rb  rc  rÞ   rã   rd  rÛ   r^   r^   r^   r_   r   ¢  s   Ar   c                   @   sT   e Zd ZdZdZdgZdgZdZg Zdde	e
eƒdfed	ƒe
fed
ƒe
fegiZdS )r   zO
    For `Charm++ <https://charm.cs.illinois.edu>`_ interface files (.ci).
    ÚCharmciÚcharmciz*.ciz2.4rý   z(module)(\s+)rN   )Z
mainmoduleZ	mainchareZcharer  ÚgroupZ	nodegroupÚmessageZconditional)ÚentryZ	aggregateZthreadedZsyncZ	exclusiveZnokeepÚnotraceZ	immediateZ	expeditedr5   ÚlocalÚpythonZaccelZ	readwriteZ	writeonlyZ
accelblockZmemcriticalÚpackedZvarsizeZinitprocZinitnodeZinitcallZ	stacksizeZ
createhereZ
createhomeZreductiontargetÚigetZnocopyr\  Z
migratableÚreadonlyN)rR   rS   rT   rU   rV   rW   rX   rZ   rY   r   r   r   r   r   r]   r^   r^   r^   r_   r   !  s"   ÿúõÿr   c                   @   sê  e Zd ZdZdZdZdgZddgZg ZdZ	dZ
ed	d
dd�efdeejejƒdfdeejejejejƒfdeejejejejƒfdeejejƒfdejfdejfdejfdejfdejfdefedƒefe
efdefgedƒdedfedƒdefded fgded!fedƒed ƒgd"e
 ejd#fgedƒd$efd%ejfed&ƒd'ed fgedƒed(d
dd�ejfed)d
dd�ej fed*d
d+d�eee!ej"ƒfed,d
dd�efd-eee!ej"ƒd.fd/eej#e!ej#ƒfd0eeje!eƒfd1efedƒed&ƒgd2œZ$d3S )4r   zJ
    Lexer for Object Management Group Interface Definition Language.
    z!OMG Interface Definition Languagez'https://www.omg.org/spec/IDL/About-IDL/zomg-idlz*.idlz*.pidlz2.9z((::)?\w+)+)rD   rE   z(?i)rJ   rˆ   z
([Ll]?)(")r±   z([Ll]?)(\')(\\[^\']+)(\')z([Ll]?)(\')(\\\')(\')z([Ll]?)(\'.\')z[+-]?\d+(\.\d*)?[Ee][+-]?\d+z)[+-]?(\d+\.\d*)|(\d*\.\d+)([Ee][+-]?\d+)?z(?i)[+-]?0x[0-9a-f]+z[+-]?[1-9]\d*z[+-]?0[0-7]*z[\+\-\*\/%^&\|~])z<<z>>z[{};:,<>\[\]]rÉ   z\(rÌ   Úvaluesú=z\)rP   Úannotation_paramsú@Úannotation_params_maybez[{,]z\w+Úannotation_applz\})r  r¹   rA   rµ   Zinoutrk  )r¾   ÚanyÚnativeZbitfieldr  r  r¿   ZwcharÚoctetrÇ   rÆ   rÃ   rÈ   rÄ   rÅ   r¬   r¦   r§   r¨   rÁ   rÀ   ÚfixedÚsequencer±   Zwstringr1  )	z@annotationr	  r  Zbitsetr+   Ú	exceptionZ	valuetypeZ	eventtyperf   z
(\s+)(\w+))&r,   rz   Ú	attributer?   Z	connectorZconsumesÚcontextZcustomr   ZemitsÚfactoryÚfinderZ	getraisesrQ  r3   ZmanagesZ
mirrorportZmultipleZObjectZonewayZ
primarykeyr%   ÚportZporttyperm   r'   Z	publishesZraisesro  Z	setraisesZsupportsr>   Ztruncatabler]  ra  Z
typeprefixrp   Z	ValueBasez(?i)(enum|bitmask)(\s+)(\w+)r}   z(?i)(module)(\s+)(\w+)z(\w+)(\s*)(=)z[\(\)])rp  rr  rt  ru  r}   r�   N)%rR   rS   rT   rU   rV   r‘   rW   rX   rY   rZ   Zscoped_namer   r   r   r   ÚAffixÚDoublerÎ   r—   rÏ   r”   r•   rÐ   r
   r   r   r   r   rÑ   r   r   rÒ   r[   r   r\   rÓ   r]   r^   r^   r^   r_   r   >  sœ   ÿÿ
ðûýÿûýýúúýýøø	ÿÿß×r   c                   @   sð   e Zd ZdZdZdgZg d¢ZdgZdZdZ	de
fd	efd
ee
ejƒfegeddd�ejfgeddd�efeddd�ejfeddd�efeddd�ejfeddd�ejfde
jfeddd�ejfeddd�efeddd�ejfdefg
dœZdS )r   z2
    For the Promela language used with SPIN.
    ÚPromelaÚpromela)z*.pmlz*.promz*.prmz	*.promelaz*.prz*.pmztext/x-promelaz(https://spinroot.com/spin/whatispin.htmlz2.18z(\[\]|<>|/\\|\\/)|(U|W|V)\brs  r½   )r8  r©   rª   ÚpidrÇ   rÂ   r  rJ   rK   )rc   r7   Zd_stepr=   Zodr;   rA   r‚   r9   ÚfiZunless)ÚassertZget_priorityZprintfZprintmZset_priority)Zc_codeZc_declZc_exprZc_stateZc_track)Ú_Ú_lastZ_nr_prZ_pidZ	_priorityr:   Znp_ZSTDIN)ÚemptyÚenabledr†   ÚfullÚlenZnemptyZnfullZpc_valuezrun\b)ZactiveZchanZ
D_proctypeZhiddenÚinitrk  ÚmtypeÚneverrj  ZproctypeÚshowÚtracer  ZxrZxs)rö   Úprovided)r5   ZltlÚselectzskip\b)rQ   rþ   rý   N)rR   rS   rT   rU   rV   rW   rX   rY   r‘   rZ   r
   r   r   r   rÔ   r   r   r   r[   rä   r–   ÚWordrÒ   r]   r^   r^   r^   r_   r   ›  s|   	üþýþ	þýþýþýþýþýýüÿþÿþÕòr   )%rU   rî   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   Zpygments.lexers.c_cppr   r   Zpygments.lexersr   Ú__all__r   r   r   r   r   r   r   r   r   r   r   r   r^   r^   r^   r_   Ú<module>   s$   
 ,(8!c/A]