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