"use strict";
exports.id = 2949;
exports.ids = [2949];
exports.modules = {

/***/ 92949:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ocaml)
/* harmony export */ });
const lang = Object.freeze({ "name": "ocaml", "scopeName": "source.ocaml", "fileTypes": [".ml", ".mli"], "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "include": "#decl" }], "repository": { "attribute": { "begin": "(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\]", "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" } }, "endCaptures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" } }, "patterns": [{ "include": "#attributePayload" }] }, "attributeIdentifier": { "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))`, "captures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" }, "2": { "name": "punctuation.definition.tag" } } }, "attributePayload": { "patterns": [{ "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#pathModuleExtended" }, { "include": "#pathRecord" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?=\\])", "patterns": [{ "include": "#signature" }, { "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?=\\])", "patterns": [{ "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?=\\])|\\bwhen\\b", "endCaptures": { "1": {} }, "patterns": [{ "include": "#pattern" }] }, { "begin": "(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))", "end": "(?=\\])", "patterns": [{ "include": "#term" }] }] }, { "include": "#term" }] }, "bindClassTerm": { "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" }, "2": { "name": "support.type strong" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][: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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)`, "endCaptures": { "0": { "name": "entity.name.function strong emphasis" } }, "patterns": [{ "include": "#attributeIdentifier" }] }, { "begin": "\\[", "end": "\\]", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#type" }] }, { "include": "#bindTermArgs" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", "endCaptures": { "0": { "name": "support.type strong" } }, "patterns": [{ "include": "#literalClassType" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" } }, "patterns": [{ "include": "#term" }] }] }, "bindClassType": { "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" }, "2": { "name": "support.type strong" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][: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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)`, "endCaptures": { "0": { "name": "entity.name.function strong emphasis" } }, "patterns": [{ "include": "#attributeIdentifier" }] }, { "begin": "\\[", "end": "\\]", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#type" }] }, { "include": "#bindTermArgs" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", "endCaptures": { "0": { "name": "support.type strong" } }, "patterns": [{ "include": "#literalClassType" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" } }, "patterns": [{ "include": "#literalClassType" }] }] }, "bindConstructor": { "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "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": "\\.\\.", "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, { "match": "\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))", "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" }, { "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "0": { "name": "support.type strong" } }, "patterns": [{ "include": "#type" }] }] }, "bindSignature": { "patterns": [{ "include": "#comment" }, { "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])", "endCaptures": { "0": { "name": "support.type strong" } }, "patterns": [{ "include": "#comment" }, { "include": "#pathModuleExtended" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" } }, "patterns": [{ "include": "#signature" }] }] }, "bindStructure": { "patterns": [{ "include": "#comment" }, { "begin": "(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)", "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", "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" }, { "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", "name": "entity.name.function strong emphasis" }, { "begin": "\\((?!\\))", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "(?=\\))", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" } }, "patterns": [{ "include": "#signature" }] }, { "include": "#variableModule" }] }, { "include": "#literalUnit" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#signature" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "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": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))", "end": "(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "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": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][: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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))`, "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": "(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])`, "endCaptures": { "0": { "name": "entity.name.function strong emphasis" } }, "patterns": [{ "include": "#bindTermArgs" }] }, { "include": "#bindTermArgs" }] }, { "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#declModule" }] }, { "begin": "(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))", "end": "(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#pathModuleSimple" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "0": { "name": "support.type strong" } }, "patterns": [{ "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\btype\\b|(?=[^[:space:]])", "endCaptures": { "0": { "name": "keyword.control" } } }, { "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#pattern" }] }, { "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" } }, "patterns": [{ "include": "#term" }] }] }, "bindTermArgs": { "patterns": [{ "begin": "~|\\?", "end": ":|(?=[^[:space:]])", "applyEndPatternLast": true, "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "endCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))`, "endCaptures": { "0": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" } }, "patterns": [{ "include": "#comment" }, { "begin": "\\((?!\\*)", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "begin": "(?<=\\()", "end": ":|=", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" }] }, { "begin": "(?<=:)", "end": "=|(?=\\))", "endCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?=\\))", "patterns": [{ "include": "#term" }] }] }] }] }, { "include": "#pattern" }] }, "bindType": { "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "entity.name.function strong" }, { "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "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": "\\(\\*(?!\\*[^\\)])", "end": "\\*\\)", "name": "comment constant.regexp meta.separator.markdown", "contentName": "emphasis", "patterns": [{ "include": "#commentBlock" }, { "include": "#commentDoc" }] }, "commentDoc": { "begin": "\\(\\*\\*", "end": "\\*\\)", "name": "comment constant.regexp meta.separator.markdown", "patterns": [{ "match": "\\*" }, { "include": "#comment" }] }, "decl": { "patterns": [{ "include": "#declClass" }, { "include": "#declException" }, { "include": "#declInclude" }, { "include": "#declModule" }, { "include": "#declOpen" }, { "include": "#declTerm" }, { "include": "#declType" }] }, "declClass": { "begin": "\\bclass\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "entity.name.class constant.numeric markup.underline" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "begin": "(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))", "end": "\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", "beginCaptures": { "0": { "name": "entity.name.class constant.numeric markup.underline" } }, "endCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "include": "#bindClassTerm" }] }, { "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#bindClassType" }] }] }, "declException": { "begin": "\\bexception\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "keyword markup.underline" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#attributeIdentifier" }, { "include": "#comment" }, { "include": "#pragma" }, { "include": "#bindConstructor" }] }, "declInclude": { "begin": "\\binclude\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#attributeIdentifier" }, { "include": "#comment" }, { "include": "#pragma" }, { "include": "#signature" }] }, "declModule": { "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", "end": "(\\btype\\b)|(?=[[:upper:]])", "endCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "include": "#attributeIdentifier" }, { "include": "#comment" }, { "match": "\\brec\\b", "name": "variable.other.class.js message.error variable.interpolation string.regexp" }] }, { "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#bindSignature" }] }, { "begin": "(?=[[:upper:]])", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#bindStructure" }] }] }, "declOpen": { "begin": "\\bopen\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#attributeIdentifier" }, { "include": "#comment" }, { "include": "#pragma" }, { "include": "#pathModuleExtended" }] }, "declTerm": { "begin": "\\b(?:(external|val)|(method)|(let))\\b(!?)", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "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" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "include": "#bindTerm" }] }, "declType": { "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "keyword markup.underline" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "include": "#bindType" }] }, "extension": { "begin": "(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\]", "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" } }, "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": "\\[\\|", "end": "\\|\\]", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" } }, "patterns": [{ "include": "#term" }] }, "literalBoolean": { "match": "\\bfalse|true\\b", "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" }, "literalCharacter": { "begin": "(?<![[:word:]])'", "end": "'", "name": "markup.punctuation.quote.beginning", "patterns": [{ "include": "#literalCharacterEscape" }] }, "literalCharacterEscape": { "match": `\\\\(?:[\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])` }, "literalClassType": { "patterns": [{ "include": "#comment" }, { "begin": "\\bobject\\b", "end": "\\bend\\b", "captures": { "0": { "name": "punctuation.definition.tag emphasis" } }, "patterns": [{ "begin": "\\binherit\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "begin": "\\bas\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#variablePattern" }] }, { "include": "#type" }] }, { "include": "#pattern" }, { "include": "#declTerm" }] }, { "begin": "\\[", "end": "\\]" }] }, "literalList": { "patterns": [{ "begin": "\\[", "end": "\\]", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" } }, "patterns": [{ "include": "#term" }] }] }, "literalNumber": { "match": "(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?", "name": "constant.numeric" }, "literalObjectTerm": { "patterns": [{ "include": "#comment" }, { "begin": "\\bobject\\b", "end": "\\bend\\b", "captures": { "0": { "name": "punctuation.definition.tag emphasis" } }, "patterns": [{ "begin": "\\binherit\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "begin": "\\bas\\b", "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#variablePattern" }] }, { "include": "#term" }] }, { "include": "#pattern" }, { "include": "#declTerm" }] }, { "begin": "\\[", "end": "\\]" }] }, "literalRecord": { "begin": "\\{", "end": "\\}", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" } }, "patterns": [{ "begin": "(?<=\\{|;)", "end": "(:)|(=)|(;)|(with)|(?=\\})", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", "end": "(:)|(=)|(;)|(?=\\})", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(;)|(=)|(?=\\})", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": ";|(?=\\})", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#term" }] }] }, "literalString": { "patterns": [{ "begin": '"', "end": '"', "name": "string beginning.punctuation.definition.quote.markdown", "patterns": [{ "include": "#literalStringEscape" }] }, { "begin": "(\\{)([_[:lower:]]*?)(\\|)", "end": "(\\|)(\\2)(\\})", "name": "string beginning.punctuation.definition.quote.markdown", "patterns": [{ "include": "#literalStringEscape" }] }] }, "literalStringEscape": { "match": '\\\\(?:[\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])' }, "literalUnit": { "match": "\\(\\)", "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" }, "pathModuleExtended": { "patterns": [{ "include": "#pathModulePrefixExtended" }, { "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", "name": "entity.name.class constant.numeric" }] }, "pathModulePrefixExtended": { "begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()", "end": "(?![[:space:]\\.]|$|\\()", "beginCaptures": { "0": { "name": "entity.name.class constant.numeric" } }, "patterns": [{ "include": "#comment" }, { "begin": "\\(", "end": "\\)", "captures": { "0": { "name": "keyword.control" } }, "patterns": [{ "match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))", "name": "string.other.link variable.language variable.parameter emphasis" }, { "include": "#structure" }] }, { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()", "beginCaptures": { "0": { "name": "keyword strong" } }, "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": "\\(", "end": "\\)", "captures": { "0": { "name": "keyword.control" } }, "patterns": [{ "match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))", "name": "string.other.link variable.language variable.parameter emphasis" }, { "include": "#structure" }] }, "pathModulePrefixSimple": { "begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)", "end": "(?![[:space:]\\.])", "beginCaptures": { "0": { "name": "entity.name.class constant.numeric" } }, "patterns": [{ "include": "#comment" }, { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])", "beginCaptures": { "0": { "name": "keyword strong" } }, "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(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "end": "(?=[^[:space:]\\.])(?!\\(\\*)", "patterns": [{ "include": "#comment" }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])`, "beginCaptures": { "0": { "name": "keyword strong" } }, "endCaptures": { "1": { "name": "keyword strong" }, "2": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" } }, "patterns": [{ "include": "#comment" }, { "include": "#pathModulePrefixSimple" }, { "begin": "\\((?!\\*)", "end": "\\)", "captures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#term" }] }, { "begin": "\\[", "end": "\\]", "captures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "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": "\\[\\|", "end": "\\|\\]", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" } }, "patterns": [{ "include": "#pattern" }] }, "patternLazy": { "match": "lazy", "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, "patternList": { "begin": "\\[", "end": "\\]", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" } }, "patterns": [{ "include": "#pattern" }] }, "patternMisc": { "match": "((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b", "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" } } }, "patternModule": { "begin": "\\bmodule\\b", "end": "(?=\\))", "beginCaptures": { "0": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" } }, "patterns": [{ "include": "#declModule" }] }, "patternParens": { "begin": "\\((?!\\))", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "(?=\\))", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" } }, "patterns": [{ "include": "#type" }] }, { "include": "#pattern" }] }, "patternRecord": { "begin": "\\{", "end": "\\}", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" } }, "patterns": [{ "begin": "(?<=\\{|;)", "end": "(:)|(=)|(;)|(with)|(?=\\})", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", "end": "(:)|(=)|(;)|(?=\\})", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(;)|(=)|(?=\\})", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": ";|(?=\\})", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#pattern" }] }] }, "patternType": { "begin": "\\btype\\b", "end": "(?=\\))", "beginCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "include": "#declType" }] }, "pragma": { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "punctuation.definition.tag" } }, "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", "end": "(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", "end": "\\b(?:(module)|(type))\\b", "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", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))", "end": "(\\(\\))|(\\((?!\\)))", "endCaptures": { "1": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" }, "2": { "name": "punctuation.definition.tag" } } }, { "begin": "(?<=\\()", "end": "(:)|(\\))", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" }, "2": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#variableModule" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#signature" }] }, { "begin": "(?<=\\))", "end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", "endCaptures": { "1": { "name": "punctuation.definition.tag" }, "2": { "name": "support.type strong" } } }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#signature" }] }] }, { "match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])", "name": "support.type strong" }] }, "signatureLiteral": { "begin": "\\bsig\\b", "end": "\\bend\\b", "captures": { "0": { "name": "punctuation.definition.tag emphasis" } }, "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "include": "#decl" }] }, "signatureParens": { "begin": "\\((?!\\))", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#comment" }, { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "(?=\\))", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" } }, "patterns": [{ "include": "#signature" }] }, { "include": "#signature" }] }, "signatureRecovered": { "patterns": [{ "begin": "\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))", "end": "\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)", "endCaptures": { "0": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" } } }, { "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", "end": "\\btype\\b", "endCaptures": { "0": { "name": "keyword" } } }, { "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", "end": "\\bof\\b", "endCaptures": { "0": { "name": "punctuation.definition.tag" } } }, { "begin": "(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#signature" }] }] }] }, "structure": { "patterns": [{ "include": "#comment" }, { "include": "#structureLiteral" }, { "include": "#structureFunctor" }, { "include": "#pathModuleExtended" }, { "include": "#structureParens" }] }, "structureFunctor": { "patterns": [{ "begin": "\\bfunctor\\b", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))", "end": "(\\(\\))|(\\((?!\\)))", "endCaptures": { "1": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" }, "2": { "name": "punctuation.definition.tag" } } }, { "begin": "(?<=\\()", "end": "(:)|(\\))", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" }, "2": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#variableModule" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#signature" }] }, { "begin": "(?<=\\))", "end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", "endCaptures": { "1": { "name": "punctuation.definition.tag" }, "2": { "name": "support.type strong" } } }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", "patterns": [{ "include": "#structure" }] }] }, { "match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])", "name": "support.type strong" }] }, "structureLiteral": { "begin": "\\bstruct\\b", "end": "\\bend\\b", "captures": { "0": { "name": "punctuation.definition.tag emphasis" } }, "patterns": [{ "include": "#comment" }, { "include": "#pragma" }, { "include": "#decl" }] }, "structureParens": { "begin": "\\(", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#structureUnpack" }, { "include": "#structure" }] }, "structureUnpack": { "begin": "\\bval\\b", "end": "(?=\\))", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } } }, "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", "name": "keyword.control" }, "termConstructor": { "patterns": [{ "include": "#pathModulePrefixSimple" }, { "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" }] }, "termDelim": { "patterns": [{ "begin": "\\((?!\\))", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#term" }] }, { "begin": "\\bbegin\\b", "end": "\\bend\\b", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "include": "#attributeIdentifier" }, { "include": "#term" }] }] }, "termFor": { "patterns": [{ "begin": "\\bfor\\b", "end": "\\bdone\\b", "beginCaptures": { "0": { "name": "keyword.control" } }, "endCaptures": { "0": { "name": "keyword.control" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])", "endCaptures": { "0": { "name": "support.type strong" } }, "patterns": [{ "include": "#pattern" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "\\b(?:downto|to)\\b", "endCaptures": { "0": { "name": "keyword.control" } }, "patterns": [{ "include": "#term" }] }, { "begin": "(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))", "end": "\\bdo\\b", "endCaptures": { "0": { "name": "keyword.control" } }, "patterns": [{ "include": "#term" }] }, { "begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))", "end": "(?=\\bdone\\b)", "patterns": [{ "include": "#term" }] }] }] }, "termFunction": { "match": "\\b(?:(fun)|(function))\\b", "captures": { "1": { "name": "storage.type" }, "2": { "name": "storage.type" } } }, "termLet": { "patterns": [{ "begin": "(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+", "end": "\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)", "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": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)", "end": "\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)", "beginCaptures": { "1": { "name": "storage.type markup.underline" } }, "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", "end": "\\bwith\\b", "captures": { "0": { "name": "keyword.control" } }, "patterns": [{ "include": "#term" }] }, "termMatchRule": { "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])", "endCaptures": { "1": { "name": "support.type strong" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#comment" }, { "include": "#attributeIdentifier" }, { "include": "#pattern" }] }, { "begin": "(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])", "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])", "beginCaptures": { "0": { "name": "support.type strong" } }, "endCaptures": { "1": { "name": "support.type strong" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#pattern" }, { "begin": "\\bwhen\\b", "end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#term" }] }] }] }, "termOperator": { "patterns": [{ "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "beginCaptures": { "0": { "name": "keyword" } }, "endCaptures": { "0": { "name": "entity.name.function" } } }, { "match": "<-", "captures": { "0": { "name": "keyword.control strong" } } }, { "match": "(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)", "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": "\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b", "name": "variable.other.class.js message.error variable.interpolation string.regexp" }] }, "termPun": { "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])", "end": ":|(?=[^[:space:]:])", "applyEndPatternLast": true, "beginCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "endCaptures": { "0": { "name": "keyword" } }, "patterns": [{ "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "endCaptures": { "0": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" } } }] }, "termTry": { "begin": "\\btry\\b", "end": "\\bwith\\b", "captures": { "0": { "name": "keyword.control" } }, "patterns": [{ "include": "#term" }] }, "termWhile": { "patterns": [{ "begin": "\\bwhile\\b", "end": "\\bdone\\b", "beginCaptures": { "0": { "name": "keyword.control" } }, "endCaptures": { "0": { "name": "keyword.control" } }, "patterns": [{ "begin": "(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))", "end": "\\bdo\\b", "endCaptures": { "0": { "name": "keyword.control" } }, "patterns": [{ "include": "#term" }] }, { "begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))", "end": "(?=\\bdone\\b)", "patterns": [{ "include": "#term" }] }] }] }, "type": { "patterns": [{ "include": "#comment" }, { "match": "\\bnonrec\\b", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])`, "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)`, "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" } }, "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))`, "end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", "captures": { "1": { "name": "keyword strong emphasis" }, "2": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }, "3": { "name": "keyword" } }, "patterns": [{ "include": "#type" }] }] }, "typeModule": { "begin": "\\bmodule\\b", "end": "(?=\\))", "beginCaptures": { "0": { "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" } }, "patterns": [{ "include": "#pathModuleExtended" }, { "include": "#signatureConstraints" }] }, "typeObject": { "begin": "<", "end": ">", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" } }, "patterns": [{ "begin": "(?<=<|;)", "end": "(:)|(?=>)", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(;)|(?=>)", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#type" }] }] }, "typeOperator": { "patterns": [{ "match": ",|;|[#\\-:!?.@*/&%^+<=>|~$]+", "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" }] }, "typeParens": { "begin": "\\(", "end": "\\)", "captures": { "0": { "name": "punctuation.definition.tag" } }, "patterns": [{ "match": ",", "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, { "include": "#typeModule" }, { "include": "#type" }] }, "typePolymorphicVariant": { "begin": "\\[", "end": "\\]", "patterns": [] }, "typeRecord": { "begin": "\\{", "end": "\\}", "captures": { "0": { "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" } }, "patterns": [{ "begin": "(?<=\\{|;)", "end": "(:)|(=)|(;)|(with)|(?=\\})", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", "end": "(:)|(=)|(;)|(?=\\})", "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`, "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": "(;)|(=)|(?=\\})", "endCaptures": { "1": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" }, "2": { "name": "support.type strong" } }, "patterns": [{ "include": "#type" }] }, { "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", "end": ";|(?=\\})", "endCaptures": { "0": { "name": "variable.other.class.js message.error variable.interpolation string.regexp" } }, "patterns": [{ "include": "#type" }] }] }, "variableModule": { "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", "captures": { "0": { "name": "string.other.link variable.language variable.parameter emphasis" } } }, "variablePattern": { "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(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))`, "captures": { "1": { "name": "comment constant.regexp meta.separator.markdown" }, "2": { "name": "string.other.link variable.language variable.parameter emphasis" } } } }, "displayName": "OCaml" });
var ocaml = [
  lang
];




/***/ })

};
;