@loopstack/loopstack-studio 0.25.1 → 0.26.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.
Files changed (1691) hide show
  1. package/dist/_virtual/rolldown_runtime.js +20 -0
  2. package/dist/api/auth.js +2 -4
  3. package/dist/api/client.js +7 -9
  4. package/dist/api/config.js +2 -4
  5. package/dist/api/dashboard.js +2 -4
  6. package/dist/api/documents.js +2 -4
  7. package/dist/api/environments.js +4 -0
  8. package/dist/api/index.js +23 -21
  9. package/dist/api/processor.js +2 -4
  10. package/dist/api/secrets.js +2 -4
  11. package/dist/api/workflows.js +2 -4
  12. package/dist/api/workspaces.js +2 -4
  13. package/dist/app/EnvironmentEmbedRoot.js +41 -24
  14. package/dist/components/ai-elements/code-block.js +71 -53
  15. package/dist/components/ai-elements/message.js +82 -41
  16. package/dist/components/ai-elements/prompt-input.js +253 -162
  17. package/dist/components/ai-elements/reasoning.js +116 -78
  18. package/dist/components/ai-elements/shimmer.js +35 -23
  19. package/dist/components/ai-elements/sources.js +58 -29
  20. package/dist/components/data-table/ConfirmDialog.js +30 -14
  21. package/dist/components/data-table/DataList.js +200 -138
  22. package/dist/components/data-table/DataTable.js +236 -168
  23. package/dist/components/data-table/DataTableBatchAction.js +27 -18
  24. package/dist/components/data-table/DataTableFilters.js +78 -53
  25. package/dist/components/data-table/DataTablePagination.js +104 -72
  26. package/dist/components/data-table/DataTableToolbar.js +65 -53
  27. package/dist/components/dynamic-form/ArrayController.js +103 -85
  28. package/dist/components/dynamic-form/CodeContent.js +36 -28
  29. package/dist/components/dynamic-form/Form.js +56 -43
  30. package/dist/components/dynamic-form/FormBody.js +10 -12
  31. package/dist/components/dynamic-form/FormElement.js +41 -31
  32. package/dist/components/dynamic-form/FormElementHeader.js +20 -12
  33. package/dist/components/dynamic-form/InputController.js +38 -36
  34. package/dist/components/dynamic-form/MarkdownContent.js +74 -53
  35. package/dist/components/dynamic-form/MermaidDiagram.js +24 -22
  36. package/dist/components/dynamic-form/ObjectController.js +32 -24
  37. package/dist/components/dynamic-form/fields/BaseFieldWrapper.js +47 -35
  38. package/dist/components/dynamic-form/fields/CheckboxField.js +48 -39
  39. package/dist/components/dynamic-form/fields/CodeViewField.js +50 -42
  40. package/dist/components/dynamic-form/fields/InputField.js +90 -62
  41. package/dist/components/dynamic-form/fields/MarkdownViewField.js +19 -16
  42. package/dist/components/dynamic-form/fields/RadioField.js +62 -46
  43. package/dist/components/dynamic-form/fields/SelectField.js +58 -40
  44. package/dist/components/dynamic-form/fields/SliderField.js +100 -94
  45. package/dist/components/dynamic-form/fields/SwitchField.js +61 -42
  46. package/dist/components/dynamic-form/fields/TextareaField.js +72 -53
  47. package/dist/components/dynamic-form/fields/utils/text-validation-utils.js +2 -4
  48. package/dist/components/dynamic-form/hooks/useArrayDefaultValue.js +5 -6
  49. package/dist/components/dynamic-form/hooks/useFieldConfig.js +20 -19
  50. package/dist/components/dynamic-form/hooks/useMergeParentKey.js +2 -4
  51. package/dist/components/dynamic-form/hooks/useSortPropertyNames.js +2 -4
  52. package/dist/components/feedback/ErrorAlert.js +17 -11
  53. package/dist/components/feedback/ErrorBoundary.js +14 -16
  54. package/dist/components/feedback/ErrorSnackbar.js +30 -13
  55. package/dist/components/feedback/LoadingCentered.js +28 -15
  56. package/dist/components/feedback/Snackbar.js +44 -43
  57. package/dist/components/feedback/index.js +5 -5
  58. package/dist/components/index.js +47 -47
  59. package/dist/components/layout/MainLayout.js +25 -17
  60. package/dist/components/layout/StudioSidebar.js +203 -140
  61. package/dist/components/lists/CustomListView.js +74 -49
  62. package/dist/components/lists/ListView.js +102 -66
  63. package/dist/components/loopstack-elements/link.js +104 -65
  64. package/dist/components/loopstack-elements/tool.js +142 -70
  65. package/dist/components/messages/CompletionMessagePaper.js +85 -53
  66. package/dist/components/page/PageBreadcrumbs.js +83 -64
  67. package/dist/components/ui/DiscordLogo.js +22 -16
  68. package/dist/components/ui/GoogleLogo.js +44 -40
  69. package/dist/components/ui/accordion.js +52 -31
  70. package/dist/components/ui/alert-dialog.js +109 -59
  71. package/dist/components/ui/alert.js +36 -22
  72. package/dist/components/ui/avatar.js +35 -21
  73. package/dist/components/ui/badge.js +17 -13
  74. package/dist/components/ui/breadcrumb.js +82 -46
  75. package/dist/components/ui/button-group.js +5 -5
  76. package/dist/components/ui/button.js +21 -17
  77. package/dist/components/ui/card.js +74 -40
  78. package/dist/components/ui/checkbox.js +23 -17
  79. package/dist/components/ui/collapsible.js +25 -17
  80. package/dist/components/ui/command.js +2 -1
  81. package/dist/components/ui/context-menu.js +52 -32
  82. package/dist/components/ui/dialog.js +107 -62
  83. package/dist/components/ui/drawer.js +99 -54
  84. package/dist/components/ui/dropdown-menu.js +159 -91
  85. package/dist/components/ui/hover-card.js +2 -1
  86. package/dist/components/ui/input-group.js +56 -36
  87. package/dist/components/ui/input.js +15 -11
  88. package/dist/components/ui/label.js +15 -11
  89. package/dist/components/ui/popover.js +38 -25
  90. package/dist/components/ui/radio-group.js +33 -22
  91. package/dist/components/ui/scroll-area.js +43 -28
  92. package/dist/components/ui/select.js +134 -73
  93. package/dist/components/ui/separator.js +17 -13
  94. package/dist/components/ui/sheet.js +105 -60
  95. package/dist/components/ui/sidebar.js +451 -269
  96. package/dist/components/ui/skeleton.js +14 -10
  97. package/dist/components/ui/slider.js +41 -32
  98. package/dist/components/ui/switch.js +21 -15
  99. package/dist/components/ui/table.js +85 -46
  100. package/dist/components/ui/tabs.js +45 -26
  101. package/dist/components/ui/textarea.js +14 -10
  102. package/dist/components/ui/tooltip.js +41 -26
  103. package/dist/components/ui-widgets/UiActions.js +37 -30
  104. package/dist/components/ui-widgets/UiWidget.js +46 -34
  105. package/dist/components/ui-widgets/widgets/AiPromptInput.js +42 -28
  106. package/dist/components/ui-widgets/widgets/ButtonFullWidth.js +21 -16
  107. package/dist/components/ui-widgets/widgets/SandboxRun.js +28 -19
  108. package/dist/components/ui-widgets/widgets/SubmitButton.js +20 -15
  109. package/dist/events/api-client-events.js +2 -4
  110. package/dist/events/sse-client-events.js +2 -4
  111. package/dist/features/code-explorer/CodeExplorer.js +2 -1
  112. package/dist/features/code-explorer/components/CodeExplorerTree.js +3 -2
  113. package/dist/features/code-explorer/components/CodeExplorerTreeNode.js +29 -31
  114. package/dist/features/code-explorer/components/FileContentViewer.js +148 -108
  115. package/dist/features/code-explorer/components/FileTabsBar.js +2 -1
  116. package/dist/features/code-explorer/components/FileTabsBarBase.js +169 -134
  117. package/dist/features/code-explorer/index.js +1 -1
  118. package/dist/features/code-explorer/providers/CodeExplorerProvider.js +4 -4
  119. package/dist/features/code-explorer/utils/fileIcons.js +39 -41
  120. package/dist/features/dashboard/Dashboard.js +121 -79
  121. package/dist/features/dashboard/RunItem.js +70 -50
  122. package/dist/features/dashboard/RunList.js +28 -17
  123. package/dist/features/debug/components/ConfigFlowViewer.js +67 -49
  124. package/dist/features/debug/components/WorkflowDebugHeader.js +46 -30
  125. package/dist/features/debug/components/WorkflowDebugLegend.js +68 -56
  126. package/dist/features/debug/components/WorkflowFlowViewer.js +96 -76
  127. package/dist/features/debug/components/workflow-flow/StateNode.js +102 -73
  128. package/dist/features/debug/components/workflow-flow/WorkflowGraph.js +40 -35
  129. package/dist/features/debug/components/workflow-flow/WorkflowTransitionEdge.js +94 -61
  130. package/dist/features/debug/index.js +3 -3
  131. package/dist/features/debug/lib/edge-paths.js +31 -33
  132. package/dist/features/debug/lib/flow-utils.js +145 -147
  133. package/dist/features/documents/DocumentRenderer.js +73 -68
  134. package/dist/features/documents/components/DocumentItem.js +24 -21
  135. package/dist/features/documents/components/DocumentList.js +45 -39
  136. package/dist/features/documents/components/DocumentMetadataPills.js +59 -44
  137. package/dist/features/documents/document-details/DocumentDetails.js +413 -298
  138. package/dist/features/documents/document-details/PromptDetails.js +142 -105
  139. package/dist/features/documents/index.js +4 -4
  140. package/dist/features/documents/renderers/AiMessage.js +48 -39
  141. package/dist/features/documents/renderers/AiMessageContent.js +164 -108
  142. package/dist/features/documents/renderers/ChoicesRenderer.js +89 -77
  143. package/dist/features/documents/renderers/ClaudeMessage.js +91 -74
  144. package/dist/features/documents/renderers/ConfirmPromptRenderer.js +53 -44
  145. package/dist/features/documents/renderers/DocumentDebugRenderer.js +30 -26
  146. package/dist/features/documents/renderers/DocumentFormRenderer.js +85 -69
  147. package/dist/features/documents/renderers/DocumentMessageRenderer.js +9 -10
  148. package/dist/features/documents/renderers/ErrorMessageRenderer.js +13 -11
  149. package/dist/features/documents/renderers/LinkMessageRenderer.js +14 -15
  150. package/dist/features/documents/renderers/MarkdownMessageRenderer.js +10 -8
  151. package/dist/features/documents/renderers/PlainMessageRenderer.js +9 -7
  152. package/dist/features/documents/renderers/TextPromptRenderer.js +54 -45
  153. package/dist/features/documents/renderers/useDocumentTransition.js +33 -30
  154. package/dist/features/feature-registry/FeatureRegistryProvider.js +17 -0
  155. package/dist/features/feature-registry/index.js +1 -0
  156. package/dist/features/file-explorer/api/files.js +7 -0
  157. package/dist/features/file-explorer/components/FileExplorerPanel.js +95 -0
  158. package/dist/features/file-explorer/components/FileTabsBar.js +18 -0
  159. package/dist/features/file-explorer/components/FileTree.js +90 -0
  160. package/dist/features/file-explorer/file-explorer-feature.js +12 -0
  161. package/dist/features/file-explorer/hooks/useFileExplorer.js +44 -0
  162. package/dist/features/file-explorer/index.js +2 -0
  163. package/dist/features/file-explorer/providers/FileExplorerProvider.js +112 -0
  164. package/dist/features/health/LocalHealthCheck.js +53 -54
  165. package/dist/features/health/index.js +1 -1
  166. package/dist/features/oauth/OAuthCallbackPage.js +2 -2
  167. package/dist/features/oauth/OAuthPromptRenderer.js +235 -156
  168. package/dist/features/oauth/index.js +2 -2
  169. package/dist/features/oauth/useOAuthPopup.js +71 -52
  170. package/dist/features/runs/Runs.js +187 -145
  171. package/dist/features/secrets/components/WorkbenchSecretsPanel.js +178 -0
  172. package/dist/features/secrets/index.js +1 -0
  173. package/dist/features/secrets/renderers/SecretInputRenderer.js +87 -0
  174. package/dist/features/secrets/secrets-feature.js +14 -0
  175. package/dist/features/workbench/Workbench.js +50 -74
  176. package/dist/features/workbench/WorkflowItem.js +68 -49
  177. package/dist/features/workbench/WorkflowList.js +127 -49
  178. package/dist/features/workbench/components/NewRunDialog.js +309 -212
  179. package/dist/features/workbench/components/SidebarPanel.js +155 -0
  180. package/dist/features/workbench/components/WorkbenchEnvironmentPanel.js +82 -0
  181. package/dist/features/workbench/components/WorkbenchIconSidebar.js +137 -51
  182. package/dist/features/workbench/components/WorkbenchPreviewPanel.js +134 -123
  183. package/dist/features/workbench/components/WorkbenchRunsPanel.js +32 -0
  184. package/dist/features/workbench/components/WorkbenchSettingsModal.js +60 -49
  185. package/dist/features/workbench/components/WorkbenchSidebarShell.js +80 -0
  186. package/dist/features/workbench/components/WorkflowForms.js +23 -17
  187. package/dist/features/workbench/components/WorkflowHistoryItem.js +122 -96
  188. package/dist/features/workbench/components/WorkflowHistoryList.js +54 -31
  189. package/dist/features/workbench/components/buttons/WorkflowButtons.js +99 -70
  190. package/dist/features/workbench/hooks/useAutoScrollBottom.js +25 -21
  191. package/dist/features/workbench/hooks/useScrollToListItem.js +21 -20
  192. package/dist/features/workbench/hooks/useWorkflowData.js +44 -31
  193. package/dist/features/workbench/hooks/useWorkflowListState.js +12 -13
  194. package/dist/features/workbench/index.js +8 -7
  195. package/dist/features/workbench/providers/ScrollProvider.js +19 -15
  196. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +75 -78
  197. package/dist/features/workspaces/Workspaces.js +226 -161
  198. package/dist/features/workspaces/components/CreateWorkspace.js +194 -137
  199. package/dist/features/workspaces/components/EnvironmentSlotSelector.js +75 -60
  200. package/dist/features/workspaces/components/ExecutionTimeline.js +185 -143
  201. package/dist/features/workspaces/components/NewWorkflowRunDialog.js +26 -18
  202. package/dist/features/workspaces/components/WorkflowRunForm.js +133 -85
  203. package/dist/features/workspaces/components/WorkspaceHomePage.js +81 -60
  204. package/dist/features/workspaces/components/workflow-form/ArgumentsView.js +69 -52
  205. package/dist/features/workspaces/components/workflow-form/HeaderSection.js +41 -27
  206. package/dist/features/workspaces/components/workflow-form/SelectionView.js +103 -64
  207. package/dist/features/workspaces/index.js +3 -3
  208. package/dist/frontend/studio/node_modules/@dagrejs/dagre/dist/dagre.esm.js +1968 -0
  209. package/dist/hooks/index.js +6 -6
  210. package/dist/hooks/query-keys.js +31 -33
  211. package/dist/hooks/use-mobile.js +11 -12
  212. package/dist/hooks/useApi.js +14 -16
  213. package/dist/hooks/useAuth.js +53 -38
  214. package/dist/hooks/useConfig.js +37 -26
  215. package/dist/hooks/useDashboard.js +15 -12
  216. package/dist/hooks/useDebounce.js +11 -12
  217. package/dist/hooks/useDocuments.js +35 -23
  218. package/dist/hooks/useEnvironmentPreviewUrl.js +13 -0
  219. package/dist/hooks/useEnvironments.js +8 -0
  220. package/dist/hooks/useFiles.js +2 -1
  221. package/dist/hooks/useProcessor.js +17 -14
  222. package/dist/hooks/useSecrets.js +64 -45
  223. package/dist/hooks/useWorkflows.js +163 -109
  224. package/dist/hooks/useWorkspaces.js +125 -83
  225. package/dist/index.d.ts +1395 -0
  226. package/dist/index.js +87 -80
  227. package/dist/lib/requireParam.js +2 -4
  228. package/dist/lib/utils.js +5 -7
  229. package/dist/loopstack-studio.css +1 -1
  230. package/dist/node_modules/@braintree/sanitize-url/dist/constants.js +4 -6
  231. package/dist/node_modules/@braintree/sanitize-url/dist/index.js +6 -8
  232. package/dist/node_modules/@chevrotain/gast/lib/src/helpers.js +17 -19
  233. package/dist/node_modules/@chevrotain/gast/lib/src/model.js +71 -73
  234. package/dist/node_modules/@chevrotain/gast/lib/src/visitor.js +13 -16
  235. package/dist/node_modules/@chevrotain/regexp-to-ast/lib/src/api.js +2 -2
  236. package/dist/node_modules/@chevrotain/regexp-to-ast/lib/src/base-regexp-visitor.js +2 -4
  237. package/dist/node_modules/@chevrotain/regexp-to-ast/lib/src/character-classes.js +34 -36
  238. package/dist/node_modules/@chevrotain/regexp-to-ast/lib/src/regexp-parser.js +110 -138
  239. package/dist/node_modules/@chevrotain/regexp-to-ast/lib/src/utils.js +11 -13
  240. package/dist/node_modules/@chevrotain/utils/lib/src/print.js +3 -5
  241. package/dist/node_modules/@chevrotain/utils/lib/src/timer.js +2 -4
  242. package/dist/node_modules/@chevrotain/utils/lib/src/to-fast-properties.js +2 -4
  243. package/dist/node_modules/@iconify/utils/lib/customisations/defaults.js +6 -8
  244. package/dist/node_modules/@iconify/utils/lib/icon/defaults.js +8 -10
  245. package/dist/node_modules/@iconify/utils/lib/icon/merge.js +6 -8
  246. package/dist/node_modules/@iconify/utils/lib/icon/name.js +6 -8
  247. package/dist/node_modules/@iconify/utils/lib/icon/transformations.js +2 -4
  248. package/dist/node_modules/@iconify/utils/lib/icon-set/get-icon.js +10 -12
  249. package/dist/node_modules/@iconify/utils/lib/icon-set/tree.js +2 -4
  250. package/dist/node_modules/@iconify/utils/lib/svg/build.js +18 -20
  251. package/dist/node_modules/@iconify/utils/lib/svg/defs.js +6 -8
  252. package/dist/node_modules/@iconify/utils/lib/svg/html.js +2 -4
  253. package/dist/node_modules/@iconify/utils/lib/svg/id.js +8 -10
  254. package/dist/node_modules/@iconify/utils/lib/svg/size.js +5 -7
  255. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/architecture-YZFGNWBL.js +2 -2
  256. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-2KRD3SAO.js +17 -20
  257. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-67CJDMHE.js +17 -20
  258. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-7N4EOEYR.js +23 -28
  259. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-AA7GKIK3.js +21 -26
  260. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-CIAEETIT.js +17 -20
  261. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-FOC6F5B3.js +17 -20
  262. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-K5T4RW27.js +425 -436
  263. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-KGLVRYIC.js +17 -20
  264. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-LIHQZDEY.js +38 -45
  265. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-ORNJ4GCN.js +22 -27
  266. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/gitGraph-7Q5UKJZL.js +2 -2
  267. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/info-OMHHGYJF.js +2 -2
  268. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/packet-4T2RLAQJ.js +2 -2
  269. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/pie-ZZUOXDRM.js +2 -2
  270. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/radar-PYXPWWZC.js +2 -2
  271. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treeView-SZITEDCU.js +2 -2
  272. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treemap-W4RFUUIX.js +2 -2
  273. package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/wardley-RL74JXVD.js +2 -2
  274. package/dist/node_modules/@mermaid-js/parser/dist/mermaid-parser.core.js +52 -56
  275. package/dist/node_modules/@shikijs/core/dist/index.js +575 -577
  276. package/dist/node_modules/@shikijs/engine-oniguruma/dist/index.js +157 -159
  277. package/dist/node_modules/@shikijs/engine-oniguruma/dist/wasm-inlined.js +2 -4
  278. package/dist/node_modules/@shikijs/langs/dist/abap.js +2 -3
  279. package/dist/node_modules/@shikijs/langs/dist/actionscript-3.js +2 -3
  280. package/dist/node_modules/@shikijs/langs/dist/ada.js +2 -3
  281. package/dist/node_modules/@shikijs/langs/dist/angular-expression.js +2 -3
  282. package/dist/node_modules/@shikijs/langs/dist/angular-html.js +13 -15
  283. package/dist/node_modules/@shikijs/langs/dist/angular-inline-style.js +3 -5
  284. package/dist/node_modules/@shikijs/langs/dist/angular-inline-template.js +7 -9
  285. package/dist/node_modules/@shikijs/langs/dist/angular-let-declaration.js +3 -5
  286. package/dist/node_modules/@shikijs/langs/dist/angular-template-blocks.js +7 -9
  287. package/dist/node_modules/@shikijs/langs/dist/angular-template.js +3 -5
  288. package/dist/node_modules/@shikijs/langs/dist/angular-ts.js +15 -17
  289. package/dist/node_modules/@shikijs/langs/dist/apache.js +2 -3
  290. package/dist/node_modules/@shikijs/langs/dist/apex.js +2 -3
  291. package/dist/node_modules/@shikijs/langs/dist/apl.js +13 -15
  292. package/dist/node_modules/@shikijs/langs/dist/applescript.js +2 -3
  293. package/dist/node_modules/@shikijs/langs/dist/ara.js +2 -3
  294. package/dist/node_modules/@shikijs/langs/dist/asciidoc.js +2 -3
  295. package/dist/node_modules/@shikijs/langs/dist/asm.js +2 -3
  296. package/dist/node_modules/@shikijs/langs/dist/astro.js +15 -17
  297. package/dist/node_modules/@shikijs/langs/dist/awk.js +2 -3
  298. package/dist/node_modules/@shikijs/langs/dist/ballerina.js +2 -3
  299. package/dist/node_modules/@shikijs/langs/dist/bat.js +2 -3
  300. package/dist/node_modules/@shikijs/langs/dist/beancount.js +2 -3
  301. package/dist/node_modules/@shikijs/langs/dist/berry.js +2 -3
  302. package/dist/node_modules/@shikijs/langs/dist/bibtex.js +2 -3
  303. package/dist/node_modules/@shikijs/langs/dist/bicep.js +2 -3
  304. package/dist/node_modules/@shikijs/langs/dist/bird2.js +2 -3
  305. package/dist/node_modules/@shikijs/langs/dist/blade.js +17 -19
  306. package/dist/node_modules/@shikijs/langs/dist/bsl.js +3 -5
  307. package/dist/node_modules/@shikijs/langs/dist/c.js +2 -3
  308. package/dist/node_modules/@shikijs/langs/dist/c3.js +2 -3
  309. package/dist/node_modules/@shikijs/langs/dist/cadence.js +2 -3
  310. package/dist/node_modules/@shikijs/langs/dist/cairo.js +3 -5
  311. package/dist/node_modules/@shikijs/langs/dist/clarity.js +2 -3
  312. package/dist/node_modules/@shikijs/langs/dist/clojure.js +2 -3
  313. package/dist/node_modules/@shikijs/langs/dist/cmake.js +2 -3
  314. package/dist/node_modules/@shikijs/langs/dist/cobol.js +7 -9
  315. package/dist/node_modules/@shikijs/langs/dist/codeowners.js +2 -3
  316. package/dist/node_modules/@shikijs/langs/dist/codeql.js +2 -3
  317. package/dist/node_modules/@shikijs/langs/dist/coffee.js +3 -5
  318. package/dist/node_modules/@shikijs/langs/dist/common-lisp.js +2 -3
  319. package/dist/node_modules/@shikijs/langs/dist/coq.js +2 -3
  320. package/dist/node_modules/@shikijs/langs/dist/cpp-macro.js +9 -11
  321. package/dist/node_modules/@shikijs/langs/dist/cpp.js +11 -13
  322. package/dist/node_modules/@shikijs/langs/dist/crystal.js +15 -17
  323. package/dist/node_modules/@shikijs/langs/dist/csharp.js +2 -3
  324. package/dist/node_modules/@shikijs/langs/dist/css.js +2 -3
  325. package/dist/node_modules/@shikijs/langs/dist/csv.js +2 -3
  326. package/dist/node_modules/@shikijs/langs/dist/cue.js +2 -3
  327. package/dist/node_modules/@shikijs/langs/dist/cypher.js +2 -3
  328. package/dist/node_modules/@shikijs/langs/dist/d.js +2 -3
  329. package/dist/node_modules/@shikijs/langs/dist/dart.js +2 -3
  330. package/dist/node_modules/@shikijs/langs/dist/dax.js +2 -3
  331. package/dist/node_modules/@shikijs/langs/dist/desktop.js +2 -3
  332. package/dist/node_modules/@shikijs/langs/dist/diff.js +2 -3
  333. package/dist/node_modules/@shikijs/langs/dist/docker.js +2 -3
  334. package/dist/node_modules/@shikijs/langs/dist/dotenv.js +2 -3
  335. package/dist/node_modules/@shikijs/langs/dist/dream-maker.js +2 -3
  336. package/dist/node_modules/@shikijs/langs/dist/edge.js +9 -11
  337. package/dist/node_modules/@shikijs/langs/dist/elixir.js +3 -5
  338. package/dist/node_modules/@shikijs/langs/dist/elm.js +3 -5
  339. package/dist/node_modules/@shikijs/langs/dist/emacs-lisp.js +2 -3
  340. package/dist/node_modules/@shikijs/langs/dist/erb.js +7 -9
  341. package/dist/node_modules/@shikijs/langs/dist/erlang.js +3 -5
  342. package/dist/node_modules/@shikijs/langs/dist/es-tag-css.js +9 -11
  343. package/dist/node_modules/@shikijs/langs/dist/es-tag-glsl.js +9 -11
  344. package/dist/node_modules/@shikijs/langs/dist/es-tag-html.js +9 -11
  345. package/dist/node_modules/@shikijs/langs/dist/es-tag-sql.js +7 -9
  346. package/dist/node_modules/@shikijs/langs/dist/es-tag-xml.js +3 -5
  347. package/dist/node_modules/@shikijs/langs/dist/fennel.js +2 -3
  348. package/dist/node_modules/@shikijs/langs/dist/fish.js +2 -3
  349. package/dist/node_modules/@shikijs/langs/dist/fluent.js +2 -3
  350. package/dist/node_modules/@shikijs/langs/dist/fortran-fixed-form.js +3 -5
  351. package/dist/node_modules/@shikijs/langs/dist/fortran-free-form.js +2 -3
  352. package/dist/node_modules/@shikijs/langs/dist/fsharp.js +3 -5
  353. package/dist/node_modules/@shikijs/langs/dist/gdresource.js +7 -9
  354. package/dist/node_modules/@shikijs/langs/dist/gdscript.js +2 -3
  355. package/dist/node_modules/@shikijs/langs/dist/gdshader.js +2 -3
  356. package/dist/node_modules/@shikijs/langs/dist/genie.js +2 -3
  357. package/dist/node_modules/@shikijs/langs/dist/gherkin.js +2 -3
  358. package/dist/node_modules/@shikijs/langs/dist/git-commit.js +3 -5
  359. package/dist/node_modules/@shikijs/langs/dist/git-rebase.js +3 -5
  360. package/dist/node_modules/@shikijs/langs/dist/gleam.js +2 -3
  361. package/dist/node_modules/@shikijs/langs/dist/glimmer-js.js +11 -13
  362. package/dist/node_modules/@shikijs/langs/dist/glimmer-ts.js +11 -13
  363. package/dist/node_modules/@shikijs/langs/dist/glsl.js +3 -5
  364. package/dist/node_modules/@shikijs/langs/dist/gn.js +2 -3
  365. package/dist/node_modules/@shikijs/langs/dist/gnuplot.js +2 -3
  366. package/dist/node_modules/@shikijs/langs/dist/go.js +2 -3
  367. package/dist/node_modules/@shikijs/langs/dist/graphql.js +11 -13
  368. package/dist/node_modules/@shikijs/langs/dist/groovy.js +2 -3
  369. package/dist/node_modules/@shikijs/langs/dist/hack.js +7 -9
  370. package/dist/node_modules/@shikijs/langs/dist/haml.js +7 -9
  371. package/dist/node_modules/@shikijs/langs/dist/handlebars.js +11 -13
  372. package/dist/node_modules/@shikijs/langs/dist/haskell.js +2 -3
  373. package/dist/node_modules/@shikijs/langs/dist/haxe.js +2 -3
  374. package/dist/node_modules/@shikijs/langs/dist/hcl.js +2 -3
  375. package/dist/node_modules/@shikijs/langs/dist/hjson.js +2 -3
  376. package/dist/node_modules/@shikijs/langs/dist/hlsl.js +2 -3
  377. package/dist/node_modules/@shikijs/langs/dist/html-derivative.js +3 -5
  378. package/dist/node_modules/@shikijs/langs/dist/html.js +7 -9
  379. package/dist/node_modules/@shikijs/langs/dist/http.js +11 -13
  380. package/dist/node_modules/@shikijs/langs/dist/hurl.js +9 -11
  381. package/dist/node_modules/@shikijs/langs/dist/hxml.js +3 -5
  382. package/dist/node_modules/@shikijs/langs/dist/hy.js +2 -3
  383. package/dist/node_modules/@shikijs/langs/dist/imba.js +2 -3
  384. package/dist/node_modules/@shikijs/langs/dist/ini.js +2 -3
  385. package/dist/node_modules/@shikijs/langs/dist/java.js +2 -3
  386. package/dist/node_modules/@shikijs/langs/dist/javascript.js +2 -3
  387. package/dist/node_modules/@shikijs/langs/dist/jinja-html.js +3 -5
  388. package/dist/node_modules/@shikijs/langs/dist/jinja.js +3 -5
  389. package/dist/node_modules/@shikijs/langs/dist/jison.js +3 -5
  390. package/dist/node_modules/@shikijs/langs/dist/json.js +2 -3
  391. package/dist/node_modules/@shikijs/langs/dist/json5.js +2 -3
  392. package/dist/node_modules/@shikijs/langs/dist/jsonc.js +2 -3
  393. package/dist/node_modules/@shikijs/langs/dist/jsonl.js +2 -3
  394. package/dist/node_modules/@shikijs/langs/dist/jsonnet.js +2 -3
  395. package/dist/node_modules/@shikijs/langs/dist/jssm.js +2 -3
  396. package/dist/node_modules/@shikijs/langs/dist/jsx.js +2 -3
  397. package/dist/node_modules/@shikijs/langs/dist/julia.js +13 -15
  398. package/dist/node_modules/@shikijs/langs/dist/just.js +15 -17
  399. package/dist/node_modules/@shikijs/langs/dist/kdl.js +2 -3
  400. package/dist/node_modules/@shikijs/langs/dist/kotlin.js +2 -3
  401. package/dist/node_modules/@shikijs/langs/dist/kusto.js +2 -3
  402. package/dist/node_modules/@shikijs/langs/dist/latex.js +3 -5
  403. package/dist/node_modules/@shikijs/langs/dist/lean.js +2 -3
  404. package/dist/node_modules/@shikijs/langs/dist/less.js +2 -3
  405. package/dist/node_modules/@shikijs/langs/dist/liquid.js +11 -13
  406. package/dist/node_modules/@shikijs/langs/dist/llvm.js +2 -3
  407. package/dist/node_modules/@shikijs/langs/dist/log.js +2 -3
  408. package/dist/node_modules/@shikijs/langs/dist/logo.js +2 -3
  409. package/dist/node_modules/@shikijs/langs/dist/lua.js +3 -5
  410. package/dist/node_modules/@shikijs/langs/dist/luau.js +2 -3
  411. package/dist/node_modules/@shikijs/langs/dist/make.js +2 -3
  412. package/dist/node_modules/@shikijs/langs/dist/markdown-nix.js +2 -3
  413. package/dist/node_modules/@shikijs/langs/dist/markdown-vue.js +2 -3
  414. package/dist/node_modules/@shikijs/langs/dist/markdown.js +2 -3
  415. package/dist/node_modules/@shikijs/langs/dist/marko.js +11 -13
  416. package/dist/node_modules/@shikijs/langs/dist/matlab.js +2 -3
  417. package/dist/node_modules/@shikijs/langs/dist/mdc.js +9 -11
  418. package/dist/node_modules/@shikijs/langs/dist/mdx.js +2 -3
  419. package/dist/node_modules/@shikijs/langs/dist/mermaid.js +2 -3
  420. package/dist/node_modules/@shikijs/langs/dist/mipsasm.js +2 -3
  421. package/dist/node_modules/@shikijs/langs/dist/mojo.js +2 -3
  422. package/dist/node_modules/@shikijs/langs/dist/moonbit.js +2 -3
  423. package/dist/node_modules/@shikijs/langs/dist/move.js +2 -3
  424. package/dist/node_modules/@shikijs/langs/dist/narrat.js +2 -3
  425. package/dist/node_modules/@shikijs/langs/dist/nextflow-groovy.js +2 -3
  426. package/dist/node_modules/@shikijs/langs/dist/nextflow.js +3 -5
  427. package/dist/node_modules/@shikijs/langs/dist/nginx.js +3 -5
  428. package/dist/node_modules/@shikijs/langs/dist/nim.js +17 -19
  429. package/dist/node_modules/@shikijs/langs/dist/nix.js +3 -5
  430. package/dist/node_modules/@shikijs/langs/dist/nushell.js +2 -3
  431. package/dist/node_modules/@shikijs/langs/dist/objective-c.js +2 -3
  432. package/dist/node_modules/@shikijs/langs/dist/objective-cpp.js +2 -3
  433. package/dist/node_modules/@shikijs/langs/dist/ocaml.js +2 -3
  434. package/dist/node_modules/@shikijs/langs/dist/odin.js +2 -3
  435. package/dist/node_modules/@shikijs/langs/dist/openscad.js +2 -3
  436. package/dist/node_modules/@shikijs/langs/dist/pascal.js +2 -3
  437. package/dist/node_modules/@shikijs/langs/dist/perl.js +13 -15
  438. package/dist/node_modules/@shikijs/langs/dist/php.js +15 -17
  439. package/dist/node_modules/@shikijs/langs/dist/pkl.js +2 -3
  440. package/dist/node_modules/@shikijs/langs/dist/plsql.js +2 -3
  441. package/dist/node_modules/@shikijs/langs/dist/po.js +2 -3
  442. package/dist/node_modules/@shikijs/langs/dist/polar.js +2 -3
  443. package/dist/node_modules/@shikijs/langs/dist/postcss.js +2 -3
  444. package/dist/node_modules/@shikijs/langs/dist/powerquery.js +2 -3
  445. package/dist/node_modules/@shikijs/langs/dist/powershell.js +2 -3
  446. package/dist/node_modules/@shikijs/langs/dist/prisma.js +2 -3
  447. package/dist/node_modules/@shikijs/langs/dist/prolog.js +2 -3
  448. package/dist/node_modules/@shikijs/langs/dist/proto.js +2 -3
  449. package/dist/node_modules/@shikijs/langs/dist/pug.js +9 -11
  450. package/dist/node_modules/@shikijs/langs/dist/puppet.js +2 -3
  451. package/dist/node_modules/@shikijs/langs/dist/purescript.js +2 -3
  452. package/dist/node_modules/@shikijs/langs/dist/python.js +2 -3
  453. package/dist/node_modules/@shikijs/langs/dist/qml.js +3 -5
  454. package/dist/node_modules/@shikijs/langs/dist/qmldir.js +2 -3
  455. package/dist/node_modules/@shikijs/langs/dist/qss.js +2 -3
  456. package/dist/node_modules/@shikijs/langs/dist/r.js +2 -3
  457. package/dist/node_modules/@shikijs/langs/dist/racket.js +2 -3
  458. package/dist/node_modules/@shikijs/langs/dist/raku.js +2 -3
  459. package/dist/node_modules/@shikijs/langs/dist/razor.js +7 -9
  460. package/dist/node_modules/@shikijs/langs/dist/reg.js +2 -3
  461. package/dist/node_modules/@shikijs/langs/dist/regexp.js +2 -3
  462. package/dist/node_modules/@shikijs/langs/dist/rel.js +2 -3
  463. package/dist/node_modules/@shikijs/langs/dist/riscv.js +2 -3
  464. package/dist/node_modules/@shikijs/langs/dist/ron.js +2 -3
  465. package/dist/node_modules/@shikijs/langs/dist/rosmsg.js +2 -3
  466. package/dist/node_modules/@shikijs/langs/dist/rst.js +19 -21
  467. package/dist/node_modules/@shikijs/langs/dist/ruby.js +27 -29
  468. package/dist/node_modules/@shikijs/langs/dist/rust.js +2 -3
  469. package/dist/node_modules/@shikijs/langs/dist/sas.js +3 -5
  470. package/dist/node_modules/@shikijs/langs/dist/sass.js +2 -3
  471. package/dist/node_modules/@shikijs/langs/dist/scala.js +2 -3
  472. package/dist/node_modules/@shikijs/langs/dist/scheme.js +2 -3
  473. package/dist/node_modules/@shikijs/langs/dist/scss.js +3 -5
  474. package/dist/node_modules/@shikijs/langs/dist/sdbl.js +2 -3
  475. package/dist/node_modules/@shikijs/langs/dist/shaderlab.js +3 -5
  476. package/dist/node_modules/@shikijs/langs/dist/shellscript.js +2 -3
  477. package/dist/node_modules/@shikijs/langs/dist/shellsession.js +3 -5
  478. package/dist/node_modules/@shikijs/langs/dist/smalltalk.js +2 -3
  479. package/dist/node_modules/@shikijs/langs/dist/solidity.js +2 -3
  480. package/dist/node_modules/@shikijs/langs/dist/soy.js +3 -5
  481. package/dist/node_modules/@shikijs/langs/dist/sparql.js +3 -5
  482. package/dist/node_modules/@shikijs/langs/dist/splunk.js +2 -3
  483. package/dist/node_modules/@shikijs/langs/dist/sql.js +2 -3
  484. package/dist/node_modules/@shikijs/langs/dist/ssh-config.js +2 -3
  485. package/dist/node_modules/@shikijs/langs/dist/stata.js +3 -5
  486. package/dist/node_modules/@shikijs/langs/dist/stylus.js +2 -3
  487. package/dist/node_modules/@shikijs/langs/dist/surrealql.js +3 -5
  488. package/dist/node_modules/@shikijs/langs/dist/svelte.js +11 -13
  489. package/dist/node_modules/@shikijs/langs/dist/swift.js +2 -3
  490. package/dist/node_modules/@shikijs/langs/dist/system-verilog.js +2 -3
  491. package/dist/node_modules/@shikijs/langs/dist/systemd.js +2 -3
  492. package/dist/node_modules/@shikijs/langs/dist/talonscript.js +2 -3
  493. package/dist/node_modules/@shikijs/langs/dist/tasl.js +2 -3
  494. package/dist/node_modules/@shikijs/langs/dist/tcl.js +2 -3
  495. package/dist/node_modules/@shikijs/langs/dist/templ.js +9 -11
  496. package/dist/node_modules/@shikijs/langs/dist/terraform.js +2 -3
  497. package/dist/node_modules/@shikijs/langs/dist/tex.js +3 -5
  498. package/dist/node_modules/@shikijs/langs/dist/toml.js +2 -3
  499. package/dist/node_modules/@shikijs/langs/dist/ts-tags.js +15 -17
  500. package/dist/node_modules/@shikijs/langs/dist/tsv.js +2 -3
  501. package/dist/node_modules/@shikijs/langs/dist/tsx.js +2 -3
  502. package/dist/node_modules/@shikijs/langs/dist/turtle.js +2 -3
  503. package/dist/node_modules/@shikijs/langs/dist/twig.js +15 -17
  504. package/dist/node_modules/@shikijs/langs/dist/typescript.js +2 -3
  505. package/dist/node_modules/@shikijs/langs/dist/typespec.js +2 -3
  506. package/dist/node_modules/@shikijs/langs/dist/typst.js +2 -3
  507. package/dist/node_modules/@shikijs/langs/dist/v.js +2 -3
  508. package/dist/node_modules/@shikijs/langs/dist/vala.js +2 -3
  509. package/dist/node_modules/@shikijs/langs/dist/vb.js +2 -3
  510. package/dist/node_modules/@shikijs/langs/dist/verilog.js +2 -3
  511. package/dist/node_modules/@shikijs/langs/dist/vhdl.js +2 -3
  512. package/dist/node_modules/@shikijs/langs/dist/viml.js +2 -3
  513. package/dist/node_modules/@shikijs/langs/dist/vue-directives.js +2 -3
  514. package/dist/node_modules/@shikijs/langs/dist/vue-html.js +3 -5
  515. package/dist/node_modules/@shikijs/langs/dist/vue-interpolations.js +2 -3
  516. package/dist/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.js +3 -5
  517. package/dist/node_modules/@shikijs/langs/dist/vue-vine.js +15 -17
  518. package/dist/node_modules/@shikijs/langs/dist/vue.js +23 -25
  519. package/dist/node_modules/@shikijs/langs/dist/vyper.js +2 -3
  520. package/dist/node_modules/@shikijs/langs/dist/wasm.js +2 -3
  521. package/dist/node_modules/@shikijs/langs/dist/wenyan.js +2 -3
  522. package/dist/node_modules/@shikijs/langs/dist/wgsl.js +2 -3
  523. package/dist/node_modules/@shikijs/langs/dist/wikitext.js +2 -3
  524. package/dist/node_modules/@shikijs/langs/dist/wit.js +2 -3
  525. package/dist/node_modules/@shikijs/langs/dist/wolfram.js +2 -3
  526. package/dist/node_modules/@shikijs/langs/dist/xml.js +3 -5
  527. package/dist/node_modules/@shikijs/langs/dist/xsl.js +3 -5
  528. package/dist/node_modules/@shikijs/langs/dist/yaml.js +2 -3
  529. package/dist/node_modules/@shikijs/langs/dist/zenscript.js +2 -3
  530. package/dist/node_modules/@shikijs/langs/dist/zig.js +2 -3
  531. package/dist/node_modules/@shikijs/primitive/dist/index.js +319 -321
  532. package/dist/node_modules/@shikijs/themes/dist/andromeeda.js +2 -4
  533. package/dist/node_modules/@shikijs/themes/dist/aurora-x.js +2 -4
  534. package/dist/node_modules/@shikijs/themes/dist/ayu-dark.js +2 -4
  535. package/dist/node_modules/@shikijs/themes/dist/ayu-light.js +2 -4
  536. package/dist/node_modules/@shikijs/themes/dist/ayu-mirage.js +2 -4
  537. package/dist/node_modules/@shikijs/themes/dist/catppuccin-frappe.js +2 -4
  538. package/dist/node_modules/@shikijs/themes/dist/catppuccin-latte.js +2 -4
  539. package/dist/node_modules/@shikijs/themes/dist/catppuccin-macchiato.js +2 -4
  540. package/dist/node_modules/@shikijs/themes/dist/catppuccin-mocha.js +2 -4
  541. package/dist/node_modules/@shikijs/themes/dist/dark-plus.js +2 -4
  542. package/dist/node_modules/@shikijs/themes/dist/dracula-soft.js +2 -4
  543. package/dist/node_modules/@shikijs/themes/dist/dracula.js +2 -4
  544. package/dist/node_modules/@shikijs/themes/dist/everforest-dark.js +2 -4
  545. package/dist/node_modules/@shikijs/themes/dist/everforest-light.js +2 -4
  546. package/dist/node_modules/@shikijs/themes/dist/github-dark-default.js +2 -4
  547. package/dist/node_modules/@shikijs/themes/dist/github-dark-dimmed.js +2 -4
  548. package/dist/node_modules/@shikijs/themes/dist/github-dark-high-contrast.js +2 -4
  549. package/dist/node_modules/@shikijs/themes/dist/github-dark.js +2 -4
  550. package/dist/node_modules/@shikijs/themes/dist/github-light-default.js +2 -4
  551. package/dist/node_modules/@shikijs/themes/dist/github-light-high-contrast.js +2 -4
  552. package/dist/node_modules/@shikijs/themes/dist/github-light.js +2 -4
  553. package/dist/node_modules/@shikijs/themes/dist/gruvbox-dark-hard.js +2 -4
  554. package/dist/node_modules/@shikijs/themes/dist/gruvbox-dark-medium.js +2 -4
  555. package/dist/node_modules/@shikijs/themes/dist/gruvbox-dark-soft.js +2 -4
  556. package/dist/node_modules/@shikijs/themes/dist/gruvbox-light-hard.js +2 -4
  557. package/dist/node_modules/@shikijs/themes/dist/gruvbox-light-medium.js +2 -4
  558. package/dist/node_modules/@shikijs/themes/dist/gruvbox-light-soft.js +2 -4
  559. package/dist/node_modules/@shikijs/themes/dist/horizon-bright.js +2 -4
  560. package/dist/node_modules/@shikijs/themes/dist/horizon.js +2 -4
  561. package/dist/node_modules/@shikijs/themes/dist/houston.js +2 -4
  562. package/dist/node_modules/@shikijs/themes/dist/kanagawa-dragon.js +2 -4
  563. package/dist/node_modules/@shikijs/themes/dist/kanagawa-lotus.js +2 -4
  564. package/dist/node_modules/@shikijs/themes/dist/kanagawa-wave.js +2 -4
  565. package/dist/node_modules/@shikijs/themes/dist/laserwave.js +2 -4
  566. package/dist/node_modules/@shikijs/themes/dist/light-plus.js +2 -4
  567. package/dist/node_modules/@shikijs/themes/dist/material-theme-darker.js +2 -4
  568. package/dist/node_modules/@shikijs/themes/dist/material-theme-lighter.js +2 -4
  569. package/dist/node_modules/@shikijs/themes/dist/material-theme-ocean.js +2 -4
  570. package/dist/node_modules/@shikijs/themes/dist/material-theme-palenight.js +2 -4
  571. package/dist/node_modules/@shikijs/themes/dist/material-theme.js +2 -4
  572. package/dist/node_modules/@shikijs/themes/dist/min-dark.js +2 -4
  573. package/dist/node_modules/@shikijs/themes/dist/min-light.js +2 -4
  574. package/dist/node_modules/@shikijs/themes/dist/monokai.js +2 -4
  575. package/dist/node_modules/@shikijs/themes/dist/night-owl-light.js +2 -4
  576. package/dist/node_modules/@shikijs/themes/dist/night-owl.js +2 -4
  577. package/dist/node_modules/@shikijs/themes/dist/nord.js +2 -4
  578. package/dist/node_modules/@shikijs/themes/dist/one-dark-pro.js +2 -4
  579. package/dist/node_modules/@shikijs/themes/dist/one-light.js +2 -4
  580. package/dist/node_modules/@shikijs/themes/dist/plastic.js +2 -4
  581. package/dist/node_modules/@shikijs/themes/dist/poimandres.js +2 -4
  582. package/dist/node_modules/@shikijs/themes/dist/red.js +2 -4
  583. package/dist/node_modules/@shikijs/themes/dist/rose-pine-dawn.js +2 -4
  584. package/dist/node_modules/@shikijs/themes/dist/rose-pine-moon.js +2 -4
  585. package/dist/node_modules/@shikijs/themes/dist/rose-pine.js +2 -4
  586. package/dist/node_modules/@shikijs/themes/dist/slack-dark.js +2 -4
  587. package/dist/node_modules/@shikijs/themes/dist/slack-ochin.js +2 -4
  588. package/dist/node_modules/@shikijs/themes/dist/snazzy-light.js +2 -4
  589. package/dist/node_modules/@shikijs/themes/dist/solarized-dark.js +2 -4
  590. package/dist/node_modules/@shikijs/themes/dist/solarized-light.js +2 -4
  591. package/dist/node_modules/@shikijs/themes/dist/synthwave-84.js +2 -4
  592. package/dist/node_modules/@shikijs/themes/dist/tokyo-night.js +2 -4
  593. package/dist/node_modules/@shikijs/themes/dist/vesper.js +2 -4
  594. package/dist/node_modules/@shikijs/themes/dist/vitesse-black.js +2 -4
  595. package/dist/node_modules/@shikijs/themes/dist/vitesse-dark.js +2 -4
  596. package/dist/node_modules/@shikijs/themes/dist/vitesse-light.js +2 -4
  597. package/dist/node_modules/@shikijs/types/dist/index.js +2 -4
  598. package/dist/node_modules/@shikijs/vscode-textmate/dist/index.js +947 -949
  599. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.js +30 -30
  600. package/dist/node_modules/@ungap/structured-clone/esm/index.js +4 -6
  601. package/dist/node_modules/@ungap/structured-clone/esm/serialize.js +64 -64
  602. package/dist/node_modules/@ungap/structured-clone/esm/types.js +2 -0
  603. package/dist/node_modules/@upsetjs/venn.js/build/venn.esm.js +693 -695
  604. package/dist/node_modules/@xyflow/react/dist/esm/index.js +881 -883
  605. package/dist/node_modules/@xyflow/system/dist/esm/index.js +1221 -1223
  606. package/dist/node_modules/bail/index.js +2 -4
  607. package/dist/node_modules/ccount/index.js +2 -4
  608. package/dist/node_modules/character-entities-html4/index.js +2 -4
  609. package/dist/node_modules/character-entities-legacy/index.js +2 -4
  610. package/dist/node_modules/chevrotain/lib/src/api.js +10 -10
  611. package/dist/node_modules/chevrotain/lib/src/lang/lang_extensions.js +4 -6
  612. package/dist/node_modules/chevrotain/lib/src/parse/constants.js +2 -4
  613. package/dist/node_modules/chevrotain/lib/src/parse/cst/cst.js +9 -11
  614. package/dist/node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js +15 -17
  615. package/dist/node_modules/chevrotain/lib/src/parse/errors_public.js +17 -19
  616. package/dist/node_modules/chevrotain/lib/src/parse/exceptions_public.js +24 -26
  617. package/dist/node_modules/chevrotain/lib/src/parse/grammar/checks.js +201 -203
  618. package/dist/node_modules/chevrotain/lib/src/parse/grammar/first.js +16 -18
  619. package/dist/node_modules/chevrotain/lib/src/parse/grammar/follow.js +17 -19
  620. package/dist/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js +12 -14
  621. package/dist/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js +140 -142
  622. package/dist/node_modules/chevrotain/lib/src/parse/grammar/keys.js +4 -5
  623. package/dist/node_modules/chevrotain/lib/src/parse/grammar/llk_lookahead.js +25 -27
  624. package/dist/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js +149 -151
  625. package/dist/node_modules/chevrotain/lib/src/parse/grammar/resolver.js +14 -16
  626. package/dist/node_modules/chevrotain/lib/src/parse/grammar/rest.js +38 -40
  627. package/dist/node_modules/chevrotain/lib/src/parse/parser/parser.js +64 -65
  628. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js +11 -13
  629. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js +101 -103
  630. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js +5 -7
  631. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js +45 -47
  632. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js +6 -8
  633. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js +73 -75
  634. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js +180 -182
  635. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js +23 -24
  636. package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js +26 -28
  637. package/dist/node_modules/chevrotain/lib/src/parse/parser/utils/apply_mixins.js +2 -4
  638. package/dist/node_modules/chevrotain/lib/src/scan/lexer.js +246 -246
  639. package/dist/node_modules/chevrotain/lib/src/scan/lexer_errors_public.js +2 -4
  640. package/dist/node_modules/chevrotain/lib/src/scan/lexer_public.js +31 -33
  641. package/dist/node_modules/chevrotain/lib/src/scan/reg_exp.js +64 -67
  642. package/dist/node_modules/chevrotain/lib/src/scan/reg_exp_parser.js +10 -12
  643. package/dist/node_modules/chevrotain/lib/src/scan/tokens.js +35 -36
  644. package/dist/node_modules/chevrotain/lib/src/scan/tokens_public.js +26 -28
  645. package/dist/node_modules/chevrotain-allstar/lib/all-star-lookahead.js +240 -242
  646. package/dist/node_modules/chevrotain-allstar/lib/atn.js +133 -134
  647. package/dist/node_modules/chevrotain-allstar/lib/dfa.js +10 -11
  648. package/dist/node_modules/chevrotain-allstar/lib/index.js +1 -1
  649. package/dist/node_modules/classcat/index.js +3 -5
  650. package/dist/node_modules/comma-separated-tokens/index.js +3 -5
  651. package/dist/node_modules/cose-base/cose-base.js +21 -21
  652. package/dist/node_modules/cytoscape/dist/cytoscape.esm.js +7940 -7937
  653. package/dist/node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js +6 -8
  654. package/dist/node_modules/cytoscape-fcose/cytoscape-fcose.js +6 -8
  655. package/dist/node_modules/cytoscape-fcose/node_modules/cose-base/cose-base.js +20 -20
  656. package/dist/node_modules/cytoscape-fcose/node_modules/layout-base/layout-base.js +4 -6
  657. package/dist/node_modules/d3/src/index.js +95 -95
  658. package/dist/node_modules/d3-array/src/ascending.js +2 -4
  659. package/dist/node_modules/d3-array/src/bisect.js +8 -8
  660. package/dist/node_modules/d3-array/src/bisector.js +6 -8
  661. package/dist/node_modules/d3-array/src/descending.js +2 -4
  662. package/dist/node_modules/d3-array/src/max.js +2 -4
  663. package/dist/node_modules/d3-array/src/min.js +2 -4
  664. package/dist/node_modules/d3-array/src/number.js +2 -4
  665. package/dist/node_modules/d3-array/src/range.js +2 -4
  666. package/dist/node_modules/d3-array/src/ticks.js +11 -13
  667. package/dist/node_modules/d3-axis/src/axis.js +46 -48
  668. package/dist/node_modules/d3-axis/src/identity.js +2 -4
  669. package/dist/node_modules/d3-brush/src/brush.js +4 -6
  670. package/dist/node_modules/d3-color/src/color.js +84 -86
  671. package/dist/node_modules/d3-color/src/define.js +3 -5
  672. package/dist/node_modules/d3-color/src/lab.js +43 -45
  673. package/dist/node_modules/d3-color/src/math.js +2 -4
  674. package/dist/node_modules/d3-dispatch/src/dispatch.js +17 -18
  675. package/dist/node_modules/d3-drag/src/constant.js +2 -4
  676. package/dist/node_modules/d3-drag/src/drag.js +75 -77
  677. package/dist/node_modules/d3-drag/src/event.js +3 -5
  678. package/dist/node_modules/d3-drag/src/nodrag.js +9 -11
  679. package/dist/node_modules/d3-drag/src/noevent.js +4 -6
  680. package/dist/node_modules/d3-ease/src/cubic.js +2 -4
  681. package/dist/node_modules/d3-format/src/defaultLocale.js +6 -8
  682. package/dist/node_modules/d3-format/src/exponent.js +4 -6
  683. package/dist/node_modules/d3-format/src/formatDecimal.js +3 -5
  684. package/dist/node_modules/d3-format/src/formatGroup.js +2 -4
  685. package/dist/node_modules/d3-format/src/formatNumerals.js +2 -4
  686. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +8 -10
  687. package/dist/node_modules/d3-format/src/formatRounded.js +4 -6
  688. package/dist/node_modules/d3-format/src/formatSpecifier.js +8 -10
  689. package/dist/node_modules/d3-format/src/formatTrim.js +2 -4
  690. package/dist/node_modules/d3-format/src/formatTypes.js +13 -15
  691. package/dist/node_modules/d3-format/src/identity.js +2 -4
  692. package/dist/node_modules/d3-format/src/locale.js +31 -33
  693. package/dist/node_modules/d3-format/src/precisionFixed.js +4 -6
  694. package/dist/node_modules/d3-format/src/precisionPrefix.js +4 -6
  695. package/dist/node_modules/d3-format/src/precisionRound.js +4 -6
  696. package/dist/node_modules/d3-hierarchy/src/accessors.js +2 -4
  697. package/dist/node_modules/d3-hierarchy/src/constant.js +3 -5
  698. package/dist/node_modules/d3-hierarchy/src/hierarchy/ancestors.js +2 -4
  699. package/dist/node_modules/d3-hierarchy/src/hierarchy/count.js +4 -6
  700. package/dist/node_modules/d3-hierarchy/src/hierarchy/descendants.js +2 -4
  701. package/dist/node_modules/d3-hierarchy/src/hierarchy/each.js +2 -4
  702. package/dist/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js +2 -4
  703. package/dist/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js +2 -4
  704. package/dist/node_modules/d3-hierarchy/src/hierarchy/find.js +2 -4
  705. package/dist/node_modules/d3-hierarchy/src/hierarchy/index.js +44 -46
  706. package/dist/node_modules/d3-hierarchy/src/hierarchy/iterator.js +2 -4
  707. package/dist/node_modules/d3-hierarchy/src/hierarchy/leaves.js +2 -4
  708. package/dist/node_modules/d3-hierarchy/src/hierarchy/links.js +2 -4
  709. package/dist/node_modules/d3-hierarchy/src/hierarchy/path.js +4 -6
  710. package/dist/node_modules/d3-hierarchy/src/hierarchy/sort.js +2 -4
  711. package/dist/node_modules/d3-hierarchy/src/hierarchy/sum.js +2 -4
  712. package/dist/node_modules/d3-hierarchy/src/treemap/dice.js +2 -4
  713. package/dist/node_modules/d3-hierarchy/src/treemap/index.js +14 -16
  714. package/dist/node_modules/d3-hierarchy/src/treemap/round.js +2 -4
  715. package/dist/node_modules/d3-hierarchy/src/treemap/slice.js +2 -4
  716. package/dist/node_modules/d3-hierarchy/src/treemap/squarify.js +9 -11
  717. package/dist/node_modules/d3-interpolate/src/array.js +4 -6
  718. package/dist/node_modules/d3-interpolate/src/basis.js +4 -6
  719. package/dist/node_modules/d3-interpolate/src/basisClosed.js +4 -6
  720. package/dist/node_modules/d3-interpolate/src/color.js +17 -19
  721. package/dist/node_modules/d3-interpolate/src/constant.js +2 -4
  722. package/dist/node_modules/d3-interpolate/src/date.js +2 -4
  723. package/dist/node_modules/d3-interpolate/src/hcl.js +6 -8
  724. package/dist/node_modules/d3-interpolate/src/number.js +2 -4
  725. package/dist/node_modules/d3-interpolate/src/numberArray.js +3 -5
  726. package/dist/node_modules/d3-interpolate/src/object.js +4 -6
  727. package/dist/node_modules/d3-interpolate/src/rgb.js +9 -11
  728. package/dist/node_modules/d3-interpolate/src/round.js +2 -4
  729. package/dist/node_modules/d3-interpolate/src/string.js +14 -16
  730. package/dist/node_modules/d3-interpolate/src/transform/decompose.js +5 -7
  731. package/dist/node_modules/d3-interpolate/src/transform/index.js +11 -13
  732. package/dist/node_modules/d3-interpolate/src/transform/parse.js +8 -10
  733. package/dist/node_modules/d3-interpolate/src/value.js +12 -14
  734. package/dist/node_modules/d3-interpolate/src/zoom.js +11 -13
  735. package/dist/node_modules/d3-path/src/path.js +14 -16
  736. package/dist/node_modules/d3-sankey/node_modules/d3-array/src/max.js +2 -4
  737. package/dist/node_modules/d3-sankey/node_modules/d3-array/src/min.js +2 -4
  738. package/dist/node_modules/d3-sankey/node_modules/d3-array/src/sum.js +2 -4
  739. package/dist/node_modules/d3-sankey/node_modules/d3-path/src/path.js +12 -13
  740. package/dist/node_modules/d3-sankey/node_modules/d3-shape/src/array.js +2 -4
  741. package/dist/node_modules/d3-sankey/node_modules/d3-shape/src/constant.js +2 -4
  742. package/dist/node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js +17 -19
  743. package/dist/node_modules/d3-sankey/node_modules/d3-shape/src/point.js +3 -5
  744. package/dist/node_modules/d3-sankey/src/align.js +10 -12
  745. package/dist/node_modules/d3-sankey/src/constant.js +2 -4
  746. package/dist/node_modules/d3-sankey/src/sankey.js +168 -170
  747. package/dist/node_modules/d3-sankey/src/sankeyLinkHorizontal.js +6 -8
  748. package/dist/node_modules/d3-scale/src/band.js +9 -11
  749. package/dist/node_modules/d3-scale/src/constant.js +2 -4
  750. package/dist/node_modules/d3-scale/src/continuous.js +47 -49
  751. package/dist/node_modules/d3-scale/src/init.js +2 -4
  752. package/dist/node_modules/d3-scale/src/linear.js +13 -15
  753. package/dist/node_modules/d3-scale/src/nice.js +2 -4
  754. package/dist/node_modules/d3-scale/src/number.js +2 -4
  755. package/dist/node_modules/d3-scale/src/ordinal.js +16 -18
  756. package/dist/node_modules/d3-scale/src/tickFormat.js +14 -16
  757. package/dist/node_modules/d3-scale/src/time.js +34 -36
  758. package/dist/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js +3 -5
  759. package/dist/node_modules/d3-scale-chromatic/src/colors.js +2 -4
  760. package/dist/node_modules/d3-selection/src/array.js +2 -4
  761. package/dist/node_modules/d3-selection/src/constant.js +2 -4
  762. package/dist/node_modules/d3-selection/src/creator.js +10 -12
  763. package/dist/node_modules/d3-selection/src/matcher.js +3 -5
  764. package/dist/node_modules/d3-selection/src/namespace.js +5 -7
  765. package/dist/node_modules/d3-selection/src/namespaces.js +3 -5
  766. package/dist/node_modules/d3-selection/src/pointer.js +4 -6
  767. package/dist/node_modules/d3-selection/src/select.js +4 -6
  768. package/dist/node_modules/d3-selection/src/selection/append.js +4 -6
  769. package/dist/node_modules/d3-selection/src/selection/attr.js +17 -19
  770. package/dist/node_modules/d3-selection/src/selection/call.js +2 -4
  771. package/dist/node_modules/d3-selection/src/selection/classed.js +23 -25
  772. package/dist/node_modules/d3-selection/src/selection/clone.js +5 -7
  773. package/dist/node_modules/d3-selection/src/selection/data.js +16 -18
  774. package/dist/node_modules/d3-selection/src/selection/datum.js +2 -4
  775. package/dist/node_modules/d3-selection/src/selection/dispatch.js +10 -12
  776. package/dist/node_modules/d3-selection/src/selection/each.js +2 -4
  777. package/dist/node_modules/d3-selection/src/selection/empty.js +2 -4
  778. package/dist/node_modules/d3-selection/src/selection/enter.js +11 -13
  779. package/dist/node_modules/d3-selection/src/selection/exit.js +5 -7
  780. package/dist/node_modules/d3-selection/src/selection/filter.js +6 -8
  781. package/dist/node_modules/d3-selection/src/selection/html.js +6 -8
  782. package/dist/node_modules/d3-selection/src/selection/index.js +79 -80
  783. package/dist/node_modules/d3-selection/src/selection/insert.js +6 -8
  784. package/dist/node_modules/d3-selection/src/selection/iterator.js +2 -4
  785. package/dist/node_modules/d3-selection/src/selection/join.js +2 -4
  786. package/dist/node_modules/d3-selection/src/selection/lower.js +4 -6
  787. package/dist/node_modules/d3-selection/src/selection/merge.js +4 -6
  788. package/dist/node_modules/d3-selection/src/selection/node.js +2 -4
  789. package/dist/node_modules/d3-selection/src/selection/nodes.js +2 -4
  790. package/dist/node_modules/d3-selection/src/selection/on.js +9 -11
  791. package/dist/node_modules/d3-selection/src/selection/order.js +2 -4
  792. package/dist/node_modules/d3-selection/src/selection/property.js +6 -8
  793. package/dist/node_modules/d3-selection/src/selection/raise.js +4 -6
  794. package/dist/node_modules/d3-selection/src/selection/remove.js +4 -6
  795. package/dist/node_modules/d3-selection/src/selection/select.js +6 -8
  796. package/dist/node_modules/d3-selection/src/selection/selectAll.js +9 -11
  797. package/dist/node_modules/d3-selection/src/selection/selectChild.js +8 -10
  798. package/dist/node_modules/d3-selection/src/selection/selectChildren.js +8 -10
  799. package/dist/node_modules/d3-selection/src/selection/size.js +2 -4
  800. package/dist/node_modules/d3-selection/src/selection/sort.js +6 -8
  801. package/dist/node_modules/d3-selection/src/selection/sparse.js +2 -4
  802. package/dist/node_modules/d3-selection/src/selection/style.js +12 -14
  803. package/dist/node_modules/d3-selection/src/selection/text.js +6 -8
  804. package/dist/node_modules/d3-selection/src/selector.js +4 -6
  805. package/dist/node_modules/d3-selection/src/selectorAll.js +4 -6
  806. package/dist/node_modules/d3-selection/src/sourceEvent.js +2 -4
  807. package/dist/node_modules/d3-selection/src/window.js +2 -4
  808. package/dist/node_modules/d3-shape/src/arc.js +36 -38
  809. package/dist/node_modules/d3-shape/src/array.js +2 -3
  810. package/dist/node_modules/d3-shape/src/constant.js +2 -4
  811. package/dist/node_modules/d3-shape/src/curve/basis.js +8 -10
  812. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +16 -18
  813. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +7 -9
  814. package/dist/node_modules/d3-shape/src/curve/bump.js +13 -15
  815. package/dist/node_modules/d3-shape/src/curve/bundle.js +7 -9
  816. package/dist/node_modules/d3-shape/src/curve/cardinal.js +8 -10
  817. package/dist/node_modules/d3-shape/src/curve/cardinalClosed.js +10 -12
  818. package/dist/node_modules/d3-shape/src/curve/cardinalOpen.js +7 -9
  819. package/dist/node_modules/d3-shape/src/curve/catmullRom.js +17 -19
  820. package/dist/node_modules/d3-shape/src/curve/catmullRomClosed.js +11 -13
  821. package/dist/node_modules/d3-shape/src/curve/catmullRomOpen.js +8 -10
  822. package/dist/node_modules/d3-shape/src/curve/linear.js +5 -7
  823. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +10 -12
  824. package/dist/node_modules/d3-shape/src/curve/monotone.js +21 -23
  825. package/dist/node_modules/d3-shape/src/curve/natural.js +7 -9
  826. package/dist/node_modules/d3-shape/src/curve/step.js +17 -19
  827. package/dist/node_modules/d3-shape/src/descending.js +2 -4
  828. package/dist/node_modules/d3-shape/src/identity.js +2 -4
  829. package/dist/node_modules/d3-shape/src/line.js +17 -19
  830. package/dist/node_modules/d3-shape/src/math.js +6 -8
  831. package/dist/node_modules/d3-shape/src/noop.js +2 -4
  832. package/dist/node_modules/d3-shape/src/path.js +4 -6
  833. package/dist/node_modules/d3-shape/src/pie.js +13 -15
  834. package/dist/node_modules/d3-shape/src/point.js +3 -5
  835. package/dist/node_modules/d3-time/src/day.js +15 -17
  836. package/dist/node_modules/d3-time/src/duration.js +2 -4
  837. package/dist/node_modules/d3-time/src/hour.js +14 -16
  838. package/dist/node_modules/d3-time/src/interval.js +5 -7
  839. package/dist/node_modules/d3-time/src/millisecond.js +5 -7
  840. package/dist/node_modules/d3-time/src/minute.js +14 -16
  841. package/dist/node_modules/d3-time/src/month.js +12 -14
  842. package/dist/node_modules/d3-time/src/second.js +7 -9
  843. package/dist/node_modules/d3-time/src/ticks.js +64 -66
  844. package/dist/node_modules/d3-time/src/week.js +19 -21
  845. package/dist/node_modules/d3-time/src/year.js +8 -10
  846. package/dist/node_modules/d3-time-format/src/defaultLocale.js +6 -8
  847. package/dist/node_modules/d3-time-format/src/locale.js +344 -346
  848. package/dist/node_modules/d3-timer/src/timeout.js +4 -6
  849. package/dist/node_modules/d3-timer/src/timer.js +31 -33
  850. package/dist/node_modules/d3-transition/src/index.js +2 -2
  851. package/dist/node_modules/d3-transition/src/interrupt.js +3 -4
  852. package/dist/node_modules/d3-transition/src/selection/index.js +4 -5
  853. package/dist/node_modules/d3-transition/src/selection/interrupt.js +4 -6
  854. package/dist/node_modules/d3-transition/src/selection/transition.js +14 -16
  855. package/dist/node_modules/d3-transition/src/transition/attr.js +26 -28
  856. package/dist/node_modules/d3-transition/src/transition/attrTween.js +11 -13
  857. package/dist/node_modules/d3-transition/src/transition/delay.js +9 -11
  858. package/dist/node_modules/d3-transition/src/transition/duration.js +9 -11
  859. package/dist/node_modules/d3-transition/src/transition/ease.js +6 -8
  860. package/dist/node_modules/d3-transition/src/transition/easeVarying.js +6 -8
  861. package/dist/node_modules/d3-transition/src/transition/end.js +4 -6
  862. package/dist/node_modules/d3-transition/src/transition/filter.js +6 -8
  863. package/dist/node_modules/d3-transition/src/transition/index.js +61 -63
  864. package/dist/node_modules/d3-transition/src/transition/interpolate.js +7 -9
  865. package/dist/node_modules/d3-transition/src/transition/merge.js +4 -6
  866. package/dist/node_modules/d3-transition/src/transition/on.js +7 -9
  867. package/dist/node_modules/d3-transition/src/transition/remove.js +4 -6
  868. package/dist/node_modules/d3-transition/src/transition/schedule.js +18 -20
  869. package/dist/node_modules/d3-transition/src/transition/select.js +8 -10
  870. package/dist/node_modules/d3-transition/src/transition/selectAll.js +8 -10
  871. package/dist/node_modules/d3-transition/src/transition/selection.js +5 -7
  872. package/dist/node_modules/d3-transition/src/transition/style.js +19 -21
  873. package/dist/node_modules/d3-transition/src/transition/styleTween.js +6 -8
  874. package/dist/node_modules/d3-transition/src/transition/text.js +6 -8
  875. package/dist/node_modules/d3-transition/src/transition/textTween.js +6 -8
  876. package/dist/node_modules/d3-transition/src/transition/transition.js +8 -10
  877. package/dist/node_modules/d3-transition/src/transition/tween.js +12 -14
  878. package/dist/node_modules/d3-zoom/src/constant.js +2 -4
  879. package/dist/node_modules/d3-zoom/src/event.js +2 -4
  880. package/dist/node_modules/d3-zoom/src/index.js +2 -2
  881. package/dist/node_modules/d3-zoom/src/noevent.js +3 -5
  882. package/dist/node_modules/d3-zoom/src/transform.js +10 -12
  883. package/dist/node_modules/d3-zoom/src/zoom.js +114 -116
  884. package/dist/node_modules/dagre-d3-es/src/dagre/acyclic.js +12 -14
  885. package/dist/node_modules/dagre-d3-es/src/dagre/add-border-segments.js +9 -11
  886. package/dist/node_modules/dagre-d3-es/src/dagre/coordinate-system.js +34 -36
  887. package/dist/node_modules/dagre-d3-es/src/dagre/data/list.js +7 -9
  888. package/dist/node_modules/dagre-d3-es/src/dagre/greedy-fas.js +49 -51
  889. package/dist/node_modules/dagre-d3-es/src/dagre/index.js +2 -2
  890. package/dist/node_modules/dagre-d3-es/src/dagre/layout.js +163 -165
  891. package/dist/node_modules/dagre-d3-es/src/dagre/nesting-graph.js +43 -45
  892. package/dist/node_modules/dagre-d3-es/src/dagre/normalize.js +10 -12
  893. package/dist/node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js +4 -6
  894. package/dist/node_modules/dagre-d3-es/src/dagre/order/barycenter.js +6 -8
  895. package/dist/node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js +12 -14
  896. package/dist/node_modules/dagre-d3-es/src/dagre/order/cross-count.js +20 -22
  897. package/dist/node_modules/dagre-d3-es/src/dagre/order/index.js +34 -36
  898. package/dist/node_modules/dagre-d3-es/src/dagre/order/init-order.js +13 -15
  899. package/dist/node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js +30 -32
  900. package/dist/node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js +28 -30
  901. package/dist/node_modules/dagre-d3-es/src/dagre/order/sort.js +18 -20
  902. package/dist/node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js +10 -12
  903. package/dist/node_modules/dagre-d3-es/src/dagre/position/bk.js +148 -150
  904. package/dist/node_modules/dagre-d3-es/src/dagre/position/index.js +18 -20
  905. package/dist/node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js +17 -19
  906. package/dist/node_modules/dagre-d3-es/src/dagre/rank/index.js +14 -16
  907. package/dist/node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js +63 -64
  908. package/dist/node_modules/dagre-d3-es/src/dagre/rank/util.js +8 -10
  909. package/dist/node_modules/dagre-d3-es/src/dagre/util.js +82 -84
  910. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/dfs.js +13 -15
  911. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js +2 -3
  912. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js +2 -3
  913. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/index.js +3 -3
  914. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/postorder.js +4 -6
  915. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/preorder.js +4 -6
  916. package/dist/node_modules/dagre-d3-es/src/graphlib/alg/topsort.js +11 -13
  917. package/dist/node_modules/dagre-d3-es/src/graphlib/graph.js +129 -131
  918. package/dist/node_modules/dagre-d3-es/src/graphlib/index.js +1 -1
  919. package/dist/node_modules/dagre-d3-es/src/graphlib/json.js +16 -18
  920. package/dist/node_modules/dayjs/dayjs.min.js +4 -6
  921. package/dist/node_modules/dayjs/plugin/advancedFormat.js +4 -6
  922. package/dist/node_modules/dayjs/plugin/customParseFormat.js +4 -6
  923. package/dist/node_modules/dayjs/plugin/duration.js +4 -6
  924. package/dist/node_modules/dayjs/plugin/isoWeek.js +4 -6
  925. package/dist/node_modules/decode-named-character-reference/index.dom.js +5 -7
  926. package/dist/node_modules/devlop/lib/default.js +2 -4
  927. package/dist/node_modules/dompurify/dist/purify.es.js +180 -182
  928. package/dist/node_modules/entities/dist/esm/decode-codepoint.js +4 -6
  929. package/dist/node_modules/entities/dist/esm/decode.js +85 -87
  930. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.js +2 -4
  931. package/dist/node_modules/estree-util-is-identifier-name/lib/index.js +4 -6
  932. package/dist/node_modules/extend/index.js +6 -9
  933. package/dist/node_modules/hast-util-from-dom/lib/index.js +30 -32
  934. package/dist/node_modules/hast-util-from-html-isomorphic/lib/browser.js +8 -10
  935. package/dist/node_modules/hast-util-from-parse5/lib/index.js +80 -82
  936. package/dist/node_modules/hast-util-is-element/lib/index.js +15 -17
  937. package/dist/node_modules/hast-util-parse-selector/lib/index.js +5 -7
  938. package/dist/node_modules/hast-util-raw/lib/index.js +134 -136
  939. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.js +21 -23
  940. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.js +3 -5
  941. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.js +89 -89
  942. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.js +249 -250
  943. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.js +4 -6
  944. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.js +14 -14
  945. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/index.js +4 -4
  946. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.js +15 -17
  947. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.js +1495 -1497
  948. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.js +146 -148
  949. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.js +19 -20
  950. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.js +798 -800
  951. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.js +31 -33
  952. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.js +8 -10
  953. package/dist/node_modules/hast-util-sanitize/lib/index.js +104 -106
  954. package/dist/node_modules/hast-util-sanitize/lib/schema.js +11 -12
  955. package/dist/node_modules/hast-util-to-html/lib/handle/comment.js +7 -9
  956. package/dist/node_modules/hast-util-to-html/lib/handle/doctype.js +2 -4
  957. package/dist/node_modules/hast-util-to-html/lib/handle/element.js +23 -25
  958. package/dist/node_modules/hast-util-to-html/lib/handle/index.js +21 -22
  959. package/dist/node_modules/hast-util-to-html/lib/handle/raw.js +4 -6
  960. package/dist/node_modules/hast-util-to-html/lib/handle/root.js +2 -4
  961. package/dist/node_modules/hast-util-to-html/lib/handle/text.js +5 -7
  962. package/dist/node_modules/hast-util-to-html/lib/index.js +36 -38
  963. package/dist/node_modules/hast-util-to-html/lib/omission/closing.js +68 -70
  964. package/dist/node_modules/hast-util-to-html/lib/omission/omission.js +4 -6
  965. package/dist/node_modules/hast-util-to-html/lib/omission/opening.js +30 -32
  966. package/dist/node_modules/hast-util-to-html/lib/omission/util/siblings.js +9 -10
  967. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +190 -192
  968. package/dist/node_modules/hast-util-to-parse5/lib/index.js +69 -71
  969. package/dist/node_modules/hast-util-to-text/lib/index.js +59 -61
  970. package/dist/node_modules/hast-util-whitespace/lib/index.js +6 -8
  971. package/dist/node_modules/hastscript/lib/create-h.js +24 -26
  972. package/dist/node_modules/hastscript/lib/index.js +5 -7
  973. package/dist/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js +2 -4
  974. package/dist/node_modules/html-url-attributes/lib/index.js +2 -4
  975. package/dist/node_modules/html-void-elements/index.js +2 -4
  976. package/dist/node_modules/inline-style-parser/cjs/index.js +4 -6
  977. package/dist/node_modules/internmap/src/index.js +20 -22
  978. package/dist/node_modules/katex/dist/katex.js +2307 -2301
  979. package/dist/node_modules/khroma/dist/channels/index.js +21 -23
  980. package/dist/node_modules/khroma/dist/channels/reusable.js +3 -5
  981. package/dist/node_modules/khroma/dist/channels/type.js +5 -7
  982. package/dist/node_modules/khroma/dist/color/hex.js +8 -10
  983. package/dist/node_modules/khroma/dist/color/hsl.js +17 -19
  984. package/dist/node_modules/khroma/dist/color/index.js +15 -17
  985. package/dist/node_modules/khroma/dist/color/keyword.js +8 -10
  986. package/dist/node_modules/khroma/dist/color/rgb.js +12 -14
  987. package/dist/node_modules/khroma/dist/constants.js +5 -7
  988. package/dist/node_modules/khroma/dist/methods/adjust.js +6 -8
  989. package/dist/node_modules/khroma/dist/methods/adjust_channel.js +6 -8
  990. package/dist/node_modules/khroma/dist/methods/change.js +7 -9
  991. package/dist/node_modules/khroma/dist/methods/channel.js +4 -6
  992. package/dist/node_modules/khroma/dist/methods/darken.js +3 -5
  993. package/dist/node_modules/khroma/dist/methods/invert.js +6 -8
  994. package/dist/node_modules/khroma/dist/methods/is_dark.js +3 -5
  995. package/dist/node_modules/khroma/dist/methods/is_light.js +3 -5
  996. package/dist/node_modules/khroma/dist/methods/lighten.js +3 -5
  997. package/dist/node_modules/khroma/dist/methods/luminance.js +6 -8
  998. package/dist/node_modules/khroma/dist/methods/mix.js +6 -8
  999. package/dist/node_modules/khroma/dist/methods/rgba.js +13 -15
  1000. package/dist/node_modules/khroma/dist/methods/transparentize.js +3 -5
  1001. package/dist/node_modules/khroma/dist/utils/channel.js +6 -8
  1002. package/dist/node_modules/khroma/dist/utils/index.js +8 -10
  1003. package/dist/node_modules/khroma/dist/utils/lang.js +2 -4
  1004. package/dist/node_modules/khroma/dist/utils/unit.js +2 -4
  1005. package/dist/node_modules/langium/lib/default-module.js +64 -66
  1006. package/dist/node_modules/langium/lib/dependency-injection.js +39 -37
  1007. package/dist/node_modules/langium/lib/documentation/comment-provider.js +5 -7
  1008. package/dist/node_modules/langium/lib/documentation/documentation-provider.js +6 -8
  1009. package/dist/node_modules/langium/lib/documentation/jsdoc.js +202 -204
  1010. package/dist/node_modules/langium/lib/index.js +182 -0
  1011. package/dist/node_modules/langium/lib/languages/generated/ast.js +534 -343
  1012. package/dist/node_modules/langium/lib/languages/grammar-config.js +8 -10
  1013. package/dist/node_modules/langium/lib/parser/async-parser.js +76 -4
  1014. package/dist/node_modules/langium/lib/parser/completion-parser-builder.js +6 -8
  1015. package/dist/node_modules/langium/lib/parser/cst-node-builder.js +54 -56
  1016. package/dist/node_modules/langium/lib/parser/indentation-aware.js +141 -0
  1017. package/dist/node_modules/langium/lib/parser/langium-parser-builder.js +7 -9
  1018. package/dist/node_modules/langium/lib/parser/langium-parser.js +188 -190
  1019. package/dist/node_modules/langium/lib/parser/lexer.js +25 -25
  1020. package/dist/node_modules/langium/lib/parser/parser-builder-base.js +203 -204
  1021. package/dist/node_modules/langium/lib/parser/token-builder.js +30 -32
  1022. package/dist/node_modules/langium/lib/parser/value-converter.js +15 -17
  1023. package/dist/node_modules/langium/lib/references/linker.js +103 -104
  1024. package/dist/node_modules/langium/lib/references/name-provider.js +7 -9
  1025. package/dist/node_modules/langium/lib/references/references.js +51 -53
  1026. package/dist/node_modules/langium/lib/references/scope-computation.js +12 -14
  1027. package/dist/node_modules/langium/lib/references/scope-provider.js +11 -13
  1028. package/dist/node_modules/langium/lib/references/scope.js +56 -27
  1029. package/dist/node_modules/langium/lib/serializer/hydrator.js +69 -71
  1030. package/dist/node_modules/langium/lib/serializer/json-serializer.js +21 -23
  1031. package/dist/node_modules/langium/lib/service-registry.js +5 -7
  1032. package/dist/node_modules/langium/lib/syntax-tree.js +31 -33
  1033. package/dist/node_modules/langium/lib/utils/ast-utils.js +112 -77
  1034. package/dist/node_modules/langium/lib/utils/caching.js +42 -33
  1035. package/dist/node_modules/langium/lib/utils/cancellation.js +5 -7
  1036. package/dist/node_modules/langium/lib/utils/collections.js +33 -35
  1037. package/dist/node_modules/langium/lib/utils/cst-utils.js +161 -46
  1038. package/dist/node_modules/langium/lib/utils/disposable.js +3 -5
  1039. package/dist/node_modules/langium/lib/utils/errors.js +9 -8
  1040. package/dist/node_modules/langium/lib/utils/event.js +5 -7
  1041. package/dist/node_modules/langium/lib/utils/grammar-loader.js +14 -16
  1042. package/dist/node_modules/langium/lib/utils/grammar-utils.js +249 -172
  1043. package/dist/node_modules/langium/lib/utils/index.js +53 -0
  1044. package/dist/node_modules/langium/lib/utils/promise-utils.js +19 -18
  1045. package/dist/node_modules/langium/lib/utils/regexp-utils.js +76 -53
  1046. package/dist/node_modules/langium/lib/utils/stream.js +153 -155
  1047. package/dist/node_modules/langium/lib/utils/uri-utils.js +12 -14
  1048. package/dist/node_modules/langium/lib/validation/document-validator.js +103 -104
  1049. package/dist/node_modules/langium/lib/validation/validation-registry.js +14 -15
  1050. package/dist/node_modules/langium/lib/workspace/ast-descriptions.js +17 -19
  1051. package/dist/node_modules/langium/lib/workspace/ast-node-locator.js +2 -4
  1052. package/dist/node_modules/langium/lib/workspace/configuration.js +5 -7
  1053. package/dist/node_modules/langium/lib/workspace/document-builder.js +134 -131
  1054. package/dist/node_modules/langium/lib/workspace/documents.js +83 -85
  1055. package/dist/node_modules/langium/lib/workspace/file-system-provider.js +4 -5
  1056. package/dist/node_modules/langium/lib/workspace/index-manager.js +14 -16
  1057. package/dist/node_modules/langium/lib/workspace/profiler.js +89 -0
  1058. package/dist/node_modules/langium/lib/workspace/workspace-lock.js +9 -11
  1059. package/dist/node_modules/langium/lib/workspace/workspace-manager.js +33 -35
  1060. package/dist/node_modules/layout-base/layout-base.js +4 -6
  1061. package/dist/node_modules/lodash/_Symbol.js +7 -0
  1062. package/dist/node_modules/lodash/_baseGetTag.js +13 -0
  1063. package/dist/node_modules/lodash/_baseTrim.js +11 -0
  1064. package/dist/node_modules/lodash/_freeGlobal.js +6 -0
  1065. package/dist/node_modules/lodash/_getRawTag.js +17 -0
  1066. package/dist/node_modules/lodash/_objectToString.js +10 -0
  1067. package/dist/node_modules/lodash/_root.js +8 -0
  1068. package/dist/node_modules/lodash/_trimmedEndIndex.js +11 -0
  1069. package/dist/{frontend/studio/node_modules → node_modules}/lodash/debounce.js +8 -10
  1070. package/dist/node_modules/lodash/isObject.js +10 -0
  1071. package/dist/node_modules/lodash/isObjectLike.js +9 -0
  1072. package/dist/node_modules/lodash/isSymbol.js +12 -0
  1073. package/dist/node_modules/lodash/now.js +10 -0
  1074. package/dist/node_modules/lodash/toNumber.js +22 -0
  1075. package/dist/node_modules/lodash-es/_DataView.js +4 -6
  1076. package/dist/node_modules/lodash-es/_Hash.js +13 -14
  1077. package/dist/node_modules/lodash-es/_ListCache.js +13 -14
  1078. package/dist/node_modules/lodash-es/_Map.js +4 -6
  1079. package/dist/node_modules/lodash-es/_MapCache.js +13 -14
  1080. package/dist/node_modules/lodash-es/_Promise.js +4 -6
  1081. package/dist/node_modules/lodash-es/_Set.js +4 -6
  1082. package/dist/node_modules/lodash-es/_SetCache.js +9 -10
  1083. package/dist/node_modules/lodash-es/_Stack.js +11 -12
  1084. package/dist/node_modules/lodash-es/_Symbol.js +3 -5
  1085. package/dist/node_modules/lodash-es/_Uint8Array.js +3 -5
  1086. package/dist/node_modules/lodash-es/_WeakMap.js +4 -6
  1087. package/dist/node_modules/lodash-es/_apply.js +3 -4
  1088. package/dist/node_modules/lodash-es/_arrayEach.js +3 -4
  1089. package/dist/node_modules/lodash-es/_arrayFilter.js +3 -4
  1090. package/dist/node_modules/lodash-es/_arrayIncludes.js +5 -6
  1091. package/dist/node_modules/lodash-es/_arrayIncludesWith.js +3 -4
  1092. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  1093. package/dist/node_modules/lodash-es/_arrayMap.js +3 -4
  1094. package/dist/node_modules/lodash-es/_arrayPush.js +3 -4
  1095. package/dist/node_modules/lodash-es/_arrayReduce.js +3 -4
  1096. package/dist/node_modules/lodash-es/_arraySome.js +3 -4
  1097. package/dist/node_modules/lodash-es/_asciiSize.js +3 -5
  1098. package/dist/node_modules/lodash-es/_assignMergeValue.js +6 -7
  1099. package/dist/node_modules/lodash-es/_assignValue.js +7 -8
  1100. package/dist/node_modules/lodash-es/_assocIndexOf.js +5 -6
  1101. package/dist/node_modules/lodash-es/_baseAssign.js +6 -7
  1102. package/dist/node_modules/lodash-es/_baseAssignIn.js +6 -7
  1103. package/dist/node_modules/lodash-es/_baseAssignValue.js +5 -6
  1104. package/dist/node_modules/lodash-es/_baseClone.js +50 -51
  1105. package/dist/node_modules/lodash-es/_baseCreate.js +5 -7
  1106. package/dist/node_modules/lodash-es/_baseEach.js +4 -6
  1107. package/dist/node_modules/lodash-es/_baseExtremum.js +5 -6
  1108. package/dist/node_modules/lodash-es/_baseFilter.js +5 -6
  1109. package/dist/node_modules/lodash-es/_baseFindIndex.js +3 -4
  1110. package/dist/node_modules/lodash-es/_baseFlatten.js +7 -8
  1111. package/dist/node_modules/lodash-es/_baseFor.js +3 -5
  1112. package/dist/node_modules/lodash-es/_baseForOwn.js +6 -7
  1113. package/dist/node_modules/lodash-es/_baseGet.js +7 -8
  1114. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +6 -7
  1115. package/dist/node_modules/lodash-es/_baseGetTag.js +8 -9
  1116. package/dist/node_modules/lodash-es/_baseGt.js +3 -4
  1117. package/dist/node_modules/lodash-es/_baseHas.js +5 -6
  1118. package/dist/node_modules/lodash-es/_baseHasIn.js +3 -4
  1119. package/dist/node_modules/lodash-es/_baseIndexOf.js +7 -8
  1120. package/dist/node_modules/lodash-es/_baseIsArguments.js +7 -8
  1121. package/dist/node_modules/lodash-es/_baseIsEqual.js +6 -7
  1122. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +22 -23
  1123. package/dist/node_modules/lodash-es/_baseIsMap.js +7 -8
  1124. package/dist/node_modules/lodash-es/_baseIsMatch.js +8 -9
  1125. package/dist/node_modules/lodash-es/_baseIsNaN.js +3 -4
  1126. package/dist/node_modules/lodash-es/_baseIsNative.js +9 -10
  1127. package/dist/node_modules/lodash-es/_baseIsSet.js +7 -8
  1128. package/dist/node_modules/lodash-es/_baseIsTypedArray.js +9 -10
  1129. package/dist/node_modules/lodash-es/_baseIteratee.js +9 -10
  1130. package/dist/node_modules/lodash-es/_baseKeys.js +8 -9
  1131. package/dist/node_modules/lodash-es/_baseKeysIn.js +10 -11
  1132. package/dist/node_modules/lodash-es/_baseLt.js +3 -4
  1133. package/dist/node_modules/lodash-es/_baseMap.js +7 -8
  1134. package/dist/node_modules/lodash-es/_baseMatches.js +9 -10
  1135. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +14 -15
  1136. package/dist/node_modules/lodash-es/_baseMerge.js +15 -16
  1137. package/dist/node_modules/lodash-es/_baseMergeDeep.js +23 -24
  1138. package/dist/node_modules/lodash-es/_baseOrderBy.js +22 -23
  1139. package/dist/node_modules/lodash-es/_basePick.js +7 -8
  1140. package/dist/node_modules/lodash-es/_basePickBy.js +8 -9
  1141. package/dist/node_modules/lodash-es/_baseProperty.js +3 -4
  1142. package/dist/node_modules/lodash-es/_basePropertyDeep.js +5 -6
  1143. package/dist/node_modules/lodash-es/_baseRange.js +5 -6
  1144. package/dist/node_modules/lodash-es/_baseReduce.js +3 -4
  1145. package/dist/node_modules/lodash-es/_baseRest.js +7 -8
  1146. package/dist/node_modules/lodash-es/_baseSet.js +13 -14
  1147. package/dist/node_modules/lodash-es/_baseSetToString.js +8 -10
  1148. package/dist/node_modules/lodash-es/_baseSortBy.js +3 -4
  1149. package/dist/node_modules/lodash-es/_baseTimes.js +3 -4
  1150. package/dist/node_modules/lodash-es/_baseToString.js +12 -13
  1151. package/dist/node_modules/lodash-es/_baseTrim.js +6 -7
  1152. package/dist/node_modules/lodash-es/_baseUnary.js +3 -4
  1153. package/dist/node_modules/lodash-es/_baseUniq.js +16 -17
  1154. package/dist/node_modules/lodash-es/_baseValues.js +5 -6
  1155. package/dist/node_modules/lodash-es/_baseZipObject.js +3 -4
  1156. package/dist/node_modules/lodash-es/_cacheHas.js +3 -4
  1157. package/dist/node_modules/lodash-es/_castFunction.js +5 -6
  1158. package/dist/node_modules/lodash-es/_castPath.js +8 -9
  1159. package/dist/node_modules/lodash-es/_cloneArrayBuffer.js +5 -6
  1160. package/dist/node_modules/lodash-es/_cloneBuffer.js +8 -9
  1161. package/dist/node_modules/lodash-es/_cloneDataView.js +5 -6
  1162. package/dist/node_modules/lodash-es/_cloneRegExp.js +5 -6
  1163. package/dist/node_modules/lodash-es/_cloneSymbol.js +6 -7
  1164. package/dist/node_modules/lodash-es/_cloneTypedArray.js +5 -6
  1165. package/dist/node_modules/lodash-es/_compareAscending.js +5 -6
  1166. package/dist/node_modules/lodash-es/_compareMultiple.js +5 -6
  1167. package/dist/node_modules/lodash-es/_copyArray.js +3 -4
  1168. package/dist/node_modules/lodash-es/_copyObject.js +6 -7
  1169. package/dist/node_modules/lodash-es/_copySymbols.js +6 -7
  1170. package/dist/node_modules/lodash-es/_copySymbolsIn.js +6 -7
  1171. package/dist/node_modules/lodash-es/_coreJsData.js +3 -5
  1172. package/dist/node_modules/lodash-es/_createAssigner.js +7 -8
  1173. package/dist/node_modules/lodash-es/_createBaseEach.js +5 -6
  1174. package/dist/node_modules/lodash-es/_createBaseFor.js +3 -4
  1175. package/dist/node_modules/lodash-es/_createFind.js +9 -10
  1176. package/dist/node_modules/lodash-es/_createRange.js +7 -8
  1177. package/dist/node_modules/lodash-es/_createSet.js +7 -9
  1178. package/dist/node_modules/lodash-es/_defineProperty.js +4 -6
  1179. package/dist/node_modules/lodash-es/_equalArrays.js +11 -12
  1180. package/dist/node_modules/lodash-es/_equalByTag.js +28 -29
  1181. package/dist/node_modules/lodash-es/_equalObjects.js +8 -9
  1182. package/dist/node_modules/lodash-es/_flatRest.js +7 -8
  1183. package/dist/node_modules/lodash-es/_freeGlobal.js +2 -4
  1184. package/dist/node_modules/lodash-es/_getAllKeys.js +7 -8
  1185. package/dist/node_modules/lodash-es/_getAllKeysIn.js +7 -8
  1186. package/dist/node_modules/lodash-es/_getMapData.js +5 -6
  1187. package/dist/node_modules/lodash-es/_getMatchData.js +7 -8
  1188. package/dist/node_modules/lodash-es/_getNative.js +7 -8
  1189. package/dist/node_modules/lodash-es/_getPrototype.js +3 -5
  1190. package/dist/node_modules/lodash-es/_getRawTag.js +9 -10
  1191. package/dist/node_modules/lodash-es/_getSymbols.js +7 -9
  1192. package/dist/node_modules/lodash-es/_getSymbolsIn.js +8 -10
  1193. package/dist/node_modules/lodash-es/_getTag.js +19 -21
  1194. package/dist/node_modules/lodash-es/_getValue.js +3 -4
  1195. package/dist/node_modules/lodash-es/_hasPath.js +12 -13
  1196. package/dist/node_modules/lodash-es/_hasUnicode.js +5 -6
  1197. package/dist/node_modules/lodash-es/_hashClear.js +5 -6
  1198. package/dist/node_modules/lodash-es/_hashDelete.js +4 -5
  1199. package/dist/node_modules/lodash-es/_hashGet.js +8 -9
  1200. package/dist/node_modules/lodash-es/_hashHas.js +6 -7
  1201. package/dist/node_modules/lodash-es/_hashSet.js +6 -7
  1202. package/dist/node_modules/lodash-es/_initCloneArray.js +5 -6
  1203. package/dist/node_modules/lodash-es/_initCloneByTag.js +28 -29
  1204. package/dist/node_modules/lodash-es/_initCloneObject.js +7 -8
  1205. package/dist/node_modules/lodash-es/_isFlattenable.js +8 -9
  1206. package/dist/node_modules/lodash-es/_isIndex.js +5 -6
  1207. package/dist/node_modules/lodash-es/_isIterateeCall.js +9 -10
  1208. package/dist/node_modules/lodash-es/_isKey.js +8 -9
  1209. package/dist/node_modules/lodash-es/_isKeyable.js +3 -4
  1210. package/dist/node_modules/lodash-es/_isMasked.js +8 -9
  1211. package/dist/node_modules/lodash-es/_isPrototype.js +5 -6
  1212. package/dist/node_modules/lodash-es/_isStrictComparable.js +5 -6
  1213. package/dist/node_modules/lodash-es/_listCacheClear.js +3 -4
  1214. package/dist/node_modules/lodash-es/_listCacheDelete.js +7 -8
  1215. package/dist/node_modules/lodash-es/_listCacheGet.js +5 -6
  1216. package/dist/node_modules/lodash-es/_listCacheHas.js +5 -6
  1217. package/dist/node_modules/lodash-es/_listCacheSet.js +5 -6
  1218. package/dist/node_modules/lodash-es/_mapCacheClear.js +9 -10
  1219. package/dist/node_modules/lodash-es/_mapCacheDelete.js +6 -7
  1220. package/dist/node_modules/lodash-es/_mapCacheGet.js +5 -6
  1221. package/dist/node_modules/lodash-es/_mapCacheHas.js +5 -6
  1222. package/dist/node_modules/lodash-es/_mapCacheSet.js +5 -6
  1223. package/dist/node_modules/lodash-es/_mapToArray.js +3 -4
  1224. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +3 -4
  1225. package/dist/node_modules/lodash-es/_memoizeCapped.js +7 -8
  1226. package/dist/node_modules/lodash-es/_nativeCreate.js +3 -5
  1227. package/dist/node_modules/lodash-es/_nativeKeys.js +3 -5
  1228. package/dist/node_modules/lodash-es/_nativeKeysIn.js +3 -4
  1229. package/dist/node_modules/lodash-es/_nodeUtil.js +4 -6
  1230. package/dist/node_modules/lodash-es/_objectToString.js +5 -6
  1231. package/dist/node_modules/lodash-es/_overArg.js +3 -4
  1232. package/dist/node_modules/lodash-es/_overRest.js +8 -9
  1233. package/dist/node_modules/lodash-es/_root.js +3 -5
  1234. package/dist/node_modules/lodash-es/_safeGet.js +3 -4
  1235. package/dist/node_modules/lodash-es/_setCacheAdd.js +5 -6
  1236. package/dist/node_modules/lodash-es/_setCacheHas.js +3 -4
  1237. package/dist/node_modules/lodash-es/_setToArray.js +3 -4
  1238. package/dist/node_modules/lodash-es/_setToString.js +4 -6
  1239. package/dist/node_modules/lodash-es/_shortOut.js +6 -7
  1240. package/dist/node_modules/lodash-es/_stackClear.js +5 -6
  1241. package/dist/node_modules/lodash-es/_stackDelete.js +3 -4
  1242. package/dist/node_modules/lodash-es/_stackGet.js +3 -4
  1243. package/dist/node_modules/lodash-es/_stackHas.js +3 -4
  1244. package/dist/node_modules/lodash-es/_stackSet.js +10 -11
  1245. package/dist/node_modules/lodash-es/_strictIndexOf.js +3 -4
  1246. package/dist/node_modules/lodash-es/_stringSize.js +7 -8
  1247. package/dist/node_modules/lodash-es/_stringToPath.js +5 -7
  1248. package/dist/node_modules/lodash-es/_toKey.js +7 -8
  1249. package/dist/node_modules/lodash-es/_toSource.js +7 -8
  1250. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +5 -6
  1251. package/dist/node_modules/lodash-es/_unicodeSize.js +16 -17
  1252. package/dist/node_modules/lodash-es/clone.js +6 -7
  1253. package/dist/node_modules/lodash-es/cloneDeep.js +6 -7
  1254. package/dist/node_modules/lodash-es/constant.js +3 -4
  1255. package/dist/node_modules/lodash-es/defaults.js +11 -13
  1256. package/dist/node_modules/lodash-es/eq.js +3 -4
  1257. package/dist/node_modules/lodash-es/filter.js +8 -9
  1258. package/dist/node_modules/lodash-es/find.js +4 -6
  1259. package/dist/node_modules/lodash-es/findIndex.js +9 -10
  1260. package/dist/node_modules/lodash-es/flatMap.js +6 -7
  1261. package/dist/node_modules/lodash-es/flatten.js +5 -6
  1262. package/dist/node_modules/lodash-es/forEach.js +8 -9
  1263. package/dist/node_modules/lodash-es/forIn.js +7 -8
  1264. package/dist/node_modules/lodash-es/forOwn.js +6 -7
  1265. package/dist/node_modules/lodash-es/get.js +5 -6
  1266. package/dist/node_modules/lodash-es/has.js +6 -7
  1267. package/dist/node_modules/lodash-es/hasIn.js +6 -7
  1268. package/dist/node_modules/lodash-es/identity.js +3 -4
  1269. package/dist/node_modules/lodash-es/isArguments.js +6 -8
  1270. package/dist/node_modules/lodash-es/isArray.js +2 -4
  1271. package/dist/node_modules/lodash-es/isArrayLike.js +6 -7
  1272. package/dist/node_modules/lodash-es/isArrayLikeObject.js +6 -7
  1273. package/dist/node_modules/lodash-es/isBuffer.js +4 -6
  1274. package/dist/node_modules/lodash-es/isEmpty.js +17 -18
  1275. package/dist/node_modules/lodash-es/isFunction.js +9 -10
  1276. package/dist/node_modules/lodash-es/isLength.js +5 -6
  1277. package/dist/node_modules/lodash-es/isMap.js +5 -7
  1278. package/dist/node_modules/lodash-es/isObject.js +3 -4
  1279. package/dist/node_modules/lodash-es/isObjectLike.js +3 -4
  1280. package/dist/node_modules/lodash-es/isPlainObject.js +12 -13
  1281. package/dist/node_modules/lodash-es/isSet.js +5 -7
  1282. package/dist/node_modules/lodash-es/isString.js +8 -9
  1283. package/dist/node_modules/lodash-es/isSymbol.js +7 -8
  1284. package/dist/node_modules/lodash-es/isTypedArray.js +5 -7
  1285. package/dist/node_modules/lodash-es/isUndefined.js +3 -4
  1286. package/dist/node_modules/lodash-es/keys.js +7 -8
  1287. package/dist/node_modules/lodash-es/keysIn.js +7 -8
  1288. package/dist/node_modules/lodash-es/last.js +3 -4
  1289. package/dist/node_modules/lodash-es/map.js +8 -9
  1290. package/dist/node_modules/lodash-es/mapValues.js +8 -9
  1291. package/dist/node_modules/lodash-es/max.js +7 -8
  1292. package/dist/node_modules/lodash-es/memoize.js +8 -9
  1293. package/dist/node_modules/lodash-es/merge.js +5 -7
  1294. package/dist/node_modules/lodash-es/min.js +7 -8
  1295. package/dist/node_modules/lodash-es/minBy.js +7 -8
  1296. package/dist/node_modules/lodash-es/noop.js +3 -4
  1297. package/dist/node_modules/lodash-es/now.js +4 -6
  1298. package/dist/node_modules/lodash-es/pick.js +5 -7
  1299. package/dist/node_modules/lodash-es/property.js +8 -9
  1300. package/dist/node_modules/lodash-es/range.js +3 -5
  1301. package/dist/node_modules/lodash-es/reduce.js +10 -11
  1302. package/dist/node_modules/lodash-es/size.js +12 -13
  1303. package/dist/node_modules/lodash-es/sortBy.js +7 -9
  1304. package/dist/node_modules/lodash-es/stubArray.js +3 -4
  1305. package/dist/node_modules/lodash-es/stubFalse.js +3 -4
  1306. package/dist/node_modules/lodash-es/toFinite.js +6 -7
  1307. package/dist/node_modules/lodash-es/toInteger.js +5 -6
  1308. package/dist/node_modules/lodash-es/toNumber.js +13 -14
  1309. package/dist/node_modules/lodash-es/toPlainObject.js +6 -7
  1310. package/dist/node_modules/lodash-es/toString.js +5 -6
  1311. package/dist/node_modules/lodash-es/union.js +7 -9
  1312. package/dist/node_modules/lodash-es/uniqBy.js +6 -7
  1313. package/dist/node_modules/lodash-es/uniqueId.js +7 -8
  1314. package/dist/node_modules/lodash-es/values.js +6 -7
  1315. package/dist/node_modules/lodash-es/zipObject.js +6 -7
  1316. package/dist/node_modules/longest-streak/index.js +2 -4
  1317. package/dist/node_modules/markdown-table/index.js +9 -11
  1318. package/dist/node_modules/marked/lib/marked.esm.js +685 -687
  1319. package/dist/node_modules/mdast-util-find-and-replace/lib/index.js +12 -14
  1320. package/dist/node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js +2 -4
  1321. package/dist/node_modules/mdast-util-from-markdown/lib/index.js +180 -182
  1322. package/dist/node_modules/mdast-util-gfm/lib/index.js +18 -20
  1323. package/dist/node_modules/mdast-util-gfm-autolink-literal/lib/index.js +67 -69
  1324. package/dist/node_modules/mdast-util-gfm-footnote/lib/index.js +45 -47
  1325. package/dist/node_modules/mdast-util-gfm-strikethrough/lib/index.js +13 -15
  1326. package/dist/node_modules/mdast-util-gfm-table/lib/index.js +28 -30
  1327. package/dist/node_modules/mdast-util-gfm-task-list-item/lib/index.js +14 -16
  1328. package/dist/node_modules/mdast-util-math/lib/index.js +13 -15
  1329. package/dist/node_modules/mdast-util-phrasing/lib/index.js +3 -5
  1330. package/dist/node_modules/mdast-util-to-hast/lib/footer.js +9 -11
  1331. package/dist/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js +2 -4
  1332. package/dist/node_modules/mdast-util-to-hast/lib/handlers/break.js +2 -4
  1333. package/dist/node_modules/mdast-util-to-hast/lib/handlers/code.js +2 -4
  1334. package/dist/node_modules/mdast-util-to-hast/lib/handlers/delete.js +2 -4
  1335. package/dist/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js +2 -4
  1336. package/dist/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js +4 -6
  1337. package/dist/node_modules/mdast-util-to-hast/lib/handlers/heading.js +2 -4
  1338. package/dist/node_modules/mdast-util-to-hast/lib/handlers/html.js +2 -4
  1339. package/dist/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js +6 -8
  1340. package/dist/node_modules/mdast-util-to-hast/lib/handlers/image.js +4 -6
  1341. package/dist/node_modules/mdast-util-to-hast/lib/handlers/index.js +53 -55
  1342. package/dist/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js +2 -4
  1343. package/dist/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js +6 -8
  1344. package/dist/node_modules/mdast-util-to-hast/lib/handlers/link.js +4 -6
  1345. package/dist/node_modules/mdast-util-to-hast/lib/handlers/list-item.js +13 -15
  1346. package/dist/node_modules/mdast-util-to-hast/lib/handlers/list.js +2 -4
  1347. package/dist/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js +2 -4
  1348. package/dist/node_modules/mdast-util-to-hast/lib/handlers/root.js +2 -4
  1349. package/dist/node_modules/mdast-util-to-hast/lib/handlers/strong.js +2 -4
  1350. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js +2 -4
  1351. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-row.js +2 -4
  1352. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table.js +4 -6
  1353. package/dist/node_modules/mdast-util-to-hast/lib/handlers/text.js +4 -6
  1354. package/dist/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js +2 -4
  1355. package/dist/node_modules/mdast-util-to-hast/lib/index.js +6 -8
  1356. package/dist/node_modules/mdast-util-to-hast/lib/revert.js +2 -4
  1357. package/dist/node_modules/mdast-util-to-hast/lib/state.js +59 -61
  1358. package/dist/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js +4 -6
  1359. package/dist/node_modules/mdast-util-to-markdown/lib/handle/break.js +4 -6
  1360. package/dist/node_modules/mdast-util-to-markdown/lib/handle/code.js +16 -18
  1361. package/dist/node_modules/mdast-util-to-markdown/lib/handle/definition.js +4 -6
  1362. package/dist/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js +12 -14
  1363. package/dist/node_modules/mdast-util-to-markdown/lib/handle/heading.js +6 -8
  1364. package/dist/node_modules/mdast-util-to-markdown/lib/handle/html.js +4 -6
  1365. package/dist/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js +4 -6
  1366. package/dist/node_modules/mdast-util-to-markdown/lib/handle/image.js +6 -8
  1367. package/dist/node_modules/mdast-util-to-markdown/lib/handle/index.js +41 -43
  1368. package/dist/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js +5 -7
  1369. package/dist/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js +4 -6
  1370. package/dist/node_modules/mdast-util-to-markdown/lib/handle/link.js +9 -11
  1371. package/dist/node_modules/mdast-util-to-markdown/lib/handle/list-item.js +5 -7
  1372. package/dist/node_modules/mdast-util-to-markdown/lib/handle/list.js +10 -12
  1373. package/dist/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js +2 -4
  1374. package/dist/node_modules/mdast-util-to-markdown/lib/handle/root.js +4 -6
  1375. package/dist/node_modules/mdast-util-to-markdown/lib/handle/strong.js +12 -14
  1376. package/dist/node_modules/mdast-util-to-markdown/lib/handle/text.js +2 -4
  1377. package/dist/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js +5 -7
  1378. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js +2 -4
  1379. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js +4 -6
  1380. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js +2 -4
  1381. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js +2 -4
  1382. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-fence.js +2 -4
  1383. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js +2 -4
  1384. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-quote.js +2 -4
  1385. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js +2 -4
  1386. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-rule.js +2 -4
  1387. package/dist/node_modules/mdast-util-to-markdown/lib/util/check-strong.js +2 -4
  1388. package/dist/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js +2 -4
  1389. package/dist/node_modules/mdast-util-to-markdown/lib/util/encode-info.js +4 -6
  1390. package/dist/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js +2 -4
  1391. package/dist/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js +7 -8
  1392. package/dist/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js +4 -6
  1393. package/dist/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js +4 -6
  1394. package/dist/node_modules/mdast-util-to-string/lib/index.js +12 -14
  1395. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-Q4EWVU46.js +374 -378
  1396. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-DXYQGD6D.js +1347 -1349
  1397. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-AHTNJAMY.js +549 -555
  1398. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-336JU56O.js +38 -40
  1399. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-426QAEUC.js +7 -9
  1400. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.js +4 -6
  1401. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-4TB4RGXK.js +198 -204
  1402. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js +5 -7
  1403. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5FUZZQ4R.js +2345 -2347
  1404. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5PVQY5BW.js +253 -257
  1405. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.js +20 -22
  1406. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-BSJP7CBP.js +35 -37
  1407. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-EDXVE4YY.js +15 -17
  1408. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ENJZ2VHE.js +344 -346
  1409. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.js +3 -5
  1410. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ICPOFSXX.js +718 -746
  1411. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-OYMX7WX6.js +588 -594
  1412. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.js +4 -8
  1413. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-U2HBQHQK.js +204 -206
  1414. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-X2U36JSP.js +37 -39
  1415. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-XPW4576I.js +891 -893
  1416. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-YZCP3GAM.js +37 -39
  1417. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ZZ45TVLE.js +13 -15
  1418. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-6PBFFD2Q.js +9 -11
  1419. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-HSJHXN6E.js +9 -11
  1420. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js +114 -116
  1421. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/dagre-KV5264BT.js +188 -190
  1422. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-5BDNPKRD.js +70 -72
  1423. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-G4DWMVQ6.js +185 -189
  1424. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-MMDJMWI5.js +154 -156
  1425. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-TYMM5635.js +72 -76
  1426. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-SMLLAGMA.js +75 -79
  1427. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-DWJPFMVM.js +896 -900
  1428. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-T4ZO3ILL.js +685 -687
  1429. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-UUTBAWPF.js +569 -571
  1430. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-42DDH7IO.js +15 -17
  1431. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ishikawaDiagram-UXIWVN3A.js +304 -308
  1432. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-VCZTEJTY.js +377 -379
  1433. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/kanban-definition-6JOO6SKY.js +114 -116
  1434. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/mindmap-definition-QFDTVHPH.js +87 -91
  1435. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-DEJITSTG.js +94 -96
  1436. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-34T5L4WZ.js +273 -279
  1437. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-MS252O5E.js +59 -63
  1438. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-XADWPNL6.js +202 -212
  1439. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-FGHM5R23.js +564 -568
  1440. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-FHFEXIEX.js +155 -157
  1441. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-QKLJ7IA2.js +9 -11
  1442. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-GMOUNBTQ.js +559 -561
  1443. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/vennDiagram-DHZGUBPP.js +370 -372
  1444. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-NUSXRM2D.js +450 -454
  1445. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-5P7HB3ND.js +658 -680
  1446. package/dist/node_modules/mermaid/dist/mermaid.core.js +430 -434
  1447. package/dist/node_modules/micromark/lib/constructs.js +79 -80
  1448. package/dist/node_modules/micromark/lib/create-tokenizer.js +12 -14
  1449. package/dist/node_modules/micromark/lib/initialize/content.js +7 -9
  1450. package/dist/node_modules/micromark/lib/initialize/document.js +14 -15
  1451. package/dist/node_modules/micromark/lib/initialize/flow.js +7 -9
  1452. package/dist/node_modules/micromark/lib/initialize/text.js +6 -8
  1453. package/dist/node_modules/micromark/lib/parse.js +18 -20
  1454. package/dist/node_modules/micromark/lib/postprocess.js +4 -6
  1455. package/dist/node_modules/micromark/lib/preprocess.js +4 -6
  1456. package/dist/node_modules/micromark-core-commonmark/lib/attention.js +18 -20
  1457. package/dist/node_modules/micromark-core-commonmark/lib/autolink.js +15 -17
  1458. package/dist/node_modules/micromark-core-commonmark/lib/blank-line.js +9 -11
  1459. package/dist/node_modules/micromark-core-commonmark/lib/block-quote.js +13 -15
  1460. package/dist/node_modules/micromark-core-commonmark/lib/character-escape.js +6 -8
  1461. package/dist/node_modules/micromark-core-commonmark/lib/character-reference.js +14 -16
  1462. package/dist/node_modules/micromark-core-commonmark/lib/code-fenced.js +21 -22
  1463. package/dist/node_modules/micromark-core-commonmark/lib/code-indented.js +15 -16
  1464. package/dist/node_modules/micromark-core-commonmark/lib/code-text.js +11 -13
  1465. package/dist/node_modules/micromark-core-commonmark/lib/content.js +17 -18
  1466. package/dist/node_modules/micromark-core-commonmark/lib/definition.js +29 -30
  1467. package/dist/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +6 -8
  1468. package/dist/node_modules/micromark-core-commonmark/lib/heading-atx.js +13 -15
  1469. package/dist/node_modules/micromark-core-commonmark/lib/html-flow.js +67 -68
  1470. package/dist/node_modules/micromark-core-commonmark/lib/html-text.js +64 -66
  1471. package/dist/node_modules/micromark-core-commonmark/lib/label-end.js +111 -112
  1472. package/dist/node_modules/micromark-core-commonmark/lib/label-start-image.js +6 -8
  1473. package/dist/node_modules/micromark-core-commonmark/lib/label-start-link.js +6 -8
  1474. package/dist/node_modules/micromark-core-commonmark/lib/line-ending.js +6 -8
  1475. package/dist/node_modules/micromark-core-commonmark/lib/list.js +31 -32
  1476. package/dist/node_modules/micromark-core-commonmark/lib/setext-underline.js +10 -12
  1477. package/dist/node_modules/micromark-core-commonmark/lib/thematic-break.js +9 -11
  1478. package/dist/node_modules/micromark-extension-gfm/index.js +14 -16
  1479. package/dist/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js +120 -122
  1480. package/dist/node_modules/micromark-extension-gfm-footnote/lib/syntax.js +31 -33
  1481. package/dist/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js +9 -11
  1482. package/dist/node_modules/micromark-extension-gfm-table/lib/edit-map.js +4 -6
  1483. package/dist/node_modules/micromark-extension-gfm-table/lib/infer.js +2 -4
  1484. package/dist/node_modules/micromark-extension-gfm-table/lib/syntax.js +34 -36
  1485. package/dist/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js +18 -20
  1486. package/dist/node_modules/micromark-extension-math/lib/math-flow.js +20 -21
  1487. package/dist/node_modules/micromark-extension-math/lib/math-text.js +9 -11
  1488. package/dist/node_modules/micromark-extension-math/lib/syntax.js +6 -8
  1489. package/dist/node_modules/micromark-factory-destination/index.js +8 -10
  1490. package/dist/node_modules/micromark-factory-label/index.js +5 -7
  1491. package/dist/node_modules/micromark-factory-space/index.js +5 -7
  1492. package/dist/node_modules/micromark-factory-title/index.js +6 -8
  1493. package/dist/node_modules/micromark-factory-whitespace/index.js +5 -7
  1494. package/dist/node_modules/micromark-util-character/index.js +12 -14
  1495. package/dist/node_modules/micromark-util-chunked/index.js +4 -6
  1496. package/dist/node_modules/micromark-util-classify-character/index.js +5 -7
  1497. package/dist/node_modules/micromark-util-combine-extensions/index.js +11 -13
  1498. package/dist/node_modules/micromark-util-decode-numeric-character-reference/index.js +2 -4
  1499. package/dist/node_modules/micromark-util-decode-string/index.js +9 -11
  1500. package/dist/node_modules/micromark-util-html-tag-name/index.js +2 -4
  1501. package/dist/node_modules/micromark-util-normalize-identifier/index.js +2 -4
  1502. package/dist/node_modules/micromark-util-resolve-all/index.js +2 -4
  1503. package/dist/node_modules/micromark-util-sanitize-uri/index.js +4 -6
  1504. package/dist/node_modules/micromark-util-subtokenize/index.js +8 -10
  1505. package/dist/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +8 -10
  1506. package/dist/node_modules/motion/dist/es/react.js +2 -2
  1507. package/dist/node_modules/nanoid/index.browser.js +4 -6
  1508. package/dist/node_modules/nanoid/url-alphabet/index.js +2 -4
  1509. package/dist/node_modules/property-information/index.js +23 -25
  1510. package/dist/node_modules/property-information/lib/aria.js +39 -41
  1511. package/dist/node_modules/property-information/lib/find.js +16 -18
  1512. package/dist/node_modules/property-information/lib/hast-to-react.js +2 -4
  1513. package/dist/node_modules/property-information/lib/html.js +94 -96
  1514. package/dist/node_modules/property-information/lib/normalize.js +2 -4
  1515. package/dist/node_modules/property-information/lib/svg.js +77 -79
  1516. package/dist/node_modules/property-information/lib/util/case-insensitive-transform.js +4 -6
  1517. package/dist/node_modules/property-information/lib/util/case-sensitive-transform.js +2 -4
  1518. package/dist/node_modules/property-information/lib/util/create.js +8 -10
  1519. package/dist/node_modules/property-information/lib/util/defined-info.js +11 -13
  1520. package/dist/node_modules/property-information/lib/util/info.js +3 -5
  1521. package/dist/node_modules/property-information/lib/util/merge.js +4 -6
  1522. package/dist/node_modules/property-information/lib/util/schema.js +3 -5
  1523. package/dist/node_modules/property-information/lib/util/types.js +14 -15
  1524. package/dist/node_modules/property-information/lib/xlink.js +3 -5
  1525. package/dist/node_modules/property-information/lib/xml.js +3 -5
  1526. package/dist/node_modules/property-information/lib/xmlns.js +5 -7
  1527. package/dist/node_modules/rehype-harden/dist/index.js +45 -47
  1528. package/dist/node_modules/rehype-katex/lib/index.js +23 -25
  1529. package/dist/node_modules/rehype-raw/lib/index.js +4 -6
  1530. package/dist/node_modules/rehype-sanitize/lib/index.js +4 -6
  1531. package/dist/node_modules/remark-gfm/lib/index.js +7 -9
  1532. package/dist/node_modules/remark-math/lib/index.js +7 -9
  1533. package/dist/node_modules/remark-parse/lib/index.js +4 -6
  1534. package/dist/node_modules/remark-rehype/lib/index.js +5 -7
  1535. package/dist/node_modules/remend/dist/index.js +324 -326
  1536. package/dist/node_modules/roughjs/bundled/rough.esm.js +875 -877
  1537. package/dist/node_modules/shiki/dist/bundle-full.js +12 -13
  1538. package/dist/node_modules/shiki/dist/chunk-CtajNgzt.js +8 -10
  1539. package/dist/node_modules/shiki/dist/engine-oniguruma.js +5 -7
  1540. package/dist/node_modules/shiki/dist/langs-bundle-full-DfKZStlK.js +5 -7
  1541. package/dist/node_modules/shiki/dist/themes.js +3 -5
  1542. package/dist/node_modules/shiki/dist/wasm.js +2 -2
  1543. package/dist/node_modules/space-separated-tokens/index.js +3 -5
  1544. package/dist/node_modules/streamdown/dist/chunk-BO2N2NFS.js +699 -701
  1545. package/dist/node_modules/streamdown/dist/highlighted-body-OFNGDK62.js +8 -10
  1546. package/dist/node_modules/streamdown/dist/index.js +1 -1
  1547. package/dist/node_modules/streamdown/dist/mermaid-GHXKKRXX.js +2 -2
  1548. package/dist/node_modules/streamdown/node_modules/marked/lib/marked.esm.js +712 -709
  1549. package/dist/node_modules/stringify-entities/lib/constant/dangerous.js +2 -4
  1550. package/dist/node_modules/stringify-entities/lib/core.js +16 -18
  1551. package/dist/node_modules/stringify-entities/lib/index.js +5 -7
  1552. package/dist/node_modules/stringify-entities/lib/util/format-smart.js +8 -10
  1553. package/dist/node_modules/stringify-entities/lib/util/to-decimal.js +4 -6
  1554. package/dist/node_modules/stringify-entities/lib/util/to-hexadecimal.js +4 -6
  1555. package/dist/node_modules/stringify-entities/lib/util/to-named.js +12 -14
  1556. package/dist/node_modules/style-to-js/cjs/index.js +7 -9
  1557. package/dist/node_modules/style-to-js/cjs/utilities.js +4 -6
  1558. package/dist/node_modules/style-to-object/cjs/index.js +6 -8
  1559. package/dist/node_modules/stylis/src/Enum.js +2 -4
  1560. package/dist/node_modules/stylis/src/Parser.js +36 -38
  1561. package/dist/node_modules/stylis/src/Serializer.js +15 -17
  1562. package/dist/node_modules/stylis/src/Tokenizer.js +51 -53
  1563. package/dist/node_modules/stylis/src/Utility.js +15 -17
  1564. package/dist/node_modules/trim-lines/index.js +8 -10
  1565. package/dist/node_modules/trough/lib/index.js +4 -6
  1566. package/dist/node_modules/ts-dedent/esm/index.js +2 -4
  1567. package/dist/node_modules/unified/lib/callable-instance.js +2 -4
  1568. package/dist/node_modules/unified/lib/index.js +101 -102
  1569. package/dist/node_modules/unified/node_modules/is-plain-obj/index.js +2 -4
  1570. package/dist/node_modules/unist-util-find-after/lib/index.js +4 -6
  1571. package/dist/node_modules/unist-util-is/lib/index.js +29 -31
  1572. package/dist/node_modules/unist-util-position/lib/index.js +5 -7
  1573. package/dist/node_modules/unist-util-stringify-position/lib/index.js +8 -10
  1574. package/dist/node_modules/unist-util-visit/lib/index.js +4 -6
  1575. package/dist/node_modules/unist-util-visit-parents/lib/color.js +2 -4
  1576. package/dist/node_modules/unist-util-visit-parents/lib/index.js +20 -21
  1577. package/dist/node_modules/uuid/dist/esm-browser/native.js +2 -3
  1578. package/dist/node_modules/uuid/dist/esm-browser/rng.js +6 -8
  1579. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +5 -7
  1580. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -10
  1581. package/dist/node_modules/vaul/dist/index.js +274 -276
  1582. package/dist/node_modules/vfile/lib/index.js +42 -44
  1583. package/dist/node_modules/vfile/lib/minpath.browser.js +20 -22
  1584. package/dist/node_modules/vfile/lib/minproc.browser.js +3 -5
  1585. package/dist/node_modules/vfile/lib/minurl.browser.js +6 -8
  1586. package/dist/node_modules/vfile/lib/minurl.shared.js +2 -4
  1587. package/dist/node_modules/vfile-location/lib/index.js +5 -7
  1588. package/dist/node_modules/vfile-message/lib/index.js +5 -7
  1589. package/dist/node_modules/vscode-jsonrpc/browser.js +6 -8
  1590. package/dist/node_modules/vscode-jsonrpc/lib/browser/main.js +9 -11
  1591. package/dist/node_modules/vscode-jsonrpc/lib/browser/ril.js +6 -8
  1592. package/dist/node_modules/vscode-jsonrpc/lib/common/api.js +26 -28
  1593. package/dist/node_modules/vscode-jsonrpc/lib/common/cancellation.js +15 -17
  1594. package/dist/node_modules/vscode-jsonrpc/lib/common/connection.js +11 -13
  1595. package/dist/node_modules/vscode-jsonrpc/lib/common/disposable.js +4 -6
  1596. package/dist/node_modules/vscode-jsonrpc/lib/common/events.js +6 -8
  1597. package/dist/node_modules/vscode-jsonrpc/lib/common/is.js +4 -6
  1598. package/dist/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +4 -6
  1599. package/dist/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +4 -6
  1600. package/dist/node_modules/vscode-jsonrpc/lib/common/messageReader.js +9 -11
  1601. package/dist/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +29 -31
  1602. package/dist/node_modules/vscode-jsonrpc/lib/common/messages.js +6 -8
  1603. package/dist/node_modules/vscode-jsonrpc/lib/common/ral.js +4 -6
  1604. package/dist/node_modules/vscode-jsonrpc/lib/common/semaphore.js +6 -8
  1605. package/dist/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +6 -8
  1606. package/dist/node_modules/vscode-languageserver-protocol/lib/browser/main.js +8 -10
  1607. package/dist/node_modules/vscode-languageserver-protocol/lib/common/api.js +21 -23
  1608. package/dist/node_modules/vscode-languageserver-protocol/lib/common/connection.js +6 -8
  1609. package/dist/node_modules/vscode-languageserver-protocol/lib/common/messages.js +6 -8
  1610. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +6 -8
  1611. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +6 -8
  1612. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +6 -8
  1613. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +6 -8
  1614. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +12 -14
  1615. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +6 -8
  1616. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +6 -8
  1617. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +6 -8
  1618. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +6 -8
  1619. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +6 -8
  1620. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +6 -8
  1621. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +53 -55
  1622. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +6 -8
  1623. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +6 -8
  1624. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +8 -10
  1625. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +10 -12
  1626. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +6 -8
  1627. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +6 -8
  1628. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +6 -8
  1629. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +6 -8
  1630. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +6 -8
  1631. package/dist/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +6 -8
  1632. package/dist/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +4 -6
  1633. package/dist/node_modules/vscode-languageserver-textdocument/lib/esm/main.js +19 -21
  1634. package/dist/node_modules/vscode-languageserver-types/lib/esm/main.js +847 -849
  1635. package/dist/node_modules/vscode-uri/lib/esm/index.js +4 -6
  1636. package/dist/node_modules/web-namespaces/index.js +2 -4
  1637. package/dist/node_modules/zwitch/index.js +5 -7
  1638. package/dist/packages/contracts/dist/enums/index.js +12 -14
  1639. package/dist/packages/contracts/dist/enums/registry.enum.js +4 -6
  1640. package/dist/packages/contracts/dist/enums/sort-order.enum.js +4 -6
  1641. package/dist/packages/contracts/dist/enums/user-type.enum.js +4 -6
  1642. package/dist/packages/contracts/dist/enums/workflow-state.enum.js +4 -6
  1643. package/dist/pages/DashboardPage.js +78 -59
  1644. package/dist/pages/DebugPage.js +17 -12
  1645. package/dist/pages/DebugWorkflowDetailsPage.js +105 -91
  1646. package/dist/pages/DebugWorkflowsPage.js +162 -125
  1647. package/dist/pages/EmbedWorkbenchPage.js +63 -48
  1648. package/dist/pages/PreviewWorkbenchPage.js +370 -271
  1649. package/dist/pages/RunsListPage.js +46 -43
  1650. package/dist/pages/RunsPage.js +33 -31
  1651. package/dist/pages/StudioLandingPage.js +132 -97
  1652. package/dist/pages/WorkbenchPage.js +65 -57
  1653. package/dist/pages/WorkflowDebugPage.js +96 -74
  1654. package/dist/pages/WorkspacePage.js +88 -72
  1655. package/dist/pages/WorkspaceRunsPage.js +75 -43
  1656. package/dist/pages/WorkspacesPage.js +17 -22
  1657. package/dist/providers/ComponentOverridesProvider.js +12 -9
  1658. package/dist/providers/InvalidationEventsProvider.js +35 -33
  1659. package/dist/providers/QueryProvider.js +18 -14
  1660. package/dist/providers/SseProvider.js +29 -28
  1661. package/dist/providers/StudioPreferencesProvider.js +54 -0
  1662. package/dist/providers/StudioProvider.js +19 -14
  1663. package/dist/routing/LocalRouter.js +9 -6
  1664. package/dist/services/createApiClient.js +5 -7
  1665. package/dist/services/eventEmitter.js +2 -3
  1666. package/dist/services/index.js +2 -2
  1667. package/dist/types/ai.types.js +5 -7
  1668. package/package.json +8 -8
  1669. package/dist/_virtual/_rolldown/runtime.js +0 -20
  1670. package/dist/features/documents/renderers/SecretInputRenderer.js +0 -89
  1671. package/dist/features/workbench/components/RemoteFileTabsBar.js +0 -19
  1672. package/dist/features/workbench/components/RemoteFileTree.js +0 -59
  1673. package/dist/features/workbench/components/WorkbenchFilesPanel.js +0 -56
  1674. package/dist/features/workbench/components/WorkbenchFloatingPanel.js +0 -40
  1675. package/dist/features/workbench/components/WorkbenchFlowPanel.js +0 -38
  1676. package/dist/features/workbench/components/WorkbenchSecretsPanel.js +0 -153
  1677. package/dist/features/workbench/providers/RemoteFileExplorerProvider.js +0 -145
  1678. package/dist/frontend/studio/node_modules/lodash/_Symbol.js +0 -9
  1679. package/dist/frontend/studio/node_modules/lodash/_baseGetTag.js +0 -15
  1680. package/dist/frontend/studio/node_modules/lodash/_baseTrim.js +0 -13
  1681. package/dist/frontend/studio/node_modules/lodash/_freeGlobal.js +0 -8
  1682. package/dist/frontend/studio/node_modules/lodash/_getRawTag.js +0 -19
  1683. package/dist/frontend/studio/node_modules/lodash/_objectToString.js +0 -12
  1684. package/dist/frontend/studio/node_modules/lodash/_root.js +0 -10
  1685. package/dist/frontend/studio/node_modules/lodash/_trimmedEndIndex.js +0 -13
  1686. package/dist/frontend/studio/node_modules/lodash/isObject.js +0 -12
  1687. package/dist/frontend/studio/node_modules/lodash/isObjectLike.js +0 -11
  1688. package/dist/frontend/studio/node_modules/lodash/isSymbol.js +0 -14
  1689. package/dist/frontend/studio/node_modules/lodash/now.js +0 -12
  1690. package/dist/frontend/studio/node_modules/lodash/toNumber.js +0 -24
  1691. package/dist/node_modules/@dagrejs/dagre/dist/dagre.esm.js +0 -1867
