{ "aliases": [ "re" ], "keywords": { "keyword": "and as asr assert begin class constraint do done downto else end exception externalfor fun function functor if in include inherit initializerland lazy let lor lsl lsr lxor match method mod module mutable new nonrecobject of open or private rec sig struct then to try type val virtual when while with", "built_in": "array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ", "literal": "true false" }, "illegal": "(:\\-|:=|\\${|\\+=)", "contains": [ { "className": "comment", "begin": "\/\\*", "end": "\\*\/", "contains": [ { "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b" }, { "className": "doctag", "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):", "relevance": 0 } ], "illegal": "^(\\#,\\\/\\\/)" }, { "className": "character", "begin": "'(\\\\[^']+|[^'])'", "illegal": "\\n", "relevance": 0 }, { "className": "string", "begin": "\"", "end": "\"", "illegal": "\\n", "contains": [ { "begin": "\\\\[\\s\\S]", "relevance": 0 } ] }, { "className": "literal", "begin": "\\(\\)", "relevance": 0 }, { "className": "literal", "begin": "\\[\\|", "end": "\\|\\]", "relevance": 0, "contains": [ { "className": "identifier", "relevance": 0, "begin": "~?[a-z$_][0-9a-zA-Z$_]*" }, { "className": "operator", "relevance": 0, "begin": "(\\|\\||\\&\\&|\\+\\+|\\*\\*|\\+\\.|\\*|\\\/|\\*\\.|\\\/\\.|\\.\\.\\.|\\|\\>|==|===)" }, { "className": "number", "relevance": 0, "variants": [ { "begin": "\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)" }, { "begin": "\\(\\-\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)\\)" } ] } ] }, { "className": "literal", "begin": "\\[", "end": "\\]", "relevance": 0, "contains": { "$ref": "#contains.4.contains" } }, { "className": "constructor", "begin": "`?[A-Z$_][0-9a-zA-Z$_]*\\(", "end": "\\)", "illegal": "\\n", "keywords": { "$ref": "#keywords" }, "contains": [ { "$ref": "#contains.2" }, { "$ref": "#contains.4.contains.1" }, { "className": "params", "begin": "\\b~?[a-z$_][0-9a-zA-Z$_]*" } ] }, { "className": "operator", "begin": "\\s+(\\|\\||\\&\\&|\\+\\+|\\*\\*|\\+\\.|\\*|\\\/|\\*\\.|\\\/\\.|\\.\\.\\.|\\|\\>|==|===)\\s+", "illegal": "\\-\\->", "relevance": 0 }, { "$ref": "#contains.4.contains.2" }, { "className": "comment", "begin": "\/\/", "end": "$", "contains": [ { "$ref": "#contains.0.contains.0" }, { "className": "doctag", "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):", "relevance": 0 } ] }, { "className": "pattern-match", "begin": "\\|", "returnBegin": true, "keywords": { "$ref": "#keywords" }, "end": "=>", "relevance": 0, "contains": [ { "$ref": "#contains.6" }, { "$ref": "#contains.4.contains.1" }, { "relevance": 0, "className": "constructor", "begin": "`?[A-Z$_][0-9a-zA-Z$_]*" } ] }, { "className": "function", "relevance": 0, "keywords": { "$ref": "#keywords" }, "variants": [ { "begin": "\\s(\\(\\.?.*?\\)|~?[a-z$_][0-9a-zA-Z$_]*)\\s*=>", "end": "\\s*=>", "returnBegin": true, "relevance": 0, "contains": [ { "className": "params", "variants": [ { "begin": "~?[a-z$_][0-9a-zA-Z$_]*" }, { "begin": "~?[a-z$_][0-9a-zA-Z$_]*(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?" }, { "begin": "\\(\\s*\\)" } ] } ] }, { "begin": "\\s\\(\\.?[^;\\|]*\\)\\s*=>", "end": "\\s=>", "returnBegin": true, "relevance": 0, "contains": [ { "className": "params", "relevance": 0, "variants": [ { "begin": "~?[a-z$_][0-9a-zA-Z$_]*", "end": "(,|\\n|\\))", "relevance": 0, "contains": [ { "$ref": "#contains.4.contains.1" }, { "className": "typing", "begin": ":", "end": "(,|\\n)", "returnBegin": true, "relevance": 0, "contains": [ { "className": "module", "begin": "\\b`?[A-Z$_][0-9a-zA-Z$_]*", "returnBegin": true, "end": ".", "relevance": 0, "contains": [ { "className": "identifier", "begin": "`?[A-Z$_][0-9a-zA-Z$_]*", "relevance": 0 } ] }, { "className": "module-access", "keywords": { "$ref": "#keywords" }, "returnBegin": true, "variants": [ { "begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+~?[a-z$_][0-9a-zA-Z$_]*" }, { "begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+\\(", "end": "\\)", "returnBegin": true, "contains": [ { "$ref": "#contains.11" }, { "begin": "\\(", "end": "\\)", "skip": true }, { "$ref": "#contains.2" }, { "$ref": "#contains.4.contains.1" }, { "className": "module", "begin": "\\b`?[A-Z$_][0-9a-zA-Z$_]*", "returnBegin": true, "end": ".", "contains": [ { "className": "identifier", "begin": "`?[A-Z$_][0-9a-zA-Z$_]*", "relevance": 0 } ] }, { "$ref": "#contains.11" } ] }, { "begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+{", "end": "}" } ], "contains": [ { "$ref": "#contains.2" }, { "$ref": "#contains.4.contains.1" }, { "$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1.variants.1.contains.4" }, { "$ref": "#contains.11" } ] } ] } ] } ] } ] }, { "begin": "\\(\\.\\s~?[a-z$_][0-9a-zA-Z$_]*\\)\\s*=>" } ] }, { "className": "module-def", "begin": "\\bmodule\\s+~?[a-z$_][0-9a-zA-Z$_]*\\s+`?[A-Z$_][0-9a-zA-Z$_]*\\s+=\\s+{", "end": "}", "returnBegin": true, "keywords": { "$ref": "#keywords" }, "relevance": 0, "contains": [ { "className": "module", "relevance": 0, "begin": "`?[A-Z$_][0-9a-zA-Z$_]*" }, { "begin": "{", "end": "}", "skip": true }, { "$ref": "#contains.2" }, { "$ref": "#contains.4.contains.1" }, { "$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1.variants.1.contains.4" }, { "$ref": "#contains.11" } ] }, { "$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1" } ] }