Sphinx 8.1.2__py3-none-any.whl → 8.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Sphinx might be problematic. Click here for more details.
- sphinx/__init__.py +8 -4
- sphinx/__main__.py +2 -0
- sphinx/_cli/__init__.py +2 -5
- sphinx/_cli/util/colour.py +34 -11
- sphinx/_cli/util/errors.py +128 -61
- sphinx/addnodes.py +51 -35
- sphinx/application.py +362 -230
- sphinx/builders/__init__.py +87 -64
- sphinx/builders/_epub_base.py +65 -56
- sphinx/builders/changes.py +17 -23
- sphinx/builders/dirhtml.py +8 -13
- sphinx/builders/epub3.py +70 -38
- sphinx/builders/gettext.py +93 -73
- sphinx/builders/html/__init__.py +240 -186
- sphinx/builders/html/_assets.py +9 -2
- sphinx/builders/html/_build_info.py +3 -0
- sphinx/builders/latex/__init__.py +64 -54
- sphinx/builders/latex/constants.py +14 -11
- sphinx/builders/latex/nodes.py +2 -0
- sphinx/builders/latex/theming.py +8 -9
- sphinx/builders/latex/transforms.py +7 -5
- sphinx/builders/linkcheck.py +193 -149
- sphinx/builders/manpage.py +17 -17
- sphinx/builders/singlehtml.py +28 -16
- sphinx/builders/texinfo.py +28 -21
- sphinx/builders/text.py +10 -15
- sphinx/builders/xml.py +10 -19
- sphinx/cmd/build.py +49 -119
- sphinx/cmd/make_mode.py +35 -31
- sphinx/cmd/quickstart.py +78 -62
- sphinx/config.py +265 -163
- sphinx/directives/__init__.py +51 -54
- sphinx/directives/admonitions.py +107 -0
- sphinx/directives/code.py +24 -19
- sphinx/directives/other.py +21 -42
- sphinx/directives/patches.py +28 -16
- sphinx/domains/__init__.py +54 -31
- sphinx/domains/_domains_container.py +22 -17
- sphinx/domains/_index.py +5 -8
- sphinx/domains/c/__init__.py +366 -245
- sphinx/domains/c/_ast.py +378 -256
- sphinx/domains/c/_ids.py +89 -31
- sphinx/domains/c/_parser.py +283 -214
- sphinx/domains/c/_symbol.py +269 -198
- sphinx/domains/changeset.py +39 -24
- sphinx/domains/citation.py +54 -24
- sphinx/domains/cpp/__init__.py +517 -362
- sphinx/domains/cpp/_ast.py +999 -682
- sphinx/domains/cpp/_ids.py +133 -65
- sphinx/domains/cpp/_parser.py +746 -588
- sphinx/domains/cpp/_symbol.py +692 -489
- sphinx/domains/index.py +10 -8
- sphinx/domains/javascript.py +152 -74
- sphinx/domains/math.py +50 -40
- sphinx/domains/python/__init__.py +402 -211
- sphinx/domains/python/_annotations.py +134 -61
- sphinx/domains/python/_object.py +155 -68
- sphinx/domains/rst.py +94 -49
- sphinx/domains/std/__init__.py +510 -249
- sphinx/environment/__init__.py +345 -61
- sphinx/environment/adapters/asset.py +7 -1
- sphinx/environment/adapters/indexentries.py +15 -20
- sphinx/environment/adapters/toctree.py +19 -9
- sphinx/environment/collectors/__init__.py +3 -1
- sphinx/environment/collectors/asset.py +18 -15
- sphinx/environment/collectors/dependencies.py +8 -10
- sphinx/environment/collectors/metadata.py +6 -4
- sphinx/environment/collectors/title.py +3 -1
- sphinx/environment/collectors/toctree.py +4 -4
- sphinx/errors.py +1 -3
- sphinx/events.py +4 -4
- sphinx/ext/apidoc/__init__.py +66 -0
- sphinx/ext/apidoc/__main__.py +9 -0
- sphinx/ext/apidoc/_cli.py +356 -0
- sphinx/ext/apidoc/_extension.py +262 -0
- sphinx/ext/apidoc/_generate.py +356 -0
- sphinx/ext/apidoc/_shared.py +99 -0
- sphinx/ext/autodoc/__init__.py +837 -483
- sphinx/ext/autodoc/directive.py +57 -21
- sphinx/ext/autodoc/importer.py +184 -67
- sphinx/ext/autodoc/mock.py +25 -10
- sphinx/ext/autodoc/preserve_defaults.py +17 -9
- sphinx/ext/autodoc/type_comment.py +56 -29
- sphinx/ext/autodoc/typehints.py +49 -26
- sphinx/ext/autosectionlabel.py +28 -11
- sphinx/ext/autosummary/__init__.py +281 -142
- sphinx/ext/autosummary/generate.py +121 -51
- sphinx/ext/coverage.py +152 -91
- sphinx/ext/doctest.py +169 -101
- sphinx/ext/duration.py +12 -6
- sphinx/ext/extlinks.py +33 -21
- sphinx/ext/githubpages.py +8 -8
- sphinx/ext/graphviz.py +175 -109
- sphinx/ext/ifconfig.py +11 -6
- sphinx/ext/imgconverter.py +48 -25
- sphinx/ext/imgmath.py +127 -97
- sphinx/ext/inheritance_diagram.py +177 -103
- sphinx/ext/intersphinx/__init__.py +22 -13
- sphinx/ext/intersphinx/__main__.py +3 -1
- sphinx/ext/intersphinx/_cli.py +18 -14
- sphinx/ext/intersphinx/_load.py +91 -82
- sphinx/ext/intersphinx/_resolve.py +108 -74
- sphinx/ext/intersphinx/_shared.py +2 -2
- sphinx/ext/linkcode.py +28 -12
- sphinx/ext/mathjax.py +60 -29
- sphinx/ext/napoleon/__init__.py +19 -7
- sphinx/ext/napoleon/docstring.py +229 -231
- sphinx/ext/todo.py +44 -49
- sphinx/ext/viewcode.py +105 -57
- sphinx/extension.py +3 -1
- sphinx/highlighting.py +13 -7
- sphinx/io.py +9 -13
- sphinx/jinja2glue.py +29 -26
- sphinx/locale/__init__.py +8 -9
- sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ar/LC_MESSAGES/sphinx.po +2155 -2050
- sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bg/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bn/LC_MESSAGES/sphinx.po +2175 -2070
- sphinx/locale/ca/LC_MESSAGES/sphinx.js +3 -3
- sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ca/LC_MESSAGES/sphinx.po +2690 -2585
- sphinx/locale/ca@valencia/LC_MESSAGES/sphinx.js +63 -0
- sphinx/locale/ca@valencia/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ca@valencia/LC_MESSAGES/sphinx.po +4216 -0
- sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cak/LC_MESSAGES/sphinx.po +2096 -1991
- sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cs/LC_MESSAGES/sphinx.po +2248 -2143
- sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cy/LC_MESSAGES/sphinx.po +2201 -2096
- sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/da/LC_MESSAGES/sphinx.po +2282 -2177
- sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de/LC_MESSAGES/sphinx.po +2261 -2156
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/el/LC_MESSAGES/sphinx.po +2604 -2499
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +2631 -2526
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eo/LC_MESSAGES/sphinx.po +2078 -1973
- sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es/LC_MESSAGES/sphinx.po +2633 -2528
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/et/LC_MESSAGES/sphinx.po +2449 -2344
- sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eu/LC_MESSAGES/sphinx.po +2241 -2136
- sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fa/LC_MESSAGES/sphinx.po +504 -500
- sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fi/LC_MESSAGES/sphinx.po +499 -495
- sphinx/locale/fr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr/LC_MESSAGES/sphinx.po +513 -509
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +499 -495
- sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/gl/LC_MESSAGES/sphinx.po +2644 -2539
- sphinx/locale/he/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/he/LC_MESSAGES/sphinx.po +499 -495
- sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi/LC_MESSAGES/sphinx.po +504 -500
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +499 -495
- sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hr/LC_MESSAGES/sphinx.po +501 -497
- sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hu/LC_MESSAGES/sphinx.po +499 -495
- sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/id/LC_MESSAGES/sphinx.po +2609 -2504
- sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/is/LC_MESSAGES/sphinx.po +499 -495
- sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/it/LC_MESSAGES/sphinx.po +2265 -2160
- sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ja/LC_MESSAGES/sphinx.po +2621 -2516
- sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ka/LC_MESSAGES/sphinx.po +2567 -2462
- sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ko/LC_MESSAGES/sphinx.po +2631 -2526
- sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lt/LC_MESSAGES/sphinx.po +2214 -2109
- sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lv/LC_MESSAGES/sphinx.po +2218 -2113
- sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/mk/LC_MESSAGES/sphinx.po +2088 -1983
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +2247 -2142
- sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ne/LC_MESSAGES/sphinx.po +2227 -2122
- sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nl/LC_MESSAGES/sphinx.po +2316 -2211
- sphinx/locale/pl/LC_MESSAGES/sphinx.js +2 -2
- sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pl/LC_MESSAGES/sphinx.po +2442 -2336
- sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +2657 -2552
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +2243 -2138
- sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ro/LC_MESSAGES/sphinx.po +2244 -2139
- sphinx/locale/ru/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ru/LC_MESSAGES/sphinx.po +2660 -2555
- sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/si/LC_MESSAGES/sphinx.po +2134 -2029
- sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sk/LC_MESSAGES/sphinx.po +2614 -2509
- sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sl/LC_MESSAGES/sphinx.po +2167 -2062
- sphinx/locale/sphinx.pot +2069 -1964
- sphinx/locale/sq/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sq/LC_MESSAGES/sphinx.po +2661 -2556
- sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr/LC_MESSAGES/sphinx.po +2213 -2108
- sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.po +2229 -2124
- sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/te/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/tr/LC_MESSAGES/sphinx.po +2608 -2503
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +2167 -2062
- sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ur/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/vi/LC_MESSAGES/sphinx.po +2204 -2099
- sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/yue/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po +2659 -2554
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +2045 -1940
- sphinx/parsers.py +8 -7
- sphinx/project.py +2 -2
- sphinx/pycode/__init__.py +31 -21
- sphinx/pycode/ast.py +6 -3
- sphinx/pycode/parser.py +14 -8
- sphinx/pygments_styles.py +4 -5
- sphinx/registry.py +192 -92
- sphinx/roles.py +58 -7
- sphinx/search/__init__.py +75 -54
- sphinx/search/en.py +11 -13
- sphinx/search/fi.py +1 -1
- sphinx/search/ja.py +8 -6
- sphinx/search/nl.py +1 -1
- sphinx/search/zh.py +19 -21
- sphinx/testing/fixtures.py +26 -29
- sphinx/testing/path.py +26 -62
- sphinx/testing/restructuredtext.py +14 -8
- sphinx/testing/util.py +21 -19
- sphinx/texinputs/make.bat.jinja +50 -50
- sphinx/texinputs/sphinx.sty +4 -3
- sphinx/texinputs/sphinxlatexadmonitions.sty +1 -1
- sphinx/texinputs/sphinxlatexobjects.sty +29 -10
- sphinx/themes/basic/static/searchtools.js +8 -5
- sphinx/theming.py +49 -61
- sphinx/transforms/__init__.py +17 -38
- sphinx/transforms/compact_bullet_list.py +5 -3
- sphinx/transforms/i18n.py +8 -21
- sphinx/transforms/post_transforms/__init__.py +142 -93
- sphinx/transforms/post_transforms/code.py +5 -5
- sphinx/transforms/post_transforms/images.py +28 -24
- sphinx/transforms/references.py +3 -1
- sphinx/util/__init__.py +109 -60
- sphinx/util/_files.py +39 -23
- sphinx/util/_importer.py +4 -1
- sphinx/util/_inventory_file_reader.py +76 -0
- sphinx/util/_io.py +2 -2
- sphinx/util/_lines.py +6 -3
- sphinx/util/_pathlib.py +40 -2
- sphinx/util/build_phase.py +2 -0
- sphinx/util/cfamily.py +19 -14
- sphinx/util/console.py +44 -179
- sphinx/util/display.py +9 -10
- sphinx/util/docfields.py +140 -122
- sphinx/util/docstrings.py +1 -1
- sphinx/util/docutils.py +118 -77
- sphinx/util/fileutil.py +25 -26
- sphinx/util/http_date.py +2 -0
- sphinx/util/i18n.py +77 -64
- sphinx/util/images.py +8 -6
- sphinx/util/inspect.py +147 -38
- sphinx/util/inventory.py +215 -116
- sphinx/util/logging.py +33 -33
- sphinx/util/matching.py +12 -4
- sphinx/util/nodes.py +18 -13
- sphinx/util/osutil.py +38 -39
- sphinx/util/parallel.py +22 -13
- sphinx/util/parsing.py +2 -1
- sphinx/util/png.py +6 -2
- sphinx/util/requests.py +33 -2
- sphinx/util/rst.py +3 -2
- sphinx/util/tags.py +1 -1
- sphinx/util/template.py +18 -10
- sphinx/util/texescape.py +8 -6
- sphinx/util/typing.py +148 -122
- sphinx/versioning.py +3 -3
- sphinx/writers/html.py +3 -1
- sphinx/writers/html5.py +63 -52
- sphinx/writers/latex.py +83 -67
- sphinx/writers/manpage.py +19 -38
- sphinx/writers/texinfo.py +47 -47
- sphinx/writers/text.py +50 -32
- sphinx/writers/xml.py +11 -8
- {sphinx-8.1.2.dist-info → sphinx-8.2.0.dist-info}/LICENSE.rst +1 -1
- {sphinx-8.1.2.dist-info → sphinx-8.2.0.dist-info}/METADATA +25 -15
- sphinx-8.2.0.dist-info/RECORD +606 -0
- {sphinx-8.1.2.dist-info → sphinx-8.2.0.dist-info}/WHEEL +1 -1
- sphinx/builders/html/transforms.py +0 -90
- sphinx/ext/apidoc.py +0 -721
- sphinx/util/exceptions.py +0 -74
- sphinx-8.1.2.dist-info/RECORD +0 -598
- {sphinx-8.1.2.dist-info → sphinx-8.2.0.dist-info}/entry_points.txt +0 -0
sphinx/domains/cpp/_ids.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Important note on ids
|
|
1
|
+
"""Important note on ids
|
|
3
2
|
----------------------------------------------------------------------------
|
|
4
3
|
|
|
5
4
|
Multiple id generation schemes are used due to backwards compatibility.
|
|
@@ -253,14 +252,22 @@ namespace_object:
|
|
|
253
252
|
from __future__ import annotations
|
|
254
253
|
|
|
255
254
|
import re
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
255
|
+
from typing import TYPE_CHECKING
|
|
256
|
+
|
|
257
|
+
if TYPE_CHECKING:
|
|
258
|
+
from collections.abc import Sequence, Set
|
|
259
|
+
|
|
260
|
+
udl_identifier_re = re.compile(
|
|
261
|
+
r'[a-zA-Z_][a-zA-Z0-9_]*\b' # note, no word boundary in the beginning
|
|
262
|
+
)
|
|
263
|
+
_string_re = re.compile(
|
|
264
|
+
r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
|
|
265
|
+
r'|"([^"\\]*(?:\\.[^"\\]*)*)")',
|
|
266
|
+
re.DOTALL,
|
|
267
|
+
)
|
|
262
268
|
_visibility_re = re.compile(r'\b(public|private|protected)\b')
|
|
263
|
-
_operator_re = re.compile(
|
|
269
|
+
_operator_re = re.compile(
|
|
270
|
+
r"""
|
|
264
271
|
\[\s*\]
|
|
265
272
|
| \(\s*\)
|
|
266
273
|
| \+\+ | --
|
|
@@ -269,33 +276,49 @@ _operator_re = re.compile(r'''
|
|
|
269
276
|
| <=>
|
|
270
277
|
| [!<>=/*%+|&^~-]=?
|
|
271
278
|
| (\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|xor|xor_eq)\b)
|
|
272
|
-
|
|
273
|
-
|
|
279
|
+
""",
|
|
280
|
+
re.VERBOSE,
|
|
281
|
+
)
|
|
282
|
+
_fold_operator_re = re.compile(
|
|
283
|
+
r"""
|
|
274
284
|
->\* | \.\* | \,
|
|
275
285
|
| (<<|>>)=? | && | \|\|
|
|
276
286
|
| !=
|
|
277
287
|
| [<>=/*%+|&^~-]=?
|
|
278
|
-
|
|
288
|
+
""",
|
|
289
|
+
re.VERBOSE,
|
|
290
|
+
)
|
|
279
291
|
# see https://en.cppreference.com/w/cpp/keyword
|
|
280
|
-
_keywords =
|
|
281
|
-
'alignas', 'alignof', 'and', 'and_eq', 'asm', 'auto',
|
|
282
|
-
'
|
|
283
|
-
'
|
|
284
|
-
'
|
|
285
|
-
'
|
|
286
|
-
'
|
|
287
|
-
'
|
|
288
|
-
'
|
|
289
|
-
'
|
|
290
|
-
'
|
|
291
|
-
'
|
|
292
|
-
'
|
|
293
|
-
'
|
|
294
|
-
'
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
292
|
+
_keywords: Set[str] = frozenset({
|
|
293
|
+
'alignas', 'alignof', 'and', 'and_eq', 'asm', 'auto',
|
|
294
|
+
'bitand', 'bitor', 'bool', 'break',
|
|
295
|
+
'case', 'catch', 'class', 'compl', 'concept', 'continue',
|
|
296
|
+
'char', 'char8_t', 'char16_t', 'char32_t',
|
|
297
|
+
'const', 'const_cast', 'consteval', 'constexpr', 'constinit',
|
|
298
|
+
'decltype', 'default', 'delete', 'do', 'double', 'dynamic_cast',
|
|
299
|
+
'else', 'enum', 'explicit', 'export', 'extern',
|
|
300
|
+
'false', 'float', 'for', 'friend',
|
|
301
|
+
'goto',
|
|
302
|
+
'if', 'inline', 'int',
|
|
303
|
+
'long',
|
|
304
|
+
'mutable',
|
|
305
|
+
'namespace', 'new', 'noexcept', 'not', 'not_eq', 'nullptr',
|
|
306
|
+
'operator', 'or', 'or_eq',
|
|
307
|
+
'private', 'protected', 'public',
|
|
308
|
+
'register', 'reinterpret_cast', 'requires', 'return',
|
|
309
|
+
'short', 'signed', 'sizeof', 'static',
|
|
310
|
+
'static_assert', 'static_cast', 'struct', 'switch',
|
|
311
|
+
'template', 'this', 'thread_local', 'throw',
|
|
312
|
+
'true', 'try', 'typedef', 'typeid', 'typename',
|
|
313
|
+
'union', 'unsigned', 'using',
|
|
314
|
+
'virtual', 'void', 'volatile',
|
|
315
|
+
'wchar_t', 'while',
|
|
316
|
+
'xor', 'xor_eq',
|
|
317
|
+
}) # fmt: skip
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
_simple_type_specifiers_re = re.compile(
|
|
321
|
+
r"""
|
|
299
322
|
\b(
|
|
300
323
|
auto|void|bool
|
|
301
324
|
|signed|unsigned
|
|
@@ -307,10 +330,12 @@ _simple_type_specifiers_re = re.compile(r"""
|
|
|
307
330
|
|__float80|_Float64x|__float128|_Float128 # extension
|
|
308
331
|
|_Complex|_Imaginary # extension
|
|
309
332
|
)\b
|
|
310
|
-
""",
|
|
333
|
+
""",
|
|
334
|
+
re.VERBOSE,
|
|
335
|
+
)
|
|
311
336
|
|
|
312
337
|
_max_id = 4
|
|
313
|
-
_id_prefix =
|
|
338
|
+
_id_prefix: Sequence[str] = ('', '', '_CPPv2', '_CPPv3', '_CPPv4')
|
|
314
339
|
# Ids are used in lookup keys which are used across pickled files,
|
|
315
340
|
# so when _max_id changes, make sure to update the ENV_VERSION.
|
|
316
341
|
|
|
@@ -433,8 +458,10 @@ _id_fundamental_v2 = {
|
|
|
433
458
|
'float': 'f',
|
|
434
459
|
'double': 'd',
|
|
435
460
|
'long double': 'e',
|
|
436
|
-
'__float80': 'e',
|
|
437
|
-
'
|
|
461
|
+
'__float80': 'e',
|
|
462
|
+
'_Float64x': 'e',
|
|
463
|
+
'__float128': 'g',
|
|
464
|
+
'_Float128': 'g',
|
|
438
465
|
'_Complex float': 'Cf',
|
|
439
466
|
'_Complex double': 'Cd',
|
|
440
467
|
'_Complex long double': 'Ce',
|
|
@@ -456,38 +483,49 @@ _id_operator_v2 = {
|
|
|
456
483
|
# '-(unary)' : 'ng',
|
|
457
484
|
# '&(unary)' : 'ad',
|
|
458
485
|
# '*(unary)' : 'de',
|
|
459
|
-
'~': 'co',
|
|
486
|
+
'~': 'co',
|
|
487
|
+
'compl': 'co',
|
|
460
488
|
'+': 'pl',
|
|
461
489
|
'-': 'mi',
|
|
462
490
|
'*': 'ml',
|
|
463
491
|
'/': 'dv',
|
|
464
492
|
'%': 'rm',
|
|
465
|
-
'&': 'an',
|
|
466
|
-
'
|
|
467
|
-
'
|
|
493
|
+
'&': 'an',
|
|
494
|
+
'bitand': 'an',
|
|
495
|
+
'|': 'or',
|
|
496
|
+
'bitor': 'or',
|
|
497
|
+
'^': 'eo',
|
|
498
|
+
'xor': 'eo',
|
|
468
499
|
'=': 'aS',
|
|
469
500
|
'+=': 'pL',
|
|
470
501
|
'-=': 'mI',
|
|
471
502
|
'*=': 'mL',
|
|
472
503
|
'/=': 'dV',
|
|
473
504
|
'%=': 'rM',
|
|
474
|
-
'&=': 'aN',
|
|
475
|
-
'
|
|
476
|
-
'
|
|
505
|
+
'&=': 'aN',
|
|
506
|
+
'and_eq': 'aN',
|
|
507
|
+
'|=': 'oR',
|
|
508
|
+
'or_eq': 'oR',
|
|
509
|
+
'^=': 'eO',
|
|
510
|
+
'xor_eq': 'eO',
|
|
477
511
|
'<<': 'ls',
|
|
478
512
|
'>>': 'rs',
|
|
479
513
|
'<<=': 'lS',
|
|
480
514
|
'>>=': 'rS',
|
|
481
515
|
'==': 'eq',
|
|
482
|
-
'!=': 'ne',
|
|
516
|
+
'!=': 'ne',
|
|
517
|
+
'not_eq': 'ne',
|
|
483
518
|
'<': 'lt',
|
|
484
519
|
'>': 'gt',
|
|
485
520
|
'<=': 'le',
|
|
486
521
|
'>=': 'ge',
|
|
487
522
|
'<=>': 'ss',
|
|
488
|
-
'!': 'nt',
|
|
489
|
-
'
|
|
490
|
-
'
|
|
523
|
+
'!': 'nt',
|
|
524
|
+
'not': 'nt',
|
|
525
|
+
'&&': 'aa',
|
|
526
|
+
'and': 'aa',
|
|
527
|
+
'||': 'oo',
|
|
528
|
+
'or': 'oo',
|
|
491
529
|
'++': 'pp',
|
|
492
530
|
'--': 'mm',
|
|
493
531
|
',': 'cm',
|
|
@@ -505,30 +543,60 @@ _id_operator_unary_v2 = {
|
|
|
505
543
|
'&': 'ad',
|
|
506
544
|
'+': 'ps',
|
|
507
545
|
'-': 'ng',
|
|
508
|
-
'!': 'nt',
|
|
509
|
-
'
|
|
546
|
+
'!': 'nt',
|
|
547
|
+
'not': 'nt',
|
|
548
|
+
'~': 'co',
|
|
549
|
+
'compl': 'co',
|
|
510
550
|
}
|
|
511
551
|
_id_char_from_prefix: dict[str | None, str] = {
|
|
512
|
-
None: 'c',
|
|
513
|
-
'
|
|
552
|
+
None: 'c',
|
|
553
|
+
'u8': 'c',
|
|
554
|
+
'u': 'Ds',
|
|
555
|
+
'U': 'Di',
|
|
556
|
+
'L': 'w',
|
|
514
557
|
}
|
|
515
558
|
# these are ordered by preceedence
|
|
516
|
-
_expression_bin_ops = [
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
559
|
+
_expression_bin_ops: Sequence[tuple[str, ...]] = [
|
|
560
|
+
('||', 'or'),
|
|
561
|
+
('&&', 'and'),
|
|
562
|
+
('|', 'bitor'),
|
|
563
|
+
('^', 'xor'),
|
|
564
|
+
('&', 'bitand'),
|
|
565
|
+
('==', '!=', 'not_eq'),
|
|
566
|
+
('<=>', '<=', '>=', '<', '>'),
|
|
567
|
+
('<<', '>>'),
|
|
568
|
+
('+', '-'),
|
|
569
|
+
('*', '/', '%'),
|
|
570
|
+
('.*', '->*'),
|
|
571
|
+
]
|
|
572
|
+
_expression_unary_ops: Sequence[str] = [
|
|
573
|
+
'++',
|
|
574
|
+
'--',
|
|
575
|
+
'*',
|
|
576
|
+
'&',
|
|
577
|
+
'+',
|
|
578
|
+
'-',
|
|
579
|
+
'!',
|
|
580
|
+
'not',
|
|
581
|
+
'~',
|
|
582
|
+
'compl',
|
|
583
|
+
]
|
|
584
|
+
_expression_assignment_ops: Sequence[str] = [
|
|
585
|
+
'=',
|
|
586
|
+
'*=',
|
|
587
|
+
'/=',
|
|
588
|
+
'%=',
|
|
589
|
+
'+=',
|
|
590
|
+
'-=',
|
|
591
|
+
'>>=',
|
|
592
|
+
'<<=',
|
|
593
|
+
'&=',
|
|
594
|
+
'and_eq',
|
|
595
|
+
'^=',
|
|
596
|
+
'|=',
|
|
597
|
+
'xor_eq',
|
|
598
|
+
'or_eq',
|
|
528
599
|
]
|
|
529
|
-
_expression_unary_ops = ["++", "--", "*", "&", "+", "-", "!", "not", "~", "compl"]
|
|
530
|
-
_expression_assignment_ops = ["=", "*=", "/=", "%=", "+=", "-=",
|
|
531
|
-
">>=", "<<=", "&=", "and_eq", "^=", "|=", "xor_eq", "or_eq"]
|
|
532
600
|
_id_explicit_cast = {
|
|
533
601
|
'dynamic_cast': 'dc',
|
|
534
602
|
'static_cast': 'sc',
|