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