nadesiko3 3.7.13 → 3.7.14

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 (127) hide show
  1. package/batch/command.txt +473 -473
  2. package/batch/jsplugin2text.nako3 +2 -0
  3. package/core/package.json +1 -1
  4. package/core/src/nako3.mjs +0 -4
  5. package/core/src/nako3.mts +55 -55
  6. package/core/src/nako_ast.mjs +0 -1
  7. package/core/src/nako_ast.mts +1 -1
  8. package/core/src/nako_colors.mjs +0 -1
  9. package/core/src/nako_colors.mts +1 -1
  10. package/core/src/nako_core_version.mjs +2 -2
  11. package/core/src/nako_core_version.mts +2 -2
  12. package/core/src/nako_csv.mjs +0 -1
  13. package/core/src/nako_csv.mts +9 -9
  14. package/core/src/nako_errors.mts +8 -8
  15. package/core/src/nako_from_dncl.mts +5 -5
  16. package/core/src/nako_from_dncl2.mjs +0 -1
  17. package/core/src/nako_from_dncl2.mts +5 -5
  18. package/core/src/nako_gen.mjs +13 -15
  19. package/core/src/nako_gen.mts +224 -220
  20. package/core/src/nako_global.mts +11 -11
  21. package/core/src/nako_indent.mts +92 -92
  22. package/core/src/nako_indent_chars.mts +1 -1
  23. package/core/src/nako_indent_inline.mjs +11 -11
  24. package/core/src/nako_indent_inline.mts +20 -20
  25. package/core/src/nako_lex_rules.mjs +0 -1
  26. package/core/src/nako_lex_rules.mts +8 -8
  27. package/core/src/nako_lexer.mjs +0 -1
  28. package/core/src/nako_lexer.mts +23 -23
  29. package/core/src/nako_logger.mjs +1 -1
  30. package/core/src/nako_logger.mts +38 -38
  31. package/core/src/nako_parser3.mjs +4 -5
  32. package/core/src/nako_parser3.mts +79 -79
  33. package/core/src/nako_parser_base.mjs +1 -1
  34. package/core/src/nako_parser_base.mts +68 -68
  35. package/core/src/nako_parser_const.mjs +0 -1
  36. package/core/src/nako_parser_const.mts +1 -1
  37. package/core/src/nako_prepare.mts +12 -12
  38. package/core/src/nako_source_mapping.mts +9 -9
  39. package/core/src/nako_token.mjs +0 -1
  40. package/core/src/nako_token.mts +2 -2
  41. package/core/src/nako_tools.mjs +0 -1
  42. package/core/src/nako_tools.mts +4 -4
  43. package/core/src/nako_types.mjs +0 -1
  44. package/core/src/nako_types.mts +3 -3
  45. package/core/src/plugin_api.mjs +0 -1
  46. package/core/src/plugin_api.mts +1 -1
  47. package/core/src/plugin_csv.mjs +0 -1
  48. package/core/src/plugin_csv.mts +7 -7
  49. package/core/src/plugin_math.mjs +0 -1
  50. package/core/src/plugin_math.mts +39 -40
  51. package/core/src/plugin_promise.mjs +1 -1
  52. package/core/src/plugin_promise.mts +9 -9
  53. package/core/src/plugin_system.mjs +1 -10
  54. package/core/src/plugin_system.mts +319 -321
  55. package/core/src/plugin_test.mjs +0 -2
  56. package/core/src/plugin_test.mts +6 -6
  57. package/core/src/plugin_toml.mjs +1 -1
  58. package/core/src/plugin_toml.mts +4 -4
  59. package/core/test/flow_test.mjs +22 -0
  60. package/package.json +31 -34
  61. package/release/_hash.txt +24 -24
  62. package/release/_script-tags.txt +16 -16
  63. package/release/command_cnako3.json +1 -1
  64. package/release/edit_main.js +33 -21
  65. package/release/edit_main.js.map +4 -4
  66. package/release/editor.js +33 -21
  67. package/release/plugin_keigo.js.map +2 -2
  68. package/release/plugin_turtle.js.map +2 -2
  69. package/release/plugin_weykturtle3d.js.map +2 -2
  70. package/release/version.js +29 -17
  71. package/release/version_main.js +29 -17
  72. package/release/version_main.js.map +4 -4
  73. package/release/wnako3.js +51 -44
  74. package/release/wnako3.js.map +3 -3
  75. package/release/wnako3webworker.js +45 -38
  76. package/release/wnako3webworker.js.map +2 -2
  77. package/src/cnako3.mts +1 -1
  78. package/src/cnako3mod.mjs +4 -7
  79. package/src/cnako3mod.mts +24 -24
  80. package/src/commander_ja.mts +8 -8
  81. package/src/deno_wrapper.mjs +0 -1
  82. package/src/deno_wrapper.mts +5 -5
  83. package/src/nako_version.mjs +2 -2
  84. package/src/nako_version.mts +2 -2
  85. package/src/plugin_browser.mjs +21 -29
  86. package/src/plugin_browser.mts +30 -35
  87. package/src/plugin_browser_ajax.mts +27 -27
  88. package/src/plugin_browser_audio.mjs +0 -1
  89. package/src/plugin_browser_audio.mts +11 -11
  90. package/src/plugin_browser_camera.mts +8 -8
  91. package/src/plugin_browser_canvas.mjs +0 -2
  92. package/src/plugin_browser_canvas.mts +34 -34
  93. package/src/plugin_browser_chart.mjs +0 -1
  94. package/src/plugin_browser_chart.mts +13 -13
  95. package/src/plugin_browser_color.mts +2 -2
  96. package/src/plugin_browser_crypto.mts +5 -5
  97. package/src/plugin_browser_dialog.mts +4 -4
  98. package/src/plugin_browser_dom_basic.mts +42 -42
  99. package/src/plugin_browser_dom_event.mjs +0 -1
  100. package/src/plugin_browser_dom_event.mts +27 -28
  101. package/src/plugin_browser_dom_parts.mjs +0 -2
  102. package/src/plugin_browser_dom_parts.mts +31 -31
  103. package/src/plugin_browser_geolocation.mts +3 -3
  104. package/src/plugin_browser_hotkey.mts +3 -3
  105. package/src/plugin_browser_html.mts +4 -4
  106. package/src/plugin_browser_in_worker.mts +1 -1
  107. package/src/plugin_browser_location.mts +2 -2
  108. package/src/plugin_browser_speech.mts +7 -7
  109. package/src/plugin_browser_storage.mts +11 -11
  110. package/src/plugin_browser_system.mts +2 -2
  111. package/src/plugin_browser_websocket.mts +6 -6
  112. package/src/plugin_httpserver.mts +17 -17
  113. package/src/plugin_keigo.mts +5 -5
  114. package/src/plugin_node.mjs +7 -48
  115. package/src/plugin_node.mts +114 -145
  116. package/src/plugin_turtle.mts +143 -143
  117. package/src/plugin_weykturtle3d.mjs +0 -3
  118. package/src/plugin_weykturtle3d.mts +135 -135
  119. package/src/plugin_weykturtle3d_three.mjs +0 -1
  120. package/src/plugin_weykturtle3d_three.mts +1 -1
  121. package/src/plugin_weykturtle3d_threeutil.mts +3 -3
  122. package/src/wnako3.mjs +0 -1
  123. package/src/wnako3.mts +1 -1
  124. package/src/wnako3_editor.mjs +0 -2
  125. package/src/wnako3_editor.mts +132 -132
  126. package/src/wnako3mod.mjs +0 -5
  127. package/src/wnako3mod.mts +19 -19
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
1
+
2
2
  import { NakoRuntimeError } from './nako_errors.mjs'
3
3
  import { NakoSystem } from './plugin_api.mjs'
4
4
 
