File: //lib/python3/dist-packages/sphinx/util/__pycache__/cfamily.cpython-310.pyc
o
�$�a�7 � @ s� d Z ddlZddlmZ ddlmZmZmZmZm Z m
Z
mZmZ ddl
mZ ddlmZ ddlmZ ddlmZ e�e�Zeegef Ze�d �Ze�d
�Ze�d�Ze�d�Ze�d
�Ze�d�Z e�d�Z!e�d�Z"e�d�Z#e�d�Z$e�d�Z%deddfdd�Z&G dd� de'�Z(G dd� d�Z)G dd� de)�Z*G dd� de*�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)�Z0G d*d+� d+e'�Z1G d,d-� d-e'�Z2G d.d/� d/�Z3dS )0z�
sphinx.util.cfamily
~~~~~~~~~~~~~~~~~~~
Utility functions common to the C and C++ domains.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N��deepcopy)�Any�Callable�List�Match�Optional�Pattern�Tuple�Union)�nodes)�TextElement)�Config)�loggingz(?u)\s+z(@[a-zA-Z0-9_])[a-zA-Z0-9_]*\ba
(?x)
( # This 'extends' _anon_identifier_re with the ordinary identifiers,
# make sure they are in sync.
(~?\b[a-zA-Z_]) # ordinary identifiers
| (@[a-zA-Z0-9_]) # our extension for names of anonymous entities
)
[a-zA-Z0-9_]*\b
z[1-9][0-9]*(\'[0-9]+)*z0[0-7]*(\'[0-7]+)*z"0[xX][0-9a-fA-F]+(\'[0-9a-fA-F]+)*z0[bB][01]+(\'[01]+)*a% (?x)
# unsigned and/or (long) long, in any order, but at least one of them
(
([uU] ([lL] | (ll) | (LL))?)
|
(([lL] | (ll) | (LL)) [uU]?)
)\b
# the ending word boundary is important for distinguishing
# between suffixes and UDLs in C++
a (?x)
[+-]?(
# decimal
([0-9]+(\'[0-9]+)*[eE][+-]?[0-9]+(\'[0-9]+)*)
| (([0-9]+(\'[0-9]+)*)?\.[0-9]+(\'[0-9]+)*([eE][+-]?[0-9]+(\'[0-9]+)*)?)
| ([0-9]+(\'[0-9]+)*\.([eE][+-]?[0-9]+(\'[0-9]+)*)?)
# hex
| (0[xX][0-9a-fA-F]+(\'[0-9a-fA-F]+)*[pP][+-]?[0-9a-fA-F]+(\'[0-9a-fA-F]+)*)
| (0[xX]([0-9a-fA-F]+(\'[0-9a-fA-F]+)*)?\.
[0-9a-fA-F]+(\'[0-9a-fA-F]+)*([pP][+-]?[0-9a-fA-F]+(\'[0-9a-fA-F]+)*)?)
| (0[xX][0-9a-fA-F]+(\'[0-9a-fA-F]+)*\.([pP][+-]?[0-9a-fA-F]+(\'[0-9a-fA-F]+)*)?)
)
z[fFlL]\bz�(?x)
((?:u8)|u|U|L)?
'(
(?:[^\\'])
| (\\(
(?:['"?\\abfnrtv])
| (?:[0-7]{1,3})
| (?:x[0-9a-fA-F]{2})
| (?:u[0-9a-fA-F]{4})
| (?:U[0-9a-fA-F]{8})
))
)'
�mode�returnc C s | dvr
t d| ��d S )N)�
lastIsName�
noneIsName�markType�markName�param�udlz!Description mode '%s' is invalid.)� Exception)r � r �5/usr/lib/python3/dist-packages/sphinx/util/cfamily.py�verify_description_modeP s �r c @ � e Zd ZdS )�NoOldIdErrorN��__name__�
__module__�__qualname__r r r r r U s r c @ s~ e Zd ZU dedefdd�ZdZeg ef e d<