@vc-shell/framework 1.1.0 → 1.1.2
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 +8 -0
- package/dist/assets/apl-NdZ6-T1z.js +142 -0
- package/dist/assets/asciiarmor-CmJEbAuq.js +56 -0
- package/dist/assets/asn1-Ctc8K72v.js +192 -0
- package/dist/assets/asterisk-D6r__RMF.js +187 -0
- package/dist/assets/brainfuck-COwWCBpq.js +70 -0
- package/dist/assets/clike-C-PtfL50.js +1019 -0
- package/dist/assets/clojure-C2XPrGCa.js +274 -0
- package/dist/assets/cmake-BGrEgXCL.js +81 -0
- package/dist/assets/cobol-DShPmpZe.js +234 -0
- package/dist/assets/coffeescript-BG8vTfSz.js +329 -0
- package/dist/assets/commonlisp-8oE2EpEe.js +108 -0
- package/dist/assets/core-api-BMLS9FrT.js +8288 -0
- package/dist/assets/core-composables-DYxpIWyY.js +1799 -0
- package/dist/assets/core-constants-DiKDBbnD.js +83 -0
- package/dist/assets/core-directives-QhJx9kWh.js +41 -0
- package/dist/assets/core-interceptors-CSjUvxQ0.js +78 -0
- package/dist/assets/core-plugins-wv2bDZ0l.js +4919 -0
- package/dist/assets/core-services-CAfJRsjs.js +4 -0
- package/dist/assets/core-utilities-BTktq_a-.js +33 -0
- package/dist/assets/crystal--rIRMl16.js +419 -0
- package/dist/assets/css/core-directives-FL4vIIkN.css +73 -0
- package/dist/assets/css/fonts-M1mtyV8L.css +305 -0
- package/dist/assets/css/icons-css-DbCVsovz.css +41 -0
- package/dist/assets/css/shared-components-bnLHdCtf.css +429 -0
- package/dist/assets/css/shared-modules-CNOICmYQ.css +45 -0
- package/dist/assets/css/styles-C62nDZwV.css +4096 -0
- package/dist/assets/css/ui-app-Bh9hmlIB.css +1287 -0
- package/dist/assets/css/ui-content-B29jsmK7.css +1187 -0
- package/dist/assets/css/ui-controls-CRtfFczw.css +387 -0
- package/dist/assets/css/ui-data-CYLxfdUa.css +1555 -0
- package/dist/assets/css/ui-form-C3WrWfVl.css +71 -0
- package/dist/assets/css/ui-form-fields-DOtHhDeM.css +1360 -0
- package/dist/assets/css/ui-helpers-bOoNv5dS.css +37 -0
- package/dist/assets/css/ui-indicators-CybQnCoU.css +628 -0
- package/dist/assets/css/ui-layout-DyGKgizy.css +251 -0
- package/dist/assets/css/ui-media-TWYep8js.css +298 -0
- package/dist/assets/css/ui-media-advanced-BGxy3VSB.css +183 -0
- package/dist/assets/css/ui-navigation-DcPRn8SB.css +1693 -0
- package/dist/assets/css-C_ZeEwz2.js +847 -0
- package/dist/assets/cypher-Bayei42D.js +122 -0
- package/dist/assets/d-B0hhz6be.js +205 -0
- package/dist/assets/diff-DQutOIXs.js +30 -0
- package/dist/assets/dockerfile-D0MivFIF.js +199 -0
- package/dist/assets/dtd-C1CeYVnM.js +121 -0
- package/dist/assets/dylan-Dm9-uD-A.js +337 -0
- package/dist/assets/ebnf-jWG_1Yly.js +151 -0
- package/dist/assets/ecl-CgJPA6z9.js +190 -0
- package/dist/assets/eiffel-lj7uLahq.js +146 -0
- package/dist/assets/elm-Cz7o1ijk.js +230 -0
- package/dist/assets/erlang-CyL5QOyR.js +581 -0
- package/dist/assets/factor-BVWHwYpu.js +65 -0
- package/dist/assets/fcl-DiozYjc8.js +154 -0
- package/dist/assets/forth-B7vn5ze0.js +164 -0
- package/dist/assets/fortran-D2XNEnBT.js +172 -0
- package/dist/assets/gas-B_Tj57Ve.js +343 -0
- package/dist/assets/gherkin-CJ6Qk4EZ.js +147 -0
- package/dist/assets/groovy-ioGz2WSV.js +228 -0
- package/dist/assets/haskell-BHnm1B83.js +239 -0
- package/dist/assets/haxe-Bn6Yo6N3.js +490 -0
- package/dist/assets/http-BOd5SYCT.js +89 -0
- package/dist/assets/idl-FSFk8_xX.js +274 -0
- package/dist/assets/index--5fKpGeN.js +792 -0
- package/dist/assets/index-0lME64YH.js +342 -0
- package/dist/assets/index-B1srGfDb.js +183 -0
- package/dist/assets/index-B6Ip0FgO.js +437 -0
- package/dist/assets/index-BKF-A58l.js +106 -0
- package/dist/assets/index-BT8o9-M5.js +418 -0
- package/dist/assets/index-BmV05E5M.js +479 -0
- package/dist/assets/index-Bv_z_qRq.js +137 -0
- package/dist/assets/index-C6MavZDA.js +131 -0
- package/dist/assets/index-C7zlEJy8.js +338 -0
- package/dist/assets/index-CeeaNa4F.js +187 -0
- package/dist/assets/index-CtmpJVwa.js +330 -0
- package/dist/assets/index-CwKpgcYl.js +85 -0
- package/dist/assets/index-DMTL7O1s.js +627 -0
- package/dist/assets/index-DRUmDL0J.js +59 -0
- package/dist/assets/index-DgFC-M9G.js +96 -0
- package/dist/assets/javascript-DGrAs70C.js +922 -0
- package/dist/assets/jinja2-D9k5QrXv.js +171 -0
- package/dist/assets/julia-DM42tOPB.js +369 -0
- package/dist/assets/livescript-Dci8HnOi.js +259 -0
- package/dist/assets/lua-CByQu4v6.js +137 -0
- package/dist/assets/lucide-icons-af0BY3bi.js +34555 -0
- package/dist/assets/mathematica-Dkv0uCYF.js +153 -0
- package/dist/assets/mbox-CYTvs5kC.js +114 -0
- package/dist/assets/mirc-DpgP3GCo.js +176 -0
- package/dist/assets/mllike-C6tNn2Yt.js +343 -0
- package/dist/assets/modelica-CR6hTSce.js +192 -0
- package/dist/assets/mscgen-D0GXtzMS.js +149 -0
- package/dist/assets/mumps-Bf1EyDa6.js +129 -0
- package/dist/assets/nginx-By9Phklj.js +163 -0
- package/dist/assets/nsis-B5ggMLQ9.js +80 -0
- package/dist/assets/ntriples-C7VJ7pnm.js +141 -0
- package/dist/assets/octave-6yR_ix15.js +112 -0
- package/dist/assets/oz-CEUnktiQ.js +235 -0
- package/dist/assets/pascal-Dksf1EyF.js +124 -0
- package/dist/assets/perl-B99DUQQt.js +819 -0
- package/dist/assets/pig-DFeDRta6.js +149 -0
- package/dist/assets/powershell-DhwsNWMx.js +381 -0
- package/dist/assets/properties-o21uErwC.js +62 -0
- package/dist/assets/protobuf-YxlANsmD.js +54 -0
- package/dist/assets/pug-bUgjeODZ.js +504 -0
- package/dist/assets/puppet-B8WICGYE.js +205 -0
- package/dist/assets/python-D3FFx1Id.js +389 -0
- package/dist/assets/q-D2Hjhl2C.js +123 -0
- package/dist/assets/r-D73k5lac.js +174 -0
- package/dist/assets/rpm-Duv_WH0z.js +89 -0
- package/dist/assets/ruby-DGCVqZDt.js +287 -0
- package/dist/assets/sas-XjPv1Vy5.js +268 -0
- package/dist/assets/scheme-DeaA28vt.js +263 -0
- package/dist/assets/shared-components-CfAt2hC6.js +1501 -0
- package/dist/assets/shared-composables-v9NkNuAe.js +35 -0
- package/dist/assets/shared-modules-CDP-H5ZB.js +3588 -0
- package/dist/assets/shared-pages-BGRRA5WB.js +20 -0
- package/dist/assets/shell-Bx6QZTgx.js +145 -0
- package/dist/assets/sieve-CWCD62sW.js +178 -0
- package/dist/assets/simple-mode-BAO9cD7H.js +136 -0
- package/dist/assets/smalltalk-DSQbF4MF.js +153 -0
- package/dist/assets/solr-v_XRf31C.js +80 -0
- package/dist/assets/sparql-BrfDqf0-.js +170 -0
- package/dist/assets/spreadsheet-Csn84Pef.js +98 -0
- package/dist/assets/sql-D4utlq1l.js +480 -0
- package/dist/assets/stex-DBkktma-.js +246 -0
- package/dist/assets/stylus-ByG-Fd6f.js +750 -0
- package/dist/assets/swift-CHbTprt3.js +202 -0
- package/dist/assets/tcl-BRlMUELr.js +125 -0
- package/dist/assets/textile-CqfTUjd4.js +441 -0
- package/dist/assets/tiddlywiki-BrsoM8KB.js +278 -0
- package/dist/assets/tiki-D-ivWPkc.js +289 -0
- package/dist/assets/toml-t_IhJu83.js +75 -0
- package/dist/assets/troff-DckGF2AE.js +64 -0
- package/dist/assets/ttcn-B8TAFbRR.js +253 -0
- package/dist/assets/ttcn-cfg-NHh25oCM.js +197 -0
- package/dist/assets/turtle-D9Js0BlL.js +141 -0
- package/dist/assets/ui-app-D31Pr1WY.js +1993 -0
- package/dist/assets/ui-content-B7SxH8y9.js +52887 -0
- package/dist/assets/ui-controls-nmDJYLmC.js +348 -0
- package/dist/assets/ui-data-Ci3b1ye0.js +22901 -0
- package/dist/assets/ui-form-Cs5ooOo7.js +159 -0
- package/dist/assets/ui-form-fields-DFQi31jT.js +40575 -0
- package/dist/assets/ui-helpers-CF-EUlOg.js +1736 -0
- package/dist/assets/ui-indicators-mIQeEqha.js +199 -0
- package/dist/assets/ui-layout-v2XBQky3.js +320 -0
- package/dist/assets/ui-media-WWYrwmZw.js +1259 -0
- package/dist/assets/ui-media-advanced-T8ibi153.js +492 -0
- package/dist/assets/ui-modals-BdZXzI85.js +2 -0
- package/dist/assets/ui-navigation-BtHa6ovW.js +24269 -0
- package/dist/assets/utils-DZK5fu48.js +17216 -0
- package/dist/assets/vb-CbIGLrpY.js +249 -0
- package/dist/assets/vbscript-8ANWle9n.js +320 -0
- package/dist/assets/velocity-D6hz3Hzw.js +186 -0
- package/dist/assets/verilog-DIV442at.js +565 -0
- package/dist/assets/vhdl-BlTiZo_v.js +174 -0
- package/dist/assets/vueuse-CTQm4Zh0.js +9308 -0
- package/dist/assets/webidl-Cp3tcqdk.js +179 -0
- package/dist/assets/xquery-Dd4TBzXv.js +411 -0
- package/dist/assets/yacas-DQ1WucF0.js +182 -0
- package/dist/assets/z80-P1j44jDI.js +102 -0
- package/dist/framework.js +29 -0
- package/dist/index.css +18 -0
- package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts +4 -4
- package/dist/shared/components/notifications/components/notification-container/index.d.ts +6 -6
- package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +2 -2
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +2 -2
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -2
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +1 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +4 -4
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +3 -3
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-base-button.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-base-button.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -3
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [1.1.2](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.1...v1.1.2) (2025-04-29)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## [1.1.1](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.0...v1.1.1) (2025-04-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
1
9
|
# [1.1.0](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.0-alpha.2...v1.1.0) (2025-04-29)
|
|
2
10
|
|
|
3
11
|
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
var builtInFuncs = {
|
|
2
|
+
"+": ["conjugate", "add"],
|
|
3
|
+
"−": ["negate", "subtract"],
|
|
4
|
+
"×": ["signOf", "multiply"],
|
|
5
|
+
"÷": ["reciprocal", "divide"],
|
|
6
|
+
"⌈": ["ceiling", "greaterOf"],
|
|
7
|
+
"⌊": ["floor", "lesserOf"],
|
|
8
|
+
"∣": ["absolute", "residue"],
|
|
9
|
+
"⍳": ["indexGenerate", "indexOf"],
|
|
10
|
+
"?": ["roll", "deal"],
|
|
11
|
+
"⋆": ["exponentiate", "toThePowerOf"],
|
|
12
|
+
"⍟": ["naturalLog", "logToTheBase"],
|
|
13
|
+
"○": ["piTimes", "circularFuncs"],
|
|
14
|
+
"!": ["factorial", "binomial"],
|
|
15
|
+
"⌹": ["matrixInverse", "matrixDivide"],
|
|
16
|
+
"<": [null, "lessThan"],
|
|
17
|
+
"≤": [null, "lessThanOrEqual"],
|
|
18
|
+
"=": [null, "equals"],
|
|
19
|
+
">": [null, "greaterThan"],
|
|
20
|
+
"≥": [null, "greaterThanOrEqual"],
|
|
21
|
+
"≠": [null, "notEqual"],
|
|
22
|
+
"≡": ["depth", "match"],
|
|
23
|
+
"≢": [null, "notMatch"],
|
|
24
|
+
"∈": ["enlist", "membership"],
|
|
25
|
+
"⍷": [null, "find"],
|
|
26
|
+
"∪": ["unique", "union"],
|
|
27
|
+
"∩": [null, "intersection"],
|
|
28
|
+
"∼": ["not", "without"],
|
|
29
|
+
"∨": [null, "or"],
|
|
30
|
+
"∧": [null, "and"],
|
|
31
|
+
"⍱": [null, "nor"],
|
|
32
|
+
"⍲": [null, "nand"],
|
|
33
|
+
"⍴": ["shapeOf", "reshape"],
|
|
34
|
+
",": ["ravel", "catenate"],
|
|
35
|
+
"⍪": [null, "firstAxisCatenate"],
|
|
36
|
+
"⌽": ["reverse", "rotate"],
|
|
37
|
+
"⊖": ["axis1Reverse", "axis1Rotate"],
|
|
38
|
+
"⍉": ["transpose", null],
|
|
39
|
+
"↑": ["first", "take"],
|
|
40
|
+
"↓": [null, "drop"],
|
|
41
|
+
"⊂": ["enclose", "partitionWithAxis"],
|
|
42
|
+
"⊃": ["diclose", "pick"],
|
|
43
|
+
"⌷": [null, "index"],
|
|
44
|
+
"⍋": ["gradeUp", null],
|
|
45
|
+
"⍒": ["gradeDown", null],
|
|
46
|
+
"⊤": ["encode", null],
|
|
47
|
+
"⊥": ["decode", null],
|
|
48
|
+
"⍕": ["format", "formatByExample"],
|
|
49
|
+
"⍎": ["execute", null],
|
|
50
|
+
"⊣": ["stop", "left"],
|
|
51
|
+
"⊢": ["pass", "right"]
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
var isOperator = /[\.\/⌿⍀¨⍣]/;
|
|
55
|
+
var isNiladic = /⍬/;
|
|
56
|
+
var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
|
|
57
|
+
var isArrow = /←/;
|
|
58
|
+
var isComment = /[⍝#].*$/;
|
|
59
|
+
|
|
60
|
+
var stringEater = function(type) {
|
|
61
|
+
var prev;
|
|
62
|
+
prev = false;
|
|
63
|
+
return function(c) {
|
|
64
|
+
prev = c;
|
|
65
|
+
if (c === type) {
|
|
66
|
+
return prev === "\\";
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const apl = {
|
|
73
|
+
name: "apl",
|
|
74
|
+
startState: function() {
|
|
75
|
+
return {
|
|
76
|
+
prev: false,
|
|
77
|
+
func: false,
|
|
78
|
+
op: false,
|
|
79
|
+
string: false,
|
|
80
|
+
escape: false
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
token: function(stream, state) {
|
|
84
|
+
var ch;
|
|
85
|
+
if (stream.eatSpace()) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
ch = stream.next();
|
|
89
|
+
if (ch === '"' || ch === "'") {
|
|
90
|
+
stream.eatWhile(stringEater(ch));
|
|
91
|
+
stream.next();
|
|
92
|
+
state.prev = true;
|
|
93
|
+
return "string";
|
|
94
|
+
}
|
|
95
|
+
if (/[\[{\(]/.test(ch)) {
|
|
96
|
+
state.prev = false;
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
if (/[\]}\)]/.test(ch)) {
|
|
100
|
+
state.prev = true;
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
if (isNiladic.test(ch)) {
|
|
104
|
+
state.prev = false;
|
|
105
|
+
return "atom";
|
|
106
|
+
}
|
|
107
|
+
if (/[¯\d]/.test(ch)) {
|
|
108
|
+
if (state.func) {
|
|
109
|
+
state.func = false;
|
|
110
|
+
state.prev = false;
|
|
111
|
+
} else {
|
|
112
|
+
state.prev = true;
|
|
113
|
+
}
|
|
114
|
+
stream.eatWhile(/[\w\.]/);
|
|
115
|
+
return "number";
|
|
116
|
+
}
|
|
117
|
+
if (isOperator.test(ch)) {
|
|
118
|
+
return "operator"
|
|
119
|
+
}
|
|
120
|
+
if (isArrow.test(ch)) {
|
|
121
|
+
return "operator";
|
|
122
|
+
}
|
|
123
|
+
if (isFunction.test(ch)) {
|
|
124
|
+
state.func = true;
|
|
125
|
+
state.prev = false;
|
|
126
|
+
return builtInFuncs[ch] ? "variableName.function.standard" : "variableName.function"
|
|
127
|
+
}
|
|
128
|
+
if (isComment.test(ch)) {
|
|
129
|
+
stream.skipToEnd();
|
|
130
|
+
return "comment";
|
|
131
|
+
}
|
|
132
|
+
if (ch === "∘" && stream.peek() === ".") {
|
|
133
|
+
stream.next();
|
|
134
|
+
return "variableName.function";
|
|
135
|
+
}
|
|
136
|
+
stream.eatWhile(/[\w\$_]/);
|
|
137
|
+
state.prev = true;
|
|
138
|
+
return "keyword";
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export { apl };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
function errorIfNotEmpty(stream) {
|
|
2
|
+
var nonWS = stream.match(/^\s*\S/);
|
|
3
|
+
stream.skipToEnd();
|
|
4
|
+
return nonWS ? "error" : null;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const asciiArmor = {
|
|
8
|
+
name: "asciiarmor",
|
|
9
|
+
token: function(stream, state) {
|
|
10
|
+
var m;
|
|
11
|
+
if (state.state == "top") {
|
|
12
|
+
if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\s*$/))) {
|
|
13
|
+
state.state = "headers";
|
|
14
|
+
state.type = m[1];
|
|
15
|
+
return "tag";
|
|
16
|
+
}
|
|
17
|
+
return errorIfNotEmpty(stream);
|
|
18
|
+
} else if (state.state == "headers") {
|
|
19
|
+
if (stream.sol() && stream.match(/^\w+:/)) {
|
|
20
|
+
state.state = "header";
|
|
21
|
+
return "atom";
|
|
22
|
+
} else {
|
|
23
|
+
var result = errorIfNotEmpty(stream);
|
|
24
|
+
if (result) state.state = "body";
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
} else if (state.state == "header") {
|
|
28
|
+
stream.skipToEnd();
|
|
29
|
+
state.state = "headers";
|
|
30
|
+
return "string";
|
|
31
|
+
} else if (state.state == "body") {
|
|
32
|
+
if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\s*$/))) {
|
|
33
|
+
if (m[1] != state.type) return "error";
|
|
34
|
+
state.state = "end";
|
|
35
|
+
return "tag";
|
|
36
|
+
} else {
|
|
37
|
+
if (stream.eatWhile(/[A-Za-z0-9+\/=]/)) {
|
|
38
|
+
return null;
|
|
39
|
+
} else {
|
|
40
|
+
stream.next();
|
|
41
|
+
return "error";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
} else if (state.state == "end") {
|
|
45
|
+
return errorIfNotEmpty(stream);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
blankLine: function(state) {
|
|
49
|
+
if (state.state == "headers") state.state = "body";
|
|
50
|
+
},
|
|
51
|
+
startState: function() {
|
|
52
|
+
return {state: "top", type: null};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export { asciiArmor };
|
|
@@ -0,0 +1,192 @@
|
|
|
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
|
+
const defaults = {
|
|
8
|
+
keywords: words("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION" +
|
|
9
|
+
" REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED" +
|
|
10
|
+
" WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN" +
|
|
11
|
+
" IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS" +
|
|
12
|
+
" MINACCESS MAXACCESS REVISION STATUS DESCRIPTION" +
|
|
13
|
+
" SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName" +
|
|
14
|
+
" ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY" +
|
|
15
|
+
" IMPLIED EXPORTS"),
|
|
16
|
+
cmipVerbs: words("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),
|
|
17
|
+
compareTypes: words("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY" +
|
|
18
|
+
" MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY" +
|
|
19
|
+
" OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL" +
|
|
20
|
+
" SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL" +
|
|
21
|
+
" TEXTUAL-CONVENTION"),
|
|
22
|
+
status: words("current deprecated mandatory obsolete"),
|
|
23
|
+
tags: words("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS" +
|
|
24
|
+
" UNIVERSAL"),
|
|
25
|
+
storage: words("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING" +
|
|
26
|
+
" UTCTime InterfaceIndex IANAifType CMIP-Attribute" +
|
|
27
|
+
" REAL PACKAGE PACKAGES IpAddress PhysAddress" +
|
|
28
|
+
" NetworkAddress BITS BMPString TimeStamp TimeTicks" +
|
|
29
|
+
" TruthValue RowStatus DisplayString GeneralString" +
|
|
30
|
+
" GraphicString IA5String NumericString" +
|
|
31
|
+
" PrintableString SnmpAdminString TeletexString" +
|
|
32
|
+
" UTF8String VideotexString VisibleString StringStore" +
|
|
33
|
+
" ISO646String T61String UniversalString Unsigned32" +
|
|
34
|
+
" Integer32 Gauge Gauge32 Counter Counter32 Counter64"),
|
|
35
|
+
modifier: words("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS" +
|
|
36
|
+
" GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS" +
|
|
37
|
+
" DEFINED"),
|
|
38
|
+
accessTypes: words("not-accessible accessible-for-notify read-only" +
|
|
39
|
+
" read-create read-write"),
|
|
40
|
+
multiLineStrings: true
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function asn1(parserConfig) {
|
|
44
|
+
var keywords = parserConfig.keywords || defaults.keywords,
|
|
45
|
+
cmipVerbs = parserConfig.cmipVerbs || defaults.cmipVerbs,
|
|
46
|
+
compareTypes = parserConfig.compareTypes || defaults.compareTypes,
|
|
47
|
+
status = parserConfig.status || defaults.status,
|
|
48
|
+
tags = parserConfig.tags || defaults.tags,
|
|
49
|
+
storage = parserConfig.storage || defaults.storage,
|
|
50
|
+
modifier = parserConfig.modifier || defaults.modifier,
|
|
51
|
+
accessTypes = parserConfig.accessTypes|| defaults.accessTypes;
|
|
52
|
+
parserConfig.multiLineStrings || defaults.multiLineStrings;
|
|
53
|
+
var indentStatements = parserConfig.indentStatements !== false;
|
|
54
|
+
var isOperatorChar = /[\|\^]/;
|
|
55
|
+
var curPunc;
|
|
56
|
+
|
|
57
|
+
function tokenBase(stream, state) {
|
|
58
|
+
var ch = stream.next();
|
|
59
|
+
if (ch == '"' || ch == "'") {
|
|
60
|
+
state.tokenize = tokenString(ch);
|
|
61
|
+
return state.tokenize(stream, state);
|
|
62
|
+
}
|
|
63
|
+
if (/[\[\]\(\){}:=,;]/.test(ch)) {
|
|
64
|
+
curPunc = ch;
|
|
65
|
+
return "punctuation";
|
|
66
|
+
}
|
|
67
|
+
if (ch == "-"){
|
|
68
|
+
if (stream.eat("-")) {
|
|
69
|
+
stream.skipToEnd();
|
|
70
|
+
return "comment";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (/\d/.test(ch)) {
|
|
74
|
+
stream.eatWhile(/[\w\.]/);
|
|
75
|
+
return "number";
|
|
76
|
+
}
|
|
77
|
+
if (isOperatorChar.test(ch)) {
|
|
78
|
+
stream.eatWhile(isOperatorChar);
|
|
79
|
+
return "operator";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
stream.eatWhile(/[\w\-]/);
|
|
83
|
+
var cur = stream.current();
|
|
84
|
+
if (keywords.propertyIsEnumerable(cur)) return "keyword";
|
|
85
|
+
if (cmipVerbs.propertyIsEnumerable(cur)) return "variableName";
|
|
86
|
+
if (compareTypes.propertyIsEnumerable(cur)) return "atom";
|
|
87
|
+
if (status.propertyIsEnumerable(cur)) return "comment";
|
|
88
|
+
if (tags.propertyIsEnumerable(cur)) return "typeName";
|
|
89
|
+
if (storage.propertyIsEnumerable(cur)) return "modifier";
|
|
90
|
+
if (modifier.propertyIsEnumerable(cur)) return "modifier";
|
|
91
|
+
if (accessTypes.propertyIsEnumerable(cur)) return "modifier";
|
|
92
|
+
|
|
93
|
+
return "variableName";
|
|
94
|
+
}
|
|
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 afterNext = stream.peek();
|
|
102
|
+
//look if the character if the quote is like the B in '10100010'B
|
|
103
|
+
if (afterNext){
|
|
104
|
+
afterNext = afterNext.toLowerCase();
|
|
105
|
+
if(afterNext == "b" || afterNext == "h" || afterNext == "o")
|
|
106
|
+
stream.next();
|
|
107
|
+
}
|
|
108
|
+
end = true; break;
|
|
109
|
+
}
|
|
110
|
+
escaped = !escaped && next == "\\";
|
|
111
|
+
}
|
|
112
|
+
if (end || false)
|
|
113
|
+
state.tokenize = null;
|
|
114
|
+
return "string";
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function Context(indented, column, type, align, prev) {
|
|
119
|
+
this.indented = indented;
|
|
120
|
+
this.column = column;
|
|
121
|
+
this.type = type;
|
|
122
|
+
this.align = align;
|
|
123
|
+
this.prev = prev;
|
|
124
|
+
}
|
|
125
|
+
function pushContext(state, col, type) {
|
|
126
|
+
var indent = state.indented;
|
|
127
|
+
if (state.context && state.context.type == "statement")
|
|
128
|
+
indent = state.context.indented;
|
|
129
|
+
return state.context = new Context(indent, col, type, null, state.context);
|
|
130
|
+
}
|
|
131
|
+
function popContext(state) {
|
|
132
|
+
var t = state.context.type;
|
|
133
|
+
if (t == ")" || t == "]" || t == "}")
|
|
134
|
+
state.indented = state.context.indented;
|
|
135
|
+
return state.context = state.context.prev;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//Interface
|
|
139
|
+
return {
|
|
140
|
+
name: "asn1",
|
|
141
|
+
startState: function() {
|
|
142
|
+
return {
|
|
143
|
+
tokenize: null,
|
|
144
|
+
context: new Context(-2, 0, "top", false),
|
|
145
|
+
indented: 0,
|
|
146
|
+
startOfLine: true
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
token: function(stream, state) {
|
|
151
|
+
var ctx = state.context;
|
|
152
|
+
if (stream.sol()) {
|
|
153
|
+
if (ctx.align == null) ctx.align = false;
|
|
154
|
+
state.indented = stream.indentation();
|
|
155
|
+
state.startOfLine = true;
|
|
156
|
+
}
|
|
157
|
+
if (stream.eatSpace()) return null;
|
|
158
|
+
curPunc = null;
|
|
159
|
+
var style = (state.tokenize || tokenBase)(stream, state);
|
|
160
|
+
if (style == "comment") return style;
|
|
161
|
+
if (ctx.align == null) ctx.align = true;
|
|
162
|
+
|
|
163
|
+
if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
|
|
164
|
+
&& ctx.type == "statement"){
|
|
165
|
+
popContext(state);
|
|
166
|
+
}
|
|
167
|
+
else if (curPunc == "{") pushContext(state, stream.column(), "}");
|
|
168
|
+
else if (curPunc == "[") pushContext(state, stream.column(), "]");
|
|
169
|
+
else if (curPunc == "(") pushContext(state, stream.column(), ")");
|
|
170
|
+
else if (curPunc == "}") {
|
|
171
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
172
|
+
if (ctx.type == "}") ctx = popContext(state);
|
|
173
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
174
|
+
}
|
|
175
|
+
else if (curPunc == ctx.type) popContext(state);
|
|
176
|
+
else if (indentStatements && (((ctx.type == "}" || ctx.type == "top")
|
|
177
|
+
&& curPunc != ';') || (ctx.type == "statement"
|
|
178
|
+
&& curPunc == "newstatement")))
|
|
179
|
+
pushContext(state, stream.column(), "statement");
|
|
180
|
+
|
|
181
|
+
state.startOfLine = false;
|
|
182
|
+
return style;
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
languageData: {
|
|
186
|
+
indentOnInput: /^\s*[{}]$/,
|
|
187
|
+
commentTokens: {line: "--"}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export { asn1 };
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
var atoms = ["exten", "same", "include","ignorepat","switch"],
|
|
2
|
+
dpcmd = ["#include","#exec"],
|
|
3
|
+
apps = [
|
|
4
|
+
"addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi",
|
|
5
|
+
"alarmreceiver","amd","answer","authenticate","background","backgrounddetect",
|
|
6
|
+
"bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent",
|
|
7
|
+
"changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge",
|
|
8
|
+
"congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge",
|
|
9
|
+
"dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility",
|
|
10
|
+
"datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa",
|
|
11
|
+
"dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy",
|
|
12
|
+
"externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif",
|
|
13
|
+
"goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete",
|
|
14
|
+
"ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus",
|
|
15
|
+
"jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme",
|
|
16
|
+
"meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete",
|
|
17
|
+
"minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode",
|
|
18
|
+
"mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish",
|
|
19
|
+
"originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce",
|
|
20
|
+
"parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones",
|
|
21
|
+
"privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten",
|
|
22
|
+
"readfile","receivefax","receivefax","receivefax","record","removequeuemember",
|
|
23
|
+
"resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun",
|
|
24
|
+
"saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax",
|
|
25
|
+
"sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags",
|
|
26
|
+
"setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel",
|
|
27
|
+
"slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground",
|
|
28
|
+
"speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound",
|
|
29
|
+
"speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor",
|
|
30
|
+
"stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec",
|
|
31
|
+
"trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate",
|
|
32
|
+
"vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring",
|
|
33
|
+
"waitforsilence","waitmusiconhold","waituntil","while","zapateller"
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
function basicToken(stream,state){
|
|
37
|
+
var cur = '';
|
|
38
|
+
var ch = stream.next();
|
|
39
|
+
// comment
|
|
40
|
+
if (state.blockComment) {
|
|
41
|
+
if (ch == "-" && stream.match("-;", true)) {
|
|
42
|
+
state.blockComment = false;
|
|
43
|
+
} else if (stream.skipTo("--;")) {
|
|
44
|
+
stream.next();
|
|
45
|
+
stream.next();
|
|
46
|
+
stream.next();
|
|
47
|
+
state.blockComment = false;
|
|
48
|
+
} else {
|
|
49
|
+
stream.skipToEnd();
|
|
50
|
+
}
|
|
51
|
+
return "comment";
|
|
52
|
+
}
|
|
53
|
+
if(ch == ";") {
|
|
54
|
+
if (stream.match("--", true)) {
|
|
55
|
+
if (!stream.match("-", false)) { // Except ;--- is not a block comment
|
|
56
|
+
state.blockComment = true;
|
|
57
|
+
return "comment";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
stream.skipToEnd();
|
|
61
|
+
return "comment";
|
|
62
|
+
}
|
|
63
|
+
// context
|
|
64
|
+
if(ch == '[') {
|
|
65
|
+
stream.skipTo(']');
|
|
66
|
+
stream.eat(']');
|
|
67
|
+
return "header";
|
|
68
|
+
}
|
|
69
|
+
// string
|
|
70
|
+
if(ch == '"') {
|
|
71
|
+
stream.skipTo('"');
|
|
72
|
+
return "string";
|
|
73
|
+
}
|
|
74
|
+
if(ch == "'") {
|
|
75
|
+
stream.skipTo("'");
|
|
76
|
+
return "string.special";
|
|
77
|
+
}
|
|
78
|
+
// dialplan commands
|
|
79
|
+
if(ch == '#') {
|
|
80
|
+
stream.eatWhile(/\w/);
|
|
81
|
+
cur = stream.current();
|
|
82
|
+
if(dpcmd.indexOf(cur) !== -1) {
|
|
83
|
+
stream.skipToEnd();
|
|
84
|
+
return "strong";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// application args
|
|
88
|
+
if(ch == '$'){
|
|
89
|
+
var ch1 = stream.peek();
|
|
90
|
+
if(ch1 == '{'){
|
|
91
|
+
stream.skipTo('}');
|
|
92
|
+
stream.eat('}');
|
|
93
|
+
return "variableName.special";
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// extension
|
|
97
|
+
stream.eatWhile(/\w/);
|
|
98
|
+
cur = stream.current();
|
|
99
|
+
if(atoms.indexOf(cur) !== -1) {
|
|
100
|
+
state.extenStart = true;
|
|
101
|
+
switch(cur) {
|
|
102
|
+
case 'same': state.extenSame = true; break;
|
|
103
|
+
case 'include':
|
|
104
|
+
case 'switch':
|
|
105
|
+
case 'ignorepat':
|
|
106
|
+
state.extenInclude = true;break;
|
|
107
|
+
}
|
|
108
|
+
return "atom";
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const asterisk = {
|
|
113
|
+
name: "asterisk",
|
|
114
|
+
startState: function() {
|
|
115
|
+
return {
|
|
116
|
+
blockComment: false,
|
|
117
|
+
extenStart: false,
|
|
118
|
+
extenSame: false,
|
|
119
|
+
extenInclude: false,
|
|
120
|
+
extenExten: false,
|
|
121
|
+
extenPriority: false,
|
|
122
|
+
extenApplication: false
|
|
123
|
+
};
|
|
124
|
+
},
|
|
125
|
+
token: function(stream, state) {
|
|
126
|
+
|
|
127
|
+
var cur = '';
|
|
128
|
+
if(stream.eatSpace()) return null;
|
|
129
|
+
// extension started
|
|
130
|
+
if(state.extenStart){
|
|
131
|
+
stream.eatWhile(/[^\s]/);
|
|
132
|
+
cur = stream.current();
|
|
133
|
+
if(/^=>?$/.test(cur)){
|
|
134
|
+
state.extenExten = true;
|
|
135
|
+
state.extenStart = false;
|
|
136
|
+
return "strong";
|
|
137
|
+
} else {
|
|
138
|
+
state.extenStart = false;
|
|
139
|
+
stream.skipToEnd();
|
|
140
|
+
return "error";
|
|
141
|
+
}
|
|
142
|
+
} else if(state.extenExten) {
|
|
143
|
+
// set exten and priority
|
|
144
|
+
state.extenExten = false;
|
|
145
|
+
state.extenPriority = true;
|
|
146
|
+
stream.eatWhile(/[^,]/);
|
|
147
|
+
if(state.extenInclude) {
|
|
148
|
+
stream.skipToEnd();
|
|
149
|
+
state.extenPriority = false;
|
|
150
|
+
state.extenInclude = false;
|
|
151
|
+
}
|
|
152
|
+
if(state.extenSame) {
|
|
153
|
+
state.extenPriority = false;
|
|
154
|
+
state.extenSame = false;
|
|
155
|
+
state.extenApplication = true;
|
|
156
|
+
}
|
|
157
|
+
return "tag";
|
|
158
|
+
} else if(state.extenPriority) {
|
|
159
|
+
state.extenPriority = false;
|
|
160
|
+
state.extenApplication = true;
|
|
161
|
+
stream.next(); // get comma
|
|
162
|
+
if(state.extenSame) return null;
|
|
163
|
+
stream.eatWhile(/[^,]/);
|
|
164
|
+
return "number";
|
|
165
|
+
} else if(state.extenApplication) {
|
|
166
|
+
stream.eatWhile(/,/);
|
|
167
|
+
cur = stream.current();
|
|
168
|
+
if(cur === ',') return null;
|
|
169
|
+
stream.eatWhile(/\w/);
|
|
170
|
+
cur = stream.current().toLowerCase();
|
|
171
|
+
state.extenApplication = false;
|
|
172
|
+
if(apps.indexOf(cur) !== -1){
|
|
173
|
+
return "def";
|
|
174
|
+
}
|
|
175
|
+
} else {
|
|
176
|
+
return basicToken(stream,state);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return null;
|
|
180
|
+
},
|
|
181
|
+
|
|
182
|
+
languageData: {
|
|
183
|
+
commentTokens: {line: ";", block: {open: ";--", close: "--;"}}
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
export { asterisk };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var reserve = "><+-.,[]".split("");
|
|
2
|
+
/*
|
|
3
|
+
comments can be either:
|
|
4
|
+
placed behind lines
|
|
5
|
+
|
|
6
|
+
+++ this is a comment
|
|
7
|
+
|
|
8
|
+
where reserved characters cannot be used
|
|
9
|
+
or in a loop
|
|
10
|
+
[
|
|
11
|
+
this is ok to use [ ] and stuff
|
|
12
|
+
]
|
|
13
|
+
or preceded by #
|
|
14
|
+
*/
|
|
15
|
+
const brainfuck = {
|
|
16
|
+
name: "brainfuck",
|
|
17
|
+
startState: function() {
|
|
18
|
+
return {
|
|
19
|
+
commentLine: false,
|
|
20
|
+
left: 0,
|
|
21
|
+
right: 0,
|
|
22
|
+
commentLoop: false
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
token: function(stream, state) {
|
|
26
|
+
if (stream.eatSpace()) return null
|
|
27
|
+
if(stream.sol()){
|
|
28
|
+
state.commentLine = false;
|
|
29
|
+
}
|
|
30
|
+
var ch = stream.next().toString();
|
|
31
|
+
if(reserve.indexOf(ch) !== -1){
|
|
32
|
+
if(state.commentLine === true){
|
|
33
|
+
if(stream.eol()){
|
|
34
|
+
state.commentLine = false;
|
|
35
|
+
}
|
|
36
|
+
return "comment";
|
|
37
|
+
}
|
|
38
|
+
if(ch === "]" || ch === "["){
|
|
39
|
+
if(ch === "["){
|
|
40
|
+
state.left++;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
state.right++;
|
|
44
|
+
}
|
|
45
|
+
return "bracket";
|
|
46
|
+
}
|
|
47
|
+
else if(ch === "+" || ch === "-"){
|
|
48
|
+
return "keyword";
|
|
49
|
+
}
|
|
50
|
+
else if(ch === "<" || ch === ">"){
|
|
51
|
+
return "atom";
|
|
52
|
+
}
|
|
53
|
+
else if(ch === "." || ch === ","){
|
|
54
|
+
return "def";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
state.commentLine = true;
|
|
59
|
+
if(stream.eol()){
|
|
60
|
+
state.commentLine = false;
|
|
61
|
+
}
|
|
62
|
+
return "comment";
|
|
63
|
+
}
|
|
64
|
+
if(stream.eol()){
|
|
65
|
+
state.commentLine = false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { brainfuck };
|