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.
- package/dist/apl-fqmucPXA.js +141 -0
- package/dist/apl-fqmucPXA.js.map +1 -0
- package/dist/asciiarmor-DucZyvP0.js +57 -0
- package/dist/asciiarmor-DucZyvP0.js.map +1 -0
- package/dist/asn1-BnOEsgAm.js +145 -0
- package/dist/asn1-BnOEsgAm.js.map +1 -0
- package/dist/assets/tar-worker-CxTcoQcr.js +593 -0
- package/dist/assets/tar-worker-CxTcoQcr.js.map +1 -0
- package/dist/asterisk-QAlztEwS.js +346 -0
- package/dist/asterisk-QAlztEwS.js.map +1 -0
- package/dist/brainfuck-DZVCuF_t.js +54 -0
- package/dist/brainfuck-DZVCuF_t.js.map +1 -0
- package/dist/clike-CTYGlS6x.js +800 -0
- package/dist/clike-CTYGlS6x.js.map +1 -0
- package/dist/clojure-BhXMqnxz.js +850 -0
- package/dist/clojure-BhXMqnxz.js.map +1 -0
- package/dist/cmake-BGaNd9E7.js +72 -0
- package/dist/cmake-BGaNd9E7.js.map +1 -0
- package/dist/cobol-4yqQntpt.js +121 -0
- package/dist/cobol-4yqQntpt.js.map +1 -0
- package/dist/codemirror-De3S70Np.js +2912 -0
- package/dist/codemirror-De3S70Np.js.map +1 -0
- package/dist/coffeescript-D2dXvhEc.js +309 -0
- package/dist/coffeescript-D2dXvhEc.js.map +1 -0
- package/dist/commonlisp-CF_VNHQR.js +131 -0
- package/dist/commonlisp-CF_VNHQR.js.map +1 -0
- package/dist/crystal-DyuLTqLs.js +399 -0
- package/dist/crystal-DyuLTqLs.js.map +1 -0
- package/dist/css-DkSyTW67.js +1773 -0
- package/dist/css-DkSyTW67.js.map +1 -0
- package/dist/cypher-Dlu_3r4V.js +122 -0
- package/dist/cypher-Dlu_3r4V.js.map +1 -0
- package/dist/d-UURgV0Ux.js +180 -0
- package/dist/d-UURgV0Ux.js.map +1 -0
- package/dist/diff-B_Bi2Crb.js +26 -0
- package/dist/diff-B_Bi2Crb.js.map +1 -0
- package/dist/dockerfile-Bvk733Ga.js +202 -0
- package/dist/dockerfile-Bvk733Ga.js.map +1 -0
- package/dist/dtd-Dy74G54E.js +115 -0
- package/dist/dtd-Dy74G54E.js.map +1 -0
- package/dist/dylan-TSb-Nfix.js +315 -0
- package/dist/dylan-TSb-Nfix.js.map +1 -0
- package/dist/ebnf-4fKAGW3a.js +141 -0
- package/dist/ebnf-4fKAGW3a.js.map +1 -0
- package/dist/ecl-B59qGGVg.js +179 -0
- package/dist/ecl-B59qGGVg.js.map +1 -0
- package/dist/eiffel-Dze7nlu3.js +135 -0
- package/dist/eiffel-Dze7nlu3.js.map +1 -0
- package/dist/elm-DG7jkhNZ.js +177 -0
- package/dist/elm-DG7jkhNZ.js.map +1 -0
- package/dist/erlang-BO6gOnGA.js +675 -0
- package/dist/erlang-BO6gOnGA.js.map +1 -0
- package/dist/factor-CMxFHDqz.js +66 -0
- package/dist/factor-CMxFHDqz.js.map +1 -0
- package/dist/fcl-CDDUNjTj.js +142 -0
- package/dist/fcl-CDDUNjTj.js.map +1 -0
- package/dist/forth-B9D2JCeE.js +117 -0
- package/dist/forth-B9D2JCeE.js.map +1 -0
- package/dist/fortran-CAG2BFbe.js +468 -0
- package/dist/fortran-CAG2BFbe.js.map +1 -0
- package/dist/gas-0Aw8zDr5.js +294 -0
- package/dist/gas-0Aw8zDr5.js.map +1 -0
- package/dist/gherkin-DhZlEZiy.js +116 -0
- package/dist/gherkin-DhZlEZiy.js.map +1 -0
- package/dist/gjs-DfguZDLq.js +173 -0
- package/dist/gjs-DfguZDLq.js.map +1 -0
- package/dist/gmd-Yas-Oo8k.js +163 -0
- package/dist/gmd-Yas-Oo8k.js.map +1 -0
- package/dist/groovy-CpwJiBl7.js +224 -0
- package/dist/groovy-CpwJiBl7.js.map +1 -0
- package/dist/haskell-ySd-OUo8.js +460 -0
- package/dist/haskell-ySd-OUo8.js.map +1 -0
- package/dist/haxe-7MlzfeYV.js +515 -0
- package/dist/haxe-7MlzfeYV.js.map +1 -0
- package/dist/hbs-CxcmWxSJ.js +62 -0
- package/dist/hbs-CxcmWxSJ.js.map +1 -0
- package/dist/http-BqypyemW.js +80 -0
- package/dist/http-BqypyemW.js.map +1 -0
- package/dist/idl-4HIGJlDI.js +986 -0
- package/dist/idl-4HIGJlDI.js.map +1 -0
- package/dist/index-B3Meoznj.js +118 -0
- package/dist/index-B3Meoznj.js.map +1 -0
- package/dist/index-BQyfDUUx.js +692 -0
- package/dist/index-BQyfDUUx.js.map +1 -0
- package/dist/index-BRDroAD8.js +305 -0
- package/dist/index-BRDroAD8.js.map +1 -0
- package/dist/index-BRMAzRyM.js +179 -0
- package/dist/index-BRMAzRyM.js.map +1 -0
- package/dist/index-Bb8uYQgv.js +927 -0
- package/dist/index-Bb8uYQgv.js.map +1 -0
- package/dist/index-BlOjO66K.js +17618 -0
- package/dist/index-BlOjO66K.js.map +1 -0
- package/dist/index-BoGWnSNL.js +706 -0
- package/dist/index-BoGWnSNL.js.map +1 -0
- package/dist/index-BsRrEiOu.js +98 -0
- package/dist/index-BsRrEiOu.js.map +1 -0
- package/dist/index-C2sFZMth.js +391 -0
- package/dist/index-C2sFZMth.js.map +1 -0
- package/dist/index-C7xwOjmS.js +291 -0
- package/dist/index-C7xwOjmS.js.map +1 -0
- package/dist/index-CA3lFUx6.js +315 -0
- package/dist/index-CA3lFUx6.js.map +1 -0
- package/dist/index-CB-pPTIf.js +98 -0
- package/dist/index-CB-pPTIf.js.map +1 -0
- package/dist/index-CCa6x1FE.js +386 -0
- package/dist/index-CCa6x1FE.js.map +1 -0
- package/dist/index-CD4DINI1.js +158 -0
- package/dist/index-CD4DINI1.js.map +1 -0
- package/dist/index-CE0B_fcG.js +328 -0
- package/dist/index-CE0B_fcG.js.map +1 -0
- package/dist/index-CVGAEPMV.js +2139 -0
- package/dist/index-CVGAEPMV.js.map +1 -0
- package/dist/index-CmaT2afn.js +332 -0
- package/dist/index-CmaT2afn.js.map +1 -0
- package/dist/index-D8sUxXp5.js +83 -0
- package/dist/index-D8sUxXp5.js.map +1 -0
- package/dist/index-DIz8Vpn-.js +737 -0
- package/dist/index-DIz8Vpn-.js.map +1 -0
- package/dist/index-DNP1xT-S.js +408 -0
- package/dist/index-DNP1xT-S.js.map +1 -0
- package/dist/index-DOAqdvnQ.js +862 -0
- package/dist/index-DOAqdvnQ.js.map +1 -0
- package/dist/index-DVUMFbgi.js +152 -0
- package/dist/index-DVUMFbgi.js.map +1 -0
- package/dist/index-VeTBKRVd.js +83 -0
- package/dist/index-VeTBKRVd.js.map +1 -0
- package/dist/index-dXZeR7Bx.js +1767 -0
- package/dist/index-dXZeR7Bx.js.map +1 -0
- package/dist/index-gtqbIb6T.js +62 -0
- package/dist/index-gtqbIb6T.js.map +1 -0
- package/dist/index-pN_pUAQ7.js +2426 -0
- package/dist/index-pN_pUAQ7.js.map +1 -0
- package/dist/index-wasu5VX0.js +1150 -0
- package/dist/index-wasu5VX0.js.map +1 -0
- package/dist/javascript-Bt8B7yTi.js +993 -0
- package/dist/javascript-Bt8B7yTi.js.map +1 -0
- package/dist/julia-Bs6JJhYG.js +408 -0
- package/dist/julia-Bs6JJhYG.js.map +1 -0
- package/dist/livescript-DmzgM3Yt.js +297 -0
- package/dist/livescript-DmzgM3Yt.js.map +1 -0
- package/dist/lua-8cJgIlqe.js +257 -0
- package/dist/lua-8cJgIlqe.js.map +1 -0
- package/dist/mathematica-DNLOL9PQ.js +111 -0
- package/dist/mathematica-DNLOL9PQ.js.map +1 -0
- package/dist/mbox-Ga7d4MMN.js +118 -0
- package/dist/mbox-Ga7d4MMN.js.map +1 -0
- package/dist/mirc-Dma3B8rS.js +108 -0
- package/dist/mirc-Dma3B8rS.js.map +1 -0
- package/dist/mllike-DHn7xckP.js +335 -0
- package/dist/mllike-DHn7xckP.js.map +1 -0
- package/dist/modelica-0d55jYY0.js +148 -0
- package/dist/modelica-0d55jYY0.js.map +1 -0
- package/dist/mscgen-DdqZYINH.js +136 -0
- package/dist/mscgen-DdqZYINH.js.map +1 -0
- package/dist/mumps-Btr8VblO.js +94 -0
- package/dist/mumps-Btr8VblO.js.map +1 -0
- package/dist/nginx-DTDtBDVN.js +142 -0
- package/dist/nginx-DTDtBDVN.js.map +1 -0
- package/dist/nsis-3zG7tgur.js +63 -0
- package/dist/nsis-3zG7tgur.js.map +1 -0
- package/dist/ntriples-CvgOYMpL.js +154 -0
- package/dist/ntriples-CvgOYMpL.js.map +1 -0
- package/dist/octave-DYBj3-tl.js +201 -0
- package/dist/octave-DYBj3-tl.js.map +1 -0
- package/dist/oz-R_e8WMIi.js +232 -0
- package/dist/oz-R_e8WMIi.js.map +1 -0
- package/dist/parse-CAqQaKsh.js +21685 -0
- package/dist/parse-CAqQaKsh.js.map +1 -0
- package/dist/pascal-GD8iposT.js +106 -0
- package/dist/pascal-GD8iposT.js.map +1 -0
- package/dist/perl-DL9mHpoi.js +1106 -0
- package/dist/perl-DL9mHpoi.js.map +1 -0
- package/dist/pig-C_4T4YIV.js +102 -0
- package/dist/pig-C_4T4YIV.js.map +1 -0
- package/dist/powershell-B0suO7Vd.js +329 -0
- package/dist/powershell-B0suO7Vd.js.map +1 -0
- package/dist/properties-BR-vP1aU.js +59 -0
- package/dist/properties-BR-vP1aU.js.map +1 -0
- package/dist/protobuf-BxgpyhoW.js +78 -0
- package/dist/protobuf-BxgpyhoW.js.map +1 -0
- package/dist/pug-vHnWR0UE.js +406 -0
- package/dist/pug-vHnWR0UE.js.map +1 -0
- package/dist/puppet-Bdao66PW.js +138 -0
- package/dist/puppet-Bdao66PW.js.map +1 -0
- package/dist/python-BFGRmuZ9.js +427 -0
- package/dist/python-BFGRmuZ9.js.map +1 -0
- package/dist/q-CrbCVq4a.js +132 -0
- package/dist/q-CrbCVq4a.js.map +1 -0
- package/dist/r-V7nswm59.js +171 -0
- package/dist/r-V7nswm59.js.map +1 -0
- package/dist/render-app-island-B-i8rvGi.js +61 -0
- package/dist/render-app-island-B-i8rvGi.js.map +1 -0
- package/dist/repl-sdk.js +7 -0
- package/dist/repl-sdk.js.map +1 -0
- package/dist/rpm-C-DLY-If.js +110 -0
- package/dist/rpm-C-DLY-If.js.map +1 -0
- package/dist/ruby-JDKLJNK0.js +331 -0
- package/dist/ruby-JDKLJNK0.js.map +1 -0
- package/dist/sas-D2UG-yhZ.js +208 -0
- package/dist/sas-D2UG-yhZ.js.map +1 -0
- package/dist/scheme-BKzrkGJD.js +223 -0
- package/dist/scheme-BKzrkGJD.js.map +1 -0
- package/dist/shell-BlsXDxCn.js +223 -0
- package/dist/shell-BlsXDxCn.js.map +1 -0
- package/dist/sieve-CjwBwOY5.js +136 -0
- package/dist/sieve-CjwBwOY5.js.map +1 -0
- package/dist/simple-mode-DMneyfDu.js +131 -0
- package/dist/simple-mode-DMneyfDu.js.map +1 -0
- package/dist/smalltalk-BOIGQuhN.js +122 -0
- package/dist/smalltalk-BOIGQuhN.js.map +1 -0
- package/dist/solr-CwD7U71z.js +70 -0
- package/dist/solr-CwD7U71z.js.map +1 -0
- package/dist/sparql-DYskk2vE.js +250 -0
- package/dist/sparql-DYskk2vE.js.map +1 -0
- package/dist/spreadsheet-Bgtt3oLP.js +88 -0
- package/dist/spreadsheet-Bgtt3oLP.js.map +1 -0
- package/dist/sql-Cei9CMfk.js +343 -0
- package/dist/sql-Cei9CMfk.js.map +1 -0
- package/dist/stex-C1nZSzAw.js +231 -0
- package/dist/stex-C1nZSzAw.js.map +1 -0
- package/dist/stylus-BkS-boTH.js +566 -0
- package/dist/stylus-BkS-boTH.js.map +1 -0
- package/dist/swift-FRZi1uvB.js +292 -0
- package/dist/swift-FRZi1uvB.js.map +1 -0
- package/dist/tcl-CUcaCdmq.js +115 -0
- package/dist/tcl-CUcaCdmq.js.map +1 -0
- package/dist/textile-BnFpjsrl.js +415 -0
- package/dist/textile-BnFpjsrl.js.map +1 -0
- package/dist/tiddlywiki-CjprD-Qp.js +219 -0
- package/dist/tiddlywiki-CjprD-Qp.js.map +1 -0
- package/dist/tiki-DK9DOeWn.js +269 -0
- package/dist/tiki-DK9DOeWn.js.map +1 -0
- package/dist/toml-BOuWGMcf.js +77 -0
- package/dist/toml-BOuWGMcf.js.map +1 -0
- package/dist/troff-E1bJ0PPL.js +62 -0
- package/dist/troff-E1bJ0PPL.js.map +1 -0
- package/dist/ttcn-cfg-Dc39-fIP.js +134 -0
- package/dist/ttcn-cfg-Dc39-fIP.js.map +1 -0
- package/dist/ttcn-tKd4HLu4.js +193 -0
- package/dist/ttcn-tKd4HLu4.js.map +1 -0
- package/dist/turtle-Dq7-1WAf.js +125 -0
- package/dist/turtle-Dq7-1WAf.js.map +1 -0
- package/dist/vb-Dp90gtsv.js +197 -0
- package/dist/vb-Dp90gtsv.js.map +1 -0
- package/dist/vbscript-Bfn8O8I7.js +479 -0
- package/dist/vbscript-Bfn8O8I7.js.map +1 -0
- package/dist/velocity-BwIZK1TH.js +150 -0
- package/dist/velocity-BwIZK1TH.js.map +1 -0
- package/dist/verilog-CnT9bMk0.js +430 -0
- package/dist/verilog-CnT9bMk0.js.map +1 -0
- package/dist/vhdl-DCkMIyT9.js +159 -0
- package/dist/vhdl-DCkMIyT9.js.map +1 -0
- package/dist/webidl-BTLTThCm.js +205 -0
- package/dist/webidl-BTLTThCm.js.map +1 -0
- package/dist/xquery-BrBUuxMR.js +526 -0
- package/dist/xquery-BrBUuxMR.js.map +1 -0
- package/dist/yacas-b5lAVEIl.js +131 -0
- package/dist/yacas-b5lAVEIl.js.map +1 -0
- package/dist/z80-ClgwfNdB.js +93 -0
- package/dist/z80-ClgwfNdB.js.map +1 -0
- package/package.json +81 -9
- package/src/cache.js +138 -0
- package/src/cdn.js +93 -0
- package/src/codemirror.js +161 -0
- package/src/compilers/ember/gjs.js +212 -0
- package/src/compilers/ember/gmd.js +190 -0
- package/src/compilers/ember/hbs.js +98 -0
- package/src/compilers/ember/render-app-island.js +83 -0
- package/src/compilers/ember.js +166 -0
- package/src/compilers/js.js +32 -0
- package/src/compilers/markdown/build-compiler.js +151 -0
- package/src/compilers/markdown/const.js +2 -0
- package/src/compilers/markdown/heading-id.js +75 -0
- package/src/compilers/markdown/live-code-extraction.js +198 -0
- package/src/compilers/markdown/parse.js +22 -0
- package/src/compilers/markdown/parse.test.ts +363 -0
- package/src/compilers/markdown/sanitize-for-glimmer.js +26 -0
- package/src/compilers/markdown/types.ts +21 -0
- package/src/compilers/markdown/utils.js +78 -0
- package/src/compilers/markdown.js +125 -0
- package/src/compilers/mermaid.js +35 -0
- package/src/compilers/react.js +59 -0
- package/src/compilers/svelte.js +116 -0
- package/src/compilers/vue.js +58 -0
- package/src/compilers.js +108 -0
- package/src/es-module-shim.js +53 -0
- package/src/index.d.ts +53 -4
- package/src/index.js +744 -89
- package/src/npm.js +58 -0
- package/src/request.Request.test.ts +59 -0
- package/src/request.js +140 -0
- package/src/resolve.fromImports.test.ts +35 -0
- package/src/resolve.fromInternalImport.test.ts +69 -0
- package/src/resolve.js +352 -0
- package/src/resolve.resolvePath.test.ts +24 -0
- package/src/resolve.test.ts +23 -0
- package/src/specifier.js +71 -0
- package/src/specifier.test.ts +90 -0
- package/src/tar-worker.js +61 -0
- package/src/tar.js +76 -0
- package/src/types.ts +335 -58
- package/src/utils.js +28 -1
- package/declarations/index.d.ts +0 -73
- package/dist/index.js +0 -107
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
function words(str) {
|
|
2
|
+
var obj = {}, words2 = str.split(" ");
|
|
3
|
+
for (var i = 0; i < words2.length; ++i) obj[words2[i]] = true;
|
|
4
|
+
return obj;
|
|
5
|
+
}
|
|
6
|
+
const parserConfig = {
|
|
7
|
+
keywords: words("activate address alive all alt altstep and and4b any break case component const continue control deactivate display do else encode enumerated except exception execute extends extension external for from function goto group if import in infinity inout interleave label language length log match message mixed mod modifies module modulepar mtc noblock not not4b nowait of on optional or or4b out override param pattern port procedure record recursive rem repeat return runs select self sender set signature system template testcase to type union value valueof var variant while with xor xor4b"),
|
|
8
|
+
builtin: words("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue decomp decvalue float2int float2str hex2bit hex2int hex2oct hex2str int2bit int2char int2float int2hex int2oct int2str int2unichar isbound ischosen ispresent isvalue lengthof log2str oct2bit oct2char oct2hex oct2int oct2str regexp replace rnd sizeof str2bit str2float str2hex str2int str2oct substr unichar2int unichar2char enum2int"),
|
|
9
|
+
types: words("anytype bitstring boolean char charstring default float hexstring integer objid octetstring universal verdicttype timer"),
|
|
10
|
+
timerOps: words("read running start stop timeout"),
|
|
11
|
+
portOps: words("call catch check clear getcall getreply halt raise receive reply send trigger"),
|
|
12
|
+
configOps: words("create connect disconnect done kill killed map unmap"),
|
|
13
|
+
verdictOps: words("getverdict setverdict"),
|
|
14
|
+
sutOps: words("action"),
|
|
15
|
+
functionOps: words("apply derefers refers"),
|
|
16
|
+
verdictConsts: words("error fail inconc none pass"),
|
|
17
|
+
booleanConsts: words("true false"),
|
|
18
|
+
otherConsts: words("null NULL omit"),
|
|
19
|
+
visibilityModifiers: words("private public friend"),
|
|
20
|
+
templateMatch: words("complement ifpresent subset superset permutation")
|
|
21
|
+
};
|
|
22
|
+
var wordList = [];
|
|
23
|
+
function add(obj) {
|
|
24
|
+
if (obj) {
|
|
25
|
+
for (var prop in obj) if (obj.hasOwnProperty(prop))
|
|
26
|
+
wordList.push(prop);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
add(parserConfig.keywords);
|
|
30
|
+
add(parserConfig.builtin);
|
|
31
|
+
add(parserConfig.timerOps);
|
|
32
|
+
add(parserConfig.portOps);
|
|
33
|
+
var keywords = parserConfig.keywords || {}, builtin = parserConfig.builtin || {}, timerOps = parserConfig.timerOps || {}, portOps = parserConfig.portOps || {}, configOps = parserConfig.configOps || {}, verdictOps = parserConfig.verdictOps || {}, sutOps = parserConfig.sutOps || {}, functionOps = parserConfig.functionOps || {}, verdictConsts = parserConfig.verdictConsts || {}, booleanConsts = parserConfig.booleanConsts || {}, otherConsts = parserConfig.otherConsts || {}, types = parserConfig.types || {}, visibilityModifiers = parserConfig.visibilityModifiers || {}, templateMatch = parserConfig.templateMatch || {}, indentStatements = parserConfig.indentStatements !== false;
|
|
34
|
+
var isOperatorChar = /[+\-*&@=<>!\/]/;
|
|
35
|
+
var curPunc;
|
|
36
|
+
function tokenBase(stream, state) {
|
|
37
|
+
var ch = stream.next();
|
|
38
|
+
if (ch == '"' || ch == "'") {
|
|
39
|
+
state.tokenize = tokenString(ch);
|
|
40
|
+
return state.tokenize(stream, state);
|
|
41
|
+
}
|
|
42
|
+
if (/[\[\]{}\(\),;\\:\?\.]/.test(ch)) {
|
|
43
|
+
curPunc = ch;
|
|
44
|
+
return "punctuation";
|
|
45
|
+
}
|
|
46
|
+
if (ch == "#") {
|
|
47
|
+
stream.skipToEnd();
|
|
48
|
+
return "atom";
|
|
49
|
+
}
|
|
50
|
+
if (ch == "%") {
|
|
51
|
+
stream.eatWhile(/\b/);
|
|
52
|
+
return "atom";
|
|
53
|
+
}
|
|
54
|
+
if (/\d/.test(ch)) {
|
|
55
|
+
stream.eatWhile(/[\w\.]/);
|
|
56
|
+
return "number";
|
|
57
|
+
}
|
|
58
|
+
if (ch == "/") {
|
|
59
|
+
if (stream.eat("*")) {
|
|
60
|
+
state.tokenize = tokenComment;
|
|
61
|
+
return tokenComment(stream, state);
|
|
62
|
+
}
|
|
63
|
+
if (stream.eat("/")) {
|
|
64
|
+
stream.skipToEnd();
|
|
65
|
+
return "comment";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (isOperatorChar.test(ch)) {
|
|
69
|
+
if (ch == "@") {
|
|
70
|
+
if (stream.match("try") || stream.match("catch") || stream.match("lazy")) {
|
|
71
|
+
return "keyword";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
stream.eatWhile(isOperatorChar);
|
|
75
|
+
return "operator";
|
|
76
|
+
}
|
|
77
|
+
stream.eatWhile(/[\w\$_\xa1-\uffff]/);
|
|
78
|
+
var cur = stream.current();
|
|
79
|
+
if (keywords.propertyIsEnumerable(cur)) return "keyword";
|
|
80
|
+
if (builtin.propertyIsEnumerable(cur)) return "builtin";
|
|
81
|
+
if (timerOps.propertyIsEnumerable(cur)) return "def";
|
|
82
|
+
if (configOps.propertyIsEnumerable(cur)) return "def";
|
|
83
|
+
if (verdictOps.propertyIsEnumerable(cur)) return "def";
|
|
84
|
+
if (portOps.propertyIsEnumerable(cur)) return "def";
|
|
85
|
+
if (sutOps.propertyIsEnumerable(cur)) return "def";
|
|
86
|
+
if (functionOps.propertyIsEnumerable(cur)) return "def";
|
|
87
|
+
if (verdictConsts.propertyIsEnumerable(cur)) return "string";
|
|
88
|
+
if (booleanConsts.propertyIsEnumerable(cur)) return "string";
|
|
89
|
+
if (otherConsts.propertyIsEnumerable(cur)) return "string";
|
|
90
|
+
if (types.propertyIsEnumerable(cur)) return "typeName.standard";
|
|
91
|
+
if (visibilityModifiers.propertyIsEnumerable(cur))
|
|
92
|
+
return "modifier";
|
|
93
|
+
if (templateMatch.propertyIsEnumerable(cur)) return "atom";
|
|
94
|
+
return "variable";
|
|
95
|
+
}
|
|
96
|
+
function tokenString(quote) {
|
|
97
|
+
return function(stream, state) {
|
|
98
|
+
var escaped = false, next, end = false;
|
|
99
|
+
while ((next = stream.next()) != null) {
|
|
100
|
+
if (next == quote && !escaped) {
|
|
101
|
+
var afterQuote = stream.peek();
|
|
102
|
+
if (afterQuote) {
|
|
103
|
+
afterQuote = afterQuote.toLowerCase();
|
|
104
|
+
if (afterQuote == "b" || afterQuote == "h" || afterQuote == "o")
|
|
105
|
+
stream.next();
|
|
106
|
+
}
|
|
107
|
+
end = true;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
escaped = !escaped && next == "\\";
|
|
111
|
+
}
|
|
112
|
+
if (end || false)
|
|
113
|
+
state.tokenize = null;
|
|
114
|
+
return "string";
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function tokenComment(stream, state) {
|
|
118
|
+
var maybeEnd = false, ch;
|
|
119
|
+
while (ch = stream.next()) {
|
|
120
|
+
if (ch == "/" && maybeEnd) {
|
|
121
|
+
state.tokenize = null;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
maybeEnd = ch == "*";
|
|
125
|
+
}
|
|
126
|
+
return "comment";
|
|
127
|
+
}
|
|
128
|
+
function Context(indented, column, type, align, prev) {
|
|
129
|
+
this.indented = indented;
|
|
130
|
+
this.column = column;
|
|
131
|
+
this.type = type;
|
|
132
|
+
this.align = align;
|
|
133
|
+
this.prev = prev;
|
|
134
|
+
}
|
|
135
|
+
function pushContext(state, col, type) {
|
|
136
|
+
var indent = state.indented;
|
|
137
|
+
if (state.context && state.context.type == "statement")
|
|
138
|
+
indent = state.context.indented;
|
|
139
|
+
return state.context = new Context(indent, col, type, null, state.context);
|
|
140
|
+
}
|
|
141
|
+
function popContext(state) {
|
|
142
|
+
var t = state.context.type;
|
|
143
|
+
if (t == ")" || t == "]" || t == "}")
|
|
144
|
+
state.indented = state.context.indented;
|
|
145
|
+
return state.context = state.context.prev;
|
|
146
|
+
}
|
|
147
|
+
const ttcn = {
|
|
148
|
+
name: "ttcn",
|
|
149
|
+
startState: function() {
|
|
150
|
+
return {
|
|
151
|
+
tokenize: null,
|
|
152
|
+
context: new Context(0, 0, "top", false),
|
|
153
|
+
indented: 0,
|
|
154
|
+
startOfLine: true
|
|
155
|
+
};
|
|
156
|
+
},
|
|
157
|
+
token: function(stream, state) {
|
|
158
|
+
var ctx = state.context;
|
|
159
|
+
if (stream.sol()) {
|
|
160
|
+
if (ctx.align == null) ctx.align = false;
|
|
161
|
+
state.indented = stream.indentation();
|
|
162
|
+
state.startOfLine = true;
|
|
163
|
+
}
|
|
164
|
+
if (stream.eatSpace()) return null;
|
|
165
|
+
curPunc = null;
|
|
166
|
+
var style = (state.tokenize || tokenBase)(stream, state);
|
|
167
|
+
if (style == "comment") return style;
|
|
168
|
+
if (ctx.align == null) ctx.align = true;
|
|
169
|
+
if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") {
|
|
170
|
+
popContext(state);
|
|
171
|
+
} else if (curPunc == "{") pushContext(state, stream.column(), "}");
|
|
172
|
+
else if (curPunc == "[") pushContext(state, stream.column(), "]");
|
|
173
|
+
else if (curPunc == "(") pushContext(state, stream.column(), ")");
|
|
174
|
+
else if (curPunc == "}") {
|
|
175
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
176
|
+
if (ctx.type == "}") ctx = popContext(state);
|
|
177
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
178
|
+
} else if (curPunc == ctx.type) popContext(state);
|
|
179
|
+
else if (indentStatements && ((ctx.type == "}" || ctx.type == "top") && curPunc != ";" || ctx.type == "statement" && curPunc == "newstatement"))
|
|
180
|
+
pushContext(state, stream.column(), "statement");
|
|
181
|
+
state.startOfLine = false;
|
|
182
|
+
return style;
|
|
183
|
+
},
|
|
184
|
+
languageData: {
|
|
185
|
+
indentOnInput: /^\s*[{}]$/,
|
|
186
|
+
commentTokens: { line: "//", block: { open: "/*", close: "*/" } },
|
|
187
|
+
autocomplete: wordList
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
export {
|
|
191
|
+
ttcn
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=ttcn-tKd4HLu4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ttcn-tKd4HLu4.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/ttcn.js"],"sourcesContent":["function words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\n\nconst parserConfig = {\n name: \"ttcn\",\n keywords: words(\"activate address alive all alt altstep and and4b any\" +\n \" break case component const continue control deactivate\" +\n \" display do else encode enumerated except exception\" +\n \" execute extends extension external for from function\" +\n \" goto group if import in infinity inout interleave\" +\n \" label language length log match message mixed mod\" +\n \" modifies module modulepar mtc noblock not not4b nowait\" +\n \" of on optional or or4b out override param pattern port\" +\n \" procedure record recursive rem repeat return runs select\" +\n \" self sender set signature system template testcase to\" +\n \" type union value valueof var variant while with xor xor4b\"),\n builtin: words(\"bit2hex bit2int bit2oct bit2str char2int char2oct encvalue\" +\n \" decomp decvalue float2int float2str hex2bit hex2int\" +\n \" hex2oct hex2str int2bit int2char int2float int2hex\" +\n \" int2oct int2str int2unichar isbound ischosen ispresent\" +\n \" isvalue lengthof log2str oct2bit oct2char oct2hex oct2int\" +\n \" oct2str regexp replace rnd sizeof str2bit str2float\" +\n \" str2hex str2int str2oct substr unichar2int unichar2char\" +\n \" enum2int\"),\n types: words(\"anytype bitstring boolean char charstring default float\" +\n \" hexstring integer objid octetstring universal verdicttype timer\"),\n timerOps: words(\"read running start stop timeout\"),\n portOps: words(\"call catch check clear getcall getreply halt raise receive\" +\n \" reply send trigger\"),\n configOps: words(\"create connect disconnect done kill killed map unmap\"),\n verdictOps: words(\"getverdict setverdict\"),\n sutOps: words(\"action\"),\n functionOps: words(\"apply derefers refers\"),\n\n verdictConsts: words(\"error fail inconc none pass\"),\n booleanConsts: words(\"true false\"),\n otherConsts: words(\"null NULL omit\"),\n\n visibilityModifiers: words(\"private public friend\"),\n templateMatch: words(\"complement ifpresent subset superset permutation\"),\n multiLineStrings: true\n}\n\nvar wordList = []\nfunction add(obj) {\n if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n wordList.push(prop);\n}\nadd(parserConfig.keywords);\nadd(parserConfig.builtin);\nadd(parserConfig.timerOps);\nadd(parserConfig.portOps);\n\nvar keywords = parserConfig.keywords || {},\n builtin = parserConfig.builtin || {},\n timerOps = parserConfig.timerOps || {},\n portOps = parserConfig.portOps || {},\n configOps = parserConfig.configOps || {},\n verdictOps = parserConfig.verdictOps || {},\n sutOps = parserConfig.sutOps || {},\n functionOps = parserConfig.functionOps || {},\n\n verdictConsts = parserConfig.verdictConsts || {},\n booleanConsts = parserConfig.booleanConsts || {},\n otherConsts = parserConfig.otherConsts || {},\n\n types = parserConfig.types || {},\n visibilityModifiers = parserConfig.visibilityModifiers || {},\n templateMatch = parserConfig.templateMatch || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false;\nvar isOperatorChar = /[+\\-*&@=<>!\\/]/;\nvar curPunc;\n\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (/[\\[\\]{}\\(\\),;\\\\:\\?\\.]/.test(ch)) {\n curPunc = ch;\n return \"punctuation\";\n }\n if (ch == \"#\"){\n stream.skipToEnd();\n return \"atom\";\n }\n if (ch == \"%\"){\n stream.eatWhile(/\\b/);\n return \"atom\";\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/[\\w\\.]/);\n return \"number\";\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n if(ch == \"@\"){\n if(stream.match(\"try\") || stream.match(\"catch\")\n || stream.match(\"lazy\")){\n return \"keyword\";\n }\n }\n stream.eatWhile(isOperatorChar);\n return \"operator\";\n }\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n var cur = stream.current();\n\n if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n if (builtin.propertyIsEnumerable(cur)) return \"builtin\";\n\n if (timerOps.propertyIsEnumerable(cur)) return \"def\";\n if (configOps.propertyIsEnumerable(cur)) return \"def\";\n if (verdictOps.propertyIsEnumerable(cur)) return \"def\";\n if (portOps.propertyIsEnumerable(cur)) return \"def\";\n if (sutOps.propertyIsEnumerable(cur)) return \"def\";\n if (functionOps.propertyIsEnumerable(cur)) return \"def\";\n\n if (verdictConsts.propertyIsEnumerable(cur)) return \"string\";\n if (booleanConsts.propertyIsEnumerable(cur)) return \"string\";\n if (otherConsts.propertyIsEnumerable(cur)) return \"string\";\n\n if (types.propertyIsEnumerable(cur)) return \"typeName.standard\";\n if (visibilityModifiers.propertyIsEnumerable(cur))\n return \"modifier\";\n if (templateMatch.propertyIsEnumerable(cur)) return \"atom\";\n\n return \"variable\";\n}\n\nfunction tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped){\n var afterQuote = stream.peek();\n //look if the character after the quote is like the B in '10100010'B\n if (afterQuote){\n afterQuote = afterQuote.toLowerCase();\n if(afterQuote == \"b\" || afterQuote == \"h\" || afterQuote == \"o\")\n stream.next();\n }\n end = true; break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n}\n\nfunction Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n}\n\nfunction pushContext(state, col, type) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, null, state.context);\n}\n\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\n//Interface\nexport const ttcn = {\n name: \"ttcn\",\n startState: function() {\n return {\n tokenize: null,\n context: new Context(0, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\")\n && ctx.type == \"statement\"){\n popContext(state);\n }\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\")))\n pushContext(state, stream.column(), \"statement\");\n\n state.startOfLine = false;\n\n return style;\n },\n\n languageData: {\n indentOnInput: /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n autocomplete: wordList\n }\n};\n"],"names":["words"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
var curPunc;
|
|
2
|
+
function wordRegexp(words) {
|
|
3
|
+
return new RegExp("^(?:" + words.join("|") + ")$", "i");
|
|
4
|
+
}
|
|
5
|
+
wordRegexp([]);
|
|
6
|
+
var keywords = wordRegexp(["@prefix", "@base", "a"]);
|
|
7
|
+
var operatorChars = /[*+\-<>=&|]/;
|
|
8
|
+
function tokenBase(stream, state) {
|
|
9
|
+
var ch = stream.next();
|
|
10
|
+
curPunc = null;
|
|
11
|
+
if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
|
|
12
|
+
stream.match(/^[^\s\u00a0>]*>?/);
|
|
13
|
+
return "atom";
|
|
14
|
+
} else if (ch == '"' || ch == "'") {
|
|
15
|
+
state.tokenize = tokenLiteral(ch);
|
|
16
|
+
return state.tokenize(stream, state);
|
|
17
|
+
} else if (/[{}\(\),\.;\[\]]/.test(ch)) {
|
|
18
|
+
curPunc = ch;
|
|
19
|
+
return null;
|
|
20
|
+
} else if (ch == "#") {
|
|
21
|
+
stream.skipToEnd();
|
|
22
|
+
return "comment";
|
|
23
|
+
} else if (operatorChars.test(ch)) {
|
|
24
|
+
stream.eatWhile(operatorChars);
|
|
25
|
+
return null;
|
|
26
|
+
} else if (ch == ":") {
|
|
27
|
+
return "operator";
|
|
28
|
+
} else {
|
|
29
|
+
stream.eatWhile(/[_\w\d]/);
|
|
30
|
+
if (stream.peek() == ":") {
|
|
31
|
+
return "variableName.special";
|
|
32
|
+
} else {
|
|
33
|
+
var word = stream.current();
|
|
34
|
+
if (keywords.test(word)) {
|
|
35
|
+
return "meta";
|
|
36
|
+
}
|
|
37
|
+
if (ch >= "A" && ch <= "Z") {
|
|
38
|
+
return "comment";
|
|
39
|
+
} else {
|
|
40
|
+
return "keyword";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var word = stream.current();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function tokenLiteral(quote) {
|
|
47
|
+
return function(stream, state) {
|
|
48
|
+
var escaped = false, ch;
|
|
49
|
+
while ((ch = stream.next()) != null) {
|
|
50
|
+
if (ch == quote && !escaped) {
|
|
51
|
+
state.tokenize = tokenBase;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
escaped = !escaped && ch == "\\";
|
|
55
|
+
}
|
|
56
|
+
return "string";
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function pushContext(state, type, col) {
|
|
60
|
+
state.context = { prev: state.context, indent: state.indent, col, type };
|
|
61
|
+
}
|
|
62
|
+
function popContext(state) {
|
|
63
|
+
state.indent = state.context.indent;
|
|
64
|
+
state.context = state.context.prev;
|
|
65
|
+
}
|
|
66
|
+
const turtle = {
|
|
67
|
+
name: "turtle",
|
|
68
|
+
startState: function() {
|
|
69
|
+
return {
|
|
70
|
+
tokenize: tokenBase,
|
|
71
|
+
context: null,
|
|
72
|
+
indent: 0,
|
|
73
|
+
col: 0
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
token: function(stream, state) {
|
|
77
|
+
if (stream.sol()) {
|
|
78
|
+
if (state.context && state.context.align == null) state.context.align = false;
|
|
79
|
+
state.indent = stream.indentation();
|
|
80
|
+
}
|
|
81
|
+
if (stream.eatSpace()) return null;
|
|
82
|
+
var style = state.tokenize(stream, state);
|
|
83
|
+
if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") {
|
|
84
|
+
state.context.align = true;
|
|
85
|
+
}
|
|
86
|
+
if (curPunc == "(") pushContext(state, ")", stream.column());
|
|
87
|
+
else if (curPunc == "[") pushContext(state, "]", stream.column());
|
|
88
|
+
else if (curPunc == "{") pushContext(state, "}", stream.column());
|
|
89
|
+
else if (/[\]\}\)]/.test(curPunc)) {
|
|
90
|
+
while (state.context && state.context.type == "pattern") popContext(state);
|
|
91
|
+
if (state.context && curPunc == state.context.type) popContext(state);
|
|
92
|
+
} else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state);
|
|
93
|
+
else if (/atom|string|variable/.test(style) && state.context) {
|
|
94
|
+
if (/[\}\]]/.test(state.context.type))
|
|
95
|
+
pushContext(state, "pattern", stream.column());
|
|
96
|
+
else if (state.context.type == "pattern" && !state.context.align) {
|
|
97
|
+
state.context.align = true;
|
|
98
|
+
state.context.col = stream.column();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return style;
|
|
102
|
+
},
|
|
103
|
+
indent: function(state, textAfter, cx) {
|
|
104
|
+
var firstChar = textAfter && textAfter.charAt(0);
|
|
105
|
+
var context = state.context;
|
|
106
|
+
if (/[\]\}]/.test(firstChar))
|
|
107
|
+
while (context && context.type == "pattern") context = context.prev;
|
|
108
|
+
var closing = context && firstChar == context.type;
|
|
109
|
+
if (!context)
|
|
110
|
+
return 0;
|
|
111
|
+
else if (context.type == "pattern")
|
|
112
|
+
return context.col;
|
|
113
|
+
else if (context.align)
|
|
114
|
+
return context.col + (closing ? 0 : 1);
|
|
115
|
+
else
|
|
116
|
+
return context.indent + (closing ? 0 : cx.unit);
|
|
117
|
+
},
|
|
118
|
+
languageData: {
|
|
119
|
+
commentTokens: { line: "#" }
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
export {
|
|
123
|
+
turtle
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=turtle-Dq7-1WAf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turtle-Dq7-1WAf.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/turtle.js"],"sourcesContent":["var curPunc;\n\nfunction wordRegexp(words) {\n return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n}\nvar ops = wordRegexp([]);\nvar keywords = wordRegexp([\"@prefix\", \"@base\", \"a\"]);\nvar operatorChars = /[*+\\-<>=&|]/;\n\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n curPunc = null;\n if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n stream.match(/^[^\\s\\u00a0>]*>?/);\n return \"atom\";\n }\n else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenLiteral(ch);\n return state.tokenize(stream, state);\n }\n else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n curPunc = ch;\n return null;\n }\n else if (ch == \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n else if (operatorChars.test(ch)) {\n stream.eatWhile(operatorChars);\n return null;\n }\n else if (ch == \":\") {\n return \"operator\";\n } else {\n stream.eatWhile(/[_\\w\\d]/);\n if(stream.peek() == \":\") {\n return \"variableName.special\";\n } else {\n var word = stream.current();\n\n if(keywords.test(word)) {\n return \"meta\";\n }\n\n if(ch >= \"A\" && ch <= \"Z\") {\n return \"comment\";\n } else {\n return \"keyword\";\n }\n }\n var word = stream.current();\n if (ops.test(word))\n return null;\n else if (keywords.test(word))\n return \"meta\";\n else\n return \"variable\";\n }\n}\n\nfunction tokenLiteral(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n return \"string\";\n };\n}\n\nfunction pushContext(state, type, col) {\n state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n}\nfunction popContext(state) {\n state.indent = state.context.indent;\n state.context = state.context.prev;\n}\n\nexport const turtle = {\n name: \"turtle\",\n startState: function() {\n return {tokenize: tokenBase,\n context: null,\n indent: 0,\n col: 0};\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (state.context && state.context.align == null) state.context.align = false;\n state.indent = stream.indentation();\n }\n if (stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n\n if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n state.context.align = true;\n }\n\n if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n else if (/[\\]\\}\\)]/.test(curPunc)) {\n while (state.context && state.context.type == \"pattern\") popContext(state);\n if (state.context && curPunc == state.context.type) popContext(state);\n }\n else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n else if (/atom|string|variable/.test(style) && state.context) {\n if (/[\\}\\]]/.test(state.context.type))\n pushContext(state, \"pattern\", stream.column());\n else if (state.context.type == \"pattern\" && !state.context.align) {\n state.context.align = true;\n state.context.col = stream.column();\n }\n }\n\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n var firstChar = textAfter && textAfter.charAt(0);\n var context = state.context;\n if (/[\\]\\}]/.test(firstChar))\n while (context && context.type == \"pattern\") context = context.prev;\n\n var closing = context && firstChar == context.type;\n if (!context)\n return 0;\n else if (context.type == \"pattern\")\n return context.col;\n else if (context.align)\n return context.col + (closing ? 0 : 1);\n else\n return context.indent + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n commentTokens: {line: \"#\"}\n }\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
var ERRORCLASS = "error";
|
|
2
|
+
function wordRegexp(words) {
|
|
3
|
+
return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
|
|
4
|
+
}
|
|
5
|
+
var singleOperators = new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]");
|
|
6
|
+
var singleDelimiters = new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]");
|
|
7
|
+
var doubleOperators = new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");
|
|
8
|
+
var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");
|
|
9
|
+
var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");
|
|
10
|
+
var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*");
|
|
11
|
+
var openingKeywords = ["class", "module", "sub", "enum", "select", "while", "if", "function", "get", "set", "property", "try", "structure", "synclock", "using", "with"];
|
|
12
|
+
var middleKeywords = ["else", "elseif", "case", "catch", "finally"];
|
|
13
|
+
var endKeywords = ["next", "loop"];
|
|
14
|
+
var operatorKeywords = ["and", "andalso", "or", "orelse", "xor", "in", "not", "is", "isnot", "like"];
|
|
15
|
+
var wordOperators = wordRegexp(operatorKeywords);
|
|
16
|
+
var commonKeywords = ["#const", "#else", "#elseif", "#end", "#if", "#region", "addhandler", "addressof", "alias", "as", "byref", "byval", "cbool", "cbyte", "cchar", "cdate", "cdbl", "cdec", "cint", "clng", "cobj", "compare", "const", "continue", "csbyte", "cshort", "csng", "cstr", "cuint", "culng", "cushort", "declare", "default", "delegate", "dim", "directcast", "each", "erase", "error", "event", "exit", "explicit", "false", "for", "friend", "gettype", "goto", "handles", "implements", "imports", "infer", "inherits", "interface", "isfalse", "istrue", "lib", "me", "mod", "mustinherit", "mustoverride", "my", "mybase", "myclass", "namespace", "narrowing", "new", "nothing", "notinheritable", "notoverridable", "of", "off", "on", "operator", "option", "optional", "out", "overloads", "overridable", "overrides", "paramarray", "partial", "private", "protected", "public", "raiseevent", "readonly", "redim", "removehandler", "resume", "return", "shadows", "shared", "static", "step", "stop", "strict", "then", "throw", "to", "true", "trycast", "typeof", "until", "until", "when", "widening", "withevents", "writeonly"];
|
|
17
|
+
var commontypes = ["object", "boolean", "char", "string", "byte", "sbyte", "short", "ushort", "int16", "uint16", "integer", "uinteger", "int32", "uint32", "long", "ulong", "int64", "uint64", "decimal", "single", "double", "float", "date", "datetime", "intptr", "uintptr"];
|
|
18
|
+
var keywords = wordRegexp(commonKeywords);
|
|
19
|
+
var types = wordRegexp(commontypes);
|
|
20
|
+
var stringPrefixes = '"';
|
|
21
|
+
var opening = wordRegexp(openingKeywords);
|
|
22
|
+
var middle = wordRegexp(middleKeywords);
|
|
23
|
+
var closing = wordRegexp(endKeywords);
|
|
24
|
+
var doubleClosing = wordRegexp(["end"]);
|
|
25
|
+
var doOpening = wordRegexp(["do"]);
|
|
26
|
+
function indent(_stream, state) {
|
|
27
|
+
state.currentIndent++;
|
|
28
|
+
}
|
|
29
|
+
function dedent(_stream, state) {
|
|
30
|
+
state.currentIndent--;
|
|
31
|
+
}
|
|
32
|
+
function tokenBase(stream, state) {
|
|
33
|
+
if (stream.eatSpace()) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
var ch = stream.peek();
|
|
37
|
+
if (ch === "'") {
|
|
38
|
+
stream.skipToEnd();
|
|
39
|
+
return "comment";
|
|
40
|
+
}
|
|
41
|
+
if (stream.match(/^((&H)|(&O))?[0-9\.a-f]/i, false)) {
|
|
42
|
+
var floatLiteral = false;
|
|
43
|
+
if (stream.match(/^\d*\.\d+F?/i)) {
|
|
44
|
+
floatLiteral = true;
|
|
45
|
+
} else if (stream.match(/^\d+\.\d*F?/)) {
|
|
46
|
+
floatLiteral = true;
|
|
47
|
+
} else if (stream.match(/^\.\d+F?/)) {
|
|
48
|
+
floatLiteral = true;
|
|
49
|
+
}
|
|
50
|
+
if (floatLiteral) {
|
|
51
|
+
stream.eat(/J/i);
|
|
52
|
+
return "number";
|
|
53
|
+
}
|
|
54
|
+
var intLiteral = false;
|
|
55
|
+
if (stream.match(/^&H[0-9a-f]+/i)) {
|
|
56
|
+
intLiteral = true;
|
|
57
|
+
} else if (stream.match(/^&O[0-7]+/i)) {
|
|
58
|
+
intLiteral = true;
|
|
59
|
+
} else if (stream.match(/^[1-9]\d*F?/)) {
|
|
60
|
+
stream.eat(/J/i);
|
|
61
|
+
intLiteral = true;
|
|
62
|
+
} else if (stream.match(/^0(?![\dx])/i)) {
|
|
63
|
+
intLiteral = true;
|
|
64
|
+
}
|
|
65
|
+
if (intLiteral) {
|
|
66
|
+
stream.eat(/L/i);
|
|
67
|
+
return "number";
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (stream.match(stringPrefixes)) {
|
|
71
|
+
state.tokenize = tokenStringFactory(stream.current());
|
|
72
|
+
return state.tokenize(stream, state);
|
|
73
|
+
}
|
|
74
|
+
if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
if (stream.match(doubleOperators) || stream.match(singleOperators) || stream.match(wordOperators)) {
|
|
78
|
+
return "operator";
|
|
79
|
+
}
|
|
80
|
+
if (stream.match(singleDelimiters)) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
if (stream.match(doOpening)) {
|
|
84
|
+
indent(stream, state);
|
|
85
|
+
state.doInCurrentLine = true;
|
|
86
|
+
return "keyword";
|
|
87
|
+
}
|
|
88
|
+
if (stream.match(opening)) {
|
|
89
|
+
if (!state.doInCurrentLine)
|
|
90
|
+
indent(stream, state);
|
|
91
|
+
else
|
|
92
|
+
state.doInCurrentLine = false;
|
|
93
|
+
return "keyword";
|
|
94
|
+
}
|
|
95
|
+
if (stream.match(middle)) {
|
|
96
|
+
return "keyword";
|
|
97
|
+
}
|
|
98
|
+
if (stream.match(doubleClosing)) {
|
|
99
|
+
dedent(stream, state);
|
|
100
|
+
dedent(stream, state);
|
|
101
|
+
return "keyword";
|
|
102
|
+
}
|
|
103
|
+
if (stream.match(closing)) {
|
|
104
|
+
dedent(stream, state);
|
|
105
|
+
return "keyword";
|
|
106
|
+
}
|
|
107
|
+
if (stream.match(types)) {
|
|
108
|
+
return "keyword";
|
|
109
|
+
}
|
|
110
|
+
if (stream.match(keywords)) {
|
|
111
|
+
return "keyword";
|
|
112
|
+
}
|
|
113
|
+
if (stream.match(identifiers)) {
|
|
114
|
+
return "variable";
|
|
115
|
+
}
|
|
116
|
+
stream.next();
|
|
117
|
+
return ERRORCLASS;
|
|
118
|
+
}
|
|
119
|
+
function tokenStringFactory(delimiter) {
|
|
120
|
+
var singleline = delimiter.length == 1;
|
|
121
|
+
var OUTCLASS = "string";
|
|
122
|
+
return function(stream, state) {
|
|
123
|
+
while (!stream.eol()) {
|
|
124
|
+
stream.eatWhile(/[^'"]/);
|
|
125
|
+
if (stream.match(delimiter)) {
|
|
126
|
+
state.tokenize = tokenBase;
|
|
127
|
+
return OUTCLASS;
|
|
128
|
+
} else {
|
|
129
|
+
stream.eat(/['"]/);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (singleline) {
|
|
133
|
+
state.tokenize = tokenBase;
|
|
134
|
+
}
|
|
135
|
+
return OUTCLASS;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function tokenLexer(stream, state) {
|
|
139
|
+
var style = state.tokenize(stream, state);
|
|
140
|
+
var current = stream.current();
|
|
141
|
+
if (current === ".") {
|
|
142
|
+
style = state.tokenize(stream, state);
|
|
143
|
+
if (style === "variable") {
|
|
144
|
+
return "variable";
|
|
145
|
+
} else {
|
|
146
|
+
return ERRORCLASS;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
var delimiter_index = "[({".indexOf(current);
|
|
150
|
+
if (delimiter_index !== -1) {
|
|
151
|
+
indent(stream, state);
|
|
152
|
+
}
|
|
153
|
+
delimiter_index = "])}".indexOf(current);
|
|
154
|
+
if (delimiter_index !== -1) {
|
|
155
|
+
if (dedent(stream, state)) {
|
|
156
|
+
return ERRORCLASS;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return style;
|
|
160
|
+
}
|
|
161
|
+
const vb = {
|
|
162
|
+
name: "vb",
|
|
163
|
+
startState: function() {
|
|
164
|
+
return {
|
|
165
|
+
tokenize: tokenBase,
|
|
166
|
+
lastToken: null,
|
|
167
|
+
currentIndent: 0,
|
|
168
|
+
nextLineIndent: 0,
|
|
169
|
+
doInCurrentLine: false
|
|
170
|
+
};
|
|
171
|
+
},
|
|
172
|
+
token: function(stream, state) {
|
|
173
|
+
if (stream.sol()) {
|
|
174
|
+
state.currentIndent += state.nextLineIndent;
|
|
175
|
+
state.nextLineIndent = 0;
|
|
176
|
+
state.doInCurrentLine = 0;
|
|
177
|
+
}
|
|
178
|
+
var style = tokenLexer(stream, state);
|
|
179
|
+
state.lastToken = { style, content: stream.current() };
|
|
180
|
+
return style;
|
|
181
|
+
},
|
|
182
|
+
indent: function(state, textAfter, cx) {
|
|
183
|
+
var trueText = textAfter.replace(/^\s+|\s+$/g, "");
|
|
184
|
+
if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return cx.unit * (state.currentIndent - 1);
|
|
185
|
+
if (state.currentIndent < 0) return 0;
|
|
186
|
+
return state.currentIndent * cx.unit;
|
|
187
|
+
},
|
|
188
|
+
languageData: {
|
|
189
|
+
closeBrackets: { brackets: ["(", "[", "{", '"'] },
|
|
190
|
+
commentTokens: { line: "'" },
|
|
191
|
+
autocomplete: openingKeywords.concat(middleKeywords).concat(endKeywords).concat(operatorKeywords).concat(commonKeywords).concat(commontypes)
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
export {
|
|
195
|
+
vb
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=vb-Dp90gtsv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vb-Dp90gtsv.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/vb.js"],"sourcesContent":["var ERRORCLASS = 'error';\n\nfunction wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n}\n\nvar singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/%&\\\\\\\\|\\\\^~<>!]\");\nvar singleDelimiters = new RegExp('^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]');\nvar doubleOperators = new RegExp(\"^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\nvar doubleDelimiters = new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\nvar tripleDelimiters = new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\nvar identifiers = new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n\nvar openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try', 'structure', 'synclock', 'using', 'with'];\nvar middleKeywords = ['else','elseif','case', 'catch', 'finally'];\nvar endKeywords = ['next','loop'];\n\nvar operatorKeywords = ['and', \"andalso\", 'or', 'orelse', 'xor', 'in', 'not', 'is', 'isnot', 'like'];\nvar wordOperators = wordRegexp(operatorKeywords);\n\nvar commonKeywords = [\"#const\", \"#else\", \"#elseif\", \"#end\", \"#if\", \"#region\", \"addhandler\", \"addressof\", \"alias\", \"as\", \"byref\", \"byval\", \"cbool\", \"cbyte\", \"cchar\", \"cdate\", \"cdbl\", \"cdec\", \"cint\", \"clng\", \"cobj\", \"compare\", \"const\", \"continue\", \"csbyte\", \"cshort\", \"csng\", \"cstr\", \"cuint\", \"culng\", \"cushort\", \"declare\", \"default\", \"delegate\", \"dim\", \"directcast\", \"each\", \"erase\", \"error\", \"event\", \"exit\", \"explicit\", \"false\", \"for\", \"friend\", \"gettype\", \"goto\", \"handles\", \"implements\", \"imports\", \"infer\", \"inherits\", \"interface\", \"isfalse\", \"istrue\", \"lib\", \"me\", \"mod\", \"mustinherit\", \"mustoverride\", \"my\", \"mybase\", \"myclass\", \"namespace\", \"narrowing\", \"new\", \"nothing\", \"notinheritable\", \"notoverridable\", \"of\", \"off\", \"on\", \"operator\", \"option\", \"optional\", \"out\", \"overloads\", \"overridable\", \"overrides\", \"paramarray\", \"partial\", \"private\", \"protected\", \"public\", \"raiseevent\", \"readonly\", \"redim\", \"removehandler\", \"resume\", \"return\", \"shadows\", \"shared\", \"static\", \"step\", \"stop\", \"strict\", \"then\", \"throw\", \"to\", \"true\", \"trycast\", \"typeof\", \"until\", \"until\", \"when\", \"widening\", \"withevents\", \"writeonly\"];\n\nvar commontypes = ['object', 'boolean', 'char', 'string', 'byte', 'sbyte', 'short', 'ushort', 'int16', 'uint16', 'integer', 'uinteger', 'int32', 'uint32', 'long', 'ulong', 'int64', 'uint64', 'decimal', 'single', 'double', 'float', 'date', 'datetime', 'intptr', 'uintptr'];\n\nvar keywords = wordRegexp(commonKeywords);\nvar types = wordRegexp(commontypes);\nvar stringPrefixes = '\"';\n\nvar opening = wordRegexp(openingKeywords);\nvar middle = wordRegexp(middleKeywords);\nvar closing = wordRegexp(endKeywords);\nvar doubleClosing = wordRegexp(['end']);\nvar doOpening = wordRegexp(['do']);\n\nvar indentInfo = null;\n\nfunction indent(_stream, state) {\n state.currentIndent++;\n}\n\nfunction dedent(_stream, state) {\n state.currentIndent--;\n}\n// tokenizers\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle Comments\n if (ch === \"'\") {\n stream.skipToEnd();\n return 'comment';\n }\n\n\n // Handle Number Literals\n if (stream.match(/^((&H)|(&O))?[0-9\\.a-f]/i, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^\\d*\\.\\d+F?/i)) { floatLiteral = true; }\n else if (stream.match(/^\\d+\\.\\d*F?/)) { floatLiteral = true; }\n else if (stream.match(/^\\.\\d+F?/)) { floatLiteral = true; }\n\n if (floatLiteral) {\n // Float literals may be \"imaginary\"\n stream.eat(/J/i);\n return 'number';\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n // Octal\n else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n // Decimal\n else if (stream.match(/^[1-9]\\d*F?/)) {\n // Decimal literals may be \"imaginary\"\n stream.eat(/J/i);\n // TODO - Can you have imaginary longs?\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n if (intLiteral) {\n // Integer literals may be \"long\"\n stream.eat(/L/i);\n return 'number';\n }\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 // Handle operators and Delimiters\n if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {\n return null;\n }\n if (stream.match(doubleOperators)\n || stream.match(singleOperators)\n || stream.match(wordOperators)) {\n return 'operator';\n }\n if (stream.match(singleDelimiters)) {\n return null;\n }\n if (stream.match(doOpening)) {\n indent(stream,state);\n state.doInCurrentLine = true;\n return 'keyword';\n }\n if (stream.match(opening)) {\n if (! state.doInCurrentLine)\n indent(stream,state);\n else\n state.doInCurrentLine = false;\n return 'keyword';\n }\n if (stream.match(middle)) {\n return 'keyword';\n }\n\n if (stream.match(doubleClosing)) {\n dedent(stream,state);\n dedent(stream,state);\n return 'keyword';\n }\n if (stream.match(closing)) {\n dedent(stream,state);\n return 'keyword';\n }\n\n if (stream.match(types)) {\n return 'keyword';\n }\n\n if (stream.match(keywords)) {\n return 'keyword';\n }\n\n if (stream.match(identifiers)) {\n return 'variable';\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n}\n\nfunction tokenStringFactory(delimiter) {\n var singleline = delimiter.length == 1;\n var OUTCLASS = 'string';\n\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"]/);\n if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return OUTCLASS;\n } else {\n stream.eat(/['\"]/);\n }\n }\n if (singleline) {\n state.tokenize = tokenBase;\n }\n return OUTCLASS;\n };\n}\n\n\nfunction tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle '.' connected identifiers\n if (current === '.') {\n style = state.tokenize(stream, state);\n if (style === 'variable') {\n return 'variable';\n } else {\n return ERRORCLASS;\n }\n }\n\n\n var delimiter_index = '[({'.indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state );\n }\n if (indentInfo === 'dedent') {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = '])}'.indexOf(current);\n if (delimiter_index !== -1) {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n\n return style;\n}\n\nexport const vb = {\n name: \"vb\",\n\n startState: function() {\n return {\n tokenize: tokenBase,\n lastToken: null,\n currentIndent: 0,\n nextLineIndent: 0,\n doInCurrentLine: false\n\n\n };\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n state.currentIndent += state.nextLineIndent;\n state.nextLineIndent = 0;\n state.doInCurrentLine = 0;\n }\n var style = tokenLexer(stream, state);\n\n state.lastToken = {style:style, content: stream.current()};\n\n\n\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return cx.unit*(state.currentIndent-1);\n if(state.currentIndent < 0) return 0;\n return state.currentIndent * cx.unit;\n },\n\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n commentTokens: {line: \"'\"},\n autocomplete: openingKeywords.concat(middleKeywords).concat(endKeywords)\n .concat(operatorKeywords).concat(commonKeywords).concat(commontypes)\n }\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|