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,479 @@
|
|
|
1
|
+
function mkVBScript(parserConf) {
|
|
2
|
+
var ERRORCLASS = "error";
|
|
3
|
+
function wordRegexp(words) {
|
|
4
|
+
return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
|
|
5
|
+
}
|
|
6
|
+
var singleOperators = new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]");
|
|
7
|
+
var doubleOperators = new RegExp("^((<>)|(<=)|(>=))");
|
|
8
|
+
var singleDelimiters = new RegExp("^[\\.,]");
|
|
9
|
+
var brackets = new RegExp("^[\\(\\)]");
|
|
10
|
+
var identifiers = new RegExp("^[A-Za-z][_A-Za-z0-9]*");
|
|
11
|
+
var openingKeywords = ["class", "sub", "select", "while", "if", "function", "property", "with", "for"];
|
|
12
|
+
var middleKeywords = ["else", "elseif", "case"];
|
|
13
|
+
var endKeywords = ["next", "loop", "wend"];
|
|
14
|
+
var wordOperators = wordRegexp(["and", "or", "not", "xor", "is", "mod", "eqv", "imp"]);
|
|
15
|
+
var commonkeywords = [
|
|
16
|
+
"dim",
|
|
17
|
+
"redim",
|
|
18
|
+
"then",
|
|
19
|
+
"until",
|
|
20
|
+
"randomize",
|
|
21
|
+
"byval",
|
|
22
|
+
"byref",
|
|
23
|
+
"new",
|
|
24
|
+
"property",
|
|
25
|
+
"exit",
|
|
26
|
+
"in",
|
|
27
|
+
"const",
|
|
28
|
+
"private",
|
|
29
|
+
"public",
|
|
30
|
+
"get",
|
|
31
|
+
"set",
|
|
32
|
+
"let",
|
|
33
|
+
"stop",
|
|
34
|
+
"on error resume next",
|
|
35
|
+
"on error goto 0",
|
|
36
|
+
"option explicit",
|
|
37
|
+
"call",
|
|
38
|
+
"me"
|
|
39
|
+
];
|
|
40
|
+
var atomWords = ["true", "false", "nothing", "empty", "null"];
|
|
41
|
+
var builtinFuncsWords = [
|
|
42
|
+
"abs",
|
|
43
|
+
"array",
|
|
44
|
+
"asc",
|
|
45
|
+
"atn",
|
|
46
|
+
"cbool",
|
|
47
|
+
"cbyte",
|
|
48
|
+
"ccur",
|
|
49
|
+
"cdate",
|
|
50
|
+
"cdbl",
|
|
51
|
+
"chr",
|
|
52
|
+
"cint",
|
|
53
|
+
"clng",
|
|
54
|
+
"cos",
|
|
55
|
+
"csng",
|
|
56
|
+
"cstr",
|
|
57
|
+
"date",
|
|
58
|
+
"dateadd",
|
|
59
|
+
"datediff",
|
|
60
|
+
"datepart",
|
|
61
|
+
"dateserial",
|
|
62
|
+
"datevalue",
|
|
63
|
+
"day",
|
|
64
|
+
"escape",
|
|
65
|
+
"eval",
|
|
66
|
+
"execute",
|
|
67
|
+
"exp",
|
|
68
|
+
"filter",
|
|
69
|
+
"formatcurrency",
|
|
70
|
+
"formatdatetime",
|
|
71
|
+
"formatnumber",
|
|
72
|
+
"formatpercent",
|
|
73
|
+
"getlocale",
|
|
74
|
+
"getobject",
|
|
75
|
+
"getref",
|
|
76
|
+
"hex",
|
|
77
|
+
"hour",
|
|
78
|
+
"inputbox",
|
|
79
|
+
"instr",
|
|
80
|
+
"instrrev",
|
|
81
|
+
"int",
|
|
82
|
+
"fix",
|
|
83
|
+
"isarray",
|
|
84
|
+
"isdate",
|
|
85
|
+
"isempty",
|
|
86
|
+
"isnull",
|
|
87
|
+
"isnumeric",
|
|
88
|
+
"isobject",
|
|
89
|
+
"join",
|
|
90
|
+
"lbound",
|
|
91
|
+
"lcase",
|
|
92
|
+
"left",
|
|
93
|
+
"len",
|
|
94
|
+
"loadpicture",
|
|
95
|
+
"log",
|
|
96
|
+
"ltrim",
|
|
97
|
+
"rtrim",
|
|
98
|
+
"trim",
|
|
99
|
+
"maths",
|
|
100
|
+
"mid",
|
|
101
|
+
"minute",
|
|
102
|
+
"month",
|
|
103
|
+
"monthname",
|
|
104
|
+
"msgbox",
|
|
105
|
+
"now",
|
|
106
|
+
"oct",
|
|
107
|
+
"replace",
|
|
108
|
+
"rgb",
|
|
109
|
+
"right",
|
|
110
|
+
"rnd",
|
|
111
|
+
"round",
|
|
112
|
+
"scriptengine",
|
|
113
|
+
"scriptenginebuildversion",
|
|
114
|
+
"scriptenginemajorversion",
|
|
115
|
+
"scriptengineminorversion",
|
|
116
|
+
"second",
|
|
117
|
+
"setlocale",
|
|
118
|
+
"sgn",
|
|
119
|
+
"sin",
|
|
120
|
+
"space",
|
|
121
|
+
"split",
|
|
122
|
+
"sqr",
|
|
123
|
+
"strcomp",
|
|
124
|
+
"string",
|
|
125
|
+
"strreverse",
|
|
126
|
+
"tan",
|
|
127
|
+
"time",
|
|
128
|
+
"timer",
|
|
129
|
+
"timeserial",
|
|
130
|
+
"timevalue",
|
|
131
|
+
"typename",
|
|
132
|
+
"ubound",
|
|
133
|
+
"ucase",
|
|
134
|
+
"unescape",
|
|
135
|
+
"vartype",
|
|
136
|
+
"weekday",
|
|
137
|
+
"weekdayname",
|
|
138
|
+
"year"
|
|
139
|
+
];
|
|
140
|
+
var builtinConsts = [
|
|
141
|
+
"vbBlack",
|
|
142
|
+
"vbRed",
|
|
143
|
+
"vbGreen",
|
|
144
|
+
"vbYellow",
|
|
145
|
+
"vbBlue",
|
|
146
|
+
"vbMagenta",
|
|
147
|
+
"vbCyan",
|
|
148
|
+
"vbWhite",
|
|
149
|
+
"vbBinaryCompare",
|
|
150
|
+
"vbTextCompare",
|
|
151
|
+
"vbSunday",
|
|
152
|
+
"vbMonday",
|
|
153
|
+
"vbTuesday",
|
|
154
|
+
"vbWednesday",
|
|
155
|
+
"vbThursday",
|
|
156
|
+
"vbFriday",
|
|
157
|
+
"vbSaturday",
|
|
158
|
+
"vbUseSystemDayOfWeek",
|
|
159
|
+
"vbFirstJan1",
|
|
160
|
+
"vbFirstFourDays",
|
|
161
|
+
"vbFirstFullWeek",
|
|
162
|
+
"vbGeneralDate",
|
|
163
|
+
"vbLongDate",
|
|
164
|
+
"vbShortDate",
|
|
165
|
+
"vbLongTime",
|
|
166
|
+
"vbShortTime",
|
|
167
|
+
"vbObjectError",
|
|
168
|
+
"vbOKOnly",
|
|
169
|
+
"vbOKCancel",
|
|
170
|
+
"vbAbortRetryIgnore",
|
|
171
|
+
"vbYesNoCancel",
|
|
172
|
+
"vbYesNo",
|
|
173
|
+
"vbRetryCancel",
|
|
174
|
+
"vbCritical",
|
|
175
|
+
"vbQuestion",
|
|
176
|
+
"vbExclamation",
|
|
177
|
+
"vbInformation",
|
|
178
|
+
"vbDefaultButton1",
|
|
179
|
+
"vbDefaultButton2",
|
|
180
|
+
"vbDefaultButton3",
|
|
181
|
+
"vbDefaultButton4",
|
|
182
|
+
"vbApplicationModal",
|
|
183
|
+
"vbSystemModal",
|
|
184
|
+
"vbOK",
|
|
185
|
+
"vbCancel",
|
|
186
|
+
"vbAbort",
|
|
187
|
+
"vbRetry",
|
|
188
|
+
"vbIgnore",
|
|
189
|
+
"vbYes",
|
|
190
|
+
"vbNo",
|
|
191
|
+
"vbCr",
|
|
192
|
+
"VbCrLf",
|
|
193
|
+
"vbFormFeed",
|
|
194
|
+
"vbLf",
|
|
195
|
+
"vbNewLine",
|
|
196
|
+
"vbNullChar",
|
|
197
|
+
"vbNullString",
|
|
198
|
+
"vbTab",
|
|
199
|
+
"vbVerticalTab",
|
|
200
|
+
"vbUseDefault",
|
|
201
|
+
"vbTrue",
|
|
202
|
+
"vbFalse",
|
|
203
|
+
"vbEmpty",
|
|
204
|
+
"vbNull",
|
|
205
|
+
"vbInteger",
|
|
206
|
+
"vbLong",
|
|
207
|
+
"vbSingle",
|
|
208
|
+
"vbDouble",
|
|
209
|
+
"vbCurrency",
|
|
210
|
+
"vbDate",
|
|
211
|
+
"vbString",
|
|
212
|
+
"vbObject",
|
|
213
|
+
"vbError",
|
|
214
|
+
"vbBoolean",
|
|
215
|
+
"vbVariant",
|
|
216
|
+
"vbDataObject",
|
|
217
|
+
"vbDecimal",
|
|
218
|
+
"vbByte",
|
|
219
|
+
"vbArray"
|
|
220
|
+
];
|
|
221
|
+
var builtinObjsWords = ["WScript", "err", "debug", "RegExp"];
|
|
222
|
+
var knownProperties = ["description", "firstindex", "global", "helpcontext", "helpfile", "ignorecase", "length", "number", "pattern", "source", "value", "count"];
|
|
223
|
+
var knownMethods = ["clear", "execute", "raise", "replace", "test", "write", "writeline", "close", "open", "state", "eof", "update", "addnew", "end", "createobject", "quit"];
|
|
224
|
+
var aspBuiltinObjsWords = ["server", "response", "request", "session", "application"];
|
|
225
|
+
var aspKnownProperties = [
|
|
226
|
+
"buffer",
|
|
227
|
+
"cachecontrol",
|
|
228
|
+
"charset",
|
|
229
|
+
"contenttype",
|
|
230
|
+
"expires",
|
|
231
|
+
"expiresabsolute",
|
|
232
|
+
"isclientconnected",
|
|
233
|
+
"pics",
|
|
234
|
+
"status",
|
|
235
|
+
//response
|
|
236
|
+
"clientcertificate",
|
|
237
|
+
"cookies",
|
|
238
|
+
"form",
|
|
239
|
+
"querystring",
|
|
240
|
+
"servervariables",
|
|
241
|
+
"totalbytes",
|
|
242
|
+
//request
|
|
243
|
+
"contents",
|
|
244
|
+
"staticobjects",
|
|
245
|
+
//application
|
|
246
|
+
"codepage",
|
|
247
|
+
"lcid",
|
|
248
|
+
"sessionid",
|
|
249
|
+
"timeout",
|
|
250
|
+
//session
|
|
251
|
+
"scripttimeout"
|
|
252
|
+
];
|
|
253
|
+
var aspKnownMethods = [
|
|
254
|
+
"addheader",
|
|
255
|
+
"appendtolog",
|
|
256
|
+
"binarywrite",
|
|
257
|
+
"end",
|
|
258
|
+
"flush",
|
|
259
|
+
"redirect",
|
|
260
|
+
//response
|
|
261
|
+
"binaryread",
|
|
262
|
+
//request
|
|
263
|
+
"remove",
|
|
264
|
+
"removeall",
|
|
265
|
+
"lock",
|
|
266
|
+
"unlock",
|
|
267
|
+
//application
|
|
268
|
+
"abandon",
|
|
269
|
+
//session
|
|
270
|
+
"getlasterror",
|
|
271
|
+
"htmlencode",
|
|
272
|
+
"mappath",
|
|
273
|
+
"transfer",
|
|
274
|
+
"urlencode"
|
|
275
|
+
];
|
|
276
|
+
var knownWords = knownMethods.concat(knownProperties);
|
|
277
|
+
builtinObjsWords = builtinObjsWords.concat(builtinConsts);
|
|
278
|
+
if (parserConf.isASP) {
|
|
279
|
+
builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);
|
|
280
|
+
knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);
|
|
281
|
+
}
|
|
282
|
+
var keywords = wordRegexp(commonkeywords);
|
|
283
|
+
var atoms = wordRegexp(atomWords);
|
|
284
|
+
var builtinFuncs = wordRegexp(builtinFuncsWords);
|
|
285
|
+
var builtinObjs = wordRegexp(builtinObjsWords);
|
|
286
|
+
var known = wordRegexp(knownWords);
|
|
287
|
+
var stringPrefixes = '"';
|
|
288
|
+
var opening = wordRegexp(openingKeywords);
|
|
289
|
+
var middle = wordRegexp(middleKeywords);
|
|
290
|
+
var closing = wordRegexp(endKeywords);
|
|
291
|
+
var doubleClosing = wordRegexp(["end"]);
|
|
292
|
+
var doOpening = wordRegexp(["do"]);
|
|
293
|
+
var noIndentWords = wordRegexp(["on error resume next", "exit"]);
|
|
294
|
+
var comment = wordRegexp(["rem"]);
|
|
295
|
+
function indent(_stream, state) {
|
|
296
|
+
state.currentIndent++;
|
|
297
|
+
}
|
|
298
|
+
function dedent(_stream, state) {
|
|
299
|
+
state.currentIndent--;
|
|
300
|
+
}
|
|
301
|
+
function tokenBase(stream, state) {
|
|
302
|
+
if (stream.eatSpace()) {
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
var ch = stream.peek();
|
|
306
|
+
if (ch === "'") {
|
|
307
|
+
stream.skipToEnd();
|
|
308
|
+
return "comment";
|
|
309
|
+
}
|
|
310
|
+
if (stream.match(comment)) {
|
|
311
|
+
stream.skipToEnd();
|
|
312
|
+
return "comment";
|
|
313
|
+
}
|
|
314
|
+
if (stream.match(/^((&H)|(&O))?[0-9\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i, false)) {
|
|
315
|
+
var floatLiteral = false;
|
|
316
|
+
if (stream.match(/^\d*\.\d+/i)) {
|
|
317
|
+
floatLiteral = true;
|
|
318
|
+
} else if (stream.match(/^\d+\.\d*/)) {
|
|
319
|
+
floatLiteral = true;
|
|
320
|
+
} else if (stream.match(/^\.\d+/)) {
|
|
321
|
+
floatLiteral = true;
|
|
322
|
+
}
|
|
323
|
+
if (floatLiteral) {
|
|
324
|
+
stream.eat(/J/i);
|
|
325
|
+
return "number";
|
|
326
|
+
}
|
|
327
|
+
var intLiteral = false;
|
|
328
|
+
if (stream.match(/^&H[0-9a-f]+/i)) {
|
|
329
|
+
intLiteral = true;
|
|
330
|
+
} else if (stream.match(/^&O[0-7]+/i)) {
|
|
331
|
+
intLiteral = true;
|
|
332
|
+
} else if (stream.match(/^[1-9]\d*F?/)) {
|
|
333
|
+
stream.eat(/J/i);
|
|
334
|
+
intLiteral = true;
|
|
335
|
+
} else if (stream.match(/^0(?![\dx])/i)) {
|
|
336
|
+
intLiteral = true;
|
|
337
|
+
}
|
|
338
|
+
if (intLiteral) {
|
|
339
|
+
stream.eat(/L/i);
|
|
340
|
+
return "number";
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
if (stream.match(stringPrefixes)) {
|
|
344
|
+
state.tokenize = tokenStringFactory(stream.current());
|
|
345
|
+
return state.tokenize(stream, state);
|
|
346
|
+
}
|
|
347
|
+
if (stream.match(doubleOperators) || stream.match(singleOperators) || stream.match(wordOperators)) {
|
|
348
|
+
return "operator";
|
|
349
|
+
}
|
|
350
|
+
if (stream.match(singleDelimiters)) {
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
if (stream.match(brackets)) {
|
|
354
|
+
return "bracket";
|
|
355
|
+
}
|
|
356
|
+
if (stream.match(noIndentWords)) {
|
|
357
|
+
state.doInCurrentLine = true;
|
|
358
|
+
return "keyword";
|
|
359
|
+
}
|
|
360
|
+
if (stream.match(doOpening)) {
|
|
361
|
+
indent(stream, state);
|
|
362
|
+
state.doInCurrentLine = true;
|
|
363
|
+
return "keyword";
|
|
364
|
+
}
|
|
365
|
+
if (stream.match(opening)) {
|
|
366
|
+
if (!state.doInCurrentLine)
|
|
367
|
+
indent(stream, state);
|
|
368
|
+
else
|
|
369
|
+
state.doInCurrentLine = false;
|
|
370
|
+
return "keyword";
|
|
371
|
+
}
|
|
372
|
+
if (stream.match(middle)) {
|
|
373
|
+
return "keyword";
|
|
374
|
+
}
|
|
375
|
+
if (stream.match(doubleClosing)) {
|
|
376
|
+
dedent(stream, state);
|
|
377
|
+
dedent(stream, state);
|
|
378
|
+
return "keyword";
|
|
379
|
+
}
|
|
380
|
+
if (stream.match(closing)) {
|
|
381
|
+
if (!state.doInCurrentLine)
|
|
382
|
+
dedent(stream, state);
|
|
383
|
+
else
|
|
384
|
+
state.doInCurrentLine = false;
|
|
385
|
+
return "keyword";
|
|
386
|
+
}
|
|
387
|
+
if (stream.match(keywords)) {
|
|
388
|
+
return "keyword";
|
|
389
|
+
}
|
|
390
|
+
if (stream.match(atoms)) {
|
|
391
|
+
return "atom";
|
|
392
|
+
}
|
|
393
|
+
if (stream.match(known)) {
|
|
394
|
+
return "variableName.special";
|
|
395
|
+
}
|
|
396
|
+
if (stream.match(builtinFuncs)) {
|
|
397
|
+
return "builtin";
|
|
398
|
+
}
|
|
399
|
+
if (stream.match(builtinObjs)) {
|
|
400
|
+
return "builtin";
|
|
401
|
+
}
|
|
402
|
+
if (stream.match(identifiers)) {
|
|
403
|
+
return "variable";
|
|
404
|
+
}
|
|
405
|
+
stream.next();
|
|
406
|
+
return ERRORCLASS;
|
|
407
|
+
}
|
|
408
|
+
function tokenStringFactory(delimiter) {
|
|
409
|
+
var singleline = delimiter.length == 1;
|
|
410
|
+
var OUTCLASS = "string";
|
|
411
|
+
return function(stream, state) {
|
|
412
|
+
while (!stream.eol()) {
|
|
413
|
+
stream.eatWhile(/[^'"]/);
|
|
414
|
+
if (stream.match(delimiter)) {
|
|
415
|
+
state.tokenize = tokenBase;
|
|
416
|
+
return OUTCLASS;
|
|
417
|
+
} else {
|
|
418
|
+
stream.eat(/['"]/);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
if (singleline) {
|
|
422
|
+
state.tokenize = tokenBase;
|
|
423
|
+
}
|
|
424
|
+
return OUTCLASS;
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
function tokenLexer(stream, state) {
|
|
428
|
+
var style = state.tokenize(stream, state);
|
|
429
|
+
var current = stream.current();
|
|
430
|
+
if (current === ".") {
|
|
431
|
+
style = state.tokenize(stream, state);
|
|
432
|
+
current = stream.current();
|
|
433
|
+
if (style && (style.substr(0, 8) === "variable" || style === "builtin" || style === "keyword")) {
|
|
434
|
+
if (style === "builtin" || style === "keyword") style = "variable";
|
|
435
|
+
if (knownWords.indexOf(current.substr(1)) > -1) style = "keyword";
|
|
436
|
+
return style;
|
|
437
|
+
} else {
|
|
438
|
+
return ERRORCLASS;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return style;
|
|
442
|
+
}
|
|
443
|
+
return {
|
|
444
|
+
name: "vbscript",
|
|
445
|
+
startState: function() {
|
|
446
|
+
return {
|
|
447
|
+
tokenize: tokenBase,
|
|
448
|
+
lastToken: null,
|
|
449
|
+
currentIndent: 0,
|
|
450
|
+
nextLineIndent: 0,
|
|
451
|
+
doInCurrentLine: false,
|
|
452
|
+
ignoreKeyword: false
|
|
453
|
+
};
|
|
454
|
+
},
|
|
455
|
+
token: function(stream, state) {
|
|
456
|
+
if (stream.sol()) {
|
|
457
|
+
state.currentIndent += state.nextLineIndent;
|
|
458
|
+
state.nextLineIndent = 0;
|
|
459
|
+
state.doInCurrentLine = 0;
|
|
460
|
+
}
|
|
461
|
+
var style = tokenLexer(stream, state);
|
|
462
|
+
state.lastToken = { style, content: stream.current() };
|
|
463
|
+
if (style === null) style = null;
|
|
464
|
+
return style;
|
|
465
|
+
},
|
|
466
|
+
indent: function(state, textAfter, cx) {
|
|
467
|
+
var trueText = textAfter.replace(/^\s+|\s+$/g, "");
|
|
468
|
+
if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return cx.unit * (state.currentIndent - 1);
|
|
469
|
+
if (state.currentIndent < 0) return 0;
|
|
470
|
+
return state.currentIndent * cx.unit;
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
const vbScript = mkVBScript({});
|
|
475
|
+
mkVBScript({ isASP: true });
|
|
476
|
+
export {
|
|
477
|
+
vbScript
|
|
478
|
+
};
|
|
479
|
+
//# sourceMappingURL=vbscript-Bfn8O8I7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vbscript-Bfn8O8I7.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/vbscript.js"],"sourcesContent":["function mkVBScript(parserConf) {\n var ERRORCLASS = 'error';\n\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n }\n\n var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&\\\\\\\\\\\\^<>=]\");\n var doubleOperators = new RegExp(\"^((<>)|(<=)|(>=))\");\n var singleDelimiters = new RegExp('^[\\\\.,]');\n var brackets = new RegExp('^[\\\\(\\\\)]');\n var identifiers = new RegExp(\"^[A-Za-z][_A-Za-z0-9]*\");\n\n var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];\n var middleKeywords = ['else','elseif','case'];\n var endKeywords = ['next','loop','wend'];\n\n var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);\n var commonkeywords = ['dim', 'redim', 'then', 'until', 'randomize',\n 'byval','byref','new','property', 'exit', 'in',\n 'const','private', 'public',\n 'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];\n\n //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx\n var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];\n //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx\n var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',\n 'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',\n 'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',\n 'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',\n 'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',\n 'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];\n\n //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx\n var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',\n 'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',\n 'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',\n 'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',\n 'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',\n 'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',\n 'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];\n //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx\n var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];\n var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];\n var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];\n\n var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];\n var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response\n 'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request\n 'contents', 'staticobjects', //application\n 'codepage', 'lcid', 'sessionid', 'timeout', //session\n 'scripttimeout']; //server\n var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response\n 'binaryread', //request\n 'remove', 'removeall', 'lock', 'unlock', //application\n 'abandon', //session\n 'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server\n\n var knownWords = knownMethods.concat(knownProperties);\n\n builtinObjsWords = builtinObjsWords.concat(builtinConsts);\n\n if (parserConf.isASP){\n builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);\n knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);\n };\n\n var keywords = wordRegexp(commonkeywords);\n var atoms = wordRegexp(atomWords);\n var builtinFuncs = wordRegexp(builtinFuncsWords);\n var builtinObjs = wordRegexp(builtinObjsWords);\n var known = wordRegexp(knownWords);\n var stringPrefixes = '\"';\n\n var opening = wordRegexp(openingKeywords);\n var middle = wordRegexp(middleKeywords);\n var closing = wordRegexp(endKeywords);\n var doubleClosing = wordRegexp(['end']);\n var doOpening = wordRegexp(['do']);\n var noIndentWords = wordRegexp(['on error resume next', 'exit']);\n var comment = wordRegexp(['rem']);\n\n\n function indent(_stream, state) {\n state.currentIndent++;\n }\n\n function dedent(_stream, state) {\n state.currentIndent--;\n }\n // tokenizers\n function tokenBase(stream, state) {\n if (stream.eatSpace()) {\n return null\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 if (stream.match(comment)){\n stream.skipToEnd();\n return 'comment';\n }\n\n\n // Handle Number Literals\n if (stream.match(/^((&H)|(&O))?[0-9\\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\\.]+[a-z_]/i, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^\\d*\\.\\d+/i)) { floatLiteral = true; }\n else if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n else if (stream.match(/^\\.\\d+/)) { 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(doubleOperators)\n || stream.match(singleOperators)\n || stream.match(wordOperators)) {\n return 'operator';\n }\n if (stream.match(singleDelimiters)) {\n return null;\n }\n\n if (stream.match(brackets)) {\n return \"bracket\";\n }\n\n if (stream.match(noIndentWords)) {\n state.doInCurrentLine = true;\n\n return 'keyword';\n }\n\n if (stream.match(doOpening)) {\n indent(stream,state);\n state.doInCurrentLine = true;\n\n return 'keyword';\n }\n if (stream.match(opening)) {\n if (! state.doInCurrentLine)\n indent(stream,state);\n else\n state.doInCurrentLine = false;\n\n return 'keyword';\n }\n if (stream.match(middle)) {\n return 'keyword';\n }\n\n\n if (stream.match(doubleClosing)) {\n dedent(stream,state);\n dedent(stream,state);\n\n return 'keyword';\n }\n if (stream.match(closing)) {\n if (! state.doInCurrentLine)\n dedent(stream,state);\n else\n state.doInCurrentLine = false;\n\n return 'keyword';\n }\n\n if (stream.match(keywords)) {\n return 'keyword';\n }\n\n if (stream.match(atoms)) {\n return 'atom';\n }\n\n if (stream.match(known)) {\n return 'variableName.special';\n }\n\n if (stream.match(builtinFuncs)) {\n return 'builtin';\n }\n\n if (stream.match(builtinObjs)){\n return 'builtin';\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\n function 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\n function 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\n current = stream.current();\n if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {\n if (style === 'builtin' || style === 'keyword') style='variable';\n if (knownWords.indexOf(current.substr(1)) > -1) style='keyword';\n\n return style;\n } else {\n return ERRORCLASS;\n }\n }\n\n return style;\n }\n\n return {\n name: \"vbscript\",\n startState: function() {\n return {\n tokenize: tokenBase,\n lastToken: null,\n currentIndent: 0,\n nextLineIndent: 0,\n doInCurrentLine: false,\n ignoreKeyword: 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 if (style===null) style=null;\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 };\n};\n\nexport const vbScript = mkVBScript({})\nexport const vbScriptASP = mkVBScript({isASP: true})\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
function parseWords(str) {
|
|
2
|
+
var obj = {}, words = str.split(" ");
|
|
3
|
+
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
|
|
4
|
+
return obj;
|
|
5
|
+
}
|
|
6
|
+
var keywords = parseWords("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}");
|
|
7
|
+
var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}");
|
|
8
|
+
var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent");
|
|
9
|
+
var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
|
|
10
|
+
function chain(stream, state, f) {
|
|
11
|
+
state.tokenize = f;
|
|
12
|
+
return f(stream, state);
|
|
13
|
+
}
|
|
14
|
+
function tokenBase(stream, state) {
|
|
15
|
+
var beforeParams = state.beforeParams;
|
|
16
|
+
state.beforeParams = false;
|
|
17
|
+
var ch = stream.next();
|
|
18
|
+
if (ch == "'" && !state.inString && state.inParams) {
|
|
19
|
+
state.lastTokenWasBuiltin = false;
|
|
20
|
+
return chain(stream, state, tokenString(ch));
|
|
21
|
+
} else if (ch == '"') {
|
|
22
|
+
state.lastTokenWasBuiltin = false;
|
|
23
|
+
if (state.inString) {
|
|
24
|
+
state.inString = false;
|
|
25
|
+
return "string";
|
|
26
|
+
} else if (state.inParams)
|
|
27
|
+
return chain(stream, state, tokenString(ch));
|
|
28
|
+
} else if (/[\[\]{}\(\),;\.]/.test(ch)) {
|
|
29
|
+
if (ch == "(" && beforeParams)
|
|
30
|
+
state.inParams = true;
|
|
31
|
+
else if (ch == ")") {
|
|
32
|
+
state.inParams = false;
|
|
33
|
+
state.lastTokenWasBuiltin = true;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
} else if (/\d/.test(ch)) {
|
|
37
|
+
state.lastTokenWasBuiltin = false;
|
|
38
|
+
stream.eatWhile(/[\w\.]/);
|
|
39
|
+
return "number";
|
|
40
|
+
} else if (ch == "#" && stream.eat("*")) {
|
|
41
|
+
state.lastTokenWasBuiltin = false;
|
|
42
|
+
return chain(stream, state, tokenComment);
|
|
43
|
+
} else if (ch == "#" && stream.match(/ *\[ *\[/)) {
|
|
44
|
+
state.lastTokenWasBuiltin = false;
|
|
45
|
+
return chain(stream, state, tokenUnparsed);
|
|
46
|
+
} else if (ch == "#" && stream.eat("#")) {
|
|
47
|
+
state.lastTokenWasBuiltin = false;
|
|
48
|
+
stream.skipToEnd();
|
|
49
|
+
return "comment";
|
|
50
|
+
} else if (ch == "$") {
|
|
51
|
+
stream.eat("!");
|
|
52
|
+
stream.eatWhile(/[\w\d\$_\.{}-]/);
|
|
53
|
+
if (specials && specials.propertyIsEnumerable(stream.current())) {
|
|
54
|
+
return "keyword";
|
|
55
|
+
} else {
|
|
56
|
+
state.lastTokenWasBuiltin = true;
|
|
57
|
+
state.beforeParams = true;
|
|
58
|
+
return "builtin";
|
|
59
|
+
}
|
|
60
|
+
} else if (isOperatorChar.test(ch)) {
|
|
61
|
+
state.lastTokenWasBuiltin = false;
|
|
62
|
+
stream.eatWhile(isOperatorChar);
|
|
63
|
+
return "operator";
|
|
64
|
+
} else {
|
|
65
|
+
stream.eatWhile(/[\w\$_{}@]/);
|
|
66
|
+
var word = stream.current();
|
|
67
|
+
if (keywords && keywords.propertyIsEnumerable(word))
|
|
68
|
+
return "keyword";
|
|
69
|
+
if (functions && functions.propertyIsEnumerable(word) || stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek() == "(" && !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {
|
|
70
|
+
state.beforeParams = true;
|
|
71
|
+
state.lastTokenWasBuiltin = false;
|
|
72
|
+
return "keyword";
|
|
73
|
+
}
|
|
74
|
+
if (state.inString) {
|
|
75
|
+
state.lastTokenWasBuiltin = false;
|
|
76
|
+
return "string";
|
|
77
|
+
}
|
|
78
|
+
if (stream.pos > word.length && stream.string.charAt(stream.pos - word.length - 1) == "." && state.lastTokenWasBuiltin)
|
|
79
|
+
return "builtin";
|
|
80
|
+
state.lastTokenWasBuiltin = false;
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function tokenString(quote) {
|
|
85
|
+
return function(stream, state) {
|
|
86
|
+
var escaped = false, next, end = false;
|
|
87
|
+
while ((next = stream.next()) != null) {
|
|
88
|
+
if (next == quote && !escaped) {
|
|
89
|
+
end = true;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
if (quote == '"' && stream.peek() == "$" && !escaped) {
|
|
93
|
+
state.inString = true;
|
|
94
|
+
end = true;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
escaped = !escaped && next == "\\";
|
|
98
|
+
}
|
|
99
|
+
if (end) state.tokenize = tokenBase;
|
|
100
|
+
return "string";
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function tokenComment(stream, state) {
|
|
104
|
+
var maybeEnd = false, ch;
|
|
105
|
+
while (ch = stream.next()) {
|
|
106
|
+
if (ch == "#" && maybeEnd) {
|
|
107
|
+
state.tokenize = tokenBase;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
maybeEnd = ch == "*";
|
|
111
|
+
}
|
|
112
|
+
return "comment";
|
|
113
|
+
}
|
|
114
|
+
function tokenUnparsed(stream, state) {
|
|
115
|
+
var maybeEnd = 0, ch;
|
|
116
|
+
while (ch = stream.next()) {
|
|
117
|
+
if (ch == "#" && maybeEnd == 2) {
|
|
118
|
+
state.tokenize = tokenBase;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
if (ch == "]")
|
|
122
|
+
maybeEnd++;
|
|
123
|
+
else if (ch != " ")
|
|
124
|
+
maybeEnd = 0;
|
|
125
|
+
}
|
|
126
|
+
return "meta";
|
|
127
|
+
}
|
|
128
|
+
const velocity = {
|
|
129
|
+
name: "velocity",
|
|
130
|
+
startState: function() {
|
|
131
|
+
return {
|
|
132
|
+
tokenize: tokenBase,
|
|
133
|
+
beforeParams: false,
|
|
134
|
+
inParams: false,
|
|
135
|
+
inString: false,
|
|
136
|
+
lastTokenWasBuiltin: false
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
token: function(stream, state) {
|
|
140
|
+
if (stream.eatSpace()) return null;
|
|
141
|
+
return state.tokenize(stream, state);
|
|
142
|
+
},
|
|
143
|
+
languageData: {
|
|
144
|
+
commentTokens: { line: "##", block: { open: "#*", close: "*#" } }
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
export {
|
|
148
|
+
velocity
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=velocity-BwIZK1TH.js.map
|