nadesiko3 3.7.13 → 3.7.15

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