nuxt-og-image 3.0.0-rc.66 → 3.0.0-rc.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -6
- package/dist/client/200.html +179 -179
- package/dist/client/404.html +179 -179
- package/dist/client/_nuxt/{BfBkfEDj.js → 0OCEc-sb.js} +1 -1
- package/dist/client/_nuxt/16nqZaIT.js +1 -0
- package/dist/client/_nuxt/3Ts0ZrM4.js +4 -0
- package/dist/client/_nuxt/44JOqR_V.js +1 -0
- package/dist/client/_nuxt/4FkZXfg1.js +3 -0
- package/dist/client/_nuxt/{DoY4Dbtn.js → 4WleZr1P.js} +1 -1
- package/dist/client/_nuxt/5HixFuyr.js +1 -0
- package/dist/client/_nuxt/{C31OBGbl.js → 5bRVBCrv.js} +1 -1
- package/dist/client/_nuxt/{DanM9F4-.js → 7LPQ6a13.js} +2 -2
- package/dist/client/_nuxt/8WiSp-0_.js +1 -0
- package/dist/client/_nuxt/9CfBjzQa.js +1 -0
- package/dist/client/_nuxt/B-9EjyZr.js +1 -0
- package/dist/client/_nuxt/B-a2BbyY.js +1 -0
- package/dist/client/_nuxt/B0LoMq2b.js +1 -0
- package/dist/client/_nuxt/{BSSAUge4.js → B1ejXUAS.js} +1 -1
- package/dist/client/_nuxt/{DhldU3XI.js → B3LRAdDP.js} +1 -1
- package/dist/client/_nuxt/B7-FEXAT.js +1 -0
- package/dist/client/_nuxt/B9HI_aQy.js +1 -0
- package/dist/client/_nuxt/{D85lwgPO.js → B9vFkdfw.js} +1 -1
- package/dist/client/_nuxt/BAGvEKUB.js +1 -0
- package/dist/client/_nuxt/BAp2aEeE.js +1 -0
- package/dist/client/_nuxt/{C3NvtN4M.js → BB9S_66N.js} +1 -1
- package/dist/client/_nuxt/{AoxqhCl0.js → BCOu96sC.js} +1 -1
- package/dist/client/_nuxt/BGk6HrHT.js +1 -0
- package/dist/client/_nuxt/BHSTd-7M.js +1 -0
- package/dist/client/_nuxt/BKFBoKT4.js +1 -0
- package/dist/client/_nuxt/BKNiEhql.js +1 -0
- package/dist/client/_nuxt/BNgG76gt.js +1 -0
- package/dist/client/_nuxt/{BbPU79SD.js → BNofkYSZ.js} +14 -14
- package/dist/client/_nuxt/BOp3HRET.js +1 -0
- package/dist/client/_nuxt/{DaDGU6kf.js → BQnHL-cn.js} +1 -1
- package/dist/client/_nuxt/BS9sT-GQ.js +1 -0
- package/dist/client/_nuxt/BU83OF-G.js +1 -0
- package/dist/client/_nuxt/BUeIC4cT.js +1 -0
- package/dist/client/_nuxt/BXUVD3TH.js +1 -0
- package/dist/client/_nuxt/BXWtGw2n.js +6 -0
- package/dist/client/_nuxt/{VVtMly4c.js → BYLuaE_S.js} +1 -1
- package/dist/client/_nuxt/{C46DigdT.js → Ba_2pva2.js} +1 -1
- package/dist/client/_nuxt/BeX7BQ1y.js +1 -0
- package/dist/client/_nuxt/{ChVe37jp.js → BfVRrWqI.js} +1 -1
- package/dist/client/_nuxt/BgEvnnZj.js +1 -0
- package/dist/client/_nuxt/{BEPTDMGr.js → Bgrlo6mM.js} +1 -1
- package/dist/client/_nuxt/{CBoehFVA.js → Bl6w8nq6.js} +2 -2
- package/dist/client/_nuxt/BmUjtHPt.js +1 -0
- package/dist/client/_nuxt/BnYPtiAB.js +1 -0
- package/dist/client/_nuxt/{B9S9BZZh.js → BotTw_1M.js} +1 -1
- package/dist/client/_nuxt/BpqPLH6b.js +1 -0
- package/dist/client/_nuxt/{DT2db06B.js → Br4herk8.js} +1 -1
- package/dist/client/_nuxt/Brmco9EZ.js +2 -0
- package/dist/client/_nuxt/{BiU8-mv6.js → Bs9WCFOo.js} +1 -1
- package/dist/client/_nuxt/BtPWTO6-.js +1 -0
- package/dist/client/_nuxt/BwUg_Rem.js +1 -0
- package/dist/client/_nuxt/Bxuka25Y.js +1 -0
- package/dist/client/_nuxt/{Bcn1f5Rp.js → BxwkrKyP.js} +1 -1
- package/dist/client/_nuxt/{D9s3Eyz8.js → ByN1NmdT.js} +2 -2
- package/dist/client/_nuxt/C2Z2wNnw.js +1 -0
- package/dist/client/_nuxt/{DGTPbQyx.js → C3wf4cjV.js} +1 -1
- package/dist/client/_nuxt/{16u1w-DC.js → C5J_9lw5.js} +1 -1
- package/dist/client/_nuxt/C6doOGgB.js +1 -0
- package/dist/client/_nuxt/{BY8_eel9.js → C7xspq5a.js} +1 -1
- package/dist/client/_nuxt/C9CNr0dZ.js +1 -0
- package/dist/client/_nuxt/CA2blNRc.js +1 -0
- package/dist/client/_nuxt/{DFQMbhFG.js → CCW61mLD.js} +1 -1
- package/dist/client/_nuxt/{DOt8O2FJ.js → CDP-pALJ.js} +1 -1
- package/dist/client/_nuxt/{LrshOcZ2.js → CFy8Z7mU.js} +1 -1
- package/dist/client/_nuxt/CHDuk4cg.js +1 -0
- package/dist/client/_nuxt/{B5v32tNS.js → CKK8qrH7.js} +2 -2
- package/dist/client/_nuxt/CKqhLkpw.js +1 -0
- package/dist/client/_nuxt/{MJ0gDQnJ.js → CLTURUqp.js} +3 -3
- package/dist/client/_nuxt/CPQn-Lhb.js +1 -0
- package/dist/client/_nuxt/CRUEGcu5.js +1 -0
- package/dist/client/_nuxt/{CT9A9Qiu.js → CS6sTstm.js} +1 -1
- package/dist/client/_nuxt/{DWE3vCE5.js → CSPPpfsQ.js} +1 -1
- package/dist/client/_nuxt/CTeQKLZv.js +1 -0
- package/dist/client/_nuxt/CTsPJjdJ.js +1 -0
- package/dist/client/_nuxt/{A4Fa72hX.js → CUNQUWO_.js} +1 -1
- package/dist/client/_nuxt/CV5B5C80.js +1 -0
- package/dist/client/_nuxt/CZkFsSlX.js +1 -0
- package/dist/client/_nuxt/{8R90CSQj.js → C_h5G2He.js} +1 -1
- package/dist/client/_nuxt/{B5--Xptx.js → CaR_I2C-.js} +1 -1
- package/dist/client/_nuxt/Cb48SAmt.js +1 -0
- package/dist/client/_nuxt/{nc-bU77P.js → CeIpHJfZ.js} +3 -3
- package/dist/client/_nuxt/{coyhVBVA.js → ClPxYbPx.js} +1 -1
- package/dist/client/_nuxt/Clj_IpB8.js +1 -0
- package/dist/client/_nuxt/CmN1UzhW.js +1 -0
- package/dist/client/_nuxt/CvHWZNAB.js +1 -0
- package/dist/client/_nuxt/CyUS7F7b.js +17 -0
- package/dist/client/_nuxt/{D4LJwL2b.js → Cz-n9WvF.js} +1 -1
- package/dist/client/_nuxt/{CDzo4tzE.js → Cz3ygVR-.js} +1 -1
- package/dist/client/_nuxt/{CEuqc8ZQ.js → CzK8D06Z.js} +1 -1
- package/dist/client/_nuxt/{CXYaz1c9.js → D0N_qbs7.js} +1 -1
- package/dist/client/_nuxt/D0pnavP-.js +1 -0
- package/dist/client/_nuxt/D25Gr2Wc.js +1 -0
- package/dist/client/_nuxt/D4miJ1xw.js +1 -0
- package/dist/client/_nuxt/D6oCKXcX.js +1 -0
- package/dist/client/_nuxt/DBLgxP_1.js +2 -0
- package/dist/client/_nuxt/{ByMv4Xf1.js → DCmDdbvy.js} +1 -1
- package/dist/client/_nuxt/{zt9m_cFA.js → DDG_rSGg.js} +1 -1
- package/dist/client/_nuxt/DFHN_7lU.js +3 -0
- package/dist/client/_nuxt/DFsxFixh.js +1 -0
- package/dist/client/_nuxt/DGhhRy1e.js +1 -0
- package/dist/client/_nuxt/{DdacRhvC.js → DIw1DfnK.js} +1 -1
- package/dist/client/_nuxt/DJNHLfzP.js +1 -0
- package/dist/client/_nuxt/{XP2_9bVu.js → DJOPMAPO.js} +1 -1
- package/dist/client/_nuxt/DO04iIl4.js +1 -0
- package/dist/client/_nuxt/DOOuMSMh.js +1 -0
- package/dist/client/_nuxt/DRuVOcqL.js +1 -0
- package/dist/client/_nuxt/{B2Zkg-Ae.js → DSv7Jr7N.js} +2 -2
- package/dist/client/_nuxt/DTMFIK7w.js +1 -0
- package/dist/client/_nuxt/{6XBPEST2.js → DXdsTRaC.js} +1 -1
- package/dist/client/_nuxt/{DgraCSOE.js → DXtfa3TF.js} +1 -1
- package/dist/client/_nuxt/{iYrPSY0y.js → DYgwfmdY.js} +1 -1
- package/dist/client/_nuxt/DYikCEmq.js +1 -0
- package/dist/client/_nuxt/{D6SwP_ef.js → DYrknm32.js} +1 -1
- package/dist/client/_nuxt/D_lsq3cR.js +1 -0
- package/dist/client/_nuxt/{4JG6XROL.js → Dc3u8CCo.js} +1 -1
- package/dist/client/_nuxt/Df4vQnuo.js +1 -0
- package/dist/client/_nuxt/Di1G_BEd.js +1 -0
- package/dist/client/_nuxt/Dk2kDqHs.js +1 -0
- package/dist/client/_nuxt/DkIL16gc.js +2 -0
- package/dist/client/_nuxt/DmixpzPA.js +1 -0
- package/dist/client/_nuxt/{CkoJTUbt.js → Dnd6U92I.js} +1 -1
- package/dist/client/_nuxt/DofIr7ih.js +1 -0
- package/dist/client/_nuxt/DqFtmHIk.js +1 -0
- package/dist/client/_nuxt/{DLpTrZod.js → DrUHIbQf.js} +1 -1
- package/dist/client/_nuxt/{CJ21IjBY.js → DrhOmAGa.js} +1 -1
- package/dist/client/_nuxt/{DmAvib0Y.js → DsO5WfEU.js} +1 -1
- package/dist/client/_nuxt/{CIlkkgNU.js → DsclqnHy.js} +1 -1
- package/dist/client/_nuxt/Dwk9V841.js +1 -0
- package/dist/client/_nuxt/DyLIn2qo.js +1 -0
- package/dist/client/_nuxt/{C9d3aiqh.js → DzhYcJWo.js} +1 -1
- package/dist/client/_nuxt/{DxX6t7GH.js → Dziqk49f.js} +1 -1
- package/dist/client/_nuxt/{DqvgqZmm.js → E5r7Moxb.js} +1 -1
- package/dist/client/_nuxt/{B_SUYfiV.js → FMRyFT8D.js} +1 -1
- package/dist/client/_nuxt/{TDVTyJvX.js → GACPk8cj.js} +1 -1
- package/dist/client/_nuxt/H94RPpLS.js +1 -0
- package/dist/client/_nuxt/{DBxHOdLe.js → HxmVvryO.js} +1 -1
- package/dist/client/_nuxt/JYC31MTV.js +1 -0
- package/dist/client/_nuxt/Jl0QvYgb.js +1 -0
- package/dist/client/_nuxt/{C17JnZbq.js → KA8c-whL.js} +1 -1
- package/dist/client/_nuxt/Ka_J5llu.js +1 -0
- package/dist/client/_nuxt/KuNYkU7X.js +1 -0
- package/dist/client/_nuxt/MkuNFWFs.js +204 -0
- package/dist/client/_nuxt/{BaedD2tq.js → N3zwmhmW.js} +1 -1
- package/dist/client/_nuxt/O4cDyHwR.js +1 -0
- package/dist/client/_nuxt/OPd3ySAa.js +1 -0
- package/dist/client/_nuxt/{BqpV9M7Y.js → Opso89zU.js} +1 -1
- package/dist/client/_nuxt/{CV8JdvfZ.js → PauOf_jS.js} +1 -1
- package/dist/client/_nuxt/Qj0mFepl.js +14 -0
- package/dist/client/_nuxt/R9SNgiQ9.js +1 -0
- package/dist/client/_nuxt/{C6XIsc4F.js → Rc0-bMtX.js} +1 -1
- package/dist/client/_nuxt/{CKpfY2P2.js → TYaudu4O.js} +1 -1
- package/dist/client/_nuxt/VRCUJX8G.js +1 -0
- package/dist/client/_nuxt/{CMiaevpY.js → Ys9ZunwU.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/353519f1-2e76-4016-9b50-2f26f3cb8794.json +1 -0
- package/dist/client/_nuxt/{CD1ynQRS.js → eJKZXzCK.js} +1 -1
- package/dist/client/_nuxt/{PSVKygaU.js → eQYbbmqd.js} +1 -1
- package/dist/client/_nuxt/{entry.cOhDjBNG.css → entry.DtsycVcr.css} +1 -1
- package/dist/client/_nuxt/error-404.CUF_CFKB.css +1 -0
- package/dist/client/_nuxt/error-500.BR60owpQ.css +1 -0
- package/dist/client/_nuxt/i0hkWYmE.js +1 -0
- package/dist/client/_nuxt/{ByGMIDPY.js → ithPx4uF.js} +1 -1
- package/dist/client/_nuxt/{I-_ljZ1M.js → jDrCW69G.js} +1 -1
- package/dist/client/_nuxt/kveMaAK5.js +1 -0
- package/dist/client/_nuxt/lBoe4CZw.js +1 -0
- package/dist/client/_nuxt/{DoQu802G.js → lPxKsdjn.js} +1 -1
- package/dist/client/_nuxt/lRZxrFTT.js +1 -0
- package/dist/client/_nuxt/mvTh5Gok.js +1 -0
- package/dist/client/_nuxt/pCnzZaOt.js +1 -0
- package/dist/client/_nuxt/qpF8edk8.js +1 -0
- package/dist/client/_nuxt/qvnQm5y7.js +1 -0
- package/dist/client/_nuxt/qwoaayiL.js +1 -0
- package/dist/client/_nuxt/t1S7pxBA.js +1 -0
- package/dist/client/_nuxt/t6MJYFCU.js +5 -0
- package/dist/client/_nuxt/tEd5xQ4M.js +1 -0
- package/dist/client/_nuxt/{DZwJH60W.js → xGgVA17b.js} +1 -1
- package/dist/client/_nuxt/yvfKceIB.js +1 -0
- package/dist/client/_nuxt/{E1IWMS2c.js → z5DqfkHR.js} +1 -1
- package/dist/client/index.html +179 -179
- package/dist/module.d.mts +5 -1
- package/dist/module.d.ts +5 -1
- package/dist/module.json +2 -2
- package/dist/module.mjs +246 -131
- package/dist/runtime/nitro/og-image/bindings/chromium/chrome-launcher.js +1 -1
- package/dist/runtime/nitro/og-image/bindings/chromium/on-demand.js +1 -1
- package/dist/runtime/nitro/og-image/bindings/satori/wasm.js +1 -1
- package/dist/runtime/nitro/og-image/{cache.d.ts → cache/lru.d.ts} +3 -1
- package/dist/runtime/nitro/og-image/{cache.js → cache/lru.js} +6 -0
- package/dist/runtime/nitro/og-image/cache/mock.d.ts +9 -0
- package/dist/runtime/nitro/og-image/cache/mock.js +9 -0
- package/dist/runtime/nitro/og-image/chromium/renderer.js +1 -1
- package/dist/runtime/nitro/og-image/chromium/screenshot.js +1 -1
- package/dist/runtime/nitro/og-image/context.js +8 -8
- package/dist/runtime/nitro/og-image/satori/font.d.ts +1 -0
- package/dist/runtime/nitro/og-image/satori/font.js +2 -2
- package/dist/runtime/nitro/og-image/satori/instances.d.ts +1 -1
- package/dist/runtime/nitro/og-image/satori/plugins/encoding.js +1 -1
- package/dist/runtime/nitro/og-image/satori/plugins/flex.js +27 -2
- package/dist/runtime/nitro/og-image/satori/plugins/imageSrc.js +3 -3
- package/dist/runtime/nitro/og-image/satori/plugins/unocss.js +1 -1
- package/dist/runtime/nitro/og-image/satori/renderer.js +3 -7
- package/dist/runtime/nitro/og-image/satori/transforms/emojis.d.ts +0 -2
- package/dist/runtime/nitro/og-image/satori/transforms/emojis.js +1 -5
- package/dist/runtime/nitro/og-image/satori/transforms/inlineCss.js +1 -1
- package/dist/runtime/nitro/og-image/satori/vnodes.js +8 -8
- package/dist/runtime/nitro/og-image/templates/html.js +16 -21
- package/dist/runtime/nitro/plugins/__zero-runtime/nuxt-content.d.ts +2 -0
- package/dist/runtime/nitro/plugins/__zero-runtime/nuxt-content.js +9 -0
- package/dist/runtime/nitro/plugins/nuxt-content.js +2 -52
- package/dist/runtime/nitro/plugins/prerender.js +9 -4
- package/dist/runtime/nitro/routes/__zero-runtime/font.d.ts +2 -0
- package/dist/runtime/nitro/routes/__zero-runtime/font.js +8 -0
- package/dist/runtime/nitro/routes/__zero-runtime/image.d.ts +2 -0
- package/dist/runtime/nitro/routes/__zero-runtime/image.js +8 -0
- package/dist/runtime/nitro/routes/debug.json.js +2 -2
- package/dist/runtime/nitro/routes/font.js +3 -49
- package/dist/runtime/nitro/routes/image.js +3 -87
- package/dist/runtime/nitro/util/cache.js +3 -3
- package/dist/runtime/nitro/util/eventHandlers.d.ts +3 -0
- package/dist/runtime/nitro/util/eventHandlers.js +155 -0
- package/dist/runtime/nitro/util/kit.d.ts +1 -1
- package/dist/runtime/nitro/util/kit.js +3 -3
- package/dist/runtime/nitro/util/plugins.d.ts +2 -0
- package/dist/runtime/nitro/util/plugins.js +54 -0
- package/dist/runtime/nuxt/components/OgImage/OgImage.d.ts +1 -3
- package/dist/runtime/nuxt/components/OgImage/OgImage.js +1 -1
- package/dist/runtime/nuxt/components/OgImage/OgImageScreenshot.d.ts +1 -3
- package/dist/runtime/nuxt/components/OgImage/OgImageScreenshot.js +1 -1
- package/dist/runtime/nuxt/components/Templates/Community/NuxtSeo.vue +2 -2
- package/dist/runtime/nuxt/components/Templates/Community/SimpleBlog.vue +1 -1
- package/dist/runtime/nuxt/composables/defineOgImage.js +7 -5
- package/dist/runtime/nuxt/composables/defineOgImageComponent.d.ts +1 -1
- package/dist/runtime/nuxt/composables/mock.d.ts +1 -1
- package/dist/runtime/nuxt/plugins/__zero-runtime/og-image-canonical-urls.server.d.ts +2 -0
- package/dist/runtime/nuxt/plugins/__zero-runtime/og-image-canonical-urls.server.js +9 -0
- package/dist/runtime/nuxt/plugins/__zero-runtime/route-rule-og-image.server.d.ts +2 -0
- package/dist/runtime/nuxt/plugins/__zero-runtime/route-rule-og-image.server.js +9 -0
- package/dist/runtime/nuxt/plugins/og-image-canonical-urls.server.js +3 -51
- package/dist/runtime/nuxt/plugins/route-rule-og-image.server.js +4 -36
- package/dist/runtime/nuxt/utils/plugins.d.ts +3 -0
- package/dist/runtime/nuxt/utils/plugins.js +87 -0
- package/dist/runtime/nuxt/utils.js +6 -4
- package/dist/runtime/shared.js +3 -3
- package/dist/runtime/types.d.ts +6 -5
- package/dist/types.d.mts +0 -4
- package/dist/types.d.ts +0 -4
- package/package.json +31 -23
- package/dist/client/_nuxt/6bkCFmAg.js +0 -1
- package/dist/client/_nuxt/B3yJX9Qu.js +0 -1
- package/dist/client/_nuxt/B5USdwzW.js +0 -1
- package/dist/client/_nuxt/B7zm8LFH.js +0 -2
- package/dist/client/_nuxt/B8yeR86s.js +0 -1
- package/dist/client/_nuxt/B9MAV_WH.js +0 -1
- package/dist/client/_nuxt/B9afuS00.js +0 -1
- package/dist/client/_nuxt/BDUkJJFZ.js +0 -1
- package/dist/client/_nuxt/BEIEqD7s.js +0 -1
- package/dist/client/_nuxt/BESheOyt.js +0 -1
- package/dist/client/_nuxt/BFO9THtE.js +0 -1
- package/dist/client/_nuxt/BICcMyTi.js +0 -1
- package/dist/client/_nuxt/BIboXAcp.js +0 -1
- package/dist/client/_nuxt/BNuYtHxo.js +0 -1
- package/dist/client/_nuxt/BOCDpWc1.js +0 -17
- package/dist/client/_nuxt/BOtZLFcM.js +0 -3
- package/dist/client/_nuxt/BPiaQZfK.js +0 -1
- package/dist/client/_nuxt/BQgbS7Yt.js +0 -1
- package/dist/client/_nuxt/BSrQBeSJ.js +0 -131
- package/dist/client/_nuxt/BTO_K1fm.js +0 -1
- package/dist/client/_nuxt/BUQ2FcJX.js +0 -1
- package/dist/client/_nuxt/BVsCzzYp.js +0 -1
- package/dist/client/_nuxt/BccEf5hb.js +0 -1
- package/dist/client/_nuxt/BeqgMazi.js +0 -1
- package/dist/client/_nuxt/BltGI4TE.js +0 -1
- package/dist/client/_nuxt/BrHEiNXv.js +0 -1
- package/dist/client/_nuxt/BspO9hSn.js +0 -1
- package/dist/client/_nuxt/Bszlo9K_.js +0 -1
- package/dist/client/_nuxt/Bt3jdO27.js +0 -1
- package/dist/client/_nuxt/BzeF2RWN.js +0 -1
- package/dist/client/_nuxt/C5QX-GgJ.js +0 -1
- package/dist/client/_nuxt/C6F4YvHi.js +0 -1
- package/dist/client/_nuxt/C6pBAdyX.js +0 -1
- package/dist/client/_nuxt/C7O_L2NY.js +0 -1
- package/dist/client/_nuxt/C8KGJGmD.js +0 -1
- package/dist/client/_nuxt/C9X_x5J1.js +0 -1
- package/dist/client/_nuxt/CAkjjYd_.js +0 -1
- package/dist/client/_nuxt/CDLXdqou.js +0 -6
- package/dist/client/_nuxt/CTjLfFPV.js +0 -1
- package/dist/client/_nuxt/CY-WakqA.js +0 -1
- package/dist/client/_nuxt/C_D4IvTY.js +0 -1
- package/dist/client/_nuxt/CbFpZgCV.js +0 -1
- package/dist/client/_nuxt/CbjS_D4a.js +0 -1
- package/dist/client/_nuxt/CeUooOMz.js +0 -1
- package/dist/client/_nuxt/Clnf9f06.js +0 -1
- package/dist/client/_nuxt/CmHkUvIV.js +0 -1
- package/dist/client/_nuxt/CmonagEV.js +0 -1
- package/dist/client/_nuxt/CowR2XfX.js +0 -1
- package/dist/client/_nuxt/CuJfdYLG.js +0 -1
- package/dist/client/_nuxt/CwZIVF5c.js +0 -1
- package/dist/client/_nuxt/Cwv93qcC.js +0 -4
- package/dist/client/_nuxt/CzrtbdtR.js +0 -1
- package/dist/client/_nuxt/D1i8Vxii.js +0 -1
- package/dist/client/_nuxt/D384ylkT.js +0 -1
- package/dist/client/_nuxt/D7Nx8OLD.js +0 -1
- package/dist/client/_nuxt/D8YTaFMU.js +0 -1
- package/dist/client/_nuxt/D8ecWW_g.js +0 -1
- package/dist/client/_nuxt/DA288kE2.js +0 -3
- package/dist/client/_nuxt/DAVo6uMX.js +0 -1
- package/dist/client/_nuxt/DFRYOy8B.js +0 -1
- package/dist/client/_nuxt/DHCC4-m4.js +0 -1
- package/dist/client/_nuxt/DIC-ECB_.js +0 -1
- package/dist/client/_nuxt/DKluMpTE.js +0 -1
- package/dist/client/_nuxt/DKrjeWrU.js +0 -1
- package/dist/client/_nuxt/DOwv4Xrr.js +0 -1
- package/dist/client/_nuxt/DQdnirlo.js +0 -1
- package/dist/client/_nuxt/DRgydeCt.js +0 -1
- package/dist/client/_nuxt/DS9ZWoKD.js +0 -1
- package/dist/client/_nuxt/DSPtUMMI.js +0 -1
- package/dist/client/_nuxt/DYQagCV4.js +0 -1
- package/dist/client/_nuxt/DfqM7apN.js +0 -1
- package/dist/client/_nuxt/Dm9yFT8Y.js +0 -2
- package/dist/client/_nuxt/DoDCNZ2x.js +0 -1
- package/dist/client/_nuxt/Dtv2yyrc.js +0 -1
- package/dist/client/_nuxt/DvreHBtf.js +0 -1
- package/dist/client/_nuxt/DvyTQcux.js +0 -1
- package/dist/client/_nuxt/H2A8RXvM.js +0 -1
- package/dist/client/_nuxt/KCgU82S2.js +0 -1
- package/dist/client/_nuxt/NboNzovp.js +0 -1
- package/dist/client/_nuxt/PYrcYqZ1.js +0 -1
- package/dist/client/_nuxt/SXuYmi6B.js +0 -1
- package/dist/client/_nuxt/Sm_sVxcW.js +0 -14
- package/dist/client/_nuxt/Wkyh6-uf.js +0 -1
- package/dist/client/_nuxt/XrZDCB4K.js +0 -1
- package/dist/client/_nuxt/_fwBhpzY.js +0 -1
- package/dist/client/_nuxt/a0z0KVy-.js +0 -5
- package/dist/client/_nuxt/bPMpiWut.js +0 -1
- package/dist/client/_nuxt/builds/meta/517cb958-776a-47e2-bd34-69240f18e412.json +0 -1
- package/dist/client/_nuxt/d2PdAb0u.js +0 -2
- package/dist/client/_nuxt/error-404.F6YJ8FEX.css +0 -1
- package/dist/client/_nuxt/error-500.TGideFTg.css +0 -1
- package/dist/client/_nuxt/g4vhSHS2.js +0 -1
- package/dist/client/_nuxt/kZiYIjIU.js +0 -1
- package/dist/client/_nuxt/lOwNZ7_V.js +0 -1
- package/dist/client/_nuxt/nfCtBF4F.js +0 -1
- package/dist/client/_nuxt/pit2X7C0.js +0 -1
- package/dist/client/_nuxt/r5D-aIjp.js +0 -1
- package/dist/client/_nuxt/rh45RTDP.js +0 -1
- package/dist/client/_nuxt/tgs8ujlj.js +0 -1
- package/dist/client/_nuxt/v_4dTNAb.js +0 -1
- package/dist/client/_nuxt/vvK2q8Zt.js +0 -1
- package/dist/client/_nuxt/yOCz8xPT.js +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import t from"./CV8JdvfZ.js";const e=Object.freeze({displayName:"Stata",fileTypes:["do","ado","mata"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",name:"stata",patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#constants"},{include:"#functions"},{include:"#comments"},{include:"#subscripts"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{comment:"keywords that delimit flow conditionals",match:"\\b(if|else if|else)\\b",name:"keyword.control.conditional.stata"},{captures:{1:{name:"storage.type.scalar.stata"}},match:"^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)"},{begin:"\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)",beginCaptures:{1:{name:"keyword.control.flow.stata"},3:{patterns:[{include:"#constants"},{match:"m|n",name:""}]},4:{name:"punctuation.separator.key-value"},5:{patterns:[{include:"#constants"},{match:"m|n",name:""}]}},end:"using",patterns:[{include:"#builtin_variables"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments"}]},{captures:{1:{name:"keyword.control.flow.stata"},2:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},3:{name:"keyword.control.flow.stata"}},match:"\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b"},{begin:"\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*",beginCaptures:{1:{name:"keyword.control.flow.stata"},2:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},3:{name:"keyword.control.flow.stata"}},end:"(?=\\s*\\{)",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*",beginCaptures:{1:{name:"keyword.control.flow.stata"}},end:"\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)",endCaptures:{1:{name:"keyword.operator.assignment.stata"},2:{patterns:[{include:"#constants"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"}]}},patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{comment:"keywords that delimit loops",match:"\\b(while|continue)\\b",name:"keyword.control.flow.stata"},{captures:{1:{name:"keyword.other.stata"}},comment:"keywords that haven't fit into other groups (yet).",match:"\\b(as|ass|asse|asser|assert)\\b"},{comment:"prefixes that require a colon",match:"\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b",name:"storage.type.function.stata"},{comment:"prefixes that don't need a colon",match:"\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?",name:"keyword.control.flow.stata"},{captures:{1:{name:"storage.type.function.stata"},3:{name:"storage.type.function.stata"},7:{name:"entity.name.function.stata"}},match:"\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})"},{begin:"^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?",beginCaptures:{1:{name:"storage.type.function.stata"},3:{name:"storage.type.function.stata"}},end:"(?=,|\\n|/)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"entity.name.function.stata"},{match:"[^A-za-z_0-9,\\n/ ]+",name:"invalid.illegal.name.stata"}]},{captures:{1:"keyword.functions.data.stata.test"},match:"\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?(\\d+)(.)(\\d+)(e|f|g)(c)?"},{include:"#braces-with-error"},{begin:"(?=syntax)",end:"\\n",patterns:[{begin:"syntax",beginCaptures:{0:{name:"keyword.functions.program.stata"}},comment:"color before the comma",end:"(?=,|\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:"\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b",name:"entity.name.type.class.stata"},{captures:{2:{name:"entity.name.type.class.stata"},3:{name:"keyword.operator.arithmetic.stata"}},match:"\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?"},{captures:{1:{name:"keyword.operator.arithmetic.stata"},2:{name:"entity.name.type.class.stata"}},match:"(/)?(exp)"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{begin:",",beginCaptures:{0:{name:"punctuation.definition.variable.begin.stata"}},comment:"things to color after the comma",end:"(?=\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:"([^\\s\\[\\]]+)(\\()",beginCaptures:{1:{comment:"these are the names that become macros",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},2:{name:"keyword.operator.parentheses.stata"}},comment:"color options with parentheses",end:"\\)",endCaptures:{0:{name:"keyword.operator.parentheses.stata"}},patterns:[{captures:{0:{name:"support.type.stata"}},comment:"the first word is often a type",match:"\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{include:"#macro-local-identifiers"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]}]},{captures:{1:{name:"keyword.functions.data.stata"}},comment:"one-word commands",match:"\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b"},{comment:"programming commands",match:"\\b(exit|end)\\b",name:"keyword.functions.data.stata"},{captures:{1:{name:"keyword.functions.data.stata"},2:{patterns:[{include:"#macro-local"}]},4:{name:"invalid.illegal.name.stata"},5:{name:"keyword.operator.assignment.stata"}},match:"\\b(replace)\\s+([^=]+)\\s*((==)|(=))"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"support.type.stata"},5:{patterns:[{include:"#reserved-names"},{include:"#macro-local"}]},7:{name:"invalid.illegal.name.stata"},8:{name:"keyword.operator.assignment.stata"}},match:"\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?\\d?\\d?\\d?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"support.type.stata"}},match:"\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?\\d?\\d?\\d?|strL)?\\s+)\\b"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"},6:{name:"punctuation.definition.string.begin.stata"},7:{patterns:[{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.compound.stata"}]},8:{name:"punctuation.definition.string.begin.stata"}},match:'\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`")(.+)("\')'},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"},6:{name:"punctuation.definition.string.begin.stata"},7:{patterns:[{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.stata"}]},8:{name:"punctuation.definition.string.begin.stata"}},match:'\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(")(.+)(")'},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"}},match:"\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b"},{begin:"\\b(drop|keep)\\b(?!\\s+(if|in)\\b)",beginCaptures:{1:{name:"keyword.functions.data.stata"}},end:"\\n",patterns:[{match:"\\b(if|in)\\b",name:"invalid.illegal.name.stata"},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"#operators"}]},{captures:{1:{name:"keyword.functions.data.stata"},2:{name:"keyword.functions.data.stata"}},match:"\\b(drop|keep)\\s+(if|in)\\b"},{begin:"^\\s*mata:?\\s*$",comment:"won't match single-line Mata statements",end:"^\\s*end\\s*$\\n?",name:"meta.embedded.block.mata",patterns:[{match:"(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)",name:"keyword.control.mata"},{captures:{1:{name:"storage.type.eltype.mata"},4:{name:"storage.type.orgtype.mata"}},match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.mata"},{comment:"need to end with whitespace character here or last group doesn't match",match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s",name:"storage.type.eltype.mata"},{match:"\\b(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.orgtype.mata"},{match:"\\!|\\+\\+|\\-\\-|\\&|\\'|\\?|\\\\|\\:\\:|\\,|\\.\\.|\\||\\=|\\=\\=|\\>\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/",name:"keyword.operator.mata"},{include:"$self"}]},{begin:"\\b(odbc)\\b",beginCaptures:{0:{name:"keyword.control.flow.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:'(exec?)(\\(")',beginCaptures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"}},end:'"\\)',endCaptures:{0:{name:"punctuation.definition.parameters.end.stata"}},patterns:[{include:"source.sql"}]},{include:"$self"}]},{include:"#commands-other"}],repository:{"ascii-regex-character-class":{patterns:[{match:"\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]",name:"constant.character.escape.backslash.stata"},{match:"\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"illegal.invalid.character-class.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.stata"},2:{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#ascii-regex-character-class"},{captures:{2:{name:"constant.character.escape.backslash.stata"},4:{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"ascii-regex-functions":{patterns:[{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexm with regular quotes i.e. " ',match:`\\b(regexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"punctuation.definition.parameters.end.stata"}},comment:"color regexm with compound quotes",match:'\\b(regexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with regular quotes i.e. " ',match:`\\b(regexr)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*([^\\)]*)(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with compound quotes i.e. `"text"\' ',match:'\\b(regexr)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))'}]},"ascii-regex-internals":{patterns:[{match:"\\^",name:"keyword.control.anchor.stata"},{comment:"matched when not a global, but must be ascii",match:"\\$(?![a-zA-Z_\\{])",name:"keyword.control.anchor.stata"},{match:"[\\?\\+\\*]",name:"keyword.control.quantifier.stata"},{match:"\\|",name:"keyword.control.or.stata"},{begin:"(\\()(?=\\?|\\*|\\+)",beginCaptures:{1:{name:"keyword.operator.group.stata"}},contentName:"invalid.illegal.regexm.stata",end:"\\)",endCaptures:{0:{name:"keyword.operator.group.stata"}}},{begin:"(\\()",beginCaptures:{1:{name:"keyword.operator.group.stata"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.group.stata"}},patterns:[{include:"#ascii-regex-internals"}]},{include:"#ascii-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]},"braces-with-error":{patterns:[{begin:"(\\{)\\s*([^\\n]*)(?=\\n)",beginCaptures:{1:{name:"keyword.control.block.begin.stata"},2:{patterns:[{include:"#comments"},{match:"[^\\n]+",name:"illegal.invalid.name.stata"}]}},comment:"correct with nothing else on the line but whitespace; before and after; before; after; correct",end:'^\\s*(\\})\\s*$|^\\s*([^\\*"\\}]+)\\s+(\\})\\s*([^\\*"\\}/\\n]+)|^\\s*([^"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^"\\*\\}/\\n]+)|(\\})$',endCaptures:{1:{name:"keyword.control.block.end.stata"},2:{name:"invalid.illegal.name.stata"},3:{name:"keyword.control.block.end.stata"},4:{name:"invalid.illegal.name.stata"},5:{name:"invalid.illegal.name.stata"},6:{name:"keyword.control.block.end.stata"},7:{name:"keyword.control.block.end.stata"},8:{name:"invalid.illegal.name.stata"},9:{name:"keyword.control.block.end.stata"}},patterns:[{include:"$self"}]}]},"braces-without-error":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"keyword.control.block.begin.stata"}},end:"\\}",endCaptures:{0:{name:"keyword.control.block.end.stata"}}}]},builtin_types:{patterns:[{match:"\\b(byte|int|long|float|double|str[1-9]?\\d?\\d?\\d?|strL)\\b",name:"support.type.stata"}]},builtin_variables:{patterns:[{match:"\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b",name:"variable.object.stata"}]},"commands-other":{patterns:[{comment:"Add on commands",match:"\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b",name:"keyword.control.flow.stata"},{comment:"Built in commands",match:"\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b",name:"keyword.control.flow.stata"}]},comments:{patterns:[{include:"#comments-double-slash"},{include:"#comments-star"},{include:"#comments-block"},{include:"#comments-triple-slash"}]},"comments-block":{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.stata"}},end:"(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))",endCaptures:{0:{name:"punctuation.definition.comment.end.stata"}},name:"comment.block.stata",patterns:[{comment:"this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks",match:"\\*/\\*"},{include:"#docblockr-comment"},{include:"#comments-block"},{include:"#docstring"}]}]},"comments-double-slash":{patterns:[{begin:"(^//|(?<=\\s)//)(?!/)",captures:{0:{name:"punctuation.definition.comment.stata"}},end:"(?=\\n)",name:"comment.line.double-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},"comments-star":{patterns:[{begin:"^\\s*(\\*)",captures:{0:{name:"punctuation.definition.comment.stata"}},comment:"TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below",end:"(?=\\n)",name:"comment.line.star.stata",patterns:[{include:"#docblockr-comment"},{begin:"///",end:"\\n",name:"comment.line-continuation.stata"},{include:"#comments"}]}]},"comments-triple-slash":{patterns:[{begin:"(^///|(?<=\\s)///)",captures:{0:{name:"punctuation.definition.comment.stata"}},end:"(?=\\n)",name:"comment.line.triple-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},constants:{patterns:[{include:"#factorvariables"},{match:"\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])",name:"constant.numeric.float.stata"},{match:"(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))",name:"constant.numeric.float.stata"},{match:"\\b(?i:(\\d+e[\\-\\+]?\\d+))",name:"constant.numeric.float.stata"},{match:"\\b(\\d+)\\b",name:"constant.numeric.integer.decimal.stata"},{match:"(?<![\\w])(\\.(?![\\./]))(?![\\w])",name:"constant.language.missing.stata"},{match:"\\b_all\\b",name:"constant.language.allvars.stata"}]},"docblockr-comment":{patterns:[{captures:{1:{name:"invalid.illegal.name.stata"}},match:"(?<!\\w)(@(error|ERROR|Error))\\b"},{captures:{1:{name:"keyword.docblockr.stata"}},match:"(?<!\\w)(@\\w+)\\b"}]},docstring:{patterns:[{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"}]},factorvariables:{patterns:[{match:"\\b(i|c|o)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",name:"constant.language.factorvars.stata"},{captures:{0:{name:"constant.language.factorvars.stata"},3:{patterns:[{include:"#constants"}]}},match:"\\b(i?b)((\\d+)|n)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{0:{name:"constant.language.factorvars.stata"},2:{name:"keyword.operator.parentheses.stata"},3:{patterns:[{include:"#constants"},{include:"#operators"}]},4:{name:"keyword.operator.parentheses.stata"}},match:"\\b(i?b)(\\()(#\\d+|first|last|freq)(\\))\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{0:{name:"constant.language.factorvars.stata"},2:{patterns:[{include:"#constants"}]}},match:"\\b(i?o?)(\\d+)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{1:{name:"constant.language.factorvars.stata"},2:{name:"keyword.operator.parentheses.stata"},3:{patterns:[{include:"$self"}]},4:{name:"keyword.operator.parentheses.stata"},5:{name:"constant.language.factorvars.stata"}},match:"\\b(i?o?)(\\()(.*?)(\\))(\\.)(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"}]},functions:{patterns:[{begin:"\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\w&&[^0-9]]\\w{0,31}))(\\()",beginCaptures:{2:{name:"support.function.builtin.stata"},3:{name:"support.function.custom.stata"},4:{name:"punctuation.definition.parameters.begin.stata"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.stata"}},patterns:[{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{begin:"\\(",beginCaptures:{0:{name:"keyword.operator.parentheses.stata"}},end:"\\)",endCaptures:{0:{name:"keyword.operator.parentheses.stata"}},patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"}]},{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"}]}]},"macro-commands":{patterns:[{begin:"\\b(loc(al|a)?)\\s+([\\w'`\\$\\(\\)\\{\\}]+)\\s*(?=:|=)",beginCaptures:{1:{name:"keyword.macro.stata"},3:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]}},end:"\\n",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"$self"}]},{begin:":",beginCaptures:{0:{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"#macro-extended-functions"}]}]},{begin:"\\b(gl(obal|oba|ob|o)?)\\s+(?=[\\w`\\$])",beginCaptures:{1:{name:"keyword.macro.stata"}},end:'(\\})|(?=\\"|\\s|\\n|/|,|=)',patterns:[{include:"#reserved-names"},{match:"[\\w&&[^0-9_]]\\w{0,31}",name:"entity.name.type.class.stata"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(loc(al|a)?)\\s+(\\+\\+|\\-\\-)?(?=[\\w`\\$])",beginCaptures:{1:{name:"keyword.macro.stata"},3:{name:"keyword.operator.arithmetic.stata"}},end:'(?=\\"|\\s|\\n|/|,|=)',patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(tempvar|tempname|tempfile)\\s*(?=\\s)",beginCaptures:{1:{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(ma(cro|cr|c)?)\\s+(drop|l(ist|is|i)?)\\s*(?=\\s)",beginCaptures:{0:{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\*",name:"keyword.operator.arithmetic.stata"},{include:"#constants"},{include:"#macro-global"},{include:"#macro-local"},{include:"#comments"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-extended-functions":{patterns:[{match:"\\b(properties)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\s+l(abel|abe|ab|a)?|data\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(permname)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(all\\s+(globals|scalars|matrices)|((numeric|string)\\s+scalars))\\b",name:"keyword.macro.extendedfcn.stata"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"keyword.macro.extendedfcn.stata"},3:{name:"entity.name.type.class.stata"}},match:"\\b(list)\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\s+(\\w{1,32})"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"entity.name.type.class.stata"},3:{name:"keyword.operator.list.stata"},4:{name:"entity.name.type.class.stata"}},match:"\\b(list)\\s+(\\w{1,32})\\s+(\\||&|\\-|===|==|in)\\s+(\\w{1,32})"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"punctuation.definition.string.begin.stata"},3:{name:"string.quoted.double.stata"},4:{name:"punctuation.definition.string.end.stata"},5:{name:"keyword.macro.extendedfcn.stata"},6:{name:"entity.name.type.class.stata"}},match:'\\b(list\\s+posof)\\s+(")(\\w+)(")\\s+(in)\\s+(\\w{1,32})'},{match:"\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(tsnorm)\\b",name:"keyword.macro.extendedfcn.stata"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},7:{patterns:[{include:"#macro-local"},{include:"#macro-global"}]}},match:"\\b((copy|(ud|u)?strlen)\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+([^']+)"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"}},match:"\\b(word\\s+count)"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{patterns:[{include:"#macro-local"},{include:"#constants"}]},3:{name:"keyword.macro.extendedfcn.stata"}},match:"(word|piece)\\s+([\\s`'\\w]+)\\s+(of)"},{begin:"\\b(subinstr\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+(\\w{1,32})",beginCaptures:{1:{name:"keyword.macro.extendedfcn.stata"},5:{name:"entity.name.type.class.stata"}},end:"(?=//|\\n)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{name:"keyword.macro.extendedfcn.stata"},4:{name:"entity.name.type.class.stata"},5:{name:"punctuation.definition.parameters.end.stata"}},match:"(count|coun|cou|co|c)(\\()(local|loca|loc|global|globa|glob|glo|gl)\\s+(\\w{1,32})(\\))"}]},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"$self"}]},"macro-global":{patterns:[{begin:"(\\$)(\\{)",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=})",name:"comment.line.stata"},{match:"\\w{1,32}",name:"entity.name.type.class.stata"}]},{begin:"\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"(?!\\w)",endCaptures:{1:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-global-escaped":{patterns:[{begin:"(\\\\\\$)(\\\\\\{)?",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:'(\\\\\\})|(?=\\"|\\s|\\n|/|,)',endCaptures:{1:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local":{patterns:[{begin:"(`)(=)",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"keyword.operator.comparison.stata"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"$self"}]},{begin:"(`)(:)",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"keyword.operator.comparison.stata"}},contentName:"meta.macro-extended-function.stata",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-extended-functions"},{include:"#constants"},{include:"#string-compound"},{include:"#string-regular"}]},{begin:"(`)(macval)(\\()",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"support.function.builtin.stata"},3:{name:"punctuation.definition.parameters.begin.stata"}},contentName:"meta.macro-extended-function.stata",end:"(\\))(')",endCaptures:{1:{name:"punctuation.definition.parameters.begin.stata"},2:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},{begin:'`(?!")',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{match:"\\+\\+|\\-\\-",name:"keyword.operator.arithmetic.stata"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=')",name:"comment.line.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local-escaped":{patterns:[{begin:'\\\\`(?!")',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},comment:"appropriately color macros that have embedded escaped `,', and $ characters for lazy evaluation",end:"\\\\'|'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local-identifiers":{patterns:[{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"\\w{32,}",name:"invalid.illegal.name.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},operators:{patterns:[{comment:"++ and -- must come first to support ligatures",match:"\\+\\+|\\-\\-|\\+|\\-|\\*|\\^",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])/(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])\\\\(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.matrix.addrow.stata"},{match:"\\|\\|",name:"keyword.operator.graphcombine.stata"},{match:"\\&|\\|",name:"keyword.operator.logical.stata"},{match:"(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)",name:"keyword.operator.comparison.stata"},{match:"\\(|\\)",name:"keyword.operator.parentheses.stata"},{match:"(##|#)",name:"keyword.operator.factor-variables.stata"},{match:"%",name:"keyword.operator.format.stata"},{match:":",name:"punctuation.separator.key-value"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:",",name:"punctuation.definition.variable.begin.stata"},{match:";",name:"keyword.operator.delimiter.stata"}]},"reserved-names":{patterns:[{match:"\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str\\d+|strL|using|with)\\b",name:"invalid.illegal.name.stata"},{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"\\d[\\w]{31,}",name:"invalid.illegal.name.stata"},{match:"\\w{33,}",name:"invalid.illegal.name.stata"}]},"string-compound":{patterns:[{begin:'`"',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:`"'|(?=
|
|
2
|
-
)`,endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},name:"string.quoted.double.compound.stata",patterns:[{comment:'This must come before #string-regular and #string-compound to accurately color `"""\' in strings',match:'"',name:"string.quoted.double.compound.stata"},{comment:"see https://github.com/kylebarron/language-stata/issues/53",match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata"},{include:"#string-regular"},{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},"string-regular":{patterns:[{begin:'(?<!`)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:`(")(')?|(?=
|
|
3
|
-
)`,endCaptures:{1:{name:"punctuation.definition.string.end.stata"},2:{name:"invalid.illegal.punctuation.stata"}},name:"string.quoted.double.stata",patterns:[{comment:"see https://github.com/kylebarron/language-stata/issues/53",match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},subscripts:{patterns:[{begin:"(?<=[\\w'])(\\[)",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.stata"}},comment:"highlight expressions, like [_n], when using subscripts on a variable",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.parameters.end.stata"}},name:"meta.subscripts.stata",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"},{include:"#operators"},{include:"#constants"},{include:"#functions"}]}]},"unicode-regex-character-class":{patterns:[{match:"\\\\[wWsSdD]|\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"constant.character.escape.backslash.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.stata"},2:{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#unicode-regex-character-class"},{captures:{2:{name:"constant.character.escape.backslash.stata"},4:{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"unicode-regex-functions":{patterns:[{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexm with regular quotes i.e. " ',match:`\\b(ustrregexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)([,0-9\\s]*)?\\s*(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:"color regexm with compound quotes",match:'\\b(ustrregexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')([,0-9\\s]*)?\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with regular quotes i.e. " ',match:`\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*([^\\)]*)(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with compound quotes i.e. `"text"\' ',match:'\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))'}]},"unicode-regex-internals":{patterns:[{match:"\\\\[bBAZzG]|\\^",name:"keyword.control.anchor.stata"},{comment:"matched when not a global",match:"\\$(?![[\\w&&[^0-9_]][\\w]{0,31}|_[\\w]{1,31}\\{])",name:"keyword.control.anchor.stata"},{match:"\\\\[1-9]\\d?",name:"keyword.other.back-reference.stata"},{match:"[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.stata"},{match:"\\|",name:"keyword.operator.or.stata"},{begin:"\\((?!\\?\\#|\\?=|\\?!|\\?<=|\\?<!)",end:"\\)",name:"keyword.operator.group.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"\\(\\?\\#",end:"\\)",name:"comment.block.stata"},{comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.stata"},{match:"\\(\\?[iLmsux]+\\)",name:"keyword.other.option-toggle.stata"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"keyword.operator.group.stata"},2:{name:"punctuation.definition.group.assertion.stata"},3:{name:"keyword.assertion.look-ahead.stata"},4:{name:"keyword.assertion.negative-look-ahead.stata"},5:{name:"keyword.assertion.look-behind.stata"},6:{name:"keyword.assertion.negative-look-behind.stata"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.group.stata"}},name:"meta.group.assertion.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"(\\()(\\?\\(([1-9]\\d?|[a-zA-Z_][a-zA-Z_0-9]*)\\))",beginCaptures:{1:{name:"punctuation.definition.group.stata"},2:{name:"punctuation.definition.group.assertion.conditional.stata"},3:{name:"entity.name.section.back-reference.stata"}},comment:"we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.",end:"(\\))",name:"meta.group.assertion.conditional.stata",patterns:[{include:"#unicode-regex-internals"}]},{include:"#unicode-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]}},scopeName:"source.stata",embeddedLangs:["sql"]});var n=[...t,e];export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"./DvyTQcux.js";const t=Object.freeze({displayName:"Git Commit Message",name:"git-commit",patterns:[{begin:"(?=^diff\\ \\-\\-git)",comment:"diff presented at the end of the commit message when using commit -v.",contentName:"source.diff",end:"\\z",name:"meta.embedded.diff.git-commit",patterns:[{include:"source.diff"}]},{begin:"^(?!#)",comment:"User supplied message",end:"^(?=#)",name:"meta.scope.message.git-commit",patterns:[{captures:{1:{name:"invalid.deprecated.line-too-long.git-commit"},2:{name:"invalid.illegal.line-too-long.git-commit"}},comment:"Mark > 50 lines as deprecated, > 72 as illegal",match:"\\G.{0,50}(.{0,22}(.*))$",name:"meta.scope.subject.git-commit"}]},{begin:"^(?=#)",comment:"Git supplied metadata in a number of lines starting with #",contentName:"comment.line.number-sign.git-commit",end:"^(?!#)",name:"meta.scope.metadata.git-commit",patterns:[{captures:{1:{name:"markup.changed.git-commit"}},match:"^#\\t((modified|renamed):.*)$"},{captures:{1:{name:"markup.inserted.git-commit"}},match:"^#\\t(new file:.*)$"},{captures:{1:{name:"markup.deleted.git-commit"}},match:"^#\\t(deleted.*)$"},{captures:{1:{name:"keyword.other.file-type.git-commit"},2:{name:"string.unquoted.filename.git-commit"}},comment:"Fallback for non-English git commit template",match:"^#\\t([^:]+): *(.*)$"}]}],scopeName:"text.git-commit",embeddedLangs:["diff"]});var i=[...e,t];export{i as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=Object.freeze({displayName:"HashiCorp HCL",fileTypes:["hcl"],name:"hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}],repository:{attribute_access:{begin:"\\.(?!\\*)",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Matches traversal attribute access such as .attr",end:"[A-Za-z][\\w-]*|\\d*",endCaptures:{0:{patterns:[{comment:"Attribute name",match:"(?!null|false|true)[[:alpha:]][\\w-]*",name:"variable.other.member.hcl"},{comment:"Optional attribute index",match:"\\d+",name:"constant.numeric.integer.hcl"}]}}},attribute_definition:{captures:{1:{name:"punctuation.section.parens.begin.hcl"},2:{name:"variable.other.readwrite.hcl"},3:{name:"punctuation.section.parens.end.hcl"},4:{name:"keyword.operator.assignment.hcl"}},comment:'Identifier "=" with optional parens',match:"(\\()?(\\b(?!null\\b|false\\b|true\\b)[A-Za-z][0-9A-Za-z_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*",name:"variable.declaration.hcl"},attribute_splat:{begin:"\\.",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Legacy attribute-only splat",end:"\\*",endCaptures:{0:{name:"keyword.operator.splat.hcl"}}},block:{begin:"([\\w][\\-\\w]*)([^?\\r\\n]*)(\\{)",beginCaptures:{1:{patterns:[{comment:"Block type",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"entity.name.type.hcl"}]},2:{patterns:[{comment:"Block label (String Literal)",match:'\\"[^\\"\\r\\n]*\\"',name:"variable.other.enummember.hcl"},{comment:"Block label (Indentifier)",match:"[[:alpha:]][[:alnum:]_-]*",name:"variable.other.enummember.hcl"}]},3:{name:"punctuation.section.block.begin.hcl"}},comment:'This will match HCL blocks like `thing1 "one" "two" {` or `thing2 {`',end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.hcl"}},name:"meta.block.hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#expressions"},{include:"#block"}]},block_inline_comments:{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence",end:"\\*/",name:"comment.block.hcl"},brackets:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{comment:"Splat operator",match:"\\*",name:"keyword.operator.splat.hcl"},{include:"#comma"},{include:"#comments"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{include:"#expressions"},{include:"#local_identifiers"}]},char_escapes:{comment:"Character Escapes",match:'\\\\[nrt"\\\\]|\\\\u(\\h{8}|\\h{4})',name:"constant.character.escape.hcl"},comma:{comment:"Commas - used in certain expressions",match:"\\,",name:"punctuation.separator.hcl"},comments:{patterns:[{include:"#hash_line_comments"},{include:"#double_slash_line_comments"},{include:"#block_inline_comments"}]},double_slash_line_comments:{begin:"//",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.double-slash.hcl"},expressions:{patterns:[{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#brackets"},{include:"#objects"},{include:"#attribute_access"},{include:"#attribute_splat"},{include:"#functions"},{include:"#parens"}]},for_expression_body:{patterns:[{comment:"in keyword",match:"\\bin\\b",name:"keyword.operator.word.hcl"},{comment:"if keyword",match:"\\bif\\b",name:"keyword.control.conditional.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},functions:{begin:"([:\\-\\w]+)(\\()",beginCaptures:{1:{patterns:[{match:"\\b[[:alpha:]][\\w_-]*::([[:alpha:]][\\w_-]*::)?[[:alpha:]][\\w_-]*\\b",name:"support.function.namespaced.hcl"},{match:"\\b[[:alpha:]][\\w_-]*\\b",name:"support.function.builtin.hcl"}]},2:{name:"punctuation.section.parens.begin.hcl"}},comment:"Built-in function calls",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},name:"meta.function-call.hcl",patterns:[{include:"#comments"},{include:"#expressions"},{include:"#comma"}]},hash_line_comments:{begin:"#",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.number-sign.hcl"},hcl_type_keywords:{comment:"Type keywords known to HCL.",match:"\\b(any|string|number|bool|list|set|map|tuple|object)\\b",name:"storage.type.hcl"},heredoc:{begin:"(\\<\\<\\-?)\\s*(\\w+)\\s*$",beginCaptures:{1:{name:"keyword.operator.heredoc.hcl"},2:{name:"keyword.control.heredoc.hcl"}},comment:"String Heredoc",end:"^\\s*\\2\\s*$",endCaptures:{0:{name:"keyword.control.heredoc.hcl"}},name:"string.unquoted.heredoc.hcl",patterns:[{include:"#string_interpolation"}]},inline_for_expression:{captures:{1:{name:"keyword.control.hcl"},2:{patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]}},match:"(for)\\b(.*)\\n"},inline_if_expression:{begin:"(if)\\b",beginCaptures:{1:{name:"keyword.control.conditional.hcl"}},end:"\\n",patterns:[{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},language_constants:{comment:"Language Constants",match:"\\b(true|false|null)\\b",name:"constant.language.hcl"},literal_values:{patterns:[{include:"#numeric_literals"},{include:"#language_constants"},{include:"#string_literals"},{include:"#heredoc"},{include:"#hcl_type_keywords"}]},local_identifiers:{comment:"Local Identifiers",match:"\\b(?!null|false|true)[A-Za-z][0-9A-Za-z_-]*\\b",name:"variable.other.readwrite.hcl"},numeric_literals:{patterns:[{captures:{1:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, no fraction, optional exponent",match:"\\b\\d+([Ee][+-]?)\\d+\\b",name:"constant.numeric.float.hcl"},{captures:{1:{name:"punctuation.separator.decimal.hcl"},2:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, fraction, optional exponent",match:"\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b",name:"constant.numeric.float.hcl"},{comment:"Integers",match:"\\b\\d+\\b",name:"constant.numeric.integer.hcl"}]},object_for_expression:{begin:"(\\{)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.braces.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]},object_key_values:{patterns:[{include:"#comments"},{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#heredoc"},{include:"#functions"}]},objects:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},name:"meta.braces.hcl",patterns:[{include:"#comments"},{include:"#objects"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{captures:{1:{name:"meta.mapping.key.hcl variable.other.readwrite.hcl"},2:{name:"keyword.operator.assignment.hcl"}},comment:"Literal, named object key",match:"\\b((?!null|false|true)[A-Za-z][0-9A-Za-z_-]*)\\s*(\\=(?!=))\\s*"},{captures:{1:{name:"meta.mapping.key.hcl string.quoted.double.hcl"},2:{name:"punctuation.definition.string.begin.hcl"},3:{name:"punctuation.definition.string.end.hcl"},4:{name:"keyword.operator.hcl"}},comment:"String object key",match:'^\\s*((").*("))\\s*(\\=)\\s*'},{begin:"^\\s*\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Computed object key (any expression between parens)",end:"(\\))\\s*(=|:)\\s*",endCaptures:{1:{name:"punctuation.section.parens.end.hcl"},2:{name:"keyword.operator.hcl"}},name:"meta.mapping.key.hcl",patterns:[{include:"#attribute_access"},{include:"#attribute_splat"}]},{include:"#object_key_values"}]},operators:{patterns:[{match:"\\>\\=",name:"keyword.operator.hcl"},{match:"\\<\\=",name:"keyword.operator.hcl"},{match:"\\=\\=",name:"keyword.operator.hcl"},{match:"\\!\\=",name:"keyword.operator.hcl"},{match:"\\+",name:"keyword.operator.arithmetic.hcl"},{match:"\\-",name:"keyword.operator.arithmetic.hcl"},{match:"\\*",name:"keyword.operator.arithmetic.hcl"},{match:"\\/",name:"keyword.operator.arithmetic.hcl"},{match:"\\%",name:"keyword.operator.arithmetic.hcl"},{match:"\\&\\&",name:"keyword.operator.logical.hcl"},{match:"\\|\\|",name:"keyword.operator.logical.hcl"},{match:"\\!",name:"keyword.operator.logical.hcl"},{match:"\\>",name:"keyword.operator.hcl"},{match:"\\<",name:"keyword.operator.hcl"},{match:"\\?",name:"keyword.operator.hcl"},{match:"\\.\\.\\.",name:"keyword.operator.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{match:"\\=\\>",name:"keyword.operator.hcl"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Parens - matched *after* function syntax",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},patterns:[{include:"#comments"},{include:"#expressions"}]},string_interpolation:{begin:"(?<![%$])([%$]{)",beginCaptures:{1:{name:"keyword.other.interpolation.begin.hcl"}},comment:"String interpolation",end:"\\}",endCaptures:{0:{name:"keyword.other.interpolation.end.hcl"}},name:"meta.interpolation.hcl",patterns:[{comment:"Trim left whitespace",match:"\\~\\s",name:"keyword.operator.template.left.trim.hcl"},{comment:"Trim right whitespace",match:"\\s\\~",name:"keyword.operator.template.right.trim.hcl"},{comment:"if/else/endif and for/in/endfor directives",match:"\\b(if|else|endif|for|in|endfor)\\b",name:"keyword.control.hcl"},{include:"#expressions"},{include:"#local_identifiers"}]},string_literals:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.hcl"}},comment:"Strings",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.hcl"}},name:"string.quoted.double.hcl",patterns:[{include:"#string_interpolation"},{include:"#char_escapes"}]},tuple_for_expression:{begin:"(\\[)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.brackets.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{include:"#for_expression_body"}]}},scopeName:"source.hcl"});var n=[e];export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"./DGTPbQyx.js";import n from"./Wkyh6-uf.js";import t from"./DanM9F4-.js";import a from"./lOwNZ7_V.js";import s from"./PYrcYqZ1.js";import r from"./C31OBGbl.js";import"./BSSAUge4.js";import"./A4Fa72hX.js";import"./Bszlo9K_.js";import"./CV8JdvfZ.js";import"./tgs8ujlj.js";import"./DKrjeWrU.js";import"./CzrtbdtR.js";const m=Object.freeze({displayName:"Ruby Haml",fileTypes:["haml","html.haml"],foldingStartMarker:"^\\s*([-%#\\:\\.\\w\\=].*)\\s$",foldingStopMarker:"^\\s*$",name:"haml",patterns:[{begin:"^(\\s*)==",contentName:"string.quoted.double.ruby",end:"$\\n*",patterns:[{include:"#interpolated_ruby"}]},{begin:"^(\\s*):ruby",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{captures:{1:{name:"punctuation.definition.prolog.haml"}},match:"^(!!!)($|\\s.*)",name:"meta.prolog.haml"},{begin:"^(\\s*):javascript",end:"^(?!\\1\\s+|$\\n*)",name:"js.haml",patterns:[{include:"source.js"}]},{begin:"^(\\s*)%script",end:"^(?!\\1\\s+|$\\n*)",name:"js.inline.haml",patterns:[{include:"source.js"}]},{begin:"^(\\s*):ruby$",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{captures:{1:{name:"punctuation.section.comment.haml"}},match:"^(\\s*)(\\/\\[[^\\]].*?$\\n?)",name:"comment.line.slash.haml"},{begin:"^(\\s*)(\\-\\#|\\/|\\-\\s*\\/\\*+)",beginCaptures:{2:{name:"punctuation.section.comment.haml"}},end:"^(?!\\1\\s+|\\n)",name:"comment.block.haml",patterns:[{include:"text.haml"}]},{begin:"^\\s*(?:((%)([-\\w:]+))|(?=\\.|#))",captures:{1:{name:"meta.tag.haml"},2:{name:"punctuation.definition.tag.haml"},3:{name:"entity.name.tag.haml"}},end:"$|(?!\\.|#|\\{|\\(|\\[|&|=|-|~|!=|&=|/)",patterns:[{begin:"==",contentName:"string.quoted.double.ruby",end:"$\\n?",patterns:[{include:"#interpolated_ruby"}]},{captures:{1:{name:"entity.other.attribute-name.class"}},match:"(\\.[\\w\\-\\:]+)",name:"meta.selector.css"},{captures:{1:{name:"entity.other.attribute-name.id"}},match:"(#[\\w-]+)",name:"meta.selector.css"},{begin:"(?<!\\#)\\{(?=.*(,|(do)|\\{|\\}|\\||(\\#.*)|\\R)\\s*)",end:"\\s*\\}(?!\\s*\\,)(?!\\s*\\|)(?!\\#\\{.*\\})",name:"meta.section.attributes.haml",patterns:[{include:"source.ruby"},{include:"#continuation"},{include:"#rubyline"}]},{begin:"\\(",end:"\\)",name:"meta.section.attributes.plain.haml",patterns:[{match:"([\\w-]+)",name:"constant.other.symbol.ruby"},{match:"\\=",name:"punctuation"},{include:"#variables"},{begin:'"',end:'"',name:"string.quoted.double.ruby",patterns:[{match:"\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",name:"constant.character.escape.ruby"},{include:"#interpolated_ruby"}]},{include:"#interpolated_ruby"}]},{begin:"\\[(?=.+(,|\\[|\\]|\\||(\\#.*))\\s*)",end:"\\s*\\](?!.*(?!\\#\\[)\\])",name:"meta.section.object.haml",patterns:[{include:"source.ruby"},{include:"#continuation"},{include:"#rubyline"}]},{include:"#interpolated_ruby_line"},{include:"#rubyline"},{match:"/",name:"punctuation.terminator.tag.haml"}]},{begin:"^(\\s*):(ruby|opal)$",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{begin:"^(\\s*):ruby$",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{begin:"^(\\s*):(style|sass)$",end:"^(?=\\1\\s+|$\\n*)",name:"source.sass.embedded.filter.haml",patterns:[{include:"source.sass"}]},{begin:"^(\\s*):coffee(script)?",end:"^(?!\\1\\s+|$\\n*)",name:"source.coffee.embedded.filter.haml",patterns:[{include:"source.coffee"}]},{begin:"^(\\s*):plain$",end:"^(?=\\1\\s+|$\\n*)",name:"text.plain.embedded.filter.haml",patterns:[{include:"text.plain"}]},{begin:"^(\\s*)(:ruby)",beginCaptures:{2:{name:"keyword.control.filter.haml"}},end:"(?m:(?<=\\n)(?!\\1\\s+|$\\n*))",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{begin:"^(\\s*)(:sass)",beginCaptures:{2:{name:"keyword.control.filter.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"source.embedded.filter.sass",patterns:[{include:"source.sass"}]},{begin:"^(\\s*):(styles|sass)$",end:"^(?=\\1\\s+|$\\n*)",name:"source.sass.embedded.filter.haml",patterns:[{include:"source.sass"}]},{begin:"^(\\s*):plain$",end:"^(?=\\1\\s+|$\\n*)",name:"text.plain.embedded.filter.haml",patterns:[{include:"text.plain"}]},{captures:{1:{name:"meta.escape.haml"}},match:"^\\s*(\\.)"},{begin:"^\\s*(?==|-|~|!=|&=)",end:"$",patterns:[{include:"#interpolated_ruby_line"},{include:"#rubyline"}]},{begin:"^(\\s*)(:php)",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.php",patterns:[{include:"text.html.php#language"}]},{begin:"^(\\s*)(:markdown)",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.markdown",patterns:[{include:"text.html.markdown"}]},{begin:"^(\\s*)(:(css|styles?))$",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"^(\\s*)(:sass)$",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.sass",patterns:[{include:"source.sass"}]},{begin:"^(\\s*)(:scss)$",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.scss",patterns:[{include:"source.scss"}]}],repository:{continuation:{captures:{1:{name:"punctuation.separator.continuation.haml"}},match:"(\\|)\\s*\\n"},interpolated_ruby:{patterns:[{captures:{0:{name:"punctuation.section.embedded.ruby"},1:{name:"source.ruby.embedded.source.empty"}},match:"#\\{(\\})",name:"source.ruby.embedded.source"},{begin:"#\\{",captures:{0:{name:"punctuation.section.embedded.ruby"}},end:"(\\})",name:"source.ruby.embedded.source",patterns:[{include:"#nest_curly_and_self"},{include:"source.ruby"}]},{include:"#variables"}]},interpolated_ruby_line:{begin:"!?==",contentName:"string.source.ruby.embedded.haml",end:"$",name:"meta.line.ruby.interpolated.haml",patterns:[{include:"#interpolated_ruby"},{include:"source.ruby#escaped_char"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"},{include:"source.ruby"}]}]},rubyline:{begin:"(&|!)?(=|-|~)",contentName:"source.ruby.embedded.haml",end:"((do|\\{)( \\|[.*]+\\|)?)$|$|^(?!.*\\|\\s*)$\\n?",endCaptures:{1:{name:"source.ruby.embedded.html"},2:{name:"keyword.control.ruby.start-block"}},name:"meta.line.ruby.haml",patterns:[{captures:{1:{name:"keyword.control.php"}},match:"\\s+((elseif|foreach|switch|declare|default|use))(?=\\s|\\()"},{captures:{1:{name:"keyword.control.import.include.php"}},match:"\\s+(require_once|include_once)(?=\\s|\\()"},{match:"\\s+(catch|try|throw|exception|finally|die)(?=\\s|\\(|\\n*)",name:"keyword.control.exception.php"},{captures:{1:{name:"storage.type.function.php"}},match:"\\s+(function\\s*)((?=\\())"},{captures:{1:{name:"keyword.control.php"}},match:"\\s+(use\\s*)((?=\\())"},{match:"(\\||,|<|do|\\{)\\s*(\\#.*)?$\\n*",name:"source.ruby",patterns:[{include:"#rubyline"}]},{comment:"Hack to let ruby comments work in this context properly",match:"#.*$",name:"comment.line.number-sign.ruby"},{include:"source.ruby"},{include:"#continuation"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]}},scopeName:"text.haml",embeddedLangs:["ruby","javascript","sass","coffee","markdown","css"]});var _=[...e,...n,...t,...a,...s,...r,m];export{_ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"./BSSAUge4.js";import t from"./C31OBGbl.js";import n from"./Wkyh6-uf.js";import a from"./DOt8O2FJ.js";const i=Object.freeze({displayName:"Handlebars",name:"handlebars",patterns:[{include:"#yfm"},{include:"#extends"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#end_block"},{include:"#else_token"},{include:"#partial_and_var"},{include:"#inline_script"},{include:"#html_tags"},{include:"text.html.basic"}],repository:{block_comments:{patterns:[{begin:"\\{\\{!--",end:"--\\}\\}",name:"comment.block.handlebars",patterns:[{match:"@\\w*",name:"keyword.annotation.handlebars"},{include:"#comments"}]},{begin:"<!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"-{2,3}\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"}]}]},block_helper:{begin:"(\\{\\{)(~?\\#)([-a-zA-Z0-9_\\./>]+)\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*",beginCaptures:{1:{name:"support.constant.handlebars"},2:{name:"support.constant.handlebars keyword.control"},3:{name:"support.constant.handlebars keyword.control"},4:{name:"variable.parameter.handlebars"},5:{name:"support.constant.handlebars"},6:{name:"variable.parameter.handlebars"},7:{name:"support.constant.handlebars"}},end:"(~?\\}\\})",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.block.start.handlebars",patterns:[{include:"#string"},{include:"#handlebars_attribute"}]},comments:{patterns:[{begin:"\\{\\{!",end:"\\}\\}",name:"comment.block.handlebars",patterns:[{match:"@\\w*",name:"keyword.annotation.handlebars"},{include:"#comments"}]},{begin:"<!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"-{2,3}\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"}]}]},else_token:{begin:"(\\{\\{)(~?else)(@?\\s(if)\\s([-a-zA-Z0-9_\\.\\(\\s\\)/]+))?",beginCaptures:{1:{name:"support.constant.handlebars"},2:{name:"support.constant.handlebars keyword.control"},3:{name:"support.constant.handlebars"},4:{name:"variable.parameter.handlebars"}},end:"(~?\\}\\}\\}*)",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.inline.else.handlebars"},end_block:{begin:"(\\{\\{)(~?/)([a-zA-Z0-9/_\\.-]+)\\s*",beginCaptures:{1:{name:"support.constant.handlebars"},2:{name:"support.constant.handlebars keyword.control"},3:{name:"support.constant.handlebars keyword.control"}},end:"(~?\\}\\})",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.block.end.handlebars",patterns:[]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#\\d+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},"escaped-double-quote":{match:'\\\\"',name:"constant.character.escape.js"},"escaped-single-quote":{match:"\\\\'",name:"constant.character.escape.js"},extends:{patterns:[{begin:"(\\{\\{!<)\\s([-a-zA-Z0-9_\\./]+)",beginCaptures:{1:{name:"support.function.handlebars"},2:{name:"support.class.handlebars"}},end:"(\\}\\})",endCaptures:{1:{name:"support.function.handlebars"}},name:"meta.preprocessor.handlebars"}]},handlebars_attribute:{patterns:[{include:"#handlebars_attribute_name"},{include:"#handlebars_attribute_value"}]},handlebars_attribute_name:{begin:"\\b([-a-zA-Z0-9_\\.]+)\\b=",captures:{1:{name:"variable.parameter.handlebars"}},end:`(?='|"|)`,name:"entity.other.attribute-name.handlebars"},handlebars_attribute_value:{begin:"([-a-zA-Z0-9_\\./]+)\\b",captures:{1:{name:"variable.parameter.handlebars"}},end:`('|"|)`,name:"entity.other.attribute-value.handlebars",patterns:[{include:"#string"}]},html_tags:{patterns:[{begin:"(<)([a-zA-Z0-9:-]+)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(>(<)/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"meta.scope.between-tag-pair.html"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag_generic_attribute"},{include:"#string"}]},{begin:"<!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{begin:"<!",captures:{0:{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(DOCTYPE|doctype)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{begin:"(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.style.html"},3:{name:"punctuation.definition.tag.html"}},end:"(</)((?i:style))(>)(?:\\s*\\n)?",name:"source.css.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"}},end:"(?=</(?i:style))",patterns:[{include:"source.css"}]}]},{begin:"(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",endCaptures:{2:{name:"punctuation.definition.tag.html"}},name:"source.js.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?<!</(?:script|SCRIPT))(>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(</)((?i:script))",patterns:[{captures:{1:{name:"punctuation.definition.comment.js"}},match:"(//).*?((?=<\/script)|$\\n?)",name:"comment.line.double-slash.js"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.js"}},end:"\\*/|(?=<\/script)",name:"comment.block.js"},{include:"source.js"}]}]},{begin:"(</?)((?i:body|head|html)\\b)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.structure.any.html"}},end:"(>)",name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.inline.any.html"}},end:"((?: ?/)?>)",name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9:-]+)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"}},end:"(>)",name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9{}:-]+)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.tokenised.html"}},end:"(>)",name:"meta.tag.tokenised.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"}]},inline_script:{begin:`(?:^\\s+)?(<)((?i:script))\\b(?:.*(type)=(["'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)["']))(?![^>]*/>)`,beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"},3:{name:"entity.other.attribute-name.html"},4:{name:"string.quoted.double.html"}},end:"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",endCaptures:{2:{name:"punctuation.definition.tag.html"}},name:"source.handlebars.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?<!</(?:script|SCRIPT))(>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(</)((?i:script))",patterns:[{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#end_block"},{include:"#else_token"},{include:"#partial_and_var"},{include:"#html_tags"},{include:"text.html.basic"}]}]},partial_and_var:{begin:"(\\{\\{~?\\{*(>|!<)*)\\s*(@?[-a-zA-Z0-9$_\\./]+)*",beginCaptures:{1:{name:"support.constant.handlebars"},3:{name:"variable.parameter.handlebars"}},end:"(~?\\}\\}\\}*)",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.inline.other.handlebars",patterns:[{include:"#string"},{include:"#handlebars_attribute"}]},string:{patterns:[{include:"#string-single-quoted"},{include:"#string-double-quoted"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.handlebars",patterns:[{include:"#escaped-double-quote"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#else_token"},{include:"#end_block"},{include:"#partial_and_var"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.handlebars",patterns:[{include:"#escaped-single-quote"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#else_token"},{include:"#end_block"},{include:"#partial_and_var"}]},"tag-stuff":{patterns:[{include:"#tag_id_attribute"},{include:"#tag_generic_attribute"},{include:"#string"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#end_block"},{include:"#else_token"},{include:"#partial_and_var"}]},tag_generic_attribute:{begin:"\\b([a-zA-Z0-9_-]+)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.generic.html"},2:{name:"punctuation.separator.key-value.html"}},end:`(?<='|"|)`,name:"entity.other.attribute-name.html",patterns:[{include:"#string"}]},tag_id_attribute:{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:`(?<='|"|)`,name:"meta.attribute-with-value.id.html",patterns:[{include:"#string"}]},yfm:{patterns:[{begin:"(?<!\\s)---\\n$",end:"^---\\s",name:"markup.raw.yaml.front-matter",patterns:[{include:"source.yaml"}]}]}},scopeName:"text.html.handlebars",embeddedLangs:["html","css","javascript","yaml"],aliases:["hbs"]});var d=[...e,...t,...n,...a,i];export{d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=Object.freeze({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*[a-z0-9"'])`,comment:"Name list.",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"}},comment:"IO generic specification.",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(?:(backspace)|(close)|(endfile)|(format)|(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.format.fortran"},5:{name:"keyword.control.inquire.fortran"},6:{name:"keyword.control.open.fortran"},7:{name:"keyword.control.read.fortran"},8:{name:"keyword.control.rewind.fortran"},9:{name:"keyword.control.write.fortran"},10:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"keyword.control.flush.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\b(flush)\\b"}]},"abstract-attribute":{captures:{1:{name:"storage.modifier.fortran.fortran"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1977 standard.",match:"(\\-)|(\\+)|\\/(?!\\/|\\=|\\\\)|(\\*\\*)|(\\*)"},"array-constructor":{begin:"(?=\\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"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Assignment generic specification.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#assignment-operator"},{include:"#invalid-word"}]},"assignment-operator":{comment:"Introduced in the Fortran 1977 standard.",match:"(?<!\\/|\\=|\\<|\\>)(\\=)(?!\\=|\\>)",name:"keyword.operator.assignment.fortran"},"associate-construct":{begin:"(?i)\\b(associate)\\b(?=\\s*\\()",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",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*::)",comment:"Attribute list.",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"}},comment:"Introduced in the Fortran 2008 standard.",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:[{begin:"(?i)\\s*\\b(call)\\b",beginCaptures:{1:{name:"keyword.control.call.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.call.fortran",patterns:[{begin:"(?i)\\G\\s*([a-z]\\w*)(%)([a-z]\\w*)\\b\\s*(?=\\()",beginCaptures:{1:{name:"variable.other.fortran"},2:{name:"keyword.accessor.fortran"},3:{name:"entity.name.function.subroutine.fortran"}},comment:"type-bound subroutines",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{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"}},comment:"User defined subroutine.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"entity.name.function.subroutine.fortran"}},comment:"User defined subroutine.",match:"(?i)\\G\\s*\\b([a-z]\\w*)\\b(?=\\s*[;!\\n])"},{include:"$base"}]}]},"character-type":{comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 2008 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 2008 standard.",match:"(?i)\\G\\s*\\b(contiguous)\\b"},"continue-statement":{patterns:[{begin:"(?i)\\s*\\b(continue)\\b",beginCaptures:{1:{name:"keyword.control.continue.fortran"}},comment:"Introduced in the Fortran 1977 standard.",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":{comment:"Statements controlling the flow of the program",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:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"constant.numeric.hexadecimal.cpp"},5:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},6:{name:"punctuation.separator.constant.numeric.cpp"},7:{name:"keyword.other.unit.exponent.hexadecimal.cpp"},8:{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},9:{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},10:{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},11:{name:"keyword.other.unit.suffix.floating-point.cpp"},12:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)"},{captures:{1:{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},2:{name:"punctuation.separator.constant.numeric.cpp"},3:{name:"constant.numeric.decimal.point.cpp"},4:{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},5:{name:"punctuation.separator.constant.numeric.cpp"},6:{name:"keyword.other.unit.exponent.decimal.cpp"},7:{name:"keyword.operator.plus.exponent.decimal.cpp"},8:{name:"keyword.operator.minus.exponent.decimal.cpp"},9:{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},10:{name:"keyword.other.unit.suffix.floating-point.cpp"},11:{name:"keyword.other.unit.user-defined.cpp"}},match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)"},{captures:{1:{name:"keyword.other.unit.binary.cpp"},2:{name:"constant.numeric.binary.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"keyword.other.unit.suffix.integer.cpp"},5:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)"},{captures:{1:{name:"keyword.other.unit.octal.cpp"},2:{name:"constant.numeric.octal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"keyword.other.unit.suffix.integer.cpp"},5:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)"},{captures:{1:{name:"keyword.other.unit.hexadecimal.cpp"},2:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"keyword.other.unit.exponent.hexadecimal.cpp"},5:{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},6:{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},7:{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},8:{name:"keyword.other.unit.suffix.integer.cpp"},9:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)"},{captures:{1:{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},2:{name:"punctuation.separator.constant.numeric.cpp"},3:{name:"keyword.other.unit.exponent.decimal.cpp"},4:{name:"keyword.operator.plus.exponent.decimal.cpp"},5:{name:"keyword.operator.minus.exponent.decimal.cpp"},6:{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},7:{name:"keyword.other.unit.suffix.integer.cpp"},8:{name:"keyword.other.unit.user-defined.cpp"}},match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)"},{match:"(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",name:"invalid.illegal.constant.numeric.cpp"}]}]}},match:"(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*"},"critical-construct":{begin:"(?i)\\b(critical)\\b",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 1995 standard.",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)",comment:"Introduced in the Fortran 1995 standard.",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"}},comment:"Derived type parameter.",match:"(?i)\\b(integer)\\s*(,)\\s*(kind|len)\\s*(?:(::)\\s*([a-z]\\w*)?)?\\s*(?=[;!\\n])"},"derived-type-component-procedure-specification":{begin:"(?i)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",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))`,comment:"Introduced in the Fortran 1995 standard.",end:"(?=[;!\\n])",name:"meta.specification.derived-type.fortran",patterns:[{include:"#types"},{include:"#line-continuation-operator"},{begin:"(?=\\s*(,|::))",comment:"Attribute list.",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)(?=\\b(?:private)\\b)",comment:"Introduced in the Fortran 1995 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.final.fortran",patterns:[{begin:"(?=\\s*(::))",comment:"Attribute list.",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"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.generic.fortran",patterns:[{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",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])",comment:"Name list.",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)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",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*(,|::))",comment:"Attribute list.",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)",comment:"Derived type specification block.",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"}},comment:"Derived type contains block.",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"}},comment:"Introduced in the Fortran 1995 standard.",match:"\\s*(\\%)"},"dimension-attribute":{begin:"(?i)\\s*\\b(dimension)(?=\\s*\\()",beginCaptures:{1:{name:"storage.modifier.dimension.fortran"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?i)(?:^|(?<=;))(?=\\s*\\b\\2\\b)",name:"meta.do.labeled.fortran",patterns:[{begin:"(?i)\\G(?:\\s*(,)|(?!\\s*[;!\\n]))",beginCaptures:{1:{name:"punctuation.comma.fortran"}},comment:"Loop control.",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"}},comment:"Introduced in the Fortran 1995 standard.",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"}},comment:"Loop control.",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)",comment:"Loop body.",end:"(?i)(?=\\s*\\b(continue|end\\s*do)\\b)",patterns:[{include:"$base"}]}]}]},"dummy-variable":{captures:{1:{name:"variable.parameter.fortran"}},comment:"dummy variable",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"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(elemental)\\b"},"entry-statement":{patterns:[{begin:"(?i)\\s*\\b(entry)\\b",beginCaptures:{1:{name:"keyword.control.entry.fortran"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",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*(,|::))",comment:"Attribute list.",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"}},comment:"Introduced in the Fortran 2008 standard.",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|event wait)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.event.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(external)\\b"},"fail-image-statement":{captures:{1:{name:"keyword.control.fail-image.fortran"}},comment:"Introduced in the Fortran 2018 standard.",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"}},comment:"Introduced in the Fortran 1995 standard.",end:"(?<!\\G)",patterns:[{begin:"(?i)\\G(?!\\s*[;!\\n])",comment:"Loop control.",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"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.form-team.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"function-definition":{begin:`(?i)(?=([^:'";!\\n](?!\\bend)(?!\\bsubroutine\\b))*\\bfunction\\b)`,comment:"Function program unit. Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.function.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bfunction\\b))",comment:"Function attribute list.",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"}},comment:"Captures the function keyword",end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.fortran"}},comment:"Function body.",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])",comment:"Rest of the first line in function construct.",end:"(?=[;!\\n])",name:"meta.function.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#result-statement"},{include:"#language-binding-attribute"}]},{begin:"(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*function\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*function\\b))",name:"meta.block.specification.function.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Assignment generic interface.",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"}},comment:"Operator generic interface.",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"}},comment:"Read/Write generic interface.",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"}},comment:"Generic interface.",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"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"else if statement",end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{captures:{1:{name:"keyword.control.then.fortran"},2:{name:"meta.label.elseif.fortran"}},comment:"capture the label if present",match:"(?i)\\b(then)\\b(\\s*[a-z]\\w*)?"},{include:"#invalid-word"}]},{begin:"(?i)\\b(else)\\b",beginCaptures:{1:{name:"keyword.control.else.fortran"}},comment:"else block",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{begin:"(?!(\\s*(;|!|\\n)))",comment:"rest of else line",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"meta.label.else.fortran"},2:{name:"invalid.error.label.else.fortran"}},comment:"capture the label if present",match:"\\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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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)`,comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.procedure.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bprocedure\\b))",comment:"Attribute list.",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"}},comment:"Procedure statement.",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"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Intrinsic functions introduced in the Fortran 2008 standard.",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"}},comment:"Functions accessable through the intrinsic FORTRAN_SPECIAL_FUNCTIONS module. Introduced in the Fortran 2008 standard.",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"}},comment:"Intrinsic functions introduced in the Fortran 2003 standard.",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"}},comment:"Functions accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.",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"}},comment:"Functions accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.",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"}},comment:"Functions accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",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"}},comment:"Functions accessable through the intrinsic ISO_FORTRAN_ENV module. Introduced in the Fortran 2003 standard.",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"}},comment:"Intrinsic functions introduced in the Fortran 1995 standard.",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"}},comment:"Intrinsic functions introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\b([icd]?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"}},comment:"Intrinsic functions introduced in the Fortran 1977 standard.",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"}},comment:"Intrinsic subroutines introduced in the Fortran 1990 standard.",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"}},comment:"Intrinsic subroutines introduced in the Fortran 1995 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(ieee_(get|set)_(rounding|underflow)_mode)\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Subroutines accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(ieee_(get|set)_(flag|halting_mode|status))\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Subroutines accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(c_f_(pointer|procpointer))\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Subroutines accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",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"}},comment:"Intrinsic subroutines introduced in the Fortran 2008 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]}]},"invalid-character":{match:"(?i)[^\\s;!\\n]+",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"}},comment:"Introduced in Fortran 2003 standard.",end:"(?:\\)|(?=\\n))",patterns:[{match:"(?i)\\b(c)\\b",name:"variable.parameter.fortran"},{include:"#dummy-variable"},{include:"$base"}]},"line-continuation-operator":{comment:"Operator that allows a line to be continued on the next line.",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"}},comment:"Logical constants",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:[{comment:"Introduced in the Fortran 1977 standard.",match:"(?i)(\\s*\\.(and|eq|eqv|le|lt|ge|gt|ne|neqv|not|or)\\.)",name:"keyword.logical.fortran"},{comment:"Introduced in the Fortran 1990 standard.",match:"(\\=\\=|\\/\\=|\\>\\=|(?<!\\=)\\>|\\<\\=|\\<)",name:"keyword.logical.fortran.modern"}]},"logical-type":{comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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)`,comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Module body.",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",comment:"Module specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*module\\b))",name:"meta.block.specification.module.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Module contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*module\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"name-list":{begin:"(?i)(?=\\s*[a-z])",comment:"Name list.",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)",comment:"Introduced in the Fortran 1990 standard.",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)?([^\\s;!\\n]*?)?(?=\\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"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",patterns:[{include:"$base"}]},"non-intrinsic-attribute":{captures:{1:{name:"storage.modifier.non-intrinsic.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(non_intrinsic)\\b"},"non-overridable-attribute":{captures:{1:{name:"storage.modifier.non-overridable.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(non_overridable)\\b"},"nopass-attribute":{captures:{1:{name:"storage.modifier.nopass.fortran"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.nullify.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"numeric-constant":{comment:"Numeric constants",match:"(?i)[\\+\\-]?(\\b\\d+\\.?\\d*|\\.\\d+)(_\\w+|d[\\+\\-]?\\d+|e[\\+\\-]?\\d+(_\\w+)?)?(?![a-z_])",name:"constant.numeric.fortran"},"numeric-type":{comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Operator generic specification.",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"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(optional)\\b"},"parameter-attribute":{captures:{1:{name:"storage.modifier.parameter.fortran"}},comment:"Introduced in the Fortran 1977 standard.",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:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{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:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]},"pass-attribute":{comment:"Introduced in the Fortran 2003 standard.",patterns:[{begin:"(?i)\\s*\\b(pass)\\s*\\(",beginCaptures:{1:{name:"storage.modifier.pass.fortran"}},comment:"Pass attribute with argument.",end:"\\)|(?=\\n)",patterns:[]},{captures:{1:{name:"storage.modifier.pass.fortran"}},comment:"Pass attribute without argument.",match:"(?i)\\s*\\b(pass)\\b"}]},"pause-statement":{begin:"(?i)\\s*\\b(pause)\\b",beginCaptures:{1:{name:"keyword.control.pause.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.pause.fortran",patterns:[{include:"#constants"},{include:"#invalid-character"}]},"pointer-attribute":{captures:{1:{name:"storage.modifier.pointer.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(pointer)\\b"},"pointer-operators":{comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"division regex is different than in main fortran",match:"(\\-)|(\\+)|(\\/)|(\\*)"},"preprocessor-assignment-operator":{comment:"assignments with = are not allowed",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"}},comment:"and:&&, bitand:&, or:||, bitor:|, not eq:!=, not:!, xor:^, compl:~",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"}},comment:"Double quote string",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"}},comment:"Single quote string",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"}},comment:"Introduced in the Fortran 1990 standard.",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)`,comment:"Procedure program unit. Introduced in the Fortran 2008 standard.",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"}},comment:"Procedure body.",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])",comment:"Rest of the first line in procedure construct - should be empty.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#invalid-character"}]},{begin:"(?i)(?!\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",comment:"Specification and execution block.",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"}},comment:"Contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$self"}]}]}]}]},"procedure-name":{captures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure name.",match:"(?i)\\s*\\b([a-z]\\w*)\\b"},"procedure-name-list":{begin:"(?i)(?=\\s*[a-z])",comment:"Name list.",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)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",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":{comment:"Introduced in the Fortran ???? standard.",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)",comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Program body.",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",comment:"Program specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.specification.program.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Program contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"protected-attribute":{captures:{1:{name:"storage.modifier.protected.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(protected)\\b"},"public-attribute":{captures:{1:{name:"storage.modifier.public.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(public)\\b"},"pure-attribute":{captures:{1:{name:"storage.modifier.impure.fortran"},2:{name:"storage.modifier.pure.fortran"}},comment:"Introduced in the Fortran 1995 standard.",match:"(?i)\\s*\\b(?:(impure)|(pure))\\b"},"recursive-attribute":{captures:{1:{name:"storage.modifier.non_recursive.fortran"},2:{name:"storage.modifier.recursive.fortran"}},comment:"Introduced in the Fortran 1977 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.return.fortran",patterns:[{include:"#invalid-character"}]},"save-attribute":{captures:{1:{name:"storage.modifier.save.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(save)\\b"},"select-case-construct":{begin:"(?i)\\b(select\\s*case)\\b",beginCaptures:{1:{name:"keyword.control.selectcase.fortran"}},comment:"Select case construct. Introduced in the Fortran 1990 standard.",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"}},comment:"Select rank construct. Introduced in the Fortran 2008 standard.",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"}},comment:"Select type construct. Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 20?? standard.",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"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.stop.fortran",patterns:[{include:"#constants"},{include:"#string-operators"},{include:"#invalid-character"}]},"string-constant":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{applyEndPatternLast:1,begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",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"}},comment:"String",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"}},comment:"Operator that allows a line to be continued on the next line.",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":{comment:"Introduced in the Fortran 19?? standard.",match:"(\\/\\/)",name:"keyword.other.concatination.fortran"},"submodule-definition":{begin:"(?i)(?=\\b(submodule)\\s*\\()",comment:"Introduced in the Fortran 2008 standard.",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"}},comment:"Submodule body.",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",comment:"Submodule specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.specification.submodule.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Submodule contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"subroutine-definition":{begin:`(?i)(?=([^:'";!\\n](?!\\bend))*\\bsubroutine\\b)`,comment:"Subroutine program unit. Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.subroutine.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bsubroutine\\b))",comment:"Attribute list.",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"}},comment:"Subroutine body.",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])",comment:"Rest of the first line in subroutine construct.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#language-binding-attribute"}]},{begin:"(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.specification.subroutine.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"sync-all-statement":{begin:"(?i)\\b(sync all|sync memory)(\\s*(?=\\())?",beginCaptures:{1:{name:"keyword.control.sync-all-memory.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",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|sync team)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.sync-images-team.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",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"}},comment:"Introduced in the Fortran 1990 standard.",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))`,comment:"Supported types for function and escape :: if function is used as a variable name (which is bad practice).",end:"(?=[\\);!\\n])",name:"meta.specification.type.fortran",patterns:[{include:"#types"},{begin:"(?=\\s*(,|::))",comment:"Attribute list.",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"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.use.fortran",patterns:[{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",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"}},comment:"Introduced in the Fortran 2003 standard.",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"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(volatile)\\b"},"where-construct":{patterns:[{applyEndPatternLast:1,begin:"(?i)\\b(where)\\b",beginCaptures:{1:{name:"keyword.control.where.fortran"}},comment:"Introduced in the Fortran 1990 standard.",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:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{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"}},comment:"Introduced in the Fortran 1995 standard.",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"]});var n=[e];export{n as default};
|