repl-sdk 0.0.0 → 1.0.1

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 (305) hide show
  1. package/dist/apl-fqmucPXA.js +141 -0
  2. package/dist/apl-fqmucPXA.js.map +1 -0
  3. package/dist/asciiarmor-DucZyvP0.js +57 -0
  4. package/dist/asciiarmor-DucZyvP0.js.map +1 -0
  5. package/dist/asn1-BnOEsgAm.js +145 -0
  6. package/dist/asn1-BnOEsgAm.js.map +1 -0
  7. package/dist/assets/tar-worker-CxTcoQcr.js +593 -0
  8. package/dist/assets/tar-worker-CxTcoQcr.js.map +1 -0
  9. package/dist/asterisk-QAlztEwS.js +346 -0
  10. package/dist/asterisk-QAlztEwS.js.map +1 -0
  11. package/dist/brainfuck-DZVCuF_t.js +54 -0
  12. package/dist/brainfuck-DZVCuF_t.js.map +1 -0
  13. package/dist/clike-CTYGlS6x.js +800 -0
  14. package/dist/clike-CTYGlS6x.js.map +1 -0
  15. package/dist/clojure-BhXMqnxz.js +850 -0
  16. package/dist/clojure-BhXMqnxz.js.map +1 -0
  17. package/dist/cmake-BGaNd9E7.js +72 -0
  18. package/dist/cmake-BGaNd9E7.js.map +1 -0
  19. package/dist/cobol-4yqQntpt.js +121 -0
  20. package/dist/cobol-4yqQntpt.js.map +1 -0
  21. package/dist/codemirror-De3S70Np.js +2912 -0
  22. package/dist/codemirror-De3S70Np.js.map +1 -0
  23. package/dist/coffeescript-D2dXvhEc.js +309 -0
  24. package/dist/coffeescript-D2dXvhEc.js.map +1 -0
  25. package/dist/commonlisp-CF_VNHQR.js +131 -0
  26. package/dist/commonlisp-CF_VNHQR.js.map +1 -0
  27. package/dist/crystal-DyuLTqLs.js +399 -0
  28. package/dist/crystal-DyuLTqLs.js.map +1 -0
  29. package/dist/css-DkSyTW67.js +1773 -0
  30. package/dist/css-DkSyTW67.js.map +1 -0
  31. package/dist/cypher-Dlu_3r4V.js +122 -0
  32. package/dist/cypher-Dlu_3r4V.js.map +1 -0
  33. package/dist/d-UURgV0Ux.js +180 -0
  34. package/dist/d-UURgV0Ux.js.map +1 -0
  35. package/dist/diff-B_Bi2Crb.js +26 -0
  36. package/dist/diff-B_Bi2Crb.js.map +1 -0
  37. package/dist/dockerfile-Bvk733Ga.js +202 -0
  38. package/dist/dockerfile-Bvk733Ga.js.map +1 -0
  39. package/dist/dtd-Dy74G54E.js +115 -0
  40. package/dist/dtd-Dy74G54E.js.map +1 -0
  41. package/dist/dylan-TSb-Nfix.js +315 -0
  42. package/dist/dylan-TSb-Nfix.js.map +1 -0
  43. package/dist/ebnf-4fKAGW3a.js +141 -0
  44. package/dist/ebnf-4fKAGW3a.js.map +1 -0
  45. package/dist/ecl-B59qGGVg.js +179 -0
  46. package/dist/ecl-B59qGGVg.js.map +1 -0
  47. package/dist/eiffel-Dze7nlu3.js +135 -0
  48. package/dist/eiffel-Dze7nlu3.js.map +1 -0
  49. package/dist/elm-DG7jkhNZ.js +177 -0
  50. package/dist/elm-DG7jkhNZ.js.map +1 -0
  51. package/dist/erlang-BO6gOnGA.js +675 -0
  52. package/dist/erlang-BO6gOnGA.js.map +1 -0
  53. package/dist/factor-CMxFHDqz.js +66 -0
  54. package/dist/factor-CMxFHDqz.js.map +1 -0
  55. package/dist/fcl-CDDUNjTj.js +142 -0
  56. package/dist/fcl-CDDUNjTj.js.map +1 -0
  57. package/dist/forth-B9D2JCeE.js +117 -0
  58. package/dist/forth-B9D2JCeE.js.map +1 -0
  59. package/dist/fortran-CAG2BFbe.js +468 -0
  60. package/dist/fortran-CAG2BFbe.js.map +1 -0
  61. package/dist/gas-0Aw8zDr5.js +294 -0
  62. package/dist/gas-0Aw8zDr5.js.map +1 -0
  63. package/dist/gherkin-DhZlEZiy.js +116 -0
  64. package/dist/gherkin-DhZlEZiy.js.map +1 -0
  65. package/dist/gjs-DfguZDLq.js +173 -0
  66. package/dist/gjs-DfguZDLq.js.map +1 -0
  67. package/dist/gmd-Yas-Oo8k.js +163 -0
  68. package/dist/gmd-Yas-Oo8k.js.map +1 -0
  69. package/dist/groovy-CpwJiBl7.js +224 -0
  70. package/dist/groovy-CpwJiBl7.js.map +1 -0
  71. package/dist/haskell-ySd-OUo8.js +460 -0
  72. package/dist/haskell-ySd-OUo8.js.map +1 -0
  73. package/dist/haxe-7MlzfeYV.js +515 -0
  74. package/dist/haxe-7MlzfeYV.js.map +1 -0
  75. package/dist/hbs-CxcmWxSJ.js +62 -0
  76. package/dist/hbs-CxcmWxSJ.js.map +1 -0
  77. package/dist/http-BqypyemW.js +80 -0
  78. package/dist/http-BqypyemW.js.map +1 -0
  79. package/dist/idl-4HIGJlDI.js +986 -0
  80. package/dist/idl-4HIGJlDI.js.map +1 -0
  81. package/dist/index-B3Meoznj.js +118 -0
  82. package/dist/index-B3Meoznj.js.map +1 -0
  83. package/dist/index-BQyfDUUx.js +692 -0
  84. package/dist/index-BQyfDUUx.js.map +1 -0
  85. package/dist/index-BRDroAD8.js +305 -0
  86. package/dist/index-BRDroAD8.js.map +1 -0
  87. package/dist/index-BRMAzRyM.js +179 -0
  88. package/dist/index-BRMAzRyM.js.map +1 -0
  89. package/dist/index-Bb8uYQgv.js +927 -0
  90. package/dist/index-Bb8uYQgv.js.map +1 -0
  91. package/dist/index-BlOjO66K.js +17618 -0
  92. package/dist/index-BlOjO66K.js.map +1 -0
  93. package/dist/index-BoGWnSNL.js +706 -0
  94. package/dist/index-BoGWnSNL.js.map +1 -0
  95. package/dist/index-BsRrEiOu.js +98 -0
  96. package/dist/index-BsRrEiOu.js.map +1 -0
  97. package/dist/index-C2sFZMth.js +391 -0
  98. package/dist/index-C2sFZMth.js.map +1 -0
  99. package/dist/index-C7xwOjmS.js +291 -0
  100. package/dist/index-C7xwOjmS.js.map +1 -0
  101. package/dist/index-CA3lFUx6.js +315 -0
  102. package/dist/index-CA3lFUx6.js.map +1 -0
  103. package/dist/index-CB-pPTIf.js +98 -0
  104. package/dist/index-CB-pPTIf.js.map +1 -0
  105. package/dist/index-CCa6x1FE.js +386 -0
  106. package/dist/index-CCa6x1FE.js.map +1 -0
  107. package/dist/index-CD4DINI1.js +158 -0
  108. package/dist/index-CD4DINI1.js.map +1 -0
  109. package/dist/index-CE0B_fcG.js +328 -0
  110. package/dist/index-CE0B_fcG.js.map +1 -0
  111. package/dist/index-CVGAEPMV.js +2139 -0
  112. package/dist/index-CVGAEPMV.js.map +1 -0
  113. package/dist/index-CmaT2afn.js +332 -0
  114. package/dist/index-CmaT2afn.js.map +1 -0
  115. package/dist/index-D8sUxXp5.js +83 -0
  116. package/dist/index-D8sUxXp5.js.map +1 -0
  117. package/dist/index-DIz8Vpn-.js +737 -0
  118. package/dist/index-DIz8Vpn-.js.map +1 -0
  119. package/dist/index-DNP1xT-S.js +408 -0
  120. package/dist/index-DNP1xT-S.js.map +1 -0
  121. package/dist/index-DOAqdvnQ.js +862 -0
  122. package/dist/index-DOAqdvnQ.js.map +1 -0
  123. package/dist/index-DVUMFbgi.js +152 -0
  124. package/dist/index-DVUMFbgi.js.map +1 -0
  125. package/dist/index-VeTBKRVd.js +83 -0
  126. package/dist/index-VeTBKRVd.js.map +1 -0
  127. package/dist/index-dXZeR7Bx.js +1767 -0
  128. package/dist/index-dXZeR7Bx.js.map +1 -0
  129. package/dist/index-gtqbIb6T.js +62 -0
  130. package/dist/index-gtqbIb6T.js.map +1 -0
  131. package/dist/index-pN_pUAQ7.js +2426 -0
  132. package/dist/index-pN_pUAQ7.js.map +1 -0
  133. package/dist/index-wasu5VX0.js +1150 -0
  134. package/dist/index-wasu5VX0.js.map +1 -0
  135. package/dist/javascript-Bt8B7yTi.js +993 -0
  136. package/dist/javascript-Bt8B7yTi.js.map +1 -0
  137. package/dist/julia-Bs6JJhYG.js +408 -0
  138. package/dist/julia-Bs6JJhYG.js.map +1 -0
  139. package/dist/livescript-DmzgM3Yt.js +297 -0
  140. package/dist/livescript-DmzgM3Yt.js.map +1 -0
  141. package/dist/lua-8cJgIlqe.js +257 -0
  142. package/dist/lua-8cJgIlqe.js.map +1 -0
  143. package/dist/mathematica-DNLOL9PQ.js +111 -0
  144. package/dist/mathematica-DNLOL9PQ.js.map +1 -0
  145. package/dist/mbox-Ga7d4MMN.js +118 -0
  146. package/dist/mbox-Ga7d4MMN.js.map +1 -0
  147. package/dist/mirc-Dma3B8rS.js +108 -0
  148. package/dist/mirc-Dma3B8rS.js.map +1 -0
  149. package/dist/mllike-DHn7xckP.js +335 -0
  150. package/dist/mllike-DHn7xckP.js.map +1 -0
  151. package/dist/modelica-0d55jYY0.js +148 -0
  152. package/dist/modelica-0d55jYY0.js.map +1 -0
  153. package/dist/mscgen-DdqZYINH.js +136 -0
  154. package/dist/mscgen-DdqZYINH.js.map +1 -0
  155. package/dist/mumps-Btr8VblO.js +94 -0
  156. package/dist/mumps-Btr8VblO.js.map +1 -0
  157. package/dist/nginx-DTDtBDVN.js +142 -0
  158. package/dist/nginx-DTDtBDVN.js.map +1 -0
  159. package/dist/nsis-3zG7tgur.js +63 -0
  160. package/dist/nsis-3zG7tgur.js.map +1 -0
  161. package/dist/ntriples-CvgOYMpL.js +154 -0
  162. package/dist/ntriples-CvgOYMpL.js.map +1 -0
  163. package/dist/octave-DYBj3-tl.js +201 -0
  164. package/dist/octave-DYBj3-tl.js.map +1 -0
  165. package/dist/oz-R_e8WMIi.js +232 -0
  166. package/dist/oz-R_e8WMIi.js.map +1 -0
  167. package/dist/parse-CAqQaKsh.js +21685 -0
  168. package/dist/parse-CAqQaKsh.js.map +1 -0
  169. package/dist/pascal-GD8iposT.js +106 -0
  170. package/dist/pascal-GD8iposT.js.map +1 -0
  171. package/dist/perl-DL9mHpoi.js +1106 -0
  172. package/dist/perl-DL9mHpoi.js.map +1 -0
  173. package/dist/pig-C_4T4YIV.js +102 -0
  174. package/dist/pig-C_4T4YIV.js.map +1 -0
  175. package/dist/powershell-B0suO7Vd.js +329 -0
  176. package/dist/powershell-B0suO7Vd.js.map +1 -0
  177. package/dist/properties-BR-vP1aU.js +59 -0
  178. package/dist/properties-BR-vP1aU.js.map +1 -0
  179. package/dist/protobuf-BxgpyhoW.js +78 -0
  180. package/dist/protobuf-BxgpyhoW.js.map +1 -0
  181. package/dist/pug-vHnWR0UE.js +406 -0
  182. package/dist/pug-vHnWR0UE.js.map +1 -0
  183. package/dist/puppet-Bdao66PW.js +138 -0
  184. package/dist/puppet-Bdao66PW.js.map +1 -0
  185. package/dist/python-BFGRmuZ9.js +427 -0
  186. package/dist/python-BFGRmuZ9.js.map +1 -0
  187. package/dist/q-CrbCVq4a.js +132 -0
  188. package/dist/q-CrbCVq4a.js.map +1 -0
  189. package/dist/r-V7nswm59.js +171 -0
  190. package/dist/r-V7nswm59.js.map +1 -0
  191. package/dist/render-app-island-B-i8rvGi.js +61 -0
  192. package/dist/render-app-island-B-i8rvGi.js.map +1 -0
  193. package/dist/repl-sdk.js +7 -0
  194. package/dist/repl-sdk.js.map +1 -0
  195. package/dist/rpm-C-DLY-If.js +110 -0
  196. package/dist/rpm-C-DLY-If.js.map +1 -0
  197. package/dist/ruby-JDKLJNK0.js +331 -0
  198. package/dist/ruby-JDKLJNK0.js.map +1 -0
  199. package/dist/sas-D2UG-yhZ.js +208 -0
  200. package/dist/sas-D2UG-yhZ.js.map +1 -0
  201. package/dist/scheme-BKzrkGJD.js +223 -0
  202. package/dist/scheme-BKzrkGJD.js.map +1 -0
  203. package/dist/shell-BlsXDxCn.js +223 -0
  204. package/dist/shell-BlsXDxCn.js.map +1 -0
  205. package/dist/sieve-CjwBwOY5.js +136 -0
  206. package/dist/sieve-CjwBwOY5.js.map +1 -0
  207. package/dist/simple-mode-DMneyfDu.js +131 -0
  208. package/dist/simple-mode-DMneyfDu.js.map +1 -0
  209. package/dist/smalltalk-BOIGQuhN.js +122 -0
  210. package/dist/smalltalk-BOIGQuhN.js.map +1 -0
  211. package/dist/solr-CwD7U71z.js +70 -0
  212. package/dist/solr-CwD7U71z.js.map +1 -0
  213. package/dist/sparql-DYskk2vE.js +250 -0
  214. package/dist/sparql-DYskk2vE.js.map +1 -0
  215. package/dist/spreadsheet-Bgtt3oLP.js +88 -0
  216. package/dist/spreadsheet-Bgtt3oLP.js.map +1 -0
  217. package/dist/sql-Cei9CMfk.js +343 -0
  218. package/dist/sql-Cei9CMfk.js.map +1 -0
  219. package/dist/stex-C1nZSzAw.js +231 -0
  220. package/dist/stex-C1nZSzAw.js.map +1 -0
  221. package/dist/stylus-BkS-boTH.js +566 -0
  222. package/dist/stylus-BkS-boTH.js.map +1 -0
  223. package/dist/swift-FRZi1uvB.js +292 -0
  224. package/dist/swift-FRZi1uvB.js.map +1 -0
  225. package/dist/tcl-CUcaCdmq.js +115 -0
  226. package/dist/tcl-CUcaCdmq.js.map +1 -0
  227. package/dist/textile-BnFpjsrl.js +415 -0
  228. package/dist/textile-BnFpjsrl.js.map +1 -0
  229. package/dist/tiddlywiki-CjprD-Qp.js +219 -0
  230. package/dist/tiddlywiki-CjprD-Qp.js.map +1 -0
  231. package/dist/tiki-DK9DOeWn.js +269 -0
  232. package/dist/tiki-DK9DOeWn.js.map +1 -0
  233. package/dist/toml-BOuWGMcf.js +77 -0
  234. package/dist/toml-BOuWGMcf.js.map +1 -0
  235. package/dist/troff-E1bJ0PPL.js +62 -0
  236. package/dist/troff-E1bJ0PPL.js.map +1 -0
  237. package/dist/ttcn-cfg-Dc39-fIP.js +134 -0
  238. package/dist/ttcn-cfg-Dc39-fIP.js.map +1 -0
  239. package/dist/ttcn-tKd4HLu4.js +193 -0
  240. package/dist/ttcn-tKd4HLu4.js.map +1 -0
  241. package/dist/turtle-Dq7-1WAf.js +125 -0
  242. package/dist/turtle-Dq7-1WAf.js.map +1 -0
  243. package/dist/vb-Dp90gtsv.js +197 -0
  244. package/dist/vb-Dp90gtsv.js.map +1 -0
  245. package/dist/vbscript-Bfn8O8I7.js +479 -0
  246. package/dist/vbscript-Bfn8O8I7.js.map +1 -0
  247. package/dist/velocity-BwIZK1TH.js +150 -0
  248. package/dist/velocity-BwIZK1TH.js.map +1 -0
  249. package/dist/verilog-CnT9bMk0.js +430 -0
  250. package/dist/verilog-CnT9bMk0.js.map +1 -0
  251. package/dist/vhdl-DCkMIyT9.js +159 -0
  252. package/dist/vhdl-DCkMIyT9.js.map +1 -0
  253. package/dist/webidl-BTLTThCm.js +205 -0
  254. package/dist/webidl-BTLTThCm.js.map +1 -0
  255. package/dist/xquery-BrBUuxMR.js +526 -0
  256. package/dist/xquery-BrBUuxMR.js.map +1 -0
  257. package/dist/yacas-b5lAVEIl.js +131 -0
  258. package/dist/yacas-b5lAVEIl.js.map +1 -0
  259. package/dist/z80-ClgwfNdB.js +93 -0
  260. package/dist/z80-ClgwfNdB.js.map +1 -0
  261. package/package.json +81 -9
  262. package/src/cache.js +138 -0
  263. package/src/cdn.js +93 -0
  264. package/src/codemirror.js +161 -0
  265. package/src/compilers/ember/gjs.js +212 -0
  266. package/src/compilers/ember/gmd.js +190 -0
  267. package/src/compilers/ember/hbs.js +98 -0
  268. package/src/compilers/ember/render-app-island.js +83 -0
  269. package/src/compilers/ember.js +166 -0
  270. package/src/compilers/js.js +32 -0
  271. package/src/compilers/markdown/build-compiler.js +151 -0
  272. package/src/compilers/markdown/const.js +2 -0
  273. package/src/compilers/markdown/heading-id.js +75 -0
  274. package/src/compilers/markdown/live-code-extraction.js +198 -0
  275. package/src/compilers/markdown/parse.js +22 -0
  276. package/src/compilers/markdown/parse.test.ts +363 -0
  277. package/src/compilers/markdown/sanitize-for-glimmer.js +26 -0
  278. package/src/compilers/markdown/types.ts +21 -0
  279. package/src/compilers/markdown/utils.js +78 -0
  280. package/src/compilers/markdown.js +125 -0
  281. package/src/compilers/mermaid.js +35 -0
  282. package/src/compilers/react.js +59 -0
  283. package/src/compilers/svelte.js +116 -0
  284. package/src/compilers/vue.js +58 -0
  285. package/src/compilers.js +108 -0
  286. package/src/es-module-shim.js +53 -0
  287. package/src/index.d.ts +53 -4
  288. package/src/index.js +744 -89
  289. package/src/npm.js +58 -0
  290. package/src/request.Request.test.ts +59 -0
  291. package/src/request.js +140 -0
  292. package/src/resolve.fromImports.test.ts +35 -0
  293. package/src/resolve.fromInternalImport.test.ts +69 -0
  294. package/src/resolve.js +352 -0
  295. package/src/resolve.resolvePath.test.ts +24 -0
  296. package/src/resolve.test.ts +23 -0
  297. package/src/specifier.js +71 -0
  298. package/src/specifier.test.ts +90 -0
  299. package/src/tar-worker.js +61 -0
  300. package/src/tar.js +76 -0
  301. package/src/types.ts +335 -58
  302. package/src/utils.js +28 -1
  303. package/declarations/index.d.ts +0 -73
  304. package/dist/index.js +0 -107
  305. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-Bt8B7yTi.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/javascript.js"],"sourcesContent":["function mkJavaScript(parserConfig) {\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string.special\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string.special\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null; cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variableName.local\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n pushcontext.lex = pushblockcontext.lex = true\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string.special\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") return pass(quasiType, afterType)\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string.special\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+#?[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\" || value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n name: parserConfig.name,\n\n startState: function(indentUnit) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical(-indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter, cx) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return null;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + cx.unit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || cx.unit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? cx.unit : 2 * cx.unit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n commentTokens: jsonMode ? undefined : {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n wordChars: \"$\"\n }\n };\n};\n\nexport const javascript = mkJavaScript({name: \"javascript\"})\nexport const json = mkJavaScript({name: \"json\", json: true})\nexport const jsonld = mkJavaScript({name: \"json\", jsonld: true})\nexport const typescript = mkJavaScript({name: \"typescript\", typescript: true})\n"],"names":["type","cont","cx","content","block","value"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,408 @@
1
+ function wordRegexp(words, end, pre) {
2
+ if (typeof pre === "undefined") pre = "";
3
+ if (typeof end === "undefined") {
4
+ end = "\\b";
5
+ }
6
+ return new RegExp("^" + pre + "((" + words.join(")|(") + "))" + end);
7
+ }
8
+ var octChar = "\\\\[0-7]{1,3}";
9
+ var hexChar = "\\\\x[A-Fa-f0-9]{1,2}";
10
+ var sChar = `\\\\[abefnrtv0%?'"\\\\]`;
11
+ var uChar = "([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])";
12
+ var asciiOperatorsList = [
13
+ "[<>]:",
14
+ "[<>=]=",
15
+ "<<=?",
16
+ ">>>?=?",
17
+ "=>",
18
+ "--?>",
19
+ "<--[->]?",
20
+ "\\/\\/",
21
+ "\\.{2,3}",
22
+ "[\\.\\\\%*+\\-<>!\\/^|&]=?",
23
+ "\\?",
24
+ "\\$",
25
+ "~",
26
+ ":"
27
+ ];
28
+ var operators = wordRegexp([
29
+ "[<>]:",
30
+ "[<>=]=",
31
+ "[!=]==",
32
+ "<<=?",
33
+ ">>>?=?",
34
+ "=>?",
35
+ "--?>",
36
+ "<--[->]?",
37
+ "\\/\\/",
38
+ "[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?",
39
+ "\\?",
40
+ "\\$",
41
+ "~",
42
+ ":",
43
+ "\\u00D7",
44
+ "\\u2208",
45
+ "\\u2209",
46
+ "\\u220B",
47
+ "\\u220C",
48
+ "\\u2218",
49
+ "\\u221A",
50
+ "\\u221B",
51
+ "\\u2229",
52
+ "\\u222A",
53
+ "\\u2260",
54
+ "\\u2264",
55
+ "\\u2265",
56
+ "\\u2286",
57
+ "\\u2288",
58
+ "\\u228A",
59
+ "\\u22C5",
60
+ "\\b(in|isa)\\b(?!.?\\()"
61
+ ], "");
62
+ var delimiters = /^[;,()[\]{}]/;
63
+ var identifiers = /^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/;
64
+ var chars = wordRegexp([octChar, hexChar, sChar, uChar], "'");
65
+ var openersList = [
66
+ "begin",
67
+ "function",
68
+ "type",
69
+ "struct",
70
+ "immutable",
71
+ "let",
72
+ "macro",
73
+ "for",
74
+ "while",
75
+ "quote",
76
+ "if",
77
+ "else",
78
+ "elseif",
79
+ "try",
80
+ "finally",
81
+ "catch",
82
+ "do"
83
+ ];
84
+ var closersList = ["end", "else", "elseif", "catch", "finally"];
85
+ var keywordsList = [
86
+ "if",
87
+ "else",
88
+ "elseif",
89
+ "while",
90
+ "for",
91
+ "begin",
92
+ "let",
93
+ "end",
94
+ "do",
95
+ "try",
96
+ "catch",
97
+ "finally",
98
+ "return",
99
+ "break",
100
+ "continue",
101
+ "global",
102
+ "local",
103
+ "const",
104
+ "export",
105
+ "import",
106
+ "importall",
107
+ "using",
108
+ "function",
109
+ "where",
110
+ "macro",
111
+ "module",
112
+ "baremodule",
113
+ "struct",
114
+ "type",
115
+ "mutable",
116
+ "immutable",
117
+ "quote",
118
+ "typealias",
119
+ "abstract",
120
+ "primitive",
121
+ "bitstype"
122
+ ];
123
+ var builtinsList = ["true", "false", "nothing", "NaN", "Inf"];
124
+ var openers = wordRegexp(openersList);
125
+ var closers = wordRegexp(closersList);
126
+ var keywords = wordRegexp(keywordsList);
127
+ var builtins = wordRegexp(builtinsList);
128
+ var macro = /^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/;
129
+ var symbol = /^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/;
130
+ var stringPrefixes = /^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/;
131
+ var macroOperators = wordRegexp(asciiOperatorsList, "", "@");
132
+ var symbolOperators = wordRegexp(asciiOperatorsList, "", ":");
133
+ function inArray(state) {
134
+ return state.nestedArrays > 0;
135
+ }
136
+ function inGenerator(state) {
137
+ return state.nestedGenerators > 0;
138
+ }
139
+ function currentScope(state, n) {
140
+ if (typeof n === "undefined") {
141
+ n = 0;
142
+ }
143
+ if (state.scopes.length <= n) {
144
+ return null;
145
+ }
146
+ return state.scopes[state.scopes.length - (n + 1)];
147
+ }
148
+ function tokenBase(stream, state) {
149
+ if (stream.match("#=", false)) {
150
+ state.tokenize = tokenComment;
151
+ return state.tokenize(stream, state);
152
+ }
153
+ var leavingExpr = state.leavingExpr;
154
+ if (stream.sol()) {
155
+ leavingExpr = false;
156
+ }
157
+ state.leavingExpr = false;
158
+ if (leavingExpr) {
159
+ if (stream.match(/^'+/)) {
160
+ return "operator";
161
+ }
162
+ }
163
+ if (stream.match(/\.{4,}/)) {
164
+ return "error";
165
+ } else if (stream.match(/\.{1,3}/)) {
166
+ return "operator";
167
+ }
168
+ if (stream.eatSpace()) {
169
+ return null;
170
+ }
171
+ var ch = stream.peek();
172
+ if (ch === "#") {
173
+ stream.skipToEnd();
174
+ return "comment";
175
+ }
176
+ if (ch === "[") {
177
+ state.scopes.push("[");
178
+ state.nestedArrays++;
179
+ }
180
+ if (ch === "(") {
181
+ state.scopes.push("(");
182
+ state.nestedGenerators++;
183
+ }
184
+ if (inArray(state) && ch === "]") {
185
+ while (state.scopes.length && currentScope(state) !== "[") {
186
+ state.scopes.pop();
187
+ }
188
+ state.scopes.pop();
189
+ state.nestedArrays--;
190
+ state.leavingExpr = true;
191
+ }
192
+ if (inGenerator(state) && ch === ")") {
193
+ while (state.scopes.length && currentScope(state) !== "(") {
194
+ state.scopes.pop();
195
+ }
196
+ state.scopes.pop();
197
+ state.nestedGenerators--;
198
+ state.leavingExpr = true;
199
+ }
200
+ if (inArray(state)) {
201
+ if (state.lastToken == "end" && stream.match(":")) {
202
+ return "operator";
203
+ }
204
+ if (stream.match("end")) {
205
+ return "number";
206
+ }
207
+ }
208
+ var match;
209
+ if (match = stream.match(openers, false)) {
210
+ state.scopes.push(match[0]);
211
+ }
212
+ if (stream.match(closers, false)) {
213
+ state.scopes.pop();
214
+ }
215
+ if (stream.match(/^::(?![:\$])/)) {
216
+ state.tokenize = tokenAnnotation;
217
+ return state.tokenize(stream, state);
218
+ }
219
+ if (!leavingExpr && (stream.match(symbol) || stream.match(symbolOperators))) {
220
+ return "builtin";
221
+ }
222
+ if (stream.match(operators)) {
223
+ return "operator";
224
+ }
225
+ if (stream.match(/^\.?\d/, false)) {
226
+ var imMatcher = RegExp(/^im\b/);
227
+ var numberLiteral = false;
228
+ if (stream.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)) {
229
+ numberLiteral = true;
230
+ }
231
+ if (stream.match(/^0x[0-9a-f_]+/i)) {
232
+ numberLiteral = true;
233
+ }
234
+ if (stream.match(/^0b[01_]+/i)) {
235
+ numberLiteral = true;
236
+ }
237
+ if (stream.match(/^0o[0-7_]+/i)) {
238
+ numberLiteral = true;
239
+ }
240
+ if (stream.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)) {
241
+ numberLiteral = true;
242
+ }
243
+ if (stream.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)) {
244
+ numberLiteral = true;
245
+ }
246
+ if (numberLiteral) {
247
+ stream.match(imMatcher);
248
+ state.leavingExpr = true;
249
+ return "number";
250
+ }
251
+ }
252
+ if (stream.match("'")) {
253
+ state.tokenize = tokenChar;
254
+ return state.tokenize(stream, state);
255
+ }
256
+ if (stream.match(stringPrefixes)) {
257
+ state.tokenize = tokenStringFactory(stream.current());
258
+ return state.tokenize(stream, state);
259
+ }
260
+ if (stream.match(macro) || stream.match(macroOperators)) {
261
+ return "meta";
262
+ }
263
+ if (stream.match(delimiters)) {
264
+ return null;
265
+ }
266
+ if (stream.match(keywords)) {
267
+ return "keyword";
268
+ }
269
+ if (stream.match(builtins)) {
270
+ return "builtin";
271
+ }
272
+ var isDefinition = state.isDefinition || state.lastToken == "function" || state.lastToken == "macro" || state.lastToken == "type" || state.lastToken == "struct" || state.lastToken == "immutable";
273
+ if (stream.match(identifiers)) {
274
+ if (isDefinition) {
275
+ if (stream.peek() === ".") {
276
+ state.isDefinition = true;
277
+ return "variable";
278
+ }
279
+ state.isDefinition = false;
280
+ return "def";
281
+ }
282
+ state.leavingExpr = true;
283
+ return "variable";
284
+ }
285
+ stream.next();
286
+ return "error";
287
+ }
288
+ function tokenAnnotation(stream, state) {
289
+ stream.match(/.*?(?=[,;{}()=\s]|$)/);
290
+ if (stream.match("{")) {
291
+ state.nestedParameters++;
292
+ } else if (stream.match("}") && state.nestedParameters > 0) {
293
+ state.nestedParameters--;
294
+ }
295
+ if (state.nestedParameters > 0) {
296
+ stream.match(/.*?(?={|})/) || stream.next();
297
+ } else if (state.nestedParameters == 0) {
298
+ state.tokenize = tokenBase;
299
+ }
300
+ return "builtin";
301
+ }
302
+ function tokenComment(stream, state) {
303
+ if (stream.match("#=")) {
304
+ state.nestedComments++;
305
+ }
306
+ if (!stream.match(/.*?(?=(#=|=#))/)) {
307
+ stream.skipToEnd();
308
+ }
309
+ if (stream.match("=#")) {
310
+ state.nestedComments--;
311
+ if (state.nestedComments == 0)
312
+ state.tokenize = tokenBase;
313
+ }
314
+ return "comment";
315
+ }
316
+ function tokenChar(stream, state) {
317
+ var isChar = false, match;
318
+ if (stream.match(chars)) {
319
+ isChar = true;
320
+ } else if (match = stream.match(/\\u([a-f0-9]{1,4})(?=')/i)) {
321
+ var value = parseInt(match[1], 16);
322
+ if (value <= 55295 || value >= 57344) {
323
+ isChar = true;
324
+ stream.next();
325
+ }
326
+ } else if (match = stream.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)) {
327
+ var value = parseInt(match[1], 16);
328
+ if (value <= 1114111) {
329
+ isChar = true;
330
+ stream.next();
331
+ }
332
+ }
333
+ if (isChar) {
334
+ state.leavingExpr = true;
335
+ state.tokenize = tokenBase;
336
+ return "string";
337
+ }
338
+ if (!stream.match(/^[^']+(?=')/)) {
339
+ stream.skipToEnd();
340
+ }
341
+ if (stream.match("'")) {
342
+ state.tokenize = tokenBase;
343
+ }
344
+ return "error";
345
+ }
346
+ function tokenStringFactory(delimiter) {
347
+ if (delimiter.substr(-3) === '"""') {
348
+ delimiter = '"""';
349
+ } else if (delimiter.substr(-1) === '"') {
350
+ delimiter = '"';
351
+ }
352
+ function tokenString(stream, state) {
353
+ if (stream.eat("\\")) {
354
+ stream.next();
355
+ } else if (stream.match(delimiter)) {
356
+ state.tokenize = tokenBase;
357
+ state.leavingExpr = true;
358
+ return "string";
359
+ } else {
360
+ stream.eat(/[`"]/);
361
+ }
362
+ stream.eatWhile(/[^\\`"]/);
363
+ return "string";
364
+ }
365
+ return tokenString;
366
+ }
367
+ const julia = {
368
+ name: "julia",
369
+ startState: function() {
370
+ return {
371
+ tokenize: tokenBase,
372
+ scopes: [],
373
+ lastToken: null,
374
+ leavingExpr: false,
375
+ isDefinition: false,
376
+ nestedArrays: 0,
377
+ nestedComments: 0,
378
+ nestedGenerators: 0,
379
+ nestedParameters: 0,
380
+ firstParenPos: -1
381
+ };
382
+ },
383
+ token: function(stream, state) {
384
+ var style = state.tokenize(stream, state);
385
+ var current = stream.current();
386
+ if (current && style) {
387
+ state.lastToken = current;
388
+ }
389
+ return style;
390
+ },
391
+ indent: function(state, textAfter, cx) {
392
+ var delta = 0;
393
+ if (textAfter === "]" || textAfter === ")" || /^end\b/.test(textAfter) || /^else/.test(textAfter) || /^catch\b/.test(textAfter) || /^elseif\b/.test(textAfter) || /^finally/.test(textAfter)) {
394
+ delta = -1;
395
+ }
396
+ return (state.scopes.length + delta) * cx.unit;
397
+ },
398
+ languageData: {
399
+ indentOnInput: /^\s*(end|else|catch|finally)\b$/,
400
+ commentTokens: { line: "#", block: { open: "#=", close: "=#" } },
401
+ closeBrackets: { brackets: ["(", "[", "{", '"'] },
402
+ autocomplete: keywordsList.concat(builtinsList)
403
+ }
404
+ };
405
+ export {
406
+ julia
407
+ };
408
+ //# sourceMappingURL=julia-Bs6JJhYG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"julia-Bs6JJhYG.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/julia.js"],"sourcesContent":["function wordRegexp(words, end, pre) {\n if (typeof pre === \"undefined\") pre = \"\";\n if (typeof end === \"undefined\") { end = \"\\\\b\"; }\n return new RegExp(\"^\" + pre + \"((\" + words.join(\")|(\") + \"))\" + end);\n}\n\nvar octChar = \"\\\\\\\\[0-7]{1,3}\";\nvar hexChar = \"\\\\\\\\x[A-Fa-f0-9]{1,2}\";\nvar sChar = \"\\\\\\\\[abefnrtv0%?'\\\"\\\\\\\\]\";\nvar uChar = \"([^\\\\u0027\\\\u005C\\\\uD800-\\\\uDFFF]|[\\\\uD800-\\\\uDFFF][\\\\uDC00-\\\\uDFFF])\";\n\nvar asciiOperatorsList = [\n \"[<>]:\", \"[<>=]=\", \"<<=?\", \">>>?=?\", \"=>\", \"--?>\", \"<--[->]?\", \"\\\\/\\\\/\",\n \"\\\\.{2,3}\", \"[\\\\.\\\\\\\\%*+\\\\-<>!\\\\/^|&]=?\", \"\\\\?\", \"\\\\$\", \"~\", \":\"\n];\nvar operators = wordRegexp([\n \"[<>]:\", \"[<>=]=\", \"[!=]==\", \"<<=?\", \">>>?=?\", \"=>?\", \"--?>\", \"<--[->]?\", \"\\\\/\\\\/\",\n \"[\\\\\\\\%*+\\\\-<>!\\\\/^|&\\\\u00F7\\\\u22BB]=?\", \"\\\\?\", \"\\\\$\", \"~\", \":\",\n \"\\\\u00D7\", \"\\\\u2208\", \"\\\\u2209\", \"\\\\u220B\", \"\\\\u220C\", \"\\\\u2218\",\n \"\\\\u221A\", \"\\\\u221B\", \"\\\\u2229\", \"\\\\u222A\", \"\\\\u2260\", \"\\\\u2264\",\n \"\\\\u2265\", \"\\\\u2286\", \"\\\\u2288\", \"\\\\u228A\", \"\\\\u22C5\",\n \"\\\\b(in|isa)\\\\b(?!\\.?\\\\()\"\n], \"\");\nvar delimiters = /^[;,()[\\]{}]/;\nvar identifiers = /^[_A-Za-z\\u00A1-\\u2217\\u2219-\\uFFFF][\\w\\u00A1-\\u2217\\u2219-\\uFFFF]*!*/;\n\nvar chars = wordRegexp([octChar, hexChar, sChar, uChar], \"'\");\n\nvar openersList = [\"begin\", \"function\", \"type\", \"struct\", \"immutable\", \"let\",\n \"macro\", \"for\", \"while\", \"quote\", \"if\", \"else\", \"elseif\", \"try\",\n \"finally\", \"catch\", \"do\"];\n\nvar closersList = [\"end\", \"else\", \"elseif\", \"catch\", \"finally\"];\n\nvar keywordsList = [\"if\", \"else\", \"elseif\", \"while\", \"for\", \"begin\", \"let\",\n \"end\", \"do\", \"try\", \"catch\", \"finally\", \"return\", \"break\", \"continue\",\n \"global\", \"local\", \"const\", \"export\", \"import\", \"importall\", \"using\",\n \"function\", \"where\", \"macro\", \"module\", \"baremodule\", \"struct\", \"type\",\n \"mutable\", \"immutable\", \"quote\", \"typealias\", \"abstract\", \"primitive\",\n \"bitstype\"];\n\nvar builtinsList = [\"true\", \"false\", \"nothing\", \"NaN\", \"Inf\"];\n\nvar openers = wordRegexp(openersList);\nvar closers = wordRegexp(closersList);\nvar keywords = wordRegexp(keywordsList);\nvar builtins = wordRegexp(builtinsList);\n\nvar macro = /^@[_A-Za-z\\u00A1-\\uFFFF][\\w\\u00A1-\\uFFFF]*!*/;\nvar symbol = /^:[_A-Za-z\\u00A1-\\uFFFF][\\w\\u00A1-\\uFFFF]*!*/;\nvar stringPrefixes = /^(`|([_A-Za-z\\u00A1-\\uFFFF]*\"(\"\")?))/;\n\nvar macroOperators = wordRegexp(asciiOperatorsList, \"\", \"@\");\nvar symbolOperators = wordRegexp(asciiOperatorsList, \"\", \":\");\n\nfunction inArray(state) {\n return (state.nestedArrays > 0);\n}\n\nfunction inGenerator(state) {\n return (state.nestedGenerators > 0);\n}\n\nfunction currentScope(state, n) {\n if (typeof(n) === \"undefined\") { n = 0; }\n if (state.scopes.length <= n) {\n return null;\n }\n return state.scopes[state.scopes.length - (n + 1)];\n}\n\n// tokenizers\nfunction tokenBase(stream, state) {\n // Handle multiline comments\n if (stream.match('#=', false)) {\n state.tokenize = tokenComment;\n return state.tokenize(stream, state);\n }\n\n // Handle scope changes\n var leavingExpr = state.leavingExpr;\n if (stream.sol()) {\n leavingExpr = false;\n }\n state.leavingExpr = false;\n\n if (leavingExpr) {\n if (stream.match(/^'+/)) {\n return \"operator\";\n }\n }\n\n if (stream.match(/\\.{4,}/)) {\n return \"error\";\n } else if (stream.match(/\\.{1,3}/)) {\n return \"operator\";\n }\n\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle single line comments\n if (ch === '#') {\n stream.skipToEnd();\n return \"comment\";\n }\n\n if (ch === '[') {\n state.scopes.push('[');\n state.nestedArrays++;\n }\n\n if (ch === '(') {\n state.scopes.push('(');\n state.nestedGenerators++;\n }\n\n if (inArray(state) && ch === ']') {\n while (state.scopes.length && currentScope(state) !== \"[\") { state.scopes.pop(); }\n state.scopes.pop();\n state.nestedArrays--;\n state.leavingExpr = true;\n }\n\n if (inGenerator(state) && ch === ')') {\n while (state.scopes.length && currentScope(state) !== \"(\") { state.scopes.pop(); }\n state.scopes.pop();\n state.nestedGenerators--;\n state.leavingExpr = true;\n }\n\n if (inArray(state)) {\n if (state.lastToken == \"end\" && stream.match(':')) {\n return \"operator\";\n }\n if (stream.match('end')) {\n return \"number\";\n }\n }\n\n var match;\n if (match = stream.match(openers, false)) {\n state.scopes.push(match[0]);\n }\n\n if (stream.match(closers, false)) {\n state.scopes.pop();\n }\n\n // Handle type annotations\n if (stream.match(/^::(?![:\\$])/)) {\n state.tokenize = tokenAnnotation;\n return state.tokenize(stream, state);\n }\n\n // Handle symbols\n if (!leavingExpr && (stream.match(symbol) || stream.match(symbolOperators))) {\n return \"builtin\";\n }\n\n // Handle parametric types\n //if (stream.match(/^{[^}]*}(?=\\()/)) {\n // return \"builtin\";\n //}\n\n // Handle operators and Delimiters\n if (stream.match(operators)) {\n return \"operator\";\n }\n\n // Handle Number Literals\n if (stream.match(/^\\.?\\d/, false)) {\n var imMatcher = RegExp(/^im\\b/);\n var numberLiteral = false;\n if (stream.match(/^0x\\.[0-9a-f_]+p[\\+\\-]?[_\\d]+/i)) { numberLiteral = true; }\n // Integers\n if (stream.match(/^0x[0-9a-f_]+/i)) { numberLiteral = true; } // Hex\n if (stream.match(/^0b[01_]+/i)) { numberLiteral = true; } // Binary\n if (stream.match(/^0o[0-7_]+/i)) { numberLiteral = true; } // Octal\n // Floats\n if (stream.match(/^(?:(?:\\d[_\\d]*)?\\.(?!\\.)(?:\\d[_\\d]*)?|\\d[_\\d]*\\.(?!\\.)(?:\\d[_\\d]*))?([Eef][\\+\\-]?[_\\d]+)?/i)) { numberLiteral = true; }\n if (stream.match(/^\\d[_\\d]*(e[\\+\\-]?\\d+)?/i)) { numberLiteral = true; } // Decimal\n if (numberLiteral) {\n // Integer literals may be \"long\"\n stream.match(imMatcher);\n state.leavingExpr = true;\n return \"number\";\n }\n }\n\n // Handle Chars\n if (stream.match(\"'\")) {\n state.tokenize = tokenChar;\n return state.tokenize(stream, state);\n }\n\n // Handle Strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenStringFactory(stream.current());\n return state.tokenize(stream, state);\n }\n\n if (stream.match(macro) || stream.match(macroOperators)) {\n return \"meta\";\n }\n\n if (stream.match(delimiters)) {\n return null;\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(builtins)) {\n return \"builtin\";\n }\n\n var isDefinition = state.isDefinition || state.lastToken == \"function\" ||\n state.lastToken == \"macro\" || state.lastToken == \"type\" ||\n state.lastToken == \"struct\" || state.lastToken == \"immutable\";\n\n if (stream.match(identifiers)) {\n if (isDefinition) {\n if (stream.peek() === '.') {\n state.isDefinition = true;\n return \"variable\";\n }\n state.isDefinition = false;\n return \"def\";\n }\n state.leavingExpr = true;\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return \"error\";\n}\n\nfunction tokenAnnotation(stream, state) {\n stream.match(/.*?(?=[,;{}()=\\s]|$)/);\n if (stream.match('{')) {\n state.nestedParameters++;\n } else if (stream.match('}') && state.nestedParameters > 0) {\n state.nestedParameters--;\n }\n if (state.nestedParameters > 0) {\n stream.match(/.*?(?={|})/) || stream.next();\n } else if (state.nestedParameters == 0) {\n state.tokenize = tokenBase;\n }\n return \"builtin\";\n}\n\nfunction tokenComment(stream, state) {\n if (stream.match('#=')) {\n state.nestedComments++;\n }\n if (!stream.match(/.*?(?=(#=|=#))/)) {\n stream.skipToEnd();\n }\n if (stream.match('=#')) {\n state.nestedComments--;\n if (state.nestedComments == 0)\n state.tokenize = tokenBase;\n }\n return \"comment\";\n}\n\nfunction tokenChar(stream, state) {\n var isChar = false, match;\n if (stream.match(chars)) {\n isChar = true;\n } else if (match = stream.match(/\\\\u([a-f0-9]{1,4})(?=')/i)) {\n var value = parseInt(match[1], 16);\n if (value <= 55295 || value >= 57344) { // (U+0,U+D7FF), (U+E000,U+FFFF)\n isChar = true;\n stream.next();\n }\n } else if (match = stream.match(/\\\\U([A-Fa-f0-9]{5,8})(?=')/)) {\n var value = parseInt(match[1], 16);\n if (value <= 1114111) { // U+10FFFF\n isChar = true;\n stream.next();\n }\n }\n if (isChar) {\n state.leavingExpr = true;\n state.tokenize = tokenBase;\n return \"string\";\n }\n if (!stream.match(/^[^']+(?=')/)) { stream.skipToEnd(); }\n if (stream.match(\"'\")) { state.tokenize = tokenBase; }\n return \"error\";\n}\n\nfunction tokenStringFactory(delimiter) {\n if (delimiter.substr(-3) === '\"\"\"') {\n delimiter = '\"\"\"';\n } else if (delimiter.substr(-1) === '\"') {\n delimiter = '\"';\n }\n function tokenString(stream, state) {\n if (stream.eat('\\\\')) {\n stream.next();\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n state.leavingExpr = true;\n return \"string\";\n } else {\n stream.eat(/[`\"]/);\n }\n stream.eatWhile(/[^\\\\`\"]/);\n return \"string\";\n }\n return tokenString;\n}\n\nexport const julia = {\n name: \"julia\",\n startState: function() {\n return {\n tokenize: tokenBase,\n scopes: [],\n lastToken: null,\n leavingExpr: false,\n isDefinition: false,\n nestedArrays: 0,\n nestedComments: 0,\n nestedGenerators: 0,\n nestedParameters: 0,\n firstParenPos: -1\n };\n },\n\n token: function(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n if (current && style) {\n state.lastToken = current;\n }\n\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n var delta = 0;\n if ( textAfter === ']' || textAfter === ')' || /^end\\b/.test(textAfter) ||\n /^else/.test(textAfter) || /^catch\\b/.test(textAfter) || /^elseif\\b/.test(textAfter) ||\n /^finally/.test(textAfter) ) {\n delta = -1;\n }\n return (state.scopes.length + delta) * cx.unit;\n },\n\n languageData: {\n indentOnInput: /^\\s*(end|else|catch|finally)\\b$/,\n commentTokens: {line: \"#\", block: {open: \"#=\", close: \"=#\"}},\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n autocomplete: keywordsList.concat(builtinsList)\n }\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}