+
    TBiF                         R t ^ RIt^ RIHtHtHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHtHtHtHtHtHtHtHtHt RR.t ! R R]4      t ! R	 R]4      t ! R
 R]4      tR# )z
pygments.lexers.c_cpp
~~~~~~~~~~~~~~~~~~~~~

Lexers for C/C++ languages.

:copyright: Copyright 2006-2025 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                     a  ] tR t^t o RtRtRtRtRtRt	Rt
RtR	tR
] R] R2tRR]P                  R3R]P                  R3R],           R,           ]! ]! ]4      ]P                  4      R3R],           R,           ]! ]! ]4      ]P                  4      R3R]	,           R,           ]! ]]P*                  ]]4      3R]3R]3R]3]]P0                  3]]P2                  3R]P2                  3.R]! R4      ]! R4      R]! ]P8                  ]4      R3R ]! ]P8                  ]P:                  ]P:                  ]P:                  4      3R!],           R",           ],           R#,           ],           R$,           ],           R%,           ],           R&,           ]P>                  3R'],           R",           ],           R#,           ],           R$,           ],           R(,           ],           R),           ]P>                  3R*],           R+,           ],           R,,           ],           R-,           ],           R.,           ]P>                  3R/],           ],           ]P@                  3R0],           ]PB                  3R1],           ]PD                  3R2],           ],           ]PF                  3R3]$3R4]3R5]PJ                  3]	]3.R]&! RR6R7R87      ]'PP                  3]&! RR7R97      ]'PR                  3.RR:]! ]']4      R;3R<]'R=3]&! RR7R97      ]'3]&! RR7R97      ]'PP                  3R>]'PP                  3]&! RR6R7R87      ]'PP                  3.R?]! R4      ]! R4      R@]
,           RA,           ],           RB,           ]
,           RB,           ],           RC,           ],           RD,           ]! ]! ]4      ]! ]RRE7      ]PT                  ]! ]RRE7      ]! ]4      ]! ]RRE7      ]! ]4      ]4      RF3R@]
,           RA,           ],           RB,           ]
,           RB,           ],           RC,           ],           RG,           ]! ]! ]4      ]! ]RRE7      ]PT                  ]! ]RRE7      ]! ]4      ]! ]RRE7      ]! ]4      ]4      3]! R4      ]+! RH4      .RH]! R4      ]! R4      RI]3RJ]RK3.RF]! R4      ]! R4      RL]3RM]RN3RI]RK3.RRO]RK3RP]PX                  3RQ]3R]3RR]3.RR@],           RS,           ],           RT,           ]! ]! ]4      ]P                  ]! ]4      ]PZ                  ]P0                  4      3R@],           RS,           ],           RU,           ]! ]! ]4      ]P                  ]! ]4      ]PZ                  ]P0                  4      3RV]P                  3RW]P2                  3RX]P0                  RK3RY]P                  3RZ]P                  3R]P                  RK3.RR[]P                  RN3R\]P                  RK3R]]P                  RK3R^]3.R;]	]P\                  RK3R_]RK3]+! RK4      .R=R`]RK3]	]P^                  3]! R4      ]! R4      ./t00 Rmt10 Rmt20 Rmt30 RakRbkRckRdkRekRfkRgkRhkRikRjkRkkRlkRmkRnkRokRpkRqkRrkRskRtkRukRvkRwkRxkRykRzkR{kR|kR}kR~kRkRkRkRkRkRkRkt4R t5RR lt6Rt7V t8R# )CFamilyLexerz[
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*)*
whitespacez^#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]*
statementskeywordstypesz([LuU]|u8)?(")stringzA([LuU]|u8)?(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')z0[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__\bprefixsuffixr$   z(struct|union)(\s+)	classnamezcase\bz
case-valuez(__m(128i|128d|128|64))\broot(z(?:[&*\s])+)(z)(z)(\([^;"\')]*?\))(z)([^;{/"\']*)(\{))statefunctionz)([^;/"\']*)(;)	statementz\}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.*?(?<!\\)\nz^\s*#el(?:se|if).*\nz^\s*#endif.*?(?<!\\)\nz.*?\n\s*(?=>)z(?<!:)(:)(?!:)atomic_boolatomic_charatomic_scharatomic_ucharatomic_shortatomic_ushort
atomic_intatomic_uintatomic_longatomic_ulongatomic_llongatomic_ullongatomic_char16_tatomic_char32_tatomic_wchar_tatomic_int_least8_tatomic_uint_least8_tatomic_int_least16_tatomic_uint_least16_tatomic_int_least32_tatomic_uint_least32_tatomic_int_least64_tatomic_uint_least64_tatomic_int_fast8_tatomic_uint_fast8_tatomic_int_fast16_tatomic_uint_fast16_tatomic_int_fast32_tatomic_uint_fast32_tatomic_int_fast64_tatomic_uint_fast64_tatomic_intptr_tatomic_uintptr_tatomic_size_tatomic_ptrdiff_tatomic_intmax_tatomic_uintmax_tc                    \        VR R4      V n        \        VRR4      V n        \        VRR4      V n        \        VRR4      V n        \
        P                  ! V 3/ VB  R# )stdlibhighlightingTc99highlightingc11highlightingplatformhighlightingN)r
   rW   rX   rY   rZ   r   __init__)selfoptionss   &,:/usr/lib/python3.14/site-packages/pygments/lexers/c_cpp.pyr[   CFamilyLexer.__init__   s^    ".w8Ld"S+G5FM+G5FM$0:PRV$W!D,G,    c              #    "   \         P                  ! WV4       F  w  r4pV\        J d   V P                  '       d"   WPP                  9   d   \
        P                  pMV P                  '       d"   WPP                  9   d   \
        P                  pMeV P                  '       d"   WPP                  9   d   \
        P                  pM2V P                  '       d!   WPP                  9   d   \
        P                  pW4V3x  K  	  R # 5i)N)r   get_tokens_unprocessedr   rW   stdlib_typesr   TyperX   	c99_typesrY   c11_atomic_typesrZ   linux_types)r\   textstackindextokenvalues   &&&   r^   rb   #CFamilyLexer.get_tokens_unprocessed   s     11$eD  E%}***u8I8I/I#LLE)))e~~.E#LLE)))e7L7L.L#LLE...5<L<L3L#LLE%% Es   9D2D/2D"2D,D)rY   rX   rZ   rW   N)int8int16int32int64wchar_t)boolintlongfloatshortdoublecharunsignedsignedvoid_BitInt__int128)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thread)r   basedexceptstdcallcdeclfastcalldeclspecfinallytryleavew64	unalignedraisenoop
identifierforceinlineassume>   DIRFILEdiv_toff_tfpos_tldiv_tsize_ttime_twint_tclock_tjmp_bufssize_tva_listrr   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))r'   )9__name__
__module____qualname____firstlineno____doc___ws1_hexpart_decpart
_intsuffix_ident_namespaced_ident_comment_single_comment_multiline_possible_commentsr   Preprocr   r   r   r   r   Labelr   r   Single	Multiliner   r   AffixCharr   FloatHexBinOctIntegerr   Builtinr	   r   Reservedrd   Functionr   EscapePreprocFileClassConstanttokensrc   re   rg   rf   r[   rb   __static_attributes____classdictcell____classdict__s   @r^   r   r      s(	     %D /H H5J EFR .OQ )(9?Q>RRYZ 	'//517??G,D[=(eDk7??3U<D[6!eDk7??3W> 	 /	/
 j$**j+FH J*%dOgnn-!2!23"G$5$56/
2 	JGv >IQfllFKKfkkJL !E)H4v=H,-/78:BCDJLLR  5(83f<xG$N%&(013=>?E||M!F*X5@&')124>?@FNH$z16::>'*4fjjA :-vzz:x*,fnn=!8,K(#T\\2TN-
0 	A% "#*#3#35  (-/07>
 	#Xgz%BKP. V
  !
 #*+  &+-.5.>.>@ *7+;+;< 7
 U,
 .5-=-=?
* 	L!J%% ) &'*%&) ''*
 ''
*!! eDk5\#BmmU4|%DDk5\#BDk;0  %% ) &'*%&) ''*
 ''
* eDk5\#BmmU4|%DDk5\#BDk;0
1 GK ;
> 	L!L!K k6*	
 	L!L!+K)K(
 	66"<=C]]L6"fFO
 	$Y~%d*+@@tgoouT{ ,,gnn>? $Y~%d*+@@tgoouT{ ,,gnn>? ) '"3"3407??#7??+GOOV,
 	#W__g>$goov>&@w	
 	TZZ($'FO	
 	V4T]]#L!L!	
{cFJ8L:IAK
C
C$
C&4
C6D
CFT
C
C%
C'4
C6C
CES
C 	
C (
C *;
C =N
C P`
C 		
C  6	
C 8N	
C
 	 