@@ -1,3 +1,2 @@
1
- var e = [Object.freeze(JSON.parse("{\"displayName\":\"Fortran (Free Form)\",\"fileTypes\":[\"f90\",\"F90\",\"f95\",\"F95\",\"f03\",\"F03\",\"f08\",\"F08\",\"f18\",\"F18\",\"fpp\",\"FPP\",\".pf\",\".PF\"],\"firstLineMatch\":\"(?i)-\\\\*- mode: fortran free -\\\\*-\",\"injections\":{\"source.fortran.free - ( string | comment | meta.preprocessor )\":{\"patterns\":[{\"include\":\"#line-continuation-operator\"},{\"include\":\"#preprocessor\"}]},\"string.quoted.double.fortran\":{\"patterns\":[{\"include\":\"#string-line-continuation-operator\"}]},\"string.quoted.single.fortran\":{\"patterns\":[{\"include\":\"#string-line-continuation-operator\"}]}},\"name\":\"fortran-free-form\",\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#include-statement\"},{\"include\":\"#import-statement\"},{\"include\":\"#block-data-definition\"},{\"include\":\"#function-definition\"},{\"include\":\"#module-definition\"},{\"include\":\"#program-definition\"},{\"include\":\"#submodule-definition\"},{\"include\":\"#subroutine-definition\"},{\"include\":\"#procedure-definition\"},{\"include\":\"#derived-type-definition\"},{\"include\":\"#enum-block-construct\"},{\"include\":\"#interface-block-constructs\"},{\"include\":\"#procedure-specification-statement\"},{\"include\":\"#type-specification-statements\"},{\"include\":\"#specification-statements\"},{\"include\":\"#control-constructs\"},{\"include\":\"#control-statements\"},{\"include\":\"#execution-statements\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}],\"repository\":{\"IO-item-list\":{\"begin\":\"(?i)(?=\\\\s*[\\\"'0-9a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!);])\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#brackets\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#variable\"}]},\"IO-keywords\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(?:(read)|(write))\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.read.fortran\"},\"2\":{\"name\":\"keyword.control.generic-spec.write.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.generic-spec.formatted.fortran\"},\"2\":{\"name\":\"keyword.control.generic-spec.unformatted.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(?:(formatted)|(unformatted))\\\\b\"},{\"include\":\"#invalid-word\"}]},\"IO-statements\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(format)(?=\\\\s*[!\\\\&(])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.format.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.IO.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-continuation-operator\"},{\"include\":\"#format-parentheses\"}]},{\"begin\":\"(?i)\\\\b(?:(backspace)|(close)|(endfile)|(inquire)|(open)|(read)|(rewind)|(write))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.backspace.fortran\"},\"2\":{\"name\":\"keyword.control.close.fortran\"},\"3\":{\"name\":\"keyword.control.endfile.fortran\"},\"4\":{\"name\":\"keyword.control.inquire.fortran\"},\"5\":{\"name\":\"keyword.control.open.fortran\"},\"6\":{\"name\":\"keyword.control.read.fortran\"},\"7\":{\"name\":\"keyword.control.rewind.fortran\"},\"8\":{\"name\":\"keyword.control.write.fortran\"},\"9\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.IO.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"},{\"include\":\"#IO-item-list\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.backspace.fortran\"},\"2\":{\"name\":\"keyword.control.endfile.fortran\"},\"3\":{\"name\":\"keyword.control.format.fortran\"},\"4\":{\"name\":\"keyword.control.print.fortran\"},\"5\":{\"name\":\"keyword.control.read.fortran\"},\"6\":{\"name\":\"keyword.control.rewind.fortran\"}},\"match\":\"(?i)\\\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\\\b\"},{\"begin\":\"(?i)\\\\b(?:(flush)|(wait))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flush.fortran\"},\"2\":{\"name\":\"keyword.control.wait.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flush.fortran\"}},\"match\":\"(?i)\\\\b(flush)\\\\b\"}]},\"abstract-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.fortran.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(abstract)\\\\b\"},\"abstract-interface-block-construct\":{\"begin\":\"(?i)\\\\b(abstract)\\\\s+(interface)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.attribute.fortran.modern\"},\"2\":{\"name\":\"keyword.control.interface.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran.modern\"}},\"name\":\"meta.interface.abstract.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"access-attribute\":{\"patterns\":[{\"include\":\"#private-attribute\"},{\"include\":\"#public-attribute\"}]},\"allocatable-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.allocatable.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(allocatable)\\\\b\"},\"allocate-statement\":{\"begin\":\"(?i)\\\\b(allocate)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.allocate.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.allocate.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"arithmetic-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.subtraction.fortran\"},\"2\":{\"name\":\"keyword.operator.addition.fortran\"},\"3\":{\"name\":\"keyword.operator.division.fortran\"},\"4\":{\"name\":\"keyword.operator.power.fortran\"},\"5\":{\"name\":\"keyword.operator.multiplication.fortran\"}},\"match\":\"(-)|(\\\\+)|/(?![/=\\\\\\\\])|(\\\\*\\\\*)|(\\\\*)\"},\"array-constructor\":{\"begin\":\"(?<!\\\\n)(?=\\\\s*(\\\\[|\\\\(/))\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.contructor.array\",\"patterns\":[{\"include\":\"#brackets\"},{\"begin\":\"\\\\s*(\\\\(/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"end\":\"(/\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]}]},\"assign-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(assign)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.assign.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.assign.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.to.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(to)\\\\b\"},{\"include\":\"$base\"}]}]},\"assignment-keyword\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(assignment)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.assignment.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#assignment-operator\"},{\"include\":\"#invalid-word\"}]},\"assignment-operator\":{\"match\":\"(?<![/<=>])(=)(?![=>])\",\"name\":\"keyword.operator.assignment.fortran\"},\"associate-construct\":{\"begin\":\"(?i)\\\\b(associate)\\\\b(?=\\\\s*\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"contentName\":\"meta.block.associate.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*associate)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"asynchronous-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.asynchronous.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(asynchronous)\\\\b\"},\"attribute-specification-statement\":{\"begin\":\"(?i)(?=\\\\b(?:allocatable|asynchronous|contiguous|external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\\\b|(bind|dimension|intent)\\\\s*\\\\(|(codimension)\\\\s*\\\\[)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#asynchronous-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#external-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#parameter-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#target-attribute\"},{\"include\":\"#value-attribute\"},{\"include\":\"#volatile-attribute\"},{\"begin\":\"(?=\\\\s*::)\",\"contentName\":\"meta.attribute-list.normal.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#name-list\"}]},\"block-construct\":{\"begin\":\"(?i)\\\\b(block)\\\\b(?!\\\\s*\\\\bdata\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"contentName\":\"meta.block.block.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*block)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"block-data-definition\":{\"begin\":\"(?i)\\\\b(block\\\\s*data)\\\\b(?:\\\\s+([a-z]\\\\w*)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.block-data.fortran\"},\"2\":{\"name\":\"entity.name.block-data.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*block\\\\s*data)(?:\\\\s+(\\\\2))?|(end))\\\\b(?:\\\\s*(\\\\S((?!\\\\n).)*))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end-block-data.fortran\"},\"2\":{\"name\":\"entity.name.block-data.fortran\"},\"3\":{\"name\":\"keyword.control.end-block-data.fortran\"},\"4\":{\"name\":\"invalid.error.block-data-definition.fortran\"}},\"name\":\"meta.block-data.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"brackets\":{\"begin\":\"\\\\s*(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"call-statement\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b(call)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.call.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.call.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\s*[a-z]\\\\w*\\\\s*%)\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-continuation-operator\"},{\"captures\":{\"1\":{\"name\":\"variable.other.fortran\"},\"2\":{\"name\":\"keyword.accessor.fortran\"}},\"match\":\"(?i)\\\\s*([a-z]\\\\w*)\\\\s*(%)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"match\":\"(?i)\\\\s*([a-z]\\\\w*)\"},{\"include\":\"#parentheses-dummy-variables\"}]},{\"include\":\"#intrinsic-subroutines\"},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b(?=\\\\s*[\\\\n!;])\"},{\"include\":\"$base\"}]}]},\"character-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(character)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"3\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\b(character)\\\\b(?:\\\\s*(\\\\*)\\\\s*(\\\\d*))?\"}]},\"codimension-attribute\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(codimension)(?=\\\\s*\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.codimension.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"include\":\"#brackets\"}]},\"comments\":{\"begin\":\"!\",\"end\":\"(?=\\\\n)\",\"name\":\"comment.line.fortran\"},\"common-statement\":{\"begin\":\"(?i)\\\\b(common)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.common.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"$base\"}]},\"concurrent-attribute\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(concurrent)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},\"constants\":{\"patterns\":[{\"include\":\"#logical-constant\"},{\"include\":\"#numeric-constant\"},{\"include\":\"#string-constant\"}]},\"contiguous-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.contigous.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(contiguous)\\\\b\"},\"continue-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(continue)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.continue.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.continue.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]}]},\"control-constructs\":{\"patterns\":[{\"include\":\"#named-control-constructs\"},{\"include\":\"#unnamed-control-constructs\"}]},\"control-statements\":{\"patterns\":[{\"include\":\"#assign-statement\"},{\"include\":\"#call-statement\"},{\"include\":\"#continue-statement\"},{\"include\":\"#cycle-statement\"},{\"include\":\"#entry-statement\"},{\"include\":\"#error-stop-statement\"},{\"include\":\"#exit-statement\"},{\"include\":\"#goto-statement\"},{\"include\":\"#pause-statement\"},{\"include\":\"#return-statement\"},{\"include\":\"#stop-statement\"},{\"include\":\"#where-statement\"},{\"include\":\"#image-control-statement\"}]},\"cpp-numeric-constant\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"beginCaptures\":{},\"end\":\"$\",\"endCaptures\":{},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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[Xx])(\\\\h(?:\\\\h|((?<=\\\\h)'(?=\\\\h)))*)?((?<=\\\\h)\\\\.|\\\\.(?=\\\\h))(\\\\h(?:\\\\h|((?<=\\\\h)'(?=\\\\h)))*)?(?:(?<!')([Pp])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?([FLfl](?!\\\\w))?((?:\\\\w(?<![Pp\\\\h])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\G(?=[.0-9])(?!0[BXbx])([0-9](?:[0-9]|((?<=\\\\h)'(?=\\\\h)))*)?((?<=[0-9])\\\\.|\\\\.(?=[0-9]))([0-9](?:[0-9]|((?<=\\\\h)'(?=\\\\h)))*)?(?:(?<!')([Ee])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?([FLfl](?!\\\\w))?((?:\\\\w(?<![0-9Ee])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"\\\\G(0[Bb])([01](?:[01]|((?<=\\\\h)'(?=\\\\h)))*)((?:[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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"\\\\G(0)((?:[0-7]|((?<=\\\\h)'(?=\\\\h)))+)((?:[Uu]|[Uu]ll?|[Uu]LL?|ll?[Uu]?|LL?[Uu]?|[Ff])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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[Xx])(\\\\h(?:\\\\h|((?<=\\\\h)'(?=\\\\h)))*)(?:(?<!')([Pp])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?((?:[Uu]|[Uu]ll?|[Uu]LL?|ll?[Uu]?|LL?[Uu]?|[Ff])(?!\\\\w))?((?:\\\\w(?<![Pp\\\\h])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\G(?=[.0-9])(?!0[BXbx])([0-9](?:[0-9]|((?<=\\\\h)'(?=\\\\h)))*)(?:(?<!')([Ee])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?((?:[Uu]|[Uu]ll?|[Uu]LL?|ll?[Uu]?|LL?[Uu]?|[Ff])(?!\\\\w))?((?:\\\\w(?<![0-9Ee])\\\\w*)?)$\"},{\"match\":\"(?:['.0-9A-Z_a-z]|(?<=[EPep])[-+])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}},\"match\":\"(?<!\\\\w)\\\\.?\\\\d(?:['.0-9A-Z_a-z]|(?<=[EPep])[-+])*\"},\"critical-construct\":{\"begin\":\"(?i)\\\\b(critical)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"contentName\":\"meta.block.critical.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*critical)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"cycle-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(cycle)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.cycle.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.fortran\",\"patterns\":[]}]},\"data-statement\":{\"begin\":\"(?i)\\\\b(data)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.data.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"$base\"}]},\"deallocate-statement\":{\"begin\":\"(?i)\\\\b(deallocate)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.deallocate.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.deallocate.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"deferred-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.deferred.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(deferred)\\\\b\"},\"derived-type\":{\"begin\":\"(?i)\\\\b(?:(class)|(type))\\\\s*(\\\\()\\\\s*(([a-z]\\\\w*)|\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.fortran\"},\"2\":{\"name\":\"storage.type.type.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"entity.name.type.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.specification.type.derived.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"derived-type-component-attribute-specification\":{\"begin\":\"(?i)(?=\\\\s*\\\\b(?:private|sequence)\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#sequence-attribute\"},{\"include\":\"#invalid-character\"}]},\"derived-type-component-parameter-specification\":{\"captures\":{\"1\":{\"name\":\"storage.type.integer.fortran\"},\"2\":{\"name\":\"punctuation.comma.fortran\"},\"3\":{\"name\":\"keyword.other.attribute.derived-type.parameter.fortran\"},\"4\":{\"name\":\"keyword.operator.double-colon.fortran\"},\"5\":{\"name\":\"entity.name.derived-type.parameter.fortran\"}},\"match\":\"(?i)\\\\b(integer)\\\\s*(,)\\\\s*(kind|len)\\\\s*(?:(::)\\\\s*([a-z]\\\\w*)?)?\\\\s*(?=[\\\\n!;])\"},\"derived-type-component-procedure-specification\":{\"begin\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.derived-type-component-procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#pass-attribute\"},{\"include\":\"#nopass-attribute\"},{\"include\":\"#invalid-word\"},{\"include\":\"#pointer-attribute\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"derived-type-component-type-specification\":{\"begin\":\"(?i)(?=\\\\b(?:character|class|complex|double\\\\s*precision|double\\\\s*complex|integer|logical|real|type)\\\\b(?![^\\\\n!\\\"':;]*\\\\bfunction\\\\b))\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.derived-type.fortran\",\"patterns\":[{\"include\":\"#types\"},{\"include\":\"#line-continuation-operator\"},{\"begin\":\"(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.derived-type-component-type.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#name-list\"}]},\"derived-type-contains-attribute-specification\":{\"begin\":\"(?i)(?=\\\\bprivate\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#invalid-character\"}]},\"derived-type-contains-final-procedure-specification\":{\"begin\":\"(?i)\\\\b(final)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.final-procedure.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.final.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(::))\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"name\":\"meta.attribute-list.derived-type-contains-final-procedure.fortran\",\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#procedure-name\"}]},\"derived-type-contains-generic-procedure-specification\":{\"begin\":\"(?i)\\\\b(generic)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.procedure.generic.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.generic.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.derived-type-contains-generic-procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#IO-keywords\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#procedure-name\"},{\"include\":\"#pointer-operators\"}]}]},\"derived-type-contains-procedure-specification\":{\"begin\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.derived-type-contains-procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"name\":\"meta.something.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#deferred-attribute\"},{\"include\":\"#non-overridable-attribute\"},{\"include\":\"#nopass-attribute\"},{\"include\":\"#pass-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"derived-type-definition\":{\"begin\":\"(?i)\\\\b(type)\\\\b(?!\\\\s*(\\\\(|is\\\\b|=))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.type.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.derived-type.definition.fortran\",\"patterns\":[{\"begin\":\"\\\\G(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.derived-type.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#abstract-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#extends-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.fortran\"}},\"end\":\"(?i)(?:^|(?<=;))\\\\s*(end\\\\s*type)(?:\\\\s+(?:(\\\\1)|(\\\\w+)))?\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endtype.fortran\"},\"2\":{\"name\":\"entity.name.type.fortran\"},\"3\":{\"name\":\"invalid.error.derived-type.fortran\"}},\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#comments\"},{\"begin\":\"(?i)^(?!\\\\s*\\\\b(?:contains|end\\\\s*type)\\\\b)\",\"end\":\"(?i)^(?=\\\\s*\\\\b(?:contains|end\\\\s*type)\\\\b)\",\"name\":\"meta.block.specification.derived-type.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#derived-type-component-attribute-specification\"},{\"include\":\"#derived-type-component-parameter-specification\"},{\"include\":\"#derived-type-component-procedure-specification\"},{\"include\":\"#derived-type-component-type-specification\"}]},{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end\\\\s*type\\\\b)\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#derived-type-contains-attribute-specification\"},{\"include\":\"#derived-type-contains-final-procedure-specification\"},{\"include\":\"#derived-type-contains-generic-procedure-specification\"},{\"include\":\"#derived-type-contains-procedure-specification\"}]}]}]},\"derived-type-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.other.selector.fortran\"}},\"match\":\"\\\\s*(%)\"},\"dimension-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(dimension)(?=\\\\s*\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.dimension.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"do-construct\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.enddo.fortran\"}},\"match\":\"(?i)\\\\b(end\\\\s*do)\\\\b\"},{\"begin\":\"(?i)\\\\b(do)\\\\s+(\\\\d{1,5})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.do.fortran\"},\"2\":{\"name\":\"constant.numeric.fortran\"}},\"end\":\"(?i)(?:^|(?<=;))(?=\\\\s*\\\\b\\\\2\\\\b)\",\"name\":\"meta.do.labeled.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G(?:\\\\s*(,)|(?!\\\\s*[\\\\n!;]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#concurrent-attribute\"},{\"include\":\"#while-attribute\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\b(do)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.do.fortran\"}},\"end\":\"(?i)\\\\b(?:(continue)|(end\\\\s*do))\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.continue.fortran\"},\"2\":{\"name\":\"keyword.control.enddo.fortran\"}},\"name\":\"meta.block.do.unlabeled.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G(?:\\\\s*(,)|(?!\\\\s*[\\\\n!;]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.loop-control.fortran\",\"patterns\":[{\"include\":\"#concurrent-attribute\"},{\"include\":\"#while-attribute\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?!\\\\s*\\\\b(continue|end\\\\s*do)\\\\b)\",\"end\":\"(?i)(?=\\\\s*\\\\b(continue|end\\\\s*do)\\\\b)\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"dummy-variable\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.fortran\"}},\"match\":\"(?i)(?:^|(?<=[\\\\&(,]))\\\\s*([a-z]\\\\w*)\"},\"dummy-variable-list\":{\"begin\":\"\\\\G\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.fortran\"}},\"name\":\"meta.dummy-variable-list\",\"patterns\":[{\"include\":\"#dummy-variable\"}]},\"elemental-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.elemental.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(elemental)\\\\b\"},\"entry-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(entry)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.entry.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.entry.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.entry.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#result-statement\"},{\"include\":\"#language-binding-attribute\"}]}]}]},\"enum-block-construct\":{\"begin\":\"(?i)\\\\b(enum)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.enum.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*enum)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end-enum.fortran\"}},\"name\":\"meta.enum.fortran\",\"patterns\":[{\"begin\":\"\\\\G\\\\s*(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#language-binding-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)(?!\\\\s*\\\\b(end\\\\s*enum)\\\\b)\",\"end\":\"(?i)(?=\\\\b(end\\\\s*enum)\\\\b)\",\"name\":\"meta.block.specification.enum.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)\\\\b(enumerator)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.enumerator.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.enumerator-specification.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.enum.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#comments\"},{\"include\":\"#name-list\"}]}]}]},\"equivalence-statement\":{\"begin\":\"(?i)\\\\b(equivalence)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.common.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"\\\\G|(,)\",\"beginCaptures\":{\"1\":{\"name\":\"puntuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!,;])\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"error-stop-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(error\\\\s+stop)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.errorstop.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.errorstop.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#string-operators\"},{\"include\":\"#variable\"},{\"include\":\"#invalid-character\"}]},\"event-statement\":{\"begin\":\"(?i)\\\\b(event (?:post|wait))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.event.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.event.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"execution-statements\":{\"patterns\":[{\"include\":\"#allocate-statement\"},{\"include\":\"#deallocate-statement\"},{\"include\":\"#IO-statements\"},{\"include\":\"#nullify-statement\"}]},\"exit-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(exit)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exit.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.exit.fortran\",\"patterns\":[]},\"explicit-interface-block-construct\":{\"begin\":\"(?i)\\\\b(interface)\\\\b(?=\\\\s*[\\\\n!;])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.interface.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran.modern\"}},\"name\":\"meta.interface.explicit.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"extends-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(extends)\\\\s*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"patterns\":[{\"match\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"name\":\"entity.name.type.fortran\"}]},\"external-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.external.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(external)\\\\b\"},\"fail-image-statement\":{\"captures\":{\"1\":{\"name\":\"keyword.control.fail-image.fortran\"}},\"match\":\"\\\\b(fail image)\\\\b\",\"name\":\"meta.statement.fail-image.fortran\"},\"forall-construct\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\b(forall)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.forall.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.loop-control.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?<=\\\\))(?=\\\\s*[\\\\n!;])\",\"end\":\"(?i)\\\\b(end\\\\s*forall)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endforall.fortran\"}},\"name\":\"meta.block.forall.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?<=\\\\))(?!\\\\s*[\\\\n!;])\",\"end\":\"\\\\n\",\"name\":\"meta.statement.control.forall.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]},\"form-team-statement\":{\"begin\":\"(?i)\\\\b(form team)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.form-team.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.form-team.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"format-descriptor\":{\"begin\":\"\\\\(/\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"contentName\":\"meta.format-descriptor.fortran\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.right.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"format-descriptors\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.format-descriptor.fortran\"}},\"match\":\"(?i)(?:\\\\b|(?<=\\\\d)|(?<=P))(EN|ES|EX|DT|DC|DP|RC|RD|RN|RP|RU|RZ|BN|BZ|SP|SS|TL|TR|[ABD-GILOPQSTXZ])(?=$|[^A-Z_a-z]|[D-G](?i))\"},{\"match\":\"/\",\"name\":\"keyword.operator.format.newline.fortran\"},{\"match\":\":\",\"name\":\"keyword.operator.format.separator.fortran\"},{\"match\":\"[$\\\\\\\\]\",\"name\":\"keyword.other.format-descriptor.nonstandard.fortran\"},{\"match\":\"(?i)(?:\\\\b|(?<=\\\\d))\\\\d+H\",\"name\":\"keyword.other.format-descriptor.legacy.fortran\"}]},\"format-parentheses\":{\"begin\":\"\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-continuation-operator\"},{\"match\":\"(?:\\\\b|[-+])\\\\d+(?=[A-Za-z])\",\"name\":\"constant.numeric.fortran\"},{\"include\":\"#format-descriptors\"},{\"include\":\"#format-parentheses\"},{\"include\":\"#parentheses-common\"}]},\"function-definition\":{\"begin\":\"(?i)(?=([^\\\\n!\\\"':;](?!\\\\bend)(?!\\\\bsubroutine\\\\b))*\\\\bfunction\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.function.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\G\\\\s*(?!\\\\bfunction\\\\b))\",\"end\":\"(?i)(?=\\\\bfunction\\\\b)\",\"name\":\"meta.attribute-list.function.fortran\",\"patterns\":[{\"include\":\"#elemental-attribute\"},{\"include\":\"#module-attribute\"},{\"include\":\"#pure-attribute\"},{\"include\":\"#recursive-attribute\"},{\"include\":\"#types\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\b(function)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.function.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fortran\"}},\"end\":\"(?i)\\\\s*\\\\b(?:(end\\\\s*function)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endfunction.fortran\"},\"2\":{\"name\":\"entity.name.function.fortran\"},\"3\":{\"name\":\"keyword.other.endfunction.fortran\"},\"4\":{\"name\":\"invalid.error.function.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.function.first-line.fortran\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#result-statement\"},{\"include\":\"#language-binding-attribute\"}]},{\"begin\":\"(?i)(?!\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*function\\\\b))\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*function\\\\b))\",\"name\":\"meta.block.specification.function.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=end(?:\\\\s*[\\\\n!;]|\\\\s*function\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]}]},\"generic-interface-block-construct\":{\"begin\":\"(?i)\\\\b(interface)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.interface.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.interface.generic.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(assignment)\\\\s*(\\\\()\\\\s*(?:(=)|(\\\\S.*))\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.assignment.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"keyword.operator.assignment.fortran\"},\"4\":{\"name\":\"invalid.error.generic-interface.fortran\"},\"5\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(\\\\1)\\\\b\\\\s*(\\\\()\\\\s*(?:(\\\\3)|(\\\\S.*))\\\\s*(\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.assignment.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.operator.assignment.fortran\"},\"5\":{\"name\":\"invalid.error.generic-interface-end.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(operator)\\\\s*(\\\\()\\\\s*(?:(\\\\.[a-z]+\\\\.|==|/=|>=|[<>]|<=|[-+/]|//|\\\\*\\\\*?)|(\\\\S.*))\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.operator.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"keyword.operator.fortran\"},\"4\":{\"name\":\"invalid.error.generic-interface-block-op.fortran\"},\"5\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(\\\\1)\\\\b\\\\s*(\\\\()\\\\s*(?:(\\\\3)|(\\\\S.*))\\\\s*(\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.operator.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.operator.fortran\"},\"5\":{\"name\":\"invalid.error.generic-interface-block-op-end.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(?:(read)|(write))\\\\s*(\\\\()\\\\s*(?:(formatted)|(unformatted)|(\\\\S.*))\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.read.fortran\"},\"2\":{\"name\":\"keyword.other.write.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.other.formatted.fortran\"},\"5\":{\"name\":\"keyword.other.unformatted.fortran\"},\"6\":{\"name\":\"invalid.error.generic-interface-block.fortran\"},\"7\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(?:(\\\\2)|(\\\\3))\\\\b\\\\s*(\\\\()\\\\s*(?:(\\\\4)|(\\\\5)|(\\\\S.*))\\\\s*(\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.read.fortran\"},\"3\":{\"name\":\"keyword.other.write.fortran\"},\"4\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"5\":{\"name\":\"keyword.other.formatted.fortran\"},\"6\":{\"name\":\"keyword.other.unformatted.fortran\"},\"7\":{\"name\":\"invalid.error.generic-interface-block-end.fortran\"},\"8\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(\\\\1)\\\\b)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"entity.name.function.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]}]},\"goto-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(go\\\\s*to)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.goto.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.goto.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"if-construct\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#logical-control-expression\"},{\"begin\":\"(?i)\\\\s*\\\\b(then)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.then.fortran\"}},\"contentName\":\"meta.block.if.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*if)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endif.fortran\"}},\"patterns\":[{\"begin\":\"(?i)\\\\b(else\\\\s*if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elseif.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.then.fortran\"},\"2\":{\"name\":\"meta.label.elseif.fortran\"}},\"match\":\"(?i)\\\\b(then)\\\\b(\\\\s*[a-z]\\\\w*)?\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\b(else)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.else.fortran\"}},\"end\":\"(?i)(?=\\\\b(end\\\\s*if)\\\\b)\",\"patterns\":[{\"begin\":\"(?!(\\\\s*([\\\\n!;])))\",\"end\":\"\\\\s*(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.label.else.fortran\"},\"2\":{\"name\":\"invalid.error.label.else.fortran\"}},\"match\":\"(?i)\\\\s*([a-z]\\\\w*)?\\\\s*\\\\b(\\\\w*)\\\\b\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)(?!\\\\b(end\\\\s*if)\\\\b)\",\"end\":\"(?i)(?=\\\\b(end\\\\s*if)\\\\b)\",\"patterns\":[{\"include\":\"$base\"}]}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.if.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"image-control-statement\":{\"patterns\":[{\"include\":\"#sync-all-statement\"},{\"include\":\"#sync-statement\"},{\"include\":\"#event-statement\"},{\"include\":\"#form-team-statement\"},{\"include\":\"#fail-image-statement\"}]},\"implicit-statement\":{\"begin\":\"(?i)\\\\b(implicit)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.implicit.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.implicit.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.none.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(none)\\\\b\"},{\"include\":\"$base\"}]},\"import-statement\":{\"begin\":\"(?i)\\\\b(import)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.include.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*(?:(::)|(?=[a-z]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#name-list\"}]},{\"begin\":\"\\\\G\\\\s*(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.all.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(all)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.none.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(none)\\\\b\"},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(only)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.only.fortran\"},\"2\":{\"name\":\"keyword.other.colon.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#name-list\"}]},{\"include\":\"#invalid-word\"}]}]},\"include-statement\":{\"begin\":\"(?i)\\\\b(include)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.include.fortran\",\"patterns\":[{\"include\":\"#string-constant\"},{\"include\":\"#invalid-character\"}]},\"intent-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(intent)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.intent.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.intent.in-out.fortran\"},\"2\":{\"name\":\"storage.modifier.intent.in.fortran\"},\"3\":{\"name\":\"storage.modifier.intent.out.fortran\"}},\"match\":\"(?i)\\\\b(?:(in\\\\s*out)|(in)|(out))\\\\b\"},{\"include\":\"#invalid-word\"}]},\"interface-block-constructs\":{\"patterns\":[{\"include\":\"#abstract-interface-block-construct\"},{\"include\":\"#explicit-interface-block-construct\"},{\"include\":\"#generic-interface-block-construct\"}]},\"interface-procedure-statement\":{\"begin\":\"(?i)(?=[^\\\\n!\\\"';]*\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.procedure.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\G\\\\s*(?!\\\\bprocedure\\\\b))\",\"end\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"name\":\"meta.attribute-list.interface.fortran\",\"patterns\":[{\"include\":\"#module-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\s*\\\\b(procedure)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.procedure.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"match\":\"\\\\G\\\\s*(::)\"},{\"include\":\"#procedure-name-list\"}]}]},\"intrinsic-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.intrinsic.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(intrinsic)\\\\b\"},\"intrinsic-functions\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr|findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound|leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar|shift[alr]|storage_size|this_image|trailz|ucobound)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(bessel_[jy][01n]|erf(c(_scaled)?)?|gamma|log_gamma)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(command_argument_count|extends_type_of|is_iostat_end|is_iostat_eor|new_line|same_type_as|selected_char_kind)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(ieee_(class|copy_sign|is_(finite|nan|negative|normal)|logb|next_after|rem|rint|scalb|selected_real_kind|support_(datatype|denormal|divide|inf|io|nan|rounding|sqrt|standard|underflow_control)|unordered|value))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(ieee_support_(flag|halting))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(c_(associated|funloc|loc|sizeof))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(compiler_(options|version))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(null)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(achar|adjustl|adjustr|all|allocated|associated|any|bit_size|btest|ceiling|count|cshift|digits|dot_product|eoshift|epsilon|exponent|floor|fraction|huge|iachar|iand|ibclr|ibits|ibset|ieor|ior|ishftc?|kind|lbound|len_trim|logical|matmul|maxexponent|maxloc|maxval|merge|minexponent|minloc|minval|modulo|nearest|not|pack|precision|present|product|radix|range|repeat|reshape|rrspacing|scale|scan|selected_(int|real)_kind|set_exponent|shape|size|spacing|spread|sum|tiny|transfer|transpose|trim|ubound|unpack|verify)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b([cdi]?abs|acos|[ad]int|[ad]nint|aimag|amax[01]|amin[01]|d?asin|d?atan|d?atan2|char|conjg|[cd]?cos|d?cosh|cmplx|dble|i?dim|dmax1|dmin1|dprod|[cd]?exp|float|ichar|idint|ifix|index|int|len|lge|lgt|lle|llt|[acd]?log|[ad]?log10|max[01]?|min[01]?|[ad]?mod|(id)?nint|real|[di]?sign|[cd]?sin|d?sinh|sngl|[cd]?sqrt|d?tan|d?tanh)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"intrinsic-subroutines\":{\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(date_and_time|mvbits|random_number|random_seed|system_clock)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(cpu_time)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ieee_([gs]et)_(rounding|underflow)_mode)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ieee_([gs]et)_(flag|halting_mode|status))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(c_f_(p(?:|rocp)ointer))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(execute_command_line|get_command|get_command_argument|get_environment_variable|move_alloc)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"invalid-character\":{\"match\":\"(?i)[^\\\\n!;\\\\s]+\",\"name\":\"invalid.error.character.fortran\"},\"invalid-word\":{\"match\":\"(?i)\\\\b\\\\w+\\\\b\",\"name\":\"invalid.error.word.fortran\"},\"language-binding-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(bind)\\\\s*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.bind.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"patterns\":[{\"match\":\"(?i)\\\\b(c)\\\\b\",\"name\":\"variable.parameter.fortran\"},{\"include\":\"#dummy-variable\"},{\"include\":\"$base\"}]},\"line-continuation-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"match\":\"(?:^|(?<=;))\\\\s*(&)\"},{\"begin\":\"\\\\s*(&)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"contentName\":\"meta.line-continuation.fortran\",\"end\":\"(?i)^(?:\\\\s*(&))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\S[^!]*\",\"name\":\"invalid.error.line-cont.fortran\"}]}]},\"logical-constant\":{\"captures\":{\"1\":{\"name\":\"constant.language.logical.false.fortran\"},\"2\":{\"name\":\"constant.language.logical.true.fortran\"}},\"match\":\"(?i)\\\\s*(?:(\\\\.false\\\\.)|(\\\\.true\\\\.))\"},\"logical-control-expression\":{\"begin\":\"\\\\G(?=\\\\s*\\\\()\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.expression.control.logical.fortran\",\"patterns\":[{\"include\":\"#parentheses\"}]},\"logical-operators\":{\"patterns\":[{\"match\":\"(?i)(\\\\s*\\\\.(and|eqv??|le|lt|ge|gt|ne|neqv|not|or)\\\\.)\",\"name\":\"keyword.logical.fortran\"},{\"match\":\"(==|/=|>=|(?<!=)>|<=?)\",\"name\":\"keyword.logical.fortran.modern\"}]},\"logical-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(logical)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.logical.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"3\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\b(logical)\\\\b(?:\\\\s*(\\\\*)\\\\s*(\\\\d*))?\"}]},\"module-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.module.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(module)\\\\b(?=\\\\s*(?:[\\\\n!;]|[^\\\\n!\\\"';]*\\\\b(?:function|procedure|subroutine)\\\\b))\"},\"module-definition\":{\"begin\":\"(?i)(?=\\\\b(module)\\\\b)(?![^\\\\n!\\\"';]*\\\\b(?:function|procedure|subroutine)\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.module.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.program.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(module)\\\\b\"},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.class.module.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*module)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endmodule.fortran\"},\"2\":{\"name\":\"entity.name.class.module.fortran\"},\"3\":{\"name\":\"keyword.other.endmodule.fortran\"},\"4\":{\"name\":\"invalid.error.module-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*module\\\\b))\",\"name\":\"meta.block.specification.module.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end(?:\\\\s*[\\\\n!;]|\\\\s*module\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"name-list\":{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!);])\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#brackets\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#variable\"}]},\"named-control-constructs\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)([a-z]\\\\w*)\\\\s*(:)(?=\\\\s*(?:associate|block(?!\\\\s*data)|critical|do|forall|if|select\\\\s*case|select\\\\s*type|select\\\\s*rank|where)\\\\b)\",\"contentName\":\"meta.named-construct.fortran.modern\",\"end\":\"(?i)(?!\\\\s*\\\\b(?:associate|block(?!\\\\s*data)|critical|do|forall|if|select\\\\s*case|select\\\\s*type|select\\\\s*rank|where)\\\\b)(?:\\\\b(\\\\1)\\\\b)?([^\\\\n!;\\\\s]*?)?(?=\\\\s*[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"meta.label.end.name.fortran\"},\"2\":{\"name\":\"invalid.error.named-control-constructs.fortran.modern\"}},\"patterns\":[{\"include\":\"#unnamed-control-constructs\"}]},\"namelist-statement\":{\"begin\":\"(?i)\\\\b(namelist)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.namelist.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"$base\"}]},\"non-intrinsic-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non-intrinsic.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(non_intrinsic)\\\\b\"},\"non-overridable-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non-overridable.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(non_overridable)\\\\b\"},\"nopass-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.nopass.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(nopass)\\\\b\"},\"nullify-statement\":{\"begin\":\"(?i)\\\\b(nullify)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.nullify.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.nullify.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"numeric-constant\":{\"match\":\"(?i)[-+]?(\\\\b\\\\d+\\\\.?\\\\d*|\\\\.\\\\d+)(_\\\\w+|d[-+]?\\\\d+|e[-+]?\\\\d+(_\\\\w+)?)?(?![_a-z])\",\"name\":\"constant.numeric.fortran\"},\"numeric-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(?:(complex)|(double\\\\s*precision)|(double\\\\s*complex)|(integer)|(real))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.complex.fortran\"},\"2\":{\"name\":\"storage.type.double.fortran\"},\"3\":{\"name\":\"storage.type.doublecomplex.fortran\"},\"4\":{\"name\":\"storage.type.integer.fortran\"},\"5\":{\"name\":\"storage.type.real.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.complex.fortran\"},\"2\":{\"name\":\"storage.type.double.fortran\"},\"3\":{\"name\":\"storage.type.doublecomplex.fortran\"},\"4\":{\"name\":\"storage.type.integer.fortran\"},\"5\":{\"name\":\"storage.type.real.fortran\"},\"6\":{\"name\":\"storage.type.dimension.fortran\"},\"7\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"8\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\b(?:(complex)|(double\\\\s*precision)|(double\\\\s*complex)|(integer)|(real)|(dimension))\\\\b(?:\\\\s*(\\\\*)\\\\s*(\\\\d*))?\"}]},\"operator-keyword\":{\"begin\":\"(?i)\\\\s*\\\\b(operator)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.operator.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#arithmetic-operators\"},{\"include\":\"#logical-operators\"},{\"include\":\"#user-defined-operators\"},{\"include\":\"#invalid-word\"}]},\"operators\":{\"patterns\":[{\"include\":\"#arithmetic-operators\"},{\"include\":\"#assignment-operator\"},{\"include\":\"#derived-type-operators\"},{\"include\":\"#logical-operators\"},{\"include\":\"#pointer-operators\"},{\"include\":\"#string-operators\"},{\"include\":\"#user-defined-operators\"}]},\"optional-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.optional.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(optional)\\\\b\"},\"parameter-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.parameter.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(parameter)\\\\b\"},\"parentheses\":{\"begin\":\"\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#parentheses-common\"}]},\"parentheses-common\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"parentheses-dummy-variables\":{\"begin\":\"\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#procedure-call-dummy-variable\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#parentheses-common\"}]},\"pass-attribute\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(pass)\\\\s*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.pass.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"patterns\":[]},{\"captures\":{\"1\":{\"name\":\"storage.modifier.pass.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(pass)\\\\b\"}]},\"pause-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(pause)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.pause.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.pause.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#invalid-character\"}]},\"pointer-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.pointer.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(pointer)\\\\b\"},\"pointer-operators\":{\"match\":\"(=>)\",\"name\":\"keyword.other.point.fortran\"},\"preprocessor\":{\"begin\":\"^\\\\s*(#:?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.indicator.fortran\"}},\"end\":\"\\\\n\",\"name\":\"meta.preprocessor\",\"patterns\":[{\"include\":\"#preprocessor-if-construct\"},{\"include\":\"#preprocessor-statements\"}]},\"preprocessor-arithmetic-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.subtraction.fortran\"},\"2\":{\"name\":\"keyword.operator.addition.fortran\"},\"3\":{\"name\":\"keyword.operator.division.fortran\"},\"4\":{\"name\":\"keyword.operator.multiplication.fortran\"}},\"match\":\"(-)|(\\\\+)|(/)|(\\\\*)\"},\"preprocessor-assignment-operator\":{\"match\":\"(?<!=)(=)(?!=)\",\"name\":\"keyword.operator.assignment.preprocessor.fortran\"},\"preprocessor-comments\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.preprocessor\"},\"preprocessor-constants\":{\"patterns\":[{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-string-constant\"}]},\"preprocessor-define-statement\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(define)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.define.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.macro.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-constants\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"preprocessor-defined-function\":{\"captures\":{\"1\":{\"name\":\"keyword.control.preprocessor.defined.fortran\"}},\"match\":\"(?i)\\\\b(defined)\\\\b\"},\"preprocessor-error-statement\":{\"begin\":\"(?i)\\\\G\\\\s*(error)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.error.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.macro.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"preprocessor-if-construct\":{\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.if.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.conditional.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-defined-function\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ifdef)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.ifdef.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ifndef)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.ifndef.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(else)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.else.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(elif)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.elif.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-defined-function\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(endif)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.endif.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"}]}]},\"preprocessor-include-statement\":{\"begin\":\"(?i)\\\\G\\\\s*(include)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.include.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.include.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.other.lt-gt.include.preprocessor.fortran\"},{\"include\":\"#line-continuation-operator\"}]},\"preprocessor-line-continuation-operator\":{\"begin\":\"\\\\s*(\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.preprocessor.fortran\"}},\"end\":\"(?i)^\"},\"preprocessor-logical-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.preprocessor.and.fortran\"},\"2\":{\"name\":\"keyword.operator.logical.preprocessor.equals.fortran\"},\"3\":{\"name\":\"keyword.operator.logical.preprocessor.not_equals.fortran\"},\"4\":{\"name\":\"keyword.operator.logical.preprocessor.or.fortran\"},\"5\":{\"name\":\"keyword.operator.logical.preprocessor.less_eq.fortran\"},\"6\":{\"name\":\"keyword.operator.logical.preprocessor.more_eq.fortran\"},\"7\":{\"name\":\"keyword.operator.logical.preprocessor.less.fortran\"},\"8\":{\"name\":\"keyword.operator.logical.preprocessor.more.fortran\"},\"9\":{\"name\":\"keyword.operator.logical.preprocessor.complementary.fortran\"},\"10\":{\"name\":\"keyword.operator.logical.preprocessor.xor.fortran\"},\"11\":{\"name\":\"keyword.operator.logical.preprocessor.bitand.fortran\"},\"12\":{\"name\":\"keyword.operator.logical.preprocessor.not.fortran\"},\"13\":{\"name\":\"keyword.operator.logical.preprocessor.bitor.fortran\"}},\"match\":\"(&&)|(==)|(!=)|(\\\\|\\\\|)|(<=)|(>=)|(<)|(>)|(~)|(\\\\^)|(&)|(!)|(\\\\|)\",\"name\":\"keyword.operator.logical.preprocessor.fortran\"},\"preprocessor-operators\":{\"patterns\":[{\"include\":\"#preprocessor-line-continuation-operator\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"}]},\"preprocessor-pragma-statement\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(pragma)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.pragma.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.pragma.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"}]},\"preprocessor-statements\":{\"patterns\":[{\"include\":\"#preprocessor-define-statement\"},{\"include\":\"#preprocessor-error-statement\"},{\"include\":\"#preprocessor-include-statement\"},{\"include\":\"#preprocessor-preprocessor-pragma-statement\"},{\"include\":\"#preprocessor-undefine-statement\"}]},\"preprocessor-string-constant\":{\"patterns\":[{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.double.include.preprocessor.fortran\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.single.include.preprocessor.fortran\"}]},\"preprocessor-undefine-statement\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(undef)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.undef.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.undef.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"private-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.private.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(private)\\\\b\"},\"procedure-call-dummy-variable\":{\"match\":\"(?i)\\\\s*([a-z]\\\\w*)(?=\\\\s*=)(?!\\\\s*==)\",\"name\":\"variable.parameter.dummy-variable.fortran.modern\"},\"procedure-definition\":{\"begin\":\"(?i)(?=[^\\\\n!\\\"';]*\\\\bmodule\\\\s+procedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.procedure.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(module\\\\s+procedure)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.procedure.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.procedure.fortran\"}},\"end\":\"(?i)\\\\s*\\\\b(?:(end\\\\s*procedure)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endprocedure.fortran\"},\"2\":{\"name\":\"entity.name.function.procedure.fortran\"},\"3\":{\"name\":\"keyword.other.endprocedure.fortran\"},\"4\":{\"name\":\"invalid.error.procedure-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.first-line.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]},{\"begin\":\"(?i)(?!\\\\s*(?:contains\\\\b|end\\\\s*[\\\\n!;]|end\\\\s*procedure\\\\b))\",\"end\":\"(?i)(?=\\\\s*(?:contains\\\\b|end\\\\s*[\\\\n!;]|end\\\\s*procedure\\\\b))\",\"name\":\"meta.block.specification.procedure.fortran\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?i)\\\\s*(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end(?:\\\\s*[\\\\n!;]|\\\\s*procedure\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$self\"}]}]}]}]},\"procedure-name\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.procedure.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\"},\"procedure-name-list\":{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?!\\\\s*\\\\n)\",\"end\":\"(,)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"patterns\":[{\"include\":\"#procedure-name\"},{\"include\":\"#pointer-operators\"}]}]},\"procedure-specification-statement\":{\"begin\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"procedure-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(procedure)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.procedure.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#types\"},{\"include\":\"#procedure-name\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.procedure.fortran\"}},\"match\":\"(?i)\\\\b(procedure)\\\\b\"}]},\"program-definition\":{\"begin\":\"(?i)(?=\\\\b(program)\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.program.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.program.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(program)\\\\b\"},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.program.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*program)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endprogram.fortran\"},\"2\":{\"name\":\"entity.name.program.fortran\"},\"3\":{\"name\":\"keyword.control.endprogram.fortran\"},\"4\":{\"name\":\"invalid.error.program-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*program\\\\b))\",\"name\":\"meta.block.specification.program.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=end(?:\\\\s*[\\\\n!;]|\\\\s*program\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"protected-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.protected.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(protected)\\\\b\"},\"public-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.public.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(public)\\\\b\"},\"pure-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.impure.fortran\"},\"2\":{\"name\":\"storage.modifier.pure.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(?:(impure)|(pure))\\\\b\"},\"recursive-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non_recursive.fortran\"},\"2\":{\"name\":\"storage.modifier.recursive.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(?:(non_recursive)|(recursive))\\\\b\"},\"result-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(result)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.result.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#dummy-variable\"}]},\"return-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(return)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.return.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.return.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]},\"save-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.save.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(save)\\\\b\"},\"select-case-construct\":{\"begin\":\"(?i)\\\\b(select\\\\s*case)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selectcase.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*select)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.case.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\b(case)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.fortran\"}},\"end\":\"(?i)(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(default)\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"select-rank-construct\":{\"begin\":\"(?i)\\\\b(select\\\\s*rank)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selectrank.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*select)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.rank.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\b(rank)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.rank.fortran\"}},\"end\":\"(?i)(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(default)\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"select-type-construct\":{\"begin\":\"(?i)\\\\b(select\\\\s*type)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selecttype.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*select)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.type.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\b(?:(class)|(type))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.class.fortran\"},\"2\":{\"name\":\"keyword.control.type.fortran\"}},\"end\":\"(?i)(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(default)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.is.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(is)\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"sequence-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.sequence.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(sequence)\\\\b\"},\"specification-statements\":{\"patterns\":[{\"include\":\"#attribute-specification-statement\"},{\"include\":\"#common-statement\"},{\"include\":\"#data-statement\"},{\"include\":\"#equivalence-statement\"},{\"include\":\"#implicit-statement\"},{\"include\":\"#namelist-statement\"},{\"include\":\"#use-statement\"}]},\"stop-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(stop)\\\\b(?:\\\\s*\\\\b([a-z]\\\\w*)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.stop.fortran\"},\"2\":{\"name\":\"meta.label.stop.stop\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.stop.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#string-operators\"},{\"include\":\"#invalid-character\"}]},\"string-constant\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fortran\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fortran\"}},\"name\":\"string.quoted.single.fortran\",\"patterns\":[{\"match\":\"''\",\"name\":\"constant.character.escape.apostrophe.fortran\"}]},{\"applyEndPatternLast\":1,\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fortran\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fortran\"}},\"name\":\"string.quoted.double.fortran\",\"patterns\":[{\"match\":\"\\\"\\\"\",\"name\":\"constant.character.escape.quote.fortran\"}]}]},\"string-line-continuation-operator\":{\"begin\":\"(&)(?=\\\\s*\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"end\":\"(?i)^(?:(?=\\\\s*[^!\\\\&\\\\s])|\\\\s*(&))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\S.*\",\"name\":\"invalid.error.string-line-cont.fortran\"}]},\"string-operators\":{\"match\":\"(//)\",\"name\":\"keyword.other.concatination.fortran\"},\"submodule-definition\":{\"begin\":\"(?i)(?=\\\\b(submodule)\\\\s*\\\\()\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.submodule.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(submodule)\\\\s*(\\\\()\\\\s*(\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.submodule.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"entity.name.class.submodule.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"patterns\":[]},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.module.submodule.fortran\"}},\"end\":\"(?i)\\\\s*\\\\b(?:(end\\\\s*submodule)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endsubmodule.fortran\"},\"2\":{\"name\":\"entity.name.module.submodule.fortran\"},\"3\":{\"name\":\"keyword.other.endsubmodule.fortran\"},\"4\":{\"name\":\"invalid.error.submodule.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*submodule\\\\b))\",\"name\":\"meta.block.specification.submodule.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end(?:\\\\s*[\\\\n!;]|\\\\s*submodule\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"subroutine-definition\":{\"begin\":\"(?i)(?=([^\\\\n!\\\"':;](?!\\\\bend))*\\\\bsubroutine\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.subroutine.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\G\\\\s*(?!\\\\bsubroutine\\\\b))\",\"end\":\"(?i)(?=\\\\bsubroutine\\\\b)\",\"name\":\"meta.attribute-list.subroutine.fortran\",\"patterns\":[{\"include\":\"#elemental-attribute\"},{\"include\":\"#module-attribute\"},{\"include\":\"#pure-attribute\"},{\"include\":\"#recursive-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\s*\\\\b(subroutine)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.subroutine.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*subroutine)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endsubroutine.fortran\"},\"2\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"3\":{\"name\":\"keyword.other.endsubroutine.fortran\"},\"4\":{\"name\":\"invalid.error.subroutine.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.first-line.fortran\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#language-binding-attribute\"}]},{\"begin\":\"(?i)(?!\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*subroutine\\\\b))\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*subroutine\\\\b))\",\"name\":\"meta.block.specification.subroutine.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=end(?:\\\\s*[\\\\n!;]|\\\\s*subroutine\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]}]},\"sync-all-statement\":{\"begin\":\"(?i)\\\\b(sync (?:all|memory))(\\\\s*(?=\\\\())?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sync-all-memory.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.sync-all-memory.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"sync-statement\":{\"begin\":\"(?i)\\\\b(sync (?:images|team))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sync-images-team.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.sync-images-team.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"target-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.target.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(target)\\\\b\"},\"type-specification-statements\":{\"begin\":\"(?i)(?=\\\\b(?:character|class|complex|double\\\\s*precision|double\\\\s*complex|integer|logical|real|type|dimension)\\\\b(?![^\\\\n!\\\"':;]*\\\\bfunction\\\\b))\",\"end\":\"(?=[\\\\n!);])\",\"name\":\"meta.specification.type.fortran\",\"patterns\":[{\"include\":\"#types\"},{\"begin\":\"(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.type-specification-statements.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#asynchronous-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#external-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#parameter-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#target-attribute\"},{\"include\":\"#value-attribute\"},{\"include\":\"#volatile-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#name-list\"}]},\"types\":{\"patterns\":[{\"include\":\"#character-type\"},{\"include\":\"#derived-type\"},{\"include\":\"#logical-type\"},{\"include\":\"#numeric-type\"}]},\"unnamed-control-constructs\":{\"patterns\":[{\"include\":\"#associate-construct\"},{\"include\":\"#block-construct\"},{\"include\":\"#critical-construct\"},{\"include\":\"#do-construct\"},{\"include\":\"#forall-construct\"},{\"include\":\"#if-construct\"},{\"include\":\"#select-case-construct\"},{\"include\":\"#select-type-construct\"},{\"include\":\"#select-rank-construct\"},{\"include\":\"#where-construct\"}]},\"use-statement\":{\"begin\":\"(?i)\\\\b(use)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.use.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.use.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.namelist.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#non-intrinsic-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.class.module.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(only\\\\s*:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.only.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#operator-keyword\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#operator-keyword\"},{\"include\":\"$base\"}]}]}]}]},\"user-defined-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.user-defined.fortran\"}},\"match\":\"(?i)\\\\s*(\\\\.[a-z]+\\\\.)\"},\"value-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.value.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(value)\\\\b\"},\"variable\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\b(?=[a-z])\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.parameter.fortran\",\"patterns\":[{\"include\":\"#brackets\"},{\"include\":\"#derived-type-operators\"},{\"include\":\"#parentheses-dummy-variables\"},{\"include\":\"#word\"}]},\"volatile-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.volatile.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(volatile)\\\\b\"},\"where-construct\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\b(where)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.where.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"include\":\"#logical-control-expression\"},{\"begin\":\"(?<=\\\\))(?=\\\\s*[\\\\n!;])\",\"end\":\"(?i)\\\\b(end\\\\s*where)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endwhere.fortran\"}},\"name\":\"meta.block.where.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(else\\\\s*where)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elsewhere.fortran\"}},\"end\":\"\\\\s*(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"captures\":{\"1\":{\"name\":\"meta.label.elsewhere.fortran\"}},\"match\":\"(?i)(\\\\s*[a-z]\\\\w*)?\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?<=\\\\))(?!\\\\s*[\\\\n!;])\",\"end\":\"\\\\n\",\"name\":\"meta.statement.control.where.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"while-attribute\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(while)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},\"word\":{\"patterns\":[{\"match\":\"(?i)(?:\\\\G|(?<=%))\\\\s*\\\\b([a-z]\\\\w*)\\\\b\"}]}},\"scopeName\":\"source.fortran.free\",\"aliases\":[\"f90\",\"f95\",\"f03\",\"f08\",\"f18\"]}"))];
2
- //#endregion
3
- export { e as default };
1
+ var fortran_free_form_default = [Object.freeze(JSON.parse("{\"displayName\":\"Fortran (Free Form)\",\"fileTypes\":[\"f90\",\"F90\",\"f95\",\"F95\",\"f03\",\"F03\",\"f08\",\"F08\",\"f18\",\"F18\",\"fpp\",\"FPP\",\".pf\",\".PF\"],\"firstLineMatch\":\"(?i)-\\\\*- mode: fortran free -\\\\*-\",\"injections\":{\"source.fortran.free - ( string | comment | meta.preprocessor )\":{\"patterns\":[{\"include\":\"#line-continuation-operator\"},{\"include\":\"#preprocessor\"}]},\"string.quoted.double.fortran\":{\"patterns\":[{\"include\":\"#string-line-continuation-operator\"}]},\"string.quoted.single.fortran\":{\"patterns\":[{\"include\":\"#string-line-continuation-operator\"}]}},\"name\":\"fortran-free-form\",\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#include-statement\"},{\"include\":\"#import-statement\"},{\"include\":\"#block-data-definition\"},{\"include\":\"#function-definition\"},{\"include\":\"#module-definition\"},{\"include\":\"#program-definition\"},{\"include\":\"#submodule-definition\"},{\"include\":\"#subroutine-definition\"},{\"include\":\"#procedure-definition\"},{\"include\":\"#derived-type-definition\"},{\"include\":\"#enum-block-construct\"},{\"include\":\"#interface-block-constructs\"},{\"include\":\"#procedure-specification-statement\"},{\"include\":\"#type-specification-statements\"},{\"include\":\"#specification-statements\"},{\"include\":\"#control-constructs\"},{\"include\":\"#control-statements\"},{\"include\":\"#execution-statements\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}],\"repository\":{\"IO-item-list\":{\"begin\":\"(?i)(?=\\\\s*[\\\"'0-9a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!);])\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#brackets\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#variable\"}]},\"IO-keywords\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(?:(read)|(write))\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.read.fortran\"},\"2\":{\"name\":\"keyword.control.generic-spec.write.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.generic-spec.formatted.fortran\"},\"2\":{\"name\":\"keyword.control.generic-spec.unformatted.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(?:(formatted)|(unformatted))\\\\b\"},{\"include\":\"#invalid-word\"}]},\"IO-statements\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(format)(?=\\\\s*[!\\\\&(])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.format.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.IO.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-continuation-operator\"},{\"include\":\"#format-parentheses\"}]},{\"begin\":\"(?i)\\\\b(?:(backspace)|(close)|(endfile)|(inquire)|(open)|(read)|(rewind)|(write))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.backspace.fortran\"},\"2\":{\"name\":\"keyword.control.close.fortran\"},\"3\":{\"name\":\"keyword.control.endfile.fortran\"},\"4\":{\"name\":\"keyword.control.inquire.fortran\"},\"5\":{\"name\":\"keyword.control.open.fortran\"},\"6\":{\"name\":\"keyword.control.read.fortran\"},\"7\":{\"name\":\"keyword.control.rewind.fortran\"},\"8\":{\"name\":\"keyword.control.write.fortran\"},\"9\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.IO.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"},{\"include\":\"#IO-item-list\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.backspace.fortran\"},\"2\":{\"name\":\"keyword.control.endfile.fortran\"},\"3\":{\"name\":\"keyword.control.format.fortran\"},\"4\":{\"name\":\"keyword.control.print.fortran\"},\"5\":{\"name\":\"keyword.control.read.fortran\"},\"6\":{\"name\":\"keyword.control.rewind.fortran\"}},\"match\":\"(?i)\\\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\\\b\"},{\"begin\":\"(?i)\\\\b(?:(flush)|(wait))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flush.fortran\"},\"2\":{\"name\":\"keyword.control.wait.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flush.fortran\"}},\"match\":\"(?i)\\\\b(flush)\\\\b\"}]},\"abstract-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.fortran.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(abstract)\\\\b\"},\"abstract-interface-block-construct\":{\"begin\":\"(?i)\\\\b(abstract)\\\\s+(interface)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.attribute.fortran.modern\"},\"2\":{\"name\":\"keyword.control.interface.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran.modern\"}},\"name\":\"meta.interface.abstract.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"access-attribute\":{\"patterns\":[{\"include\":\"#private-attribute\"},{\"include\":\"#public-attribute\"}]},\"allocatable-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.allocatable.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(allocatable)\\\\b\"},\"allocate-statement\":{\"begin\":\"(?i)\\\\b(allocate)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.allocate.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.allocate.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"arithmetic-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.subtraction.fortran\"},\"2\":{\"name\":\"keyword.operator.addition.fortran\"},\"3\":{\"name\":\"keyword.operator.division.fortran\"},\"4\":{\"name\":\"keyword.operator.power.fortran\"},\"5\":{\"name\":\"keyword.operator.multiplication.fortran\"}},\"match\":\"(-)|(\\\\+)|/(?![/=\\\\\\\\])|(\\\\*\\\\*)|(\\\\*)\"},\"array-constructor\":{\"begin\":\"(?<!\\\\n)(?=\\\\s*(\\\\[|\\\\(/))\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.contructor.array\",\"patterns\":[{\"include\":\"#brackets\"},{\"begin\":\"\\\\s*(\\\\(/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"end\":\"(/\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]}]},\"assign-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(assign)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.assign.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.assign.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.to.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(to)\\\\b\"},{\"include\":\"$base\"}]}]},\"assignment-keyword\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(assignment)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.assignment.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#assignment-operator\"},{\"include\":\"#invalid-word\"}]},\"assignment-operator\":{\"match\":\"(?<![/<=>])(=)(?![=>])\",\"name\":\"keyword.operator.assignment.fortran\"},\"associate-construct\":{\"begin\":\"(?i)\\\\b(associate)\\\\b(?=\\\\s*\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"contentName\":\"meta.block.associate.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*associate)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"asynchronous-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.asynchronous.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(asynchronous)\\\\b\"},\"attribute-specification-statement\":{\"begin\":\"(?i)(?=\\\\b(?:allocatable|asynchronous|contiguous|external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\\\b|(bind|dimension|intent)\\\\s*\\\\(|(codimension)\\\\s*\\\\[)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#asynchronous-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#external-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#parameter-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#target-attribute\"},{\"include\":\"#value-attribute\"},{\"include\":\"#volatile-attribute\"},{\"begin\":\"(?=\\\\s*::)\",\"contentName\":\"meta.attribute-list.normal.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#name-list\"}]},\"block-construct\":{\"begin\":\"(?i)\\\\b(block)\\\\b(?!\\\\s*\\\\bdata\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"contentName\":\"meta.block.block.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*block)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"block-data-definition\":{\"begin\":\"(?i)\\\\b(block\\\\s*data)\\\\b(?:\\\\s+([a-z]\\\\w*)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.block-data.fortran\"},\"2\":{\"name\":\"entity.name.block-data.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*block\\\\s*data)(?:\\\\s+(\\\\2))?|(end))\\\\b(?:\\\\s*(\\\\S((?!\\\\n).)*))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end-block-data.fortran\"},\"2\":{\"name\":\"entity.name.block-data.fortran\"},\"3\":{\"name\":\"keyword.control.end-block-data.fortran\"},\"4\":{\"name\":\"invalid.error.block-data-definition.fortran\"}},\"name\":\"meta.block-data.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"brackets\":{\"begin\":\"\\\\s*(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"call-statement\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b(call)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.call.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.call.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\s*[a-z]\\\\w*\\\\s*%)\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-continuation-operator\"},{\"captures\":{\"1\":{\"name\":\"variable.other.fortran\"},\"2\":{\"name\":\"keyword.accessor.fortran\"}},\"match\":\"(?i)\\\\s*([a-z]\\\\w*)\\\\s*(%)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"match\":\"(?i)\\\\s*([a-z]\\\\w*)\"},{\"include\":\"#parentheses-dummy-variables\"}]},{\"include\":\"#intrinsic-subroutines\"},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b(?=\\\\s*[\\\\n!;])\"},{\"include\":\"$base\"}]}]},\"character-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(character)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"3\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\b(character)\\\\b(?:\\\\s*(\\\\*)\\\\s*(\\\\d*))?\"}]},\"codimension-attribute\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(codimension)(?=\\\\s*\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.codimension.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"include\":\"#brackets\"}]},\"comments\":{\"begin\":\"!\",\"end\":\"(?=\\\\n)\",\"name\":\"comment.line.fortran\"},\"common-statement\":{\"begin\":\"(?i)\\\\b(common)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.common.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"$base\"}]},\"concurrent-attribute\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(concurrent)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},\"constants\":{\"patterns\":[{\"include\":\"#logical-constant\"},{\"include\":\"#numeric-constant\"},{\"include\":\"#string-constant\"}]},\"contiguous-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.contigous.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(contiguous)\\\\b\"},\"continue-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(continue)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.continue.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.continue.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]}]},\"control-constructs\":{\"patterns\":[{\"include\":\"#named-control-constructs\"},{\"include\":\"#unnamed-control-constructs\"}]},\"control-statements\":{\"patterns\":[{\"include\":\"#assign-statement\"},{\"include\":\"#call-statement\"},{\"include\":\"#continue-statement\"},{\"include\":\"#cycle-statement\"},{\"include\":\"#entry-statement\"},{\"include\":\"#error-stop-statement\"},{\"include\":\"#exit-statement\"},{\"include\":\"#goto-statement\"},{\"include\":\"#pause-statement\"},{\"include\":\"#return-statement\"},{\"include\":\"#stop-statement\"},{\"include\":\"#where-statement\"},{\"include\":\"#image-control-statement\"}]},\"cpp-numeric-constant\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"beginCaptures\":{},\"end\":\"$\",\"endCaptures\":{},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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[Xx])(\\\\h(?:\\\\h|((?<=\\\\h)'(?=\\\\h)))*)?((?<=\\\\h)\\\\.|\\\\.(?=\\\\h))(\\\\h(?:\\\\h|((?<=\\\\h)'(?=\\\\h)))*)?(?:(?<!')([Pp])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?([FLfl](?!\\\\w))?((?:\\\\w(?<![Pp\\\\h])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\G(?=[.0-9])(?!0[BXbx])([0-9](?:[0-9]|((?<=\\\\h)'(?=\\\\h)))*)?((?<=[0-9])\\\\.|\\\\.(?=[0-9]))([0-9](?:[0-9]|((?<=\\\\h)'(?=\\\\h)))*)?(?:(?<!')([Ee])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?([FLfl](?!\\\\w))?((?:\\\\w(?<![0-9Ee])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"\\\\G(0[Bb])([01](?:[01]|((?<=\\\\h)'(?=\\\\h)))*)((?:[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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"\\\\G(0)((?:[0-7]|((?<=\\\\h)'(?=\\\\h)))+)((?:[Uu]|[Uu]ll?|[Uu]LL?|ll?[Uu]?|LL?[Uu]?|[Ff])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"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[Xx])(\\\\h(?:\\\\h|((?<=\\\\h)'(?=\\\\h)))*)(?:(?<!')([Pp])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?((?:[Uu]|[Uu]ll?|[Uu]LL?|ll?[Uu]?|LL?[Uu]?|[Ff])(?!\\\\w))?((?:\\\\w(?<![Pp\\\\h])\\\\w*)?)$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=\\\\h)'(?=\\\\h)\",\"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\":\"(?<=\\\\h)'(?=\\\\h)\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\G(?=[.0-9])(?!0[BXbx])([0-9](?:[0-9]|((?<=\\\\h)'(?=\\\\h)))*)(?:(?<!')([Ee])(\\\\+?)(-?)([0-9](?:[0-9]|(?<=\\\\h)'(?=\\\\h))*))?((?:[Uu]|[Uu]ll?|[Uu]LL?|ll?[Uu]?|LL?[Uu]?|[Ff])(?!\\\\w))?((?:\\\\w(?<![0-9Ee])\\\\w*)?)$\"},{\"match\":\"(?:['.0-9A-Z_a-z]|(?<=[EPep])[-+])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}},\"match\":\"(?<!\\\\w)\\\\.?\\\\d(?:['.0-9A-Z_a-z]|(?<=[EPep])[-+])*\"},\"critical-construct\":{\"begin\":\"(?i)\\\\b(critical)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"contentName\":\"meta.block.critical.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*critical)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"cycle-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(cycle)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.cycle.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.fortran\",\"patterns\":[]}]},\"data-statement\":{\"begin\":\"(?i)\\\\b(data)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.data.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"$base\"}]},\"deallocate-statement\":{\"begin\":\"(?i)\\\\b(deallocate)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.deallocate.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.deallocate.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"deferred-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.deferred.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(deferred)\\\\b\"},\"derived-type\":{\"begin\":\"(?i)\\\\b(?:(class)|(type))\\\\s*(\\\\()\\\\s*(([a-z]\\\\w*)|\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.fortran\"},\"2\":{\"name\":\"storage.type.type.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"entity.name.type.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.specification.type.derived.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"derived-type-component-attribute-specification\":{\"begin\":\"(?i)(?=\\\\s*\\\\b(?:private|sequence)\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#sequence-attribute\"},{\"include\":\"#invalid-character\"}]},\"derived-type-component-parameter-specification\":{\"captures\":{\"1\":{\"name\":\"storage.type.integer.fortran\"},\"2\":{\"name\":\"punctuation.comma.fortran\"},\"3\":{\"name\":\"keyword.other.attribute.derived-type.parameter.fortran\"},\"4\":{\"name\":\"keyword.operator.double-colon.fortran\"},\"5\":{\"name\":\"entity.name.derived-type.parameter.fortran\"}},\"match\":\"(?i)\\\\b(integer)\\\\s*(,)\\\\s*(kind|len)\\\\s*(?:(::)\\\\s*([a-z]\\\\w*)?)?\\\\s*(?=[\\\\n!;])\"},\"derived-type-component-procedure-specification\":{\"begin\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.derived-type-component-procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#pass-attribute\"},{\"include\":\"#nopass-attribute\"},{\"include\":\"#invalid-word\"},{\"include\":\"#pointer-attribute\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"derived-type-component-type-specification\":{\"begin\":\"(?i)(?=\\\\b(?:character|class|complex|double\\\\s*precision|double\\\\s*complex|integer|logical|real|type)\\\\b(?![^\\\\n!\\\"':;]*\\\\bfunction\\\\b))\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.derived-type.fortran\",\"patterns\":[{\"include\":\"#types\"},{\"include\":\"#line-continuation-operator\"},{\"begin\":\"(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.derived-type-component-type.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#name-list\"}]},\"derived-type-contains-attribute-specification\":{\"begin\":\"(?i)(?=\\\\bprivate\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#invalid-character\"}]},\"derived-type-contains-final-procedure-specification\":{\"begin\":\"(?i)\\\\b(final)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.final-procedure.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.final.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(::))\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"name\":\"meta.attribute-list.derived-type-contains-final-procedure.fortran\",\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#procedure-name\"}]},\"derived-type-contains-generic-procedure-specification\":{\"begin\":\"(?i)\\\\b(generic)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.procedure.generic.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.generic.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.derived-type-contains-generic-procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#IO-keywords\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#procedure-name\"},{\"include\":\"#pointer-operators\"}]}]},\"derived-type-contains-procedure-specification\":{\"begin\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.derived-type-contains-procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"name\":\"meta.something.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#deferred-attribute\"},{\"include\":\"#non-overridable-attribute\"},{\"include\":\"#nopass-attribute\"},{\"include\":\"#pass-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"derived-type-definition\":{\"begin\":\"(?i)\\\\b(type)\\\\b(?!\\\\s*(\\\\(|is\\\\b|=))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.type.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.derived-type.definition.fortran\",\"patterns\":[{\"begin\":\"\\\\G(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.derived-type.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#abstract-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#extends-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.fortran\"}},\"end\":\"(?i)(?:^|(?<=;))\\\\s*(end\\\\s*type)(?:\\\\s+(?:(\\\\1)|(\\\\w+)))?\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endtype.fortran\"},\"2\":{\"name\":\"entity.name.type.fortran\"},\"3\":{\"name\":\"invalid.error.derived-type.fortran\"}},\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#comments\"},{\"begin\":\"(?i)^(?!\\\\s*\\\\b(?:contains|end\\\\s*type)\\\\b)\",\"end\":\"(?i)^(?=\\\\s*\\\\b(?:contains|end\\\\s*type)\\\\b)\",\"name\":\"meta.block.specification.derived-type.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#derived-type-component-attribute-specification\"},{\"include\":\"#derived-type-component-parameter-specification\"},{\"include\":\"#derived-type-component-procedure-specification\"},{\"include\":\"#derived-type-component-type-specification\"}]},{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end\\\\s*type\\\\b)\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#derived-type-contains-attribute-specification\"},{\"include\":\"#derived-type-contains-final-procedure-specification\"},{\"include\":\"#derived-type-contains-generic-procedure-specification\"},{\"include\":\"#derived-type-contains-procedure-specification\"}]}]}]},\"derived-type-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.other.selector.fortran\"}},\"match\":\"\\\\s*(%)\"},\"dimension-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(dimension)(?=\\\\s*\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.dimension.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"do-construct\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.enddo.fortran\"}},\"match\":\"(?i)\\\\b(end\\\\s*do)\\\\b\"},{\"begin\":\"(?i)\\\\b(do)\\\\s+(\\\\d{1,5})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.do.fortran\"},\"2\":{\"name\":\"constant.numeric.fortran\"}},\"end\":\"(?i)(?:^|(?<=;))(?=\\\\s*\\\\b\\\\2\\\\b)\",\"name\":\"meta.do.labeled.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G(?:\\\\s*(,)|(?!\\\\s*[\\\\n!;]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#concurrent-attribute\"},{\"include\":\"#while-attribute\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\b(do)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.do.fortran\"}},\"end\":\"(?i)\\\\b(?:(continue)|(end\\\\s*do))\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.continue.fortran\"},\"2\":{\"name\":\"keyword.control.enddo.fortran\"}},\"name\":\"meta.block.do.unlabeled.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G(?:\\\\s*(,)|(?!\\\\s*[\\\\n!;]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.loop-control.fortran\",\"patterns\":[{\"include\":\"#concurrent-attribute\"},{\"include\":\"#while-attribute\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?!\\\\s*\\\\b(continue|end\\\\s*do)\\\\b)\",\"end\":\"(?i)(?=\\\\s*\\\\b(continue|end\\\\s*do)\\\\b)\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"dummy-variable\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.fortran\"}},\"match\":\"(?i)(?:^|(?<=[\\\\&(,]))\\\\s*([a-z]\\\\w*)\"},\"dummy-variable-list\":{\"begin\":\"\\\\G\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.fortran\"}},\"name\":\"meta.dummy-variable-list\",\"patterns\":[{\"include\":\"#dummy-variable\"}]},\"elemental-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.elemental.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(elemental)\\\\b\"},\"entry-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(entry)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.entry.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.entry.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.entry.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#result-statement\"},{\"include\":\"#language-binding-attribute\"}]}]}]},\"enum-block-construct\":{\"begin\":\"(?i)\\\\b(enum)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.enum.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*enum)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end-enum.fortran\"}},\"name\":\"meta.enum.fortran\",\"patterns\":[{\"begin\":\"\\\\G\\\\s*(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#language-binding-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)(?!\\\\s*\\\\b(end\\\\s*enum)\\\\b)\",\"end\":\"(?i)(?=\\\\b(end\\\\s*enum)\\\\b)\",\"name\":\"meta.block.specification.enum.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)\\\\b(enumerator)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.enumerator.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.enumerator-specification.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.enum.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#comments\"},{\"include\":\"#name-list\"}]}]}]},\"equivalence-statement\":{\"begin\":\"(?i)\\\\b(equivalence)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.common.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"\\\\G|(,)\",\"beginCaptures\":{\"1\":{\"name\":\"puntuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!,;])\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"error-stop-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(error\\\\s+stop)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.errorstop.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.errorstop.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#string-operators\"},{\"include\":\"#variable\"},{\"include\":\"#invalid-character\"}]},\"event-statement\":{\"begin\":\"(?i)\\\\b(event (?:post|wait))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.event.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.event.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"execution-statements\":{\"patterns\":[{\"include\":\"#allocate-statement\"},{\"include\":\"#deallocate-statement\"},{\"include\":\"#IO-statements\"},{\"include\":\"#nullify-statement\"}]},\"exit-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(exit)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exit.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.exit.fortran\",\"patterns\":[]},\"explicit-interface-block-construct\":{\"begin\":\"(?i)\\\\b(interface)\\\\b(?=\\\\s*[\\\\n!;])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.interface.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran.modern\"}},\"name\":\"meta.interface.explicit.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"extends-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(extends)\\\\s*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"patterns\":[{\"match\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"name\":\"entity.name.type.fortran\"}]},\"external-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.external.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(external)\\\\b\"},\"fail-image-statement\":{\"captures\":{\"1\":{\"name\":\"keyword.control.fail-image.fortran\"}},\"match\":\"\\\\b(fail image)\\\\b\",\"name\":\"meta.statement.fail-image.fortran\"},\"forall-construct\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\b(forall)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.forall.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.loop-control.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?<=\\\\))(?=\\\\s*[\\\\n!;])\",\"end\":\"(?i)\\\\b(end\\\\s*forall)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endforall.fortran\"}},\"name\":\"meta.block.forall.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?<=\\\\))(?!\\\\s*[\\\\n!;])\",\"end\":\"\\\\n\",\"name\":\"meta.statement.control.forall.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]},\"form-team-statement\":{\"begin\":\"(?i)\\\\b(form team)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.form-team.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.form-team.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"format-descriptor\":{\"begin\":\"\\\\(/\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"contentName\":\"meta.format-descriptor.fortran\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.right.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"format-descriptors\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.format-descriptor.fortran\"}},\"match\":\"(?i)(?:\\\\b|(?<=\\\\d)|(?<=P))(EN|ES|EX|DT|DC|DP|RC|RD|RN|RP|RU|RZ|BN|BZ|SP|SS|TL|TR|[ABD-GILOPQSTXZ])(?=$|[^A-Z_a-z]|[D-G](?i))\"},{\"match\":\"/\",\"name\":\"keyword.operator.format.newline.fortran\"},{\"match\":\":\",\"name\":\"keyword.operator.format.separator.fortran\"},{\"match\":\"[$\\\\\\\\]\",\"name\":\"keyword.other.format-descriptor.nonstandard.fortran\"},{\"match\":\"(?i)(?:\\\\b|(?<=\\\\d))\\\\d+H\",\"name\":\"keyword.other.format-descriptor.legacy.fortran\"}]},\"format-parentheses\":{\"begin\":\"\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-continuation-operator\"},{\"match\":\"(?:\\\\b|[-+])\\\\d+(?=[A-Za-z])\",\"name\":\"constant.numeric.fortran\"},{\"include\":\"#format-descriptors\"},{\"include\":\"#format-parentheses\"},{\"include\":\"#parentheses-common\"}]},\"function-definition\":{\"begin\":\"(?i)(?=([^\\\\n!\\\"':;](?!\\\\bend)(?!\\\\bsubroutine\\\\b))*\\\\bfunction\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.function.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\G\\\\s*(?!\\\\bfunction\\\\b))\",\"end\":\"(?i)(?=\\\\bfunction\\\\b)\",\"name\":\"meta.attribute-list.function.fortran\",\"patterns\":[{\"include\":\"#elemental-attribute\"},{\"include\":\"#module-attribute\"},{\"include\":\"#pure-attribute\"},{\"include\":\"#recursive-attribute\"},{\"include\":\"#types\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\b(function)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.function.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fortran\"}},\"end\":\"(?i)\\\\s*\\\\b(?:(end\\\\s*function)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endfunction.fortran\"},\"2\":{\"name\":\"entity.name.function.fortran\"},\"3\":{\"name\":\"keyword.other.endfunction.fortran\"},\"4\":{\"name\":\"invalid.error.function.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.function.first-line.fortran\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#result-statement\"},{\"include\":\"#language-binding-attribute\"}]},{\"begin\":\"(?i)(?!\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*function\\\\b))\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*function\\\\b))\",\"name\":\"meta.block.specification.function.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=end(?:\\\\s*[\\\\n!;]|\\\\s*function\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]}]},\"generic-interface-block-construct\":{\"begin\":\"(?i)\\\\b(interface)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.interface.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.interface.generic.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(assignment)\\\\s*(\\\\()\\\\s*(?:(=)|(\\\\S.*))\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.assignment.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"keyword.operator.assignment.fortran\"},\"4\":{\"name\":\"invalid.error.generic-interface.fortran\"},\"5\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(\\\\1)\\\\b\\\\s*(\\\\()\\\\s*(?:(\\\\3)|(\\\\S.*))\\\\s*(\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.assignment.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.operator.assignment.fortran\"},\"5\":{\"name\":\"invalid.error.generic-interface-end.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(operator)\\\\s*(\\\\()\\\\s*(?:(\\\\.[a-z]+\\\\.|==|/=|>=|[<>]|<=|[-+/]|//|\\\\*\\\\*?)|(\\\\S.*))\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.operator.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"keyword.operator.fortran\"},\"4\":{\"name\":\"invalid.error.generic-interface-block-op.fortran\"},\"5\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(\\\\1)\\\\b\\\\s*(\\\\()\\\\s*(?:(\\\\3)|(\\\\S.*))\\\\s*(\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.operator.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.operator.fortran\"},\"5\":{\"name\":\"invalid.error.generic-interface-block-op-end.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(?:(read)|(write))\\\\s*(\\\\()\\\\s*(?:(formatted)|(unformatted)|(\\\\S.*))\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.read.fortran\"},\"2\":{\"name\":\"keyword.other.write.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.other.formatted.fortran\"},\"5\":{\"name\":\"keyword.other.unformatted.fortran\"},\"6\":{\"name\":\"invalid.error.generic-interface-block.fortran\"},\"7\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(?:(\\\\2)|(\\\\3))\\\\b\\\\s*(\\\\()\\\\s*(?:(\\\\4)|(\\\\5)|(\\\\S.*))\\\\s*(\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.read.fortran\"},\"3\":{\"name\":\"keyword.other.write.fortran\"},\"4\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"5\":{\"name\":\"keyword.other.formatted.fortran\"},\"6\":{\"name\":\"keyword.other.unformatted.fortran\"},\"7\":{\"name\":\"invalid.error.generic-interface-block-end.fortran\"},\"8\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*interface)\\\\b(?:\\\\s*\\\\b(\\\\1)\\\\b)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"entity.name.function.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]}]},\"goto-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(go\\\\s*to)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.goto.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.goto.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"if-construct\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#logical-control-expression\"},{\"begin\":\"(?i)\\\\s*\\\\b(then)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.then.fortran\"}},\"contentName\":\"meta.block.if.fortran\",\"end\":\"(?i)\\\\b(end\\\\s*if)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endif.fortran\"}},\"patterns\":[{\"begin\":\"(?i)\\\\b(else\\\\s*if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elseif.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.then.fortran\"},\"2\":{\"name\":\"meta.label.elseif.fortran\"}},\"match\":\"(?i)\\\\b(then)\\\\b(\\\\s*[a-z]\\\\w*)?\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\b(else)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.else.fortran\"}},\"end\":\"(?i)(?=\\\\b(end\\\\s*if)\\\\b)\",\"patterns\":[{\"begin\":\"(?!(\\\\s*([\\\\n!;])))\",\"end\":\"\\\\s*(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.label.else.fortran\"},\"2\":{\"name\":\"invalid.error.label.else.fortran\"}},\"match\":\"(?i)\\\\s*([a-z]\\\\w*)?\\\\s*\\\\b(\\\\w*)\\\\b\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)(?!\\\\b(end\\\\s*if)\\\\b)\",\"end\":\"(?i)(?=\\\\b(end\\\\s*if)\\\\b)\",\"patterns\":[{\"include\":\"$base\"}]}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.if.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"image-control-statement\":{\"patterns\":[{\"include\":\"#sync-all-statement\"},{\"include\":\"#sync-statement\"},{\"include\":\"#event-statement\"},{\"include\":\"#form-team-statement\"},{\"include\":\"#fail-image-statement\"}]},\"implicit-statement\":{\"begin\":\"(?i)\\\\b(implicit)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.implicit.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.implicit.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.none.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(none)\\\\b\"},{\"include\":\"$base\"}]},\"import-statement\":{\"begin\":\"(?i)\\\\b(import)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.include.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*(?:(::)|(?=[a-z]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#name-list\"}]},{\"begin\":\"\\\\G\\\\s*(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.all.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(all)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.none.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(none)\\\\b\"},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(only)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.only.fortran\"},\"2\":{\"name\":\"keyword.other.colon.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#name-list\"}]},{\"include\":\"#invalid-word\"}]}]},\"include-statement\":{\"begin\":\"(?i)\\\\b(include)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.include.fortran\",\"patterns\":[{\"include\":\"#string-constant\"},{\"include\":\"#invalid-character\"}]},\"intent-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(intent)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.intent.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.intent.in-out.fortran\"},\"2\":{\"name\":\"storage.modifier.intent.in.fortran\"},\"3\":{\"name\":\"storage.modifier.intent.out.fortran\"}},\"match\":\"(?i)\\\\b(?:(in\\\\s*out)|(in)|(out))\\\\b\"},{\"include\":\"#invalid-word\"}]},\"interface-block-constructs\":{\"patterns\":[{\"include\":\"#abstract-interface-block-construct\"},{\"include\":\"#explicit-interface-block-construct\"},{\"include\":\"#generic-interface-block-construct\"}]},\"interface-procedure-statement\":{\"begin\":\"(?i)(?=[^\\\\n!\\\"';]*\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.procedure.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\G\\\\s*(?!\\\\bprocedure\\\\b))\",\"end\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"name\":\"meta.attribute-list.interface.fortran\",\"patterns\":[{\"include\":\"#module-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\s*\\\\b(procedure)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.procedure.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"match\":\"\\\\G\\\\s*(::)\"},{\"include\":\"#procedure-name-list\"}]}]},\"intrinsic-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.intrinsic.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(intrinsic)\\\\b\"},\"intrinsic-functions\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr|findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound|leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar|shift[alr]|storage_size|this_image|trailz|ucobound)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(bessel_[jy][01n]|erf(c(_scaled)?)?|gamma|log_gamma)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(command_argument_count|extends_type_of|is_iostat_end|is_iostat_eor|new_line|same_type_as|selected_char_kind)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(ieee_(class|copy_sign|is_(finite|nan|negative|normal)|logb|next_after|rem|rint|scalb|selected_real_kind|support_(datatype|denormal|divide|inf|io|nan|rounding|sqrt|standard|underflow_control)|unordered|value))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(ieee_support_(flag|halting))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(c_(associated|funloc|loc|sizeof))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(compiler_(options|version))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(null)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b(achar|adjustl|adjustr|all|allocated|associated|any|bit_size|btest|ceiling|count|cshift|digits|dot_product|eoshift|epsilon|exponent|floor|fraction|huge|iachar|iand|ibclr|ibits|ibset|ieor|ior|ishftc?|kind|lbound|len_trim|logical|matmul|maxexponent|maxloc|maxval|merge|minexponent|minloc|minval|modulo|nearest|not|pack|precision|present|product|radix|range|repeat|reshape|rrspacing|scale|scan|selected_(int|real)_kind|set_exponent|shape|size|spacing|spread|sum|tiny|transfer|transpose|trim|ubound|unpack|verify)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\b([cdi]?abs|acos|[ad]int|[ad]nint|aimag|amax[01]|amin[01]|d?asin|d?atan|d?atan2|char|conjg|[cd]?cos|d?cosh|cmplx|dble|i?dim|dmax1|dmin1|dprod|[cd]?exp|float|ichar|idint|ifix|index|int|len|lge|lgt|lle|llt|[acd]?log|[ad]?log10|max[01]?|min[01]?|[ad]?mod|(id)?nint|real|[di]?sign|[cd]?sin|d?sinh|sngl|[cd]?sqrt|d?tan|d?tanh)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"intrinsic-subroutines\":{\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(date_and_time|mvbits|random_number|random_seed|system_clock)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(cpu_time)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ieee_([gs]et)_(rounding|underflow)_mode)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ieee_([gs]et)_(flag|halting_mode|status))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(c_f_(p(?:|rocp)ointer))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(execute_command_line|get_command|get_command_argument|get_environment_variable|move_alloc)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"invalid-character\":{\"match\":\"(?i)[^\\\\n!;\\\\s]+\",\"name\":\"invalid.error.character.fortran\"},\"invalid-word\":{\"match\":\"(?i)\\\\b\\\\w+\\\\b\",\"name\":\"invalid.error.word.fortran\"},\"language-binding-attribute\":{\"begin\":\"(?i)\\\\s*\\\\b(bind)\\\\s*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.bind.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"patterns\":[{\"match\":\"(?i)\\\\b(c)\\\\b\",\"name\":\"variable.parameter.fortran\"},{\"include\":\"#dummy-variable\"},{\"include\":\"$base\"}]},\"line-continuation-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"match\":\"(?:^|(?<=;))\\\\s*(&)\"},{\"begin\":\"\\\\s*(&)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"contentName\":\"meta.line-continuation.fortran\",\"end\":\"(?i)^(?:\\\\s*(&))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\S[^!]*\",\"name\":\"invalid.error.line-cont.fortran\"}]}]},\"logical-constant\":{\"captures\":{\"1\":{\"name\":\"constant.language.logical.false.fortran\"},\"2\":{\"name\":\"constant.language.logical.true.fortran\"}},\"match\":\"(?i)\\\\s*(?:(\\\\.false\\\\.)|(\\\\.true\\\\.))\"},\"logical-control-expression\":{\"begin\":\"\\\\G(?=\\\\s*\\\\()\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.expression.control.logical.fortran\",\"patterns\":[{\"include\":\"#parentheses\"}]},\"logical-operators\":{\"patterns\":[{\"match\":\"(?i)(\\\\s*\\\\.(and|eqv??|le|lt|ge|gt|ne|neqv|not|or)\\\\.)\",\"name\":\"keyword.logical.fortran\"},{\"match\":\"(==|/=|>=|(?<!=)>|<=?)\",\"name\":\"keyword.logical.fortran.modern\"}]},\"logical-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(logical)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.logical.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"3\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\b(logical)\\\\b(?:\\\\s*(\\\\*)\\\\s*(\\\\d*))?\"}]},\"module-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.module.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(module)\\\\b(?=\\\\s*(?:[\\\\n!;]|[^\\\\n!\\\"';]*\\\\b(?:function|procedure|subroutine)\\\\b))\"},\"module-definition\":{\"begin\":\"(?i)(?=\\\\b(module)\\\\b)(?![^\\\\n!\\\"';]*\\\\b(?:function|procedure|subroutine)\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.module.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.program.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(module)\\\\b\"},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.class.module.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*module)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endmodule.fortran\"},\"2\":{\"name\":\"entity.name.class.module.fortran\"},\"3\":{\"name\":\"keyword.other.endmodule.fortran\"},\"4\":{\"name\":\"invalid.error.module-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*module\\\\b))\",\"name\":\"meta.block.specification.module.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end(?:\\\\s*[\\\\n!;]|\\\\s*module\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"name-list\":{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!);])\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#brackets\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#variable\"}]},\"named-control-constructs\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)([a-z]\\\\w*)\\\\s*(:)(?=\\\\s*(?:associate|block(?!\\\\s*data)|critical|do|forall|if|select\\\\s*case|select\\\\s*type|select\\\\s*rank|where)\\\\b)\",\"contentName\":\"meta.named-construct.fortran.modern\",\"end\":\"(?i)(?!\\\\s*\\\\b(?:associate|block(?!\\\\s*data)|critical|do|forall|if|select\\\\s*case|select\\\\s*type|select\\\\s*rank|where)\\\\b)(?:\\\\b(\\\\1)\\\\b)?([^\\\\n!;\\\\s]*?)?(?=\\\\s*[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"meta.label.end.name.fortran\"},\"2\":{\"name\":\"invalid.error.named-control-constructs.fortran.modern\"}},\"patterns\":[{\"include\":\"#unnamed-control-constructs\"}]},\"namelist-statement\":{\"begin\":\"(?i)\\\\b(namelist)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.namelist.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"$base\"}]},\"non-intrinsic-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non-intrinsic.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(non_intrinsic)\\\\b\"},\"non-overridable-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non-overridable.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(non_overridable)\\\\b\"},\"nopass-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.nopass.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(nopass)\\\\b\"},\"nullify-statement\":{\"begin\":\"(?i)\\\\b(nullify)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.nullify.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.nullify.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"numeric-constant\":{\"match\":\"(?i)[-+]?(\\\\b\\\\d+\\\\.?\\\\d*|\\\\.\\\\d+)(_\\\\w+|d[-+]?\\\\d+|e[-+]?\\\\d+(_\\\\w+)?)?(?![_a-z])\",\"name\":\"constant.numeric.fortran\"},\"numeric-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(?:(complex)|(double\\\\s*precision)|(double\\\\s*complex)|(integer)|(real))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.complex.fortran\"},\"2\":{\"name\":\"storage.type.double.fortran\"},\"3\":{\"name\":\"storage.type.doublecomplex.fortran\"},\"4\":{\"name\":\"storage.type.integer.fortran\"},\"5\":{\"name\":\"storage.type.real.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.complex.fortran\"},\"2\":{\"name\":\"storage.type.double.fortran\"},\"3\":{\"name\":\"storage.type.doublecomplex.fortran\"},\"4\":{\"name\":\"storage.type.integer.fortran\"},\"5\":{\"name\":\"storage.type.real.fortran\"},\"6\":{\"name\":\"storage.type.dimension.fortran\"},\"7\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"8\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\b(?:(complex)|(double\\\\s*precision)|(double\\\\s*complex)|(integer)|(real)|(dimension))\\\\b(?:\\\\s*(\\\\*)\\\\s*(\\\\d*))?\"}]},\"operator-keyword\":{\"begin\":\"(?i)\\\\s*\\\\b(operator)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.operator.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#arithmetic-operators\"},{\"include\":\"#logical-operators\"},{\"include\":\"#user-defined-operators\"},{\"include\":\"#invalid-word\"}]},\"operators\":{\"patterns\":[{\"include\":\"#arithmetic-operators\"},{\"include\":\"#assignment-operator\"},{\"include\":\"#derived-type-operators\"},{\"include\":\"#logical-operators\"},{\"include\":\"#pointer-operators\"},{\"include\":\"#string-operators\"},{\"include\":\"#user-defined-operators\"}]},\"optional-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.optional.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(optional)\\\\b\"},\"parameter-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.parameter.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(parameter)\\\\b\"},\"parentheses\":{\"begin\":\"\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#parentheses-common\"}]},\"parentheses-common\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"parentheses-dummy-variables\":{\"begin\":\"\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#procedure-call-dummy-variable\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#parentheses-common\"}]},\"pass-attribute\":{\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(pass)\\\\s*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.pass.fortran\"}},\"end\":\"\\\\)|(?=\\\\n)\",\"patterns\":[]},{\"captures\":{\"1\":{\"name\":\"storage.modifier.pass.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(pass)\\\\b\"}]},\"pause-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(pause)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.pause.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.pause.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#invalid-character\"}]},\"pointer-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.pointer.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(pointer)\\\\b\"},\"pointer-operators\":{\"match\":\"(=>)\",\"name\":\"keyword.other.point.fortran\"},\"preprocessor\":{\"begin\":\"^\\\\s*(#:?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.indicator.fortran\"}},\"end\":\"\\\\n\",\"name\":\"meta.preprocessor\",\"patterns\":[{\"include\":\"#preprocessor-if-construct\"},{\"include\":\"#preprocessor-statements\"}]},\"preprocessor-arithmetic-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.subtraction.fortran\"},\"2\":{\"name\":\"keyword.operator.addition.fortran\"},\"3\":{\"name\":\"keyword.operator.division.fortran\"},\"4\":{\"name\":\"keyword.operator.multiplication.fortran\"}},\"match\":\"(-)|(\\\\+)|(/)|(\\\\*)\"},\"preprocessor-assignment-operator\":{\"match\":\"(?<!=)(=)(?!=)\",\"name\":\"keyword.operator.assignment.preprocessor.fortran\"},\"preprocessor-comments\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.preprocessor\"},\"preprocessor-constants\":{\"patterns\":[{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-string-constant\"}]},\"preprocessor-define-statement\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(define)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.define.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.macro.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-constants\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"preprocessor-defined-function\":{\"captures\":{\"1\":{\"name\":\"keyword.control.preprocessor.defined.fortran\"}},\"match\":\"(?i)\\\\b(defined)\\\\b\"},\"preprocessor-error-statement\":{\"begin\":\"(?i)\\\\G\\\\s*(error)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.error.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.macro.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"preprocessor-if-construct\":{\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.if.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.conditional.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-defined-function\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ifdef)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.ifdef.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(ifndef)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.ifndef.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(else)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.else.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(elif)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.elif.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-defined-function\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(endif)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.endif.fortran\"}},\"end\":\"(?=\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"}]}]},\"preprocessor-include-statement\":{\"begin\":\"(?i)\\\\G\\\\s*(include)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.include.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.include.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.other.lt-gt.include.preprocessor.fortran\"},{\"include\":\"#line-continuation-operator\"}]},\"preprocessor-line-continuation-operator\":{\"begin\":\"\\\\s*(\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.preprocessor.fortran\"}},\"end\":\"(?i)^\"},\"preprocessor-logical-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.preprocessor.and.fortran\"},\"2\":{\"name\":\"keyword.operator.logical.preprocessor.equals.fortran\"},\"3\":{\"name\":\"keyword.operator.logical.preprocessor.not_equals.fortran\"},\"4\":{\"name\":\"keyword.operator.logical.preprocessor.or.fortran\"},\"5\":{\"name\":\"keyword.operator.logical.preprocessor.less_eq.fortran\"},\"6\":{\"name\":\"keyword.operator.logical.preprocessor.more_eq.fortran\"},\"7\":{\"name\":\"keyword.operator.logical.preprocessor.less.fortran\"},\"8\":{\"name\":\"keyword.operator.logical.preprocessor.more.fortran\"},\"9\":{\"name\":\"keyword.operator.logical.preprocessor.complementary.fortran\"},\"10\":{\"name\":\"keyword.operator.logical.preprocessor.xor.fortran\"},\"11\":{\"name\":\"keyword.operator.logical.preprocessor.bitand.fortran\"},\"12\":{\"name\":\"keyword.operator.logical.preprocessor.not.fortran\"},\"13\":{\"name\":\"keyword.operator.logical.preprocessor.bitor.fortran\"}},\"match\":\"(&&)|(==)|(!=)|(\\\\|\\\\|)|(<=)|(>=)|(<)|(>)|(~)|(\\\\^)|(&)|(!)|(\\\\|)\",\"name\":\"keyword.operator.logical.preprocessor.fortran\"},\"preprocessor-operators\":{\"patterns\":[{\"include\":\"#preprocessor-line-continuation-operator\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"}]},\"preprocessor-pragma-statement\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(pragma)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.pragma.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.pragma.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"}]},\"preprocessor-statements\":{\"patterns\":[{\"include\":\"#preprocessor-define-statement\"},{\"include\":\"#preprocessor-error-statement\"},{\"include\":\"#preprocessor-include-statement\"},{\"include\":\"#preprocessor-preprocessor-pragma-statement\"},{\"include\":\"#preprocessor-undefine-statement\"}]},\"preprocessor-string-constant\":{\"patterns\":[{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.double.include.preprocessor.fortran\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.single.include.preprocessor.fortran\"}]},\"preprocessor-undefine-statement\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(undef)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.undef.fortran\"}},\"end\":\"(?=\\\\n)\",\"name\":\"meta.preprocessor.undef.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"private-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.private.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(private)\\\\b\"},\"procedure-call-dummy-variable\":{\"match\":\"(?i)\\\\s*([a-z]\\\\w*)(?=\\\\s*=)(?!\\\\s*==)\",\"name\":\"variable.parameter.dummy-variable.fortran.modern\"},\"procedure-definition\":{\"begin\":\"(?i)(?=[^\\\\n!\\\"';]*\\\\bmodule\\\\s+procedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.procedure.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(module\\\\s+procedure)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.procedure.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.procedure.fortran\"}},\"end\":\"(?i)\\\\s*\\\\b(?:(end\\\\s*procedure)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endprocedure.fortran\"},\"2\":{\"name\":\"entity.name.function.procedure.fortran\"},\"3\":{\"name\":\"keyword.other.endprocedure.fortran\"},\"4\":{\"name\":\"invalid.error.procedure-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.first-line.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]},{\"begin\":\"(?i)(?!\\\\s*(?:contains\\\\b|end\\\\s*[\\\\n!;]|end\\\\s*procedure\\\\b))\",\"end\":\"(?i)(?=\\\\s*(?:contains\\\\b|end\\\\s*[\\\\n!;]|end\\\\s*procedure\\\\b))\",\"name\":\"meta.block.specification.procedure.fortran\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?i)\\\\s*(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end(?:\\\\s*[\\\\n!;]|\\\\s*procedure\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$self\"}]}]}]}]},\"procedure-name\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.procedure.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\"},\"procedure-name-list\":{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?!\\\\s*\\\\n)\",\"end\":\"(,)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"patterns\":[{\"include\":\"#procedure-name\"},{\"include\":\"#pointer-operators\"}]}]},\"procedure-specification-statement\":{\"begin\":\"(?i)(?=\\\\bprocedure\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.procedure.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"procedure-type\":{\"patterns\":[{\"begin\":\"(?i)\\\\b(procedure)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.procedure.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#types\"},{\"include\":\"#procedure-name\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.procedure.fortran\"}},\"match\":\"(?i)\\\\b(procedure)\\\\b\"}]},\"program-definition\":{\"begin\":\"(?i)(?=\\\\b(program)\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.program.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.program.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(program)\\\\b\"},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.program.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*program)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endprogram.fortran\"},\"2\":{\"name\":\"entity.name.program.fortran\"},\"3\":{\"name\":\"keyword.control.endprogram.fortran\"},\"4\":{\"name\":\"invalid.error.program-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*program\\\\b))\",\"name\":\"meta.block.specification.program.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=end(?:\\\\s*[\\\\n!;]|\\\\s*program\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"protected-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.protected.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(protected)\\\\b\"},\"public-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.public.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(public)\\\\b\"},\"pure-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.impure.fortran\"},\"2\":{\"name\":\"storage.modifier.pure.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(?:(impure)|(pure))\\\\b\"},\"recursive-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non_recursive.fortran\"},\"2\":{\"name\":\"storage.modifier.recursive.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(?:(non_recursive)|(recursive))\\\\b\"},\"result-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(result)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.result.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#dummy-variable\"}]},\"return-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(return)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.return.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.return.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]},\"save-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.save.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(save)\\\\b\"},\"select-case-construct\":{\"begin\":\"(?i)\\\\b(select\\\\s*case)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selectcase.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*select)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.case.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\b(case)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.fortran\"}},\"end\":\"(?i)(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(default)\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"select-rank-construct\":{\"begin\":\"(?i)\\\\b(select\\\\s*rank)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selectrank.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*select)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.rank.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\b(rank)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.rank.fortran\"}},\"end\":\"(?i)(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(default)\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"select-type-construct\":{\"begin\":\"(?i)\\\\b(select\\\\s*type)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selecttype.fortran\"}},\"end\":\"(?i)\\\\b(end\\\\s*select)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.type.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\b(?:(class)|(type))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.class.fortran\"},\"2\":{\"name\":\"keyword.control.type.fortran\"}},\"end\":\"(?i)(?=[\\\\n!;])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(default)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.is.fortran\"}},\"match\":\"(?i)\\\\G\\\\s*\\\\b(is)\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"sequence-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.sequence.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(sequence)\\\\b\"},\"specification-statements\":{\"patterns\":[{\"include\":\"#attribute-specification-statement\"},{\"include\":\"#common-statement\"},{\"include\":\"#data-statement\"},{\"include\":\"#equivalence-statement\"},{\"include\":\"#implicit-statement\"},{\"include\":\"#namelist-statement\"},{\"include\":\"#use-statement\"}]},\"stop-statement\":{\"begin\":\"(?i)\\\\s*\\\\b(stop)\\\\b(?:\\\\s*\\\\b([a-z]\\\\w*)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.stop.fortran\"},\"2\":{\"name\":\"meta.label.stop.stop\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.control.stop.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#string-operators\"},{\"include\":\"#invalid-character\"}]},\"string-constant\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fortran\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fortran\"}},\"name\":\"string.quoted.single.fortran\",\"patterns\":[{\"match\":\"''\",\"name\":\"constant.character.escape.apostrophe.fortran\"}]},{\"applyEndPatternLast\":1,\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fortran\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fortran\"}},\"name\":\"string.quoted.double.fortran\",\"patterns\":[{\"match\":\"\\\"\\\"\",\"name\":\"constant.character.escape.quote.fortran\"}]}]},\"string-line-continuation-operator\":{\"begin\":\"(&)(?=\\\\s*\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"end\":\"(?i)^(?:(?=\\\\s*[^!\\\\&\\\\s])|\\\\s*(&))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\S.*\",\"name\":\"invalid.error.string-line-cont.fortran\"}]},\"string-operators\":{\"match\":\"(//)\",\"name\":\"keyword.other.concatination.fortran\"},\"submodule-definition\":{\"begin\":\"(?i)(?=\\\\b(submodule)\\\\s*\\\\()\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.submodule.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(submodule)\\\\s*(\\\\()\\\\s*(\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.submodule.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"entity.name.class.submodule.fortran\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"patterns\":[]},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.module.submodule.fortran\"}},\"end\":\"(?i)\\\\s*\\\\b(?:(end\\\\s*submodule)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endsubmodule.fortran\"},\"2\":{\"name\":\"entity.name.module.submodule.fortran\"},\"3\":{\"name\":\"keyword.other.endsubmodule.fortran\"},\"4\":{\"name\":\"invalid.error.submodule.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*submodule\\\\b))\",\"name\":\"meta.block.specification.submodule.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=\\\\s*end(?:\\\\s*[\\\\n!;]|\\\\s*submodule\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"subroutine-definition\":{\"begin\":\"(?i)(?=([^\\\\n!\\\"':;](?!\\\\bend))*\\\\bsubroutine\\\\b)\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.subroutine.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\G\\\\s*(?!\\\\bsubroutine\\\\b))\",\"end\":\"(?i)(?=\\\\bsubroutine\\\\b)\",\"name\":\"meta.attribute-list.subroutine.fortran\",\"patterns\":[{\"include\":\"#elemental-attribute\"},{\"include\":\"#module-attribute\"},{\"include\":\"#pure-attribute\"},{\"include\":\"#recursive-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\s*\\\\b(subroutine)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.subroutine.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\G\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"end\":\"(?i)\\\\b(?:(end\\\\s*subroutine)(?:\\\\s+([_a-z]\\\\w*))?|(end))\\\\b\\\\s*([^\\\\n!;]+)?(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endsubroutine.fortran\"},\"2\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"3\":{\"name\":\"keyword.other.endsubroutine.fortran\"},\"4\":{\"name\":\"invalid.error.subroutine.fortran\"}},\"patterns\":[{\"begin\":\"\\\\G(?!\\\\s*[\\\\n!;])\",\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.first-line.fortran\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#language-binding-attribute\"}]},{\"begin\":\"(?i)(?!\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*subroutine\\\\b))\",\"end\":\"(?i)(?=\\\\bend(?:\\\\s*[\\\\n!;]|\\\\s*subroutine\\\\b))\",\"name\":\"meta.block.specification.subroutine.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\b(contains)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"end\":\"(?i)(?=end(?:\\\\s*[\\\\n!;]|\\\\s*subroutine\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]}]},\"sync-all-statement\":{\"begin\":\"(?i)\\\\b(sync (?:all|memory))(\\\\s*(?=\\\\())?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sync-all-memory.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.sync-all-memory.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"sync-statement\":{\"begin\":\"(?i)\\\\b(sync (?:images|team))\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sync-images-team.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(?<!\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.sync-images-team.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"target-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.target.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(target)\\\\b\"},\"type-specification-statements\":{\"begin\":\"(?i)(?=\\\\b(?:character|class|complex|double\\\\s*precision|double\\\\s*complex|integer|logical|real|type|dimension)\\\\b(?![^\\\\n!\\\"':;]*\\\\bfunction\\\\b))\",\"end\":\"(?=[\\\\n!);])\",\"name\":\"meta.specification.type.fortran\",\"patterns\":[{\"include\":\"#types\"},{\"begin\":\"(?=\\\\s*(,|::))\",\"contentName\":\"meta.attribute-list.type-specification-statements.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!\\\\&,;])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#asynchronous-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#external-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#parameter-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#target-attribute\"},{\"include\":\"#value-attribute\"},{\"include\":\"#volatile-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#name-list\"}]},\"types\":{\"patterns\":[{\"include\":\"#character-type\"},{\"include\":\"#derived-type\"},{\"include\":\"#logical-type\"},{\"include\":\"#numeric-type\"}]},\"unnamed-control-constructs\":{\"patterns\":[{\"include\":\"#associate-construct\"},{\"include\":\"#block-construct\"},{\"include\":\"#critical-construct\"},{\"include\":\"#do-construct\"},{\"include\":\"#forall-construct\"},{\"include\":\"#if-construct\"},{\"include\":\"#select-case-construct\"},{\"include\":\"#select-type-construct\"},{\"include\":\"#select-rank-construct\"},{\"include\":\"#where-construct\"}]},\"use-statement\":{\"begin\":\"(?i)\\\\b(use)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.use.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"name\":\"meta.statement.use.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\s*(,|::|\\\\())\",\"contentName\":\"meta.attribute-list.namelist.fortran\",\"end\":\"(::)|(?=[\\\\n!;])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!,;])\",\"patterns\":[{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#non-intrinsic-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?i)\\\\s*\\\\b([a-z]\\\\w*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.class.module.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[\\\\n!;])\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(only\\\\s*:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.only.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#operator-keyword\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?=\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#operator-keyword\"},{\"include\":\"$base\"}]}]}]}]},\"user-defined-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.user-defined.fortran\"}},\"match\":\"(?i)\\\\s*(\\\\.[a-z]+\\\\.)\"},\"value-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.value.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(value)\\\\b\"},\"variable\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\b(?=[a-z])\",\"end\":\"(?<!\\\\G)\",\"name\":\"meta.parameter.fortran\",\"patterns\":[{\"include\":\"#brackets\"},{\"include\":\"#derived-type-operators\"},{\"include\":\"#parentheses-dummy-variables\"},{\"include\":\"#word\"}]},\"volatile-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.volatile.fortran\"}},\"match\":\"(?i)\\\\s*\\\\b(volatile)\\\\b\"},\"where-construct\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\b(where)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.where.fortran\"}},\"end\":\"(?<!\\\\G)\",\"patterns\":[{\"include\":\"#logical-control-expression\"},{\"begin\":\"(?<=\\\\))(?=\\\\s*[\\\\n!;])\",\"end\":\"(?i)\\\\b(end\\\\s*where)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endwhere.fortran\"}},\"name\":\"meta.block.where.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\s*\\\\b(else\\\\s*where)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elsewhere.fortran\"}},\"end\":\"\\\\s*(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"captures\":{\"1\":{\"name\":\"meta.label.elsewhere.fortran\"}},\"match\":\"(?i)(\\\\s*[a-z]\\\\w*)?\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?<=\\\\))(?!\\\\s*[\\\\n!;])\",\"end\":\"\\\\n\",\"name\":\"meta.statement.control.where.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"while-attribute\":{\"begin\":\"(?i)\\\\G\\\\s*\\\\b(while)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.fortran\"}},\"end\":\"(?=[\\\\n!;])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},\"word\":{\"patterns\":[{\"match\":\"(?i)(?:\\\\G|(?<=%))\\\\s*\\\\b([a-z]\\\\w*)\\\\b\"}]}},\"scopeName\":\"source.fortran.free\",\"aliases\":[\"f90\",\"f95\",\"f03\",\"f08\",\"f18\"]}"))];
2
+ export { fortran_free_form_default as default };