@vc-shell/framework 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/apl-B2DGVGxc.js +76 -0
  3. package/dist/asciiarmor-2LVJmxlE.js +34 -0
  4. package/dist/asn1-jKiBa2Ya.js +95 -0
  5. package/dist/asterisk-DS281yxp.js +271 -0
  6. package/dist/brainfuck-C_p9pTT8.js +34 -0
  7. package/dist/clike-BUuHEmgZ.js +620 -0
  8. package/dist/clojure-CCKyeQKf.js +800 -0
  9. package/dist/cmake-CuaCgAKt.js +28 -0
  10. package/dist/cobol-BlTKFDRj.js +72 -0
  11. package/dist/coffeescript-BVCvwO8I.js +179 -0
  12. package/dist/commonlisp-D_kxz07b.js +75 -0
  13. package/dist/crystal-D309uH6_.js +217 -0
  14. package/dist/css-bIlmDBTK.js +1560 -0
  15. package/dist/cypher-BMq4Fwjl.js +68 -0
  16. package/dist/d-BZcgY6La.js +127 -0
  17. package/dist/diff-Cg9d_RX2.js +18 -0
  18. package/dist/{assets/dockerfile-D0MivFIF.js → dockerfile-DIy8NleC.js} +36 -41
  19. package/dist/dtd-CtLokQ-U.js +84 -0
  20. package/dist/dylan-QYeExnWK.js +234 -0
  21. package/dist/ebnf-DUPDuY4r.js +78 -0
  22. package/dist/ecl-CiXN-g_D.js +121 -0
  23. package/dist/eiffel-yQhjl4T1.js +110 -0
  24. package/dist/elm-CNT9vbN0.js +108 -0
  25. package/dist/erlang-CFOYdy9e.js +487 -0
  26. package/dist/factor-DDOC7X6P.js +65 -0
  27. package/dist/fcl-CPC2WYrI.js +103 -0
  28. package/dist/forth-BmxRyE9S.js +60 -0
  29. package/dist/fortran-9bvPyrOW.js +442 -0
  30. package/dist/framework.js +288 -29
  31. package/dist/gas-BdfkXJT_.js +183 -0
  32. package/dist/gherkin-CJuwpceU.js +34 -0
  33. package/dist/groovy-DZeT_VM-.js +146 -0
  34. package/dist/haskell-Bvt3Qq1t.js +375 -0
  35. package/dist/haxe-70NVW1pR.js +359 -0
  36. package/dist/http-D9LttvKF.js +44 -0
  37. package/dist/idl-B6TRFYjl.js +947 -0
  38. package/dist/{assets/index-BKF-A58l.js → index-BBYKbiRX.js} +79 -92
  39. package/dist/index-BDm0tcWn.js +145680 -0
  40. package/dist/{assets/index-CeeaNa4F.js → index-BDqUaIyQ.js} +136 -167
  41. package/dist/index-BdflTsg6.js +308 -0
  42. package/dist/{assets/index-CtmpJVwa.js → index-BpBTtmQ6.js} +270 -312
  43. package/dist/index-Br0y2YMn.js +58 -0
  44. package/dist/index-CIcET-ZI.js +71 -0
  45. package/dist/index-CYAMpxnu.js +341 -0
  46. package/dist/index-Cf2H7YZ1.js +98 -0
  47. package/dist/{assets/index-Bv_z_qRq.js → index-Ck055pN8.js} +121 -124
  48. package/dist/index-D-fPN3yf.js +75 -0
  49. package/dist/{assets/index-BT8o9-M5.js → index-DJOis7Nc.js} +267 -386
  50. package/dist/index-DKtQMsy4.js +538 -0
  51. package/dist/{assets/index-DMTL7O1s.js → index-DWTsz5bC.js} +570 -586
  52. package/dist/{assets/index-C7zlEJy8.js → index-DuY7BIGm.js} +229 -302
  53. package/dist/{assets/index-B1srGfDb.js → index-o6aSdNED.js} +119 -165
  54. package/dist/index-wfv8ehcx.js +249 -0
  55. package/dist/index.css +9 -18
  56. package/dist/javascript-WMWNx-Vj.js +690 -0
  57. package/dist/jinja2-DnB6dQmV.js +154 -0
  58. package/dist/julia-DpvXAuO6.js +241 -0
  59. package/dist/livescript-CanGTf8u.js +272 -0
  60. package/dist/lua-XplVlWi_.js +217 -0
  61. package/dist/mathematica-jaRHnSxC.js +35 -0
  62. package/dist/mbox-BctzC1hL.js +76 -0
  63. package/dist/mirc-CFBPAOaF.js +72 -0
  64. package/dist/mllike-BSnXJBGA.js +272 -0
  65. package/dist/modelica-vUgVs--1.js +93 -0
  66. package/dist/mscgen-Cpl0NYLN.js +104 -0
  67. package/dist/mumps-CQoS1kWX.js +25 -0
  68. package/dist/nginx-zDPm3Z74.js +89 -0
  69. package/dist/nsis-fePjrhq7.js +62 -0
  70. package/dist/ntriples-CsNjv2QF.js +79 -0
  71. package/dist/octave-C8PmmSRH.js +143 -0
  72. package/dist/oz-Ce8aN8oE.js +151 -0
  73. package/dist/pascal-De0D6mP7.js +77 -0
  74. package/dist/perl-B4bSCe1C.js +915 -0
  75. package/dist/pig-D24Z8EXi.js +54 -0
  76. package/dist/powershell-DkYVfTzP.js +249 -0
  77. package/dist/properties-Dn9wna3M.js +26 -0
  78. package/dist/protobuf-BPIjwpzm.js +49 -0
  79. package/dist/pug-BqUR2bBq.js +248 -0
  80. package/dist/puppet-nyd4dhjf.js +45 -0
  81. package/dist/python-B5QdSKoL.js +313 -0
  82. package/dist/q-DXjKs-tC.js +83 -0
  83. package/dist/r-LKEuhEGI.js +104 -0
  84. package/dist/rpm-IznJm2Xc.js +57 -0
  85. package/dist/ruby-CcYfvIk6.js +228 -0
  86. package/dist/sas-7E8yHoCW.js +105 -0
  87. package/dist/scheme-DjibxsNh.js +124 -0
  88. package/dist/shell-C0C2sNA_.js +182 -0
  89. package/dist/sieve-Bwz7vjP5.js +72 -0
  90. package/dist/simple-mode-B0dvCdAA.js +89 -0
  91. package/dist/smalltalk-Bhddl2pB.js +48 -0
  92. package/dist/solr-BNlsLglM.js +41 -0
  93. package/dist/sparql-FarWu_Gb.js +197 -0
  94. package/dist/spreadsheet-C-cy4P5N.js +49 -0
  95. package/dist/sql-mMre1Bo3.js +282 -0
  96. package/dist/stex-92raWT1r.js +129 -0
  97. package/dist/stylus-CAdqWld3.js +250 -0
  98. package/dist/swift-DSxqR9R6.js +230 -0
  99. package/dist/tcl-xfoLljhY.js +81 -0
  100. package/dist/textile-D1AWE-pc.js +295 -0
  101. package/dist/tiddlywiki-5wqsXtSk.js +155 -0
  102. package/dist/tiki-__Kn3CeS.js +181 -0
  103. package/dist/toml-BHiuTcfn.js +49 -0
  104. package/dist/troff-D2UO-fKf.js +35 -0
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/dist/ttcn-Bsa4sfRm.js +123 -0
  107. package/dist/ttcn-cfg-Bac_acMi.js +88 -0
  108. package/dist/turtle-xwJUxoPV.js +80 -0
  109. package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
  110. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  111. package/dist/vb-c2kQGd6-.js +74 -0
  112. package/dist/vbscript-Dz1TtKsy.js +324 -0
  113. package/dist/velocity-DJd0pTTC.js +96 -0
  114. package/dist/verilog-C4VGD9n1.js +263 -0
  115. package/dist/vhdl-T9HkrbI2.js +106 -0
  116. package/dist/webidl-CjfDENEo.js +155 -0
  117. package/dist/xquery-BUQdORAS.js +422 -0
  118. package/dist/yacas-C0absKBh.js +73 -0
  119. package/dist/z80-C8rPtw-0.js +61 -0
  120. package/package.json +4 -4
  121. package/ui/components/atoms/vc-widget/vc-widget.vue +2 -0
  122. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +65 -32
  123. package/dist/assets/apl-NdZ6-T1z.js +0 -142
  124. package/dist/assets/asciiarmor-CmJEbAuq.js +0 -56
  125. package/dist/assets/asn1-Ctc8K72v.js +0 -192
  126. package/dist/assets/asterisk-D6r__RMF.js +0 -187
  127. package/dist/assets/brainfuck-COwWCBpq.js +0 -70
  128. package/dist/assets/clike-C-PtfL50.js +0 -1019
  129. package/dist/assets/clojure-C2XPrGCa.js +0 -274
  130. package/dist/assets/cmake-BGrEgXCL.js +0 -81
  131. package/dist/assets/cobol-DShPmpZe.js +0 -234
  132. package/dist/assets/coffeescript-BG8vTfSz.js +0 -329
  133. package/dist/assets/commonlisp-8oE2EpEe.js +0 -108
  134. package/dist/assets/core-api-BMLS9FrT.js +0 -8288
  135. package/dist/assets/core-composables-DYxpIWyY.js +0 -1799
  136. package/dist/assets/core-constants-DiKDBbnD.js +0 -83
  137. package/dist/assets/core-directives-QhJx9kWh.js +0 -41
  138. package/dist/assets/core-interceptors-CSjUvxQ0.js +0 -78
  139. package/dist/assets/core-plugins-wv2bDZ0l.js +0 -4919
  140. package/dist/assets/core-services-CAfJRsjs.js +0 -4
  141. package/dist/assets/core-utilities-BTktq_a-.js +0 -33
  142. package/dist/assets/crystal--rIRMl16.js +0 -419
  143. package/dist/assets/css/core-directives-FL4vIIkN.css +0 -73
  144. package/dist/assets/css/fonts-M1mtyV8L.css +0 -305
  145. package/dist/assets/css/icons-css-DbCVsovz.css +0 -41
  146. package/dist/assets/css/shared-components-bnLHdCtf.css +0 -429
  147. package/dist/assets/css/shared-modules-CNOICmYQ.css +0 -45
  148. package/dist/assets/css/styles-C62nDZwV.css +0 -4096
  149. package/dist/assets/css/ui-app-Bh9hmlIB.css +0 -1287
  150. package/dist/assets/css/ui-content-B29jsmK7.css +0 -1187
  151. package/dist/assets/css/ui-controls-CRtfFczw.css +0 -387
  152. package/dist/assets/css/ui-data-CYLxfdUa.css +0 -1555
  153. package/dist/assets/css/ui-form-C3WrWfVl.css +0 -71
  154. package/dist/assets/css/ui-form-fields-DOtHhDeM.css +0 -1360
  155. package/dist/assets/css/ui-helpers-bOoNv5dS.css +0 -37
  156. package/dist/assets/css/ui-indicators-CybQnCoU.css +0 -628
  157. package/dist/assets/css/ui-layout-DyGKgizy.css +0 -251
  158. package/dist/assets/css/ui-media-TWYep8js.css +0 -298
  159. package/dist/assets/css/ui-media-advanced-BGxy3VSB.css +0 -183
  160. package/dist/assets/css/ui-navigation-DcPRn8SB.css +0 -1693
  161. package/dist/assets/css-C_ZeEwz2.js +0 -847
  162. package/dist/assets/cypher-Bayei42D.js +0 -122
  163. package/dist/assets/d-B0hhz6be.js +0 -205
  164. package/dist/assets/diff-DQutOIXs.js +0 -30
  165. package/dist/assets/dtd-C1CeYVnM.js +0 -121
  166. package/dist/assets/dylan-Dm9-uD-A.js +0 -337
  167. package/dist/assets/ebnf-jWG_1Yly.js +0 -151
  168. package/dist/assets/ecl-CgJPA6z9.js +0 -190
  169. package/dist/assets/eiffel-lj7uLahq.js +0 -146
  170. package/dist/assets/elm-Cz7o1ijk.js +0 -230
  171. package/dist/assets/erlang-CyL5QOyR.js +0 -581
  172. package/dist/assets/factor-BVWHwYpu.js +0 -65
  173. package/dist/assets/fcl-DiozYjc8.js +0 -154
  174. package/dist/assets/forth-B7vn5ze0.js +0 -164
  175. package/dist/assets/fortran-D2XNEnBT.js +0 -172
  176. package/dist/assets/gas-B_Tj57Ve.js +0 -343
  177. package/dist/assets/gherkin-CJ6Qk4EZ.js +0 -147
  178. package/dist/assets/groovy-ioGz2WSV.js +0 -228
  179. package/dist/assets/haskell-BHnm1B83.js +0 -239
  180. package/dist/assets/haxe-Bn6Yo6N3.js +0 -490
  181. package/dist/assets/http-BOd5SYCT.js +0 -89
  182. package/dist/assets/idl-FSFk8_xX.js +0 -274
  183. package/dist/assets/index--5fKpGeN.js +0 -792
  184. package/dist/assets/index-0lME64YH.js +0 -342
  185. package/dist/assets/index-B6Ip0FgO.js +0 -437
  186. package/dist/assets/index-BmV05E5M.js +0 -479
  187. package/dist/assets/index-C6MavZDA.js +0 -131
  188. package/dist/assets/index-CwKpgcYl.js +0 -85
  189. package/dist/assets/index-DRUmDL0J.js +0 -59
  190. package/dist/assets/index-DgFC-M9G.js +0 -96
  191. package/dist/assets/javascript-DGrAs70C.js +0 -922
  192. package/dist/assets/jinja2-D9k5QrXv.js +0 -171
  193. package/dist/assets/julia-DM42tOPB.js +0 -369
  194. package/dist/assets/livescript-Dci8HnOi.js +0 -259
  195. package/dist/assets/lua-CByQu4v6.js +0 -137
  196. package/dist/assets/lucide-icons-af0BY3bi.js +0 -34555
  197. package/dist/assets/mathematica-Dkv0uCYF.js +0 -153
  198. package/dist/assets/mbox-CYTvs5kC.js +0 -114
  199. package/dist/assets/mirc-DpgP3GCo.js +0 -176
  200. package/dist/assets/mllike-C6tNn2Yt.js +0 -343
  201. package/dist/assets/modelica-CR6hTSce.js +0 -192
  202. package/dist/assets/mscgen-D0GXtzMS.js +0 -149
  203. package/dist/assets/mumps-Bf1EyDa6.js +0 -129
  204. package/dist/assets/nginx-By9Phklj.js +0 -163
  205. package/dist/assets/nsis-B5ggMLQ9.js +0 -80
  206. package/dist/assets/ntriples-C7VJ7pnm.js +0 -141
  207. package/dist/assets/octave-6yR_ix15.js +0 -112
  208. package/dist/assets/oz-CEUnktiQ.js +0 -235
  209. package/dist/assets/pascal-Dksf1EyF.js +0 -124
  210. package/dist/assets/perl-B99DUQQt.js +0 -819
  211. package/dist/assets/pig-DFeDRta6.js +0 -149
  212. package/dist/assets/powershell-DhwsNWMx.js +0 -381
  213. package/dist/assets/properties-o21uErwC.js +0 -62
  214. package/dist/assets/protobuf-YxlANsmD.js +0 -54
  215. package/dist/assets/pug-bUgjeODZ.js +0 -504
  216. package/dist/assets/puppet-B8WICGYE.js +0 -205
  217. package/dist/assets/python-D3FFx1Id.js +0 -389
  218. package/dist/assets/q-D2Hjhl2C.js +0 -123
  219. package/dist/assets/r-D73k5lac.js +0 -174
  220. package/dist/assets/rpm-Duv_WH0z.js +0 -89
  221. package/dist/assets/ruby-DGCVqZDt.js +0 -287
  222. package/dist/assets/sas-XjPv1Vy5.js +0 -268
  223. package/dist/assets/scheme-DeaA28vt.js +0 -263
  224. package/dist/assets/shared-components-CfAt2hC6.js +0 -1501
  225. package/dist/assets/shared-composables-v9NkNuAe.js +0 -35
  226. package/dist/assets/shared-modules-CDP-H5ZB.js +0 -3588
  227. package/dist/assets/shared-pages-BGRRA5WB.js +0 -20
  228. package/dist/assets/shell-Bx6QZTgx.js +0 -145
  229. package/dist/assets/sieve-CWCD62sW.js +0 -178
  230. package/dist/assets/simple-mode-BAO9cD7H.js +0 -136
  231. package/dist/assets/smalltalk-DSQbF4MF.js +0 -153
  232. package/dist/assets/solr-v_XRf31C.js +0 -80
  233. package/dist/assets/sparql-BrfDqf0-.js +0 -170
  234. package/dist/assets/spreadsheet-Csn84Pef.js +0 -98
  235. package/dist/assets/sql-D4utlq1l.js +0 -480
  236. package/dist/assets/stex-DBkktma-.js +0 -246
  237. package/dist/assets/stylus-ByG-Fd6f.js +0 -750
  238. package/dist/assets/swift-CHbTprt3.js +0 -202
  239. package/dist/assets/tcl-BRlMUELr.js +0 -125
  240. package/dist/assets/textile-CqfTUjd4.js +0 -441
  241. package/dist/assets/tiddlywiki-BrsoM8KB.js +0 -278
  242. package/dist/assets/tiki-D-ivWPkc.js +0 -289
  243. package/dist/assets/toml-t_IhJu83.js +0 -75
  244. package/dist/assets/troff-DckGF2AE.js +0 -64
  245. package/dist/assets/ttcn-B8TAFbRR.js +0 -253
  246. package/dist/assets/ttcn-cfg-NHh25oCM.js +0 -197
  247. package/dist/assets/turtle-D9Js0BlL.js +0 -141
  248. package/dist/assets/ui-app-D31Pr1WY.js +0 -1993
  249. package/dist/assets/ui-content-B7SxH8y9.js +0 -52887
  250. package/dist/assets/ui-controls-nmDJYLmC.js +0 -348
  251. package/dist/assets/ui-data-Ci3b1ye0.js +0 -22901
  252. package/dist/assets/ui-form-Cs5ooOo7.js +0 -159
  253. package/dist/assets/ui-form-fields-DFQi31jT.js +0 -40575
  254. package/dist/assets/ui-helpers-CF-EUlOg.js +0 -1736
  255. package/dist/assets/ui-indicators-mIQeEqha.js +0 -199
  256. package/dist/assets/ui-layout-v2XBQky3.js +0 -320
  257. package/dist/assets/ui-media-WWYrwmZw.js +0 -1259
  258. package/dist/assets/ui-media-advanced-T8ibi153.js +0 -492
  259. package/dist/assets/ui-modals-BdZXzI85.js +0 -2
  260. package/dist/assets/ui-navigation-BtHa6ovW.js +0 -24269
  261. package/dist/assets/utils-DZK5fu48.js +0 -17216
  262. package/dist/assets/vb-CbIGLrpY.js +0 -249
  263. package/dist/assets/vbscript-8ANWle9n.js +0 -320
  264. package/dist/assets/velocity-D6hz3Hzw.js +0 -186
  265. package/dist/assets/verilog-DIV442at.js +0 -565
  266. package/dist/assets/vhdl-BlTiZo_v.js +0 -174
  267. package/dist/assets/vueuse-CTQm4Zh0.js +0 -9308
  268. package/dist/assets/webidl-Cp3tcqdk.js +0 -179
  269. package/dist/assets/xquery-Dd4TBzXv.js +0 -411
  270. package/dist/assets/yacas-DQ1WucF0.js +0 -182
  271. package/dist/assets/z80-P1j44jDI.js +0 -102
