@vc-shell/framework 1.1.2 → 1.1.3
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/CHANGELOG.md +4 -0
- package/dist/apl-B2DGVGxc.js +76 -0
- package/dist/asciiarmor-2LVJmxlE.js +34 -0
- package/dist/asn1-jKiBa2Ya.js +95 -0
- package/dist/asterisk-DS281yxp.js +271 -0
- package/dist/brainfuck-C_p9pTT8.js +34 -0
- package/dist/clike-BUuHEmgZ.js +620 -0
- package/dist/clojure-CCKyeQKf.js +800 -0
- package/dist/cmake-CuaCgAKt.js +28 -0
- package/dist/cobol-BlTKFDRj.js +72 -0
- package/dist/coffeescript-BVCvwO8I.js +179 -0
- package/dist/commonlisp-D_kxz07b.js +75 -0
- package/dist/crystal-D309uH6_.js +217 -0
- package/dist/css-bIlmDBTK.js +1560 -0
- package/dist/cypher-BMq4Fwjl.js +68 -0
- package/dist/d-BZcgY6La.js +127 -0
- package/dist/diff-Cg9d_RX2.js +18 -0
- package/dist/{assets/dockerfile-D0MivFIF.js → dockerfile-DIy8NleC.js} +36 -41
- package/dist/dtd-CtLokQ-U.js +84 -0
- package/dist/dylan-QYeExnWK.js +234 -0
- package/dist/ebnf-DUPDuY4r.js +78 -0
- package/dist/ecl-CiXN-g_D.js +121 -0
- package/dist/eiffel-yQhjl4T1.js +110 -0
- package/dist/elm-CNT9vbN0.js +108 -0
- package/dist/erlang-CFOYdy9e.js +487 -0
- package/dist/factor-DDOC7X6P.js +65 -0
- package/dist/fcl-CPC2WYrI.js +103 -0
- package/dist/forth-BmxRyE9S.js +60 -0
- package/dist/fortran-9bvPyrOW.js +442 -0
- package/dist/framework.js +288 -29
- package/dist/gas-BdfkXJT_.js +183 -0
- package/dist/gherkin-CJuwpceU.js +34 -0
- package/dist/groovy-DZeT_VM-.js +146 -0
- package/dist/haskell-Bvt3Qq1t.js +375 -0
- package/dist/haxe-70NVW1pR.js +359 -0
- package/dist/http-D9LttvKF.js +44 -0
- package/dist/idl-B6TRFYjl.js +947 -0
- package/dist/{assets/index-C7zlEJy8.js → index-B83didIY.js} +229 -302
- package/dist/{assets/index-BT8o9-M5.js → index-BKR3ecN5.js} +267 -386
- package/dist/{assets/index-B1srGfDb.js → index-BN-_cebP.js} +119 -165
- package/dist/index-BUHouW8T.js +249 -0
- package/dist/index-BW3krAiY.js +341 -0
- package/dist/index-C6tcHNVl.js +75 -0
- package/dist/index-CGyGGihY.js +538 -0
- package/dist/{assets/index-DMTL7O1s.js → index-CnQ56kqq.js} +570 -586
- package/dist/index-Cv6c_1IG.js +71 -0
- package/dist/{assets/index-CeeaNa4F.js → index-CxMfHOup.js} +136 -167
- package/dist/index-DRL7VovM.js +308 -0
- package/dist/index-Dfcy8w9c.js +58 -0
- package/dist/{assets/index-CtmpJVwa.js → index-DyGIijU2.js} +270 -312
- package/dist/index-Ek7_XgGk.js +98 -0
- package/dist/{assets/index-Bv_z_qRq.js → index-TSGli7LX.js} +121 -124
- package/dist/index-UnPPbmRc.js +145659 -0
- package/dist/{assets/index-BKF-A58l.js → index-xFQltarK.js} +79 -92
- package/dist/index.css +9 -18
- package/dist/javascript-WMWNx-Vj.js +690 -0
- package/dist/jinja2-DnB6dQmV.js +154 -0
- package/dist/julia-DpvXAuO6.js +241 -0
- package/dist/livescript-CanGTf8u.js +272 -0
- package/dist/lua-XplVlWi_.js +217 -0
- package/dist/mathematica-jaRHnSxC.js +35 -0
- package/dist/mbox-BctzC1hL.js +76 -0
- package/dist/mirc-CFBPAOaF.js +72 -0
- package/dist/mllike-BSnXJBGA.js +272 -0
- package/dist/modelica-vUgVs--1.js +93 -0
- package/dist/mscgen-Cpl0NYLN.js +104 -0
- package/dist/mumps-CQoS1kWX.js +25 -0
- package/dist/nginx-zDPm3Z74.js +89 -0
- package/dist/nsis-fePjrhq7.js +62 -0
- package/dist/ntriples-CsNjv2QF.js +79 -0
- package/dist/octave-C8PmmSRH.js +143 -0
- package/dist/oz-Ce8aN8oE.js +151 -0
- package/dist/pascal-De0D6mP7.js +77 -0
- package/dist/perl-B4bSCe1C.js +915 -0
- package/dist/pig-D24Z8EXi.js +54 -0
- package/dist/powershell-DkYVfTzP.js +249 -0
- package/dist/properties-Dn9wna3M.js +26 -0
- package/dist/protobuf-BPIjwpzm.js +49 -0
- package/dist/pug-BqUR2bBq.js +248 -0
- package/dist/puppet-nyd4dhjf.js +45 -0
- package/dist/python-B5QdSKoL.js +313 -0
- package/dist/q-DXjKs-tC.js +83 -0
- package/dist/r-LKEuhEGI.js +104 -0
- package/dist/rpm-IznJm2Xc.js +57 -0
- package/dist/ruby-CcYfvIk6.js +228 -0
- package/dist/sas-7E8yHoCW.js +105 -0
- package/dist/scheme-DjibxsNh.js +124 -0
- package/dist/shell-C0C2sNA_.js +182 -0
- package/dist/sieve-Bwz7vjP5.js +72 -0
- package/dist/simple-mode-B0dvCdAA.js +89 -0
- package/dist/smalltalk-Bhddl2pB.js +48 -0
- package/dist/solr-BNlsLglM.js +41 -0
- package/dist/sparql-FarWu_Gb.js +197 -0
- package/dist/spreadsheet-C-cy4P5N.js +49 -0
- package/dist/sql-mMre1Bo3.js +282 -0
- package/dist/stex-92raWT1r.js +129 -0
- package/dist/stylus-CAdqWld3.js +250 -0
- package/dist/swift-DSxqR9R6.js +230 -0
- package/dist/tcl-xfoLljhY.js +81 -0
- package/dist/textile-D1AWE-pc.js +295 -0
- package/dist/tiddlywiki-5wqsXtSk.js +155 -0
- package/dist/tiki-__Kn3CeS.js +181 -0
- package/dist/toml-BHiuTcfn.js +49 -0
- package/dist/troff-D2UO-fKf.js +35 -0
- package/dist/ttcn-Bsa4sfRm.js +123 -0
- package/dist/ttcn-cfg-Bac_acMi.js +88 -0
- package/dist/turtle-xwJUxoPV.js +80 -0
- package/dist/vb-c2kQGd6-.js +74 -0
- package/dist/vbscript-Dz1TtKsy.js +324 -0
- package/dist/velocity-DJd0pTTC.js +96 -0
- package/dist/verilog-C4VGD9n1.js +263 -0
- package/dist/vhdl-T9HkrbI2.js +106 -0
- package/dist/webidl-CjfDENEo.js +155 -0
- package/dist/xquery-BUQdORAS.js +422 -0
- package/dist/yacas-C0absKBh.js +73 -0
- package/dist/z80-C8rPtw-0.js +61 -0
- package/package.json +4 -4
- package/dist/assets/apl-NdZ6-T1z.js +0 -142
- package/dist/assets/asciiarmor-CmJEbAuq.js +0 -56
- package/dist/assets/asn1-Ctc8K72v.js +0 -192
- package/dist/assets/asterisk-D6r__RMF.js +0 -187
- package/dist/assets/brainfuck-COwWCBpq.js +0 -70
- package/dist/assets/clike-C-PtfL50.js +0 -1019
- package/dist/assets/clojure-C2XPrGCa.js +0 -274
- package/dist/assets/cmake-BGrEgXCL.js +0 -81
- package/dist/assets/cobol-DShPmpZe.js +0 -234
- package/dist/assets/coffeescript-BG8vTfSz.js +0 -329
- package/dist/assets/commonlisp-8oE2EpEe.js +0 -108
- package/dist/assets/core-api-BMLS9FrT.js +0 -8288
- package/dist/assets/core-composables-DYxpIWyY.js +0 -1799
- package/dist/assets/core-constants-DiKDBbnD.js +0 -83
- package/dist/assets/core-directives-QhJx9kWh.js +0 -41
- package/dist/assets/core-interceptors-CSjUvxQ0.js +0 -78
- package/dist/assets/core-plugins-wv2bDZ0l.js +0 -4919
- package/dist/assets/core-services-CAfJRsjs.js +0 -4
- package/dist/assets/core-utilities-BTktq_a-.js +0 -33
- package/dist/assets/crystal--rIRMl16.js +0 -419
- package/dist/assets/css/core-directives-FL4vIIkN.css +0 -73
- package/dist/assets/css/fonts-M1mtyV8L.css +0 -305
- package/dist/assets/css/icons-css-DbCVsovz.css +0 -41
- package/dist/assets/css/shared-components-bnLHdCtf.css +0 -429
- package/dist/assets/css/shared-modules-CNOICmYQ.css +0 -45
- package/dist/assets/css/styles-C62nDZwV.css +0 -4096
- package/dist/assets/css/ui-app-Bh9hmlIB.css +0 -1287
- package/dist/assets/css/ui-content-B29jsmK7.css +0 -1187
- package/dist/assets/css/ui-controls-CRtfFczw.css +0 -387
- package/dist/assets/css/ui-data-CYLxfdUa.css +0 -1555
- package/dist/assets/css/ui-form-C3WrWfVl.css +0 -71
- package/dist/assets/css/ui-form-fields-DOtHhDeM.css +0 -1360
- package/dist/assets/css/ui-helpers-bOoNv5dS.css +0 -37
- package/dist/assets/css/ui-indicators-CybQnCoU.css +0 -628
- package/dist/assets/css/ui-layout-DyGKgizy.css +0 -251
- package/dist/assets/css/ui-media-TWYep8js.css +0 -298
- package/dist/assets/css/ui-media-advanced-BGxy3VSB.css +0 -183
- package/dist/assets/css/ui-navigation-DcPRn8SB.css +0 -1693
- package/dist/assets/css-C_ZeEwz2.js +0 -847
- package/dist/assets/cypher-Bayei42D.js +0 -122
- package/dist/assets/d-B0hhz6be.js +0 -205
- package/dist/assets/diff-DQutOIXs.js +0 -30
- package/dist/assets/dtd-C1CeYVnM.js +0 -121
- package/dist/assets/dylan-Dm9-uD-A.js +0 -337
- package/dist/assets/ebnf-jWG_1Yly.js +0 -151
- package/dist/assets/ecl-CgJPA6z9.js +0 -190
- package/dist/assets/eiffel-lj7uLahq.js +0 -146
- package/dist/assets/elm-Cz7o1ijk.js +0 -230
- package/dist/assets/erlang-CyL5QOyR.js +0 -581
- package/dist/assets/factor-BVWHwYpu.js +0 -65
- package/dist/assets/fcl-DiozYjc8.js +0 -154
- package/dist/assets/forth-B7vn5ze0.js +0 -164
- package/dist/assets/fortran-D2XNEnBT.js +0 -172
- package/dist/assets/gas-B_Tj57Ve.js +0 -343
- package/dist/assets/gherkin-CJ6Qk4EZ.js +0 -147
- package/dist/assets/groovy-ioGz2WSV.js +0 -228
- package/dist/assets/haskell-BHnm1B83.js +0 -239
- package/dist/assets/haxe-Bn6Yo6N3.js +0 -490
- package/dist/assets/http-BOd5SYCT.js +0 -89
- package/dist/assets/idl-FSFk8_xX.js +0 -274
- package/dist/assets/index--5fKpGeN.js +0 -792
- package/dist/assets/index-0lME64YH.js +0 -342
- package/dist/assets/index-B6Ip0FgO.js +0 -437
- package/dist/assets/index-BmV05E5M.js +0 -479
- package/dist/assets/index-C6MavZDA.js +0 -131
- package/dist/assets/index-CwKpgcYl.js +0 -85
- package/dist/assets/index-DRUmDL0J.js +0 -59
- package/dist/assets/index-DgFC-M9G.js +0 -96
- package/dist/assets/javascript-DGrAs70C.js +0 -922
- package/dist/assets/jinja2-D9k5QrXv.js +0 -171
- package/dist/assets/julia-DM42tOPB.js +0 -369
- package/dist/assets/livescript-Dci8HnOi.js +0 -259
- package/dist/assets/lua-CByQu4v6.js +0 -137
- package/dist/assets/lucide-icons-af0BY3bi.js +0 -34555
- package/dist/assets/mathematica-Dkv0uCYF.js +0 -153
- package/dist/assets/mbox-CYTvs5kC.js +0 -114
- package/dist/assets/mirc-DpgP3GCo.js +0 -176
- package/dist/assets/mllike-C6tNn2Yt.js +0 -343
- package/dist/assets/modelica-CR6hTSce.js +0 -192
- package/dist/assets/mscgen-D0GXtzMS.js +0 -149
- package/dist/assets/mumps-Bf1EyDa6.js +0 -129
- package/dist/assets/nginx-By9Phklj.js +0 -163
- package/dist/assets/nsis-B5ggMLQ9.js +0 -80
- package/dist/assets/ntriples-C7VJ7pnm.js +0 -141
- package/dist/assets/octave-6yR_ix15.js +0 -112
- package/dist/assets/oz-CEUnktiQ.js +0 -235
- package/dist/assets/pascal-Dksf1EyF.js +0 -124
- package/dist/assets/perl-B99DUQQt.js +0 -819
- package/dist/assets/pig-DFeDRta6.js +0 -149
- package/dist/assets/powershell-DhwsNWMx.js +0 -381
- package/dist/assets/properties-o21uErwC.js +0 -62
- package/dist/assets/protobuf-YxlANsmD.js +0 -54
- package/dist/assets/pug-bUgjeODZ.js +0 -504
- package/dist/assets/puppet-B8WICGYE.js +0 -205
- package/dist/assets/python-D3FFx1Id.js +0 -389
- package/dist/assets/q-D2Hjhl2C.js +0 -123
- package/dist/assets/r-D73k5lac.js +0 -174
- package/dist/assets/rpm-Duv_WH0z.js +0 -89
- package/dist/assets/ruby-DGCVqZDt.js +0 -287
- package/dist/assets/sas-XjPv1Vy5.js +0 -268
- package/dist/assets/scheme-DeaA28vt.js +0 -263
- package/dist/assets/shared-components-CfAt2hC6.js +0 -1501
- package/dist/assets/shared-composables-v9NkNuAe.js +0 -35
- package/dist/assets/shared-modules-CDP-H5ZB.js +0 -3588
- package/dist/assets/shared-pages-BGRRA5WB.js +0 -20
- package/dist/assets/shell-Bx6QZTgx.js +0 -145
- package/dist/assets/sieve-CWCD62sW.js +0 -178
- package/dist/assets/simple-mode-BAO9cD7H.js +0 -136
- package/dist/assets/smalltalk-DSQbF4MF.js +0 -153
- package/dist/assets/solr-v_XRf31C.js +0 -80
- package/dist/assets/sparql-BrfDqf0-.js +0 -170
- package/dist/assets/spreadsheet-Csn84Pef.js +0 -98
- package/dist/assets/sql-D4utlq1l.js +0 -480
- package/dist/assets/stex-DBkktma-.js +0 -246
- package/dist/assets/stylus-ByG-Fd6f.js +0 -750
- package/dist/assets/swift-CHbTprt3.js +0 -202
- package/dist/assets/tcl-BRlMUELr.js +0 -125
- package/dist/assets/textile-CqfTUjd4.js +0 -441
- package/dist/assets/tiddlywiki-BrsoM8KB.js +0 -278
- package/dist/assets/tiki-D-ivWPkc.js +0 -289
- package/dist/assets/toml-t_IhJu83.js +0 -75
- package/dist/assets/troff-DckGF2AE.js +0 -64
- package/dist/assets/ttcn-B8TAFbRR.js +0 -253
- package/dist/assets/ttcn-cfg-NHh25oCM.js +0 -197
- package/dist/assets/turtle-D9Js0BlL.js +0 -141
- package/dist/assets/ui-app-D31Pr1WY.js +0 -1993
- package/dist/assets/ui-content-B7SxH8y9.js +0 -52887
- package/dist/assets/ui-controls-nmDJYLmC.js +0 -348
- package/dist/assets/ui-data-Ci3b1ye0.js +0 -22901
- package/dist/assets/ui-form-Cs5ooOo7.js +0 -159
- package/dist/assets/ui-form-fields-DFQi31jT.js +0 -40575
- package/dist/assets/ui-helpers-CF-EUlOg.js +0 -1736
- package/dist/assets/ui-indicators-mIQeEqha.js +0 -199
- package/dist/assets/ui-layout-v2XBQky3.js +0 -320
- package/dist/assets/ui-media-WWYrwmZw.js +0 -1259
- package/dist/assets/ui-media-advanced-T8ibi153.js +0 -492
- package/dist/assets/ui-modals-BdZXzI85.js +0 -2
- package/dist/assets/ui-navigation-BtHa6ovW.js +0 -24269
- package/dist/assets/utils-DZK5fu48.js +0 -17216
- package/dist/assets/vb-CbIGLrpY.js +0 -249
- package/dist/assets/vbscript-8ANWle9n.js +0 -320
- package/dist/assets/velocity-D6hz3Hzw.js +0 -186
- package/dist/assets/verilog-DIV442at.js +0 -565
- package/dist/assets/vhdl-BlTiZo_v.js +0 -174
- package/dist/assets/vueuse-CTQm4Zh0.js +0 -9308
- package/dist/assets/webidl-Cp3tcqdk.js +0 -179
- package/dist/assets/xquery-Dd4TBzXv.js +0 -411
- package/dist/assets/yacas-DQ1WucF0.js +0 -182
- package/dist/assets/z80-P1j44jDI.js +0 -102
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
function words(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
|
-
|
|
7
|
-
// builtin funcs taken from trunk revision 1303237
|
|
8
|
-
var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL "
|
|
9
|
-
+ "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS "
|
|
10
|
-
+ "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG "
|
|
11
|
-
+ "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN "
|
|
12
|
-
+ "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER "
|
|
13
|
-
+ "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS "
|
|
14
|
-
+ "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA "
|
|
15
|
-
+ "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE "
|
|
16
|
-
+ "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG "
|
|
17
|
-
+ "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ";
|
|
18
|
-
|
|
19
|
-
// taken from QueryLexer.g
|
|
20
|
-
var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP "
|
|
21
|
-
+ "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL "
|
|
22
|
-
+ "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE "
|
|
23
|
-
+ "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE "
|
|
24
|
-
+ "NEQ MATCHES TRUE FALSE DUMP";
|
|
25
|
-
|
|
26
|
-
// data types
|
|
27
|
-
var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP ";
|
|
28
|
-
|
|
29
|
-
var builtins = words(pBuiltins), keywords = words(pKeywords), types = words(pTypes);
|
|
30
|
-
|
|
31
|
-
var isOperatorChar = /[*+\-%<>=&?:\/!|]/;
|
|
32
|
-
|
|
33
|
-
function chain(stream, state, f) {
|
|
34
|
-
state.tokenize = f;
|
|
35
|
-
return f(stream, state);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function tokenComment(stream, state) {
|
|
39
|
-
var isEnd = false;
|
|
40
|
-
var ch;
|
|
41
|
-
while(ch = stream.next()) {
|
|
42
|
-
if(ch == "/" && isEnd) {
|
|
43
|
-
state.tokenize = tokenBase;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
isEnd = (ch == "*");
|
|
47
|
-
}
|
|
48
|
-
return "comment";
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function tokenString(quote) {
|
|
52
|
-
return function(stream, state) {
|
|
53
|
-
var escaped = false, next, end = false;
|
|
54
|
-
while((next = stream.next()) != null) {
|
|
55
|
-
if (next == quote && !escaped) {
|
|
56
|
-
end = true; break;
|
|
57
|
-
}
|
|
58
|
-
escaped = !escaped && next == "\\";
|
|
59
|
-
}
|
|
60
|
-
if (end || !escaped)
|
|
61
|
-
state.tokenize = tokenBase;
|
|
62
|
-
return "error";
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
function tokenBase(stream, state) {
|
|
68
|
-
var ch = stream.next();
|
|
69
|
-
|
|
70
|
-
// is a start of string?
|
|
71
|
-
if (ch == '"' || ch == "'")
|
|
72
|
-
return chain(stream, state, tokenString(ch));
|
|
73
|
-
// is it one of the special chars
|
|
74
|
-
else if(/[\[\]{}\(\),;\.]/.test(ch))
|
|
75
|
-
return null;
|
|
76
|
-
// is it a number?
|
|
77
|
-
else if(/\d/.test(ch)) {
|
|
78
|
-
stream.eatWhile(/[\w\.]/);
|
|
79
|
-
return "number";
|
|
80
|
-
}
|
|
81
|
-
// multi line comment or operator
|
|
82
|
-
else if (ch == "/") {
|
|
83
|
-
if (stream.eat("*")) {
|
|
84
|
-
return chain(stream, state, tokenComment);
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
stream.eatWhile(isOperatorChar);
|
|
88
|
-
return "operator";
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// single line comment or operator
|
|
92
|
-
else if (ch=="-") {
|
|
93
|
-
if(stream.eat("-")){
|
|
94
|
-
stream.skipToEnd();
|
|
95
|
-
return "comment";
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
stream.eatWhile(isOperatorChar);
|
|
99
|
-
return "operator";
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// is it an operator
|
|
103
|
-
else if (isOperatorChar.test(ch)) {
|
|
104
|
-
stream.eatWhile(isOperatorChar);
|
|
105
|
-
return "operator";
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// get the while word
|
|
109
|
-
stream.eatWhile(/[\w\$_]/);
|
|
110
|
-
// is it one of the listed keywords?
|
|
111
|
-
if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {
|
|
112
|
-
//keywords can be used as variables like flatten(group), group.$0 etc..
|
|
113
|
-
if (!stream.eat(")") && !stream.eat("."))
|
|
114
|
-
return "keyword";
|
|
115
|
-
}
|
|
116
|
-
// is it one of the builtin functions?
|
|
117
|
-
if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))
|
|
118
|
-
return "builtin";
|
|
119
|
-
// is it one of the listed types?
|
|
120
|
-
if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))
|
|
121
|
-
return "type";
|
|
122
|
-
// default is a 'variable'
|
|
123
|
-
return "variable";
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Interface
|
|
128
|
-
const pig = {
|
|
129
|
-
name: "pig",
|
|
130
|
-
|
|
131
|
-
startState: function() {
|
|
132
|
-
return {
|
|
133
|
-
tokenize: tokenBase,
|
|
134
|
-
startOfLine: true
|
|
135
|
-
};
|
|
136
|
-
},
|
|
137
|
-
|
|
138
|
-
token: function(stream, state) {
|
|
139
|
-
if(stream.eatSpace()) return null;
|
|
140
|
-
var style = state.tokenize(stream, state);
|
|
141
|
-
return style;
|
|
142
|
-
},
|
|
143
|
-
|
|
144
|
-
languageData: {
|
|
145
|
-
autocomplete: (pBuiltins + pTypes + pKeywords).split(" ")
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
export { pig };
|
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
function buildRegexp(patterns, options) {
|
|
2
|
-
options = options || {};
|
|
3
|
-
var prefix = options.prefix !== undefined ? options.prefix : '^';
|
|
4
|
-
var suffix = options.suffix !== undefined ? options.suffix : '\\b';
|
|
5
|
-
|
|
6
|
-
for (var i = 0; i < patterns.length; i++) {
|
|
7
|
-
if (patterns[i] instanceof RegExp) {
|
|
8
|
-
patterns[i] = patterns[i].source;
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
patterns[i] = patterns[i].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return new RegExp(prefix + '(' + patterns.join('|') + ')' + suffix, 'i');
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
var notCharacterOrDash = '(?=[^A-Za-z\\d\\-_]|$)';
|
|
19
|
-
var varNames = /[\w\-:]/;
|
|
20
|
-
var keywords = buildRegexp([
|
|
21
|
-
/begin|break|catch|continue|data|default|do|dynamicparam/,
|
|
22
|
-
/else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,
|
|
23
|
-
/param|process|return|switch|throw|trap|try|until|where|while/
|
|
24
|
-
], { suffix: notCharacterOrDash });
|
|
25
|
-
|
|
26
|
-
var punctuation = /[\[\]{},;`\\\.]|@[({]/;
|
|
27
|
-
var wordOperators = buildRegexp([
|
|
28
|
-
'f',
|
|
29
|
-
/b?not/,
|
|
30
|
-
/[ic]?split/, 'join',
|
|
31
|
-
/is(not)?/, 'as',
|
|
32
|
-
/[ic]?(eq|ne|[gl][te])/,
|
|
33
|
-
/[ic]?(not)?(like|match|contains)/,
|
|
34
|
-
/[ic]?replace/,
|
|
35
|
-
/b?(and|or|xor)/
|
|
36
|
-
], { prefix: '-' });
|
|
37
|
-
var symbolOperators = /[+\-*\/%]=|\+\+|--|\.\.|[+\-*&^%:=!|\/]|<(?!#)|(?!#)>/;
|
|
38
|
-
var operators = buildRegexp([wordOperators, symbolOperators], { suffix: '' });
|
|
39
|
-
|
|
40
|
-
var numbers = /^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i;
|
|
41
|
-
|
|
42
|
-
var identifiers = /^[A-Za-z\_][A-Za-z\-\_\d]*\b/;
|
|
43
|
-
|
|
44
|
-
var symbolBuiltins = /[A-Z]:|%|\?/i;
|
|
45
|
-
var namedBuiltins = buildRegexp([
|
|
46
|
-
/Add-(Computer|Content|History|Member|PSSnapin|Type)/,
|
|
47
|
-
/Checkpoint-Computer/,
|
|
48
|
-
/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,
|
|
49
|
-
/Compare-Object/,
|
|
50
|
-
/Complete-Transaction/,
|
|
51
|
-
/Connect-PSSession/,
|
|
52
|
-
/ConvertFrom-(Csv|Json|SecureString|StringData)/,
|
|
53
|
-
/Convert-Path/,
|
|
54
|
-
/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,
|
|
55
|
-
/Copy-Item(Property)?/,
|
|
56
|
-
/Debug-Process/,
|
|
57
|
-
/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,
|
|
58
|
-
/Disconnect-PSSession/,
|
|
59
|
-
/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,
|
|
60
|
-
/(Enter|Exit)-PSSession/,
|
|
61
|
-
/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,
|
|
62
|
-
/ForEach-Object/,
|
|
63
|
-
/Format-(Custom|List|Table|Wide)/,
|
|
64
|
-
new RegExp('Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential'
|
|
65
|
-
+ '|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job'
|
|
66
|
-
+ '|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration'
|
|
67
|
-
+ '|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)'),
|
|
68
|
-
/Group-Object/,
|
|
69
|
-
/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,
|
|
70
|
-
/ImportSystemModules/,
|
|
71
|
-
/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,
|
|
72
|
-
/Join-Path/,
|
|
73
|
-
/Limit-EventLog/,
|
|
74
|
-
/Measure-(Command|Object)/,
|
|
75
|
-
/Move-Item(Property)?/,
|
|
76
|
-
new RegExp('New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile'
|
|
77
|
-
+ '|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)'),
|
|
78
|
-
/Out-(Default|File|GridView|Host|Null|Printer|String)/,
|
|
79
|
-
/Pause/,
|
|
80
|
-
/(Pop|Push)-Location/,
|
|
81
|
-
/Read-Host/,
|
|
82
|
-
/Receive-(Job|PSSession)/,
|
|
83
|
-
/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,
|
|
84
|
-
/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,
|
|
85
|
-
/Rename-(Computer|Item(Property)?)/,
|
|
86
|
-
/Reset-ComputerMachinePassword/,
|
|
87
|
-
/Resolve-Path/,
|
|
88
|
-
/Restart-(Computer|Service)/,
|
|
89
|
-
/Restore-Computer/,
|
|
90
|
-
/Resume-(Job|Service)/,
|
|
91
|
-
/Save-Help/,
|
|
92
|
-
/Select-(Object|String|Xml)/,
|
|
93
|
-
/Send-MailMessage/,
|
|
94
|
-
new RegExp('Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug' +
|
|
95
|
-
'|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)'),
|
|
96
|
-
/Show-(Command|ControlPanelItem|EventLog)/,
|
|
97
|
-
/Sort-Object/,
|
|
98
|
-
/Split-Path/,
|
|
99
|
-
/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,
|
|
100
|
-
/Stop-(Computer|Job|Process|Service|Transcript)/,
|
|
101
|
-
/Suspend-(Job|Service)/,
|
|
102
|
-
/TabExpansion2/,
|
|
103
|
-
/Tee-Object/,
|
|
104
|
-
/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,
|
|
105
|
-
/Trace-Command/,
|
|
106
|
-
/Unblock-File/,
|
|
107
|
-
/Undo-Transaction/,
|
|
108
|
-
/Unregister-(Event|PSSessionConfiguration)/,
|
|
109
|
-
/Update-(FormatData|Help|List|TypeData)/,
|
|
110
|
-
/Use-Transaction/,
|
|
111
|
-
/Wait-(Event|Job|Process)/,
|
|
112
|
-
/Where-Object/,
|
|
113
|
-
/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,
|
|
114
|
-
/cd|help|mkdir|more|oss|prompt/,
|
|
115
|
-
/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,
|
|
116
|
-
/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,
|
|
117
|
-
/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,
|
|
118
|
-
/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,
|
|
119
|
-
/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,
|
|
120
|
-
/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/
|
|
121
|
-
], { prefix: '', suffix: '' });
|
|
122
|
-
var variableBuiltins = buildRegexp([
|
|
123
|
-
/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,
|
|
124
|
-
/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,
|
|
125
|
-
/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,
|
|
126
|
-
/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,
|
|
127
|
-
/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,
|
|
128
|
-
/WarningPreference|WhatIfPreference/,
|
|
129
|
-
|
|
130
|
-
/Event|EventArgs|EventSubscriber|Sender/,
|
|
131
|
-
/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,
|
|
132
|
-
/true|false|null/
|
|
133
|
-
], { prefix: '\\$', suffix: '' });
|
|
134
|
-
|
|
135
|
-
var builtins = buildRegexp([symbolBuiltins, namedBuiltins, variableBuiltins], { suffix: notCharacterOrDash });
|
|
136
|
-
|
|
137
|
-
var grammar = {
|
|
138
|
-
keyword: keywords,
|
|
139
|
-
number: numbers,
|
|
140
|
-
operator: operators,
|
|
141
|
-
builtin: builtins,
|
|
142
|
-
punctuation: punctuation,
|
|
143
|
-
variable: identifiers
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
// tokenizers
|
|
147
|
-
function tokenBase(stream, state) {
|
|
148
|
-
// Handle Comments
|
|
149
|
-
//var ch = stream.peek();
|
|
150
|
-
|
|
151
|
-
var parent = state.returnStack[state.returnStack.length - 1];
|
|
152
|
-
if (parent && parent.shouldReturnFrom(state)) {
|
|
153
|
-
state.tokenize = parent.tokenize;
|
|
154
|
-
state.returnStack.pop();
|
|
155
|
-
return state.tokenize(stream, state);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (stream.eatSpace()) {
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
if (stream.eat('(')) {
|
|
163
|
-
state.bracketNesting += 1;
|
|
164
|
-
return 'punctuation';
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
if (stream.eat(')')) {
|
|
168
|
-
state.bracketNesting -= 1;
|
|
169
|
-
return 'punctuation';
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
for (var key in grammar) {
|
|
173
|
-
if (stream.match(grammar[key])) {
|
|
174
|
-
return key;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
var ch = stream.next();
|
|
179
|
-
|
|
180
|
-
// single-quote string
|
|
181
|
-
if (ch === "'") {
|
|
182
|
-
return tokenSingleQuoteString(stream, state);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (ch === '$') {
|
|
186
|
-
return tokenVariable(stream, state);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// double-quote string
|
|
190
|
-
if (ch === '"') {
|
|
191
|
-
return tokenDoubleQuoteString(stream, state);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (ch === '<' && stream.eat('#')) {
|
|
195
|
-
state.tokenize = tokenComment;
|
|
196
|
-
return tokenComment(stream, state);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
if (ch === '#') {
|
|
200
|
-
stream.skipToEnd();
|
|
201
|
-
return 'comment';
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
if (ch === '@') {
|
|
205
|
-
var quoteMatch = stream.eat(/["']/);
|
|
206
|
-
if (quoteMatch && stream.eol()) {
|
|
207
|
-
state.tokenize = tokenMultiString;
|
|
208
|
-
state.startQuote = quoteMatch[0];
|
|
209
|
-
return tokenMultiString(stream, state);
|
|
210
|
-
} else if (stream.eol()) {
|
|
211
|
-
return 'error';
|
|
212
|
-
} else if (stream.peek().match(/[({]/)) {
|
|
213
|
-
return 'punctuation';
|
|
214
|
-
} else if (stream.peek().match(varNames)) {
|
|
215
|
-
// splatted variable
|
|
216
|
-
return tokenVariable(stream, state);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
return 'error';
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
function tokenSingleQuoteString(stream, state) {
|
|
223
|
-
var ch;
|
|
224
|
-
while ((ch = stream.peek()) != null) {
|
|
225
|
-
stream.next();
|
|
226
|
-
|
|
227
|
-
if (ch === "'" && !stream.eat("'")) {
|
|
228
|
-
state.tokenize = tokenBase;
|
|
229
|
-
return 'string';
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
return 'error';
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
function tokenDoubleQuoteString(stream, state) {
|
|
237
|
-
var ch;
|
|
238
|
-
while ((ch = stream.peek()) != null) {
|
|
239
|
-
if (ch === '$') {
|
|
240
|
-
state.tokenize = tokenStringInterpolation;
|
|
241
|
-
return 'string';
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
stream.next();
|
|
245
|
-
if (ch === '`') {
|
|
246
|
-
stream.next();
|
|
247
|
-
continue;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
if (ch === '"' && !stream.eat('"')) {
|
|
251
|
-
state.tokenize = tokenBase;
|
|
252
|
-
return 'string';
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
return 'error';
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
function tokenStringInterpolation(stream, state) {
|
|
260
|
-
return tokenInterpolation(stream, state, tokenDoubleQuoteString);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
function tokenMultiStringReturn(stream, state) {
|
|
264
|
-
state.tokenize = tokenMultiString;
|
|
265
|
-
state.startQuote = '"';
|
|
266
|
-
return tokenMultiString(stream, state);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
function tokenHereStringInterpolation(stream, state) {
|
|
270
|
-
return tokenInterpolation(stream, state, tokenMultiStringReturn);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
function tokenInterpolation(stream, state, parentTokenize) {
|
|
274
|
-
if (stream.match('$(')) {
|
|
275
|
-
var savedBracketNesting = state.bracketNesting;
|
|
276
|
-
state.returnStack.push({
|
|
277
|
-
/*jshint loopfunc:true */
|
|
278
|
-
shouldReturnFrom: function(state) {
|
|
279
|
-
return state.bracketNesting === savedBracketNesting;
|
|
280
|
-
},
|
|
281
|
-
tokenize: parentTokenize
|
|
282
|
-
});
|
|
283
|
-
state.tokenize = tokenBase;
|
|
284
|
-
state.bracketNesting += 1;
|
|
285
|
-
return 'punctuation';
|
|
286
|
-
} else {
|
|
287
|
-
stream.next();
|
|
288
|
-
state.returnStack.push({
|
|
289
|
-
shouldReturnFrom: function() { return true; },
|
|
290
|
-
tokenize: parentTokenize
|
|
291
|
-
});
|
|
292
|
-
state.tokenize = tokenVariable;
|
|
293
|
-
return state.tokenize(stream, state);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
function tokenComment(stream, state) {
|
|
298
|
-
var maybeEnd = false, ch;
|
|
299
|
-
while ((ch = stream.next()) != null) {
|
|
300
|
-
if (maybeEnd && ch == '>') {
|
|
301
|
-
state.tokenize = tokenBase;
|
|
302
|
-
break;
|
|
303
|
-
}
|
|
304
|
-
maybeEnd = (ch === '#');
|
|
305
|
-
}
|
|
306
|
-
return 'comment';
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
function tokenVariable(stream, state) {
|
|
310
|
-
var ch = stream.peek();
|
|
311
|
-
if (stream.eat('{')) {
|
|
312
|
-
state.tokenize = tokenVariableWithBraces;
|
|
313
|
-
return tokenVariableWithBraces(stream, state);
|
|
314
|
-
} else if (ch != undefined && ch.match(varNames)) {
|
|
315
|
-
stream.eatWhile(varNames);
|
|
316
|
-
state.tokenize = tokenBase;
|
|
317
|
-
return 'variable';
|
|
318
|
-
} else {
|
|
319
|
-
state.tokenize = tokenBase;
|
|
320
|
-
return 'error';
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
function tokenVariableWithBraces(stream, state) {
|
|
325
|
-
var ch;
|
|
326
|
-
while ((ch = stream.next()) != null) {
|
|
327
|
-
if (ch === '}') {
|
|
328
|
-
state.tokenize = tokenBase;
|
|
329
|
-
break;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
return 'variable';
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
function tokenMultiString(stream, state) {
|
|
336
|
-
var quote = state.startQuote;
|
|
337
|
-
if (stream.sol() && stream.match(new RegExp(quote + '@'))) {
|
|
338
|
-
state.tokenize = tokenBase;
|
|
339
|
-
}
|
|
340
|
-
else if (quote === '"') {
|
|
341
|
-
while (!stream.eol()) {
|
|
342
|
-
var ch = stream.peek();
|
|
343
|
-
if (ch === '$') {
|
|
344
|
-
state.tokenize = tokenHereStringInterpolation;
|
|
345
|
-
return 'string';
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
stream.next();
|
|
349
|
-
if (ch === '`') {
|
|
350
|
-
stream.next();
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
355
|
-
stream.skipToEnd();
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
return 'string';
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
const powerShell = {
|
|
362
|
-
name: "powershell",
|
|
363
|
-
|
|
364
|
-
startState: function() {
|
|
365
|
-
return {
|
|
366
|
-
returnStack: [],
|
|
367
|
-
bracketNesting: 0,
|
|
368
|
-
tokenize: tokenBase
|
|
369
|
-
};
|
|
370
|
-
},
|
|
371
|
-
|
|
372
|
-
token: function(stream, state) {
|
|
373
|
-
return state.tokenize(stream, state);
|
|
374
|
-
},
|
|
375
|
-
|
|
376
|
-
languageData: {
|
|
377
|
-
commentTokens: {line: "#", block: {open: "<#", close: "#>"}}
|
|
378
|
-
}
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
export { powerShell };
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
const properties = {
|
|
2
|
-
name: "properties",
|
|
3
|
-
|
|
4
|
-
token: function(stream, state) {
|
|
5
|
-
var sol = stream.sol() || state.afterSection;
|
|
6
|
-
var eol = stream.eol();
|
|
7
|
-
|
|
8
|
-
state.afterSection = false;
|
|
9
|
-
|
|
10
|
-
if (sol) {
|
|
11
|
-
if (state.nextMultiline) {
|
|
12
|
-
state.inMultiline = true;
|
|
13
|
-
state.nextMultiline = false;
|
|
14
|
-
} else {
|
|
15
|
-
state.position = "def";
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (eol && ! state.nextMultiline) {
|
|
20
|
-
state.inMultiline = false;
|
|
21
|
-
state.position = "def";
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (sol) {
|
|
25
|
-
while(stream.eatSpace()) {}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var ch = stream.next();
|
|
29
|
-
|
|
30
|
-
if (sol && (ch === "#" || ch === "!" || ch === ";")) {
|
|
31
|
-
state.position = "comment";
|
|
32
|
-
stream.skipToEnd();
|
|
33
|
-
return "comment";
|
|
34
|
-
} else if (sol && ch === "[") {
|
|
35
|
-
state.afterSection = true;
|
|
36
|
-
stream.skipTo("]"); stream.eat("]");
|
|
37
|
-
return "header";
|
|
38
|
-
} else if (ch === "=" || ch === ":") {
|
|
39
|
-
state.position = "quote";
|
|
40
|
-
return null;
|
|
41
|
-
} else if (ch === "\\" && state.position === "quote") {
|
|
42
|
-
if (stream.eol()) { // end of line?
|
|
43
|
-
// Multiline value
|
|
44
|
-
state.nextMultiline = true;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return state.position;
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
startState: function() {
|
|
52
|
-
return {
|
|
53
|
-
position : "def", // Current position, "def", "quote" or "comment"
|
|
54
|
-
nextMultiline : false, // Is the next line multiline value
|
|
55
|
-
inMultiline : false, // Is the current line a multiline value
|
|
56
|
-
afterSection : false // Did we just open a section
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export { properties };
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
function wordRegexp(words) {
|
|
2
|
-
return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
|
|
3
|
-
}
|
|
4
|
-
var keywordArray = [
|
|
5
|
-
"package", "message", "import", "syntax",
|
|
6
|
-
"required", "optional", "repeated", "reserved", "default", "extensions", "packed",
|
|
7
|
-
"bool", "bytes", "double", "enum", "float", "string",
|
|
8
|
-
"int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64",
|
|
9
|
-
"option", "service", "rpc", "returns"
|
|
10
|
-
];
|
|
11
|
-
var keywords = wordRegexp(keywordArray);
|
|
12
|
-
|
|
13
|
-
var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*");
|
|
14
|
-
|
|
15
|
-
function tokenBase(stream) {
|
|
16
|
-
// whitespaces
|
|
17
|
-
if (stream.eatSpace()) return null;
|
|
18
|
-
|
|
19
|
-
// Handle one line Comments
|
|
20
|
-
if (stream.match("//")) {
|
|
21
|
-
stream.skipToEnd();
|
|
22
|
-
return "comment";
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Handle Number Literals
|
|
26
|
-
if (stream.match(/^[0-9\.+-]/, false)) {
|
|
27
|
-
if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))
|
|
28
|
-
return "number";
|
|
29
|
-
if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))
|
|
30
|
-
return "number";
|
|
31
|
-
if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))
|
|
32
|
-
return "number";
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Handle Strings
|
|
36
|
-
if (stream.match(/^"([^"]|(""))*"/)) { return "string"; }
|
|
37
|
-
if (stream.match(/^'([^']|(''))*'/)) { return "string"; }
|
|
38
|
-
|
|
39
|
-
// Handle words
|
|
40
|
-
if (stream.match(keywords)) { return "keyword"; }
|
|
41
|
-
if (stream.match(identifiers)) { return "variable"; }
|
|
42
|
-
// Handle non-detected items
|
|
43
|
-
stream.next();
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
const protobuf = {
|
|
47
|
-
name: "protobuf",
|
|
48
|
-
token: tokenBase,
|
|
49
|
-
languageData: {
|
|
50
|
-
autocomplete: keywordArray
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export { protobuf };
|