C
 "8
C
 :Q
C 	
C !8
C :N
C 	
C  5
C 7M
C 	
C  6
C 8M
C 	
C !2
C 4F
C HW
C 	
C .
C 0B
C-& &r`   r   c                      a  ] tR tRt o RtRtR.t. ROt. ROtRt	Rt
RtR]! RR	R
7      ]3].R]! RR	R
7      ]P                  3]./tR tRtV tR# )r   i  a  
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cz6https://en.wikipedia.org/wiki/C_(programming_language) 皙?r   r!   r%   r   c                    \         P                  ! R V \         P                  4      '       d   R# \         P                  ! RV \         P                  4      '       d   R# R# )z^\s*#include [<"]r  z^\s*#ifn?def N)research	MULTILINErh   s   &r^   analyse_textCLexer.analyse_text;  s=    99)4>>99%tR\\:: ;r`    N)z*.cz*.hz*.idcz*.x[bp]m)ztext/x-chdrztext/x-csrczimage/x-xbitmapzimage/x-xpixmap)
_Alignas_Alignof	_Noreturn_Generic_Thread_local_Static_assert
_Imaginarynoreturn	imaginarycomplex)_Bool_Complex_Atomic)r   r   r   r   r   namealiases	filenames	mimetypesurlversion_addedpriorityr	   r   r   rd   r  r"  r  r  r  s   @r^   r   r     s     , DeG3ITI
BCMH 	 T   '( 
 	3EBGLLQ