@@ -17,7 +17,7 @@ export default {
17
17
  type: 'func',
18
18
  josi: [],
19
19
  pure: false,
20
- fn: function (sys: NakoSystem) {
20
+ fn: function(sys: NakoSystem) {
21
21
  // システム変数の初期化
22
22
  const system: any = sys
23
23
  sys.pathSeparator = '/' // パス記号 #2185
@@ -38,7 +38,7 @@ export default {
38
38
  sys.__setSysVar('ナデシコ言語バージョン', sys.coreVersion)
39
39
  if (!system.__namespaceList) { system.__namespaceList = [] }
40
40
  // なでしこの関数や変数を探して返す
41
- sys.__findVar = function (nameStr: any, def: any): any {
41
+ sys.__findVar = function(nameStr: any, def: any): any {
42
42
  if (typeof nameStr === 'function') { return nameStr }
43
43
  // ローカル変数を探す
44
44
  const localVar = system.__locals.get(nameStr)
@@ -65,13 +65,13 @@ export default {
65
65
  return def
66
66
  }
67
67
  // 文字列から関数を探す
68
- sys.__findFunc = function (nameStr: any, parentFunc: string): any {
68
+ sys.__findFunc = function(nameStr: any, parentFunc: string): any {
69
69
  const f = sys.__findVar(nameStr)
70
70
  if (typeof f === 'function') { return f }
71
71
  throw new Error(`『${parentFunc}』に実行できない関数が指定されました。`)
72
72
  }
73
73
  // システム関数を実行
74
- sys.__exec = function (func: string, params: any[]): any {
74
+ sys.__exec = function(func: string, params: any[]): any {
75
75
  // システム命令を優先
76
76
  const f0 = sys.__getSysVar(func)
77
77
  if (f0) { return f0.apply(this, params) }
@@ -161,7 +161,7 @@ export default {
161
161
  sys.__evalSafe = (src: string) => {
162
162
  // evalのスコープを変えるためのテクニック
163
163
  // https://esbuild.github.io/content-types/#direct-eval
164
- // eslint-disable-next-line no-eval
164
+
165
165
  const _eval = eval
166
166
  try {
167
167
  return _eval(src)
@@ -171,10 +171,10 @@ export default {
171
171
  }
172
172
  }
173
173
  // eval function #1733 - 互換性を優先するため、direct evalを使うことに
174
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
174
+
175
175
  sys.__evalJS = (src: string, sys?: NakoSystem) => {
176
176
  try {
177
- // eslint-disable-next-line no-eval
177
+
178
178
  return eval(src)
179
179
  } catch (e) {
180
180
  console.warn('[eval]', e)
@@ -182,8 +182,7 @@ export default {
182
182
  }
183
183
  }
184
184
  // Propアクセス支援
185
- // eslint-disable-next-line @typescript-eslint/ban-types
186
- sys.__registPropAccessor = (f: Function, getProp: (prop: string|string[], sys: NakoSystem) => any, setProp: (prop: string|string[], value: object, sys: NakoSystem) => any) => {
185
+ sys.__registPropAccessor = (f: any, getProp: (prop: string|string[], sys: NakoSystem) => any, setProp: (prop: string|string[], value: object, sys: NakoSystem) => any) => {
187
186
  system.__propAccessor.push(
188
187
  {
189
188
  target: f,
@@ -216,7 +215,7 @@ export default {
216
215
  '!クリア': {
217
216
  type: 'func',
218
217
  josi: [],
219
- fn: function (sys: NakoSystem) {
218
+ fn: function(sys: NakoSystem) {
220
219
  if (sys.__exec) { sys.__exec('全タイマー停止', [sys]) }
221
220
  sys.__setSysVar('表示ログ', '')
222
221
  }
@@ -266,7 +265,7 @@ export default {
266
265
  type: 'func',
267
266
  josi: [],
268
267
  pure: true,
269
- fn: function (): any {
268
+ fn: function(): any {
270
269
  return []
271
270
  }
272
271
  },
@@ -274,7 +273,7 @@ export default {
274
273
  type: 'func',
275
274
  josi: [],
276
275
  pure: true,
277
- fn: function (): any {
276
+ fn: function(): any {
278
277
  return {}
279
278
  }
280
279
  },
@@ -282,7 +281,7 @@ export default {
282
281
  type: 'func',
283
282
  josi: [],
284
283
  pure: true,
285
- fn: function (): any {
284
+ fn: function(): any {
286
285
  return {}
287
286
  }
288
287
  },
@@ -290,7 +289,7 @@ export default {
290
289
  type: 'func',
291
290
  josi: [],
292
291
  pure: false,
293
- fn: function (sys: NakoSystem): any {
292
+ fn: function(sys: NakoSystem): any {
294
293
  return sys.__exec('空ハッシュ', [sys])
295
294
  }
296
295
  },
@@ -298,7 +297,7 @@ export default {
298
297
  type: 'func',
299
298
  josi: [['の', 'を']],
300
299
  pure: true,
301
- fn: function (b: any): string {
300
+ fn: function(b: any): string {
302
301
  return b ? '真' : '偽'
303
302
  }
304
303
  },
@@ -308,7 +307,7 @@ export default {
308
307
  type: 'func',
309
308
  josi: [['を', 'と']],
310
309
  pure: true,
311
- fn: function (s: string, sys: any) {
310
+ fn: function(s: string, sys: any) {
312
311
  // 継続表示の一時プールを出力
313
312
  s = String(sys.__printPool) + s
314
313
  sys.__printPool = ''
@@ -322,7 +321,7 @@ export default {
322
321
  type: 'func',
323
322
  josi: [['を', 'と']],
324
323
  pure: true,
325
- fn: function (s: string, sys: any) {
324
+ fn: function(s: string, sys: any) {
326
325
  sys.__printPool += s
327
326
  },
328
327
  return_none: true
@@ -332,7 +331,7 @@ export default {
332
331
  josi: [['と', 'を']],
333
332
  isVariableJosi: true,
334
333
  pure: true,
335
- fn: function (...a: any) {
334
+ fn: function(...a: any) {
336
335
  const sys = a.pop()
337
336
  const v = a.join('')
338
337
  sys.__exec('表示', [v, sys])
@@ -344,7 +343,7 @@ export default {
344
343
  josi: [['と', 'を']],
345
344
  isVariableJosi: true,
346
345
  pure: true,
347
- fn: function (...a: any) {
346
+ fn: function(...a: any) {
348
347
  const sys = a.pop()
349
348
  const v = a.join('')
350
349
  sys.__exec('継続表示', [v, sys])
@@ -356,7 +355,7 @@ export default {
356
355
  type: 'func',
357
356
  josi: [],
358
357
  pure: true,
359
- fn: function (sys: NakoSystem) {
358
+ fn: function(sys: NakoSystem) {
360
359
  sys.__setSysVar('表示ログ', '')
361
360
  },
362
361
  return_none: true
@@ -365,7 +364,7 @@ export default {
365
364
  type: 'func',
366
365
  josi: [['を', 'と']],
367
366
  pure: true,
368
- fn: function (s: string, sys: any) {
367
+ fn: function(s: string, sys: any) {
369
368
  sys.logger.send('stdout', s + '')
370
369
  },
371
370
  return_none: true
@@ -374,7 +373,7 @@ export default {
374
373
  type: 'func',
375
374
  josi: [['を', 'と']],
376
375
  pure: true,
377
- fn: function (s: string) {
376
+ fn: function(s: string) {
378
377
  console.log(s)
379
378
  },
380
379
  return_none: true
@@ -386,7 +385,7 @@ export default {
386
385
  josi: [['に', 'と'], ['を']],
387
386
  isVariableJosi: false,
388
387
  pure: true,
389
- fn: function (a: any, b: any) {
388
+ fn: function(a: any, b: any) {
390
389
  if (typeof (a) === 'bigint' || typeof (b) === 'bigint') {
391
390
  return BigInt(a) + BigInt(b)
392
391
  }
@@ -398,7 +397,7 @@ export default {
398
397
  josi: [['と', 'を', 'の']],
399
398
  isVariableJosi: true,
400
399
  pure: true,
401
- fn: function (...a: any) {
400
+ fn: function(...a: any) {
402
401
  const sys = a.pop() // remove NakoSystem
403
402
  if (a.length >= 1 && a[0] instanceof Array) {
404
403
  return sys.__exec('配列合計', [a[0], sys])
@@ -426,7 +425,7 @@ export default {
426
425
  type: 'func',
427
426
  josi: [['から'], ['を']],
428
427
  pure: true,
429
- fn: function (a: any, b: any) {
428
+ fn: function(a: any, b: any) {
430
429
  return a - b
431
430
  }
432
431
  },
@@ -434,7 +433,7 @@ export default {
434
433
  type: 'func',
435
434
  josi: [['に', 'と'], ['を']],
436
435
  pure: true,
437
- fn: function (a: any, b: any) {
436
+ fn: function(a: any, b: any) {
438
437
  // 数値の掛け算
439
438
  if (typeof a === 'number') {
440
439
  return a * b
@@ -462,7 +461,7 @@ export default {
462
461
  type: 'func',
463
462
  josi: [['の', 'を'], ['']],
464
463
  pure: true,
465
- fn: function (a: any, b: any) {
464
+ fn: function(a: any, b: any) {
466
465
  return a * b
467
466
  }
468
467
  },
@@ -470,7 +469,7 @@ export default {
470
469
  type: 'func',
471
470
  josi: [['を'], ['で']],
472
471
  pure: true,
473
- fn: function (a: any, b: any) {
472
+ fn: function(a: any, b: any) {
474
473
  return a / b
475
474
  }
476
475
  },
@@ -478,7 +477,7 @@ export default {
478
477
  type: 'func',
479
478
  josi: [['を'], ['で']],
480
479
  pure: true,
481
- fn: function (a: any, b: any) {
480
+ fn: function(a: any, b: any) {
482
481
  return a % b
483
482
  }
484
483
  },
@@ -486,7 +485,7 @@ export default {
486
485
  type: 'func',
487
486
  josi: [['が']],
488
487
  pure: true,
489
- fn: function (a: any) {
488
+ fn: function(a: any) {
490
489
  return (parseInt(a) % 2 === 0)
491
490
  }
492
491
  },
@@ -494,7 +493,7 @@ export default {
494
493
  type: 'func',
495
494
  josi: [['が']],
496
495
  pure: true,
497
- fn: function (a: any) {
496
+ fn: function(a: any) {
498
497
  return (parseInt(a) % 2 === 1)
499
498
  }
500
499
  },
@@ -502,7 +501,7 @@ export default {
502
501
  type: 'func',
503
502
  josi: [['の', 'を']],
504
503
  pure: true,
505
- fn: function (a: any) {
504
+ fn: function(a: any) {
506
505
  return a * a
507
506
  }
508
507
  },
@@ -510,7 +509,7 @@ export default {
510
509
  type: 'func',
511
510
  josi: [['の'], ['の']],
512
511
  pure: true,
513
- fn: function (a: any, b: any) {
512
+ fn: function(a: any, b: any) {
514
513
  return Math.pow(a, b)
515
514
  }
516
515
  },
@@ -518,7 +517,7 @@ export default {
518
517
  type: 'func',
519
518
  josi: [['が'], ['']],
520
519
  pure: true,
521
- fn: function (a: any, b: any) {
520
+ fn: function(a: any, b: any) {
522
521
  return a >= b
523
522
  }
524
523
  },
@@ -526,7 +525,7 @@ export default {
526
525
  type: 'func',
527
526
  josi: [['が'], ['']],
528
527
  pure: true,
529
- fn: function (a: any, b: any) {
528
+ fn: function(a: any, b: any) {
530
529
  return a <= b
531
530
  }
532
531
  },
@@ -534,7 +533,7 @@ export default {
534
533
  type: 'func',
535
534
  josi: [['が'], ['']],
536
535
  pure: true,
537
- fn: function (a: any, b: any) {
536
+ fn: function(a: any, b: any) {
538
537
  return a < b
539
538
  }
540
539
  },
@@ -542,7 +541,7 @@ export default {
542
541
  type: 'func',
543
542
  josi: [['が'], ['']],
544
543
  pure: true,
545
- fn: function (a: any, b: any) {
544
+ fn: function(a: any, b: any) {
546
545
  return a > b
547
546
  }
548
547
  },
@@ -550,7 +549,7 @@ export default {
550
549
  type: 'func',
551
550
  josi: [['が'], ['と']],
552
551
  pure: true,
553
- fn: function (a: any, b: any) {
552
+ fn: function(a: any, b: any) {
554
553
  return a === b
555
554
  }
556
555
  },
@@ -558,7 +557,7 @@ export default {
558
557
  type: 'func',
559
558
  josi: [['が'], ['と']],
560
559
  pure: true,
561
- fn: function (a: any, b: any) {
560
+ fn: function(a: any, b: any) {
562
561
  return a !== b
563
562
  }
564
563
  },
@@ -566,7 +565,7 @@ export default {
566
565
  type: 'func',
567
566
  josi: [['が'], ['と']],
568
567
  pure: true,
569
- fn: function (a: any, b: any) {
568
+ fn: function(a: any, b: any) {
570
569
  // オブジェクトの場合、JSONに変換して比較
571
570
  if (typeof (a) === 'object') {
572
571
  const jsonA = JSON.stringify(a)
@@ -580,7 +579,7 @@ export default {
580
579
  type: 'func',
581
580
  josi: [['が'], ['と']],
582
581
  pure: true,
583
- fn: function (a: any, b: any) {
582
+ fn: function(a: any, b: any) {
584
583
  // オブジェクトの場合、JSONに変換して比較
585
584
  if (typeof (a) === 'object') {
586
585
  const jsonA = JSON.stringify(a)
@@ -594,7 +593,7 @@ export default {
594
593
  type: 'func',
595
594
  josi: [['が'], ['から'], ['の', 'までの']],
596
595
  pure: true,
597
- fn: function (v: any, a: any, b: any) {
596
+ fn: function(v: any, a: any, b: any) {
598
597
  return (a <= v) && (v <= b)
599
598
  }
600
599
  },
@@ -602,7 +601,7 @@ export default {
602
601
  type: 'func',
603
602
  josi: [['から'], ['の', 'までの']],
604
603
  pure: true,
605
- fn: function (a: any, b: any) {
604
+ fn: function(a: any, b: any) {
606
605
  return {
607
606
  '先頭': a,
608
607
  '末尾': b
@@ -614,10 +613,10 @@ export default {
614
613
  josi: [['を'], ['に', 'と']],
615
614
  isVariableJosi: true,
616
615
  pure: true,
617
- fn: function (b: any, ...a: any) {
616
+ fn: function(b: any, ...a: any) {
618
617
  a.pop() // 必ず末尾に sys があるので、末尾のシステム変数を除外
619
618
  a.push(b)
620
- // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
619
+
621
620
  return a.reduce((p: any, c: any) => p + c)
622
621
  }
623
622
  },
@@ -626,7 +625,7 @@ export default {
626
625
  josi: [['の'], ['と']],
627
626
  isVariableJosi: true,
628
627
  pure: true,
629
- fn: function (b: number, ...a: any): number {
628
+ fn: function(b: number, ...a: any): number {
630
629
  const sys = a.pop()
631
630
  return sys.__exec('最大値', [b, ...a, sys])
632
631
  }
@@ -636,7 +635,7 @@ export default {
636
635
  josi: [['の'], ['と']],
637
636
  isVariableJosi: true,
638
637
  pure: true,
639
- fn: function (b: number, ...a: any): number {
638
+ fn: function(b: number, ...a: any): number {
640
639
  a.pop() // 必ず末尾に sys があるので、末尾のシステム変数を除外
641
640
  a.push(b)
642
641
  return a.reduce((p: number, c: number) => Math.max(p, c))
@@ -647,7 +646,7 @@ export default {
647
646
  josi: [['の'], ['と']],
648
647
  isVariableJosi: true,
649
648
  pure: true,
650
- fn: function (b: number, ...a: any): number {
649
+ fn: function(b: number, ...a: any): number {
651
650
  const sys = a.pop()
652
651
  return sys.__exec('最小値', [b, ...a, sys])
653
652
  }
@@ -657,7 +656,7 @@ export default {
657
656
  josi: [['の'], ['と']],
658
657
  isVariableJosi: true,
659
658
  pure: true,
660
- fn: function (b: number, ...a: any): number {
659
+ fn: function(b: number, ...a: any): number {
661
660
  a.pop() // 必ず末尾に sys があるので、末尾のシステム変数を除外
662
661
  a.push(b)
663
662
  return a.reduce((p: number, c: number) => Math.min(p, c))
@@ -667,7 +666,7 @@ export default {
667
666
  type: 'func',
668
667
  josi: [['の', 'を'], ['から'], ['までの', 'で']],
669
668
  pure: true,
670
- fn: function (x: number, a: number, b: number): number {
669
+ fn: function(x: number, a: number, b: number): number {
671
670
  return Math.min(Math.max(x, a), b)
672
671
  }
673
672
  },
@@ -677,7 +676,7 @@ export default {
677
676
  type: 'func',
678
677
  josi: [],
679
678
  pure: true,
680
- fn: function (sys: NakoSystem) {
679
+ fn: function(sys: NakoSystem) {
681
680
  if (!sys.__reisetu) { sys.__reisetu = 0 }
682
681
  sys.__reisetu++
683
682
  },
@@ -687,7 +686,7 @@ export default {
687
686
  type: 'func',
688
687
  josi: [],
689
688
  pure: true,
690
- fn: function (sys: NakoSystem) {
689
+ fn: function(sys: NakoSystem) {
691
690
  if (!sys.__reisetu) { sys.__reisetu = 0 }
692
691
  sys.__reisetu++
693
692
  },
@@ -697,7 +696,7 @@ export default {
697
696
  type: 'func',
698
697
  josi: [],
699
698
  pure: true,
700
- fn: function (sys: NakoSystem) {
699
+ fn: function(sys: NakoSystem) {
701
700
  if (!sys.__reisetu) { sys.__reisetu = 0 }
702
701
  sys.__reisetu++
703
702
  },
@@ -707,7 +706,7 @@ export default {
707
706
  type: 'func',
708
707
  josi: [],
709
708
  pure: true,
710
- fn: function (sys: NakoSystem) {
709
+ fn: function(sys: NakoSystem) {
711
710
  sys.__reisetu = 0
712
711
  },
713
712
  return_none: true
@@ -716,7 +715,7 @@ export default {
716
715
  type: 'func',
717
716
  josi: [],
718
717
  pure: true,
719
- fn: function (sys: NakoSystem) {
718
+ fn: function(sys: NakoSystem) {
720
719
  sys.__reisetu += 100 // bonus point
721
720
  },
722
721
  return_none: true
@@ -725,7 +724,7 @@ export default {
725
724
  type: 'func',
726
725
  josi: [],
727
726
  pure: true,
728
- fn: function (sys: NakoSystem) {
727
+ fn: function(sys: NakoSystem) {
729
728
  if (!sys.__reisetu) { sys.__reisetu = 0 }
730
729
  return sys.__reisetu
731
730
  }
@@ -736,7 +735,7 @@ export default {
736
735
  type: 'func',
737
736
  josi: [['を', 'で']],
738
737
  pure: true,
739
- fn: function (src: string, sys: NakoSystem) {
738
+ fn: function(src: string, sys: NakoSystem) {
740
739
  return sys.__evalJS(src, sys) // #1733
741
740
  }
742
741
  },
@@ -744,16 +743,16 @@ export default {
744
743
  type: 'func',
745
744
  josi: [['の']],
746
745
  pure: false,
747
- fn: function (name: string, sys: any) {
746
+ fn: function(name: string, sys: any) {
748
747
  return sys.__findVar(name, null)
749
748
  }
750
749
  },
751
750
  'JS関数実行': { // @JavaScriptの関数NAMEを引数ARGS(配列)で実行する // @JSかんすうじっこう
752
751
  type: 'func',
753
752
  josi: [['を'], ['で']],
754
- fn: function (name: any, args: any, sys: NakoSystem) {
753
+ fn: function(name: any, args: any, sys: NakoSystem) {
755
754
  // nameが文字列ならevalして関数を得る
756
- // eslint-disable-next-line no-eval
755
+
757
756
  if (typeof name === 'string') { name = sys.__evalJS(name, sys) }
758
757
  if (typeof name !== 'function') { throw new Error('JS関数取得で実行できません。') }
759
758
 
@@ -770,7 +769,7 @@ export default {
770
769
  josi: [],
771
770
  asyncFn: true,
772
771
  pure: true,
773
- fn: async function () {
772
+ fn: async function() {
774
773
  // empty
775
774
  },
776
775
  return_none: true
@@ -780,7 +779,7 @@ export default {
780
779
  josi: [['を'], ['で']],
781
780
  pure: true,
782
781
  asyncFn: true,
783
- fn: async function (f: any, args: any, sys: any) {
782
+ fn: async function(f: any, args: any, sys: any) {
784
783
  // nameが文字列ならevalして関数を得る
785
784
  if (typeof f === 'string') { f = sys.__findFunc(f, 'AWAIT実行') }
786
785
  if (!(f instanceof Function)) { throw new Error('『AWAIT実行』の第一引数はなでしこ関数名かFunction型で指定してください。') }
@@ -791,9 +790,9 @@ export default {
791
790
  'JSメソッド実行': { // @JavaScriptのオブジェクトOBJのメソッドMを引数ARGS(配列)で実行する // @JSめそっどじっこう
792
791
  type: 'func',
793
792
  josi: [['の'], ['を'], ['で']],
794
- fn: function (obj: any, m: any, args: any, sys: NakoSystem) {
793
+ fn: function(obj: any, m: any, args: any, sys: NakoSystem) {
795
794
  // objが文字列ならevalして関数を得る
796
- // eslint-disable-next-line no-eval
795
+
797
796
  if (typeof obj === 'string') { obj = sys.__evalJS(obj, sys) }
798
797
  if (typeof obj !== 'object') { throw new Error('JSオブジェクトを取得できませんでした。') }
799
798
 
@@ -814,7 +813,7 @@ export default {
814
813
  type: 'func',
815
814
  josi: [['を', 'で']],
816
815
  pure: false,
817
- fn: function (code: string, sys: any) {
816
+ fn: function(code: string, sys: any) {
818
817
  sys.__setSysVar('表示ログ', '')
819
818
  sys.__self.runEx(code, sys.__modName, { resetEnv: false, resetLog: true })
820
819
  const outLog = String(sys.__getSysVar('表示ログ'))
@@ -827,7 +826,7 @@ export default {
827
826
  'ナデシコ続': { // @なでしこのコードCODEを実行する // @なでしこつづける
828
827
  type: 'func',
829
828
  josi: [['を', 'で']],
830
- fn: function (code: string, sys: any) {
829
+ fn: function(code: string, sys: any) {
831
830
  sys.__self.runEx(code, sys.__modName, { resetEnv: false, resetAll: false })
832
831
  const out = String(sys.__getSysVar('表示ログ'))
833
832
  if (out) {
@@ -840,7 +839,7 @@ export default {
840
839
  type: 'func',
841
840
  josi: [['を', 'に', 'で']],
842
841
  pure: false,
843
- fn: function (f: any, sys: any) {
842
+ fn: function(f: any, sys: any) {
844
843
  // #938 の規則に従って処理
845
844
  // 引数が関数なら実行
846
845
  if (typeof f === 'function') { return f(sys) }
@@ -859,7 +858,7 @@ export default {
859
858
  type: 'func',
860
859
  josi: [['の']],
861
860
  pure: false,
862
- fn: function (f: any, sys: any) {
861
+ fn: function(f: any, sys: any) {
863
862
  if (typeof f === 'string') { f = sys.__findFunc(f, '実行時間計測') }
864
863
  //
865
864
  if (performance && performance.now) {
@@ -879,7 +878,7 @@ export default {
879
878
  type: 'func',
880
879
  josi: [],
881
880
  pure: true,
882
- fn: function (sys: NakoSystem) {
881
+ fn: function(sys: NakoSystem) {
883
882
  // デバッグモードでなければ例外を投げることでプログラムを終了させる
884
883
  sys.__setSysVar('__forceClose', true)
885
884
  if (!sys.__getSysVar('__useDebug')) { throw new Error('__終わる__') }
@@ -891,7 +890,7 @@ export default {
891
890
  type: 'func',
892
891
  josi: [['の']],
893
892
  pure: true,
894
- fn: function (v: any) {
893
+ fn: function(v: any) {
895
894
  return (typeof v)
896
895
  }
897
896
  },
@@ -899,7 +898,7 @@ export default {
899
898
  type: 'func',
900
899
  josi: [['の']],
901
900
  pure: true,
902
- fn: function (v: any) {
901
+ fn: function(v: any) {
903
902
  return (typeof v)
904
903
  }
905
904
  },
@@ -907,7 +906,7 @@ export default {
907
906
  type: 'func',
908
907
  josi: [['を']],
909
908
  pure: true,
910
- fn: function (v: any): string {
909
+ fn: function(v: any): string {
911
910
  return String(v)
912
911
  }
913
912
  },
@@ -915,7 +914,7 @@ export default {
915
914
  type: 'func',
916
915
  josi: [['を']],
917
916
  pure: true,
918
- fn: function (v: any): string {
917
+ fn: function(v: any): string {
919
918
  return String(v)
920
919
  }
921
920
  },
@@ -923,7 +922,7 @@ export default {
923
922
  type: 'func',
924
923
  josi: [['を']],
925
924
  pure: true,
926
- fn: function (v: any): number {
925
+ fn: function(v: any): number {
927
926
  return parseInt(v)
928
927
  }
929
928
  },
@@ -931,7 +930,7 @@ export default {
931
930
  type: 'func',
932
931
  josi: [['を']],
933
932
  pure: true,
934
- fn: function (v: any): number {
933
+ fn: function(v: any): number {
935
934
  return parseInt(v)
936
935
  }
937
936
  },
@@ -939,7 +938,7 @@ export default {
939
938
  type: 'func',
940
939
  josi: [['を']],
941
940
  pure: true,
942
- fn: function (v: any): number {
941
+ fn: function(v: any): number {
943
942
  return parseFloat(v)
944
943
  }
945
944
  },
@@ -947,7 +946,7 @@ export default {
947
946
  type: 'func',
948
947
  josi: [['を']],
949
948
  pure: true,
950
- fn: function (v: any): number {
949
+ fn: function(v: any): number {
951
950
  return parseFloat(v)
952
951
  }
953
952
  },
@@ -955,7 +954,7 @@ export default {
955
954
  type: 'func',
956
955
  josi: [['の']],
957
956
  pure: true,
958
- fn: function (v: any): number {
957
+ fn: function(v: any): number {
959
958
  return parseInt(v)
960
959
  }
961
960
  },
@@ -963,7 +962,7 @@ export default {
963
962
  type: 'func',
964
963
  josi: [['の']],
965
964
  pure: true,
966
- fn: function (v: any): number {
965
+ fn: function(v: any): number {
967
966
  return parseFloat(v)
968
967
  }
969
968
  },
@@ -971,7 +970,7 @@ export default {
971
970
  type: 'func',
972
971
  josi: [['を']],
973
972
  pure: true,
974
- fn: function (v: any): boolean {
973
+ fn: function(v: any): boolean {
975
974
  return isNaN(v)
976
975
  }
977
976
  },
@@ -979,7 +978,7 @@ export default {
979
978
  type: 'func',
980
979
  josi: [['を']],
981
980
  pure: true,
982
- fn: function (v: any): boolean {
981
+ fn: function(v: any): boolean {
983
982
  // https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN
984
983
  return Number.isNaN(v)
985
984
  }
@@ -988,7 +987,7 @@ export default {
988
987
  type: 'func',
989
988
  josi: [['の']],
990
989
  pure: true,
991
- fn: function (a: any): string {
990
+ fn: function(a: any): string {
992
991
  return parseInt(a).toString(16)
993
992
  }
994
993
  },
@@ -996,7 +995,7 @@ export default {
996
995
  type: 'func',
997
996
  josi: [['を', 'の'], ['']],
998
997
  pure: true,
999
- fn: function (v: any, n: number): string {
998
+ fn: function(v: any, n: number): string {
1000
999
  return parseInt(v).toString(n)
1001
1000
  }
1002
1001
  },
@@ -1004,7 +1003,7 @@ export default {
1004
1003
  type: 'func',
1005
1004
  josi: [['を', 'の', 'から']],
1006
1005
  pure: true,
1007
- fn: function (v: any): string {
1006
+ fn: function(v: any): string {
1008
1007
  return parseInt(v).toString(2)
1009
1008
  }
1010
1009
  },
@@ -1012,7 +1011,7 @@ export default {
1012
1011
  type: 'func',
1013
1012
  josi: [['を', 'の', 'から']],
1014
1013
  pure: true,
1015
- fn: function (v: any, sys: any) {
1014
+ fn: function(v: any, sys: any) {
1016
1015
  const s = parseInt(v).toString(2)
1017
1016
  sys.__exec('表示', [s, sys])
1018
1017
  }
@@ -1021,7 +1020,7 @@ export default {
1021
1020
  type: 'func',
1022
1021
  josi: [['と'], ['の'], ['で']],
1023
1022
  pure: true,
1024
- fn: function (r: any, g: any, b: any): string {
1023
+ fn: function(r: any, g: any, b: any): string {
1025
1024
  const z2 = (v: any): string => {
1026
1025
  const v2: string = '00' + (parseInt(String(v)).toString(16))
1027
1026
  return v2.substring(v2.length - 2, v2.length)
@@ -1035,7 +1034,7 @@ export default {
1035
1034
  type: 'func',
1036
1035
  josi: [['と'], ['の']],
1037
1036
  pure: true,
1038
- fn: function (a: any, b: any): any {
1037
+ fn: function(a: any, b: any): any {
1039
1038
  return (a || b)
1040
1039
  }
1041
1040
  },
@@ -1043,7 +1042,7 @@ export default {
1043
1042
  type: 'func',
1044
1043
  josi: [['と'], ['の']],
1045
1044
  pure: true,
1046
- fn: function (a: any, b: any): boolean {
1045
+ fn: function(a: any, b: any): boolean {
1047
1046
  return (a && b)
1048
1047
  }
1049
1048
  },
@@ -1051,7 +1050,7 @@ export default {
1051
1050
  type: 'func',
1052
1051
  josi: [['の']],
1053
1052
  pure: true,
1054
- fn: function (v: any): boolean {
1053
+ fn: function(v: any): boolean {
1055
1054
  return (!v)
1056
1055
  }
1057
1056
  },
@@ -1061,7 +1060,7 @@ export default {
1061
1060
  type: 'func',
1062
1061
  josi: [['と'], ['の']],
1063
1062
  pure: true,
1064
- fn: function (a: any, b: any): any {
1063
+ fn: function(a: any, b: any): any {
1065
1064
  return (a | b)
1066
1065
  }
1067
1066
  },
@@ -1069,7 +1068,7 @@ export default {
1069
1068
  type: 'func',
1070
1069
  josi: [['と'], ['の']],
1071
1070
  pure: true,
1072
- fn: function (a: any, b: any): any {
1071
+ fn: function(a: any, b: any): any {
1073
1072
  return (a & b)
1074
1073
  }
1075
1074
  },
@@ -1077,7 +1076,7 @@ export default {
1077
1076
  type: 'func',
1078
1077
  josi: [['と'], ['の']],
1079
1078
  pure: true,
1080
- fn: function (a: any, b: any): any {
1079
+ fn: function(a: any, b: any): any {
1081
1080
  return (a ^ b)
1082
1081
  }
1083
1082
  },
@@ -1085,7 +1084,7 @@ export default {
1085
1084
  type: 'func',
1086
1085
  josi: [['の']],
1087
1086
  pure: true,
1088
- fn: function (v: any): any {
1087
+ fn: function(v: any): any {
1089
1088
  return (~v)
1090
1089
  }
1091
1090
  },
@@ -1093,7 +1092,7 @@ export default {
1093
1092
  type: 'func',
1094
1093
  josi: [['を'], ['で']],
1095
1094
  pure: true,
1096
- fn: function (v: number, a: number): number {
1095
+ fn: function(v: number, a: number): number {
1097
1096
  return (v << a)
1098
1097
  }
1099
1098
  },
@@ -1101,7 +1100,7 @@ export default {
1101
1100
  type: 'func',
1102
1101
  josi: [['を'], ['で']],
1103
1102
  pure: true,
1104
- fn: function (v: number, a: number): number {
1103
+ fn: function(v: number, a: number): number {
1105
1104
  return (v >> a)
1106
1105
  }
1107
1106
  },
@@ -1109,7 +1108,7 @@ export default {
1109
1108
  type: 'func',
1110
1109
  josi: [['を'], ['で']],
1111
1110
  pure: true,
1112
- fn: function (v: number, a: number): number {
1111
+ fn: function(v: number, a: number): number {
1113
1112
  return (v >>> a)
1114
1113
  }
1115
1114
  },
@@ -1119,7 +1118,7 @@ export default {
1119
1118
  type: 'func',
1120
1119
  josi: [['の']],
1121
1120
  pure: true,
1122
- fn: function (v: any): number {
1121
+ fn: function(v: any): number {
1123
1122
  if (!Array.from) { return String(v).length }
1124
1123
  // Unicodeのサロゲートペアを考慮して文字数をカウント #1954 を参照
1125
1124
  return Array.from(v).length
@@ -1129,7 +1128,7 @@ export default {
1129
1128
  type: 'func',
1130
1129
  josi: [['で', 'の'], ['が']],
1131
1130
  pure: true,
1132
- fn: function (s: string, a: string): number {
1131
+ fn: function(s: string, a: string): number {
1133
1132
  // Unicodeのサロゲートペアを考慮して、文字列を検索 #1954 を参照
1134
1133
  // return String(s).indexOf(a) + 1 // サロゲートペアを無視した場合
1135
1134
  const strArray = Array.from(s)
@@ -1146,7 +1145,7 @@ export default {
1146
1145
  type: 'func',
1147
1146
  josi: [['の']],
1148
1147
  pure: true,
1149
- fn: function (v: number|number[]): string|string[] {
1148
+ fn: function(v: number|number[]): string|string[] {
1150
1149
  // 数値のとき
1151
1150
  if (typeof v === 'number') {
1152
1151
  if (!String.fromCodePoint) { return String.fromCharCode(v) }
@@ -1165,7 +1164,7 @@ export default {
1165
1164
  type: 'func',
1166
1165
  josi: [['の']],
1167
1166
  pure: true,
1168
- fn: function (v: string|string[]): number|number[] {
1167
+ fn: function(v: string|string[]): number|number[] {
1169
1168
  if (typeof v === 'string') {
1170
1169
  if (!String.prototype.codePointAt) { return String(v).charCodeAt(0) }
1171
1170
  return String(v).codePointAt(0) || 0
@@ -1182,7 +1181,7 @@ export default {
1182
1181
  type: 'func',
1183
1182
  josi: [['で', 'の'], ['に', 'へ'], ['を']],
1184
1183
  pure: true,
1185
- fn: function (s: string, i: number, a: string): string {
1184
+ fn: function(s: string, i: number, a: string): string {
1186
1185
  if (i <= 0) { i = 1 }
1187
1186
  const strArray = Array.from(s)
1188
1187
  strArray.splice(i - 1, 0, a)
@@ -1193,7 +1192,7 @@ export default {
1193
1192
  type: 'func',
1194
1193
  josi: [['で', 'の'], ['から'], ['を']],
1195
1194
  pure: true,
1196
- fn: function (s: string, a: number, b: string): number {
1195
+ fn: function(s: string, a: number, b: string): number {
1197
1196
  // サロゲートペアを考慮して文字列を検索する
1198
1197
  // return String(s).indexOf(b, a - 1) + 1
1199
1198
  if (a <= 0) { a = 1 }
@@ -1213,7 +1212,7 @@ export default {
1213
1212
  type: 'func',
1214
1213
  josi: [['で', 'に', 'へ'], ['を']],
1215
1214
  pure: true,
1216
- fn: function (s: any, a: any): any {
1215
+ fn: function(s: any, a: any): any {
1217
1216
  if (s instanceof Array) {
1218
1217
  s.push(a)
1219
1218
  return s
@@ -1225,7 +1224,7 @@ export default {
1225
1224
  type: 'func',
1226
1225
  josi: [['で', 'に', 'へ'], ['を']],
1227
1226
  pure: true,
1228
- fn: function (s: any, a: any): any {
1227
+ fn: function(s: any, a: any): any {
1229
1228
  if (s instanceof Array) {
1230
1229
  s.push(a)
1231
1230
  return s
@@ -1238,7 +1237,7 @@ export default {
1238
1237
  josi: [['と', 'を']],
1239
1238
  pure: true,
1240
1239
  isVariableJosi: true,
1241
- fn: function (...a: any) {
1240
+ fn: function(...a: any) {
1242
1241
  a.pop() // NakoSystemを取り除く
1243
1242
  return a.join('')
1244
1243
  }
@@ -1248,7 +1247,7 @@ export default {
1248
1247
  josi: [['と', 'を']],
1249
1248
  pure: true,
1250
1249
  isVariableJosi: true,
1251
- fn: function (...a: any) {
1250
+ fn: function(...a: any) {
1252
1251
  a.pop() // NakoSystemを取り除く
1253
1252
  return a.join('')
1254
1253
  }
@@ -1257,7 +1256,7 @@ export default {
1257
1256
  type: 'func',
1258
1257
  josi: [['を', 'の', 'で']],
1259
1258
  pure: true,
1260
- fn: function (v: any) {
1259
+ fn: function(v: any) {
1261
1260
  if (!Array.from) { return String(v).split('') }
1262
1261
  return Array.from(v)
1263
1262
  }
@@ -1266,7 +1265,7 @@ export default {
1266
1265
  type: 'func',
1267
1266
  josi: [['を', 'の'], ['で']],
1268
1267
  pure: true,
1269
- fn: function (v: any, cnt: number): string {
1268
+ fn: function(v: any, cnt: number): string {
1270
1269
  let s = ''
1271
1270
  for (let i = 0; i < cnt; i++) { s += String(v) }
1272
1271
  return s
@@ -1276,7 +1275,7 @@ export default {
1276
1275
  type: 'func',
1277
1276
  josi: [['で'], ['の']],
1278
1277
  pure: true,
1279
- fn: function (s: string, a: string) {
1278
+ fn: function(s: string, a: string) {
1280
1279
  s = '' + s
1281
1280
  a = '' + a
1282
1281
  return s.split(a).length - 1
@@ -1286,7 +1285,7 @@ export default {
1286
1285
  type: 'func',
1287
1286
  josi: [['で', 'の'], ['から'], ['を']],
1288
1287
  pure: true,
1289
- fn: function (s: any, a: any, cnt: number, sys: NakoSystem) {
1288
+ fn: function(s: any, a: any, cnt: number, sys: NakoSystem) {
1290
1289
  return sys.__exec('文字抜出', [s, a, cnt])
1291
1290
  }
1292
1291
  },
@@ -1294,7 +1293,7 @@ export default {
1294
1293
  type: 'func',
1295
1294
  josi: [['で', 'の'], ['から'], ['を', '']],
1296
1295
  pure: true,
1297
- fn: function (s: any, a: number, cnt: number) {
1296
+ fn: function(s: any, a: number, cnt: number) {
1298
1297
  // 引数の型チェック #1995
1299
1298
  if (typeof a === 'string') { a = parseInt(a) }
1300
1299
  if (typeof cnt === 'string') { cnt = parseInt(cnt) }
@@ -1314,7 +1313,7 @@ export default {
1314
1313
  type: 'func',
1315
1314
  josi: [['の', 'で'], ['だけ']],
1316
1315
  pure: true,
1317
- fn: function (s: string, cnt: number, sys: NakoSystem): string {
1316
+ fn: function(s: string, cnt: number, sys: NakoSystem): string {
1318
1317
  return sys.__exec('文字左部分', [s, cnt])
1319
1318
  }
1320
1319
  },
@@ -1322,7 +1321,7 @@ export default {
1322
1321
  type: 'func',
1323
1322
  josi: [['の', 'で'], ['だけ', '']],
1324
1323
  pure: true,
1325
- fn: function (s: string, cnt: number): string {
1324
+ fn: function(s: string, cnt: number): string {
1326
1325
  // return (String(s).substring(0, cnt))
1327
1326
  // サロゲートペアを考慮
1328
1327
  const strArray = Array.from(s)
@@ -1333,7 +1332,7 @@ export default {
1333
1332
  type: 'func',
1334
1333
  josi: [['の', 'で'], ['だけ']],
1335
1334
  pure: true,
1336
- fn: function (s: string, cnt: number, sys: NakoSystem): string {
1335
+ fn: function(s: string, cnt: number, sys: NakoSystem): string {
1337
1336
  return sys.__exec('文字右部分', [s, cnt])
1338
1337
  }
1339
1338
  },
@@ -1341,7 +1340,7 @@ export default {
1341
1340
  type: 'func',
1342
1341
  josi: [['の', 'で'], ['だけ', '']],
1343
1342
  pure: true,
1344
- fn: function (s: string, cnt: number): string {
1343
+ fn: function(s: string, cnt: number): string {
1345
1344
  // return (s.substring(s.length - cnt, s.length))
1346
1345
  // サロゲートペアを考慮
1347
1346
  const strArray = Array.from(s)
@@ -1354,7 +1353,7 @@ export default {
1354
1353
  type: 'func',
1355
1354
  josi: [['の', 'を'], ['で']],
1356
1355
  pure: true,
1357
- fn: function (s: string, a: string) {
1356
+ fn: function(s: string, a: string) {
1358
1357
  return ('' + s).split('' + a)
1359
1358
  }
1360
1359
  },
@@ -1362,7 +1361,7 @@ export default {
1362
1361
  type: 'func',
1363
1362
  josi: [['を'], ['で']],
1364
1363
  pure: true,
1365
- fn: function (s: string, a: string) {
1364
+ fn: function(s: string, a: string) {
1366
1365
  s = '' + s
1367
1366
  a = '' + a
1368
1367
  const i = s.indexOf(a)
@@ -1376,7 +1375,7 @@ export default {
1376
1375
  type: 'func',
1377
1376
  josi: [['から', 'の'], ['まで', 'を']],
1378
1377
  pure: true,
1379
- fn: function (s: string, a: string, sys: any) {
1378
+ fn: function(s: string, a: string, sys: any) {
1380
1379
  s = String(s)
1381
1380
  const i = s.indexOf(a)
1382
1381
  if (i < 0) {
@@ -1391,7 +1390,7 @@ export default {
1391
1390
  type: 'func',
1392
1391
  josi: [['で', 'の'], ['から'], ['まで', 'を']],
1393
1392
  pure: true,
1394
- fn: function (s: string, a: string, b: string, sys: any) {
1393
+ fn: function(s: string, a: string, b: string, sys: any) {
1395
1394
  s = String(s)
1396
1395
  let mae = ''
1397
1396
  let usiro = ''
@@ -1417,7 +1416,7 @@ export default {
1417
1416
  type: 'func',
1418
1417
  josi: [['の'], ['から'], ['だけ', 'を', '']],
1419
1418
  pure: true,
1420
- fn: function (s: string, a: number, b: number): string {
1419
+ fn: function(s: string, a: number, b: number): string {
1421
1420
  // サロゲートペアを考慮
1422
1421
  const strArray = Array.from(s)
1423
1422
  strArray.splice(a - 1, b)
@@ -1428,7 +1427,7 @@ export default {
1428
1427
  type: 'func',
1429
1428
  josi: [['が'], ['で', 'から']],
1430
1429
  pure: true,
1431
- fn: function (s: string, a: string): boolean {
1430
+ fn: function(s: string, a: string): boolean {
1432
1431
  return s.startsWith(a)
1433
1432
  }
1434
1433
  },
@@ -1436,7 +1435,7 @@ export default {
1436
1435
  type: 'func',
1437
1436
  josi: [['が'], ['で']],
1438
1437
  pure: true,
1439
- fn: function (s: string, a: string): boolean {
1438
+ fn: function(s: string, a: string): boolean {
1440
1439
  return s.endsWith(a)
1441
1440
  }
1442
1441
  },
@@ -1444,7 +1443,7 @@ export default {
1444
1443
  type: 'func',
1445
1444
  josi: [['に','で'], ['が']],
1446
1445
  pure: true,
1447
- fn: function (s: any, a: string): boolean {
1446
+ fn: function(s: any, a: string): boolean {
1448
1447
  if (typeof(s) === 'string') {
1449
1448
  return s.includes(a)
1450
1449
  }
@@ -1461,7 +1460,7 @@ export default {
1461
1460
  type: 'func',
1462
1461
  josi: [['の', 'で'], ['を', 'から'], ['に', 'へ']],
1463
1462
  pure: true,
1464
- fn: function (s: string, a: string, b: string) {
1463
+ fn: function(s: string, a: string, b: string) {
1465
1464
  return String(s).split(a).join(b)
1466
1465
  }
1467
1466
  },
@@ -1469,7 +1468,7 @@ export default {
1469
1468
  type: 'func',
1470
1469
  josi: [['の', 'で'], ['を'], ['に', 'へ']],
1471
1470
  pure: true,
1472
- fn: function (s: string, a: string, b: string) {
1471
+ fn: function(s: string, a: string, b: string) {
1473
1472
  // replaceは最初の一度だけ置換する
1474
1473
  return String(s).replace(a, b)
1475
1474
  }
@@ -1478,7 +1477,7 @@ export default {
1478
1477
  type: 'func',
1479
1478
  josi: [['の', 'を']],
1480
1479
  pure: true,
1481
- fn: function (s: string): string {
1480
+ fn: function(s: string): string {
1482
1481
  return String(s).replace(/^\s+/, '').replace(/\s+$/, '')
1483
1482
  }
1484
1483
  },
@@ -1486,7 +1485,7 @@ export default {
1486
1485
  type: 'func',
1487
1486
  josi: [['の', 'を']],
1488
1487
  pure: true,
1489
- fn: function (s: string): string {
1488
+ fn: function(s: string): string {
1490
1489
  return String(s).replace(/^\s+/, '').replace(/\s+$/, '')
1491
1490
  }
1492
1491
  },
@@ -1494,7 +1493,7 @@ export default {
1494
1493
  type: 'func',
1495
1494
  josi: [['の', 'を']],
1496
1495
  pure: true,
1497
- fn: function (s: string): string {
1496
+ fn: function(s: string): string {
1498
1497
  return String(s).replace(/\s+$/, '')
1499
1498
  }
1500
1499
  },
@@ -1502,7 +1501,7 @@ export default {
1502
1501
  type: 'func',
1503
1502
  josi: [['の', 'を']],
1504
1503
  pure: true,
1505
- fn: function (s: string): string {
1504
+ fn: function(s: string): string {
1506
1505
  return String(s).replace(/^\s+/, '')
1507
1506
  }
1508
1507
  },
@@ -1510,7 +1509,7 @@ export default {
1510
1509
  type: 'func',
1511
1510
  josi: [['の', 'を']],
1512
1511
  pure: true,
1513
- fn: function (s: string): string {
1512
+ fn: function(s: string): string {
1514
1513
  return String(s).replace(/\s+$/, '')
1515
1514
  }
1516
1515
  },
@@ -1520,7 +1519,7 @@ export default {
1520
1519
  type: 'func',
1521
1520
  josi: [['の', 'を']],
1522
1521
  pure: true,
1523
- fn: function (s: string): string {
1522
+ fn: function(s: string): string {
1524
1523
  return String(s).toUpperCase()
1525
1524
  }
1526
1525
  },
@@ -1528,7 +1527,7 @@ export default {
1528
1527
  type: 'func',
1529
1528
  josi: [['の', 'を']],
1530
1529
  pure: true,
1531
- fn: function (s: string): string {
1530
+ fn: function(s: string): string {
1532
1531
  return String(s).toLowerCase()
1533
1532
  }
1534
1533
  },
@@ -1536,9 +1535,9 @@ export default {
1536
1535
  type: 'func',
1537
1536
  josi: [['の', 'を']],
1538
1537
  pure: true,
1539
- fn: function (s: string): string {
1538
+ fn: function(s: string): string {
1540
1539
  const kanaToHira = (str: string) => {
1541
- return String(str).replace(/[\u30a1-\u30f6]/g, function (m: string) {
1540
+ return String(str).replace(/[\u30a1-\u30f6]/g, function(m: string) {
1542
1541
  const chr = m.charCodeAt(0) - 0x60
1543
1542
  return String.fromCharCode(chr)
1544
1543
  })
@@ -1550,9 +1549,9 @@ export default {
1550
1549
  type: 'func',
1551
1550
  josi: [['の', 'を']],
1552
1551
  pure: true,
1553
- fn: function (s: string): string {
1552
+ fn: function(s: string): string {
1554
1553
  const hiraToKana = (str: string) => {
1555
- return String(str).replace(/[\u3041-\u3096]/g, function (m: string) {
1554
+ return String(str).replace(/[\u3041-\u3096]/g, function(m: string) {
1556
1555
  const chr = m.charCodeAt(0) + 0x60
1557
1556
  return String.fromCharCode(chr)
1558
1557
  })
@@ -1564,8 +1563,8 @@ export default {
1564
1563
  type: 'func',
1565
1564
  josi: [['の', 'を']],
1566
1565
  pure: true,
1567
- fn: function (s: string): string {
1568
- return String(s).replace(/[A-Za-z0-9]/g, function (v: string) {
1566
+ fn: function(s: string): string {
1567
+ return String(s).replace(/[A-Za-z0-9]/g, function(v: string) {
1569
1568
  return String.fromCharCode(v.charCodeAt(0) + 0xFEE0)
1570
1569
  })
1571
1570
  }
@@ -1574,8 +1573,8 @@ export default {
1574
1573
  type: 'func',
1575
1574
  josi: [['の', 'を']],
1576
1575
  pure: true,
1577
- fn: function (s: string): string {
1578
- return String(s).replace(/[A-Za-z0-9]/g, function (v: string) {
1576
+ fn: function(s: string): string {
1577
+ return String(s).replace(/[A-Za-z0-9]/g, function(v: string) {
1579
1578
  return String.fromCharCode(v.charCodeAt(0) - 0xFEE0)
1580
1579
  })
1581
1580
  }
@@ -1584,8 +1583,8 @@ export default {
1584
1583
  type: 'func',
1585
1584
  josi: [['の', 'を']],
1586
1585
  pure: true,
1587
- fn: function (s: string): string {
1588
- return String(s).replace(/[\x20-\x7E]/g, function (v: string) {
1586
+ fn: function(s: string): string {
1587
+ return String(s).replace(/[\x20-\x7E]/g, function(v: string) {
1589
1588
  if (v === ' ') { return ' ' } // 半角スペース(0x20)を全角スペース(U+3000)に
1590
1589
  return String.fromCharCode(v.charCodeAt(0) + 0xFEE0)
1591
1590
  })
@@ -1595,8 +1594,8 @@ export default {
1595
1594
  type: 'func',
1596
1595
  josi: [['の', 'を']],
1597
1596
  pure: true,
1598
- fn: function (s: string): string {
1599
- return String(s).replace(/[\u3000\uFF00-\uFF5F]/g, function (v: string) {
1597
+ fn: function(s: string): string {
1598
+ return String(s).replace(/[\u3000\uFF00-\uFF5F]/g, function(v: string) {
1600
1599
  if (v === ' ') { return ' ' } // 全角スペース(U+3000)を半角スペース(U+0020)
1601
1600
  return String.fromCharCode(v.charCodeAt(0) - 0xFEE0)
1602
1601
  })
@@ -1606,7 +1605,7 @@ export default {
1606
1605
  type: 'func',
1607
1606
  josi: [['の', 'を']],
1608
1607
  pure: true,
1609
- fn: function (s: string, sys: any) {
1608
+ fn: function(s: string, sys: any) {
1610
1609
  // 半角カタカナ
1611
1610
  const zen1 = sys.__getSysVar('全角カナ一覧')
1612
1611
  const han1 = sys.__getSysVar('半角カナ一覧')
@@ -1641,7 +1640,7 @@ export default {
1641
1640
  type: 'func',
1642
1641
  josi: [['の', 'を']],
1643
1642
  pure: true,
1644
- fn: function (s: string, sys: any) {
1643
+ fn: function(s: string, sys: any) {
1645
1644
  // 半角カタカナ
1646
1645
  const zen1 = sys.__getSysVar('全角カナ一覧')
1647
1646
  const han1 = sys.__getSysVar('半角カナ一覧')
@@ -1664,7 +1663,7 @@ export default {
1664
1663
  type: 'func',
1665
1664
  josi: [['の', 'を']],
1666
1665
  pure: false,
1667
- fn: function (s: string, sys: any) {
1666
+ fn: function(s: string, sys: any) {
1668
1667
  let result = s
1669
1668
  result = sys.__exec('カタカナ全角変換', [result, sys])
1670
1669
  result = sys.__exec('英数記号全角変換', [result, sys])
@@ -1675,7 +1674,7 @@ export default {
1675
1674
  type: 'func',
1676
1675
  josi: [['の', 'を']],
1677
1676
  pure: false,
1678
- fn: function (s: string, sys: any) {
1677
+ fn: function(s: string, sys: any) {
1679
1678
  let result = s
1680
1679
  result = sys.__exec('カタカナ半角変換', [result, sys])
1681
1680
  result = sys.__exec('英数記号半角変換', [result, sys])
@@ -1692,7 +1691,7 @@ export default {
1692
1691
  type: 'func',
1693
1692
  josi: [['を', 'の']],
1694
1693
  pure: true,
1695
- fn: function (v: any) {
1694
+ fn: function(v: any) {
1696
1695
  return JSON.stringify(v)
1697
1696
  }
1698
1697
  },
@@ -1700,7 +1699,7 @@ export default {
1700
1699
  type: 'func',
1701
1700
  josi: [['を', 'の']],
1702
1701
  pure: true,
1703
- fn: function (v: any) {
1702
+ fn: function(v: any) {
1704
1703
  return JSON.stringify(v, null, 2)
1705
1704
  }
1706
1705
  },
@@ -1708,7 +1707,7 @@ export default {
1708
1707
  type: 'func',
1709
1708
  josi: [['を', 'の', 'から']],
1710
1709
  pure: true,
1711
- fn: function (s: string): string {
1710
+ fn: function(s: string): string {
1712
1711
  return JSON.parse(s)
1713
1712
  }
1714
1713
  },
@@ -1716,7 +1715,7 @@ export default {
1716
1715
  type: 'func',
1717
1716
  josi: [['を', 'の']],
1718
1717
  pure: true,
1719
- fn: function (v: any) {
1718
+ fn: function(v: any) {
1720
1719
  return JSON.stringify(v)
1721
1720
  }
1722
1721
  },
@@ -1724,7 +1723,7 @@ export default {
1724
1723
  type: 'func',
1725
1724
  josi: [['を', 'の']],
1726
1725
  pure: true,
1727
- fn: function (v: any) {
1726
+ fn: function(v: any) {
1728
1727
  return JSON.stringify(v, null, 2)
1729
1728
  }
1730
1729
  },
@@ -1732,7 +1731,7 @@ export default {
1732
1731
  type: 'func',
1733
1732
  josi: [['を', 'の', 'から']],
1734
1733
  pure: true,
1735
- fn: function (s: string): string {
1734
+ fn: function(s: string): string {
1736
1735
  return JSON.parse(s)
1737
1736
  }
1738
1737
  },
@@ -1742,7 +1741,7 @@ export default {
1742
1741
  type: 'func',
1743
1742
  josi: [['を', 'が'], ['で', 'に']],
1744
1743
  pure: true,
1745
- fn: function (a: string, b: string, sys: any): string {
1744
+ fn: function(a: string, b: string, sys: any): string {
1746
1745
  let re
1747
1746
  const f = ('' + b).match(/^\/(.+)\/([a-zA-Z]*)$/)
1748
1747
  // パターンがない場合
@@ -1768,7 +1767,7 @@ export default {
1768
1767
  type: 'func',
1769
1768
  josi: [['の'], ['を', 'から'], ['で', 'に', 'へ']],
1770
1769
  pure: true,
1771
- fn: function (s: string, a: string, b: string): string {
1770
+ fn: function(s: string, a: string, b: string): string {
1772
1771
  let re
1773
1772
  const f = a.match(/^\/(.+)\/([a-zA-Z]*)/)
1774
1773
  if (f === null) { re = new RegExp(a, 'g') } else { re = new RegExp(f[1], f[2]) }
@@ -1780,7 +1779,7 @@ export default {
1780
1779
  type: 'func',
1781
1780
  josi: [['を'], ['で']],
1782
1781
  pure: true,
1783
- fn: function (s: any, a: any) {
1782
+ fn: function(s: any, a: any) {
1784
1783
  let re
1785
1784
  const f = a.match(/^\/(.+)\/([a-zA-Z]*)/)
1786
1785
  if (f === null) { re = new RegExp(a, 'g') } else { re = new RegExp(f[1], f[2]) }
@@ -1794,7 +1793,7 @@ export default {
1794
1793
  type: 'func',
1795
1794
  josi: [['を', 'の']],
1796
1795
  pure: true,
1797
- fn: function (v: any) {
1796
+ fn: function(v: any) {
1798
1797
  return String(v).replace(/(?<!\.\d*?)(\d)(?=(\d\d\d)+(?!\d))/g, '$1,')
1799
1798
  }
1800
1799
  },
@@ -1802,7 +1801,7 @@ export default {
1802
1801
  type: 'func',
1803
1802
  josi: [['を'], ['で']],
1804
1803
  pure: true,
1805
- fn: function (v: any, a: any): string {
1804
+ fn: function(v: any, a: any): string {
1806
1805
  v = String(v)
1807
1806
  let z = '0'
1808
1807
  for (let i = 0; i < a; i++) { z += '0' }
@@ -1816,7 +1815,7 @@ export default {
1816
1815
  type: 'func',
1817
1816
  josi: [['を'], ['で']],
1818
1817
  pure: true,
1819
- fn: function (v: any, a: any): string {
1818
+ fn: function(v: any, a: any): string {
1820
1819
  v = String(v)
1821
1820
  let z = ' '
1822
1821
  for (let i = 0; i < a; i++) { z += ' ' }
@@ -1832,7 +1831,7 @@ export default {
1832
1831
  type: 'func',
1833
1832
  josi: [['を', 'の', 'が']],
1834
1833
  pure: true,
1835
- fn: function (s: any): boolean {
1834
+ fn: function(s: any): boolean {
1836
1835
  const c = String(s).charCodeAt(0)
1837
1836
  return (c >= 0x3041 && c <= 0x309F)
1838
1837
  }
@@ -1841,7 +1840,7 @@ export default {
1841
1840
  type: 'func',
1842
1841
  josi: [['を', 'の', 'が']],
1843
1842
  pure: true,
1844
- fn: function (s: any): boolean {
1843
+ fn: function(s: any): boolean {
1845
1844
  const c = String(s).charCodeAt(0)
1846
1845
  return (c >= 0x30A1 && c <= 0x30FA)
1847
1846
  }
@@ -1850,7 +1849,7 @@ export default {
1850
1849
  type: 'func',
1851
1850
  josi: [['を', 'が']],
1852
1851
  pure: true,
1853
- fn: function (s: any): boolean {
1852
+ fn: function(s: any): boolean {
1854
1853
  const c = String(s).charAt(0)
1855
1854
  return ((c >= '0' && c <= '9') || (c >= '0' && c <= '9'))
1856
1855
  }
@@ -1859,7 +1858,7 @@ export default {
1859
1858
  type: 'func',
1860
1859
  josi: [['を', 'が']],
1861
1860
  pure: true,
1862
- fn: function (s: any): boolean {
1861
+ fn: function(s: any): boolean {
1863
1862
  const checkerRE = /^[+\-+-]?([0-90-9]*)(([..][0-90-9]+)?|([..][0-90-9]+[eEeE][+\-+-]?[0-90-9]+)?)$/
1864
1863
  if (s === '') { return false } // 空文字列はfalse
1865
1864
  return String(s).match(checkerRE) !== null
@@ -1871,7 +1870,7 @@ export default {
1871
1870
  type: 'func',
1872
1871
  josi: [['を'], ['で']],
1873
1872
  pure: true,
1874
- fn: function (a: any, s: string): string {
1873
+ fn: function(a: any, s: string): string {
1875
1874
  // 配列ならOK
1876
1875
  if (a instanceof Array) { return a.join('' + s) }
1877
1876
 
@@ -1883,7 +1882,7 @@ export default {
1883
1882
  type: 'func',
1884
1883
  josi: [['を']],
1885
1884
  pure: true,
1886
- fn: function (a: any): string {
1885
+ fn: function(a: any): string {
1887
1886
  if (a instanceof Array) { return a.join('') }
1888
1887
  const a2 = String(a).split('\n') // 配列でなければ無理矢理改行で区切ってみる
1889
1888
  return a2.join('')
@@ -1893,7 +1892,7 @@ export default {
1893
1892
  type: 'func',
1894
1893
  josi: [['の', 'から'], ['を']],
1895
1894
  pure: true,
1896
- fn: function (a: any, s: any) {
1895
+ fn: function(a: any, s: any) {
1897
1896
  if (a instanceof Array) { return a.indexOf(s) }// 配列ならOK
1898
1897
 
1899
1898
  return -1
@@ -1903,7 +1902,7 @@ export default {
1903
1902
  type: 'func',
1904
1903
  josi: [['の']],
1905
1904
  pure: true,
1906
- fn: function (a: any) {
1905
+ fn: function(a: any) {
1907
1906
  if (a instanceof Array) { return a.length }// 配列ならOK
1908
1907
  if (a instanceof Object) { return Object.keys(a).length } // オブジェクト
1909
1908
  if (typeof a === 'string') { return String(a).length } // 文字列
@@ -1914,7 +1913,7 @@ export default {
1914
1913
  type: 'func',
1915
1914
  josi: [['の']],
1916
1915
  pure: true,
1917
- fn: function (a: any, sys: any) {
1916
+ fn: function(a: any, sys: any) {
1918
1917
  return sys.__exec('配列要素数', [a])
1919
1918
  }
1920
1919
  },
@@ -1922,7 +1921,7 @@ export default {
1922
1921
  type: 'func',
1923
1922
  josi: [['の']],
1924
1923
  pure: true,
1925
- fn: function (a: any, sys: any) {
1924
+ fn: function(a: any, sys: any) {
1926
1925
  return sys.__exec('配列要素数', [a])
1927
1926
  }
1928
1927
  },
@@ -1930,7 +1929,7 @@ export default {
1930
1929
  type: 'func',
1931
1930
  josi: [['の'], ['に', 'へ'], ['を']],
1932
1931
  pure: true,
1933
- fn: function (a: any, i: any, s: any) {
1932
+ fn: function(a: any, i: any, s: any) {
1934
1933
  if (a instanceof Array) { return a.splice(i, 0, s) } // 配列ならOK
1935
1934
 
1936
1935
  throw new Error('『配列挿入』で配列以外の要素への挿入。')
@@ -1940,7 +1939,7 @@ export default {
1940
1939
  type: 'func',
1941
1940
  josi: [['の'], ['に', 'へ'], ['を']],
1942
1941
  pure: true,
1943
- fn: function (a: any, i: number, b: any) {
1942
+ fn: function(a: any, i: number, b: any) {
1944
1943
  if (a instanceof Array && b instanceof Array) { // 配列ならOK
1945
1944
  for (let j = 0; j < b.length; j++) { a.splice(i + j, 0, b[j]) }
1946
1945
 
@@ -1953,7 +1952,7 @@ export default {
1953
1952
  type: 'func',
1954
1953
  josi: [['の', 'を']],
1955
1954
  pure: true,
1956
- fn: function (a: any) {
1955
+ fn: function(a: any) {
1957
1956
  if (a instanceof Array) { return a.sort() } // 配列ならOK
1958
1957
 
1959
1958
  throw new Error('『配列ソート』で配列以外が指定されました。')
@@ -1963,7 +1962,7 @@ export default {
1963
1962
  type: 'func',
1964
1963
  josi: [['の', 'を']],
1965
1964
  pure: true,
1966
- fn: function (a: any) {
1965
+ fn: function(a: any) {
1967
1966
  // 配列ならOK
1968
1967
  if (a instanceof Array) {
1969
1968
  for (let i = 0; i < a.length; i++) {
@@ -1978,7 +1977,7 @@ export default {
1978
1977
  type: 'func',
1979
1978
  josi: [['の', 'を']],
1980
1979
  pure: true,
1981
- fn: function (a: any) {
1980
+ fn: function(a: any) {
1982
1981
  // 配列ならOK
1983
1982
  if (a instanceof Array) {
1984
1983
  return a.sort((a, b) => {
@@ -1993,7 +1992,7 @@ export default {
1993
1992
  type: 'func',
1994
1993
  josi: [['で'], ['の', 'を']],
1995
1994
  pure: false,
1996
- fn: function (f: any, a: any, sys: any) {
1995
+ fn: function(f: any, a: any, sys: any) {
1997
1996
  let ufunc = f
1998
1997
  if (typeof f === 'string') {
1999
1998
  ufunc = sys.__findFunc(f, '配列カスタムソート')
@@ -2008,7 +2007,7 @@ export default {
2008
2007
  type: 'func',
2009
2008
  josi: [['の', 'を']],
2010
2009
  pure: true,
2011
- fn: function (a: any) {
2010
+ fn: function(a: any) {
2012
2011
  if (a instanceof Array) { return a.reverse() } // 配列ならOK
2013
2012
  throw new Error('『配列ソート』で配列以外が指定されました。')
2014
2013
  }
@@ -2017,7 +2016,7 @@ export default {
2017
2016
  type: 'func',
2018
2017
  josi: [['の', 'を']],
2019
2018
  pure: true,
2020
- fn: function (a: any) {
2019
+ fn: function(a: any) {
2021
2020
  if (a instanceof Array) { // 配列ならOK
2022
2021
  for (let i = a.length - 1; i > 0; i--) {
2023
2022
  const r = Math.floor(Math.random() * (i + 1))
@@ -2034,7 +2033,7 @@ export default {
2034
2033
  type: 'func',
2035
2034
  josi: [['の', 'から'], ['を']],
2036
2035
  pure: true,
2037
- fn: function (a: any, i: any, sys: any) {
2036
+ fn: function(a: any, i: any, sys: any) {
2038
2037
  return sys.__exec('配列切取', [a, i, sys])
2039
2038
  }
2040
2039
  },
@@ -2042,7 +2041,7 @@ export default {
2042
2041
  type: 'func',
2043
2042
  josi: [['の', 'から'], ['を']],
2044
2043
  pure: true,
2045
- fn: function (a: any, i: any) {
2044
+ fn: function(a: any, i: any) {
2046
2045
  // 配列変数のとき
2047
2046
  if (a instanceof Array) {
2048
2047
  if (typeof i === 'number') {
@@ -2072,7 +2071,7 @@ export default {
2072
2071
  type: 'func',
2073
2072
  josi: [['の'], ['から'], ['を']],
2074
2073
  pure: true,
2075
- fn: function (a: any, i: any, cnt: any) {
2074
+ fn: function(a: any, i: any, cnt: any) {
2076
2075
  if (a instanceof Array) { return a.splice(i, cnt) }
2077
2076
  throw new Error('『配列取出』で配列以外を指定。')
2078
2077
  }
@@ -2081,7 +2080,7 @@ export default {
2081
2080
  type: 'func',
2082
2081
  josi: [['の', 'から']],
2083
2082
  pure: true,
2084
- fn: function (a: any) {
2083
+ fn: function(a: any) {
2085
2084
  if (a instanceof Array) { return a.pop() }
2086
2085
  throw new Error('『配列ポップ』で配列以外の処理。')
2087
2086
  }
@@ -2090,7 +2089,7 @@ export default {
2090
2089
  type: 'func',
2091
2090
  josi: [['に', 'へ'], ['を']],
2092
2091
  pure: true,
2093
- fn: function (a: any, b: any, sys: any) {
2092
+ fn: function(a: any, b: any, sys: any) {
2094
2093
  return sys.__exec('配列追加', [a, b, sys])
2095
2094
  }
2096
2095
  },
@@ -2098,7 +2097,7 @@ export default {
2098
2097
  type: 'func',
2099
2098
  josi: [['に', 'へ'], ['を']],
2100
2099
  pure: true,
2101
- fn: function (a: any, b: any) {
2100
+ fn: function(a: any, b: any) {
2102
2101
  if (a instanceof Array) { // 配列ならOK
2103
2102
  a.push(b)
2104
2103
  return a
@@ -2110,7 +2109,7 @@ export default {
2110
2109
  type: 'func',
2111
2110
  josi: [['を']],
2112
2111
  pure: true,
2113
- fn: function (a: any) {
2112
+ fn: function(a: any) {
2114
2113
  return JSON.parse(JSON.stringify(a))
2115
2114
  }
2116
2115
  },
@@ -2118,7 +2117,7 @@ export default {
2118
2117
  type: 'func',
2119
2118
  josi: [['の', 'から'], ['を']],
2120
2119
  pure: true,
2121
- fn: function (a: any, i: any) {
2120
+ fn: function(a: any, i: any) {
2122
2121
  if (!Array.isArray(a)) {
2123
2122
  throw new Error('『配列範囲コピー』で配列以外の値が指定されました。')
2124
2123
  }
@@ -2141,8 +2140,7 @@ export default {
2141
2140
  type: 'func',
2142
2141
  josi: [['から', 'の'], ['を']],
2143
2142
  pure: true,
2144
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2145
- fn: function (a: any, i: any, sys: any) {
2143
+ fn: function(a: any, i: any, sys: any) {
2146
2144
  // 文字列のとき
2147
2145
  if (typeof a === 'string') {
2148
2146
  if (typeof i === 'number') {
@@ -2179,7 +2177,7 @@ export default {
2179
2177
  type: 'func',
2180
2178
  josi: [['の', 'から'], ['を']],
2181
2179
  pure: true,
2182
- fn: function (a: any, i: any, sys: any) {
2180
+ fn: function(a: any, i: any, sys: any) {
2183
2181
  return sys.__exec('参照', [a, i, sys])
2184
2182
  }
2185
2183
  },
@@ -2187,7 +2185,7 @@ export default {
2187
2185
  type: 'func',
2188
2186
  josi: [['に', 'へ', 'と'], ['を']],
2189
2187
  pure: true,
2190
- fn: function (a: any, b: any) {
2188
+ fn: function(a: any, b: any) {
2191
2189
  if (a instanceof Array) {
2192
2190
  return a.concat(b)
2193
2191
  }
@@ -2198,7 +2196,7 @@ export default {
2198
2196
  type: 'func',
2199
2197
  josi: [['の']],
2200
2198
  pure: true,
2201
- fn: function (a: any) {
2199
+ fn: function(a: any) {
2202
2200
  return a.reduce((x: any, y: any) => Math.max(x, y))
2203
2201
  }
2204
2202
  },
@@ -2206,7 +2204,7 @@ export default {
2206
2204
  type: 'func',
2207
2205
  josi: [['の']],
2208
2206
  pure: true,
2209
- fn: function (a: any) {
2207
+ fn: function(a: any) {
2210
2208
  return a.reduce((x: any, y: any) => Math.min(x, y))
2211
2209
  }
2212
2210
  },
@@ -2214,7 +2212,7 @@ export default {
2214
2212
  type: 'func',
2215
2213
  josi: [['の']],
2216
2214
  pure: true,
2217
- fn: function (a: any) {
2215
+ fn: function(a: any) {
2218
2216
  if (a instanceof Array) {
2219
2217
  let v = 0
2220
2218
  a.forEach((n) => {
@@ -2231,7 +2229,7 @@ export default {
2231
2229
  type: 'func',
2232
2230
  josi: [['の'], ['と'], ['を']],
2233
2231
  pure: true,
2234
- fn: function (a: any, i: number, j: number) {
2232
+ fn: function(a: any, i: number, j: number) {
2235
2233
  if (!(a instanceof Array)) {
2236
2234
  throw new Error('『配列入替』の第1引数には配列を指定してください。')
2237
2235
  }
@@ -2245,7 +2243,7 @@ export default {
2245
2243
  type: 'func',
2246
2244
  josi: [['から'], ['までの', 'まで', 'の']],
2247
2245
  pure: true,
2248
- fn: function (a: number, b: number) {
2246
+ fn: function(a: number, b: number) {
2249
2247
  const result: number[] = []
2250
2248
  for (let i = a; i <= b; i++) {
2251
2249
  result.push(i)
@@ -2257,7 +2255,7 @@ export default {
2257
2255
  type: 'func',
2258
2256
  josi: [['を'], ['だけ', 'で']],
2259
2257
  pure: true,
2260
- fn: function (a: any, b: number | number[]) {
2258
+ fn: function(a: any, b: number | number[]) {
2261
2259
  // value が配列やオブジェクトでも深くコピーするヘルパー
2262
2260
  const cloneValue = (v: any): any => {
2263
2261
  if (Array.isArray(v)) {
@@ -2272,7 +2270,7 @@ export default {
2272
2270
  return v
2273
2271
  }
2274
2272
  // 再帰的に配列を生成する関数
2275
- const full = function (value: any, shape: number | number[]): any {
2273
+ const full = function(value: any, shape: number | number[]): any {
2276
2274
  // 1次元:shape が数値
2277
2275
  if (!Array.isArray(shape)) {
2278
2276
  return Array.from({ length: shape }, () => cloneValue(value))
@@ -2295,7 +2293,7 @@ export default {
2295
2293
  type: 'func',
2296
2294
  josi: [['を'], ['へ', 'に']],
2297
2295
  pure: true,
2298
- fn: function (f: any, a: any, sys: any) {
2296
+ fn: function(f: any, a: any, sys: any) {
2299
2297
  let ufunc: any = f
2300
2298
  if (typeof f === 'string') { ufunc = sys.__findFunc(f, '配列関数適用') }
2301
2299
  const result: any = []
@@ -2309,7 +2307,7 @@ export default {
2309
2307
  type: 'func',
2310
2308
  josi: [['を'], ['へ', 'に']],
2311
2309
  pure: true,
2312
- fn: function (f: any, a: any, sys: any) {
2310
+ fn: function(f: any, a: any, sys: any) {
2313
2311
  return sys.__exec('配列関数適用', [f, a, sys])
2314
2312
  }
2315
2313
  },
@@ -2317,7 +2315,7 @@ export default {
2317
2315
  type: 'func',
2318
2316
  josi: [['で', 'の'], ['を', 'について']],
2319
2317
  pure: true,
2320
- fn: function (f: any, a: any, sys: any) {
2318
+ fn: function(f: any, a: any, sys: any) {
2321
2319
  let ufunc: any = f
2322
2320
  if (typeof f === 'string') { ufunc = sys.__findFunc(f, '配列フィルタ') }
2323
2321
  const result: any = []
@@ -2332,7 +2330,7 @@ export default {
2332
2330
  type: 'func',
2333
2331
  josi: [['の'], ['を']],
2334
2332
  pure: true,
2335
- fn: function (a: any, no: any) {
2333
+ fn: function(a: any, no: any) {
2336
2334
  if (!(a instanceof Array)) {
2337
2335
  throw new Error('『表ソート』には配列を指定する必要があります。')
2338
2336
  }
@@ -2355,7 +2353,7 @@ export default {
2355
2353
  type: 'func',
2356
2354
  josi: [['の'], ['を']],
2357
2355
  pure: true,
2358
- fn: function (a: any, no: number) {
2356
+ fn: function(a: any, no: number) {
2359
2357
  if (!(a instanceof Array)) {
2360
2358
  throw new Error('『表数値ソート』には配列を指定する必要があります。')
2361
2359
  }
@@ -2371,7 +2369,7 @@ export default {
2371
2369
  type: 'func',
2372
2370
  josi: [['の'], ['から'], ['を', 'で']],
2373
2371
  pure: true,
2374
- fn: function (a: any, no: number, s: any) {
2372
+ fn: function(a: any, no: number, s: any) {
2375
2373
  if (!(a instanceof Array)) { throw new Error('『表ピックアップ』には配列を指定する必要があります。') }
2376
2374
  return a.filter((row) => String(row[no]).indexOf(s) >= 0)
2377
2375
  }
@@ -2380,7 +2378,7 @@ export default {
2380
2378
  type: 'func',
2381
2379
  josi: [['の'], ['から'], ['を', 'で']],
2382
2380
  pure: true,
2383
- fn: function (a: any, no: number, s: any) {
2381
+ fn: function(a: any, no: number, s: any) {
2384
2382
  if (!(a instanceof Array)) { throw new Error('『表完全ピックアップ』には配列を指定する必要があります。') }
2385
2383
  return a.filter((row) => row[no] === s)
2386
2384
  }
@@ -2389,7 +2387,7 @@ export default {
2389
2387
  type: 'func',
2390
2388
  josi: [['の'], ['で', 'に'], ['から'], ['を']],
2391
2389
  pure: true,
2392
- fn: function (a: any, col: number, row: number, s: any) {
2390
+ fn: function(a: any, col: number, row: number, s: any) {
2393
2391
  if (!(a instanceof Array)) { throw new Error('『表検索』には配列を指定する必要があります。') }
2394
2392
  for (let i = row; i < a.length; i++) {
2395
2393
  if (a[i][col] === s) { return i }
@@ -2401,7 +2399,7 @@ export default {
2401
2399
  type: 'func',
2402
2400
  josi: [['の']],
2403
2401
  pure: true,
2404
- fn: function (a: any) {
2402
+ fn: function(a: any) {
2405
2403
  if (!(a instanceof Array)) { throw new Error('『表列数』には配列を指定する必要があります。') }
2406
2404
  let cols = 1
2407
2405
  for (let i = 0; i < a.length; i++) {
@@ -2414,7 +2412,7 @@ export default {
2414
2412
  type: 'func',
2415
2413
  josi: [['の']],
2416
2414
  pure: true,
2417
- fn: function (a: any) {
2415
+ fn: function(a: any) {
2418
2416
  if (!(a instanceof Array)) { throw new Error('『表行数』には配列を指定する必要があります。') }
2419
2417
  return a.length
2420
2418
  }
@@ -2423,7 +2421,7 @@ export default {
2423
2421
  type: 'func',
2424
2422
  josi: [['の', 'を']],
2425
2423
  pure: true,
2426
- fn: function (a: any, sys: any) {
2424
+ fn: function(a: any, sys: any) {
2427
2425
  if (!(a instanceof Array)) { throw new Error('『表行列交換』には配列を指定する必要があります。') }
2428
2426
  const cols = sys.__exec('表列数', [a])
2429
2427
  const rows = a.length
@@ -2442,7 +2440,7 @@ export default {
2442
2440
  type: 'func',
2443
2441
  josi: [['の', 'を']],
2444
2442
  pure: true,
2445
- fn: function (a: any, sys: any) {
2443
+ fn: function(a: any, sys: any) {
2446
2444
  if (!(a instanceof Array)) { throw new Error('『表右回転』には配列を指定する必要があります。') }
2447
2445
  const cols = sys.__exec('表列数', [a])
2448
2446
  const rows = a.length
@@ -2461,7 +2459,7 @@ export default {
2461
2459
  type: 'func',
2462
2460
  josi: [['の'], ['を', 'で']],
2463
2461
  pure: true,
2464
- fn: function (a: any, i: any) {
2462
+ fn: function(a: any, i: any) {
2465
2463
  if (!(a instanceof Array)) { throw new Error('『表重複削除』には配列を指定する必要があります。') }
2466
2464
  const res: any[] = []
2467
2465
  const keys:{[key: string]: boolean} = {}
@@ -2479,7 +2477,7 @@ export default {
2479
2477
  type: 'func',
2480
2478
  josi: [['の'], ['を']],
2481
2479
  pure: true,
2482
- fn: function (a: any, i: number) {
2480
+ fn: function(a: any, i: number) {
2483
2481
  if (!(a instanceof Array)) { throw new Error('『表列取得』には配列を指定する必要があります。') }
2484
2482
  const res = a.map(row => row[i])
2485
2483
  return res
@@ -2489,7 +2487,7 @@ export default {
2489
2487
  type: 'func',
2490
2488
  josi: [['の'], ['に', 'へ'], ['を']],
2491
2489
  pure: true,
2492
- fn: function (a: any, i: any, s: any) {
2490
+ fn: function(a: any, i: any, s: any) {
2493
2491
  if (!(a instanceof Array)) { throw new Error('『表列挿入』には配列を指定する必要があります。') }
2494
2492
  const res: any[] = []
2495
2493
  a.forEach((row, idx) => {
@@ -2506,7 +2504,7 @@ export default {
2506
2504
  type: 'func',
2507
2505
  josi: [['の'], ['を']],
2508
2506
  pure: true,
2509
- fn: function (a: any, i: any) {
2507
+ fn: function(a: any, i: any) {
2510
2508
  if (!(a instanceof Array)) { throw new Error('『表列削除』には配列を指定する必要があります。') }
2511
2509
  const res: any[] = []
2512
2510
  a.forEach((row) => {
@@ -2521,7 +2519,7 @@ export default {
2521
2519
  type: 'func',
2522
2520
  josi: [['の'], ['を', 'で']],
2523
2521
  pure: true,
2524
- fn: function (a: any, i: any) {
2522
+ fn: function(a: any, i: any) {
2525
2523
  if (!(a instanceof Array)) { throw new Error('『表列合計』には配列を指定する必要があります。') }
2526
2524
  let sum = 0
2527
2525
  a.forEach((row) => { sum += row[i] })
@@ -2532,7 +2530,7 @@ export default {
2532
2530
  type: 'func',
2533
2531
  josi: [['の'], ['から'], ['で'], ['を']],
2534
2532
  pure: true,
2535
- fn: function (a: any, row: any, col: any, s: any) {
2533
+ fn: function(a: any, row: any, col: any, s: any) {
2536
2534
  if (!(a instanceof Array)) { throw new Error('『表曖昧検索』には配列を指定する必要があります。') }
2537
2535
  const re = new RegExp(s)
2538
2536
  for (let i = row; i < a.length; i++) {
@@ -2546,7 +2544,7 @@ export default {
2546
2544
  type: 'func',
2547
2545
  josi: [['の', 'で'], ['から'], ['を']],
2548
2546
  pure: true,
2549
- fn: function (a: any, col: any, s: any) {
2547
+ fn: function(a: any, col: any, s: any) {
2550
2548
  if (!(a instanceof Array)) { throw new Error('『表正規表現ピックアップ』には配列を指定する必要があります。') }
2551
2549
  const re = new RegExp(s)
2552
2550
  const res = []
@@ -2562,7 +2560,7 @@ export default {
2562
2560
  type: 'func',
2563
2561
  josi: [['の']],
2564
2562
  pure: true,
2565
- fn: function (a: any) {
2563
+ fn: function(a: any) {
2566
2564
  const keys = []
2567
2565
  if (a instanceof Object) { // オブジェクトのキーを返す
2568
2566
  for (const key in a) { keys.push(key) }
@@ -2579,7 +2577,7 @@ export default {
2579
2577
  type: 'func',
2580
2578
  josi: [['から', 'の'], ['を']],
2581
2579
  pure: true,
2582
- fn: function (a: any, key: any) {
2580
+ fn: function(a: any, key: any) {
2583
2581
  if (a instanceof Object) { // オブジェクトのキーを返す
2584
2582
  if (key in a) { delete a[key] }
2585
2583
  return a
@@ -2591,7 +2589,7 @@ export default {
2591
2589
  type: 'func',
2592
2590
  josi: [['の', 'に'], ['が']],
2593
2591
  pure: true,
2594
- fn: function (a: any, key: any) {
2592
+ fn: function(a: any, key: any) {
2595
2593
  return key in a
2596
2594
  }
2597
2595
  },
@@ -2600,7 +2598,7 @@ export default {
2600
2598
  type: 'func',
2601
2599
  josi: [['の']],
2602
2600
  pure: true,
2603
- fn: function (a: any, sys: any) {
2601
+ fn: function(a: any, sys: any) {
2604
2602
  return sys.__exec('辞書キー列挙', [a, sys])
2605
2603
  }
2606
2604
  },
@@ -2608,7 +2606,7 @@ export default {
2608
2606
  type: 'func',
2609
2607
  josi: [['の']],
2610
2608
  pure: true,
2611
- fn: function (a: any) {
2609
+ fn: function(a: any) {
2612
2610
  const body = []
2613
2611
  if (a instanceof Object) { // オブジェクトのキーを返す
2614
2612
  for (const key in a) { body.push(a[key]) }
@@ -2621,7 +2619,7 @@ export default {
2621
2619
  type: 'func',
2622
2620
  josi: [['から', 'の'], ['を']],
2623
2621
  pure: true,
2624
- fn: function (a: any, key: any, sys: any) {
2622
+ fn: function(a: any, key: any, sys: any) {
2625
2623
  return sys.__exec('辞書キー削除', [a, key, sys])
2626
2624
  }
2627
2625
  },
@@ -2629,7 +2627,7 @@ export default {
2629
2627
  type: 'func',
2630
2628
  josi: [['の', 'に'], ['が']],
2631
2629
  pure: true,
2632
- fn: function (a: any, key: any) {
2630
+ fn: function(a: any, key: any) {
2633
2631
  return key in a
2634
2632
  }
2635
2633
  },
@@ -2639,7 +2637,7 @@ export default {
2639
2637
  josi: [['']],
2640
2638
  pure: true,
2641
2639
  asyncFn: true,
2642
- fn: function (n: any, sys:any): Promise<void> {
2640
+ fn: function(n: any, sys:any): Promise<void> {
2643
2641
  return new Promise((resolve, reject) => {
2644
2642
  try {
2645
2643
  // タイマーを仕掛ける
@@ -2664,7 +2662,7 @@ export default {
2664
2662
  josi: [['']],
2665
2663
  pure: true,
2666
2664
  asyncFn: true,
2667
- fn: async function (n: any, sys: any) {
2665
+ fn: async function(n: any, sys: any) {
2668
2666
  const p = sys.__exec('秒待', [n, sys])
2669
2667
  return await p
2670
2668
  },
@@ -2675,7 +2673,7 @@ export default {
2675
2673
  josi: [['']],
2676
2674
  pure: true,
2677
2675
  asyncFn: true,
2678
- fn: async function (n: any, sys: any) {
2676
+ fn: async function(n: any, sys: any) {
2679
2677
  const p = sys.__exec('秒待', [n, sys])
2680
2678
  return await p
2681
2679
  },
@@ -2685,7 +2683,7 @@ export default {
2685
2683
  type: 'func',
2686
2684
  josi: [['を'], ['']],
2687
2685
  pure: true,
2688
- fn: function (f: any, n: any, sys: any) {
2686
+ fn: function(f: any, n: any, sys: any) {
2689
2687
  // 文字列で指定された関数をオブジェクトに変換
2690
2688
  if (typeof f === 'string') { f = sys.__findFunc(f, '秒後') }
2691
2689
  // 1回限りのタイマーをセット
@@ -2712,7 +2710,7 @@ export default {
2712
2710
  type: 'func',
2713
2711
  josi: [['を'], ['']],
2714
2712
  pure: false,
2715
- fn: function (f: any, n: any, sys: any) {
2713
+ fn: function(f: any, n: any, sys: any) {
2716
2714
  // 文字列で指定された関数をオブジェクトに変換
2717
2715
  if (typeof f === 'string') { f = sys.__findFunc(f, '秒毎') }
2718
2716
  // タイマーをセット
@@ -2729,7 +2727,7 @@ export default {
2729
2727
  type: 'func',
2730
2728
  josi: [['を'], ['']],
2731
2729
  pure: false,
2732
- fn: function (f: any, n: any, sys: any) {
2730
+ fn: function(f: any, n: any, sys: any) {
2733
2731
  return sys.__exec('秒毎', [f, n, sys])
2734
2732
  }
2735
2733
  },
@@ -2737,7 +2735,7 @@ export default {
2737
2735
  type: 'func',
2738
2736
  josi: [['の', 'で']],
2739
2737
  pure: true,
2740
- fn: function (timerId: any, sys: any) {
2738
+ fn: function(timerId: any, sys: any) {
2741
2739
  const i = sys.__interval.indexOf(timerId)
2742
2740
  if (i >= 0) {
2743
2741
  sys.__interval.splice(i, 1)
@@ -2758,7 +2756,7 @@ export default {
2758
2756
  type: 'func',
2759
2757
  josi: [],
2760
2758
  pure: true,
2761
- fn: function (sys: NakoSystem) {
2759
+ fn: function(sys: NakoSystem) {
2762
2760
  // clearInterval
2763
2761
  for (let i = 0; i < sys.__interval.length; i++) {
2764
2762
  const timerId = sys.__interval[i]
@@ -2780,7 +2778,7 @@ export default {
2780
2778
  type: 'func',
2781
2779
  josi: [],
2782
2780
  pure: true,
2783
- fn: function () {
2781
+ fn: function() {
2784
2782
  const z2 = (n: number): string => {
2785
2783
  const ns = '00' + String(n)
2786
2784
  return ns.substring(ns.length - 2, ns.length)
@@ -2793,7 +2791,7 @@ export default {
2793
2791
  type: 'func',
2794
2792
  josi: [],
2795
2793
  pure: true,
2796
- fn: function () {
2794
+ fn: function() {
2797
2795
  const now = new Date()
2798
2796
  return Math.floor(now.getTime() / 1000)
2799
2797
  }
@@ -2802,7 +2800,7 @@ export default {
2802
2800
  type: 'func',
2803
2801
  josi: [],
2804
2802
  pure: true,
2805
- fn: function () {
2803
+ fn: function() {
2806
2804
  const now = new Date()
2807
2805
  return now.getTime()
2808
2806
  }
@@ -2811,7 +2809,7 @@ export default {
2811
2809
  type: 'func',
2812
2810
  josi: [],
2813
2811
  pure: true,
2814
- fn: function (sys: NakoSystem) {
2812
+ fn: function(sys: NakoSystem) {
2815
2813
  return sys.__formatDate(new Date())
2816
2814
  }
2817
2815
  },
@@ -2819,7 +2817,7 @@ export default {
2819
2817
  type: 'func',
2820
2818
  josi: [],
2821
2819
  pure: true,
2822
- fn: function (sys: NakoSystem) {
2820
+ fn: function(sys: NakoSystem) {
2823
2821
  const t = Date.now() + (24 * 60 * 60 * 1000)
2824
2822
  return sys.__formatDate(new Date(t))
2825
2823
  }
@@ -2828,7 +2826,7 @@ export default {
2828
2826
  type: 'func',
2829
2827
  josi: [],
2830
2828
  pure: true,
2831
- fn: function (sys: NakoSystem) {
2829
+ fn: function(sys: NakoSystem) {
2832
2830
  const t = Date.now() - (24 * 60 * 60 * 1000)
2833
2831
  return sys.__formatDate(new Date(t))
2834
2832
  }
@@ -2837,7 +2835,7 @@ export default {
2837
2835
  type: 'func',
2838
2836
  josi: [],
2839
2837
  pure: true,
2840
- fn: function () {
2838
+ fn: function() {
2841
2839
  return (new Date()).getFullYear()
2842
2840
  }
2843
2841
  },
@@ -2845,7 +2843,7 @@ export default {
2845
2843
  type: 'func',
2846
2844
  josi: [],
2847
2845
  pure: true,
2848
- fn: function () {
2846
+ fn: function() {
2849
2847
  return (new Date()).getFullYear() + 1
2850
2848
  }
2851
2849
  },
@@ -2853,7 +2851,7 @@ export default {
2853
2851
  type: 'func',
2854
2852
  josi: [],
2855
2853
  pure: true,
2856
- fn: function () {
2854
+ fn: function() {
2857
2855
  return (new Date()).getFullYear() - 1
2858
2856
  }
2859
2857
  },
@@ -2861,7 +2859,7 @@ export default {
2861
2859
  type: 'func',
2862
2860
  josi: [],
2863
2861
  pure: true,
2864
- fn: function () {
2862
+ fn: function() {
2865
2863
  return (new Date()).getMonth() + 1
2866
2864
  }
2867
2865
  },
@@ -2869,7 +2867,7 @@ export default {
2869
2867
  type: 'func',
2870
2868
  josi: [],
2871
2869
  pure: true,
2872
- fn: function () {
2870
+ fn: function() {
2873
2871
  return (new Date()).getMonth() + 2
2874
2872
  }
2875
2873
  },
@@ -2877,7 +2875,7 @@ export default {
2877
2875
  type: 'func',
2878
2876
  josi: [],
2879
2877
  pure: true,
2880
- fn: function () {
2878
+ fn: function() {
2881
2879
  return (new Date()).getMonth()
2882
2880
  }
2883
2881
  },
@@ -2885,7 +2883,7 @@ export default {
2885
2883
  type: 'func',
2886
2884
  josi: [['の']],
2887
2885
  pure: true,
2888
- fn: function (s: string, sys: any) {
2886
+ fn: function(s: string, sys: any) {
2889
2887
  const d = sys.__str2date(s)
2890
2888
  return '日月火水木金土'.charAt(d.getDay() % 7)
2891
2889
  }
@@ -2894,7 +2892,7 @@ export default {
2894
2892
  type: 'func',
2895
2893
  josi: [['の']],
2896
2894
  pure: true,
2897
- fn: function (s: any) {
2895
+ fn: function(s: any) {
2898
2896
  const a = s.split('/')
2899
2897
  const t = new Date(a[0], a[1] - 1, a[2])
2900
2898
  return t.getDay()
@@ -2904,7 +2902,7 @@ export default {
2904
2902
  type: 'func',
2905
2903
  josi: [['の', 'を', 'から']],
2906
2904
  pure: true,
2907
- fn: function (s: string, sys: any) {
2905
+ fn: function(s: string, sys: any) {
2908
2906
  const d = sys.__str2date(s)
2909
2907
  return d.getTime() / 1000
2910
2908
  }
@@ -2913,7 +2911,7 @@ export default {
2913
2911
  type: 'func',
2914
2912
  josi: [['の', 'を', 'から']],
2915
2913
  pure: true,
2916
- fn: function (s: string, sys: any) {
2914
+ fn: function(s: string, sys: any) {
2917
2915
  const d = sys.__str2date(s)
2918
2916
  return d.getTime() / 1000
2919
2917
  }
@@ -2922,7 +2920,7 @@ export default {
2922
2920
  type: 'func',
2923
2921
  josi: [['を', 'から']],
2924
2922
  pure: true,
2925
- fn: function (tm: any, sys: any) {
2923
+ fn: function(tm: any, sys: any) {
2926
2924
  const t = tm * 1000
2927
2925
  return sys.__formatDateTime(new Date(t), '2022/01/01 00:00:00')
2928
2926
  }
@@ -2931,26 +2929,26 @@ export default {
2931
2929
  type: 'func',
2932
2930
  josi: [['を'], ['で']],
2933
2931
  pure: true,
2934
- fn: function (tm: any, fmt: any, sys: any) {
2932
+ fn: function(tm: any, fmt: any, sys: any) {
2935
2933
  const t = sys.__str2date(tm)
2936
2934
  fmt = fmt.replace(/(YYYY|ccc|WWW|MMM|YY|MM|DD|HH|mm|ss|[MDHmsW])/g, (m: string) => {
2937
2935
  switch (m) {
2938
- case 'YYYY': return t.getFullYear()
2939
- case 'YY': return (String(t.getFullYear())).substring(2)
2940
- case 'MM': return sys.__zero2(String(t.getMonth() as number + 1))
2941
- case 'DD': return sys.__zero2(t.getDate())
2942
- case 'M': return (t.getMonth() as number + 1)
2943
- case 'D': return (t.getDate())
2944
- case 'HH': return sys.__zero2(t.getHours())
2945
- case 'mm': return sys.__zero2(t.getMinutes())
2946
- case 'ss': return sys.__zero2(t.getSeconds())
2947
- case 'ccc': return sys.__zero(t.getMilliseconds(), 3)
2948
- case 'H': return (t.getHours())
2949
- case 'm': return (t.getMinutes())
2950
- case 's': return (t.getSeconds())
2951
- case 'W': return '日月火水木金土'.charAt(t.getDay() % 7)
2952
- case 'WWW': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][t.getDay() % 7]
2953
- case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][t.getMonth()]
2936
+ case 'YYYY': return t.getFullYear()
2937
+ case 'YY': return (String(t.getFullYear())).substring(2)
2938
+ case 'MM': return sys.__zero2(String(t.getMonth() as number + 1))
2939
+ case 'DD': return sys.__zero2(t.getDate())
2940
+ case 'M': return (t.getMonth() as number + 1)
2941
+ case 'D': return (t.getDate())
2942
+ case 'HH': return sys.__zero2(t.getHours())
2943
+ case 'mm': return sys.__zero2(t.getMinutes())
2944
+ case 'ss': return sys.__zero2(t.getSeconds())
2945
+ case 'ccc': return sys.__zero(t.getMilliseconds(), 3)
2946
+ case 'H': return (t.getHours())
2947
+ case 'm': return (t.getMinutes())
2948
+ case 's': return (t.getSeconds())
2949
+ case 'W': return '日月火水木金土'.charAt(t.getDay() % 7)
2950
+ case 'WWW': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][t.getDay() % 7]
2951
+ case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][t.getMonth()]
2954
2952
  }
2955
2953
  return m
2956
2954
  })
@@ -2961,7 +2959,7 @@ export default {
2961
2959
  type: 'func',
2962
2960
  josi: [['を']],
2963
2961
  pure: true,
2964
- fn: function (s: string, sys: NakoSystem) {
2962
+ fn: function(s: string, sys: NakoSystem) {
2965
2963
  const d = sys.__str2date(s)
2966
2964
  const t = d.getTime()
2967
2965
  for (const era of sys.__getSysVar('元号データ')) {
@@ -2981,7 +2979,7 @@ export default {
2981
2979
  type: 'func',
2982
2980
  josi: [['と', 'から'], ['の', 'までの']],
2983
2981
  pure: true,
2984
- fn: function (a: any, b: any, sys: any) {
2982
+ fn: function(a: any, b: any, sys: any) {
2985
2983
  const t1 = sys.__str2date(a)
2986
2984
  const t2 = sys.__str2date(b)
2987
2985
  return (t2.getFullYear() - t1.getFullYear())
@@ -2991,7 +2989,7 @@ export default {
2991
2989
  type: 'func',
2992
2990
  josi: [['と', 'から'], ['の', 'までの']],
2993
2991
  pure: true,
2994
- fn: function (a: any, b: any, sys: any) {
2992
+ fn: function(a: any, b: any, sys: any) {
2995
2993
  const t1 = sys.__str2date(a)
2996
2994
  const t2 = sys.__str2date(b)
2997
2995
  return (t2.getFullYear() * 12 + Number(t2.getMonth())) -
@@ -3002,7 +3000,7 @@ export default {
3002
3000
  type: 'func',
3003
3001
  josi: [['と', 'から'], ['の', 'までの']],
3004
3002
  pure: true,
3005
- fn: function (a: any, b: any, sys: any) {
3003
+ fn: function(a: any, b: any, sys: any) {
3006
3004
  const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
3007
3005
  const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
3008
3006
  const days = Math.ceil((t2 - t1) / (60 * 60 * 24))
@@ -3013,7 +3011,7 @@ export default {
3013
3011
  type: 'func',
3014
3012
  josi: [['と', 'から'], ['の', 'までの']],
3015
3013
  pure: true,
3016
- fn: function (a: any, b: any, sys: any) {
3014
+ fn: function(a: any, b: any, sys: any) {
3017
3015
  const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
3018
3016
  const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
3019
3017
  const hours = Math.ceil((t2 - t1) / (60 * 60))
@@ -3024,7 +3022,7 @@ export default {
3024
3022
  type: 'func',
3025
3023
  josi: [['と', 'から'], ['の', 'までの']],
3026
3024
  pure: true,
3027
- fn: function (a: any, b: any, sys: any) {
3025
+ fn: function(a: any, b: any, sys: any) {
3028
3026
  const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
3029
3027
  const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
3030
3028
  const min = Math.ceil((t2 - t1) / (60))
@@ -3035,7 +3033,7 @@ export default {
3035
3033
  type: 'func',
3036
3034
  josi: [['と', 'から'], ['の', 'までの']],
3037
3035
  pure: true,
3038
- fn: function (a: any, b: any, sys: any) {
3036
+ fn: function(a: any, b: any, sys: any) {
3039
3037
  const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
3040
3038
  const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
3041
3039
  const sec = Math.ceil((t2 - t1))
@@ -3046,14 +3044,14 @@ export default {
3046
3044
  type: 'func',
3047
3045
  josi: [['と', 'から'], ['の', 'までの'], ['による']],
3048
3046
  pure: true,
3049
- fn: function (a: any, b: any, unit: string, sys: any): string {
3047
+ fn: function(a: any, b: any, unit: string, sys: any): string {
3050
3048
  switch (unit) {
3051
- case '年': return sys.__exec('年数差', [a, b, sys])
3052
- case '月': return sys.__exec('月数差', [a, b, sys])
3053
- case '日': return sys.__exec('日数差', [a, b, sys])
3054
- case '時間': return sys.__exec('時間差', [a, b, sys])
3055
- case '分': return sys.__exec('分差', [a, b, sys])
3056
- case '秒': return sys.__exec('秒差', [a, b, sys])
3049
+ case '年': return sys.__exec('年数差', [a, b, sys])
3050
+ case '月': return sys.__exec('月数差', [a, b, sys])
3051
+ case '日': return sys.__exec('日数差', [a, b, sys])
3052
+ case '時間': return sys.__exec('時間差', [a, b, sys])
3053
+ case '分': return sys.__exec('分差', [a, b, sys])
3054
+ case '秒': return sys.__exec('秒差', [a, b, sys])
3057
3055
  }
3058
3056
  throw new Error('『日時差』で不明な単位です。')
3059
3057
  }
@@ -3062,7 +3060,7 @@ export default {
3062
3060
  type: 'func',
3063
3061
  josi: [['に'], ['を']],
3064
3062
  pure: true,
3065
- fn: function (s: string, a: string, sys: any) {
3063
+ fn: function(s: string, a: string, sys: any) {
3066
3064
  const op = a.charAt(0)
3067
3065
  if (op === '-' || op === '+') {
3068
3066
  a = a.substring(1)
@@ -3081,7 +3079,7 @@ export default {
3081
3079
  type: 'func',
3082
3080
  josi: [['に'], ['を']],
3083
3081
  pure: true,
3084
- fn: function (s: string, a: string, sys: any) {
3082
+ fn: function(s: string, a: string, sys: any) {
3085
3083
  let op = 1
3086
3084
  const opc = a.charAt(0)
3087
3085
  if (opc === '-' || opc === '+') {
@@ -3103,17 +3101,17 @@ export default {
3103
3101
  type: 'func',
3104
3102
  josi: [['に'], ['を']],
3105
3103
  pure: true,
3106
- fn: function (s: string, a: string, sys: any) {
3104
+ fn: function(s: string, a: string, sys: any) {
3107
3105
  const r = ('' + a).match(/([+|-]?)(\d+)(年|ヶ月|日|週間|時間|分|秒)$/)
3108
3106
  if (!r) { throw new Error('『日付加算』は『(+|-)1(年|ヶ月|日|時間|分|秒)』の書式で指定します。') }
3109
3107
  switch (r[3]) {
3110
- case '年': return sys.__exec('日付加算', [s, `${r[1]}${r[2]}/0/0`, sys])
3111
- case 'ヶ月': return sys.__exec('日付加算', [s, `${r[1]}0/${r[2]}/0`, sys])
3112
- case '週間': return sys.__exec('日付加算', [s, `${r[1]}0/0/${parseInt(r[2]) * 7}`, sys])
3113
- case '日': return sys.__exec('日付加算', [s, `${r[1]}0/0/${r[2]}`, sys])
3114
- case '時間': return sys.__exec('時間加算', [s, `${r[1]}${r[2]}:0:0`, sys])
3115
- case '分': return sys.__exec('時間加算', [s, `${r[1]}0:${r[2]}:0`, sys])
3116
- case '秒': return sys.__exec('時間加算', [s, `${r[1]}0:0:${r[2]}`, sys])
3108
+ case '年': return sys.__exec('日付加算', [s, `${r[1]}${r[2]}/0/0`, sys])
3109
+ case 'ヶ月': return sys.__exec('日付加算', [s, `${r[1]}0/${r[2]}/0`, sys])
3110
+ case '週間': return sys.__exec('日付加算', [s, `${r[1]}0/0/${parseInt(r[2]) * 7}`, sys])
3111
+ case '日': return sys.__exec('日付加算', [s, `${r[1]}0/0/${r[2]}`, sys])
3112
+ case '時間': return sys.__exec('時間加算', [s, `${r[1]}${r[2]}:0:0`, sys])
3113
+ case '分': return sys.__exec('時間加算', [s, `${r[1]}0:${r[2]}:0`, sys])
3114
+ case '秒': return sys.__exec('時間加算', [s, `${r[1]}0:0:${r[2]}`, sys])
3117
3115
  }
3118
3116
  }
3119
3117
  },
@@ -3121,7 +3119,7 @@ export default {
3121
3119
  type: 'func',
3122
3120
  josi: [],
3123
3121
  pure: true,
3124
- fn: function () {
3122
+ fn: function() {
3125
3123
  if (performance && performance.now) {
3126
3124
  return performance.now()
3127
3125
  } else if (Date.now) {
@@ -3137,7 +3135,7 @@ export default {
3137
3135
  type: 'func',
3138
3136
  josi: [['と', 'を', 'の']],
3139
3137
  pure: true,
3140
- fn: function (s: any, sys: NakoSystem) {
3138
+ fn: function(s: any, sys: NakoSystem) {
3141
3139
  // 行番号の情報を得る
3142
3140
  const lineInfo: string = String(sys.__getSysVar('__line', 0)) + '::'
3143
3141
  const a = lineInfo.split(':', 2)
@@ -3156,7 +3154,7 @@ export default {
3156
3154
  type: 'func',
3157
3155
  josi: [['を', 'の']],
3158
3156
  pure: true,
3159
- fn: function (s: any, sys: NakoSystem) {
3157
+ fn: function(s: any, sys: NakoSystem) {
3160
3158
  if (typeof s === 'function') {
3161
3159
  sys.__hatena = s
3162
3160
  return
@@ -3190,7 +3188,7 @@ export default {
3190
3188
  type: 'func',
3191
3189
  josi: [['の', 'を', 'と']],
3192
3190
  pure: true,
3193
- fn: function (s: any, sys: NakoSystem) {
3191
+ fn: function(s: any, sys: NakoSystem) {
3194
3192
  sys.__hatena(s, sys)
3195
3193
  },
3196
3194
  return_none: true
@@ -3199,7 +3197,7 @@ export default {
3199
3197
  type: 'func',
3200
3198
  josi: [['の', 'で']],
3201
3199
  pure: true,
3202
- fn: function (s: any) {
3200
+ fn: function(s: any) {
3203
3201
  throw new Error(s)
3204
3202
  },
3205
3203
  return_none: true
@@ -3208,7 +3206,7 @@ export default {
3208
3206
  type: 'func',
3209
3207
  josi: [],
3210
3208
  pure: true,
3211
- fn: function (sys: NakoSystem) {
3209
+ fn: function(sys: NakoSystem) {
3212
3210
  sys.isDebug = true
3213
3211
  console.log(sys)
3214
3212
  }
@@ -3221,7 +3219,7 @@ export default {
3221
3219
  josi: [['で']],
3222
3220
  pure: true,
3223
3221
  asyncFn: true,
3224
- fn: function (curLine: number, sys: any) {
3222
+ fn: function(curLine: number, sys: any) {
3225
3223
  return new Promise((resolve) => {
3226
3224
  const breakpoints = sys.__getSysVar('__DEBUGブレイクポイント一覧')
3227
3225
  const forceLine = sys.__getSysVar('__DEBUG強制待機')
@@ -3247,7 +3245,7 @@ export default {
3247
3245
  type: 'func',
3248
3246
  josi: [],
3249
3247
  pure: true,
3250
- fn: function (sys: NakoSystem) {
3248
+ fn: function(sys: NakoSystem) {
3251
3249
  const vars: Map<string, any> = (sys as any).__varslist[1]
3252
3250
  const res: string[] = []
3253
3251
  for (const key of vars.keys()) {
@@ -3260,7 +3258,7 @@ export default {
3260
3258
  type: 'func',
3261
3259
  josi: [],
3262
3260
  pure: true,
3263
- fn: function (sys: NakoSystem) {
3261
+ fn: function(sys: NakoSystem) {
3264
3262
  const vars: Map<string, any> = (sys as any).__v0
3265
3263
  const res: string[] = []
3266
3264
  for (const key of vars.keys()) {
@@ -3274,7 +3272,7 @@ export default {
3274
3272
  type: 'func',
3275
3273
  josi: [['が', 'の']],
3276
3274
  pure: true,
3277
- fn: function (fname: string, sys: any) {
3275
+ fn: function(fname: string, sys: any) {
3278
3276
  return (typeof sys.__getSysVar(fname) !== 'undefined')
3279
3277
  }
3280
3278
  },
@@ -3282,7 +3280,7 @@ export default {
3282
3280
  type: 'func',
3283
3281
  josi: [],
3284
3282
  pure: true,
3285
- fn: function (sys: NakoSystem) {
3283
+ fn: function(sys: NakoSystem) {
3286
3284
  const a = []
3287
3285
  for (const f in (sys as any).pluginfiles) { a.push(f) }
3288
3286
  return a
@@ -3292,7 +3290,7 @@ export default {
3292
3290
  type: 'func',
3293
3291
  josi: [],
3294
3292
  pure: true,
3295
- fn: function (sys: NakoSystem) {
3293
+ fn: function(sys: NakoSystem) {
3296
3294
  const a = []
3297
3295
  for (const f in (sys as any).__module) { a.push(f) }
3298
3296
  return a
@@ -3303,7 +3301,7 @@ export default {
3303
3301
  josi: [],
3304
3302
  pure: true,
3305
3303
  asyncFn: false,
3306
- fn: function (sys: NakoSystem) {
3304
+ fn: function(sys: NakoSystem) {
3307
3305
  return sys.josiList
3308
3306
  }
3309
3307
  },
@@ -3312,7 +3310,7 @@ export default {
3312
3310
  josi: [],
3313
3311
  pure: true,
3314
3312
  asyncFn: false,
3315
- fn: function (sys: NakoSystem) {
3313
+ fn: function(sys: NakoSystem) {
3316
3314
  return sys.reservedWords
3317
3315
  }
3318
3316
  },
@@ -3322,7 +3320,7 @@ export default {
3322
3320
  type: 'func',
3323
3321
  josi: [['に', 'へ']],
3324
3322
  pure: true,
3325
- fn: function (s: string, sys: any) {
3323
+ fn: function(s: string, sys: any) {
3326
3324
  sys.__setSysVar('プラグイン名', s)
3327
3325
  },
3328
3326
  return_none: true
@@ -3332,7 +3330,7 @@ export default {
3332
3330
  type: 'func',
3333
3331
  josi: [['に', 'へ']],
3334
3332
  pure: true,
3335
- fn: function (s: string, sys: NakoSystem) {
3333
+ fn: function(s: string, sys: NakoSystem) {
3336
3334
  // push namespace
3337
3335
  (sys as any).__namespaceList.push([sys.__getSysVar('名前空間'), sys.__getSysVar('プラグイン名')])
3338
3336
  sys.__setSysVar('名前空間', s)
@@ -3343,7 +3341,7 @@ export default {
3343
3341
  type: 'func',
3344
3342
  josi: [],
3345
3343
  pure: true,
3346
- fn: function (sys: NakoSystem) {
3344
+ fn: function(sys: NakoSystem) {
3347
3345
  // pop namespace
3348
3346
  const a = (sys as any).__namespaceList.pop()
3349
3347
  if (a) {
@@ -3359,7 +3357,7 @@ export default {
3359
3357
  type: 'func',
3360
3358
  josi: [['を', 'から']],
3361
3359
  pure: true,
3362
- fn: function (text: any) {
3360
+ fn: function(text: any) {
3363
3361
  return encodeURIComponent(text)
3364
3362
  }
3365
3363
  },
@@ -3367,7 +3365,7 @@ export default {
3367
3365
  type: 'func',
3368
3366
  josi: [['を', 'へ', 'に']],
3369
3367
  pure: true,
3370
- fn: function (text: any) {
3368
+ fn: function(text: any) {
3371
3369
  return decodeURIComponent(text)
3372
3370
  }
3373
3371
  },
@@ -3375,7 +3373,7 @@ export default {
3375
3373
  type: 'func',
3376
3374
  josi: [['を', 'の', 'から']],
3377
3375
  pure: true,
3378
- fn: function (url: string, sys: any) {
3376
+ fn: function(url: string, sys: any) {
3379
3377
  const res: any = {}
3380
3378
  if (typeof url !== 'string') {
3381
3379
  return res
@@ -3399,7 +3397,7 @@ export default {
3399
3397
  type: 'func',
3400
3398
  josi: [['を', 'から']],
3401
3399
  pure: true,
3402
- fn: function (text: any) {
3400
+ fn: function(text: any) {
3403
3401
  // browser?
3404
3402
  if (typeof (window) !== 'undefined' && (window as any).btoa) {
3405
3403
  const u8a: any = new TextEncoder().encode(text)
@@ -3417,7 +3415,7 @@ export default {
3417
3415
  type: 'func',
3418
3416
  josi: [['を', 'へ', 'に']],
3419
3417
  pure: true,
3420
- fn: function (text: any) {
3418
+ fn: function(text: any) {
3421
3419
  if (typeof (window) !== 'undefined' && (window as any).atob) {
3422
3420
  const decodedUtf8str = atob(text)
3423
3421
  const dec: any = Array.prototype.map.call(decodedUtf8str, c => c.charCodeAt())
@@ -3436,7 +3434,7 @@ export default {
3436
3434
  type: 'func',
3437
3435
  josi: [['から', 'の']],
3438
3436
  pure: true,
3439
- fn: function (fname: string, sys: NakoSystem) {
3437
+ fn: function(fname: string, sys: NakoSystem) {
3440
3438
  if (fname === null || fname === undefined) { return '' }
3441
3439
  const sep = sys.pathSeparator || '/'
3442
3440
  if (fname.indexOf(sep) >= 0) { // パス記号があればファイル名を抽出
@@ -3452,7 +3450,7 @@ export default {
3452
3450
  type: 'func',
3453
3451
  josi: [['の', 'を', 'から'], ['に', 'へ']],
3454
3452
  pure: true,
3455
- fn: function (fname: string, ext: string, sys: NakoSystem) {
3453
+ fn: function(fname: string, ext: string, sys: NakoSystem) {
3456
3454
  if (fname === null || fname === undefined) { return ext }
3457
3455
  const sep = sys.pathSeparator || '/'
3458
3456
  const pathList = fname.split(sep)
@@ -3471,7 +3469,7 @@ export default {
3471
3469
  type: 'func',
3472
3470
  josi: [['に', 'へ']],
3473
3471
  pure: true,
3474
- fn: function (path: string, sys: NakoSystem) {
3472
+ fn: function(path: string, sys: NakoSystem) {
3475
3473
  const sep = sys.pathSeparator || '/'
3476
3474
  if (path === undefined || path === null || path === '') {
3477
3475
  return ''
@@ -3486,7 +3484,7 @@ export default {
3486
3484
  type: 'func',
3487
3485
  josi: [['の', 'から']],
3488
3486
  pure: true,
3489
- fn: function (dir: string, sys: NakoSystem) {
3487
+ fn: function(dir: string, sys: NakoSystem) {
3490
3488
  const sep = sys.pathSeparator || '/'
3491
3489
  if (!dir) { return '' }
3492
3490
  if (dir.endsWith(sep)) {
@@ -3496,11 +3494,11 @@ export default {
3496
3494
  }
3497
3495
  }
3498
3496
  },
3499
- '終端パス削除': { // @フォルダ名DIRの末尾にあるパス記号を削除する // @しゅうたんぱすじょきょ
3497
+ '終端パス削除': { // @フォルダ名DIRの末尾にあるパス記号を削除する // @しゅうたんぱすさくじょ
3500
3498
  type: 'func',
3501
3499
  josi: [['の', 'から']],
3502
3500
  pure: true,
3503
- fn: function (dir: string, sys: NakoSystem) {
3501
+ fn: function(dir: string, sys: NakoSystem) {
3504
3502
  return sys.__exec('終端パス除去', [dir, sys])
3505
3503
  }
3506
3504
  },
@@ -3508,7 +3506,7 @@ export default {
3508
3506
  type: 'func',
3509
3507
  josi: [['の', 'から']],
3510
3508
  pure: true,
3511
- fn: function (dir: string, sys: NakoSystem) {
3509
+ fn: function(dir: string, sys: NakoSystem) {
3512
3510
  const sep = sys.pathSeparator || '/'
3513
3511
  const parts = dir.split(sep)
3514
3512
  return parts[parts.length - 1]
@@ -3518,11 +3516,11 @@ export default {
3518
3516
  type: 'func',
3519
3517
  josi: [['の', 'から']],
3520
3518
  pure: true,
3521
- fn: function (dir: string, sys: NakoSystem) {
3519
+ fn: function(dir: string, sys: NakoSystem) {
3522
3520
  const sep = sys.pathSeparator || '/'
3523
3521
  const parts = dir.split(sep)
3524
3522
  parts.pop()
3525
3523
  return parts.join(sep)
3526
3524
  }
3527
- },
3525
+ }
3528
3526
  }