zs_library 0.4.7 → 0.4.8

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