F r`   c                   V  a  ] tR tRt o RtRtRtRR.t. R%OtRR.t	R	t
R
tRR]! ]P                  ]]P                  ]P                  ]]P                  ]4      3].R]]! R&RRR7      ]P&                  3R]P(                  3.R]! R4      ]! R'RR7      ]3]P.                  ]P2                  R3R]R3]! R4      .RR]! ]]4      R3]! R(RR7      ]3R]R3R]! ]]4      R3].RR]P:                  3].RR]R)3R ]P&                  3]P.                  ]P>                  3]! R!4      ./t R" t!R#t"V t#R$# )*r   iB  a  
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``).
zC++zhttps://isocpp.org/cppzc++ztext/x-c++hdrztext/x-c++srcr  r  r   z<((?:[LuU]|u8)?R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")r'   r    r!   r"   z#__(offload|blockingoffload|outer)\benumnamer   r%   r,   r0   r   z(class|concept|typename)(\s+)r&   znamespace\b	namespacez(enum)(\s+)r   zchar(16_t|32_t|8_t)\bz[;{]zinline\br+   c                    \         P                  ! R V 4      '       d   R# \         P                  ! RV 4      '       d   R# R# )z#include <[a-z_]+>g?zusing namespace g?N)r  r  r!  s   &r^   r"  CppLexer.analyse_text  s1    99)40099'.. /r`   r$  N)z*.cppz*.hppz*.c++z*.h++z*.ccz*.hhz*.cxxz*.hxxz*.Cz*.Hz*.cpz*.CPPz*.tpp)virtual_inheritanceuuidofsupersingle_inheritancemultiple_inheritance	interfaceevent)classr   )4catch
const_castdeletedynamic_castexplicitexportfriendmutablenewoperatorprivate	protectedpublicreinterpret_castrF  
__restrictstatic_casttemplater   throwthrowsr   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_eq)r,   r'   )$r   r   r   r   r   r2  r6  r3  r4  r5  r7  r8  r   r   r  	Delimiterr   r	   r   r  Pseudor   r   r   r   r  r   r   r   rd   r   	Namespacer  r"  r  r  r  s   @r^   r   r   B  s    , D
CenG9I !/2IMH 	LfllFF,<,<f>N>Nf..89 
 	 B/070@0@B 4W^^D
 	L!&u5w?  $**f5$'FO
 	-x/LkZ 	: 
 &
' Wk2Xgz:JG
" 	%w||4
 	k#34'**+  $..1K 	
_5Fn r`   )r   r  pygments.lexerr   r   r   r   r   r   r   r	   pygments.utilr
   pygments.tokenr   r   r   r   r   r   r   r   r   __all__r   r   r   r$  r`   r^   <module>r~     sf    
" " " &$ $ $ Z
 u&: u&p1\ 1h\| \r`   