@shikijs/langs-precompiled 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dist/abap.mjs +1 -1
  2. package/dist/actionscript-3.mjs +1 -1
  3. package/dist/ada.mjs +1 -1
  4. package/dist/angular-expression.mjs +1 -1
  5. package/dist/angular-html.mjs +1 -1
  6. package/dist/angular-inline-style.mjs +1 -1
  7. package/dist/angular-inline-template.mjs +1 -1
  8. package/dist/angular-ts.mjs +1 -1
  9. package/dist/apache.mjs +1 -1
  10. package/dist/apex.mjs +1 -1
  11. package/dist/apl.mjs +1 -1
  12. package/dist/applescript.mjs +1 -1
  13. package/dist/ara.mjs +1 -1
  14. package/dist/asciidoc.mjs +1 -1
  15. package/dist/asm.mjs +1 -1
  16. package/dist/astro.mjs +1 -1
  17. package/dist/awk.mjs +1 -1
  18. package/dist/ballerina.mjs +1 -1
  19. package/dist/bat.mjs +1 -1
  20. package/dist/beancount.mjs +1 -1
  21. package/dist/berry.mjs +1 -1
  22. package/dist/bicep.mjs +1 -1
  23. package/dist/blade.mjs +1 -1
  24. package/dist/bsl.mjs +1 -1
  25. package/dist/c.mjs +1 -1
  26. package/dist/cadence.mjs +1 -1
  27. package/dist/cairo.mjs +1 -1
  28. package/dist/clarity.mjs +1 -1
  29. package/dist/clojure.mjs +1 -1
  30. package/dist/cmake.mjs +1 -1
  31. package/dist/cobol.mjs +1 -1
  32. package/dist/codeql.mjs +1 -1
  33. package/dist/coffee.mjs +1 -1
  34. package/dist/common-lisp.mjs +1 -1
  35. package/dist/coq.mjs +1 -1
  36. package/dist/cpp-macro.mjs +1 -1
  37. package/dist/cpp.mjs +1 -1
  38. package/dist/crystal.mjs +1 -1
  39. package/dist/csharp.mjs +1 -1
  40. package/dist/css.mjs +1 -1
  41. package/dist/cue.mjs +1 -1
  42. package/dist/cypher.mjs +1 -1
  43. package/dist/d.mjs +1 -1
  44. package/dist/dart.mjs +1 -1
  45. package/dist/dax.mjs +1 -1
  46. package/dist/desktop.mjs +1 -1
  47. package/dist/diff.mjs +1 -1
  48. package/dist/dotenv.mjs +1 -1
  49. package/dist/dream-maker.mjs +1 -1
  50. package/dist/elixir.mjs +1 -1
  51. package/dist/elm.mjs +1 -1
  52. package/dist/emacs-lisp.mjs +1 -1
  53. package/dist/erlang.mjs +1 -1
  54. package/dist/es-tag-css.mjs +1 -1
  55. package/dist/es-tag-glsl.mjs +1 -1
  56. package/dist/es-tag-html.mjs +1 -1
  57. package/dist/es-tag-sql.mjs +1 -1
  58. package/dist/es-tag-xml.mjs +1 -1
  59. package/dist/fennel.mjs +1 -1
  60. package/dist/fish.mjs +1 -1
  61. package/dist/fluent.mjs +1 -1
  62. package/dist/fortran-free-form.mjs +1 -1
  63. package/dist/fsharp.mjs +1 -1
  64. package/dist/gdresource.mjs +1 -1
  65. package/dist/gdscript.mjs +1 -1
  66. package/dist/gdshader.mjs +1 -1
  67. package/dist/genie.mjs +1 -1
  68. package/dist/git-rebase.mjs +1 -1
  69. package/dist/gleam.mjs +1 -1
  70. package/dist/glimmer-js.mjs +1 -1
  71. package/dist/glimmer-ts.mjs +1 -1
  72. package/dist/glsl.mjs +1 -1
  73. package/dist/gnuplot.mjs +1 -1
  74. package/dist/go.mjs +1 -1
  75. package/dist/graphql.mjs +1 -1
  76. package/dist/groovy.mjs +1 -1
  77. package/dist/hack.mjs +1 -1
  78. package/dist/haml.mjs +1 -1
  79. package/dist/handlebars.mjs +1 -1
  80. package/dist/haskell.mjs +1 -1
  81. package/dist/haxe.mjs +1 -1
  82. package/dist/hcl.mjs +1 -1
  83. package/dist/hjson.mjs +1 -1
  84. package/dist/hlsl.mjs +1 -1
  85. package/dist/html-derivative.mjs +1 -1
  86. package/dist/html.mjs +1 -1
  87. package/dist/http.mjs +1 -1
  88. package/dist/hxml.mjs +1 -1
  89. package/dist/hy.mjs +1 -1
  90. package/dist/imba.mjs +1 -3
  91. package/dist/index.mjs +2 -0
  92. package/dist/java.mjs +1 -1
  93. package/dist/javascript.mjs +1 -1
  94. package/dist/jinja-html.mjs +1 -1
  95. package/dist/jinja.mjs +1 -1
  96. package/dist/jison.mjs +1 -1
  97. package/dist/json.mjs +1 -1
  98. package/dist/json5.mjs +1 -1
  99. package/dist/jsonc.mjs +1 -1
  100. package/dist/jsonl.mjs +1 -1
  101. package/dist/jsonnet.mjs +1 -1
  102. package/dist/jsx.mjs +1 -1
  103. package/dist/julia.mjs +1 -2
  104. package/dist/kotlin.mjs +1 -1
  105. package/dist/kusto.mjs +1 -1
  106. package/dist/latex.mjs +1 -1
  107. package/dist/lean.mjs +1 -1
  108. package/dist/less.mjs +1 -1
  109. package/dist/liquid.mjs +1 -1
  110. package/dist/llvm.d.mts +3 -0
  111. package/dist/llvm.mjs +5 -0
  112. package/dist/log.mjs +1 -1
  113. package/dist/lua.mjs +1 -1
  114. package/dist/luau.mjs +1 -1
  115. package/dist/make.mjs +1 -1
  116. package/dist/markdown-vue.mjs +1 -1
  117. package/dist/markdown.mjs +1 -1
  118. package/dist/marko.mjs +1 -1
  119. package/dist/matlab.mjs +1 -1
  120. package/dist/mdc.mjs +1 -1
  121. package/dist/mdx.mjs +1 -1
  122. package/dist/mermaid.mjs +1 -1
  123. package/dist/mipsasm.mjs +1 -1
  124. package/dist/mojo.mjs +1 -1
  125. package/dist/move.mjs +1 -1
  126. package/dist/narrat.mjs +1 -1
  127. package/dist/nextflow.mjs +1 -1
  128. package/dist/nginx.mjs +1 -1
  129. package/dist/nim.mjs +1 -1
  130. package/dist/nix.mjs +1 -1
  131. package/dist/nushell.mjs +1 -1
  132. package/dist/objective-c.mjs +1 -1
  133. package/dist/objective-cpp.mjs +1 -1
  134. package/dist/ocaml.mjs +1 -1
  135. package/dist/pascal.mjs +1 -1
  136. package/dist/perl.mjs +1 -1
  137. package/dist/php.mjs +1 -1
  138. package/dist/plsql.mjs +1 -1
  139. package/dist/po.mjs +1 -1
  140. package/dist/polar.mjs +1 -1
  141. package/dist/postcss.mjs +1 -1
  142. package/dist/powerquery.mjs +1 -1
  143. package/dist/powershell.mjs +1 -1
  144. package/dist/prisma.mjs +1 -1
  145. package/dist/prolog.mjs +1 -1
  146. package/dist/proto.mjs +1 -1
  147. package/dist/pug.mjs +1 -1
  148. package/dist/puppet.mjs +1 -1
  149. package/dist/purescript.mjs +6 -2
  150. package/dist/python.mjs +1 -1
  151. package/dist/qss.mjs +1 -1
  152. package/dist/r.mjs +1 -1
  153. package/dist/racket.mjs +1 -1
  154. package/dist/raku.mjs +1 -1
  155. package/dist/razor.mjs +1 -1
  156. package/dist/reg.mjs +1 -1
  157. package/dist/regexp.mjs +1 -1
  158. package/dist/rel.mjs +1 -1
  159. package/dist/riscv.mjs +1 -1
  160. package/dist/rst.mjs +1 -1
  161. package/dist/ruby.mjs +1 -1
  162. package/dist/rust.mjs +1 -1
  163. package/dist/sas.mjs +1 -1
  164. package/dist/sass.mjs +1 -1
  165. package/dist/scala.mjs +1 -1
  166. package/dist/scheme.mjs +1 -1
  167. package/dist/scss.mjs +1 -1
  168. package/dist/sdbl.mjs +1 -1
  169. package/dist/shaderlab.mjs +1 -1
  170. package/dist/shellscript.mjs +1 -1
  171. package/dist/shellsession.mjs +1 -1
  172. package/dist/smalltalk.mjs +1 -1
  173. package/dist/solidity.mjs +1 -1
  174. package/dist/soy.mjs +1 -1
  175. package/dist/sparql.mjs +1 -1
  176. package/dist/splunk.mjs +1 -1
  177. package/dist/sql.mjs +1 -1
  178. package/dist/ssh-config.mjs +1 -1
  179. package/dist/stata.mjs +1 -1
  180. package/dist/stylus.mjs +1 -1
  181. package/dist/svelte.mjs +1 -1
  182. package/dist/system-verilog.mjs +1 -1
  183. package/dist/systemd.mjs +1 -1
  184. package/dist/talonscript.mjs +1 -1
  185. package/dist/tasl.mjs +1 -1
  186. package/dist/tcl.mjs +1 -1
  187. package/dist/templ.mjs +1 -1
  188. package/dist/terraform.mjs +1 -1
  189. package/dist/tex.mjs +1 -1
  190. package/dist/toml.mjs +1 -1
  191. package/dist/tsx.mjs +1 -1
  192. package/dist/twig.mjs +1 -1
  193. package/dist/typescript.mjs +1 -1
  194. package/dist/typespec.mjs +1 -1
  195. package/dist/typst.mjs +1 -1
  196. package/dist/v.mjs +1 -1
  197. package/dist/vala.mjs +1 -1
  198. package/dist/vb.mjs +1 -1
  199. package/dist/verilog.mjs +1 -1
  200. package/dist/vhdl.mjs +1 -1
  201. package/dist/viml.mjs +1 -1
  202. package/dist/vue-html.mjs +1 -1
  203. package/dist/vue-sfc-style-variable-injection.mjs +1 -1
  204. package/dist/vue.mjs +1 -1
  205. package/dist/vyper.mjs +1 -1
  206. package/dist/wasm.mjs +1 -1
  207. package/dist/wenyan.mjs +1 -1
  208. package/dist/wgsl.mjs +1 -1
  209. package/dist/wikitext.mjs +1 -1
  210. package/dist/wit.d.mts +3 -0
  211. package/dist/wit.mjs +5 -0
  212. package/dist/wolfram.mjs +1 -1
  213. package/dist/xml.mjs +1 -1
  214. package/dist/yaml.mjs +1 -1
  215. package/dist/zenscript.mjs +1 -1
  216. package/dist/zig.mjs +1 -1
  217. package/package.json +6 -4
