Current File : //proc/self/root/lib/python3/dist-packages/pygments/lexers/__pycache__/c_cpp.cpython-312.pyc
�

|�eF���dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlm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	Zd
e
�de�d�Zd
e
jdfde
jdfdezdzeee�e
j�dfdezdzeee�e
j�dfdezdzeeej(ee�fdefdefdefe
e
j.fee
j0fde
j0fged�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;fd<e&d=fe%d>d6�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.*?(?<!\\)\nz^\s*#el(?:se|if).*\nz^\s*#endif.*?(?<!\\)\nz.*?\n�\s*(?=>)z(?<!:)(:)(?!:))rjrorr�rootrnrmrrrr6r7>�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�|_tj|fi|��y)N�stdlibhighlightingT�c99highlighting�c11highlighting�platformhighlighting)rr�r�r�r�r�__init__)�self�optionss  �7/usr/lib/python3/dist-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�<L�<L�3L�#�L�L�E����%�%�	&�s�CCN))ru)6�__name__�
__module__�__qualname__�__doc__�_ws1�_hexpart�_decpart�
_intsuffix�_ident�_namespaced_ident�_comment_single�_comment_multiline�_possible_commentsr
�Preprocrrrrr�Labelrr�Single�	Multilinerr�Affix�Charr�Float�Hex�Bin�Oct�Integerr�Builtinr
r�Reservedr��Functionr	�Escape�PreprocFile�Class�Constant�tokensr�r�r�r�r�r��r�r�rrsn���%�D�/�H��H�5�J�E�F�R��.�O�Q��)��(9��?Q�>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
fege	d
d�	�e
jfegd�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)ztext/x-chdrztext/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
ejeejejeeje�fegeedd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_eqznamespace\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��<module>rusf���
�"�"�"�&�$�$�$��Z�
 ��u&�:�u&�p/�\�/�d[�|�[r