reasonml.json 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. {
  2. "aliases": [
  3. "re"
  4. ],
  5. "keywords": {
  6. "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",
  7. "built_in": "array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",
  8. "literal": "true false"
  9. },
  10. "illegal": "(:\\-|:=|\\${|\\+=)",
  11. "contains": [
  12. {
  13. "className": "comment",
  14. "begin": "\/\\*",
  15. "end": "\\*\/",
  16. "contains": [
  17. {
  18. "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"
  19. },
  20. {
  21. "className": "doctag",
  22. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  23. "relevance": 0
  24. }
  25. ],
  26. "illegal": "^(\\#,\\\/\\\/)"
  27. },
  28. {
  29. "className": "character",
  30. "begin": "'(\\\\[^']+|[^'])'",
  31. "illegal": "\\n",
  32. "relevance": 0
  33. },
  34. {
  35. "className": "string",
  36. "begin": "\"",
  37. "end": "\"",
  38. "illegal": "\\n",
  39. "contains": [
  40. {
  41. "begin": "\\\\[\\s\\S]",
  42. "relevance": 0
  43. }
  44. ]
  45. },
  46. {
  47. "className": "literal",
  48. "begin": "\\(\\)",
  49. "relevance": 0
  50. },
  51. {
  52. "className": "literal",
  53. "begin": "\\[\\|",
  54. "end": "\\|\\]",
  55. "relevance": 0,
  56. "contains": [
  57. {
  58. "className": "identifier",
  59. "relevance": 0,
  60. "begin": "~?[a-z$_][0-9a-zA-Z$_]*"
  61. },
  62. {
  63. "className": "operator",
  64. "relevance": 0,
  65. "begin": "(\\|\\||\\&\\&|\\+\\+|\\*\\*|\\+\\.|\\*|\\\/|\\*\\.|\\\/\\.|\\.\\.\\.|\\|\\>|==|===)"
  66. },
  67. {
  68. "className": "number",
  69. "relevance": 0,
  70. "variants": [
  71. {
  72. "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_]+)?)?)"
  73. },
  74. {
  75. "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_]+)?)?)\\)"
  76. }
  77. ]
  78. }
  79. ]
  80. },
  81. {
  82. "className": "literal",
  83. "begin": "\\[",
  84. "end": "\\]",
  85. "relevance": 0,
  86. "contains": {
  87. "$ref": "#contains.4.contains"
  88. }
  89. },
  90. {
  91. "className": "constructor",
  92. "begin": "`?[A-Z$_][0-9a-zA-Z$_]*\\(",
  93. "end": "\\)",
  94. "illegal": "\\n",
  95. "keywords": {
  96. "$ref": "#keywords"
  97. },
  98. "contains": [
  99. {
  100. "$ref": "#contains.2"
  101. },
  102. {
  103. "$ref": "#contains.4.contains.1"
  104. },
  105. {
  106. "className": "params",
  107. "begin": "\\b~?[a-z$_][0-9a-zA-Z$_]*"
  108. }
  109. ]
  110. },
  111. {
  112. "className": "operator",
  113. "begin": "\\s+(\\|\\||\\&\\&|\\+\\+|\\*\\*|\\+\\.|\\*|\\\/|\\*\\.|\\\/\\.|\\.\\.\\.|\\|\\>|==|===)\\s+",
  114. "illegal": "\\-\\->",
  115. "relevance": 0
  116. },
  117. {
  118. "$ref": "#contains.4.contains.2"
  119. },
  120. {
  121. "className": "comment",
  122. "begin": "\/\/",
  123. "end": "$",
  124. "contains": [
  125. {
  126. "$ref": "#contains.0.contains.0"
  127. },
  128. {
  129. "className": "doctag",
  130. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  131. "relevance": 0
  132. }
  133. ]
  134. },
  135. {
  136. "className": "pattern-match",
  137. "begin": "\\|",
  138. "returnBegin": true,
  139. "keywords": {
  140. "$ref": "#keywords"
  141. },
  142. "end": "=>",
  143. "relevance": 0,
  144. "contains": [
  145. {
  146. "$ref": "#contains.6"
  147. },
  148. {
  149. "$ref": "#contains.4.contains.1"
  150. },
  151. {
  152. "relevance": 0,
  153. "className": "constructor",
  154. "begin": "`?[A-Z$_][0-9a-zA-Z$_]*"
  155. }
  156. ]
  157. },
  158. {
  159. "className": "function",
  160. "relevance": 0,
  161. "keywords": {
  162. "$ref": "#keywords"
  163. },
  164. "variants": [
  165. {
  166. "begin": "\\s(\\(\\.?.*?\\)|~?[a-z$_][0-9a-zA-Z$_]*)\\s*=>",
  167. "end": "\\s*=>",
  168. "returnBegin": true,
  169. "relevance": 0,
  170. "contains": [
  171. {
  172. "className": "params",
  173. "variants": [
  174. {
  175. "begin": "~?[a-z$_][0-9a-zA-Z$_]*"
  176. },
  177. {
  178. "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*))?)?"
  179. },
  180. {
  181. "begin": "\\(\\s*\\)"
  182. }
  183. ]
  184. }
  185. ]
  186. },
  187. {
  188. "begin": "\\s\\(\\.?[^;\\|]*\\)\\s*=>",
  189. "end": "\\s=>",
  190. "returnBegin": true,
  191. "relevance": 0,
  192. "contains": [
  193. {
  194. "className": "params",
  195. "relevance": 0,
  196. "variants": [
  197. {
  198. "begin": "~?[a-z$_][0-9a-zA-Z$_]*",
  199. "end": "(,|\\n|\\))",
  200. "relevance": 0,
  201. "contains": [
  202. {
  203. "$ref": "#contains.4.contains.1"
  204. },
  205. {
  206. "className": "typing",
  207. "begin": ":",
  208. "end": "(,|\\n)",
  209. "returnBegin": true,
  210. "relevance": 0,
  211. "contains": [
  212. {
  213. "className": "module",
  214. "begin": "\\b`?[A-Z$_][0-9a-zA-Z$_]*",
  215. "returnBegin": true,
  216. "end": ".",
  217. "relevance": 0,
  218. "contains": [
  219. {
  220. "className": "identifier",
  221. "begin": "`?[A-Z$_][0-9a-zA-Z$_]*",
  222. "relevance": 0
  223. }
  224. ]
  225. },
  226. {
  227. "className": "module-access",
  228. "keywords": {
  229. "$ref": "#keywords"
  230. },
  231. "returnBegin": true,
  232. "variants": [
  233. {
  234. "begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+~?[a-z$_][0-9a-zA-Z$_]*"
  235. },
  236. {
  237. "begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+\\(",
  238. "end": "\\)",
  239. "returnBegin": true,
  240. "contains": [
  241. {
  242. "$ref": "#contains.11"
  243. },
  244. {
  245. "begin": "\\(",
  246. "end": "\\)",
  247. "skip": true
  248. },
  249. {
  250. "$ref": "#contains.2"
  251. },
  252. {
  253. "$ref": "#contains.4.contains.1"
  254. },
  255. {
  256. "className": "module",
  257. "begin": "\\b`?[A-Z$_][0-9a-zA-Z$_]*",
  258. "returnBegin": true,
  259. "end": ".",
  260. "contains": [
  261. {
  262. "className": "identifier",
  263. "begin": "`?[A-Z$_][0-9a-zA-Z$_]*",
  264. "relevance": 0
  265. }
  266. ]
  267. },
  268. {
  269. "$ref": "#contains.11"
  270. }
  271. ]
  272. },
  273. {
  274. "begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+{",
  275. "end": "}"
  276. }
  277. ],
  278. "contains": [
  279. {
  280. "$ref": "#contains.2"
  281. },
  282. {
  283. "$ref": "#contains.4.contains.1"
  284. },
  285. {
  286. "$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1.variants.1.contains.4"
  287. },
  288. {
  289. "$ref": "#contains.11"
  290. }
  291. ]
  292. }
  293. ]
  294. }
  295. ]
  296. }
  297. ]
  298. }
  299. ]
  300. },
  301. {
  302. "begin": "\\(\\.\\s~?[a-z$_][0-9a-zA-Z$_]*\\)\\s*=>"
  303. }
  304. ]
  305. },
  306. {
  307. "className": "module-def",
  308. "begin": "\\bmodule\\s+~?[a-z$_][0-9a-zA-Z$_]*\\s+`?[A-Z$_][0-9a-zA-Z$_]*\\s+=\\s+{",
  309. "end": "}",
  310. "returnBegin": true,
  311. "keywords": {
  312. "$ref": "#keywords"
  313. },
  314. "relevance": 0,
  315. "contains": [
  316. {
  317. "className": "module",
  318. "relevance": 0,
  319. "begin": "`?[A-Z$_][0-9a-zA-Z$_]*"
  320. },
  321. {
  322. "begin": "{",
  323. "end": "}",
  324. "skip": true
  325. },
  326. {
  327. "$ref": "#contains.2"
  328. },
  329. {
  330. "$ref": "#contains.4.contains.1"
  331. },
  332. {
  333. "$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1.variants.1.contains.4"
  334. },
  335. {
  336. "$ref": "#contains.11"
  337. }
  338. ]
  339. },
  340. {
  341. "$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1"
  342. }
  343. ]
  344. }