online-compiler-widget 0.0.4 → 1.0.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 (161) hide show
  1. package/dist/abap-CrvW7_qN.js +1398 -0
  2. package/dist/apex-BAOI8p1v.js +327 -0
  3. package/dist/assets/css.worker-Cb0JI69t.js +93 -0
  4. package/dist/assets/html.worker-BNFZMwEc.js +470 -0
  5. package/dist/assets/json.worker-BCybXpia.js +58 -0
  6. package/dist/assets/ts.worker-DAVh1bw1.js +67731 -0
  7. package/dist/azcli-BlCk_UqW.js +68 -0
  8. package/dist/bat-DPoEelVx.js +100 -0
  9. package/dist/bicep-Cp1F394l.js +102 -0
  10. package/dist/cameligo-CWqtSlQs.js +174 -0
  11. package/dist/clojure-CKBp32Gf.js +761 -0
  12. package/dist/coffee-CDo6vc-J.js +232 -0
  13. package/dist/cpp-DokufPgf.js +389 -0
  14. package/dist/csharp-BQi3szM0.js +326 -0
  15. package/dist/csp-BSGtCCZ-.js +53 -0
  16. package/dist/css-DEPFDJfb.js +187 -0
  17. package/dist/cssMode-nHrB9Mnr.js +141 -0
  18. package/dist/cypher-DAb1vOxS.js +263 -0
  19. package/dist/dart-C8p4jewR.js +281 -0
  20. package/dist/dockerfile-DP0iLFPN.js +130 -0
  21. package/dist/ecl-BDQHA6fi.js +456 -0
  22. package/dist/elixir-D4II6kDM.js +569 -0
  23. package/dist/flow9-StcnL-VB.js +142 -0
  24. package/dist/freemarker2-BoiXdkJM.js +982 -0
  25. package/dist/fsharp-DdUVp3EN.js +217 -0
  26. package/dist/go-D1-I258M.js +218 -0
  27. package/dist/graphql-DWkL3f8U.js +151 -0
  28. package/dist/handlebars-C7PJzkmo.js +412 -0
  29. package/dist/hcl-D_0MNifv.js +183 -0
  30. package/dist/html-D_xe_tUa.js +301 -0
  31. package/dist/htmlMode-Dk_luXu_.js +152 -0
  32. package/dist/index-Ds0EJmOd.js +129200 -0
  33. package/dist/index.js +14 -0
  34. package/dist/ini-C4I2-MT7.js +71 -0
  35. package/dist/java-OBvaP_SS.js +232 -0
  36. package/dist/javascript-CUK67ITD.js +70 -0
  37. package/dist/jsonMode-BIAYTpVF.js +569 -0
  38. package/dist/julia-BmDH8Kkf.js +511 -0
  39. package/dist/kotlin-Dhu5AGOD.js +252 -0
  40. package/dist/less-CzmjXREq.js +162 -0
  41. package/dist/lexon-CV2c4pN9.js +157 -0
  42. package/dist/liquid-Cgsk8EmK.js +233 -0
  43. package/dist/lspLanguageFeatures-HqO1l9Me.js +1458 -0
  44. package/dist/lua-CFY5U8qF.js +162 -0
  45. package/dist/m3-BL_AnZVh.js +210 -0
  46. package/dist/markdown-CWKQPXCv.js +229 -0
  47. package/dist/mdx-QboWmT4M.js +158 -0
  48. package/dist/mips-ButYmJ5E.js +198 -0
  49. package/dist/msdax-C3cnXqDh.js +375 -0
  50. package/dist/mysql-YlSHaf6G.js +878 -0
  51. package/dist/objective-c-Dwnlproe.js +183 -0
  52. package/dist/pascal-UzGbSWEN.js +251 -0
  53. package/dist/pascaligo-CslTgu68.js +164 -0
  54. package/dist/perl-oj6r_mgw.js +626 -0
  55. package/dist/pgsql-DSBO0Mev.js +851 -0
  56. package/dist/php-YzCD--7j.js +500 -0
  57. package/dist/pla-CmylB8vQ.js +137 -0
  58. package/dist/postiats-CLFW5gNY.js +907 -0
  59. package/dist/powerquery-CmOWUvlh.js +890 -0
  60. package/dist/powershell-fHQcmBLK.js +239 -0
  61. package/dist/protobuf-p5BArb-9.js +420 -0
  62. package/dist/pug-gVdUDvqf.js +402 -0
  63. package/dist/python-kIZaMFF7.js +294 -0
  64. package/dist/qsharp-DnrWSUlt.js +301 -0
  65. package/dist/r-Cv309K2z.js +243 -0
  66. package/dist/razor-ms2cCMGp.js +543 -0
  67. package/dist/redis-DTcS4wMj.js +302 -0
  68. package/dist/redshift-hLxZVESM.js +809 -0
  69. package/dist/restructuredtext-C898lK4f.js +174 -0
  70. package/dist/ruby-CgKtnJIQ.js +511 -0
  71. package/dist/rust-bj8oxVnh.js +343 -0
  72. package/dist/sb-DWynz26l.js +115 -0
  73. package/dist/scala-BL5z1UEd.js +370 -0
  74. package/dist/scheme-DUJsH6VU.js +108 -0
  75. package/dist/scss-CxjmhvaL.js +262 -0
  76. package/dist/shell-D14Zs1dF.js +221 -0
  77. package/dist/solidity-WyRm-BGK.js +1367 -0
  78. package/dist/sophia-CKk-_Oa5.js +199 -0
  79. package/dist/sparql-DHtmINMZ.js +201 -0
  80. package/dist/sql-Dqaj5JHC.js +853 -0
  81. package/dist/st-Bj2IIaop.js +416 -0
  82. package/dist/style.css +1 -0
  83. package/dist/swift-DwxP72iM.js +312 -0
  84. package/dist/systemverilog-D7wJfuql.js +576 -0
  85. package/dist/tcl-0ApMt-eC.js +232 -0
  86. package/dist/tsMode-BiXWAJYS.js +946 -0
  87. package/dist/twig-DxwbdmvQ.js +392 -0
  88. package/dist/typescript-ByMmjZ38.js +336 -0
  89. package/dist/typespec-Fd-JwSuS.js +117 -0
  90. package/dist/vb-CxuyYE1I.js +372 -0
  91. package/dist/wgsl-DoEGc31J.js +439 -0
  92. package/dist/xml-iOXTZgNN.js +88 -0
  93. package/dist/yaml-RRlyy-QW.js +199 -0
  94. package/package.json +41 -36
  95. package/FileStorage/obj/FileStorage.csproj.EntityFrameworkCore.targets +0 -28
  96. package/README.md +0 -1
  97. package/eslint.config.js +0 -26
  98. package/index.html +0 -13
  99. package/index.tsx +0 -3
  100. package/openapitools.json +0 -7
  101. package/pnpm-workspace.yaml +0 -2
  102. package/public/vite.svg +0 -1
  103. package/src/App.css +0 -49
  104. package/src/App.tsx +0 -84
  105. package/src/api/.openapi-generator/FILES +0 -25
  106. package/src/api/.openapi-generator/VERSION +0 -1
  107. package/src/api/.openapi-generator-ignore +0 -23
  108. package/src/api/api.ts +0 -1312
  109. package/src/api/base.ts +0 -62
  110. package/src/api/common.ts +0 -113
  111. package/src/api/configuration.ts +0 -121
  112. package/src/api/docs/CompilationError.md +0 -26
  113. package/src/api/docs/CompileRequest.md +0 -22
  114. package/src/api/docs/CompileResult.md +0 -28
  115. package/src/api/docs/CompilerApi.md +0 -263
  116. package/src/api/docs/CreateFileDto.md +0 -22
  117. package/src/api/docs/CreateProjectRequest.md +0 -20
  118. package/src/api/docs/FileApi.md +0 -274
  119. package/src/api/docs/ProcessStatus.md +0 -28
  120. package/src/api/docs/ProjectApi.md +0 -362
  121. package/src/api/docs/ProjectInfo.md +0 -24
  122. package/src/api/docs/ProjectStats.md +0 -28
  123. package/src/api/docs/RenameFileDto.md +0 -20
  124. package/src/api/docs/RenameProjectRequest.md +0 -20
  125. package/src/api/docs/RunRequest.md +0 -24
  126. package/src/api/docs/RunResult.md +0 -30
  127. package/src/api/docs/RunningProjectInfo.md +0 -26
  128. package/src/api/docs/UpdateFileDto.md +0 -20
  129. package/src/api/git_push.sh +0 -57
  130. package/src/api/index.ts +0 -18
  131. package/src/assets/Badge.svg +0 -17
  132. package/src/assets/closeIcon.svg +0 -20
  133. package/src/assets/documentIcon.svg +0 -11
  134. package/src/assets/history.svg +0 -11
  135. package/src/assets/output.svg +0 -12
  136. package/src/assets/plus.svg +0 -20
  137. package/src/assets/react.svg +0 -1
  138. package/src/assets/save-icon.svg +0 -11
  139. package/src/assets/shield.svg +0 -10
  140. package/src/assets/start.svg +0 -11
  141. package/src/assets/stop.svg +0 -11
  142. package/src/components/CompilerWidget.module.scss +0 -169
  143. package/src/components/CompilerWidget.tsx +0 -331
  144. package/src/components/FileExplorer.module.scss +0 -372
  145. package/src/components/FileExplorer.tsx +0 -285
  146. package/src/components/MonacoEditorWrapper.module.scss +0 -29
  147. package/src/components/MonacoEditorWrapper.tsx +0 -74
  148. package/src/components/OutputPanel.module.scss +0 -123
  149. package/src/components/OutputPanel.tsx +0 -53
  150. package/src/components/RunContainer.module.scss +0 -150
  151. package/src/components/RunContainer.tsx +0 -34
  152. package/src/hooks/useCompiler.ts +0 -228
  153. package/src/hooks/useInitialNodes.ts +0 -0
  154. package/src/index.css +0 -78
  155. package/src/main.tsx +0 -8
  156. package/src/types/EditorDocument.ts +0 -8
  157. package/swagger.json +0 -1020
  158. package/tsconfig.app.json +0 -29
  159. package/tsconfig.json +0 -7
  160. package/tsconfig.node.json +0 -26
  161. package/vite.config.ts +0 -8
