nadesiko3 3.4.9 → 3.4.10
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 +21 -17
- package/batch/command_nakopad.txt +4 -0
- package/core/.eslintrc.cjs +1 -0
- package/core/index.mjs +1 -1
- package/core/index.mts +1 -1
- package/core/package.json +1 -1
- package/core/src/nako_gen.mjs +17 -11
- package/core/src/nako_gen.mts +18 -12
- package/core/src/nako_lex_rules.mjs +1 -0
- package/core/src/nako_lex_rules.mts +1 -0
- package/core/src/nako_parser_const.mjs +2 -1
- package/core/src/nako_parser_const.mts +2 -1
- package/core/src/plugin_system.mjs +31 -1
- package/core/src/plugin_system.mts +30 -1
- package/core/test/calc_test.mjs +5 -0
- package/core/test/dncl2_test.mjs +6 -0
- package/package.json +1 -2
- package/release/_hash.txt +24 -24
- package/release/_script-tags.txt +14 -14
- 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/editor.js +1 -1
- package/release/editor.js.map +1 -1
- package/release/nako_gen_async.js +1 -1
- package/release/nako_gen_async.js.map +1 -1
- package/release/stats.json +1 -1
- package/release/version.js +1 -1
- package/release/version.js.map +1 -1
- package/release/wnako3.js +1 -1
- package/release/wnako3.js.map +1 -1
- package/release/wnako3webworker.js +1 -1
- package/release/wnako3webworker.js.map +1 -1
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/wnako3_editor.css +6 -1
- package/src/wnako3_editor.mjs +27 -17
- package/src/wnako3_editor.mts +33 -20
package/batch/command.txt
CHANGED
|
@@ -279,26 +279,30 @@
|
|
|
279
279
|
●デバッグ支援
|
|
280
280
|
| 関数 | エラー発生 | Sの/Sで | 故意にエラーSを発生させる | えらーはっせい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2648
|
|
281
281
|
| 関数 | __DEBUG | | デバッグモードにする | __DEBUG | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2656
|
|
282
|
-
|
|
|
283
|
-
|
|
|
284
|
-
|
|
|
285
|
-
| 関数 |
|
|
286
|
-
| 関数 |
|
|
287
|
-
| 関数 |
|
|
288
|
-
| 関数 |
|
|
282
|
+
| 定数 | __DEBUG強制待機 | | 0 | __DEBUGきょうせいたいき | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2661
|
|
283
|
+
| 定数 | __DEBUGブレイクポイント一覧 | | [] | __DEBUGぶれいくぽいんといちらん | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2662
|
|
284
|
+
| 定数 | __DEBUG待機フラグ | | 0 | __DEBUG待機フラグ | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2663
|
|
285
|
+
| 関数 | __DEBUG_BP_WAIT | CURLINEで | エディタのブレイクポイント機能のための待機 | __DEBUG_BP_WAIT | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2669
|
|
286
|
+
| 関数 | グローバル関数一覧取得 | | グローバル変数にある関数一覧を取得 | ぐろーばるかんすういちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2694
|
|
287
|
+
| 関数 | システム関数一覧取得 | | システム関数の一覧を取得 | しすてむかんすういちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2709
|
|
288
|
+
| 関数 | システム関数存在 | FNAMEが/FNAMEの | 文字列で関数名を指定してシステム関数が存在するかを調べる | しすてむかんすうそんざい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2724
|
|
289
|
+
| 関数 | プラグイン一覧取得 | | 利用中のプラグイン一覧を得る | ぷらぐいんいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2732
|
|
290
|
+
| 関数 | モジュール一覧取得 | | 取り込んだモジュール一覧を得る | もじゅーるいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2743
|
|
291
|
+
| 関数 | 助詞一覧取得 | | 文法として定義されている助詞の一覧を取得する | じょしいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2755
|
|
292
|
+
| 関数 | 予約語一覧取得 | | 文法として定義されている予約語の一覧を取得する | よやくごいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2773
|
|
289
293
|
●プラグイン管理
|
|
290
|
-
| 定数 | プラグイン名 | | 'メイン' | ぷらぐいんめい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
291
|
-
| 関数 | プラグイン名設定 | Sに/Sへ | プラグイン名をSに変更する(システムにより自動的に「メイン」あるいはプラグインのファイル名が呼ばれる) | プラグインめいせってい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
292
|
-
| 定数 | 名前空間 | | '' | なまえくうかん | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
293
|
-
| 関数 | 名前空間設定 | Sに/Sへ | 名前空間をSに設定する(システムにより自動的に変更される。ファイル名から拡張子を削ったもの) | なまえくうかんせってい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
294
|
-
| 関数 | 名前空間ポップ | | システム利用のため呼ぶべからず。(名前空間を一つ前の値に戻す) | なまえくうかんぽっぷ | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
294
|
+
| 定数 | プラグイン名 | | 'メイン' | ぷらぐいんめい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2792
|
|
295
|
+
| 関数 | プラグイン名設定 | Sに/Sへ | プラグイン名をSに変更する(システムにより自動的に「メイン」あるいはプラグインのファイル名が呼ばれる) | プラグインめいせってい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2797
|
|
296
|
+
| 定数 | 名前空間 | | '' | なまえくうかん | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2802
|
|
297
|
+
| 関数 | 名前空間設定 | Sに/Sへ | 名前空間をSに設定する(システムにより自動的に変更される。ファイル名から拡張子を削ったもの) | なまえくうかんせってい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2807
|
|
298
|
+
| 関数 | 名前空間ポップ | | システム利用のため呼ぶべからず。(名前空間を一つ前の値に戻す) | なまえくうかんぽっぷ | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2818
|
|
295
299
|
●URLエンコードとパラメータ
|
|
296
|
-
| 関数 | URLエンコード | TEXTを/TEXTから | URLエンコードして返す | URLえんこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
297
|
-
| 関数 | URLデコード | TEXTを/TEXTへ/TEXTに | URLデコードして返す | URLでこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
298
|
-
| 関数 | URLパラメータ解析 | URLを/URLの/URLから | URLパラメータを解析してハッシュで返す | URLぱらめーたかいせき | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
300
|
+
| 関数 | URLエンコード | TEXTを/TEXTから | URLエンコードして返す | URLえんこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2834
|
|
301
|
+
| 関数 | URLデコード | TEXTを/TEXTへ/TEXTに | URLデコードして返す | URLでこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2842
|
|
302
|
+
| 関数 | URLパラメータ解析 | URLを/URLの/URLから | URLパラメータを解析してハッシュで返す | URLぱらめーたかいせき | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2850
|
|
299
303
|
●BASE64
|
|
300
|
-
| 関数 | BASE64エンコード | TEXTを/TEXTから | BASE64エンコードして返す | BASE64えんこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
301
|
-
| 関数 | BASE64デコード | TEXTを/TEXTへ/TEXTに | BASE64デコードして返す | BASE64でこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#
|
|
304
|
+
| 関数 | BASE64エンコード | TEXTを/TEXTから | BASE64エンコードして返す | BASE64えんこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2874
|
|
305
|
+
| 関数 | BASE64デコード | TEXTを/TEXTへ/TEXTに | BASE64デコードして返す | BASE64でこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2892
|
|
302
306
|
|
|
303
307
|
|
|
304
308
|
■plugin_csv(基本プラグイン,wnako,cnako)
|
|
@@ -279,6 +279,10 @@
|
|
|
279
279
|
- �f�o�b�O�x��
|
|
280
280
|
|�G���[����,"S��|S��","�̈ӂɃG���[S��������",0,,����,����[�͂�����
|
|
281
281
|
|__DEBUG,"","�f�o�b�O���[�h�ɂ���",0,,����,__DEBUG
|
|
282
|
+
|__DEBUG�����ҋ@,"","0",0,,�ϐ�,__DEBUG���傤����������
|
|
283
|
+
|__DEBUG�u���C�N�|�C���g�ꗗ,"","[]",0,,�ϐ�,__DEBUG�Ԃꂢ���ۂ���Ƃ������
|
|
284
|
+
|__DEBUG�ҋ@�t���O,"","0",0,,�ϐ�,__DEBUG�ҋ@�t���O
|
|
285
|
+
|__DEBUG_BP_WAIT,"CURLINE��","�G�f�B�^�̃u���C�N�|�C���g�@�\�̂��߂̑ҋ@",0,,����,__DEBUG_BP_WAIT
|
|
282
286
|
|�O���[�o�����ꗗ�擾,"","�O���[�o���ϐ��ɂ�����ꗗ���擾",0,,����,����[�邩���������Ƃ�
|
|
283
287
|
|�V�X�e�����ꗗ�擾,"","�V�X�e�����̈ꗗ���擾",0,,����,�����Ăނ����������Ƃ�
|
|
284
288
|
|�V�X�e��������,"FNAME��|FNAME��","������Ŋ������w�肵�ăV�X�e���������݂��邩�ׂ�",0,,����,�����Ăނ�������
|
package/core/.eslintrc.cjs
CHANGED
package/core/index.mjs
CHANGED
package/core/index.mts
CHANGED
package/core/package.json
CHANGED
package/core/src/nako_gen.mjs
CHANGED
|
@@ -100,32 +100,33 @@ export class NakoGen {
|
|
|
100
100
|
return /^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[$A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(name);
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
104
|
-
* @param {boolean} forceUpdate
|
|
103
|
+
* 改行を埋め込む
|
|
105
104
|
*/
|
|
106
105
|
convLineno(node, forceUpdate = false, incLine = 0) {
|
|
106
|
+
// スピードモードでは行番号を埋め込まない
|
|
107
107
|
if (this.speedMode.lineNumbers > 0) {
|
|
108
108
|
return '';
|
|
109
109
|
}
|
|
110
|
-
|
|
110
|
+
const lineNo = node.line + incLine;
|
|
111
|
+
let lineNoStr;
|
|
111
112
|
if (typeof node.line !== 'number') {
|
|
112
|
-
|
|
113
|
+
lineNoStr = 'unknown';
|
|
113
114
|
}
|
|
114
115
|
else if (typeof node.file !== 'string') {
|
|
115
|
-
|
|
116
|
+
lineNoStr = `l${lineNo}`;
|
|
116
117
|
}
|
|
117
118
|
else {
|
|
118
|
-
|
|
119
|
+
lineNoStr = `l${lineNo}:${node.file}`;
|
|
119
120
|
}
|
|
120
121
|
// 強制的に行番号をアップデートするか
|
|
121
122
|
if (!forceUpdate) {
|
|
122
|
-
if (
|
|
123
|
+
if (lineNoStr === this.lastLineNo) {
|
|
123
124
|
return '';
|
|
124
125
|
}
|
|
125
|
-
this.lastLineNo =
|
|
126
|
+
this.lastLineNo = lineNoStr;
|
|
126
127
|
}
|
|
127
128
|
// 実行行のデータ
|
|
128
|
-
const lineDataJSON = JSON.stringify(
|
|
129
|
+
const lineDataJSON = JSON.stringify(lineNoStr);
|
|
129
130
|
// デバッグ実行か
|
|
130
131
|
let debugCode = '';
|
|
131
132
|
if (this.debugOption.useDebug) {
|
|
@@ -135,10 +136,14 @@ export class NakoGen {
|
|
|
135
136
|
`line: ${lineDataJSON}});`;
|
|
136
137
|
}
|
|
137
138
|
// waitTime
|
|
138
|
-
if (
|
|
139
|
+
if (lineNo >= 1) {
|
|
139
140
|
if (this.debugOption.waitTime > 0) {
|
|
140
141
|
debugCode += `await __v0['秒待'](${this.debugOption.waitTime},__self);`;
|
|
141
142
|
}
|
|
143
|
+
// breakpoints
|
|
144
|
+
this.numAsyncFn += 1;
|
|
145
|
+
this.usedAsyncFn = true;
|
|
146
|
+
debugCode += `await __v0['__DEBUG_BP_WAIT'](${lineNo}, __self);`;
|
|
142
147
|
}
|
|
143
148
|
// end
|
|
144
149
|
debugCode += 'if(__v0.forceClose){return-1};';
|
|
@@ -1384,6 +1389,7 @@ export class NakoGen {
|
|
|
1384
1389
|
return `/*連文*/await (async function(){ ${left}; return ${right} }).call(this)`;
|
|
1385
1390
|
}
|
|
1386
1391
|
convOp(node) {
|
|
1392
|
+
// トークン名からJS演算子への変換 - 単純な変換が可能なものをここで定義
|
|
1387
1393
|
const OP_TBL = {
|
|
1388
1394
|
'&': '+""+',
|
|
1389
1395
|
eq: '==',
|
|
@@ -1413,7 +1419,7 @@ export class NakoGen {
|
|
|
1413
1419
|
}
|
|
1414
1420
|
}
|
|
1415
1421
|
// 階乗
|
|
1416
|
-
if (op === '^') {
|
|
1422
|
+
if (op === '^' || op === '**') {
|
|
1417
1423
|
return `(Math.pow(${left}, ${right}))`;
|
|
1418
1424
|
}
|
|
1419
1425
|
// 整数の割り算 #1152
|
package/core/src/nako_gen.mts
CHANGED
|
@@ -176,28 +176,29 @@ export class NakoGen {
|
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
/**
|
|
179
|
-
*
|
|
180
|
-
* @param {boolean} forceUpdate
|
|
179
|
+
* 改行を埋め込む
|
|
181
180
|
*/
|
|
182
181
|
convLineno (node: Ast, forceUpdate = false, incLine = 0): string {
|
|
182
|
+
// スピードモードでは行番号を埋め込まない
|
|
183
183
|
if (this.speedMode.lineNumbers > 0) { return '' }
|
|
184
184
|
|
|
185
|
-
|
|
185
|
+
const lineNo: number = node.line + incLine
|
|
186
|
+
let lineNoStr: string
|
|
186
187
|
if (typeof node.line !== 'number') {
|
|
187
|
-
|
|
188
|
+
lineNoStr = 'unknown'
|
|
188
189
|
} else if (typeof node.file !== 'string') {
|
|
189
|
-
|
|
190
|
+
lineNoStr = `l${lineNo}`
|
|
190
191
|
} else {
|
|
191
|
-
|
|
192
|
+
lineNoStr = `l${lineNo}:${node.file}`
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
// 強制的に行番号をアップデートするか
|
|
195
196
|
if (!forceUpdate) {
|
|
196
|
-
if (
|
|
197
|
-
this.lastLineNo =
|
|
197
|
+
if (lineNoStr === this.lastLineNo) { return '' }
|
|
198
|
+
this.lastLineNo = lineNoStr
|
|
198
199
|
}
|
|
199
200
|
// 実行行のデータ
|
|
200
|
-
const lineDataJSON = JSON.stringify(
|
|
201
|
+
const lineDataJSON = JSON.stringify(lineNoStr)
|
|
201
202
|
// デバッグ実行か
|
|
202
203
|
let debugCode = ''
|
|
203
204
|
if (this.debugOption.useDebug) {
|
|
@@ -207,10 +208,14 @@ export class NakoGen {
|
|
|
207
208
|
`line: ${lineDataJSON}});`
|
|
208
209
|
}
|
|
209
210
|
// waitTime
|
|
210
|
-
if (
|
|
211
|
+
if (lineNo >= 1) {
|
|
211
212
|
if (this.debugOption.waitTime > 0) {
|
|
212
213
|
debugCode += `await __v0['秒待'](${this.debugOption.waitTime},__self);`
|
|
213
214
|
}
|
|
215
|
+
// breakpoints
|
|
216
|
+
this.numAsyncFn += 1
|
|
217
|
+
this.usedAsyncFn = true
|
|
218
|
+
debugCode += `await __v0['__DEBUG_BP_WAIT'](${lineNo}, __self);`
|
|
214
219
|
}
|
|
215
220
|
// end
|
|
216
221
|
debugCode += 'if(__v0.forceClose){return-1};'
|
|
@@ -1450,7 +1455,8 @@ export class NakoGen {
|
|
|
1450
1455
|
}
|
|
1451
1456
|
|
|
1452
1457
|
convOp (node: Ast): string {
|
|
1453
|
-
|
|
1458
|
+
// トークン名からJS演算子への変換 - 単純な変換が可能なものをここで定義
|
|
1459
|
+
const OP_TBL: {[key: string]: string} = {
|
|
1454
1460
|
'&': '+""+',
|
|
1455
1461
|
eq: '==',
|
|
1456
1462
|
noteq: '!=',
|
|
@@ -1479,7 +1485,7 @@ export class NakoGen {
|
|
|
1479
1485
|
}
|
|
1480
1486
|
}
|
|
1481
1487
|
// 階乗
|
|
1482
|
-
if (op === '^') { return `(Math.pow(${left}, ${right}))` }
|
|
1488
|
+
if (op === '^' || op === '**') { return `(Math.pow(${left}, ${right}))` }
|
|
1483
1489
|
// 整数の割り算 #1152
|
|
1484
1490
|
if (op === '÷÷') { return `(Math.floor(${left} / ${right}))` }
|
|
1485
1491
|
|
|
@@ -60,6 +60,7 @@ export const rules = [
|
|
|
60
60
|
{ name: '@', pattern: /^@/ },
|
|
61
61
|
{ name: '+', pattern: /^\+/ },
|
|
62
62
|
{ name: '-', pattern: /^-/ },
|
|
63
|
+
{ name: '**', pattern: /^(××|\*\*)/ },
|
|
63
64
|
{ name: '*', pattern: /^(×|\*)/ },
|
|
64
65
|
{ name: '÷÷', pattern: /^÷÷/ },
|
|
65
66
|
{ name: '÷', pattern: /^(÷|\/)/ },
|
|
@@ -79,6 +79,7 @@ export const rules: NakoLexRule[] = [
|
|
|
79
79
|
{ name: '@', pattern: /^@/ },
|
|
80
80
|
{ name: '+', pattern: /^\+/ },
|
|
81
81
|
{ name: '-', pattern: /^-/ },
|
|
82
|
+
{ name: '**', pattern: /^(××|\*\*)/ }, // Python風べき乗演算子
|
|
82
83
|
{ name: '*', pattern: /^(×|\*)/ },
|
|
83
84
|
{ name: '÷÷', pattern: /^÷÷/ }, // 整数の割り算
|
|
84
85
|
{ name: '÷', pattern: /^(÷|\/)/ }, // 普通の割り算
|
|
@@ -1564,7 +1564,7 @@ export default {
|
|
|
1564
1564
|
josi: [['を', 'が']],
|
|
1565
1565
|
pure: true,
|
|
1566
1566
|
fn: function (s) {
|
|
1567
|
-
const checkerRE = /^[+\-+-]?([0-90-9]*)(([
|
|
1567
|
+
const checkerRE = /^[+\-+-]?([0-90-9]*)(([..][0-90-9]+)?|([..][0-90-9]+[eEeE][+\-+-]?[0-90-9]+)?)$/;
|
|
1568
1568
|
return String(s).match(checkerRE) !== null;
|
|
1569
1569
|
}
|
|
1570
1570
|
},
|
|
@@ -2813,6 +2813,36 @@ export default {
|
|
|
2813
2813
|
console.log(sys);
|
|
2814
2814
|
}
|
|
2815
2815
|
},
|
|
2816
|
+
'__DEBUG強制待機': { type: 'const', value: 0 },
|
|
2817
|
+
'__DEBUGブレイクポイント一覧': { type: 'const', value: [] },
|
|
2818
|
+
'__DEBUG待機フラグ': { type: 'const', value: 0 },
|
|
2819
|
+
'__DEBUG_BP_WAIT': {
|
|
2820
|
+
type: 'func',
|
|
2821
|
+
josi: [['で']],
|
|
2822
|
+
pure: true,
|
|
2823
|
+
asyncFn: true,
|
|
2824
|
+
fn: function (curLine, sys) {
|
|
2825
|
+
return new Promise((resolve, _reject) => {
|
|
2826
|
+
const breakpoints = sys.__v0['__DEBUGブレイクポイント一覧'];
|
|
2827
|
+
const forceLine = sys.__v0['__DEBUG強制待機'];
|
|
2828
|
+
sys.__v0['__DEBUG強制待機'] = 0;
|
|
2829
|
+
console.log('__DEBUG_BP_WAIT.line=', curLine, 'BP=', breakpoints, 'force.line=', forceLine);
|
|
2830
|
+
if (breakpoints.indexOf(curLine) >= 0 || forceLine) {
|
|
2831
|
+
console.log('@STOP!!!! cur=', curLine);
|
|
2832
|
+
const timerId = setInterval(() => {
|
|
2833
|
+
if (sys.__v0['__DEBUG待機フラグ'] === 1) {
|
|
2834
|
+
sys.__v0['__DEBUG待機フラグ'] = 0;
|
|
2835
|
+
clearInterval(timerId);
|
|
2836
|
+
resolve(curLine);
|
|
2837
|
+
}
|
|
2838
|
+
}, 1000);
|
|
2839
|
+
}
|
|
2840
|
+
else {
|
|
2841
|
+
resolve(curLine);
|
|
2842
|
+
}
|
|
2843
|
+
});
|
|
2844
|
+
}
|
|
2845
|
+
},
|
|
2816
2846
|
'グローバル関数一覧取得': {
|
|
2817
2847
|
type: 'func',
|
|
2818
2848
|
josi: [],
|
|
@@ -1501,7 +1501,7 @@ export default {
|
|
|
1501
1501
|
josi: [['を', 'が']],
|
|
1502
1502
|
pure: true,
|
|
1503
1503
|
fn: function (s: any): boolean {
|
|
1504
|
-
const checkerRE = /^[+\-+-]?([0-90-9]*)(([
|
|
1504
|
+
const checkerRE = /^[+\-+-]?([0-90-9]*)(([..][0-90-9]+)?|([..][0-90-9]+[eEeE][+\-+-]?[0-90-9]+)?)$/
|
|
1505
1505
|
return String(s).match(checkerRE) !== null
|
|
1506
1506
|
}
|
|
1507
1507
|
},
|
|
@@ -2658,6 +2658,35 @@ export default {
|
|
|
2658
2658
|
console.log(sys)
|
|
2659
2659
|
}
|
|
2660
2660
|
},
|
|
2661
|
+
'__DEBUG強制待機': { type: 'const', value: 0 }, // @__DEBUGきょうせいたいき
|
|
2662
|
+
'__DEBUGブレイクポイント一覧': { type: 'const', value: [] }, // @__DEBUGぶれいくぽいんといちらん
|
|
2663
|
+
'__DEBUG待機フラグ': { type: 'const', value: 0 }, // @__DEBUG待機フラグ
|
|
2664
|
+
'__DEBUG_BP_WAIT': { // @エディタのブレイクポイント機能のための待機 // @__DEBUG_BP_WAIT
|
|
2665
|
+
type: 'func',
|
|
2666
|
+
josi: [['で']],
|
|
2667
|
+
pure: true,
|
|
2668
|
+
asyncFn: true,
|
|
2669
|
+
fn: function (curLine: number, sys: any) {
|
|
2670
|
+
return new Promise((resolve, _reject) => {
|
|
2671
|
+
const breakpoints = sys.__v0['__DEBUGブレイクポイント一覧']
|
|
2672
|
+
const forceLine = sys.__v0['__DEBUG強制待機']
|
|
2673
|
+
sys.__v0['__DEBUG強制待機'] = 0
|
|
2674
|
+
console.log('__DEBUG_BP_WAIT.line=', curLine, 'BP=', breakpoints, 'force.line=', forceLine)
|
|
2675
|
+
if (breakpoints.indexOf(curLine) >= 0 || forceLine) {
|
|
2676
|
+
console.log('@STOP!!!! cur=', curLine)
|
|
2677
|
+
const timerId = setInterval(() => {
|
|
2678
|
+
if (sys.__v0['__DEBUG待機フラグ'] === 1) {
|
|
2679
|
+
sys.__v0['__DEBUG待機フラグ'] = 0
|
|
2680
|
+
clearInterval(timerId)
|
|
2681
|
+
resolve(curLine)
|
|
2682
|
+
}
|
|
2683
|
+
}, 1000)
|
|
2684
|
+
} else {
|
|
2685
|
+
resolve(curLine)
|
|
2686
|
+
}
|
|
2687
|
+
})
|
|
2688
|
+
}
|
|
2689
|
+
},
|
|
2661
2690
|
'グローバル関数一覧取得': { // @グローバル変数にある関数一覧を取得 // @ぐろーばるかんすういちらんしゅとく
|
|
2662
2691
|
type: 'func',
|
|
2663
2692
|
josi: [],
|
package/core/test/calc_test.mjs
CHANGED
|
@@ -158,4 +158,9 @@ describe('calc_test.js', async () => {
|
|
|
158
158
|
await cmp('N=「あああ」の「あ」を「え」に置換して空白除去。Nを表示。', 'えええ')
|
|
159
159
|
await errorTest('N=30の「あああ」の「あ」を「え」に置換して空白除去。Nを表示。', 'NakoSyntaxError', '未解決の単語があります')
|
|
160
160
|
})
|
|
161
|
+
it('演算子「**」(#1424)', async () => {
|
|
162
|
+
await cmp('2**3を表示;', '8')
|
|
163
|
+
await cmp('2^3を表示;', '8')
|
|
164
|
+
await cmp('2**4を表示;', '16')
|
|
165
|
+
})
|
|
161
166
|
})
|
package/core/test/dncl2_test.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nadesiko3",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.10",
|
|
4
4
|
"description": "Japanese Programming Language",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.mjs",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"build:webpack": "tsc && webpack --mode development",
|
|
32
32
|
"check:command": "node src/cnako3.mjs batch/pickup_command.nako3",
|
|
33
33
|
"build:command": "cross-env REPORT_ERR=1 npm run check:command && node src/cnako3.mjs batch/build_command.nako3",
|
|
34
|
-
"build:win32": "node src/cnako3.mjs installer/make-win32.nako3",
|
|
35
34
|
"build:browsers": "npx browserslist > src/browsers.txt && node src/cnako3.mjs batch/build_browsers.nako3",
|
|
36
35
|
"watch": "webpack --watch --mode development",
|
|
37
36
|
"analyze": "webpack-bundle-analyzer release/stats.json",
|
package/release/_hash.txt
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
command.json.js:
|
|
2
|
-
md5(hex):
|
|
3
|
-
sha256(hex):
|
|
4
|
-
sha256(base64):
|
|
5
|
-
sha512(base64):
|
|
2
|
+
md5(hex): 4a51f9630fef73e17aa37c9f116ecaf2
|
|
3
|
+
sha256(hex): e6cc60d3166da83264ba8520925e5c2e87a854710be4ef80b94b8773f3e2524a
|
|
4
|
+
sha256(base64): 5sxg0xZtqDJkuoUgkl5cLoeoVHEL5O+AuUuHc/PiUko=
|
|
5
|
+
sha512(base64): F39tjZnCL8zFGGtjiWTCxSNibofL+MoxKmIRTGk0aiZF29DkDxV1x02EPEjoLeXONvCq9hAxA8WqWYL+IxlTfg==
|
|
6
6
|
editor.js:
|
|
7
|
-
md5(hex):
|
|
8
|
-
sha256(hex):
|
|
9
|
-
sha256(base64):
|
|
10
|
-
sha512(base64):
|
|
7
|
+
md5(hex): 395c9faf8bd11520e87592dc927ee96f
|
|
8
|
+
sha256(hex): 7100ff18c8f4e674d9a15d110fb2eb9b255b4ef937c19cc5eece540f0437b75f
|
|
9
|
+
sha256(base64): cQD/GMj05nTZoV0RD7LrmyVbTvk3wZzF7s5UDwQ3t18=
|
|
10
|
+
sha512(base64): Zvhrmfm9p3z4elROLYFBjSmneZMxHL7LZ4FbI2OHIrd3u+UG4EZHUo470VIUl21jEn/2PTyleBpFVHHE1bOxuA==
|
|
11
11
|
nako_gen_async.js:
|
|
12
|
-
md5(hex):
|
|
13
|
-
sha256(hex):
|
|
14
|
-
sha256(base64):
|
|
15
|
-
sha512(base64):
|
|
12
|
+
md5(hex): 491ca9b42d8baf9b23f923a3d8afa6d6
|
|
13
|
+
sha256(hex): 66b49b360b193a5dc2408c2e9cea301e51dfd6b8d2d438bc98442239128d596b
|
|
14
|
+
sha256(base64): ZrSbNgsZOl3CQIwunOowHlHf1rjS1Di8mEQiORKNWWs=
|
|
15
|
+
sha512(base64): 3Q1JiWEsiXrl8Gj9xjbiBVvZN9WxWPsEVmuWhe6MYvu1iFYI5g3aNMbg38Zc990NjmZc2NLTAA8yPKDMPhMuFw==
|
|
16
16
|
plugin_caniuse.js:
|
|
17
17
|
md5(hex): b9a7d651b036f1646c76196efc4f220b
|
|
18
18
|
sha256(hex): 7d50b13fa23b1e4984ae58ace75c08c6db259768649b9fe617025279b3f03a0b
|
|
@@ -54,17 +54,17 @@ plugin_weykturtle3d.js:
|
|
|
54
54
|
sha256(base64): FO/zhIcbO4hNPDHd+ZxPlHIg2r4/3exT7LNYvG5LwTs=
|
|
55
55
|
sha512(base64): TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==
|
|
56
56
|
version.js:
|
|
57
|
-
md5(hex):
|
|
58
|
-
sha256(hex):
|
|
59
|
-
sha256(base64):
|
|
60
|
-
sha512(base64):
|
|
57
|
+
md5(hex): 4abe1b5d574c73048e9ff2ca0d691c3a
|
|
58
|
+
sha256(hex): 8f472cce7401def8251578123a13b727a2b911b7571fef56b2f53e7acd99d9e8
|
|
59
|
+
sha256(base64): j0csznQB3vglFXgSOhO3J6K5EbdXH+9WsvU+es2Z2eg=
|
|
60
|
+
sha512(base64): 1x+foAUzvnXuT+9PbaLixgvKi940mgUUXqrHV42Swnq75wEBZL+ZC5Mu61PTThY781kOZICaL3rPNy1yzyM5/g==
|
|
61
61
|
wnako3.js:
|
|
62
|
-
md5(hex):
|
|
63
|
-
sha256(hex):
|
|
64
|
-
sha256(base64):
|
|
65
|
-
sha512(base64):
|
|
62
|
+
md5(hex): 4de3b15fd2d29f3cae74f126c95aea63
|
|
63
|
+
sha256(hex): 5c9416a1a5fd354c2a72e3c32b0531a3e480616d22fd16071a3ae681c792763c
|
|
64
|
+
sha256(base64): XJQWoaX9NUwqcuPDKwUxo+SAYW0i/RYHGjrmgceSdjw=
|
|
65
|
+
sha512(base64): yHg8LuYaAzailVVigK5movlDaDV4LoUQwKLOC79B8LVBQ/kJQ37SB5WC7T+0I20ZavsogOtg7OjYKDWRNsRCxQ==
|
|
66
66
|
wnako3webworker.js:
|
|
67
|
-
md5(hex):
|
|
68
|
-
sha256(hex):
|
|
69
|
-
sha256(base64):
|
|
70
|
-
sha512(base64):
|
|
67
|
+
md5(hex): 6ee837f7eb9b813191701cc32789a48b
|
|
68
|
+
sha256(hex): 48b4c8a9e67549b9e54be59b4371e4ba9ba63785c7fa66ed8bf8d060292f00e6
|
|
69
|
+
sha256(base64): SLTIqeZ1SbnlS+WbQ3HkupumN4XH+mbti/jQYCkvAOY=
|
|
70
|
+
sha512(base64): zztzQRRWxz0hUMfSufH0Zstpulmb6g4eZFQAkt3mRBRmnAB/YS7CIowIyR84Wt/nFzYLn9+hHP8n5eeXvJzq6w==
|
package/release/_script-tags.txt
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
2
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
3
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
4
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
5
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
6
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
7
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
8
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
9
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
10
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
11
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
12
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
13
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
14
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.
|
|
1
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/command.json.js" integrity="sha512-F39tjZnCL8zFGGtjiWTCxSNibofL+MoxKmIRTGk0aiZF29DkDxV1x02EPEjoLeXONvCq9hAxA8WqWYL+IxlTfg==" crossorigin="anonymous"></script>
|
|
2
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/editor.js" integrity="sha512-Zvhrmfm9p3z4elROLYFBjSmneZMxHL7LZ4FbI2OHIrd3u+UG4EZHUo470VIUl21jEn/2PTyleBpFVHHE1bOxuA==" crossorigin="anonymous"></script>
|
|
3
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/nako_gen_async.js" integrity="sha512-3Q1JiWEsiXrl8Gj9xjbiBVvZN9WxWPsEVmuWhe6MYvu1iFYI5g3aNMbg38Zc990NjmZc2NLTAA8yPKDMPhMuFw==" crossorigin="anonymous"></script>
|
|
4
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_caniuse.js" integrity="sha512-DQtRUYbRvs3H90qvSM5jMwOQqg5ZKz5MnXp/549AvjuFrGQuboFhRA5XFvHMtVHNR3co9MIepEHu1PoA4sj2XA==" crossorigin="anonymous"></script>
|
|
5
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_csv.js" integrity="sha512-mQvmj25L2Nc2L7gN1rTjayHVMMPhc7TCSiBsuKS4JKOQqN+91uj9qpLAOejzR1ib5jIOBdtrhN+secNTU9BJtw==" crossorigin="anonymous"></script>
|
|
6
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_datetime.js" integrity="sha512-x9UUoQVIUvyaxwymD6rNn7jXEXrTzHBTOBDUeFCbCm+lXVutkT2Fww+N4yOa1ZcxF0PcgDxoRIpMiqkJ1AJThA==" crossorigin="anonymous"></script>
|
|
7
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_kansuji.js" integrity="sha512-5/TRx8Ke69YV9s8M67sOWrJmhhHK4MMLbMJh5nKg3oV8spmOOTn6tXl/TxYk8YWkTurOTCaXtRFuR9h2yEDt7w==" crossorigin="anonymous"></script>
|
|
8
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_markup.js" integrity="sha512-3gTGPjzEOVBXtYveX8p6mDVfx1wVsYdJclwiWp6qPHIkou9Cyb9PGoZ9yXww4REvRdxKCoHYMF1jHrBIKFDSTg==" crossorigin="anonymous"></script>
|
|
9
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_turtle.js" integrity="sha512-M4rEt0pgRtRcAS1R8oo5X6r8uQgbUaA+uVsDHqOmQLxSfbdaJdt3a0Gj8DSozBHawi3WikLIpZKUmyompN0K8Q==" crossorigin="anonymous"></script>
|
|
10
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_webworker.js" integrity="sha512-ckRx+9bm94iJ1vss+zGim86mXAogxinCFrLhHnsvMAofRmlNQqYULQVLqruTp/zLOW9l/zUEU2lS3Rtg7JB9jA==" crossorigin="anonymous"></script>
|
|
11
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/plugin_weykturtle3d.js" integrity="sha512-TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==" crossorigin="anonymous"></script>
|
|
12
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/version.js" integrity="sha512-1x+foAUzvnXuT+9PbaLixgvKi940mgUUXqrHV42Swnq75wEBZL+ZC5Mu61PTThY781kOZICaL3rPNy1yzyM5/g==" crossorigin="anonymous"></script>
|
|
13
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/wnako3.js" integrity="sha512-yHg8LuYaAzailVVigK5movlDaDV4LoUQwKLOC79B8LVBQ/kJQ37SB5WC7T+0I20ZavsogOtg7OjYKDWRNsRCxQ==" crossorigin="anonymous"></script>
|
|
14
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.4.10&f=release/wnako3webworker.js" integrity="sha512-zztzQRRWxz0hUMfSufH0Zstpulmb6g4eZFQAkt3mRBRmnAB/YS7CIowIyR84Wt/nFzYLn9+hHP8n5eeXvJzq6w==" crossorigin="anonymous"></script>
|