@@ -1,819 +0,0 @@
1
- // it's like "peek", but need for look-ahead or look-behind if index < 0
2
- function look(stream, c){
3
- return stream.string.charAt(stream.pos+(c||0));
4
- }
5
-
6
- // return a part of prefix of current stream from current position
7
- function prefix(stream, c){
8
- if(c){
9
- var x=stream.pos-c;
10
- return stream.string.substr((x>=0?x:0),c);}
11
- else {
12
- return stream.string.substr(0,stream.pos-1);
13
- }
14
- }
15
-
16
- // return a part of suffix of current stream from current position
17
- function suffix(stream, c){
18
- var y=stream.string.length;
19
- var x=y-stream.pos+1;
20
- return stream.string.substr(stream.pos,(c&&c<y?c:x));
21
- }
22
-
23
- // eating and vomiting a part of stream from current position
24
- function eatSuffix(stream, c){
25
- var x=stream.pos+c;
26
- var y;
27
- if(x<=0)
28
- stream.pos=0;
29
- else if(x>=(y=stream.string.length-1))
30
- stream.pos=y;
31
- else
32
- stream.pos=x;
33
- }
34
-
35
- // http://perldoc.perl.org
36
- var PERL={ // null - magic touch
37
- // 1 - keyword
38
- // 2 - def
39
- // 3 - atom
40
- // 4 - operator
41
- // 5 - builtin (predefined)
42
- // [x,y] - x=1,2,3; y=must be defined if x{...}
43
- // PERL operators
44
- '->': 4,
45
- '++': 4,
46
- '--': 4,
47
- '**': 4,
48
- // ! ~ \ and unary + and -
49
- '=~': 4,
50
- '!~': 4,
51
- '*': 4,
52
- '/': 4,
53
- '%': 4,
54
- 'x': 4,
55
- '+': 4,
56
- '-': 4,
57
- '.': 4,
58
- '<<': 4,
59
- '>>': 4,
60
- // named unary operators
61
- '<': 4,
62
- '>': 4,
63
- '<=': 4,
64
- '>=': 4,
65
- 'lt': 4,
66
- 'gt': 4,
67
- 'le': 4,
68
- 'ge': 4,
69
- '==': 4,
70
- '!=': 4,
71
- '<=>': 4,
72
- 'eq': 4,
73
- 'ne': 4,
74
- 'cmp': 4,
75
- '~~': 4,
76
- '&': 4,
77
- '|': 4,
78
- '^': 4,
79
- '&&': 4,
80
- '||': 4,
81
- '//': 4,
82
- '..': 4,
83
- '...': 4,
84
- '?': 4,
85
- ':': 4,
86
- '=': 4,
87
- '+=': 4,
88
- '-=': 4,
89
- '*=': 4, // etc. ???
90
- ',': 4,
91
- '=>': 4,
92
- '::': 4,
93
- // list operators (rightward)
94
- 'not': 4,
95
- 'and': 4,
96
- 'or': 4,
97
- 'xor': 4,
98
- // PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)
99
- 'BEGIN': [5,1],
100
- 'END': [5,1],
101
- 'PRINT': [5,1],
102
- 'PRINTF': [5,1],
103
- 'GETC': [5,1],
104
- 'READ': [5,1],
105
- 'READLINE': [5,1],
106
- 'DESTROY': [5,1],
107
- 'TIE': [5,1],
108
- 'TIEHANDLE': [5,1],
109
- 'UNTIE': [5,1],
110
- 'STDIN': 5,
111
- 'STDIN_TOP': 5,
112
- 'STDOUT': 5,
113
- 'STDOUT_TOP': 5,
114
- 'STDERR': 5,
115
- 'STDERR_TOP': 5,
116
- '$ARG': 5,
117
- '$_': 5,
118
- '@ARG': 5,
119
- '@_': 5,
120
- '$LIST_SEPARATOR': 5,
121
- '$"': 5,
122
- '$PROCESS_ID': 5,
123
- '$PID': 5,
124
- '$$': 5,
125
- '$REAL_GROUP_ID': 5,
126
- '$GID': 5,
127
- '$(': 5,
128
- '$EFFECTIVE_GROUP_ID': 5,
129
- '$EGID': 5,
130
- '$)': 5,
131
- '$PROGRAM_NAME': 5,
132
- '$0': 5,
133
- '$SUBSCRIPT_SEPARATOR': 5,
134
- '$SUBSEP': 5,
135
- '$;': 5,
136
- '$REAL_USER_ID': 5,
137
- '$UID': 5,
138
- '$<': 5,
139
- '$EFFECTIVE_USER_ID': 5,
140
- '$EUID': 5,
141
- '$>': 5,
142
- '$a': 5,
143
- '$b': 5,
144
- '$COMPILING': 5,
145
- '$^C': 5,
146
- '$DEBUGGING': 5,
147
- '$^D': 5,
148
- '${^ENCODING}': 5,
149
- '$ENV': 5,
150
- '%ENV': 5,
151
- '$SYSTEM_FD_MAX': 5,
152
- '$^F': 5,
153
- '@F': 5,
154
- '${^GLOBAL_PHASE}': 5,
155
- '$^H': 5,
156
- '%^H': 5,
157
- '@INC': 5,
158
- '%INC': 5,
159
- '$INPLACE_EDIT': 5,
160
- '$^I': 5,
161
- '$^M': 5,
162
- '$OSNAME': 5,
163
- '$^O': 5,
164
- '${^OPEN}': 5,
165
- '$PERLDB': 5,
166
- '$^P': 5,
167
- '$SIG': 5,
168
- '%SIG': 5,
169
- '$BASETIME': 5,
170
- '$^T': 5,
171
- '${^TAINT}': 5,
172
- '${^UNICODE}': 5,
173
- '${^UTF8CACHE}': 5,
174
- '${^UTF8LOCALE}': 5,
175
- '$PERL_VERSION': 5,
176
- '$^V': 5,
177
- '${^WIN32_SLOPPY_STAT}': 5,
178
- '$EXECUTABLE_NAME': 5,
179
- '$^X': 5,
180
- '$1': 5, // - regexp $1, $2...
181
- '$MATCH': 5,
182
- '$&': 5,
183
- '${^MATCH}': 5,
184
- '$PREMATCH': 5,
185
- '$`': 5,
186
- '${^PREMATCH}': 5,
187
- '$POSTMATCH': 5,
188
- "$'": 5,
189
- '${^POSTMATCH}': 5,
190
- '$LAST_PAREN_MATCH': 5,
191
- '$+': 5,
192
- '$LAST_SUBMATCH_RESULT': 5,
193
- '$^N': 5,
194
- '@LAST_MATCH_END': 5,
195
- '@+': 5,
196
- '%LAST_PAREN_MATCH': 5,
197
- '%+': 5,
198
- '@LAST_MATCH_START': 5,
199
- '@-': 5,
200
- '%LAST_MATCH_START': 5,
201
- '%-': 5,
202
- '$LAST_REGEXP_CODE_RESULT': 5,
203
- '$^R': 5,
204
- '${^RE_DEBUG_FLAGS}': 5,
205
- '${^RE_TRIE_MAXBUF}': 5,
206
- '$ARGV': 5,
207
- '@ARGV': 5,
208
- 'ARGV': 5,
209
- 'ARGVOUT': 5,
210
- '$OUTPUT_FIELD_SEPARATOR': 5,
211
- '$OFS': 5,
212
- '$,': 5,
213
- '$INPUT_LINE_NUMBER': 5,
214
- '$NR': 5,
215
- '$.': 5,
216
- '$INPUT_RECORD_SEPARATOR': 5,
217
- '$RS': 5,
218
- '$/': 5,
219
- '$OUTPUT_RECORD_SEPARATOR': 5,
220
- '$ORS': 5,
221
- '$\\': 5,
222
- '$OUTPUT_AUTOFLUSH': 5,
223
- '$|': 5,
224
- '$ACCUMULATOR': 5,
225
- '$^A': 5,
226
- '$FORMAT_FORMFEED': 5,
227
- '$^L': 5,
228
- '$FORMAT_PAGE_NUMBER': 5,
229
- '$%': 5,
230
- '$FORMAT_LINES_LEFT': 5,
231
- '$-': 5,
232
- '$FORMAT_LINE_BREAK_CHARACTERS': 5,
233
- '$:': 5,
234
- '$FORMAT_LINES_PER_PAGE': 5,
235
- '$=': 5,
236
- '$FORMAT_TOP_NAME': 5,
237
- '$^': 5,
238
- '$FORMAT_NAME': 5,
239
- '$~': 5,
240
- '${^CHILD_ERROR_NATIVE}': 5,
241
- '$EXTENDED_OS_ERROR': 5,
242
- '$^E': 5,
243
- '$EXCEPTIONS_BEING_CAUGHT': 5,
244
- '$^S': 5,
245
- '$WARNING': 5,
246
- '$^W': 5,
247
- '${^WARNING_BITS}': 5,
248
- '$OS_ERROR': 5,
249
- '$ERRNO': 5,
250
- '$!': 5,
251
- '%OS_ERROR': 5,
252
- '%ERRNO': 5,
253
- '%!': 5,
254
- '$CHILD_ERROR': 5,
255
- '$?': 5,
256
- '$EVAL_ERROR': 5,
257
- '$@': 5,
258
- '$OFMT': 5,
259
- '$#': 5,
260
- '$*': 5,
261
- '$ARRAY_BASE': 5,
262
- '$[': 5,
263
- '$OLD_PERL_VERSION': 5,
264
- '$]': 5,
265
- // PERL blocks
266
- 'if':[1,1],
267
- elsif:[1,1],
268
- 'else':[1,1],
269
- 'while':[1,1],
270
- unless:[1,1],
271
- 'for':[1,1],
272
- foreach:[1,1],
273
- // PERL functions
274
- 'abs':1, // - absolute value function
275
- accept:1, // - accept an incoming socket connect
276
- alarm:1, // - schedule a SIGALRM
277
- 'atan2':1, // - arctangent of Y/X in the range -PI to PI
278
- bind:1, // - binds an address to a socket
279
- binmode:1, // - prepare binary files for I/O
280
- bless:1, // - create an object
281
- bootstrap:1, //
282
- 'break':1, // - break out of a "given" block
283
- caller:1, // - get context of the current subroutine call
284
- chdir:1, // - change your current working directory
285
- chmod:1, // - changes the permissions on a list of files
286
- chomp:1, // - remove a trailing record separator from a string
287
- chop:1, // - remove the last character from a string
288
- chown:1, // - change the ownership on a list of files
289
- chr:1, // - get character this number represents
290
- chroot:1, // - make directory new root for path lookups
291
- close:1, // - close file (or pipe or socket) handle
292
- closedir:1, // - close directory handle
293
- connect:1, // - connect to a remote socket
294
- 'continue':[1,1], // - optional trailing block in a while or foreach
295
- 'cos':1, // - cosine function
296
- crypt:1, // - one-way passwd-style encryption
297
- dbmclose:1, // - breaks binding on a tied dbm file
298
- dbmopen:1, // - create binding on a tied dbm file
299
- 'default':1, //
300
- defined:1, // - test whether a value, variable, or function is defined
301
- 'delete':1, // - deletes a value from a hash
302
- die:1, // - raise an exception or bail out
303
- 'do':1, // - turn a BLOCK into a TERM
304
- dump:1, // - create an immediate core dump
305
- each:1, // - retrieve the next key/value pair from a hash
306
- endgrent:1, // - be done using group file
307
- endhostent:1, // - be done using hosts file
308
- endnetent:1, // - be done using networks file
309
- endprotoent:1, // - be done using protocols file
310
- endpwent:1, // - be done using passwd file
311
- endservent:1, // - be done using services file
312
- eof:1, // - test a filehandle for its end
313
- 'eval':1, // - catch exceptions or compile and run code
314
- 'exec':1, // - abandon this program to run another
315
- exists:1, // - test whether a hash key is present
316
- exit:1, // - terminate this program
317
- 'exp':1, // - raise I to a power
318
- fcntl:1, // - file control system call
319
- fileno:1, // - return file descriptor from filehandle
320
- flock:1, // - lock an entire file with an advisory lock
321
- fork:1, // - create a new process just like this one
322
- format:1, // - declare a picture format with use by the write() function
323
- formline:1, // - internal function used for formats
324
- getc:1, // - get the next character from the filehandle
325
- getgrent:1, // - get next group record
326
- getgrgid:1, // - get group record given group user ID
327
- getgrnam:1, // - get group record given group name
328
- gethostbyaddr:1, // - get host record given its address
329
- gethostbyname:1, // - get host record given name
330
- gethostent:1, // - get next hosts record
331
- getlogin:1, // - return who logged in at this tty
332
- getnetbyaddr:1, // - get network record given its address
333
- getnetbyname:1, // - get networks record given name
334
- getnetent:1, // - get next networks record
335
- getpeername:1, // - find the other end of a socket connection
336
- getpgrp:1, // - get process group
337
- getppid:1, // - get parent process ID
338
- getpriority:1, // - get current nice value
339
- getprotobyname:1, // - get protocol record given name
340
- getprotobynumber:1, // - get protocol record numeric protocol
341
- getprotoent:1, // - get next protocols record
342
- getpwent:1, // - get next passwd record
343
- getpwnam:1, // - get passwd record given user login name
344
- getpwuid:1, // - get passwd record given user ID
345
- getservbyname:1, // - get services record given its name
346
- getservbyport:1, // - get services record given numeric port
347
- getservent:1, // - get next services record
348
- getsockname:1, // - retrieve the sockaddr for a given socket
349
- getsockopt:1, // - get socket options on a given socket
350
- given:1, //
351
- glob:1, // - expand filenames using wildcards
352
- gmtime:1, // - convert UNIX time into record or string using Greenwich time
353
- 'goto':1, // - create spaghetti code
354
- grep:1, // - locate elements in a list test true against a given criterion
355
- hex:1, // - convert a string to a hexadecimal number
356
- 'import':1, // - patch a module's namespace into your own
357
- index:1, // - find a substring within a string
358
- 'int':1, // - get the integer portion of a number
359
- ioctl:1, // - system-dependent device control system call
360
- 'join':1, // - join a list into a string using a separator
361
- keys:1, // - retrieve list of indices from a hash
362
- kill:1, // - send a signal to a process or process group
363
- last:1, // - exit a block prematurely
364
- lc:1, // - return lower-case version of a string
365
- lcfirst:1, // - return a string with just the next letter in lower case
366
- length:1, // - return the number of bytes in a string
367
- 'link':1, // - create a hard link in the filesystem
368
- listen:1, // - register your socket as a server
369
- local: 2, // - create a temporary value for a global variable (dynamic scoping)
370
- localtime:1, // - convert UNIX time into record or string using local time
371
- lock:1, // - get a thread lock on a variable, subroutine, or method
372
- 'log':1, // - retrieve the natural logarithm for a number
373
- lstat:1, // - stat a symbolic link
374
- m:null, // - match a string with a regular expression pattern
375
- map:1, // - apply a change to a list to get back a new list with the changes
376
- mkdir:1, // - create a directory
377
- msgctl:1, // - SysV IPC message control operations
378
- msgget:1, // - get SysV IPC message queue
379
- msgrcv:1, // - receive a SysV IPC message from a message queue
380
- msgsnd:1, // - send a SysV IPC message to a message queue
381
- my: 2, // - declare and assign a local variable (lexical scoping)
382
- 'new':1, //
383
- next:1, // - iterate a block prematurely
384
- no:1, // - unimport some module symbols or semantics at compile time
385
- oct:1, // - convert a string to an octal number
386
- open:1, // - open a file, pipe, or descriptor
387
- opendir:1, // - open a directory
388
- ord:1, // - find a character's numeric representation
389
- our: 2, // - declare and assign a package variable (lexical scoping)
390
- pack:1, // - convert a list into a binary representation
391
- 'package':1, // - declare a separate global namespace
392
- pipe:1, // - open a pair of connected filehandles
393
- pop:1, // - remove the last element from an array and return it
394
- pos:1, // - find or set the offset for the last/next m//g search
395
- print:1, // - output a list to a filehandle
396
- printf:1, // - output a formatted list to a filehandle
397
- prototype:1, // - get the prototype (if any) of a subroutine
398
- push:1, // - append one or more elements to an array
399
- q:null, // - singly quote a string
400
- qq:null, // - doubly quote a string
401
- qr:null, // - Compile pattern
402
- quotemeta:null, // - quote regular expression magic characters
403
- qw:null, // - quote a list of words
404
- qx:null, // - backquote quote a string
405
- rand:1, // - retrieve the next pseudorandom number
406
- read:1, // - fixed-length buffered input from a filehandle
407
- readdir:1, // - get a directory from a directory handle
408
- readline:1, // - fetch a record from a file
409
- readlink:1, // - determine where a symbolic link is pointing
410
- readpipe:1, // - execute a system command and collect standard output
411
- recv:1, // - receive a message over a Socket
412
- redo:1, // - start this loop iteration over again
413
- ref:1, // - find out the type of thing being referenced
414
- rename:1, // - change a filename
415
- require:1, // - load in external functions from a library at runtime
416
- reset:1, // - clear all variables of a given name
417
- 'return':1, // - get out of a function early
418
- reverse:1, // - flip a string or a list
419
- rewinddir:1, // - reset directory handle
420
- rindex:1, // - right-to-left substring search
421
- rmdir:1, // - remove a directory
422
- s:null, // - replace a pattern with a string
423
- say:1, // - print with newline
424
- scalar:1, // - force a scalar context
425
- seek:1, // - reposition file pointer for random-access I/O
426
- seekdir:1, // - reposition directory pointer
427
- select:1, // - reset default output or do I/O multiplexing
428
- semctl:1, // - SysV semaphore control operations
429
- semget:1, // - get set of SysV semaphores
430
- semop:1, // - SysV semaphore operations
431
- send:1, // - send a message over a socket
432
- setgrent:1, // - prepare group file for use
433
- sethostent:1, // - prepare hosts file for use
434
- setnetent:1, // - prepare networks file for use
435
- setpgrp:1, // - set the process group of a process
436
- setpriority:1, // - set a process's nice value
437
- setprotoent:1, // - prepare protocols file for use
438
- setpwent:1, // - prepare passwd file for use
439
- setservent:1, // - prepare services file for use
440
- setsockopt:1, // - set some socket options
441
- shift:1, // - remove the first element of an array, and return it
442
- shmctl:1, // - SysV shared memory operations
443
- shmget:1, // - get SysV shared memory segment identifier
444
- shmread:1, // - read SysV shared memory
445
- shmwrite:1, // - write SysV shared memory
446
- shutdown:1, // - close down just half of a socket connection
447
- 'sin':1, // - return the sine of a number
448
- sleep:1, // - block for some number of seconds
449
- socket:1, // - create a socket
450
- socketpair:1, // - create a pair of sockets
451
- 'sort':1, // - sort a list of values
452
- splice:1, // - add or remove elements anywhere in an array
453
- 'split':1, // - split up a string using a regexp delimiter
454
- sprintf:1, // - formatted print into a string
455
- 'sqrt':1, // - square root function
456
- srand:1, // - seed the random number generator
457
- stat:1, // - get a file's status information
458
- state:1, // - declare and assign a state variable (persistent lexical scoping)
459
- study:1, // - optimize input data for repeated searches
460
- 'sub':1, // - declare a subroutine, possibly anonymously
461
- 'substr':1, // - get or alter a portion of a string
462
- symlink:1, // - create a symbolic link to a file
463
- syscall:1, // - execute an arbitrary system call
464
- sysopen:1, // - open a file, pipe, or descriptor
465
- sysread:1, // - fixed-length unbuffered input from a filehandle
466
- sysseek:1, // - position I/O pointer on handle used with sysread and syswrite
467
- system:1, // - run a separate program
468
- syswrite:1, // - fixed-length unbuffered output to a filehandle
469
- tell:1, // - get current seekpointer on a filehandle
470
- telldir:1, // - get current seekpointer on a directory handle
471
- tie:1, // - bind a variable to an object class
472
- tied:1, // - get a reference to the object underlying a tied variable
473
- time:1, // - return number of seconds since 1970
474
- times:1, // - return elapsed time for self and child processes
475
- tr:null, // - transliterate a string
476
- truncate:1, // - shorten a file
477
- uc:1, // - return upper-case version of a string
478
- ucfirst:1, // - return a string with just the next letter in upper case
479
- umask:1, // - set file creation mode mask
480
- undef:1, // - remove a variable or function definition
481
- unlink:1, // - remove one link to a file
482
- unpack:1, // - convert binary structure into normal perl variables
483
- unshift:1, // - prepend more elements to the beginning of a list
484
- untie:1, // - break a tie binding to a variable
485
- use:1, // - load in a module at compile time
486
- utime:1, // - set a file's last access and modify times
487
- values:1, // - return a list of the values in a hash
488
- vec:1, // - test or set particular bits in a string
489
- wait:1, // - wait for any child process to die
490
- waitpid:1, // - wait for a particular child process to die
491
- wantarray:1, // - get void vs scalar vs list context of current subroutine call
492
- warn:1, // - print debugging info
493
- when:1, //
494
- write:1, // - print a picture record
495
- y:null}; // - transliterate a string
496
-
497
- var RXstyle="string.special";
498
- var RXmodifiers=/[goseximacplud]/; // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type
499
-
500
- function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)
501
- state.chain=null; // 12 3tail
502
- state.style=null;
503
- state.tail=null;
504
- state.tokenize=function(stream,state){
505
- var e=false,c,i=0;
506
- while(c=stream.next()){
507
- if(c===chain[i]&&!e){
508
- if(chain[++i]!==undefined){
509
- state.chain=chain[i];
510
- state.style=style;
511
- state.tail=tail;}
512
- else if(tail)
513
- stream.eatWhile(tail);
514
- state.tokenize=tokenPerl;
515
- return style;}
516
- e=!e&&c=="\\";}
517
- return style;};
518
- return state.tokenize(stream,state);}
519
-
520
- function tokenSOMETHING(stream,state,string){
521
- state.tokenize=function(stream,state){
522
- if(stream.string==string)
523
- state.tokenize=tokenPerl;
524
- stream.skipToEnd();
525
- return "string";};
526
- return state.tokenize(stream,state);}
527
-
528
- function tokenPerl(stream,state){
529
- if(stream.eatSpace())
530
- return null;
531
- if(state.chain)
532
- return tokenChain(stream,state,state.chain,state.style,state.tail);
533
- if(stream.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))
534
- return 'number';
535
- if(stream.match(/^<<(?=[_a-zA-Z])/)){ // NOTE: <<SOMETHING\n...\nSOMETHING\n
536
- stream.eatWhile(/\w/);
537
- return tokenSOMETHING(stream,state,stream.current().substr(2));}
538
- if(stream.sol()&&stream.match(/^\=item(?!\w)/)){// NOTE: \n=item...\n=cut\n
539
- return tokenSOMETHING(stream,state,'=cut');}
540
- var ch=stream.next();
541
- if(ch=='"'||ch=="'"){ // NOTE: ' or " or <<'SOMETHING'\n...\nSOMETHING\n or <<"SOMETHING"\n...\nSOMETHING\n
542
- if(prefix(stream, 3)=="<<"+ch){
543
- var p=stream.pos;
544
- stream.eatWhile(/\w/);
545
- var n=stream.current().substr(1);
546
- if(n&&stream.eat(ch))
547
- return tokenSOMETHING(stream,state,n);
548
- stream.pos=p;}
549
- return tokenChain(stream,state,[ch],"string");}
550
- if(ch=="q"){
551
- var c=look(stream, -2);
552
- if(!(c&&/\w/.test(c))){
553
- c=look(stream, 0);
554
- if(c=="x"){
555
- c=look(stream, 1);
556
- if(c=="("){
557
- eatSuffix(stream, 2);
558
- return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
559
- if(c=="["){
560
- eatSuffix(stream, 2);
561
- return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
562
- if(c=="{"){
563
- eatSuffix(stream, 2);
564
- return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
565
- if(c=="<"){
566
- eatSuffix(stream, 2);
567
- return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
568
- if(/[\^'"!~\/]/.test(c)){
569
- eatSuffix(stream, 1);
570
- return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
571
- else if(c=="q"){
572
- c=look(stream, 1);
573
- if(c=="("){
574
- eatSuffix(stream, 2);
575
- return tokenChain(stream,state,[")"],"string");}
576
- if(c=="["){
577
- eatSuffix(stream, 2);
578
- return tokenChain(stream,state,["]"],"string");}
579
- if(c=="{"){
580
- eatSuffix(stream, 2);
581
- return tokenChain(stream,state,["}"],"string");}
582
- if(c=="<"){
583
- eatSuffix(stream, 2);
584
- return tokenChain(stream,state,[">"],"string");}
585
- if(/[\^'"!~\/]/.test(c)){
586
- eatSuffix(stream, 1);
587
- return tokenChain(stream,state,[stream.eat(c)],"string");}}
588
- else if(c=="w"){
589
- c=look(stream, 1);
590
- if(c=="("){
591
- eatSuffix(stream, 2);
592
- return tokenChain(stream,state,[")"],"bracket");}
593
- if(c=="["){
594
- eatSuffix(stream, 2);
595
- return tokenChain(stream,state,["]"],"bracket");}
596
- if(c=="{"){
597
- eatSuffix(stream, 2);
598
- return tokenChain(stream,state,["}"],"bracket");}
599
- if(c=="<"){
600
- eatSuffix(stream, 2);
601
- return tokenChain(stream,state,[">"],"bracket");}
602
- if(/[\^'"!~\/]/.test(c)){
603
- eatSuffix(stream, 1);
604
- return tokenChain(stream,state,[stream.eat(c)],"bracket");}}
605
- else if(c=="r"){
606
- c=look(stream, 1);
607
- if(c=="("){
608
- eatSuffix(stream, 2);
609
- return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
610
- if(c=="["){
611
- eatSuffix(stream, 2);
612
- return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
613
- if(c=="{"){
614
- eatSuffix(stream, 2);
615
- return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
616
- if(c=="<"){
617
- eatSuffix(stream, 2);
618
- return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
619
- if(/[\^'"!~\/]/.test(c)){
620
- eatSuffix(stream, 1);
621
- return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
622
- else if(/[\^'"!~\/(\[{<]/.test(c)){
623
- if(c=="("){
624
- eatSuffix(stream, 1);
625
- return tokenChain(stream,state,[")"],"string");}
626
- if(c=="["){
627
- eatSuffix(stream, 1);
628
- return tokenChain(stream,state,["]"],"string");}
629
- if(c=="{"){
630
- eatSuffix(stream, 1);
631
- return tokenChain(stream,state,["}"],"string");}
632
- if(c=="<"){
633
- eatSuffix(stream, 1);
634
- return tokenChain(stream,state,[">"],"string");}
635
- if(/[\^'"!~\/]/.test(c)){
636
- return tokenChain(stream,state,[stream.eat(c)],"string");}}}}
637
- if(ch=="m"){
638
- var c=look(stream, -2);
639
- if(!(c&&/\w/.test(c))){
640
- c=stream.eat(/[(\[{<\^'"!~\/]/);
641
- if(c){
642
- if(/[\^'"!~\/]/.test(c)){
643
- return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}
644
- if(c=="("){
645
- return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
646
- if(c=="["){
647
- return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
648
- if(c=="{"){
649
- return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
650
- if(c=="<"){
651
- return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}}
652
- if(ch=="s"){
653
- var c=/[\/>\]})\w]/.test(look(stream, -2));
654
- if(!c){
655
- c=stream.eat(/[(\[{<\^'"!~\/]/);
656
- if(c){
657
- if(c=="[")
658
- return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
659
- if(c=="{")
660
- return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
661
- if(c=="<")
662
- return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
663
- if(c=="(")
664
- return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
665
- return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
666
- if(ch=="y"){
667
- var c=/[\/>\]})\w]/.test(look(stream, -2));
668
- if(!c){
669
- c=stream.eat(/[(\[{<\^'"!~\/]/);
670
- if(c){
671
- if(c=="[")
672
- return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
673
- if(c=="{")
674
- return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
675
- if(c=="<")
676
- return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
677
- if(c=="(")
678
- return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
679
- return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
680
- if(ch=="t"){
681
- var c=/[\/>\]})\w]/.test(look(stream, -2));
682
- if(!c){
683
- c=stream.eat("r");if(c){
684
- c=stream.eat(/[(\[{<\^'"!~\/]/);
685
- if(c){
686
- if(c=="[")
687
- return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
688
- if(c=="{")
689
- return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
690
- if(c=="<")
691
- return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
692
- if(c=="(")
693
- return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
694
- return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}
695
- if(ch=="`"){
696
- return tokenChain(stream,state,[ch],"builtin");}
697
- if(ch=="/"){
698
- if(!/~\s*$/.test(prefix(stream)))
699
- return "operator";
700
- else
701
- return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}
702
- if(ch=="$"){
703
- var p=stream.pos;
704
- if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}"))
705
- return "builtin";
706
- else
707
- stream.pos=p;}
708
- if(/[$@%]/.test(ch)){
709
- var p=stream.pos;
710
- if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){
711
- var c=stream.current();
712
- if(PERL[c])
713
- return "builtin";}
714
- stream.pos=p;}
715
- if(/[$@%&]/.test(ch)){
716
- if(stream.eatWhile(/[\w$]/)||stream.eat("{")&&stream.eatWhile(/[\w$]/)&&stream.eat("}")){
717
- var c=stream.current();
718
- if(PERL[c])
719
- return "builtin";
720
- else
721
- return "variable";}}
722
- if(ch=="#"){
723
- if(look(stream, -2)!="$"){
724
- stream.skipToEnd();
725
- return "comment";}}
726
- if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){
727
- var p=stream.pos;
728
- stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/);
729
- if(PERL[stream.current()])
730
- return "operator";
731
- else
732
- stream.pos=p;}
733
- if(ch=="_"){
734
- if(stream.pos==1){
735
- if(suffix(stream, 6)=="_END__"){
736
- return tokenChain(stream,state,['\0'],"comment");}
737
- else if(suffix(stream, 7)=="_DATA__"){
738
- return tokenChain(stream,state,['\0'],"builtin");}
739
- else if(suffix(stream, 7)=="_C__"){
740
- return tokenChain(stream,state,['\0'],"string");}}}
741
- if(/\w/.test(ch)){
742
- var p=stream.pos;
743
- if(look(stream, -2)=="{"&&(look(stream, 0)=="}"||stream.eatWhile(/\w/)&&look(stream, 0)=="}"))
744
- return "string";
745
- else
746
- stream.pos=p;}
747
- if(/[A-Z]/.test(ch)){
748
- var l=look(stream, -2);
749
- var p=stream.pos;
750
- stream.eatWhile(/[A-Z_]/);
751
- if(/[\da-z]/.test(look(stream, 0))){
752
- stream.pos=p;}
753
- else {
754
- var c=PERL[stream.current()];
755
- if(!c)
756
- return "meta";
757
- if(c[1])
758
- c=c[0];
759
- if(l!=":"){
760
- if(c==1)
761
- return "keyword";
762
- else if(c==2)
763
- return "def";
764
- else if(c==3)
765
- return "atom";
766
- else if(c==4)
767
- return "operator";
768
- else if(c==5)
769
- return "builtin";
770
- else
771
- return "meta";}
772
- else
773
- return "meta";}}
774
- if(/[a-zA-Z_]/.test(ch)){
775
- var l=look(stream, -2);
776
- stream.eatWhile(/\w/);
777
- var c=PERL[stream.current()];
778
- if(!c)
779
- return "meta";
780
- if(c[1])
781
- c=c[0];
782
- if(l!=":"){
783
- if(c==1)
784
- return "keyword";
785
- else if(c==2)
786
- return "def";
787
- else if(c==3)
788
- return "atom";
789
- else if(c==4)
790
- return "operator";
791
- else if(c==5)
792
- return "builtin";
793
- else
794
- return "meta";}
795
- else
796
- return "meta";}
797
- return null;}
798
-
799
- const perl = {
800
- name: "perl",
801
-
802
- startState: function() {
803
- return {
804
- tokenize: tokenPerl,
805
- chain: null,
806
- style: null,
807
- tail: null
808
- };
809
- },
810
- token: function(stream, state) {
811
- return (state.tokenize || tokenPerl)(stream, state);
812
- },
813
- languageData: {
814
- commentTokens: {line: "#"},
815
- wordChars: "$"
816
- }
817
- };
818
-
819
- export { perl };