package/dist/ocaml.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"OCaml",fileTypes:[".ml",".mli"],name:"ocaml",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}],repository:{attribute:{begin:/(\[)[\p{space}]*((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])@{1,3}(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,beginCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\]/dgv,endCaptures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},attributeIdentifier:{captures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},match:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])%(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)/dgv},attributePayload:{patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]%|^%))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])[\:\?](?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|(?<=[\p{space}])|(?=\])/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pathModuleExtended"},{include:"#pathRecord"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\])/dgv,patterns:[{include:"#signature"},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\])/dgv,patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\])|\bwhen\b/dgv,endCaptures:{"1":{}},patterns:[{include:"#pattern"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]when|^when))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\])/dgv,patterns:[{include:"#term"}]}]},{include:"#term"}]},bindClassTerm:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]class|^class|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:)|(=)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]class|^class|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*[\p{space}]*,|[^\p{space}\p{Lower}\%])|(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*|(?=\btype\b)/dgv,endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:/\[/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\]/dgv,patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindClassType:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]class|^class|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:)|(=)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]class|^class|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*[\p{space}]*,|[^\p{space}\p{Lower}\%])|(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*|(?=\btype\b)/dgv,endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:/\[/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\]/dgv,patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#literalClassType"}]}]},bindConstructor:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]exception|^exception))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\+=|^\+=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\||^\|))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(:)|(\bof\b)|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\|(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"},"3":{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{match:/\.\./dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},{match:/\b\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*\b(?![\p{space}]*(?:\.|\([^\*]))/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]of|^of))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\|(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#type"}]}]},bindSignature:{patterns:[{include:"#comment"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#pathModuleExtended"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#signature"}]}]},bindStructure:{patterns:[{include:"#comment"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?=[\p{Upper}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:(?!=))|(:?=)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{include:"#comment"},{match:/\bmodule\b/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},{match:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.function strong emphasis"},{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:/(?=\))/dgv,patterns:[{include:"#signature"}]},{include:"#variableModule"}]},{include:"#literalUnit"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\b(and)\b|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"support.type strong"}},patterns:[{include:"#signature"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:=|^:=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\b(?:(and)|(with))\b|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#structure"}]}]},bindTerm:{patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]!|^!))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]external|^external|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]let|^let|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]method|^method|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]val|^val))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\bmodule\b)|(\bopen\b)|(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:)|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"4":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]!|^!))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]external|^external|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]let|^let|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]method|^method|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]val|^val))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\b(?:module|open)\b)|(?=(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*[\p{space}]*,|[^\p{space}\p{Lower}\%])|(\brec\b)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]rec|^rec))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(?=[^\p{space}\p{Alpha}])/dgv,endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#bindTermArgs"}]},{include:"#bindTermArgs"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#declModule"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]open|^open))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\bin\b)|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#pathModuleSimple"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\btype\b|(?=[^\p{space}])/dgv,endCaptures:{"0":{name:"keyword.control"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindTermArgs:{patterns:[{applyEndPatternLast:true,begin:/~|\?/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/:|(?=[^\p{space}])/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]~|^~|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*|(?<=\))/dgv,endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{begin:/\((?!\*)/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{begin:/(?<=\()/dgv,end:/:|=/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}]},{begin:/(?<=:)/dgv,end:/=|(?=\))/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\))/dgv,patterns:[{include:"#term"}]}]}]}]},{include:"#pattern"}]},bindType:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\+=|=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{include:"#pathType"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.function strong"},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\+=|^\+=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#bindConstructor"}]}]},comment:{patterns:[{include:"#attribute"},{include:"#extension"},{include:"#commentBlock"},{include:"#commentDoc"}]},commentBlock:{begin:/\(\*(?!\*[^\)])/dgv,contentName:"emphasis",end:/\*\)/dgv,name:"comment constant.regexp meta.separator.markdown",patterns:[{include:"#commentBlock"},{include:"#commentDoc"}]},commentDoc:{begin:/\(\*\*/dgv,end:/\*\)/dgv,name:"comment constant.regexp meta.separator.markdown",patterns:[{match:/\*/dgv},{include:"#comment"}]},decl:{patterns:[{include:"#declClass"},{include:"#declException"},{include:"#declInclude"},{include:"#declModule"},{include:"#declOpen"},{include:"#declTerm"},{include:"#declType"}]},declClass:{begin:/\bclass\b/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric markup.underline"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]class|^class))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric markup.underline"}},end:/\btype\b|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\b)/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#bindClassTerm"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#bindClassType"}]}]},declException:{begin:/\bexception\b/dgv,beginCaptures:{"0":{name:"keyword markup.underline"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#bindConstructor"}]},declInclude:{begin:/\binclude\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#signature"}]},declModule:{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|\bmodule\b/dgv,beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\btype\b)|(?=[\p{Upper}])/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{match:/\brec\b/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#bindSignature"}]},{begin:/(?=[\p{Upper}])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#bindStructure"}]}]},declOpen:{begin:/\bopen\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#pathModuleExtended"}]},declTerm:{begin:/\b(?:(external|val)|(method)|(let))\b(!?)/dgv,beginCaptures:{"1":{name:"support.type markup.underline"},"2":{name:"storage.type markup.underline"},"3":{name:"keyword.control markup.underline"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindTerm"}]},declType:{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|\btype\b/dgv,beginCaptures:{"0":{name:"keyword markup.underline"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindType"}]},extension:{begin:/(\[)((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])%{1,3}(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,beginCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\]/dgv,endCaptures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},literal:{patterns:[{include:"#termConstructor"},{include:"#literalArray"},{include:"#literalBoolean"},{include:"#literalCharacter"},{include:"#literalList"},{include:"#literalNumber"},{include:"#literalObjectTerm"},{include:"#literalString"},{include:"#literalRecord"},{include:"#literalUnit"}]},literalArray:{begin:/\[\|/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\|\]/dgv,patterns:[{include:"#term"}]},literalBoolean:{match:/\bfalse|true\b/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},literalCharacter:{begin:/(?<![\p{Alpha}\p{M}\p{Nd}\p{Pc}])'/dgv,end:/'/dgv,name:"markup.punctuation.quote.beginning",patterns:[{include:"#literalCharacterEscape"}]},literalCharacterEscape:{match:/\\(?:[\\"'ntbr]|[\p{Nd}][\p{Nd}][\p{Nd}]|x[\p{AHex}][\p{AHex}]|o[0-3][0-7][0-7])/dgv},literalClassType:{patterns:[{include:"#comment"},{begin:/\bobject\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{begin:/\binherit\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:/\bas\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#variablePattern"}]},{include:"#type"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:/\[/dgv,end:/\]/dgv}]},literalList:{patterns:[{begin:/\[/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\]/dgv,patterns:[{include:"#term"}]}]},literalNumber:{match:/(?<![\p{Alpha}])[\p{Nd}][\p{Nd}]*(\.[\p{Nd}][\p{Nd}]*)?/dgv,name:"constant.numeric"},literalObjectTerm:{patterns:[{include:"#comment"},{begin:/\bobject\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{begin:/\binherit\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:/\bas\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#variablePattern"}]},{include:"#term"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:/\[/dgv,end:/\]/dgv}]},literalRecord:{begin:/\{/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/\}/dgv,patterns:[{begin:/(?<=\{|;)/dgv,end:/(:)|(=)|(;)|(with)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(:)|(=)|(;)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(=)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/;|(?=\})/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]}]},literalString:{patterns:[{begin:/"/dgv,end:/"/dgv,name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]},{begin:/(\{)([_\p{Lower}]*?)(\|)/dgv,end:/(\|)((?!))(\})/dgv,name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]}]},literalStringEscape:{match:/\\(?:[\\"ntbr]|[\p{Nd}][\p{Nd}][\p{Nd}]|x[\p{AHex}][\p{AHex}]|o[0-3][0-7][0-7])/dgv},literalUnit:{match:/\(\)/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},pathModuleExtended:{patterns:[{include:"#pathModulePrefixExtended"},{match:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.class constant.numeric"}]},pathModulePrefixExtended:{begin:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\.|(?=\n?$)|\()/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric"}},end:/(?![\p{space}\.]|(?=\n?$)|\()/dgv,patterns:[{include:"#comment"},{begin:/\(/dgv,captures:{"0":{name:"keyword.control"}},end:/\)/dgv,patterns:[{match:/(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\)))/dgv,name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword strong"}},end:/(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\.|(?=\n?$)))|(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*(?:(?=\n?$)|\()))|(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\)))|(?![\p{space}\.\p{Upper}]|(?=\n?$)|\()/dgv,endCaptures:{"1":{name:"entity.name.class constant.numeric"},"2":{name:"entity.name.function strong"},"3":{name:"string.other.link variable.language variable.parameter emphasis"}}}]},pathModulePrefixExtendedParens:{begin:/\(/dgv,captures:{"0":{name:"keyword.control"}},end:/\)/dgv,patterns:[{match:/(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\)))/dgv,name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},pathModulePrefixSimple:{begin:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\.)/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric"}},end:/(?![\p{space}\.])/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword strong"}},end:/(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*\.))|(\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=[\p{space}]*))|(?![\p{space}\.\p{Upper}])/dgv,endCaptures:{"1":{name:"entity.name.class constant.numeric"},"2":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}}}]},pathModuleSimple:{patterns:[{include:"#pathModulePrefixSimple"},{match:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.class constant.numeric"}]},pathRecord:{patterns:[{begin:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,end:/(?=[^\p{space}\.])(?!\(\*)/dgv,patterns:[{include:"#comment"},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\.|^\.))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword strong"}},end:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(?<=\))|(?<=\])/dgv,endCaptures:{"1":{name:"keyword strong"},"2":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{begin:/\((?!\*)/dgv,captures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\)/dgv,patterns:[{include:"#term"}]},{begin:/\[/dgv,captures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\]/dgv,patterns:[{include:"#pattern"}]}]}]}]},pattern:{patterns:[{include:"#comment"},{include:"#patternArray"},{include:"#patternLazy"},{include:"#patternList"},{include:"#patternMisc"},{include:"#patternModule"},{include:"#patternRecord"},{include:"#literal"},{include:"#patternParens"},{include:"#patternType"},{include:"#variablePattern"},{include:"#termOperator"}]},patternArray:{begin:/\[\|/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\|\]/dgv,patterns:[{include:"#pattern"}]},patternLazy:{match:/lazy/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},patternList:{begin:/\[/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\]/dgv,patterns:[{include:"#pattern"}]},patternMisc:{captures:{"1":{name:"string.regexp strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]),(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|([\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]+)|\b(as)\b/dgv},patternModule:{begin:/\bmodule\b/dgv,beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:/(?=\))/dgv,patterns:[{include:"#declModule"}]},patternParens:{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:/(?=\))/dgv,patterns:[{include:"#type"}]},{include:"#pattern"}]},patternRecord:{begin:/\{/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/\}/dgv,patterns:[{begin:/(?<=\{|;)/dgv,end:/(:)|(=)|(;)|(with)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(:)|(=)|(;)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(=)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/;|(?=\})/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]}]},patternType:{begin:/\btype\b/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?=\))/dgv,patterns:[{include:"#declType"}]},pragma:{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])#(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"punctuation.definition.tag"}},end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#comment"},{include:"#literalNumber"},{include:"#literalString"}]},signature:{patterns:[{include:"#comment"},{include:"#signatureLiteral"},{include:"#signatureFunctor"},{include:"#pathModuleExtended"},{include:"#signatureParens"},{include:"#signatureRecovered"},{include:"#signatureConstraints"}]},signatureConstraints:{begin:/\bwith\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},end:/(?=\))|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\b(?:(module)|(type))\b/dgv,endCaptures:{"1":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{name:"keyword"}}},{include:"#declModule"},{include:"#declType"}]},signatureFunctor:{patterns:[{begin:/\bfunctor\b/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]functor|^functor))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\(\))|(\((?!\)))/dgv,endCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"punctuation.definition.tag"}}},{begin:/(?<=\()/dgv,end:/(:)|(\))/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:/(?<=\))/dgv,end:/(\()|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,endCaptures:{"1":{name:"punctuation.definition.tag"},"2":{name:"support.type strong"}}},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#signature"}]}]},{match:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,name:"support.type strong"}]},signatureLiteral:{begin:/\bsig\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},signatureParens:{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:/(?=\))/dgv,patterns:[{include:"#signature"}]},{include:"#signature"}]},signatureRecovered:{patterns:[{begin:/\(|(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]include|^include|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]open|^open))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bmodule\b|(?!(?=\n?$)|[\p{space}]|\bmodule\b)/dgv,endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\btype\b/dgv,endCaptures:{"0":{name:"keyword"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bof\b/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]of|^of))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#signature"}]}]}]},structure:{patterns:[{include:"#comment"},{include:"#structureLiteral"},{include:"#structureFunctor"},{include:"#pathModuleExtended"},{include:"#structureParens"}]},structureFunctor:{patterns:[{begin:/\bfunctor\b/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]functor|^functor))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\(\))|(\((?!\)))/dgv,endCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"punctuation.definition.tag"}}},{begin:/(?<=\()/dgv,end:/(:)|(\))/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:/(?<=\))/dgv,end:/(\()|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,endCaptures:{"1":{name:"punctuation.definition.tag"},"2":{name:"support.type strong"}}},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#structure"}]}]},{match:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,name:"support.type strong"}]},structureLiteral:{begin:/\bstruct\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},structureParens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#structureUnpack"},{include:"#structure"}]},structureUnpack:{begin:/\bval\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/(?=\))/dgv},term:{patterns:[{include:"#termLet"},{include:"#termAtomic"}]},termAtomic:{patterns:[{include:"#comment"},{include:"#termConditional"},{include:"#termConstructor"},{include:"#termDelim"},{include:"#termFor"},{include:"#termFunction"},{include:"#literal"},{include:"#termMatch"},{include:"#termMatchRule"},{include:"#termPun"},{include:"#termOperator"},{include:"#termTry"},{include:"#termWhile"},{include:"#pathRecord"}]},termConditional:{match:/\b(?:if|then|else)\b/dgv,name:"keyword.control"},termConstructor:{patterns:[{include:"#pathModulePrefixSimple"},{match:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}]},termDelim:{patterns:[{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#term"}]},{begin:/\bbegin\b/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\bend\b/dgv,patterns:[{include:"#attributeIdentifier"},{include:"#term"}]}]},termFor:{patterns:[{begin:/\bfor\b/dgv,beginCaptures:{"0":{name:"keyword.control"}},end:/\bdone\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]for|^for))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#pattern"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\b(?:downto|to)\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]to|^to))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bdo\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]do|^do))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\bdone\b)/dgv,patterns:[{include:"#term"}]}]}]},termFunction:{captures:{"1":{name:"storage.type"},"2":{name:"storage.type"}},match:/\b(?:(fun)|(function))\b/dgv},termLet:{patterns:[{begin:/(?:(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=;|\())(?=[\p{space}]|\blet\b)|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]begin|^begin|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]do|^do|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]else|^else|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]in|^in|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]struct|^struct|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]then|^then|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]try|^try))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]@@|^@@))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])[\p{space}]+/dgv,end:/\b(?:(and)|(let))\b|(?=[^\p{space}])(?!\(\*)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"storage.type markup.underline"}},patterns:[{include:"#comment"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]let|^let))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(let)/dgv,beginCaptures:{"1":{name:"storage.type markup.underline"}},end:/\b(?:(and)|(in))\b|(?=\}|\)|\]|\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"storage.type markup.underline"}},patterns:[{include:"#bindTerm"}]}]},termMatch:{begin:/\bmatch\b/dgv,captures:{"0":{name:"keyword.control"}},end:/\bwith\b/dgv,patterns:[{include:"#term"}]},termMatchRule:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]fun|^fun|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]function|^function|[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(\|)|(->)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"1":{name:"support.type strong"},"2":{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#attributeIdentifier"},{include:"#pattern"}]},{begin:/(?<=(?:[^\[\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\||^\|))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\|(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"support.type strong"}},end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(\|)|(->)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"1":{name:"support.type strong"},"2":{name:"support.type strong"}},patterns:[{include:"#pattern"},{begin:/\bwhen\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/(?=(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,patterns:[{include:"#term"}]}]}]},termOperator:{patterns:[{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])#(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,endCaptures:{"0":{name:"entity.name.function"}}},{captures:{"0":{name:"keyword.control strong"}},match:/<-/dgv},{captures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:/(,|[\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]+)|(;)/dgv},{match:/\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\b/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},termPun:{applyEndPatternLast:true,begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\?|~(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/:|(?=[^\p{space}\:])/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]~|^~))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}}]},termTry:{begin:/\btry\b/dgv,captures:{"0":{name:"keyword.control"}},end:/\bwith\b/dgv,patterns:[{include:"#term"}]},termWhile:{patterns:[{begin:/\bwhile\b/dgv,beginCaptures:{"0":{name:"keyword.control"}},end:/\bdone\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]while|^while))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bdo\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]do|^do))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\bdone\b)/dgv,patterns:[{include:"#term"}]}]}]},type:{patterns:[{include:"#comment"},{match:/\bnonrec\b/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#pathModulePrefixExtended"},{include:"#typeLabel"},{include:"#typeObject"},{include:"#typeOperator"},{include:"#typeParens"},{include:"#typePolymorphicVariant"},{include:"#typeRecord"},{include:"#typeConstructor"}]},typeConstructor:{patterns:[{begin:/(_)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(')((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(?<=[^\*]\)|\])/dgv,beginCaptures:{"1":{name:"comment constant.regexp meta.separator.markdown"},"3":{name:"string.other.link variable.language variable.parameter emphasis strong emphasis"},"4":{name:"keyword.control emphasis"}},end:/(?=\((?!\*)|\*|:|,|=|\.|>|-|\{|\[|\+|\}|\)|\]|;|\|)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)[\:space\:]*(?!\(\*|[\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?=;;|\}|\)|\]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"entity.name.function strong"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixExtended"}]}]},typeLabel:{patterns:[{begin:/(\??)((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)[\p{space}]*((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,captures:{"1":{name:"keyword strong emphasis"},"2":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"},"3":{name:"keyword"}},end:/(?=(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,patterns:[{include:"#type"}]}]},typeModule:{begin:/\bmodule\b/dgv,beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:/(?=\))/dgv,patterns:[{include:"#pathModuleExtended"},{include:"#signatureConstraints"}]},typeObject:{begin:/</dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/>/dgv,patterns:[{begin:/(?<=<|;)/dgv,end:/(:)|(?=>)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(?=>)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]}]},typeOperator:{patterns:[{match:/,|;|[\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]+/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}]},typeParens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{match:/,/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#typeModule"},{include:"#type"}]},typePolymorphicVariant:{begin:/\[/dgv,end:/\]/dgv,patterns:[]},typeRecord:{begin:/\{/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/\}/dgv,patterns:[{begin:/(?<=\{|;)/dgv,end:/(:)|(=)|(;)|(with)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(:)|(=)|(;)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(=)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/;|(?=\})/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#type"}]}]},variableModule:{captures:{"0":{name:"string.other.link variable.language variable.parameter emphasis"}},match:/\b(?=[\p{Upper}])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv},variablePattern:{captures:{"1":{name:"comment constant.regexp meta.separator.markdown"},"2":{name:"string.other.link variable.language variable.parameter emphasis"}},match:/(\b_\b)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\{|\(|\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\+|private|\?|"|rec|\\|\}|\)|\]|;|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)/dgv}},scopeName:"source.ocaml",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"OCaml",fileTypes:[".ml",".mli"],name:"ocaml",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}],repository:{attribute:{begin:/(\[)\p{space}*((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])@{1,3}(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,beginCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\]/dgv,endCaptures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},attributeIdentifier:{captures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},match:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])%(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)/dgv},attributePayload:{patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]%|^%))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])[\:\?](?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|(?<=\p{space})|(?=\])/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pathModuleExtended"},{include:"#pathRecord"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\])/dgv,patterns:[{include:"#signature"},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\])/dgv,patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\])|\bwhen\b/dgv,endCaptures:{"1":{}},patterns:[{include:"#pattern"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]when|^when))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\])/dgv,patterns:[{include:"#term"}]}]},{include:"#term"}]},bindClassTerm:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|class|type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:)|(=)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|class|type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*\p{space}*,|[^\p{space}\p{Lower}\%])|(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*|(?=\btype\b)/dgv,endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:/\[/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\]/dgv,patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindClassType:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|class|type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:)|(=)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|class|type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*\p{space}*,|[^\p{space}\p{Lower}\%])|(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*|(?=\btype\b)/dgv,endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:/\[/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\]/dgv,patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#literalClassType"}]}]},bindConstructor:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]exception|^exception))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\+=|^\+=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\||^\|))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(:)|(\bof\b)|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\|(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"},"3":{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{match:/\.\./dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},{match:/\b\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*\b(?!\p{space}*(?:\.|\([^\*]))/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]of|^of))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\|(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#type"}]}]},bindSignature:{patterns:[{include:"#comment"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#pathModuleExtended"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#signature"}]}]},bindStructure:{patterns:[{include:"#comment"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]and|^and))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?=\p{Upper})/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:(?!=))|(:?=)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{include:"#comment"},{match:/\bmodule\b/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},{match:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.function strong emphasis"},{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:/(?=\))/dgv,patterns:[{include:"#signature"}]},{include:"#variableModule"}]},{include:"#literalUnit"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\b(and)\b|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"support.type strong"}},patterns:[{include:"#signature"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:=|^:=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\b(?:(and)|(with))\b|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#structure"}]}]},bindTerm:{patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]!|^!))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|external|let|method|val))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\bmodule\b)|(\bopen\b)|(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(:)|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"4":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]!|^!))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|external|let|method|val))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\b(?:module|open)\b)|(?=(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*\p{space}*,|[^\p{space}\p{Lower}\%])|(\brec\b)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]rec|^rec))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(?=[^\p{space}\p{Alpha}])/dgv,endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#bindTermArgs"}]},{include:"#bindTermArgs"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#declModule"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]open|^open))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\bin\b)|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#pathModuleSimple"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\btype\b|(?=\P{space})/dgv,endCaptures:{"0":{name:"keyword.control"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindTermArgs:{patterns:[{applyEndPatternLast:true,begin:/[\~\?]/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/:|(?=\P{space})/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]~|^~|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*|(?<=\))/dgv,endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{begin:/\((?!\*)/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{begin:/(?<=\()/dgv,end:/[\:\=]/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}]},{begin:/(?<=:)/dgv,end:/=|(?=\))/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=\))/dgv,patterns:[{include:"#term"}]}]}]}]},{include:"#pattern"}]},bindType:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\+=|=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{include:"#pathType"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.function strong"},{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\+=|^\+=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\band\b|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#bindConstructor"}]}]},comment:{patterns:[{include:"#attribute"},{include:"#extension"},{include:"#commentBlock"},{include:"#commentDoc"}]},commentBlock:{begin:/\(\*(?!\*[^\)])/dgv,contentName:"emphasis",end:/\*\)/dgv,name:"comment constant.regexp meta.separator.markdown",patterns:[{include:"#commentBlock"},{include:"#commentDoc"}]},commentDoc:{begin:/\(\*\*/dgv,end:/\*\)/dgv,name:"comment constant.regexp meta.separator.markdown",patterns:[{match:/\*/dgv},{include:"#comment"}]},decl:{patterns:[{include:"#declClass"},{include:"#declException"},{include:"#declInclude"},{include:"#declModule"},{include:"#declOpen"},{include:"#declTerm"},{include:"#declType"}]},declClass:{begin:/\bclass\b/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric markup.underline"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]class|^class))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric markup.underline"}},end:/\btype\b|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\b)/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#bindClassTerm"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#bindClassType"}]}]},declException:{begin:/\bexception\b/dgv,beginCaptures:{"0":{name:"keyword markup.underline"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#bindConstructor"}]},declInclude:{begin:/\binclude\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#signature"}]},declModule:{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|\bmodule\b/dgv,beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\btype\b)|(?=\p{Upper})/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{match:/\brec\b/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#bindSignature"}]},{begin:/(?=\p{Upper})/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#bindStructure"}]}]},declOpen:{begin:/\bopen\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#pathModuleExtended"}]},declTerm:{begin:/\b(?:(external|val)|(method)|(let))\b(!?)/dgv,beginCaptures:{"1":{name:"support.type markup.underline"},"2":{name:"storage.type markup.underline"},"3":{name:"keyword.control markup.underline"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindTerm"}]},declType:{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|\btype\b/dgv,beginCaptures:{"0":{name:"keyword markup.underline"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindType"}]},extension:{begin:/(\[)((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])%{1,3}(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,beginCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\]/dgv,endCaptures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},literal:{patterns:[{include:"#termConstructor"},{include:"#literalArray"},{include:"#literalBoolean"},{include:"#literalCharacter"},{include:"#literalList"},{include:"#literalNumber"},{include:"#literalObjectTerm"},{include:"#literalString"},{include:"#literalRecord"},{include:"#literalUnit"}]},literalArray:{begin:/\[\|/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\|\]/dgv,patterns:[{include:"#term"}]},literalBoolean:{match:/\bfalse|true\b/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},literalCharacter:{begin:/(?<![\p{Alpha}\p{M}\p{Nd}\p{Pc}])'/dgv,end:/'/dgv,name:"markup.punctuation.quote.beginning",patterns:[{include:"#literalCharacterEscape"}]},literalCharacterEscape:{match:/\\(?:[\\"'ntbr]|\p{Nd}\p{Nd}\p{Nd}|x\p{AHex}\p{AHex}|o[0-3][0-7][0-7])/dgv},literalClassType:{patterns:[{include:"#comment"},{begin:/\bobject\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{begin:/\binherit\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:/\bas\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#variablePattern"}]},{include:"#type"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:/\[/dgv,end:/\]/dgv}]},literalList:{patterns:[{begin:/\[/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\]/dgv,patterns:[{include:"#term"}]}]},literalNumber:{match:/(?<!\p{Alpha})\p{Nd}\p{Nd}*(\.\p{Nd}\p{Nd}*)?/dgv,name:"constant.numeric"},literalObjectTerm:{patterns:[{include:"#comment"},{begin:/\bobject\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{begin:/\binherit\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:/\bas\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/;;|(?=[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#variablePattern"}]},{include:"#term"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:/\[/dgv,end:/\]/dgv}]},literalRecord:{begin:/\{/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/\}/dgv,patterns:[{begin:/(?<=[\{\;])/dgv,end:/(:)|(=)|(;)|(with)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(:)|(=)|(;)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(=)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/;|(?=\})/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]}]},literalString:{patterns:[{begin:/"/dgv,end:/"/dgv,name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]},{begin:/(\{)([_\p{Lower}]*?)(\|)/dgv,end:/(\|)((?!))(\})/dgv,name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]}]},literalStringEscape:{match:/\\(?:[\\"ntbr]|\p{Nd}\p{Nd}\p{Nd}|x\p{AHex}\p{AHex}|o[0-3][0-7][0-7])/dgv},literalUnit:{match:/\(\)/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},pathModuleExtended:{patterns:[{include:"#pathModulePrefixExtended"},{match:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.class constant.numeric"}]},pathModulePrefixExtended:{begin:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\.|(?=\n?$)|\()/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric"}},end:/(?![\p{space}\.]|(?=\n?$)|\()/dgv,patterns:[{include:"#comment"},{begin:/\(/dgv,captures:{"0":{name:"keyword.control"}},end:/\)/dgv,patterns:[{match:/(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\)))/dgv,name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword strong"}},end:/(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\.|(?=\n?$)))|(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*(?:(?=\n?$)|\()))|(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\)))|(?![\p{space}\.\p{Upper}]|(?=\n?$)|\()/dgv,endCaptures:{"1":{name:"entity.name.class constant.numeric"},"2":{name:"entity.name.function strong"},"3":{name:"string.other.link variable.language variable.parameter emphasis"}}}]},pathModulePrefixExtendedParens:{begin:/\(/dgv,captures:{"0":{name:"keyword.control"}},end:/\)/dgv,patterns:[{match:/(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\)))/dgv,name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},pathModulePrefixSimple:{begin:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\.)/dgv,beginCaptures:{"0":{name:"entity.name.class constant.numeric"}},end:/(?![\p{space}\.])/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword strong"}},end:/(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*\.))|(\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*(?=\p{space}*))|(?![\p{space}\.\p{Upper}])/dgv,endCaptures:{"1":{name:"entity.name.class constant.numeric"},"2":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}}}]},pathModuleSimple:{patterns:[{include:"#pathModulePrefixSimple"},{match:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"entity.name.class constant.numeric"}]},pathRecord:{patterns:[{begin:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,end:/(?=[^\p{space}\.])(?!\(\*)/dgv,patterns:[{include:"#comment"},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\.|^\.))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword strong"}},end:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\.(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(?<=\))|(?<=\])/dgv,endCaptures:{"1":{name:"keyword strong"},"2":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{begin:/\((?!\*)/dgv,captures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\)/dgv,patterns:[{include:"#term"}]},{begin:/\[/dgv,captures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/\]/dgv,patterns:[{include:"#pattern"}]}]}]}]},pattern:{patterns:[{include:"#comment"},{include:"#patternArray"},{include:"#patternLazy"},{include:"#patternList"},{include:"#patternMisc"},{include:"#patternModule"},{include:"#patternRecord"},{include:"#literal"},{include:"#patternParens"},{include:"#patternType"},{include:"#variablePattern"},{include:"#termOperator"}]},patternArray:{begin:/\[\|/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\|\]/dgv,patterns:[{include:"#pattern"}]},patternLazy:{match:/lazy/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},patternList:{begin:/\[/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:/\]/dgv,patterns:[{include:"#pattern"}]},patternMisc:{captures:{"1":{name:"string.regexp strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:/((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]),(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))|([\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]+)|\b(as)\b/dgv},patternModule:{begin:/\bmodule\b/dgv,beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:/(?=\))/dgv,patterns:[{include:"#declModule"}]},patternParens:{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:/(?=\))/dgv,patterns:[{include:"#type"}]},{include:"#pattern"}]},patternRecord:{begin:/\{/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/\}/dgv,patterns:[{begin:/(?<=[\{\;])/dgv,end:/(:)|(=)|(;)|(with)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(:)|(=)|(;)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(=)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/;|(?=\})/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]}]},patternType:{begin:/\btype\b/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?=\))/dgv,patterns:[{include:"#declType"}]},pragma:{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])#(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"punctuation.definition.tag"}},end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#comment"},{include:"#literalNumber"},{include:"#literalString"}]},signature:{patterns:[{include:"#comment"},{include:"#signatureLiteral"},{include:"#signatureFunctor"},{include:"#pathModuleExtended"},{include:"#signatureParens"},{include:"#signatureRecovered"},{include:"#signatureConstraints"}]},signatureConstraints:{begin:/\bwith\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},end:/(?=\))|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\b(?:(module)|(type))\b/dgv,endCaptures:{"1":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{name:"keyword"}}},{include:"#declModule"},{include:"#declType"}]},signatureFunctor:{patterns:[{begin:/\bfunctor\b/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]functor|^functor))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\(\))|(\((?!\)))/dgv,endCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"punctuation.definition.tag"}}},{begin:/(?<=\()/dgv,end:/(:)|(\))/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:/(?<=\))/dgv,end:/(\()|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,endCaptures:{"1":{name:"punctuation.definition.tag"},"2":{name:"support.type strong"}}},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#signature"}]}]},{match:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,name:"support.type strong"}]},signatureLiteral:{begin:/\bsig\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},signatureParens:{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#comment"},{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:/(?=\))/dgv,patterns:[{include:"#signature"}]},{include:"#signature"}]},signatureRecovered:{patterns:[{begin:/\(|(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:include|open))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bmodule\b|(?!(?=\n?$)|\p{space}|\bmodule\b)/dgv,endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]module|^module))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\btype\b/dgv,endCaptures:{"0":{name:"keyword"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]type|^type))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bof\b/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}}},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]of|^of))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#signature"}]}]}]},structure:{patterns:[{include:"#comment"},{include:"#structureLiteral"},{include:"#structureFunctor"},{include:"#pathModuleExtended"},{include:"#structureParens"}]},structureFunctor:{patterns:[{begin:/\bfunctor\b/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]functor|^functor))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(\(\))|(\((?!\)))/dgv,endCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"punctuation.definition.tag"}}},{begin:/(?<=\()/dgv,end:/(:)|(\))/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:/(?<=\))/dgv,end:/(\()|((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,endCaptures:{"1":{name:"punctuation.definition.tag"},"2":{name:"support.type strong"}}},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,patterns:[{include:"#structure"}]}]},{match:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,name:"support.type strong"}]},structureLiteral:{begin:/\bstruct\b/dgv,captures:{"0":{name:"punctuation.definition.tag emphasis"}},end:/\bend\b/dgv,patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},structureParens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#structureUnpack"},{include:"#structure"}]},structureUnpack:{begin:/\bval\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/(?=\))/dgv},term:{patterns:[{include:"#termLet"},{include:"#termAtomic"}]},termAtomic:{patterns:[{include:"#comment"},{include:"#termConditional"},{include:"#termConstructor"},{include:"#termDelim"},{include:"#termFor"},{include:"#termFunction"},{include:"#literal"},{include:"#termMatch"},{include:"#termMatchRule"},{include:"#termPun"},{include:"#termOperator"},{include:"#termTry"},{include:"#termWhile"},{include:"#pathRecord"}]},termConditional:{match:/\b(?:if|then|else)\b/dgv,name:"keyword.control"},termConstructor:{patterns:[{include:"#pathModulePrefixSimple"},{match:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}]},termDelim:{patterns:[{begin:/\((?!\))/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{include:"#term"}]},{begin:/\bbegin\b/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\bend\b/dgv,patterns:[{include:"#attributeIdentifier"},{include:"#term"}]}]},termFor:{patterns:[{begin:/\bfor\b/dgv,beginCaptures:{"0":{name:"keyword.control"}},end:/\bdone\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]for|^for))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])=(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#pattern"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/\b(?:downto|to)\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]to|^to))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bdo\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]do|^do))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\bdone\b)/dgv,patterns:[{include:"#term"}]}]}]},termFunction:{captures:{"1":{name:"storage.type"},"2":{name:"storage.type"}},match:/\b(?:(fun)|(function))\b/dgv},termLet:{patterns:[{begin:/(?:(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]->|^->))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<=[\;\(]))(?=\p{space}|\blet\b)|(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:begin|do|else|in|struct|then|try))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]@@|^@@))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\p{space}+/dgv,end:/\b(?:(and)|(let))\b|(?=\P{space})(?!\(\*)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"storage.type markup.underline"}},patterns:[{include:"#comment"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:and|let))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(let)/dgv,beginCaptures:{"1":{name:"storage.type markup.underline"}},end:/\b(?:(and)|(in))\b|(?=[\}\)\]]|\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"storage.type markup.underline"}},patterns:[{include:"#bindTerm"}]}]},termMatch:{begin:/\bmatch\b/dgv,captures:{"0":{name:"keyword.control"}},end:/\bwith\b/dgv,patterns:[{include:"#term"}]},termMatchRule:{patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]|^)(?:fun|function|with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(\|)|(->)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"1":{name:"support.type strong"},"2":{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#attributeIdentifier"},{include:"#pattern"}]},{begin:/(?<=(?:[^\[\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\||^\|))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])|(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\|(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"support.type strong"}},end:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])(\|)|(->)(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,endCaptures:{"1":{name:"support.type strong"},"2":{name:"support.type strong"}},patterns:[{include:"#pattern"},{begin:/\bwhen\b/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/(?=(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,patterns:[{include:"#term"}]}]}]},termOperator:{patterns:[{begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])#(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"keyword"}},end:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,endCaptures:{"0":{name:"entity.name.function"}}},{captures:{"0":{name:"keyword.control strong"}},match:/<-/dgv},{captures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:/(,|[\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]+)|(;)/dgv},{match:/\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\b/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},termPun:{applyEndPatternLast:true,begin:/(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])\?|~(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:/:|(?=[^\p{space}\:])/dgv,endCaptures:{"0":{name:"keyword"}},patterns:[{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]\?|^\?|[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]~|^~))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}}]},termTry:{begin:/\btry\b/dgv,captures:{"0":{name:"keyword.control"}},end:/\bwith\b/dgv,patterns:[{include:"#term"}]},termWhile:{patterns:[{begin:/\bwhile\b/dgv,beginCaptures:{"0":{name:"keyword.control"}},end:/\bdone\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]while|^while))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/\bdo\b/dgv,endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]do|^do))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(?=\bdone\b)/dgv,patterns:[{include:"#term"}]}]}]},type:{patterns:[{include:"#comment"},{match:/\bnonrec\b/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#pathModulePrefixExtended"},{include:"#typeLabel"},{include:"#typeObject"},{include:"#typeOperator"},{include:"#typeParens"},{include:"#typePolymorphicVariant"},{include:"#typeRecord"},{include:"#typeConstructor"}]},typeConstructor:{patterns:[{begin:/(_)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(')((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)|(?<=[^\*]\)|\])/dgv,beginCaptures:{"1":{name:"comment constant.regexp meta.separator.markdown"},"3":{name:"string.other.link variable.language variable.parameter emphasis strong emphasis"},"4":{name:"keyword.control emphasis"}},end:/(?=\((?!\*)|[\*\:\,\=\.\>\-\{\[\+\}\)\]\;\|])|((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)[\:space]*(?!\(\*|[\p{Alpha}\p{M}\p{Nd}\p{Pc}])|(?=;;|[\}\)\]]|\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\b)/dgv,endCaptures:{"1":{name:"entity.name.function strong"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixExtended"}]}]},typeLabel:{patterns:[{begin:/(\??)((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)\p{space}*((?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]):(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,captures:{"1":{name:"keyword strong emphasis"},"2":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"},"3":{name:"keyword"}},end:/(?=(?<![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])->(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]))/dgv,patterns:[{include:"#type"}]}]},typeModule:{begin:/\bmodule\b/dgv,beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:/(?=\))/dgv,patterns:[{include:"#pathModuleExtended"},{include:"#signatureConstraints"}]},typeObject:{begin:/</dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/>/dgv,patterns:[{begin:/(?<=[\<\;])/dgv,end:/(:)|(?=>)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(?=>)/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]}]},typeOperator:{patterns:[{match:/[\,\;]|[\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]+/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}]},typeParens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.tag"}},end:/\)/dgv,patterns:[{match:/,/dgv,name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#typeModule"},{include:"#type"}]},typePolymorphicVariant:{begin:/\[/dgv,end:/\]/dgv,patterns:[]},typeRecord:{begin:/\{/dgv,captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:/\}/dgv,patterns:[{begin:/(?<=[\{\;])/dgv,end:/(:)|(=)|(;)|(with)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\p{Alpha}\p{M}\p{Nd}\p{Pc}]with|^with))(?![\p{Alpha}\p{M}\p{Nd}\p{Pc}])/dgv,end:/(:)|(=)|(;)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:/(?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]:|^:))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/(;)|(=)|(?=\})/dgv,endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:/(?<=(?:[^\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$]=|^=))(?![\#\-\:\!\?\.\@\*\/\&\%\^\+\<\=\>\|\~\$])/dgv,end:/;|(?=\})/dgv,endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#type"}]}]},variableModule:{captures:{"0":{name:"string.other.link variable.language variable.parameter emphasis"}},match:/\b(?=\p{Upper})[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*/dgv},variablePattern:{captures:{"1":{name:"comment constant.regexp meta.separator.markdown"},"2":{name:"string.other.link variable.language variable.parameter emphasis"}},match:/(\b_\b)|((?!\b(?:and|'|as|asr|assert|\*|begin|class|[\:\,\@]|constraint|do|done|downto|else|end|=|exception|external|false|for|\.|fun|function|functor|[\>\-]|if|in|include|inherit|initializer|land|lazy|[\{\(\[\<]|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|[\%\+]|private|[\?"]|rec|[\\\}\)\]\;]|sig|\/|struct|then|~|to|true|try|type|val|\||virtual|when|while|with)\b(?:[^']|(?=\n?$)))\b(?=[\p{Lower}_])[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}']*)/dgv}},scopeName:"source.ocaml",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/pascal.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Pascal",fileTypes:["pas","p","pp","dfm","fmx","dpr","dpk","lfm","lpr","ppr"],name:"pascal",patterns:[{match:/\b(absolute|abstract|add|all|and_then|array|as|asc|asm|assembler|async|attribute|autoreleasepool|await|begin|bindable|block|by|case|cdecl|class|concat|const|constref|copy|cppdecl|contains|default|delegate|deprecated|desc|distinct|div|each|else|empty|end|ensure|enum|equals|event|except|export|exports|extension|external|far|file|finalization|finalizer|finally|flags|forward|from|future|generic|goto|group|has|helper|if|implements|implies|import|in|index|inherited|initialization|inline|interrupt|into|invariants|is|iterator|label|library|join|lazy|lifetimestrategy|locked|locking|loop|mapped|matching|message|method|mod|module|name|namespace|near|nested|new|nostackframe|not|notify|nullable|object|of|old|oldfpccall|on|only|operator|optional|or_else|order|otherwise|out|override|package|packed|parallel|params|partial|pascal|pinned|platform|pow|private|program|protected|public|published|interface|implementation|qualified|queryable|raises|read|readonly|record|reference|register|remove|resident|require|requires|resourcestring|restricted|result|reverse|safecall|sealed|segment|select|selector|sequence|set|shl|shr|skip|specialize|soft|static|stored|stdcall|step|strict|strong|take|then|threadvar|to|try|tuple|type|unconstrained|unit|unmanaged|unretained|unsafe|uses|using|var|view|virtual|volatile|weak|dynamic|overload|reintroduce|where|with|write|xor|yield)\b/dgiv,name:"keyword.pascal"},{captures:{"1":{name:"storage.type.prototype.pascal"},"2":{name:"entity.name.function.prototype.pascal"}},match:/\b(function|procedure|constructor|destructor)\b\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+(\.[\p{L}\p{M}\p{N}\p{Pc}]+)?)(\([^\n]*?\))?;\p{space}*(?=(?:attribute|forward|external))/dgiv,name:"meta.function.prototype.pascal"},{captures:{"1":{name:"storage.type.function.pascal"},"2":{name:"entity.name.function.pascal"}},match:/\b(function|procedure|constructor|destructor|property|read|write)\b\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+(\.[\p{L}\p{M}\p{N}\p{Pc}]+)?)/dgiv,name:"meta.function.pascal"},{match:/\b(self|result)\b/dgiv,name:"token.variable"},{match:/\b(and|or)\b/dgiv,name:"keyword.operator.pascal"},{match:/\b(break|continue|exit|abort|while|do|downto|for|raise|repeat|until)\b/dgiv,name:"keyword.control.pascal"},{begin:/\{\$/dgv,captures:{"0":{name:"string.regexp"}},end:/\}/dgv,name:"string.regexp"},{match:/\b(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int8|int16|int32|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint8|uint16|uint32|uint64|variant|widechar|widestring|word|wordbool|uintptr|intptr)\b/dgiv,name:"storage.support.type.pascal"},{match:/\b(\p{Nd}+)|(\p{Nd}*\.\p{Nd}+([eE][\-\+]?\p{Nd}+)?)\b/dgv,name:"constant.numeric.pascal"},{match:/\$[0-9a-fA-F]{1,16}\b/dgv,name:"constant.numeric.hex.pascal"},{match:/\b(true|false|nil)\b/dgiv,name:"constant.language.pascal"},{match:/\b(Assert)\b/dgiv,name:"keyword.control"},{begin:/(^[ \t]+)?(?=\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.pascal"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/\/\//dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.pascal"}},end:/\n/dgv,name:"comment.line.double-slash.pascal.two"}]},{begin:/\(\*/dgv,captures:{"0":{name:"punctuation.definition.comment.pascal"}},end:/\*\)/dgv,name:"comment.block.pascal.one"},{begin:/\{(?!\$)/dgv,captures:{"0":{name:"punctuation.definition.comment.pascal"}},end:/\}/dgv,name:"comment.block.pascal.two"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.pascal"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.pascal"}},name:"string.quoted.single.pascal",patterns:[{match:/''/dgv,name:"constant.character.escape.apostrophe.pascal"}]},{match:/#\p{Nd}+/dgv,name:"string.other.pascal"}],scopeName:"source.pascal",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"Pascal",fileTypes:["pas","p","pp","dfm","fmx","dpr","dpk","lfm","lpr","ppr"],name:"pascal",patterns:[{match:/\b(absolute|abstract|add|all|and_then|array|as|asc|asm|assembler|async|attribute|autoreleasepool|await|begin|bindable|block|by|case|cdecl|class|concat|const|constref|copy|cppdecl|contains|default|delegate|deprecated|desc|distinct|div|each|else|empty|end|ensure|enum|equals|event|except|export|exports|extension|external|far|file|finalization|finalizer|finally|flags|forward|from|future|generic|goto|group|has|helper|if|implements|implies|import|in|index|inherited|initialization|inline|interrupt|into|invariants|is|iterator|label|library|join|lazy|lifetimestrategy|locked|locking|loop|mapped|matching|message|method|mod|module|name|namespace|near|nested|new|nostackframe|not|notify|nullable|object|of|old|oldfpccall|on|only|operator|optional|or_else|order|otherwise|out|override|package|packed|parallel|params|partial|pascal|pinned|platform|pow|private|program|protected|public|published|interface|implementation|qualified|queryable|raises|read|readonly|record|reference|register|remove|resident|require|requires|resourcestring|restricted|result|reverse|safecall|sealed|segment|select|selector|sequence|set|shl|shr|skip|specialize|soft|static|stored|stdcall|step|strict|strong|take|then|threadvar|to|try|tuple|type|unconstrained|unit|unmanaged|unretained|unsafe|uses|using|var|view|virtual|volatile|weak|dynamic|overload|reintroduce|where|with|write|xor|yield)\b/dgiv,name:"keyword.pascal"},{captures:{"1":{name:"storage.type.prototype.pascal"},"2":{name:"entity.name.function.prototype.pascal"}},match:/\b(function|procedure|constructor|destructor)\b\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+(\.[\p{L}\p{M}\p{N}\p{Pc}]+)?)(\([^\n]*?\))?;\p{space}*(?=(?:attribute|forward|external))/dgiv,name:"meta.function.prototype.pascal"},{captures:{"1":{name:"storage.type.function.pascal"},"2":{name:"entity.name.function.pascal"}},match:/\b(function|procedure|constructor|destructor|property|read|write)\b\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+(\.[\p{L}\p{M}\p{N}\p{Pc}]+)?)/dgiv,name:"meta.function.pascal"},{match:/\b(self|result)\b/dgiv,name:"token.variable"},{match:/\b(and|or)\b/dgiv,name:"keyword.operator.pascal"},{match:/\b(break|continue|exit|abort|while|do|downto|for|raise|repeat|until)\b/dgiv,name:"keyword.control.pascal"},{begin:/\{\$/dgv,captures:{"0":{name:"string.regexp"}},end:/\}/dgv,name:"string.regexp"},{match:/\b(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int8|int16|int32|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint8|uint16|uint32|uint64|variant|widechar|widestring|word|wordbool|uintptr|intptr)\b/dgiv,name:"storage.support.type.pascal"},{match:/\b(\p{Nd}+)|(\p{Nd}*\.\p{Nd}+([eE][\-\+]?\p{Nd}+)?)\b/dgv,name:"constant.numeric.pascal"},{match:/\$\p{AHex}{1,16}\b/dgv,name:"constant.numeric.hex.pascal"},{match:/\b(true|false|nil)\b/dgiv,name:"constant.language.pascal"},{match:/\b(Assert)\b/dgiv,name:"keyword.control"},{begin:/(^[ \t]+)?(?=\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.pascal"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/\/\//dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.pascal"}},end:/\n/dgv,name:"comment.line.double-slash.pascal.two"}]},{begin:/\(\*/dgv,captures:{"0":{name:"punctuation.definition.comment.pascal"}},end:/\*\)/dgv,name:"comment.block.pascal.one"},{begin:/\{(?!\$)/dgv,captures:{"0":{name:"punctuation.definition.comment.pascal"}},end:/\}/dgv,name:"comment.block.pascal.two"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.pascal"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.pascal"}},name:"string.quoted.single.pascal",patterns:[{match:/''/dgv,name:"constant.character.escape.apostrophe.pascal"}]},{match:/#\p{Nd}+/dgv,name:"string.other.pascal"}],scopeName:"source.pascal",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang