Ë s¢Ç=s꜃ãóº—dZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z ddl mZmZmZmZmZmZmZmZmZddgZGd„d e«ZGd „de«ZGd „de«Zy) zÊ pygments.lexers.c_cpp ~~~~~~~~~~~~~~~~~~~~~ Lexers for C/C++ languages. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. éN)Ú RegexLexerÚincludeÚbygroupsÚusingÚthisÚinheritÚdefaultÚwords)Ú get_bool_opt) ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚ PunctuationÚ WhitespaceÚCLexerÚCppLexercó —eZdZdZdZdZdZdZdZdZ dZ d Z d e ›d e ›d �Z d e jdfde jdfdezdzeee«e j«dfdezdzeee«e j«dfdezdzeeej(ee«fdefdefdefe e j.fe e j0fde j0fg ed«ed«deej6e«dfdeej6ej8ej8ej8«fdezd zezd!zezd"zezd#zezd$zej<fd%ezd zezd!zezd"zezd&zezd'zej<fd(ezd)zezd*zezd+zezd,zej<fd-ezezej>fd.ezej@fd/ezejBfd0ezezejDfd1e#fd2efd3ejHfeefge%d4d5d6¬7«e&jNfe%d8d6¬9«e&jPfgd:ee&e«d;fdd6¬9«e&fe%d?d6¬9«e&jNfd@e&jNfe%dAd5d6¬7«e&jNfgedB«ed«dCe zdDze zdEze zdEze zdFze zdGzeee«eedB¬H«ejReedB¬H«ee«eedB¬H«ee«e«dIfdCe zdDze zdEze zdEze zdFze zdJzeee«eedB¬H«ejReedB¬H«ee«eedB¬H«ee«e«fed«e*dK«gedB«edL«dMefdNedOfgedB«edL«dPefdQedRfdMedOfgdSedOfdTejVfdUefdefdVefgdCezdWzezdXzeee«e jee«e jXe j.«fdCezdWzezdYzeee«e jee«e jXe j.«fdZe jfd[e j0fd\e j.dOfd]e jfd^e jfde jdOfgd_e jdRfd`e jdOfdae jdOfdbe fgeejZdOfdcedOfe*dO«gddedOfeej\fedB«edL«gdeœ Z/hdf£Z0hdg£Z1hdh£Z2hdi£Z3dj„Z4dmdk„Z5yl)nÚ CFamilyLexerzg For C family source code. This is used as a base class to avoid repetitious definitions. z\s*(?:/[*].*?[*]/\s*)?z[0-9a-fA-F](\'?[0-9a-fA-F])*z \d(\'?\d)*z!(([uU][lL]{0,2})|[lL]{1,2}[uU]?)?z4(?!\d)(?:[\w$]|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8})+z7(?!\d)(?:[\w$]|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|::)+z//(?:.|(?<=\\)\n)*\nz5/(?:\\\n)?[*](?:[^*]|[*](?!(?:\\\n)?/))*[*](?:\\\n)?/z \s*(?:(?:(?:z)|(?:z))\s*)*z^#if\s+0Úif0z^#Úmacroz^(z )(#if\s+0)z)(#)z4(^[ \t]*)(?!(?:public|private|protected|default)\b)(z)(\s*)(:)(?!:)z\nz[^\S\n]+z\\\nz/(\\\n)?[*][\w\W]*ÚkeywordsÚtypesz([LuU]|u8)?(")ÚstringzA([LuU]|u8)?(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')z0[xX](z\.z|\.Ú|z )[pP][+-]?z[lL]?z(-)?(z )[eE][+-]?z[fFlL]?z(-)?((z\.(z)?|\.z )[fFlL]?)|(z[fFlL])z (-)?0[xX]z(-)?0[bB][01](\'?[01])*z(-)?0(\'?[0-7])+z(-)?z[~!%^&*+=|?:<>/-]z [()\[\],.]z(true|false|NULL)\b)Úint8Úint16Úint32Úint64Úwchar_tÚ__ú\b©ÚprefixÚsuffix) ÚboolÚintÚlongÚfloatÚshortÚdoubleÚcharÚunsignedÚsignedÚvoidÚ_BitIntÚ__int128©r(z(struct|union)(\s+)Ú classnamezcase\bú case-value)ÚasmÚautoÚbreakÚconstÚcontinuer ÚdoÚelseÚenumÚexternÚforÚgotoÚifÚregisterÚ restrictedÚreturnÚsizeofÚstructÚstaticÚswitchÚtypedefÚvolatileÚwhileÚunionÚ thread_localÚalignasÚalignofÚ static_assertÚ_Pragma)ÚinlineÚ_inlineÚ__inlineÚnakedÚrestrictÚthreadz(__m(128i|128d|128|64))\b)r8ÚbasedÚexceptÚstdcallÚcdeclÚfastcallÚdeclspecÚfinallyÚtryÚleaveÚw64Ú unalignedÚraiseÚnoopÚ identifierÚ forceinlineÚassumeÚ whitespaceÚ(z (?:[&*\s])+)(z)(z)(\([^;"\')]*?\))(z)([^;{/"\']*)(\{))ÚstateÚfunctionz)([^;/"\']*)(;)Ú statementÚ statementsz\}z[{;]ú#popÚ;z\{z#pushÚ"zO\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})z [^\\"\n]+z\\z )(include)(z)("[^"]+")([^\n]*)z)(<[^>]+>)([^\n]*)z[^/\n]+z/[*](.|\n)*?[*]/z//.*?\nÚ/z (?<=\\)\nz^\s*#if.*?(?)z(?ÚDIRÚFILEÚdiv_tÚoff_tÚfpos_tÚldiv_tÚsize_tÚtime_tÚwint_tÚclock_tÚjmp_bufÚssize_tÚva_listr#Úwctype_tÚ mbstate_tÚ ptrdiff_tÚ wctrans_tÚ sig_atomic_t>Úint8_tÚint16_tÚint32_tÚint64_tÚuint8_tÚintmax_tÚintptr_tÚuint16_tÚuint32_tÚuint64_tÚ uintmax_tÚ uintptr_tÚ int_fast8_tÚ int_fast16_tÚ int_fast32_tÚ int_fast64_tÚ int_least8_tÚ uint_fast8_tÚ int_least16_tÚ int_least32_tÚ int_least64_tÚ uint_fast16_tÚ uint_fast32_tÚ uint_fast64_tÚ uint_least8_tÚuint_least16_tÚuint_least32_tÚuint_least64_t>Úid_tÚdev_tÚgid_tÚino_tÚkey_tÚpid_tÚsig_tÚuid_tÚmode_tÚnfds_tÚrlim_tÚtimer_tÚsigset_tÚsigval_tÚ clockid_tÚ cpu_set_tÚ cpumask_tÚ siginfo_tÚ socklen_tÚ sighandler_t>%Ú atomic_intÚ atomic_boolÚ atomic_charÚ atomic_longÚ atomic_uintÚ atomic_llongÚ atomic_scharÚ atomic_shortÚ atomic_ucharÚ atomic_ulongÚ atomic_size_tÚ atomic_ullongÚ atomic_ushortÚatomic_wchar_tÚatomic_char16_tÚatomic_char32_tÚatomic_intmax_tÚatomic_intptr_tÚatomic_ptrdiff_tÚatomic_uintmax_tÚatomic_uintptr_tÚatomic_int_fast8_tÚatomic_int_fast16_tÚatomic_int_fast32_tÚatomic_int_fast64_tÚatomic_int_least8_tÚatomic_uint_fast8_tÚatomic_int_least16_tÚatomic_int_least32_tÚatomic_int_least64_tÚatomic_uint_fast16_tÚatomic_uint_fast32_tÚatomic_uint_fast64_tÚatomic_uint_least8_tÚatomic_uint_least16_tÚatomic_uint_least32_tÚatomic_uint_least64_tc óÀ—t|dd«|_t|dd«|_t|dd«|_t|dd«|_t j |fi|¤Žy)NÚstdlibhighlightingTÚc99highlightingÚc11highlightingÚplatformhighlighting)r rÞrßràrárÚ__init__)ÚselfÚoptionss ú:/usr/lib/python3.12/site-packages/pygments/lexers/c_cpp.pyrâzCFamilyLexer.__init__øs^€Ü".¨wÐ8LÈdÓ"SˆÔÜ+¨GÐ5FÈÓMˆÔÜ+¨GÐ5FÈÓMˆÔÜ$0°Ð:PÐRVÓ$WˆÔ!Ü×јDÑ, GÓ,óc#óÀK—tj|||«D]À\}}}|tur«|jr||jvrt j }n€|jr||jvrt j }nU|jr||jvrt j }n*|jr||jvrt j }|||f–—ŒÂy­w)N) rÚget_tokens_unprocessedrrÞÚ stdlib_typesrÚTyperßÚ c99_typesràÚc11_atomic_typesráÚ linux_types)rãÚtextÚstackÚindexÚtokenÚvalues rårèz#CFamilyLexer.get_tokens_unprocessedÿs·èø€ä×1Ñ1°$¸¸eÖDñ ˆE�5˜%àœ‰}Ø×*Ò*¨u¸×8IÑ8IÑ/IÜ#ŸL™L‘EØ×)Ò)¨e°t·~±~Ñ.EÜ#ŸL™L‘EØ×)Ò)¨e°t×7LÑ7LÑ.LÜ#ŸL™L‘EØ×.Ò.°5¸D×RÐRYÐZÐð ˜'Ÿ/™/¨5Ð 1Ø �7—?‘? GÐ ,à �D‰[˜=Ñ (Ù ‘e˜D“k 7§?¡?Ó 3°Uð <à �D‰[˜6Ñ !Ù ‘e˜D“k 7§?¡?Ó 3°Wð >ððñ ð/ñ /ñ �j $§*¡*¨j¸+Ó Fð  Hð �JÐ Ø ˜*Ð %Ø �dˆOØ ˜gŸn™nÐ -Ø  ×!2Ñ!2Ð 3à " G×$5Ñ$5Ð 6ð/ ñ4 �JÓ Ù �GÓ Ø ¡¨¯©°vÓ >ÀÐ IØ QÙ �f—l‘l F§K¡K°·±¸f¿k¹kÓ Jð Lð˜Ñ ! EÑ )¨HÑ 4°vÑ =ÀÑ HØ ñØñØ,ñ-Ø/7ñ8Ø:BñCØDJÇLÁLð Rð˜Ñ  5Ñ (¨8Ñ 3°fÑ <¸xÑ GÈ$Ñ NØ ñØ%ñ&Ø(0ñ1Ø3=ñ>Ø?E¿|¹|ð Mà ˜Ñ ! FÑ *¨XÑ 5¸Ñ @Ø ñØ&ñ'Ø)1ñ2Ø4>ñ?Ø@FÇ Á ð Nà ˜HÑ $ zÑ 1°6·:±:Ð >Ø '¨*Ñ 4°f·j±jÐ AØ  :Ñ -¨v¯z©zÐ :Ø �xÑ  *Ñ ,¨f¯n©nÐ =Ø ! 8Ð ,Ø ˜KÐ (Ø # T§\¡\Ð 2Ø �TˆNð- ñ2ÐAÈ%Ø ô"Ø#*×#3Ñ#3ð 5á ð à(-ô/à07· ± ð >ð ð$¡X¨g°zÓ%BÀKÐ PØ ˜ Ð .Ù ðVð  ô !ð #*ð  +ñ ðØ&+ô-Ø.5×.>Ñ.>ð @ð*¨7×+;Ñ+;Ð <á ð7ð  Uô ,ð .5×-=Ñ-=ð  ?ð ñ, �LÓ !Ù �JÓ à Ð%Ñ %ð)ñØ&ñ'ð*ñà%ñ&ð)ñð'ñ'ð*ñð 'ñ 'ð *!ñ !ñ‘e˜D“k¡5¨°\Ô#BØ—m‘m¡U¨4°|Ô%DÙ˜D“k¡5¨°\Ô#BÙ˜D“k ;ó0ðð ðÐ%Ñ %ð)ñØ&ñ'ð*ñà%ñ&ð)ñð'ñ'ð*ñð 'ñ 'ð *ñ ñ‘e˜D“k¡5¨°\Ô#BØ—m‘m¡U¨4°|Ô%DÙ˜D“k¡5¨°\Ô#BÙ˜D“k ;ó0ð 1ñ �GÓ Ù �KÓ ð; ñ@ �LÓ !Ù �LÓ !Ø �KÐ Ø �k 6Ð *ð  ñ �LÓ !Ù �LÓ !Ø �+Ð Ø �K Ð )Ø �K Ð (ð  ð�6˜6Ð "ð<Ø=C¿]¹]ð Là ˜6Ð "Ø �fÐ Ø �FˆOð  ð�$‰Y�~Ñ % dÑ *Ð+@Ñ @Ù™˜t› g§o¡o±u¸T³{Ø ×,Ñ,¨g¯n©nó>ð ?ð�$‰Y�~Ñ % dÑ *Ð+@Ñ @Ù™˜t› g§o¡o±u¸T³{Ø ×,Ñ,¨g¯n©nó>ð ?𘟙Р)Ø  '×"3Ñ"3Ð 4Ø ˜Ÿ™¨Ð 0Ø �7—?‘?Ð #Ø ˜7Ÿ?™?Ð +Ø �G—O‘O VÐ ,ð  ð$ W§_¡_°gÐ >Ø $ g§o¡o°vÐ >Ø &¨¯©¸Ð @Ø �wÐ ð  ð�T—Z‘Z Ð (à ˜$ Ð 'Ù �F‹Oð  ð  ¨VÐ 4Ø �T—]‘]Ð #Ù �LÓ !Ù �LÓ !ð  ñ{c€FòJ8€Lò:€IòA€Kò CÐò-ô &rærcó‚—eZdZdZdZdgZgd¢Zgd¢ZdZe dd¬ «e fe ge d d¬ «e jfe gd œZ d „Zy )raÍ For C source code with preprocessor directives. Additional options accepted: `stdlibhighlighting` Highlight common types found in the C/C++ standard library (e.g. `size_t`). (default: ``True``). `c99highlighting` Highlight common types found in the C99 standard library (e.g. `int8_t`). Actually, this includes all fixed-width integer types. (default: ``True``). `c11highlighting` Highlight atomic types found in the C11 standard library (e.g. `atomic_bool`). (default: ``True``). `platformhighlighting` Highlight common types found in the platform SDK headers (e.g. `clockid_t` on Linux). (default: ``True``). ÚCÚc)z*.cz*.hz*.idcz*.x[bp]m)z text/x-chdrz text/x-csrczimage/x-xbitmapzimage/x-xpixmapçš™™™™™¹?) Ú_AlignasÚ_AlignofÚ _NoreturnÚ_GenericÚ _Thread_localÚ_Static_assertÚ _ImaginaryÚnoreturnÚ imaginaryÚcomplexr%r5)Ú_BoolÚ_ComplexÚ_Atomic)rrcóœ—tjd|tj«rytjd|tj«ryy)Nz^\s*#include [<"]rz ^\s*#ifn?def )ÚreÚsearchÚ MULTILINE©rîs råÚ analyse_textzCLexer.analyse_text9s7€Ü �9‰9Ð)¨4´·±Ô >ØÜ �9‰9Ð% t¬R¯\©\Ô :Øð ;ræN)rórôrõröÚnameÚaliasesÚ filenamesÚ mimetypesÚpriorityr rrrêrr*rrærårrsw„ñð, €D؈e€GÚ3€IÚT€IØ€HñðTðôð 'ð (ð ð  ñÐ3¸EÔ BÀGÇLÁLÐ QØ ð ñ €Fóræc ó4—eZdZdZdZdZddgZgd¢ZddgZd Z d e e je e je je e je «fegeed d d ¬«ej"fdej$fged«edd ¬«efej*ej.dfdedfed«gde ee«dfedd ¬«efdedfde ee«dfegdej6fegdedfdej"fej*ej:fed «gd!œZd"„Zy#)$raÏ For C++ source code with preprocessor directives. Additional options accepted: `stdlibhighlighting` Highlight common types found in the C/C++ standard library (e.g. `size_t`). (default: ``True``). `c99highlighting` Highlight common types found in the C99 standard library (e.g. `int8_t`). Actually, this includes all fixed-width integer types. (default: ``True``). `c11highlighting` Highlight atomic types found in the C11 standard library (e.g. `atomic_bool`). (default: ``True``). `platformhighlighting` Highlight common types found in the platform SDK headers (e.g. `clockid_t` on Linux). (default: ``True``). zC++zhttps://isocpp.org/Úcppzc++) z*.cppz*.hppz*.c++z*.h++z*.ccz*.hhz*.cxxz*.hxxz*.Cz*.Hz*.cpz*.CPPz*.tppz text/x-c++hdrz text/x-c++srcrz<((?:[LuU]|u8)?R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)("))Úvirtual_inheritanceÚuuidofÚsuperÚsingle_inheritanceÚmultiple_inheritanceÚ interfaceÚeventr$r%r&z#__(offload|blockingoffload|outer)\brj)ÚclassrHr5rprtz(class|concept|typename)(\s+)r6)4ÚcatchÚ const_castÚdeleteÚ dynamic_castÚexplicitÚexportÚfriendÚmutableÚnewÚoperatorÚprivateÚ protectedÚpublicÚreinterpret_castr9Ú __restrictÚ static_castÚtemplaterÚthrowÚthrowsraÚtypeidrÚvirtualÚ constexprÚnullptrÚconceptÚdecltypeÚnoexceptÚoverrideÚfinalÚ constinitÚ constevalÚco_awaitÚ co_returnÚco_yieldÚrequiresÚimportÚmoduleÚtypenameÚandÚand_eqÚbitandÚbitorÚcomplÚnotÚnot_eqÚorÚor_eqÚxorÚxor_eqz namespace\bÚ namespacez (enum)(\s+)Úenumnamezchar(16_t|32_t|8_t)\bz[;{])rpruzinline\brn)rorurkrrrjcó`—tjd|«rytjd|«ryy)Nz#include <[a-z_]+>gš™™™™™É?zusing namespace gš™™™™™Ù?)r&r'r)s rår*zCppLexer.analyse_text—s+€Ü �9‰9Ð)¨4Ô 0ØÜ �9‰9Ð'¨Ô .Øð /ræN) rórôrõrör+Úurlr,r-r.r/rrrÚ Delimiterrr rr ÚPseudorrrûrrr r rrêrÚ Namespacerr*rrærårr@s¦„ñð, €DØ €CØ�eˆn€Gò9€Ið! /Ð2€IØ€Hð MÙ �f—l‘l F¨F×,<Ñ,<¸f×>NÑ>Nؘf×.Ñ.°ó8ð 9ð ð  ð á ðBà¨ô/à07×0@Ñ0@ð Bð4°W·^±^Ð Dð ñ �LÓ !á Ð&¨uÔ 5°wÐ ?Ø × Ñ  $§*¡*¨fÐ 5à ˜$ Ð 'Ù �F‹Oð ð.©x¸ÀÓ/LÈkÐ ZÙ ð :ðô ð&ð 'ð˜W kÐ 2Ø ™X g¨zÓ:¸JÐ GØ ð ð$& w§|¡|Ð 4Ø ð ð �kÐ#3Ð 4Ø ˜'×*Ñ*Ð +Ø × Ñ  $§.¡.Ð 1Ù �KÓ ð  ñ_5€Fónræ)rör&Úpygments.lexerrrrrrrr r Ú pygments.utilr Úpygments.tokenr r rrrrrrrÚ__all__rrrrræråÚrusfðñó ÷"÷"ó"å&÷$÷$õ$ð �ZÐ €ôu&�:ôu&ôp/ˆ\ô/ôd[ˆ|õ[ræ