File: //opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/__pycache__/c_cpp.cpython-310.pyc
o
;j�G � @ s� d Z ddlZddlmZmZmZmZmZmZm Z m
Z
ddlmZ ddl
mZmZmZmZmZmZmZmZmZ ddgZG dd � d e�ZG d
d� de�ZG dd� de�ZdS )z�
pygments.lexers.c_cpp
~~~~~~~~~~~~~~~~~~~~~
Lexers for C/C++ languages.
:copyright: Copyright 2006-present 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 @ s� e Zd ZdZdZdZdZdZdZdZ dZ
d Zd
e
� de� d�Zd
e
jdfde
jdfde d eee�e
j�dfde d eee�e
j�dfde d eeejee�fdefdefdefe
e
jfee
jfde
jfged�ed�deeje�dfdeejejejej�fde d e d! e d" e d# e d$ ejfd%e d e d! e d" e d& e d' ejfd(e d) e d* e d+ e d, ejfd-e e ejfd.e ej fd/e ej!fd0e e ej"fd1e#fd2efd3ej$feefge%d4d5d6d7�e&j'fe%d8d6d9�e&j(fgd:ee&e�d;fd<e&d=fe%d>d6d9�e&fe%d?d6d9�e&j'fd@e&j'fe%dAd5d6d7�e&j'fgedB�ed�dCe dD e dE e dE e dF e dG eee�eedBdH�ej)eedBdH�ee�eedBdH�ee�e�dIfdCe dD e dE e dE e dF e dJ eee�eedBdH�ej)eedBdH�ee�eedBdH�ee�e�fed�e*dK�gedB�edL�dMefdNedOfgedB�edL�dPefdQedRfdMedOfgdSedOfdTej+fdUefdefdVefgdCe dW e dX eee�e
jee�e
j,e
j�fdCe dW e dY eee�e
jee�e
j,e
j�fdZe
jfd[e
jfd\e
jdOfd]e
jfd^e
jfde
jdOfgd_e
jdRfd`e
jdOfdae
jdOfdbe
fgeej-dOfdcedOfe*dO�gddedOfeej.fedB�edL�gde�Z/h df�Z0h dg�Z1h dh�Z2h di�Z3djdk� Z4dpdmdn�Z5doS )q�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]?[zZ])|([zZ][uU])|([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|nullptr)\b)Zint8Zint16Zint32Zint64�wchar_t�__�\b��prefix�suffix)�bool�intZlong�floatZshortZdouble�charZunsignedZsignedZvoidZ_BitIntZ__int128�r"