@@ -0,0 +1,626 @@
1
+ const e = {
2
+ comments: {
3
+ lineComment: "#"
4
+ },
5
+ brackets: [
6
+ ["{", "}"],
7
+ ["[", "]"],
8
+ ["(", ")"]
9
+ ],
10
+ autoClosingPairs: [
11
+ { open: "{", close: "}" },
12
+ { open: "[", close: "]" },
13
+ { open: "(", close: ")" },
14
+ { open: '"', close: '"' },
15
+ { open: "'", close: "'" },
16
+ { open: "`", close: "`" }
17
+ ],
18
+ surroundingPairs: [
19
+ { open: "{", close: "}" },
20
+ { open: "[", close: "]" },
21
+ { open: "(", close: ")" },
22
+ { open: '"', close: '"' },
23
+ { open: "'", close: "'" },
24
+ { open: "`", close: "`" }
25
+ ]
26
+ }, t = {
27
+ defaultToken: "",
28
+ tokenPostfix: ".perl",
29
+ brackets: [
30
+ { token: "delimiter.bracket", open: "{", close: "}" },
31
+ { token: "delimiter.parenthesis", open: "(", close: ")" },
32
+ { token: "delimiter.square", open: "[", close: "]" }
33
+ ],
34
+ // https://learn.perl.org/docs/keywords.html
35
+ // Perl syntax
36
+ keywords: [
37
+ "__DATA__",
38
+ "else",
39
+ "lock",
40
+ "__END__",
41
+ "elsif",
42
+ "lt",
43
+ "__FILE__",
44
+ "eq",
45
+ "__LINE__",
46
+ "exp",
47
+ "ne",
48
+ "sub",
49
+ "__PACKAGE__",
50
+ "for",
51
+ "no",
52
+ "and",
53
+ "foreach",
54
+ "or",
55
+ "unless",
56
+ "cmp",
57
+ "ge",
58
+ "package",
59
+ "until",
60
+ "continue",
61
+ "gt",
62
+ "while",
63
+ "CORE",
64
+ "if",
65
+ "xor",
66
+ "do",
67
+ "le",
68
+ "__DIE__",
69
+ "__WARN__"
70
+ ],
71
+ // Perl functions
72
+ builtinFunctions: [
73
+ "-A",
74
+ "END",
75
+ "length",
76
+ "setpgrp",
77
+ "-B",
78
+ "endgrent",
79
+ "link",
80
+ "setpriority",
81
+ "-b",
82
+ "endhostent",
83
+ "listen",
84
+ "setprotoent",
85
+ "-C",
86
+ "endnetent",
87
+ "local",
88
+ "setpwent",
89
+ "-c",
90
+ "endprotoent",
91
+ "localtime",
92
+ "setservent",
93
+ "-d",
94
+ "endpwent",
95
+ "log",
96
+ "setsockopt",
97
+ "-e",
98
+ "endservent",
99
+ "lstat",
100
+ "shift",
101
+ "-f",
102
+ "eof",
103
+ "map",
104
+ "shmctl",
105
+ "-g",
106
+ "eval",
107
+ "mkdir",
108
+ "shmget",
109
+ "-k",
110
+ "exec",
111
+ "msgctl",
112
+ "shmread",
113
+ "-l",
114
+ "exists",
115
+ "msgget",
116
+ "shmwrite",
117
+ "-M",
118
+ "exit",
119
+ "msgrcv",
120
+ "shutdown",
121
+ "-O",
122
+ "fcntl",
123
+ "msgsnd",
124
+ "sin",
125
+ "-o",
126
+ "fileno",
127
+ "my",
128
+ "sleep",
129
+ "-p",
130
+ "flock",
131
+ "next",
132
+ "socket",
133
+ "-r",
134
+ "fork",
135
+ "not",
136
+ "socketpair",
137
+ "-R",
138
+ "format",
139
+ "oct",
140
+ "sort",
141
+ "-S",
142
+ "formline",
143
+ "open",
144
+ "splice",
145
+ "-s",
146
+ "getc",
147
+ "opendir",
148
+ "split",
149
+ "-T",
150
+ "getgrent",
151
+ "ord",
152
+ "sprintf",
153
+ "-t",
154
+ "getgrgid",
155
+ "our",
156
+ "sqrt",
157
+ "-u",
158
+ "getgrnam",
159
+ "pack",
160
+ "srand",
161
+ "-w",
162
+ "gethostbyaddr",
163
+ "pipe",
164
+ "stat",
165
+ "-W",
166
+ "gethostbyname",
167
+ "pop",
168
+ "state",
169
+ "-X",
170
+ "gethostent",
171
+ "pos",
172
+ "study",
173
+ "-x",
174
+ "getlogin",
175
+ "print",
176
+ "substr",
177
+ "-z",
178
+ "getnetbyaddr",
179
+ "printf",
180
+ "symlink",
181
+ "abs",
182
+ "getnetbyname",
183
+ "prototype",
184
+ "syscall",
185
+ "accept",
186
+ "getnetent",
187
+ "push",
188
+ "sysopen",
189
+ "alarm",
190
+ "getpeername",
191
+ "quotemeta",
192
+ "sysread",
193
+ "atan2",
194
+ "getpgrp",
195
+ "rand",
196
+ "sysseek",
197
+ "AUTOLOAD",
198
+ "getppid",
199
+ "read",
200
+ "system",
201
+ "BEGIN",
202
+ "getpriority",
203
+ "readdir",
204
+ "syswrite",
205
+ "bind",
206
+ "getprotobyname",
207
+ "readline",
208
+ "tell",
209
+ "binmode",
210
+ "getprotobynumber",
211
+ "readlink",
212
+ "telldir",
213
+ "bless",
214
+ "getprotoent",
215
+ "readpipe",
216
+ "tie",
217
+ "break",
218
+ "getpwent",
219
+ "recv",
220
+ "tied",
221
+ "caller",
222
+ "getpwnam",
223
+ "redo",
224
+ "time",
225
+ "chdir",
226
+ "getpwuid",
227
+ "ref",
228
+ "times",
229
+ "CHECK",
230
+ "getservbyname",
231
+ "rename",
232
+ "truncate",
233
+ "chmod",
234
+ "getservbyport",
235
+ "require",
236
+ "uc",
237
+ "chomp",
238
+ "getservent",
239
+ "reset",
240
+ "ucfirst",
241
+ "chop",
242
+ "getsockname",
243
+ "return",
244
+ "umask",
245
+ "chown",
246
+ "getsockopt",
247
+ "reverse",
248
+ "undef",
249
+ "chr",
250
+ "glob",
251
+ "rewinddir",
252
+ "UNITCHECK",
253
+ "chroot",
254
+ "gmtime",
255
+ "rindex",
256
+ "unlink",
257
+ "close",
258
+ "goto",
259
+ "rmdir",
260
+ "unpack",
261
+ "closedir",
262
+ "grep",
263
+ "say",
264
+ "unshift",
265
+ "connect",
266
+ "hex",
267
+ "scalar",
268
+ "untie",
269
+ "cos",
270
+ "index",
271
+ "seek",
272
+ "use",
273
+ "crypt",
274
+ "INIT",
275
+ "seekdir",
276
+ "utime",
277
+ "dbmclose",
278
+ "int",
279
+ "select",
280
+ "values",
281
+ "dbmopen",
282
+ "ioctl",
283
+ "semctl",
284
+ "vec",
285
+ "defined",
286
+ "join",
287
+ "semget",
288
+ "wait",
289
+ "delete",
290
+ "keys",
291
+ "semop",
292
+ "waitpid",
293
+ "DESTROY",
294
+ "kill",
295
+ "send",
296
+ "wantarray",
297
+ "die",
298
+ "last",
299
+ "setgrent",
300
+ "warn",
301
+ "dump",
302
+ "lc",
303
+ "sethostent",
304
+ "write",
305
+ "each",
306
+ "lcfirst",
307
+ "setnetent"
308
+ ],
309
+ // File handlers
310
+ builtinFileHandlers: ["ARGV", "STDERR", "STDOUT", "ARGVOUT", "STDIN", "ENV"],
311
+ // Perl variables
312
+ builtinVariables: [
313
+ "$!",
314
+ "$^RE_TRIE_MAXBUF",
315
+ "$LAST_REGEXP_CODE_RESULT",
316
+ '$"',
317
+ "$^S",
318
+ "$LIST_SEPARATOR",
319
+ "$#",
320
+ "$^T",
321
+ "$MATCH",
322
+ "$$",
323
+ "$^TAINT",
324
+ "$MULTILINE_MATCHING",
325
+ "$%",
326
+ "$^UNICODE",
327
+ "$NR",
328
+ "$&",
329
+ "$^UTF8LOCALE",
330
+ "$OFMT",
331
+ "$'",
332
+ "$^V",
333
+ "$OFS",
334
+ "$(",
335
+ "$^W",
336
+ "$ORS",
337
+ "$)",
338
+ "$^WARNING_BITS",
339
+ "$OS_ERROR",
340
+ "$*",
341
+ "$^WIDE_SYSTEM_CALLS",
342
+ "$OSNAME",
343
+ "$+",
344
+ "$^X",
345
+ "$OUTPUT_AUTO_FLUSH",
346
+ "$,",
347
+ "$_",
348
+ "$OUTPUT_FIELD_SEPARATOR",
349
+ "$-",
350
+ "$`",
351
+ "$OUTPUT_RECORD_SEPARATOR",
352
+ "$.",
353
+ "$a",
354
+ "$PERL_VERSION",
355
+ "$/",
356
+ "$ACCUMULATOR",
357
+ "$PERLDB",
358
+ "$0",
359
+ "$ARG",
360
+ "$PID",
361
+ "$:",
362
+ "$ARGV",
363
+ "$POSTMATCH",
364
+ "$;",
365
+ "$b",
366
+ "$PREMATCH",
367
+ "$<",
368
+ "$BASETIME",
369
+ "$PROCESS_ID",
370
+ "$=",
371
+ "$CHILD_ERROR",
372
+ "$PROGRAM_NAME",
373
+ "$>",
374
+ "$COMPILING",
375
+ "$REAL_GROUP_ID",
376
+ "$?",
377
+ "$DEBUGGING",
378
+ "$REAL_USER_ID",
379
+ "$@",
380
+ "$EFFECTIVE_GROUP_ID",
381
+ "$RS",
382
+ "$[",
383
+ "$EFFECTIVE_USER_ID",
384
+ "$SUBSCRIPT_SEPARATOR",
385
+ "$\\",
386
+ "$EGID",
387
+ "$SUBSEP",
388
+ "$]",
389
+ "$ERRNO",
390
+ "$SYSTEM_FD_MAX",
391
+ "$^",
392
+ "$EUID",
393
+ "$UID",
394
+ "$^A",
395
+ "$EVAL_ERROR",
396
+ "$WARNING",
397
+ "$^C",
398
+ "$EXCEPTIONS_BEING_CAUGHT",
399
+ "$|",
400
+ "$^CHILD_ERROR_NATIVE",
401
+ "$EXECUTABLE_NAME",
402
+ "$~",
403
+ "$^D",
404
+ "$EXTENDED_OS_ERROR",
405
+ "%!",
406
+ "$^E",
407
+ "$FORMAT_FORMFEED",
408
+ "%^H",
409
+ "$^ENCODING",
410
+ "$FORMAT_LINE_BREAK_CHARACTERS",
411
+ "%ENV",
412
+ "$^F",
413
+ "$FORMAT_LINES_LEFT",
414
+ "%INC",
415
+ "$^H",
416
+ "$FORMAT_LINES_PER_PAGE",
417
+ "%OVERLOAD",
418
+ "$^I",
419
+ "$FORMAT_NAME",
420
+ "%SIG",
421
+ "$^L",
422
+ "$FORMAT_PAGE_NUMBER",
423
+ "@+",
424
+ "$^M",
425
+ "$FORMAT_TOP_NAME",
426
+ "@-",
427
+ "$^N",
428
+ "$GID",
429
+ "@_",
430
+ "$^O",
431
+ "$INPLACE_EDIT",
432
+ "@ARGV",
433
+ "$^OPEN",
434
+ "$INPUT_LINE_NUMBER",
435
+ "@INC",
436
+ "$^P",
437
+ "$INPUT_RECORD_SEPARATOR",
438
+ "@LAST_MATCH_START",
439
+ "$^R",
440
+ "$LAST_MATCH_END",
441
+ "$^RE_DEBUG_FLAGS",
442
+ "$LAST_PAREN_MATCH"
443
+ ],
444
+ // operators
445
+ symbols: /[:+\-\^*$&%@=<>!?|\/~\.]/,
446
+ quoteLikeOps: ["qr", "m", "s", "q", "qq", "qx", "qw", "tr", "y"],
447
+ escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
448
+ // The main tokenizer for our languages
449
+ tokenizer: {
450
+ root: [
451
+ { include: "@whitespace" },
452
+ [
453
+ /[a-zA-Z\-_][\w\-_]*/,
454
+ {
455
+ cases: {
456
+ "@keywords": "keyword",
457
+ "@builtinFunctions": "type.identifier",
458
+ "@builtinFileHandlers": "variable.predefined",
459
+ "@quoteLikeOps": {
460
+ token: "@rematch",
461
+ next: "quotedConstructs"
462
+ },
463
+ "@default": ""
464
+ }
465
+ }
466
+ ],
467
+ // Perl variables
468
+ [
469
+ /[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/,
470
+ {
471
+ cases: {
472
+ "@builtinVariables": "variable.predefined",
473
+ "@default": "variable"
474
+ }
475
+ }
476
+ ],
477
+ { include: "@strings" },
478
+ { include: "@dblStrings" },
479
+ // Perl Doc
480
+ { include: "@perldoc" },
481
+ // Here Doc
482
+ { include: "@heredoc" },
483
+ [/[{}\[\]()]/, "@brackets"],
484
+ // RegExp
485
+ [/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/, "regexp"],
486
+ [/@symbols/, "operators"],
487
+ { include: "@numbers" },
488
+ [/[,;]/, "delimiter"]
489
+ ],
490
+ whitespace: [
491
+ [/\s+/, "white"],
492
+ [/(^#!.*$)/, "metatag"],
493
+ [/(^#.*$)/, "comment"]
494
+ ],
495
+ numbers: [
496
+ [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
497
+ [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
498
+ [/\d+/, "number"]
499
+ ],
500
+ // Single quote string
501
+ strings: [[/'/, "string", "@stringBody"]],
502
+ stringBody: [
503
+ [/'/, "string", "@popall"],
504
+ [/\\'/, "string.escape"],
505
+ [/./, "string"]
506
+ ],
507
+ // Double quote string
508
+ dblStrings: [[/"/, "string", "@dblStringBody"]],
509
+ dblStringBody: [
510
+ [/"/, "string", "@popall"],
511
+ [/@escapes/, "string.escape"],
512
+ [/\\./, "string.escape.invalid"],
513
+ { include: "@variables" },
514
+ [/./, "string"]
515
+ ],
516
+ // Quoted constructs
517
+ // Percent strings in Ruby are similar to quote-like operators in Perl.
518
+ // This is adapted from pstrings in ../ruby/ruby.ts.
519
+ quotedConstructs: [
520
+ [/(q|qw|tr|y)\s*\(/, { token: "string.delim", switchTo: "@qstring.(.)" }],
521
+ [/(q|qw|tr|y)\s*\[/, { token: "string.delim", switchTo: "@qstring.[.]" }],
522
+ [/(q|qw|tr|y)\s*\{/, { token: "string.delim", switchTo: "@qstring.{.}" }],
523
+ [/(q|qw|tr|y)\s*</, { token: "string.delim", switchTo: "@qstring.<.>" }],
524
+ [/(q|qw|tr|y)#/, { token: "string.delim", switchTo: "@qstring.#.#" }],
525
+ [/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qstring.$2.$2" }],
526
+ [/(q|qw|tr|y)\s+(\w)/, { token: "string.delim", switchTo: "@qstring.$2.$2" }],
527
+ [/(qr|m|s)\s*\(/, { token: "regexp.delim", switchTo: "@qregexp.(.)" }],
528
+ [/(qr|m|s)\s*\[/, { token: "regexp.delim", switchTo: "@qregexp.[.]" }],
529
+ [/(qr|m|s)\s*\{/, { token: "regexp.delim", switchTo: "@qregexp.{.}" }],
530
+ [/(qr|m|s)\s*</, { token: "regexp.delim", switchTo: "@qregexp.<.>" }],
531
+ [/(qr|m|s)#/, { token: "regexp.delim", switchTo: "@qregexp.#.#" }],
532
+ [/(qr|m|s)\s*([^A-Za-z0-9_#\s])/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }],
533
+ [/(qr|m|s)\s+(\w)/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }],
534
+ [/(qq|qx)\s*\(/, { token: "string.delim", switchTo: "@qqstring.(.)" }],
535
+ [/(qq|qx)\s*\[/, { token: "string.delim", switchTo: "@qqstring.[.]" }],
536
+ [/(qq|qx)\s*\{/, { token: "string.delim", switchTo: "@qqstring.{.}" }],
537
+ [/(qq|qx)\s*</, { token: "string.delim", switchTo: "@qqstring.<.>" }],
538
+ [/(qq|qx)#/, { token: "string.delim", switchTo: "@qqstring.#.#" }],
539
+ [/(qq|qx)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }],
540
+ [/(qq|qx)\s+(\w)/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }]
541
+ ],
542
+ // Non-expanded quoted string
543
+ // qstring<open>.<close>
544
+ // open = open delimiter
545
+ // close = close delimiter
546
+ qstring: [
547
+ [/\\./, "string.escape"],
548
+ [
549
+ /./,
550
+ {
551
+ cases: {
552
+ "$#==$S3": { token: "string.delim", next: "@pop" },
553
+ "$#==$S2": { token: "string.delim", next: "@push" },
554
+ // nested delimiters
555
+ "@default": "string"
556
+ }
557
+ }
558
+ ]
559
+ ],
560
+ // Quoted regexp
561
+ // qregexp.<open>.<close>
562
+ // open = open delimiter
563
+ // close = close delimiter
564
+ qregexp: [
565
+ { include: "@variables" },
566
+ [/\\./, "regexp.escape"],
567
+ [
568
+ /./,
569
+ {
570
+ cases: {
571
+ "$#==$S3": {
572
+ token: "regexp.delim",
573
+ next: "@regexpModifiers"
574
+ },
575
+ "$#==$S2": { token: "regexp.delim", next: "@push" },
576
+ // nested delimiters
577
+ "@default": "regexp"
578
+ }
579
+ }
580
+ ]
581
+ ],
582
+ regexpModifiers: [[/[msixpodualngcer]+/, { token: "regexp.modifier", next: "@popall" }]],
583
+ // Expanded quoted string
584
+ // qqstring.<open>.<close>
585
+ // open = open delimiter
586
+ // close = close delimiter
587
+ qqstring: [{ include: "@variables" }, { include: "@qstring" }],
588
+ heredoc: [
589
+ [/<<\s*['"`]?([\w\-]+)['"`]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }]
590
+ ],
591
+ heredocBody: [
592
+ [
593
+ /^([\w\-]+)$/,
594
+ {
595
+ cases: {
596
+ "$1==$S2": [
597
+ {
598
+ token: "string.heredoc.delimiter",
599
+ next: "@popall"
600
+ }
601
+ ],
602
+ "@default": "string.heredoc"
603
+ }
604
+ }
605
+ ],
606
+ [/./, "string.heredoc"]
607
+ ],
608
+ perldoc: [[/^=\w/, "comment.doc", "@perldocBody"]],
609
+ perldocBody: [
610
+ [/^=cut\b/, "type.identifier", "@popall"],
611
+ [/./, "comment.doc"]
612
+ ],
613
+ variables: [
614
+ [/\$\w+/, "variable"],
615
+ // scalar
616
+ [/@\w+/, "variable"],
617
+ // array
618
+ [/%\w+/, "variable"]
619
+ // key/value
620
+ ]
621
+ }
622
+ };
623
+ export {
624
+ e as conf,
625
+ t as language
626
+ };