@elice/material-exercise 1.231227.0 → 1.240112.0-cloud.0
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.
- package/cjs/components/material-exercise/MaterialExercise.i18n.js +2 -4
- package/cjs/components/material-exercise/MaterialExercise.js +54 -59
- package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
- package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
- package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
- package/cjs/components/material-exercise/context/context.js +1 -7
- package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
- package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
- package/cjs/components/material-exercise/context/recoil.js +293 -544
- package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
- package/cjs/components/material-exercise/context/subjects.js +3 -5
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
- package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
- package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
- package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
- package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
- package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
- package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
- package/cjs/components/shared/file-icon/FileIcon.js +17 -23
- package/cjs/components/shared/file-tabs/FileTab.js +30 -36
- package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
- package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
- package/cjs/components/shared/file-tabs/util.js +14 -29
- package/cjs/components/shared/file-tree/FileTree.js +12 -17
- package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
- package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
- package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
- package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
- package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
- package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
- package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
- package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
- package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
- package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
- package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
- package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
- package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
- package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
- package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
- package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
- package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
- package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
- package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
- package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
- package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
- package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
- package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
- package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
- package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
- package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
- package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
- package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
- package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
- package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
- package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
- package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
- package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
- package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
- package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
- package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
- package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
- package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
- package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
- package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
- package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
- package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
- package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
- package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
- package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
- package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
- package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
- package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
- package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
- package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
- package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
- package/cjs/components/shared/xterm/Xterm.js +58 -81
- package/cjs/components/shared/xterm/XtermLazy.js +5 -11
- package/cjs/components/shared/xterm/locales/en.json.js +1 -1
- package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
- package/cjs/components/shared/xterm/utils/index.js +0 -2
- package/cjs/constants/arduino.js +10 -12
- package/cjs/constants/shortcutKeyMap.js +2 -4
- package/cjs/constants/stylesheets.js +5 -9
- package/cjs/hooks/useArduino.js +141 -284
- package/cjs/hooks/useExerciseFile.js +22 -26
- package/cjs/hooks/useExericseShortcut.js +4 -8
- package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
- package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
- package/cjs/hooks/useStdioTextConcator.js +10 -22
- package/cjs/hooks/useStdioWebSocket.js +28 -34
- package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
- package/cjs/hooks/useUsercodeHistory.js +63 -117
- package/cjs/index.js +4 -6
- package/cjs/utils/arduino.js +11 -25
- package/cjs/utils/exerciseFile.js +10 -10
- package/cjs/utils/runner.js +15 -31
- package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
- package/es/components/material-exercise/MaterialExercise.js +34 -35
- package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
- package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
- package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
- package/es/components/material-exercise/context/context.js +1 -1
- package/es/components/material-exercise/context/recoil.js +290 -535
- package/es/components/material-exercise/context/subjects.js +3 -3
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
- package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
- package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
- package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
- package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
- package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
- package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
- package/es/components/shared/file-icon/FileIcon.js +15 -17
- package/es/components/shared/file-tabs/FileTab.js +22 -24
- package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
- package/es/components/shared/file-tabs/FileTabs.js +35 -55
- package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/es/components/shared/file-tabs/util.js +14 -27
- package/es/components/shared/file-tree/FileTree.js +3 -3
- package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
- package/es/components/shared/file-tree/FileTreeList.js +33 -29
- package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
- package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
- package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
- package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
- package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
- package/es/components/shared/file-viewer/FileViewer.js +21 -38
- package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
- package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
- package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
- package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
- package/es/components/shared/file-viewer/FileViewerText.js +9 -17
- package/es/components/shared/material-modal/MaterialModal.js +8 -7
- package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
- package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
- package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
- package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
- package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
- package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
- package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
- package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
- package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
- package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
- package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
- package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
- package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
- package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
- package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
- package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
- package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
- package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
- package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
- package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
- package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
- package/es/components/shared/no-vnc/NoVnc.js +42 -59
- package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
- package/es/components/shared/preview-container/PreviewContainer.js +8 -7
- package/es/components/shared/web-browser/WebBrowser.js +29 -40
- package/es/components/shared/xterm/Xterm.js +51 -69
- package/es/components/shared/xterm/XtermLazy.js +2 -4
- package/es/constants/arduino.js +10 -10
- package/es/constants/shortcutKeyMap.js +1 -3
- package/es/constants/stylesheets.js +5 -7
- package/es/hooks/useArduino.js +141 -278
- package/es/hooks/useExerciseFile.js +22 -24
- package/es/hooks/useExericseShortcut.js +4 -6
- package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
- package/es/hooks/useRunnerRoomWebSocket.js +27 -51
- package/es/hooks/useStdioTextConcator.js +10 -16
- package/es/hooks/useStdioWebSocket.js +28 -32
- package/es/hooks/useUsercodeEditWebSocket.js +157 -232
- package/es/hooks/useUsercodeHistory.js +63 -115
- package/es/utils/arduino.js +11 -23
- package/es/utils/exerciseFile.js +10 -8
- package/es/utils/runner.js +15 -29
- package/package.json +11 -7
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
- package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const information_for_contributors=["This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."];const version="https://github.com/jeff-hykin/better-cpp-syntax/commit/924295fc44bde1a00fab60da3a2caca4509adb25";const name="C++";const scopeName="source.cpp";const patterns=[{include:"#ever_present_context"},{include:"#constructor_root"},{include:"#destructor_root"},{include:"#function_definition"},{include:"#operator_overload"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#namespace_block"},{include:"#extern_block"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#template_isolated_definition"},{include:"#template_definition"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#evaluation_context"}];const repository={access_control_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?:(?:protected)|(?:private)|(?:public)))(?:(?:\\s)+)?(:))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"storage.type.modifier.access.control.$4.cpp"},"4":{},"5":{name:"punctuation.separator.colon.access.control.cpp"}}},alignas_attribute:{begin:"alignas\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.attribute.begin.cpp"}},endCaptures:{"0":{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{name:"keyword.other.using.directive.cpp"},"2":{name:"entity.name.namespace.cpp"}}},{match:",",name:"punctuation.separator.attribute.cpp"},{match:":",name:"punctuation.accessor.attribute.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",name:"entity.name.namespace.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.other.attribute.$0.cpp"},{include:"#number_literal"}]},alignas_operator:{begin:"((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"}},contentName:"meta.arguments.operator.alignas",patterns:[{include:"#evaluation_context"}]},alignof_operator:{begin:"((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"}},contentName:"meta.arguments.operator.alignof",patterns:[{include:"#evaluation_context"}]},assembly:{begin:"(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)",end:"(?!\\G)",beginCaptures:{"1":{name:"storage.type.asm.cpp"},"2":{name:"storage.modifier.cpp"}},endCaptures:{},name:"meta.asm.cpp",patterns:[{match:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{include:"#comments"},{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.assembly.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.assembly.cpp"}},patterns:[{begin:"(R?)(\")",end:"\"",beginCaptures:{"1":{name:"meta.encoding.cpp"},"2":{name:"punctuation.definition.string.begin.assembly.cpp"}},endCaptures:{"0":{name:"punctuation.definition.string.end.assembly.cpp"}},name:"string.quoted.double.cpp",contentName:"meta.embedded.assembly",patterns:[{include:"source.asm"},{include:"source.x86"},{include:"source.x86_64"},{include:"source.arm"},{include:"#backslash_escapes"},{include:"#string_escaped_char"}]},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"}},endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.assembly.inner.cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"\\[((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.other.asm.label.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:":",name:"punctuation.separator.delimiter.colon.assembly.cpp"},{include:"#comments"}]}]},assignment_operator:{match:"\\=",name:"keyword.operator.assignment.cpp"},attributes_context:{patterns:[{include:"#cpp_attributes"},{include:"#gcc_attributes"},{include:"#ms_attributes"},{include:"#alignas_attribute"}]},backslash_escapes:{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape"},block:{begin:"{",end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.cpp"}},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.cpp"}},name:"meta.block.cpp",patterns:[{include:"#function_body_context"}]},block_comment:{begin:"\\s*+(\\/\\*)",end:"\\*\\/",beginCaptures:{"1":{name:"punctuation.definition.comment.begin.cpp"}},endCaptures:{"0":{name:"punctuation.definition.comment.end.cpp"}},name:"comment.block.cpp"},builtin_storage_type_initilizer:{begin:"(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)(?:\\s)*+(?<!\\w)(\\()",end:"\\)",beginCaptures:{"1":{name:"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},"2":{name:"storage.type.cpp storage.type.built-in.cpp"},"3":{name:"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},"4":{name:"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"},"5":{name:"punctuation.section.arguments.begin.bracket.round.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.initializer.cpp"}},patterns:[{include:"#evaluation_context"}]},case_statement:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)case(?!\\w))",end:":",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"keyword.control.case.cpp"}},endCaptures:{"0":{name:"punctuation.separator.colon.case.cpp"}},name:"meta.conditional.case.cpp",patterns:[{include:"#evaluation_context"}]},class_block:{begin:"((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.class.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.type.modifier.final.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{"1":{name:"entity.name.type.class.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"storage.type.modifier.final.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"20":{name:"punctuation.separator.colon.inheritance.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.class.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.class.cpp"}},name:"meta.head.class.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cpp",patterns:[{include:"$self"}]}]},class_declare:{match:"((?<!\\w)class(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.class.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.class.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},comma:{match:",",name:"punctuation.separator.delimiter.comma.cpp"},comma_in_template_argument:{match:",",name:"punctuation.separator.delimiter.comma.template.argument.cpp"},comments:{patterns:[{begin:"^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",end:"(?<=\\n)(?<!\\\\\\n)",beginCaptures:{"1":{name:"punctuation.definition.comment.documentation.cpp"}},endCaptures:{},name:"comment.line.double-slash.documentation.cpp",patterns:[{include:"#line_continuation_character"},{match:"(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},"3":{name:"variable.parameter.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc.cpp"}]},{match:"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",captures:{"1":{name:"punctuation.definition.comment.begin.documentation.cpp"},"2":{patterns:[{match:"(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},"3":{name:"variable.parameter.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc.cpp"}]},"3":{name:"punctuation.definition.comment.end.documentation.cpp"}},name:"comment.block.documentation.cpp"},{begin:"(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",end:"[!*]*\\*\\/",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.documentation.cpp"}},endCaptures:{"0":{name:"punctuation.definition.comment.end.documentation.cpp"}},name:"comment.block.documentation.cpp",patterns:[{match:"(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},"3":{name:"variable.parameter.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc.cpp"}]},{include:"#emacs_file_banner"},{include:"#block_comment"},{include:"#line_comment"},{include:"#invalid_comment_end"}]},constructor_inline:{begin:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.constructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{patterns:[{include:"#functional_specifiers_pre_parameters"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{name:"comment.block.cpp"},"13":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"14":{name:"storage.type.modifier.calling-convention.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{name:"comment.block.cpp"},"18":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"19":{name:"entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"}},endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"keyword.other.default.constructor.cpp"},"7":{name:"keyword.other.delete.constructor.cpp"}}},{include:"#functional_specifiers_pre_parameters"},{begin:":",end:"(?=\\{)",beginCaptures:{"0":{name:"punctuation.separator.initializers.cpp"}},endCaptures:{},patterns:[{begin:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"3":{},"4":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",end:"\\}",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{match:",",name:"punctuation.separator.delimiter.comma.cpp"},{include:"#comments"}]},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.constructor.cpp"}},contentName:"meta.function.definition.parameters.special.constructor",patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{match:"((?:(?:final)|(?:override)))+",captures:{"1":{name:"keyword.operator.$1.cpp"}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},constructor_root:{begin:"\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.constructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"storage.type.modifier.calling-convention.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.constructor.cpp"},{include:"#template_call_range"}]},"11":{patterns:[{include:"#template_call_range"}]},"12":{},"13":{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",name:"entity.name.type.constructor.cpp"},{match:"(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.function.definition.special.constructor.cpp"},{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"}]},"14":{},"15":{patterns:[{include:"#inline_comment"}]},"16":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{name:"comment.block.cpp"},"18":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"23":{patterns:[{include:"#inline_comment"}]},"24":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"25":{name:"comment.block.cpp"},"26":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"keyword.other.default.constructor.cpp"},"7":{name:"keyword.other.delete.constructor.cpp"}}},{include:"#functional_specifiers_pre_parameters"},{begin:":",end:"(?=\\{)",beginCaptures:{"0":{name:"punctuation.separator.initializers.cpp"}},endCaptures:{},patterns:[{begin:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"3":{},"4":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",end:"\\}",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{match:",",name:"punctuation.separator.delimiter.comma.cpp"},{include:"#comments"}]},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.constructor.cpp"}},contentName:"meta.function.definition.parameters.special.constructor",patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{match:"((?:(?:final)|(?:override)))+",captures:{"1":{name:"keyword.operator.$1.cpp"}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},control_flow_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:co_return)|(?:continue)|(?:co_await)|(?:co_yield)|(?:default)|(?:switch)|(?:return)|(?:throw)|(?:while)|(?:catch)|(?:break)|(?:else)|(?:goto)|(?:case)|(?:for)|(?:try)|(?:do)|(?:if))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.control.$3.cpp"}}},cpp_attributes:{begin:"\\[\\[",end:"\\]\\]",beginCaptures:{"0":{name:"punctuation.section.attribute.begin.cpp"}},endCaptures:{"0":{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{name:"keyword.other.using.directive.cpp"},"2":{name:"entity.name.namespace.cpp"}}},{match:",",name:"punctuation.separator.attribute.cpp"},{match:":",name:"punctuation.accessor.attribute.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",name:"entity.name.namespace.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.other.attribute.$0.cpp"},{include:"#number_literal"}]},curly_initializer:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)",end:"\\}",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"12":{patterns:[{include:"#template_call_range"}]},"13":{},"14":{patterns:[{include:"#inline_comment"}]},"15":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"16":{name:"comment.block.cpp"},"17":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"18":{},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"23":{name:"punctuation.section.arguments.begin.bracket.curly.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.curly.initializer.cpp"}},name:"meta.initialization.cpp",patterns:[{include:"#evaluation_context"},{include:"#comma"}]},d9bc4796b0b_module_import:{match:"^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((import))(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))(?:(?:\\s)+)?(;?)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.control.directive.import.cpp"},"5":{name:"string.quoted.other.lt-gt.include.cpp"},"6":{name:"punctuation.definition.string.begin.cpp"},"7":{name:"punctuation.definition.string.end.cpp"},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{name:"string.quoted.double.include.cpp"},"11":{name:"punctuation.definition.string.begin.cpp"},"12":{name:"punctuation.definition.string.end.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"15":{name:"entity.name.other.preprocessor.macro.include.cpp"},"16":{patterns:[{include:"#inline_comment"}]},"17":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"18":{patterns:[{include:"#inline_comment"}]},"19":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"22":{name:"punctuation.terminator.statement.cpp"}},name:"meta.preprocessor.import.cpp"},d9bc4796b0b_preprocessor_number_literal:{match:"(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*",captures:{"0":{patterns:[{begin:"(?=.)",end:"$",beginCaptures:{},endCaptures:{},patterns:[{match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$",captures:{"1":{name:"keyword.other.unit.hexadecimal.cpp"},"2":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"constant.numeric.hexadecimal.cpp"},"5":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"6":{name:"punctuation.separator.constant.numeric.cpp"},"7":{name:"keyword.other.unit.exponent.hexadecimal.cpp"},"8":{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},"9":{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},"10":{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"11":{name:"keyword.other.unit.suffix.floating-point.cpp"}}},{match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$",captures:{"1":{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"2":{name:"punctuation.separator.constant.numeric.cpp"},"3":{name:"constant.numeric.decimal.point.cpp"},"4":{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"5":{name:"punctuation.separator.constant.numeric.cpp"},"6":{name:"keyword.other.unit.exponent.decimal.cpp"},"7":{name:"keyword.operator.plus.exponent.decimal.cpp"},"8":{name:"keyword.operator.minus.exponent.decimal.cpp"},"9":{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"10":{name:"keyword.other.unit.suffix.floating-point.cpp"}}},{match:"(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",captures:{"1":{name:"keyword.other.unit.binary.cpp"},"2":{name:"constant.numeric.binary.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"keyword.other.unit.suffix.integer.cpp"}}},{match:"(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",captures:{"1":{name:"keyword.other.unit.octal.cpp"},"2":{name:"constant.numeric.octal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"keyword.other.unit.suffix.integer.cpp"}}},{match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",captures:{"1":{name:"keyword.other.unit.hexadecimal.cpp"},"2":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"keyword.other.unit.exponent.hexadecimal.cpp"},"5":{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},"6":{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},"7":{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"8":{name:"keyword.other.unit.suffix.integer.cpp"}}},{match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",captures:{"1":{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"2":{name:"punctuation.separator.constant.numeric.cpp"},"3":{name:"keyword.other.unit.exponent.decimal.cpp"},"4":{name:"keyword.operator.plus.exponent.decimal.cpp"},"5":{name:"keyword.operator.minus.exponent.decimal.cpp"},"6":{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"7":{name:"keyword.other.unit.suffix.integer.cpp"}}},{match:"(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",name:"invalid.illegal.constant.numeric.cpp"}]}]}}},decltype:{begin:"((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.decltype.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.decltype.cpp"}},contentName:"meta.arguments.decltype",patterns:[{include:"#evaluation_context"}]},decltype_specifier:{begin:"((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.decltype.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.decltype.cpp"}},contentName:"meta.arguments.decltype",patterns:[{include:"#evaluation_context"}]},default_statement:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)default(?!\\w))",end:":",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"keyword.control.default.cpp"}},endCaptures:{"0":{name:"punctuation.separator.colon.case.default.cpp"}},name:"meta.conditional.case.cpp",patterns:[{include:"#evaluation_context"}]},destructor_inline:{begin:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.member.destructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{name:"comment.block.cpp"},"8":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"9":{name:"storage.type.modifier.calling-convention.cpp"},"10":{patterns:[{include:"#inline_comment"}]},"11":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{name:"comment.block.cpp"},"13":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"14":{patterns:[{include:"#functional_specifiers_pre_parameters"}]},"15":{patterns:[{include:"#inline_comment"}]},"16":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{name:"comment.block.cpp"},"18":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"19":{name:"entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"}},endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"keyword.other.default.constructor.cpp"},"7":{name:"keyword.other.delete.constructor.cpp"}}},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",patterns:[]},{match:"((?:(?:final)|(?:override)))+",captures:{"1":{name:"keyword.operator.wordlike.cpp keyword.operator.$1.cpp"}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},destructor_root:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.member.destructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"storage.type.modifier.calling-convention.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.destructor.cpp"},{include:"#template_call_range"}]},"11":{patterns:[{include:"#template_call_range"}]},"12":{},"13":{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",name:"entity.name.type.destructor.cpp"},{match:"(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.function.definition.special.member.destructor.cpp"},{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"}]},"14":{},"15":{patterns:[{include:"#inline_comment"}]},"16":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{name:"comment.block.cpp"},"18":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"23":{patterns:[{include:"#inline_comment"}]},"24":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"25":{name:"comment.block.cpp"},"26":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"keyword.other.default.constructor.cpp"},"7":{name:"keyword.other.delete.constructor.cpp"}}},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",patterns:[]},{match:"((?:(?:final)|(?:override)))+",captures:{"1":{name:"keyword.operator.wordlike.cpp keyword.operator.$1.cpp"}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},diagnostic:{begin:"(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{"1":{name:"keyword.control.directive.diagnostic.$7.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.definition.directive.cpp"},"7":{}},endCaptures:{},name:"meta.preprocessor.diagnostic.$reference(directive).cpp",patterns:[{begin:"\"",end:"(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"}},endCaptures:{"1":{name:"punctuation.definition.string.end.cpp"}},name:"string.quoted.double.cpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",end:"(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"}},endCaptures:{"1":{name:"punctuation.definition.string.end.cpp"}},name:"string.quoted.single.cpp",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{},endCaptures:{},name:"string.unquoted.cpp",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},emacs_file_banner:{match:"(?:(^(?:(?:\\s)+)?((\\/\\/)(?:(?:\\s)+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:(?:\\s)+)?.+(?:(?:\\s)+)?\\4(?:(?:\\s)+)?(?:\\n|$)))|(^(?:(?:\\s)+)?((\\/\\*)(?:(?:\\s)+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:(?:\\s)+)?.+(?:(?:\\s)+)?\\8(?:(?:\\s)+)?\\*\\/)))",captures:{"1":{name:"meta.toc-list.banner.double-slash.cpp"},"2":{name:"comment.line.double-slash.cpp"},"3":{name:"punctuation.definition.comment.cpp"},"4":{name:"meta.banner.character.cpp"},"5":{name:"meta.toc-list.banner.block.cpp"},"6":{name:"comment.line.banner.cpp"},"7":{name:"punctuation.definition.comment.cpp"},"8":{name:"meta.banner.character.cpp"}}},empty_square_brackets:{name:"storage.modifier.array.bracket.square",match:"(?<!delete)\\[(?:(?:\\s)+)?\\]"},enum_block:{begin:"((?<!\\w)enum(?!\\w))(?:(?:\\s)+(class|struct))?(?:(?:(?:\\s)+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:(?:\\s)+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:(?:\\s)+)?(:)(?:(?:\\s)+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.enum.cpp"},"1":{name:"storage.type.enum.cpp"},"2":{name:"storage.type.enum.enum-key.$2.cpp"},"3":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"4":{name:"entity.name.type.enum.cpp"},"5":{name:"punctuation.separator.colon.type-specifier.cpp"},"6":{patterns:[{include:"#scope_resolution_inner_generated"}]},"7":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"8":{patterns:[{include:"#template_call_range"}]},"9":{},"10":{name:"entity.name.scope-resolution.cpp"},"11":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"12":{},"13":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"14":{name:"storage.type.integral.$14.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.enum.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.enum.cpp"}},name:"meta.head.enum.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.enum.cpp"}},name:"meta.body.enum.cpp",patterns:[{include:"#ever_present_context"},{include:"#enumerator_list"},{include:"#comments"},{include:"#comma"},{include:"#semicolon"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.enum.cpp",patterns:[{include:"$self"}]}]},enum_declare:{match:"((?<!\\w)enum(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.enum.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.enum.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},enumerator_list:{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(?:(?:\\s)+)?(?:(\\=)(?:(?:\\s)+)?(.+?)(?:(?:\\s)+)?)?(?:(?:((?:[,;](?!')|\\n))|(?=\\}[^']))|(?=(?:\\/\\/|\\/\\*)))",captures:{"1":{name:"variable.other.enummember.cpp"},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{name:"keyword.operator.assignment.cpp"},"4":{patterns:[{include:"#evaluation_context"}]},"5":{patterns:[{include:"#comma"},{include:"#semicolon"}]}},name:"meta.enum.definition.cpp"},evaluation_context:{patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}]},ever_present_context:{patterns:[{include:"#pragma_mark"},{include:"#pragma"},{include:"#include"},{include:"#line"},{include:"#diagnostic"},{include:"#undef"},{include:"#preprocessor_conditional_range"},{include:"#single_line_macro"},{include:"#macro"},{include:"#preprocessor_conditional_standalone"},{include:"#macro_argument"},{include:"#comments"},{include:"#line_continuation_character"}]},exception_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:throw)|(?:catch)|(?:try))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.control.exception.$3.cpp"}}},extern_block:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.extern.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"storage.type.extern.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.extern.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.extern.cpp"}},name:"meta.head.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.extern.cpp"}},name:"meta.body.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.extern.cpp",patterns:[{include:"$self"}]},{include:"$self"}]},function_body_context:{patterns:[{include:"#ever_present_context"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#switch_statement"},{include:"#goto_statement"},{include:"#evaluation_context"},{include:"#label"}]},function_call:{begin:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wthread_local|^thread_local|\\Wsynchronized|^synchronized|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Wtemplate|^template|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Walignof|^alignof|\\Walignas|^alignas|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wu_short|^u_short|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wnullptr|^nullptr|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wprivate|^private|\\Wtypedef|^typedef|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wsizeof|^sizeof|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wtypeid|^typeid|\\Wswitch|^switch|\\Wreturn|^return|\\Wsigned|^signed|\\Wdouble|^double|\\Wu_char|^u_char|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wquad_t|^quad_t|\\Wmode_t|^mode_t|\\Wsize_t|^size_t|\\Wtime_t|^time_t|\\Wint8_t|^int8_t|\\Wstruct|^struct|\\Wstatic|^static|\\Wextern|^extern|\\Winline|^inline|\\Wfriend|^friend|\\Wpublic|^public|\\Wexport|^export|\\Wimport|^import|\\Wmodule|^module|\\Wcompl|^compl|\\Wbitor|^bitor|\\Wthrow|^throw|\\Wor_eq|^or_eq|\\Wwhile|^while|\\Wcatch|^catch|\\Wbreak|^break|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wconst|^const|\\Wusing|^using|\\Welse|^else|\\Wgoto|^goto|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wlong|^long|\\Wbool|^bool|\\Wuint|^uint|\\Wid_t|^id_t|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wenum|^enum|\\Wthis|^this|\\Wnot|^not|\\Wnew|^new|\\Wxor|^xor|\\Wand|^and|\\Wfor|^for|\\Wtry|^try|\\Wint|^int|\\Wasm|^asm|\\Wor|^or|\\Wdo|^do|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.function.call.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"11":{},"12":{name:"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.cpp"}},patterns:[{include:"#evaluation_context"}]},function_definition:{begin:"(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)template(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wthread_local|^thread_local|\\Wsynchronized|^synchronized|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Wtemplate|^template|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Walignof|^alignof|\\Walignas|^alignas|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wu_short|^u_short|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wnullptr|^nullptr|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wprivate|^private|\\Wtypedef|^typedef|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wsizeof|^sizeof|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wtypeid|^typeid|\\Wswitch|^switch|\\Wreturn|^return|\\Wsigned|^signed|\\Wdouble|^double|\\Wu_char|^u_char|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wquad_t|^quad_t|\\Wmode_t|^mode_t|\\Wsize_t|^size_t|\\Wtime_t|^time_t|\\Wint8_t|^int8_t|\\Wstruct|^struct|\\Wstatic|^static|\\Wextern|^extern|\\Winline|^inline|\\Wfriend|^friend|\\Wpublic|^public|\\Wexport|^export|\\Wimport|^import|\\Wmodule|^module|\\Wcompl|^compl|\\Wbitor|^bitor|\\Wthrow|^throw|\\Wor_eq|^or_eq|\\Wwhile|^while|\\Wcatch|^catch|\\Wbreak|^break|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wconst|^const|\\Wusing|^using|\\Welse|^else|\\Wgoto|^goto|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wlong|^long|\\Wbool|^bool|\\Wuint|^uint|\\Wid_t|^id_t|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wenum|^enum|\\Wthis|^this|\\Wnot|^not|\\Wnew|^new|\\Wxor|^xor|\\Wand|^and|\\Wfor|^for|\\Wtry|^try|\\Wint|^int|\\Wasm|^asm|\\Wor|^or|\\Wdo|^do|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"storage.type.template.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"11":{patterns:[{match:"((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.modifier.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"storage.modifier.$12.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"15":{name:"comment.block.cpp"},"16":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"17":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"18":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"23":{patterns:[{include:"#inline_comment"}]},"24":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"25":{name:"comment.block.cpp"},"26":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"27":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"28":{patterns:[{include:"#template_call_range"}]},"29":{},"30":{patterns:[{include:"#inline_comment"}]},"31":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"32":{name:"comment.block.cpp"},"33":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"34":{},"35":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"36":{patterns:[{include:"#inline_comment"}]},"37":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"38":{name:"comment.block.cpp"},"39":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"40":{patterns:[{include:"#inline_comment"}]},"41":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"42":{name:"comment.block.cpp"},"43":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"44":{patterns:[{include:"#inline_comment"}]},"45":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"46":{name:"comment.block.cpp"},"47":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"48":{patterns:[{include:"#inline_comment"}]},"49":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"50":{name:"comment.block.cpp"},"51":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"52":{name:"storage.type.modifier.calling-convention.cpp"},"53":{patterns:[{include:"#inline_comment"}]},"54":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"55":{name:"comment.block.cpp"},"56":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"57":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"58":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"59":{patterns:[{include:"#template_call_range"}]},"60":{},"61":{name:"entity.name.function.definition.cpp"},"62":{patterns:[{include:"#inline_comment"}]},"63":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"64":{name:"comment.block.cpp"},"65":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{},name:"meta.function.definition.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.cpp"}},name:"meta.head.function.definition.cpp",patterns:[{include:"#ever_present_context"},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.cpp"}},contentName:"meta.function.definition.parameters",patterns:[{include:"#ever_present_context"},{include:"#parameter_or_maybe_value"},{include:"#comma"},{include:"#evaluation_context"}]},{match:"(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))",captures:{"1":{name:"punctuation.definition.function.return-type.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"7":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"10":{name:"comment.block.cpp"},"11":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"17":{patterns:[{include:"#template_call_range"}]},"18":{},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"23":{}}},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.cpp"}},name:"meta.body.function.definition.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.cpp",patterns:[{include:"$self"}]}]},function_parameter_context:{patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#parameter"},{include:"#comma"}]},function_pointer:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"12":{patterns:[{include:"#template_call_range"}]},"13":{},"14":{patterns:[{include:"#inline_comment"}]},"15":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"16":{name:"comment.block.cpp"},"17":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"18":{},"19":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"22":{name:"comment.block.cpp"},"23":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"24":{patterns:[{include:"#inline_comment"}]},"25":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"26":{name:"comment.block.cpp"},"27":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"28":{patterns:[{include:"#inline_comment"}]},"29":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"30":{name:"comment.block.cpp"},"31":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"32":{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cpp"},"33":{name:"punctuation.definition.function.pointer.dereference.cpp"},"34":{name:"variable.other.definition.pointer.function.cpp"},"35":{name:"punctuation.definition.begin.bracket.square.cpp"},"36":{patterns:[{include:"#evaluation_context"}]},"37":{name:"punctuation.definition.end.bracket.square.cpp"},"38":{name:"punctuation.section.parens.end.bracket.round.function.pointer.cpp"},"39":{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"}},endCaptures:{"1":{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},patterns:[{include:"#function_parameter_context"}]},function_pointer_parameter:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"12":{patterns:[{include:"#template_call_range"}]},"13":{},"14":{patterns:[{include:"#inline_comment"}]},"15":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"16":{name:"comment.block.cpp"},"17":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"18":{},"19":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"22":{name:"comment.block.cpp"},"23":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"24":{patterns:[{include:"#inline_comment"}]},"25":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"26":{name:"comment.block.cpp"},"27":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"28":{patterns:[{include:"#inline_comment"}]},"29":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"30":{name:"comment.block.cpp"},"31":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"32":{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cpp"},"33":{name:"punctuation.definition.function.pointer.dereference.cpp"},"34":{name:"variable.parameter.pointer.function.cpp"},"35":{name:"punctuation.definition.begin.bracket.square.cpp"},"36":{patterns:[{include:"#evaluation_context"}]},"37":{name:"punctuation.definition.end.bracket.square.cpp"},"38":{name:"punctuation.section.parens.end.bracket.round.function.pointer.cpp"},"39":{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"}},endCaptures:{"1":{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},patterns:[{include:"#function_parameter_context"}]},functional_specifiers_pre_parameters:{match:"(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))(?!\\w)",name:"storage.modifier.specifier.functional.pre-parameters.$0.cpp"},gcc_attributes:{begin:"__attribute(?:__)?\\s*\\(\\s*\\(",end:"\\)\\s*\\)",beginCaptures:{"0":{name:"punctuation.section.attribute.begin.cpp"}},endCaptures:{"0":{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{name:"keyword.other.using.directive.cpp"},"2":{name:"entity.name.namespace.cpp"}}},{match:",",name:"punctuation.separator.attribute.cpp"},{match:":",name:"punctuation.accessor.attribute.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",name:"entity.name.namespace.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.other.attribute.$0.cpp"},{include:"#number_literal"}]},goto_statement:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)goto(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.control.goto.cpp"},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"6":{name:"entity.name.label.call.cpp"}}},identifier:{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*"},include:{match:"^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((#)(?:(?:\\s)+)?((?:include|include_next))\\b)(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.control.directive.$5.cpp"},"4":{name:"punctuation.definition.directive.cpp"},"6":{name:"string.quoted.other.lt-gt.include.cpp"},"7":{name:"punctuation.definition.string.begin.cpp"},"8":{name:"punctuation.definition.string.end.cpp"},"9":{patterns:[{include:"#inline_comment"}]},"10":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"11":{name:"string.quoted.double.include.cpp"},"12":{name:"punctuation.definition.string.begin.cpp"},"13":{name:"punctuation.definition.string.end.cpp"},"14":{patterns:[{include:"#inline_comment"}]},"15":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"16":{name:"entity.name.other.preprocessor.macro.include.cpp"},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"21":{patterns:[{include:"#inline_comment"}]},"22":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}},name:"meta.preprocessor.include.cpp"},inheritance_context:{patterns:[{include:"#ever_present_context"},{match:",",name:"punctuation.separator.delimiter.comma.inheritance.cpp"},{match:"(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)",name:"storage.type.modifier.access.$0.cpp"},{match:"(?<!\\w)virtual(?!\\w)",name:"storage.type.modifier.virtual.cpp"},{match:"(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))",captures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"8":{patterns:[{include:"#template_call_range"}]},"9":{},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{}}}]},inline_builtin_storage_type:{match:"(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)",captures:{"1":{name:"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},"2":{name:"storage.type.cpp storage.type.built-in.cpp"},"3":{name:"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},"4":{name:"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"}}},inline_comment:{match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},invalid_comment_end:{match:"\\*\\/",name:"invalid.illegal.unexpected.punctuation.definition.comment.end.cpp"},label:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\b(?<!case|default)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"entity.name.label.cpp"},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"6":{name:"punctuation.separator.label.cpp"}}},lambdas:{begin:"(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))",end:"(?<=[;}])",beginCaptures:{"1":{name:"punctuation.definition.capture.begin.lambda.cpp"},"2":{name:"meta.lambda.capture.cpp",patterns:[{include:"#the_this_keyword"},{match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",captures:{"1":{name:"variable.parameter.capture.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.separator.delimiter.comma.cpp"},"7":{name:"keyword.operator.assignment.cpp"}}},{include:"#evaluation_context"}]},"3":{},"4":{name:"punctuation.definition.capture.end.lambda.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{name:"comment.block.cpp"},"8":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{},patterns:[{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.lambda.cpp"}},endCaptures:{"0":{name:"punctuation.definition.parameters.end.lambda.cpp"}},name:"meta.function.definition.parameters.lambda.cpp",patterns:[{include:"#function_parameter_context"}]},{match:"(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)",name:"storage.modifier.lambda.$0.cpp"},{match:"(->)((?:.+?(?=\\{|$))?)",captures:{"1":{name:"punctuation.definition.lambda.return-type.cpp"},"2":{name:"storage.type.return-type.lambda.cpp"}}},{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.lambda.cpp"}},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.lambda.cpp"}},name:"meta.function.definition.body.lambda.cpp",patterns:[{include:"$self"}]}]},language_constants:{match:"(?<!\\w)(?:(?:nullptr)|(?:false)|(?:NULL)|(?:true))(?!\\w)",name:"constant.language.$0.cpp"},line:{begin:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{"0":{name:"keyword.control.directive.line.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"punctuation.definition.directive.cpp"}},endCaptures:{},name:"meta.preprocessor.line.cpp",patterns:[{include:"#string_context"},{include:"#preprocessor_number_literal"},{include:"#line_continuation_character"}]},line_comment:{begin:"\\s*+(\\/\\/)",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{"1":{name:"punctuation.definition.comment.cpp"}},endCaptures:{},name:"comment.line.double-slash.cpp",patterns:[{include:"#line_continuation_character"}]},line_continuation_character:{match:"\\\\\\n",name:"constant.character.escape.line-continuation.cpp"},macro:{begin:"(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{"1":{name:"keyword.control.directive.define.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.definition.directive.cpp"},"7":{name:"entity.name.function.preprocessor.cpp"}},endCaptures:{},name:"meta.preprocessor.macro.cpp",patterns:[{match:"\\G(?:(?:\\s)+)?(\\()([^\\(]*)(\\))",captures:{"1":{name:"punctuation.definition.parameters.begin.preprocessor.cpp"},"2":{name:"meta.function.preprocessor.parameters.cpp",patterns:[{match:"(?<=[(,])(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?",captures:{"1":{name:"variable.parameter.preprocessor.cpp"}}},{match:",",name:"punctuation.separator.parameters.cpp"},{match:"\\.\\.\\.",name:"punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp"}]},"3":{name:"punctuation.definition.parameters.end.preprocessor.cpp"}}},{include:"#macro_context"},{include:"#macro_argument"}]},macro_argument:{match:"##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"variable.other.macro.argument.cpp"},macro_context:{patterns:[{include:"source.cpp.embedded.macro"}]},macro_name:{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.function.preprocessor.cpp"},member_access:{match:"(?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(\\b(?!uint_least16_t[^\\w]|uint_least32_t[^\\w]|uint_least64_t[^\\w]|int_least16_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|int_least8_t[^\\w]|int_fast16_t[^\\w]|int_fast32_t[^\\w]|int_fast64_t[^\\w]|uint_fast8_t[^\\w]|suseconds_t[^\\w]|int_fast8_t[^\\w]|useconds_t[^\\w]|blksize_t[^\\w]|in_addr_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|unsigned[^\\w]|u_quad_t[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|intptr_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|swblk_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|signed[^\\w]|double[^\\w]|u_char[^\\w]|u_long[^\\w]|ushort[^\\w]|quad_t[^\\w]|mode_t[^\\w]|size_t[^\\w]|time_t[^\\w]|int8_t[^\\w]|short[^\\w]|float[^\\w]|u_int[^\\w]|div_t[^\\w]|dev_t[^\\w]|gid_t[^\\w]|ino_t[^\\w]|key_t[^\\w]|pid_t[^\\w]|off_t[^\\w]|uid_t[^\\w]|auto[^\\w]|void[^\\w]|char[^\\w]|long[^\\w]|bool[^\\w]|uint[^\\w]|id_t[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"variable.language.this.cpp"},"4":{name:"variable.other.object.access.cpp"},"5":{name:"punctuation.separator.dot-access.cpp"},"6":{name:"punctuation.separator.pointer-access.cpp"},"7":{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.property.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{match:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{include:"#member_access"},{include:"#method_access"}]},"8":{name:"variable.other.property.cpp"}}},memory_operators:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.operator.wordlike.cpp"},"4":{name:"keyword.operator.delete.array.cpp"},"5":{name:"keyword.operator.delete.array.bracket.cpp"},"6":{name:"keyword.operator.delete.cpp"},"7":{name:"keyword.operator.new.cpp"}}},method_access:{begin:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"},"9":{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.property.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{match:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{include:"#member_access"},{include:"#method_access"}]},"10":{name:"entity.name.function.member.cpp"},"11":{name:"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:constinit)|(?:requires)|(?:typedef)|(?:concept)|(?:export)|(?:module))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.other.$3.cpp"}}},ms_attributes:{begin:"__declspec\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.attribute.begin.cpp"}},endCaptures:{"0":{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{name:"keyword.other.using.directive.cpp"},"2":{name:"entity.name.namespace.cpp"}}},{match:",",name:"punctuation.separator.attribute.cpp"},{match:":",name:"punctuation.accessor.attribute.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",name:"entity.name.namespace.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.other.attribute.$0.cpp"},{include:"#number_literal"}]},namespace_alias:{match:"(?<!\\w)(namespace)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?(((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(?:(;)|\\n))",captures:{"1":{name:"keyword.other.namespace.alias.cpp storage.type.namespace.alias.cpp"},"2":{name:"entity.name.namespace.alias.cpp"},"3":{name:"keyword.operator.assignment.cpp"},"4":{name:"meta.declaration.namespace.alias.value.cpp"},"5":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"6":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"7":{patterns:[{include:"#template_call_range"}]},"9":{name:"entity.name.namespace.cpp"},"10":{name:"punctuation.terminator.statement.cpp"}},name:"meta.declaration.namespace.alias.cpp"},namespace_block:{begin:"((?<!\\w)namespace(?!\\w))",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.namespace.cpp"},"1":{name:"keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"}},endCaptures:{},name:"meta.block.namespace.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.namespace.cpp"}},name:"meta.head.namespace.cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(?:(::)(?:(?:\\s)+)?(inline))?",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.namespace.cpp"},"6":{name:"punctuation.separator.scope-resolution.namespace.block.cpp"},"7":{name:"storage.modifier.inline.cpp"}}}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.namespace.cpp"}},name:"meta.body.namespace.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.namespace.cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"}},contentName:"meta.arguments.operator.noexcept",patterns:[{include:"#evaluation_context"}]},number_literal:{match:"(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*",captures:{"0":{patterns:[{begin:"(?=.)",end:"$",beginCaptures:{},endCaptures:{},patterns:[{match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)",captures:{"1":{name:"keyword.other.unit.hexadecimal.cpp"},"2":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"constant.numeric.hexadecimal.cpp"},"5":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"6":{name:"punctuation.separator.constant.numeric.cpp"},"7":{name:"keyword.other.unit.exponent.hexadecimal.cpp"},"8":{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},"9":{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},"10":{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"11":{name:"keyword.other.unit.suffix.floating-point.cpp"},"12":{name:"keyword.other.unit.user-defined.cpp"}}},{match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)",captures:{"1":{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"2":{name:"punctuation.separator.constant.numeric.cpp"},"3":{name:"constant.numeric.decimal.point.cpp"},"4":{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"5":{name:"punctuation.separator.constant.numeric.cpp"},"6":{name:"keyword.other.unit.exponent.decimal.cpp"},"7":{name:"keyword.operator.plus.exponent.decimal.cpp"},"8":{name:"keyword.operator.minus.exponent.decimal.cpp"},"9":{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"10":{name:"keyword.other.unit.suffix.floating-point.cpp"},"11":{name:"keyword.other.unit.user-defined.cpp"}}},{match:"(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)",captures:{"1":{name:"keyword.other.unit.binary.cpp"},"2":{name:"constant.numeric.binary.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"keyword.other.unit.suffix.integer.cpp"},"5":{name:"keyword.other.unit.user-defined.cpp"}}},{match:"(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)",captures:{"1":{name:"keyword.other.unit.octal.cpp"},"2":{name:"constant.numeric.octal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"keyword.other.unit.suffix.integer.cpp"},"5":{name:"keyword.other.unit.user-defined.cpp"}}},{match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)",captures:{"1":{name:"keyword.other.unit.hexadecimal.cpp"},"2":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"3":{name:"punctuation.separator.constant.numeric.cpp"},"4":{name:"keyword.other.unit.exponent.hexadecimal.cpp"},"5":{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},"6":{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},"7":{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"8":{name:"keyword.other.unit.suffix.integer.cpp"},"9":{name:"keyword.other.unit.user-defined.cpp"}}},{match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)",captures:{"1":{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"2":{name:"punctuation.separator.constant.numeric.cpp"},"3":{name:"keyword.other.unit.exponent.decimal.cpp"},"4":{name:"keyword.operator.plus.exponent.decimal.cpp"},"5":{name:"keyword.operator.minus.exponent.decimal.cpp"},"6":{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},"7":{name:"keyword.other.unit.suffix.integer.cpp"},"8":{name:"keyword.other.unit.user-defined.cpp"}}},{match:"(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",name:"invalid.illegal.constant.numeric.cpp"}]}]}}},operator_overload:{begin:"(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:new)|(?:\\->\\*)|(?:<<=)|(?:>>=)|(?:<=>)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:\\-\\-)|(?:<<)|(?:>>)|(?:<=)|(?:>=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|(?:\\/=)|(?:%=)|(?:&=)|(?:\\^=)|(?:\\|=)|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=|,))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.operator-overload.cpp"},"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"12":{patterns:[{include:"#template_call_range"}]},"13":{},"14":{patterns:[{include:"#inline_comment"}]},"15":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"16":{name:"comment.block.cpp"},"17":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"18":{},"19":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"22":{name:"comment.block.cpp"},"23":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"24":{patterns:[{include:"#inline_comment"}]},"25":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"26":{name:"comment.block.cpp"},"27":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"28":{patterns:[{include:"#inline_comment"}]},"29":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"30":{name:"comment.block.cpp"},"31":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"32":{patterns:[{include:"#inline_comment"}]},"33":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"34":{name:"comment.block.cpp"},"35":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"36":{name:"storage.type.modifier.calling-convention.cpp"},"37":{patterns:[{include:"#inline_comment"}]},"38":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"39":{name:"comment.block.cpp"},"40":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"41":{patterns:[{include:"#inline_comment"}]},"42":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"43":{name:"comment.block.cpp"},"44":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"45":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.operator.cpp"},{include:"#template_call_range"}]},"46":{patterns:[{include:"#template_call_range"}]},"47":{},"48":{name:"keyword.other.operator.overload.cpp"},"49":{patterns:[{include:"#inline_comment"}]},"50":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"51":{name:"comment.block.cpp"},"52":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"53":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.operator-overload.cpp"},{include:"#template_call_range"}]},"54":{patterns:[{include:"#template_call_range"}]},"55":{},"56":{name:"entity.name.operator.cpp"},"57":{name:"entity.name.operator.type.cpp"},"58":{patterns:[{match:"\\*",name:"entity.name.operator.type.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"entity.name.operator.type.reference.cpp"}]},"59":{patterns:[{include:"#inline_comment"}]},"60":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"61":{name:"comment.block.cpp"},"62":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"63":{patterns:[{include:"#inline_comment"}]},"64":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"65":{name:"comment.block.cpp"},"66":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"67":{patterns:[{include:"#inline_comment"}]},"68":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"69":{name:"comment.block.cpp"},"70":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"71":{name:"entity.name.operator.type.array.cpp"},"72":{name:"entity.name.operator.custom-literal.cpp"},"73":{patterns:[{include:"#inline_comment"}]},"74":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"75":{name:"comment.block.cpp"},"76":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"77":{name:"entity.name.operator.custom-literal.cpp"},"78":{patterns:[{include:"#inline_comment"}]},"79":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"80":{name:"comment.block.cpp"},"81":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{},name:"meta.function.definition.special.operator-overload.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.head.function.definition.special.operator-overload.cpp",patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"}},contentName:"meta.function.definition.parameters.special.operator-overload",patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.body.function.definition.special.operator-overload.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"}},contentName:"meta.arguments.operator.sizeof",patterns:[{include:"#evaluation_context"}]},{begin:"((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"}},contentName:"meta.arguments.operator.alignof",patterns:[{include:"#evaluation_context"}]},{begin:"((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"}},contentName:"meta.arguments.operator.alignas",patterns:[{include:"#evaluation_context"}]},{begin:"((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"}},contentName:"meta.arguments.operator.typeid",patterns:[{include:"#evaluation_context"}]},{begin:"((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"}},contentName:"meta.arguments.operator.noexcept",patterns:[{include:"#evaluation_context"}]},{begin:"(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"}},contentName:"meta.arguments.operator.sizeof.variadic",patterns:[{include:"#evaluation_context"}]},{match:"--",name:"keyword.operator.decrement.cpp"},{match:"\\+\\+",name:"keyword.operator.increment.cpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()\\/=",name:"keyword.operator.assignment.compound.cpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{match:"(\\bstruct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.struct.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.struct.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},{match:"(\\benum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.enum.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.enum.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},{match:"(\\bunion)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.union.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.union.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},{match:"(\\bclass)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.class.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.class.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}}]},parameter:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",end:"(?:(?=\\))|(,))",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{"1":{name:"punctuation.separator.delimiter.comma.cpp"}},name:"meta.parameter.cpp",patterns:[{include:"#ever_present_context"},{include:"#function_pointer_parameter"},{include:"#decltype"},{include:"#vararg_ellipses"},{match:"((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",captures:{"1":{patterns:[{include:"#storage_types"}]},"2":{name:"storage.modifier.specifier.parameter.cpp"},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{name:"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},"12":{name:"storage.type.cpp storage.type.built-in.cpp"},"13":{name:"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},"14":{name:"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"},"15":{name:"entity.name.type.parameter.cpp"},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{include:"#storage_types"},{include:"#scope_resolution_parameter_inner_generated"},{match:"(?:(?:struct)|(?:class)|(?:union)|(?:enum))",name:"storage.type.$0.cpp"},{begin:"(?<==)",end:"(?:(?=\\))|(,))",beginCaptures:{},endCaptures:{"1":{name:"punctuation.separator.delimiter.comma.cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"\\=",name:"keyword.operator.assignment.cpp"},{match:"(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.parameter.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{include:"#attributes_context"},{begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.square.array.type.cpp"}},endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.array.type.cpp"}},name:"meta.bracket.square.array.cpp",patterns:[{include:"#evaluation_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",name:"entity.name.type.parameter.cpp"},{include:"#template_call_range"},{match:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",captures:{"0":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{name:"comment.block.cpp"},"8":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},parameter_class:{match:"(\\bclass)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.class.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.class.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},parameter_enum:{match:"(\\benum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.enum.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.enum.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},parameter_or_maybe_value:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",end:"(?:(?=\\))|(,))",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},endCaptures:{"1":{name:"punctuation.separator.delimiter.comma.cpp"}},name:"meta.parameter.cpp",patterns:[{include:"#ever_present_context"},{include:"#function_pointer_parameter"},{include:"#memory_operators"},{include:"#builtin_storage_type_initilizer"},{include:"#curly_initializer"},{include:"#decltype"},{include:"#vararg_ellipses"},{match:"((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",captures:{"1":{patterns:[{include:"#storage_types"}]},"2":{name:"storage.modifier.specifier.parameter.cpp"},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{name:"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},"12":{name:"storage.type.cpp storage.type.built-in.cpp"},"13":{name:"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},"14":{name:"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"},"15":{name:"entity.name.type.parameter.cpp"},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{include:"#storage_types"},{include:"#function_call"},{include:"#scope_resolution_parameter_inner_generated"},{match:"(?:(?:struct)|(?:class)|(?:union)|(?:enum))",name:"storage.type.$0.cpp"},{begin:"(?<==)",end:"(?:(?=\\))|(,))",beginCaptures:{},endCaptures:{"1":{name:"punctuation.separator.delimiter.comma.cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"variable.parameter.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{include:"#attributes_context"},{begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.square.array.type.cpp"}},endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.array.type.cpp"}},name:"meta.bracket.square.array.cpp",patterns:[{include:"#evaluation_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",name:"entity.name.type.parameter.cpp"},{include:"#template_call_range"},{match:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",captures:{"0":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{name:"comment.block.cpp"},"8":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{include:"#evaluation_context"}]},parameter_struct:{match:"(\\bstruct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.struct.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.struct.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},parameter_union:{match:"(\\bunion)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{"1":{name:"storage.type.union.parameter.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.union.parameter.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"variable.other.object.declare.cpp"},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},parentheses:{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.cpp"}},endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.cpp"}},name:"meta.parens.cpp",patterns:[{include:"#over_qualified_types"},{match:"(?<!:):(?!:)",name:"punctuation.separator.colon.range-based.cpp"},{include:"#evaluation_context"}]},pragma:{begin:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{"0":{name:"keyword.control.directive.pragma.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"punctuation.definition.directive.cpp"}},endCaptures:{},name:"meta.preprocessor.pragma.cpp",patterns:[{include:"#comments"},{include:"#string_context"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.cpp"},{include:"#preprocessor_number_literal"},{include:"#line_continuation_character"}]},pragma_mark:{match:"(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)",captures:{"1":{name:"keyword.control.directive.pragma.pragma-mark.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"punctuation.definition.directive.cpp"},"5":{name:"entity.name.tag.pragma-mark.cpp"}},name:"meta.preprocessor.pragma.cpp"},predefined_macros:{patterns:[{match:"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b",captures:{"1":{name:"entity.name.other.preprocessor.macro.predefined.$1.cpp"}}},{match:"\\b__([A-Z_]+)__\\b",name:"entity.name.other.preprocessor.macro.predefined.probably.$1.cpp"}]},preprocessor_conditional_context:{patterns:[{include:"#preprocessor_conditional_defined"},{include:"#comments"},{include:"#language_constants"},{include:"#string_context"},{include:"#d9bc4796b0b_preprocessor_number_literal"},{include:"#operators"},{include:"#predefined_macros"},{include:"#macro_name"},{include:"#line_continuation_character"}]},preprocessor_conditional_defined:{begin:"((?<!\\w)defined(?!\\w))(\\()",end:"(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))",beginCaptures:{"1":{name:"keyword.control.directive.conditional.defined.cpp"},"2":{name:"punctuation.section.parens.control.defined.cpp"}},endCaptures:{"0":{name:"punctuation.section.parens.control.defined.cpp"}},patterns:[{include:"#macro_name"}]},preprocessor_conditional_parentheses:{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.cpp"}},endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.cpp"}},name:"meta.parens.preprocessor.conditional.cpp"},preprocessor_conditional_range:{begin:"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",end:"^(?!\\s*+#\\s*(?:else|endif))",beginCaptures:{"0":{name:"keyword.control.directive.conditional.$6.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"punctuation.definition.directive.cpp"},"6":{}},endCaptures:{},patterns:[{begin:"\\G(?<=ifndef|ifdef|if)",end:"(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))",beginCaptures:{},endCaptures:{},name:"meta.preprocessor.conditional.cpp",patterns:[{include:"#preprocessor_conditional_context"}]},{include:"$self"}]},preprocessor_conditional_standalone:{match:"^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?<!\\w)(?:endif|else|elif)(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"punctuation.definition.directive.cpp"}},name:"keyword.control.directive.$4.cpp"},preprocessor_context:{patterns:[{include:"#pragma_mark"},{include:"#pragma"},{include:"#include"},{include:"#line"},{include:"#diagnostic"},{include:"#undef"},{include:"#preprocessor_conditional_range"},{include:"#single_line_macro"},{include:"#macro"},{include:"#preprocessor_conditional_standalone"},{include:"#macro_argument"}]},qualified_type:{match:"\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)?(?![\\w<:.])",captures:{"0":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"1":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"6":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"7":{patterns:[{include:"#template_call_range"}]},"9":{patterns:[{include:"#inline_comment"}]},"10":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}},name:"meta.qualified_type.cpp"},qualifiers_and_specifiers_post_parameters:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?<!\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\w))+(?=\\s*(?:(?:\\{|;)|[\\n\\r])))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"storage.modifier.specifier.functional.post-parameters.$3.cpp"},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},scope_resolution:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.call.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"}}},scope_resolution_function_definition:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.definition.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"}}},scope_resolution_function_definition_operator_overload:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_operator_overload_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.definition.operator-overload.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"}}},scope_resolution_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"}}},scope_resolution_namespace_alias:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_alias_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.alias.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"}}},scope_resolution_namespace_block:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_block_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.block.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"}}},scope_resolution_namespace_using:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_using_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.using.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"}}},scope_resolution_parameter:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_parameter_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.parameter.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"}}},scope_resolution_template_call:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_call_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.template.call.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"}}},scope_resolution_template_definition:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_definition_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.template.definition.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"}}},semicolon:{match:";",name:"punctuation.terminator.statement.cpp"},simple_type:{match:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?",captures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"8":{patterns:[{include:"#template_call_range"}]},"9":{},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{},"13":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"14":{patterns:[{include:"#inline_comment"}]},"15":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},single_line_macro:{match:"^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?<![\\\\])(?:(?:\\n)|$)",captures:{"0":{patterns:[{include:"#macro"},{include:"#comments"}]},"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},sizeof_operator:{begin:"((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"}},contentName:"meta.arguments.operator.sizeof",patterns:[{include:"#evaluation_context"}]},sizeof_variadic_operator:{begin:"(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"}},contentName:"meta.arguments.operator.sizeof.variadic",patterns:[{include:"#evaluation_context"}]},square_brackets:{name:"meta.bracket.square.access",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{"1":{name:"variable.other.object"},"2":{name:"punctuation.definition.begin.bracket.square"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.end.bracket.square"}},patterns:[{include:"#evaluation_context"}]},standard_declares:{patterns:[{match:"((?<!\\w)struct(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.struct.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.struct.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},{match:"((?<!\\w)union(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.union.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.union.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},{match:"((?<!\\w)enum(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.enum.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.enum.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},{match:"((?<!\\w)class(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.class.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.class.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}}]},static_assert:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"keyword.other.static_assert.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{name:"punctuation.section.arguments.begin.bracket.round.static_assert.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.static_assert.cpp"}},patterns:[{begin:"(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)",end:"(?=\\))",beginCaptures:{"1":{name:"punctuation.separator.delimiter.comma.cpp"}},endCaptures:{},name:"meta.static_assert.message.cpp",patterns:[{include:"#string_context"}]},{include:"#evaluation_context"}]},std_space:{match:"(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))",captures:{"0":{patterns:[{include:"#inline_comment"}]},"1":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},storage_specifiers:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"storage.modifier.specifier.$3.cpp"}}},storage_types:{patterns:[{include:"#storage_specifiers"},{include:"#inline_builtin_storage_type"},{include:"#decltype"},{include:"#typename"}]},string_context:{patterns:[{begin:"((?:u|u8|U|L)?)\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"},"1":{name:"meta.encoding.cpp"}},endCaptures:{"0":{name:"punctuation.definition.string.end.cpp"}},name:"string.quoted.double.cpp",patterns:[{match:"(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",name:"constant.character.escape.cpp"},{match:"\\\\['\"?\\\\abfnrtv]",name:"constant.character.escape.cpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.cpp"},{match:"(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",captures:{"1":{name:"constant.character.escape.cpp"},"2":{name:"invalid.illegal.unknown-escape.cpp"}}},{include:"#string_escapes_context_c"}]},{begin:"(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"},"1":{name:"meta.encoding.cpp"}},endCaptures:{"0":{name:"punctuation.definition.string.end.cpp"}},name:"string.quoted.single.cpp",patterns:[{match:"(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",captures:{"1":{name:"constant.character.escape.cpp"},"2":{name:"invalid.illegal.unknown-escape.cpp"}}},{include:"#string_escapes_context_c"},{include:"#line_continuation_character"}]},{begin:"((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(",end:"\\)(?:(?:_r|re)|regex)\\\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"},"1":{name:"meta.encoding.cpp"}},endCaptures:{"0":{name:"punctuation.definition.string.end.cpp"}},name:"string.quoted.double.raw.regex.cpp",patterns:[{include:"source.regexp.python"}]},{begin:"((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(",end:"\\)(?:glsl|GLSL)\\\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"},"1":{name:"meta.encoding.cpp"}},endCaptures:{"0":{name:"punctuation.definition.string.end.cpp"}},name:"meta.string.quoted.double.raw.glsl.cpp",patterns:[{include:"source.glsl"}]},{begin:"((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(",end:"\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cpp"},"1":{name:"meta.encoding.cpp"}},endCaptures:{"0":{name:"punctuation.definition.string.end.cpp"}},name:"meta.string.quoted.double.raw.sql.cpp",patterns:[{include:"source.sql"}]},{begin:"((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin"},"1":{name:"meta.encoding"},"3":{name:"invalid.illegal.delimiter-too-long"}},end:"\\)\\2(\\3)\"",endCaptures:{"0":{name:"punctuation.definition.string.end"},"1":{name:"invalid.illegal.delimiter-too-long"}},name:"string.quoted.double.raw"}]},string_escapes_context_c:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape"},{match:"\\\\.",name:"invalid.illegal.unknown-escape"},{match:"(?x) (?!%')(?!%\")%\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder"}]},struct_block:{begin:"((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.struct.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.type.modifier.final.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{"1":{name:"entity.name.type.struct.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"storage.type.modifier.final.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"20":{name:"punctuation.separator.colon.inheritance.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.struct.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.struct.cpp"}},name:"meta.head.struct.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{include:"$self"}]}]},struct_declare:{match:"((?<!\\w)struct(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.struct.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.struct.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},switch_conditional_parentheses:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"}},endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.conditional.switch.cpp"}},name:"meta.conditional.switch.cpp",patterns:[{include:"#evaluation_context"}]},switch_statement:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)switch(?!\\w))",end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.switch.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"5":{name:"keyword.control.switch.cpp"}},endCaptures:{},name:"meta.block.switch.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.switch.cpp"}},name:"meta.head.switch.cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.switch.cpp"}},name:"meta.body.switch.cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.switch.cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{match:"(?<=<|,)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?([=])",captures:{"1":{name:"storage.type.template.cpp"},"2":{name:"entity.name.type.template.cpp"},"3":{name:"keyword.operator.assignment.cpp"}}},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{match:"((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+",captures:{"0":{patterns:[{include:"#template_call_range"}]}},name:"meta.template.call.cpp"},template_call_range:{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?<!\\w)(template)(?:(?:\\s)+)?(<)",end:">",beginCaptures:{"1":{name:"storage.type.template.cpp"},"2":{name:"punctuation.section.angle-brackets.start.template.definition.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}},name:"meta.template.definition.cpp",patterns:[{begin:"(?<=\\w)(?:(?:\\s)+)?<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\.\\.\\.)(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))(?:(?:\\s)+)?(?:(,)|(?=>|$))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"storage.type.template.argument.$3.cpp"},"4":{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cpp"}]},"5":{name:"entity.name.type.template.cpp"},"6":{name:"storage.type.template.cpp"},"7":{name:"punctuation.vararg-ellipses.template.definition.cpp"},"8":{name:"entity.name.type.template.cpp"},"9":{name:"punctuation.separator.delimiter.comma.template.argument.cpp"}}},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_isolated_definition:{match:"(?<!\\w)(template)(?:(?:\\s)+)?(<)(.*)(>(?:(?:\\s)+)?$)",captures:{"1":{name:"storage.type.template.cpp"},"2":{name:"punctuation.section.angle-brackets.start.template.definition.cpp"},"3":{name:"meta.template.definition.cpp",patterns:[{include:"#template_definition_context"}]},"4":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}}},ternary_operator:{begin:"\\?",end:":",beginCaptures:{"0":{name:"keyword.operator.ternary.cpp"}},endCaptures:{"0":{name:"keyword.operator.ternary.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}],applyEndPatternLast:1},the_this_keyword:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"variable.language.this.cpp"}}},type_alias:{match:"(using)(?:(?:\\s)+)?(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?((?:typename)?)(?:(?:\\s)+)?((?:(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))(?<!\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w)(?:\\s)+)+)?(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))|(.*(?<!;)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)?(?:(?:\\s)+)?(?:(;)|\\n)",captures:{"1":{name:"keyword.other.using.directive.cpp"},"2":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"3":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"9":{patterns:[{include:"#template_call_range"}]},"11":{patterns:[{include:"#inline_comment"}]},"12":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"14":{name:"keyword.operator.assignment.cpp"},"15":{name:"keyword.other.typename.cpp"},"16":{patterns:[{include:"#storage_specifiers"}]},"17":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"18":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"19":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"22":{patterns:[{include:"#inline_comment"}]},"23":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"24":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"25":{patterns:[{include:"#template_call_range"}]},"27":{patterns:[{include:"#inline_comment"}]},"28":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"30":{name:"meta.declaration.type.alias.value.unknown.cpp",patterns:[{include:"#evaluation_context"}]},"31":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"32":{patterns:[{include:"#inline_comment"}]},"33":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"34":{patterns:[{include:"#inline_comment"}]},"35":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"36":{patterns:[{include:"#inline_comment"}]},"37":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"38":{name:"punctuation.definition.begin.bracket.square.cpp"},"39":{patterns:[{include:"#evaluation_context"}]},"40":{name:"punctuation.definition.end.bracket.square.cpp"},"41":{name:"punctuation.terminator.statement.cpp"}},name:"meta.declaration.type.alias.cpp"},type_casting_operators:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:reinterpret_cast)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"3":{name:"keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp"}}},typedef_class:{begin:"((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)class(?!\\w))",end:"(?<=;)",beginCaptures:{"1":{name:"keyword.other.typedef.cpp"}},endCaptures:{},patterns:[{begin:"((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.class.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.type.modifier.final.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{"1":{name:"entity.name.type.class.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"storage.type.modifier.final.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"20":{name:"punctuation.separator.colon.inheritance.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.class.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.class.cpp"}},name:"meta.head.class.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{name:"comment.block.cpp"},"13":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"14":{name:"entity.name.type.alias.cpp"}}},{match:","}]}]}]},typedef_function_pointer:{begin:"((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))",end:"(?<=;)",beginCaptures:{"1":{name:"keyword.other.typedef.cpp"}},endCaptures:{},patterns:[{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"12":{patterns:[{include:"#template_call_range"}]},"13":{},"14":{patterns:[{include:"#inline_comment"}]},"15":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"16":{name:"comment.block.cpp"},"17":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"18":{},"19":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"22":{name:"comment.block.cpp"},"23":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"24":{patterns:[{include:"#inline_comment"}]},"25":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"26":{name:"comment.block.cpp"},"27":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"28":{patterns:[{include:"#inline_comment"}]},"29":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"30":{name:"comment.block.cpp"},"31":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"32":{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cpp"},"33":{name:"punctuation.definition.function.pointer.dereference.cpp"},"34":{name:"entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"},"35":{name:"punctuation.definition.begin.bracket.square.cpp"},"36":{patterns:[{include:"#evaluation_context"}]},"37":{name:"punctuation.definition.end.bracket.square.cpp"},"38":{name:"punctuation.section.parens.end.bracket.round.function.pointer.cpp"},"39":{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"}},endCaptures:{"1":{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},patterns:[{include:"#function_parameter_context"}]}]},typedef_struct:{begin:"((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)struct(?!\\w))",end:"(?<=;)",beginCaptures:{"1":{name:"keyword.other.typedef.cpp"}},endCaptures:{},patterns:[{begin:"((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.struct.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.type.modifier.final.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{"1":{name:"entity.name.type.struct.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"storage.type.modifier.final.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"20":{name:"punctuation.separator.colon.inheritance.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.struct.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.struct.cpp"}},name:"meta.head.struct.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{name:"comment.block.cpp"},"13":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"14":{name:"entity.name.type.alias.cpp"}}},{match:","}]}]}]},typedef_union:{begin:"((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)union(?!\\w))",end:"(?<=;)",beginCaptures:{"1":{name:"keyword.other.typedef.cpp"}},endCaptures:{},patterns:[{begin:"((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.union.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.type.modifier.final.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{"1":{name:"entity.name.type.union.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"storage.type.modifier.final.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"20":{name:"punctuation.separator.colon.inheritance.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.union.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.union.cpp"}},name:"meta.head.union.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{name:"comment.block.cpp"},"13":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"14":{name:"entity.name.type.alias.cpp"}}},{match:","}]}]}]},typeid_operator:{begin:"((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{"1":{name:"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"}},contentName:"meta.arguments.operator.typeid",patterns:[{include:"#evaluation_context"}]},typename:{match:"(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?<!\\w)typename(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)?(?![\\w<:.]))",captures:{"1":{name:"storage.modifier.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"6":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",name:"storage.type.$0.cpp"},{include:"#attributes_context"},{include:"#storage_types"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma"},{include:"#scope_resolution_inner_generated"},{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"7":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",name:"entity.name.scope-resolution.type.cpp"},{include:"#template_call_range"}]},"13":{patterns:[{include:"#template_call_range"}]},"14":{},"15":{patterns:[{include:"#inline_comment"}]},"16":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"17":{}}},undef:{match:"(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",captures:{"1":{name:"keyword.control.directive.undef.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"punctuation.definition.directive.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"7":{name:"entity.name.function.preprocessor.cpp"}},name:"meta.preprocessor.undef.cpp"},union_block:{begin:"((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.union.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"11":{patterns:[{match:"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{"1":{name:"storage.type.modifier.final.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{"1":{name:"entity.name.type.union.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"6":{name:"storage.type.modifier.final.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"16":{patterns:[{include:"#inline_comment"}]},"17":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"18":{name:"comment.block.cpp"},"19":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]},"20":{name:"punctuation.separator.colon.inheritance.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.union.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.union.cpp"}},name:"meta.head.union.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cpp",patterns:[{include:"$self"}]}]},union_declare:{match:"((?<!\\w)union(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{"1":{name:"storage.type.union.declare.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"4":{name:"entity.name.type.union.cpp"},"5":{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}},name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]},"12":{name:"variable.other.object.declare.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.cpp punctuation.definition.comment.end.cpp"},{match:"\\*",name:"comment.block.cpp"}]}}}]}}},using_name:{match:"(using)(?:\\s)+(?!namespace\\b)",captures:{"1":{name:"keyword.other.using.directive.cpp"}}},using_namespace:{begin:"(?<!\\w)(using)(?:\\s)+(namespace)(?:\\s)+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)",end:";",beginCaptures:{"1":{name:"keyword.other.using.directive.cpp"},"2":{name:"keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp"},"3":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"4":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"5":{patterns:[{include:"#template_call_range"}]},"6":{},"7":{name:"entity.name.namespace.cpp"}},endCaptures:{"0":{name:"punctuation.terminator.statement.cpp"}},name:"meta.using-namespace.cpp"},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.cpp"},wordlike_operators:{patterns:[{match:"(?<!\\w)(?:(?:noexcept)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:compl)|(?:bitor)|(?:or_eq)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:or))(?!\\w)",name:"keyword.operator.wordlike.cpp keyword.operator.$0.cpp"}]}};var cpp_tmLanguage = {information_for_contributors:information_for_contributors,version:version,name:name,scopeName:scopeName,patterns:patterns,repository:repository};
|
|
6
6
|
|
|
7
|
-
exports
|
|
7
|
+
exports.default = cpp_tmLanguage;
|
|
8
8
|
exports.information_for_contributors = information_for_contributors;
|
|
9
9
|
exports.name = name;
|
|
10
10
|
exports.patterns = patterns;
|