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