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 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
- | 関数 | グローバル関数一覧取得 | | グローバル変数にある関数一覧を取得 | ぐろーばるかんすういちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2665
283
- | 関数 | システム関数一覧取得 | | システム関数の一覧を取得 | しすてむかんすういちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2680
284
- | 関数 | システム関数存在 | FNAMEが/FNAMEの | 文字列で関数名を指定してシステム関数が存在するかを調べる | しすてむかんすうそんざい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2695
285
- | 関数 | プラグイン一覧取得 | | 利用中のプラグイン一覧を得る | ぷらぐいんいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2703
286
- | 関数 | モジュール一覧取得 | | 取り込んだモジュール一覧を得る | もじゅーるいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2714
287
- | 関数 | 助詞一覧取得 | | 文法として定義されている助詞の一覧を取得する | じょしいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2726
288
- | 関数 | 予約語一覧取得 | | 文法として定義されている予約語の一覧を取得する | よやくごいちらんしゅとく | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2744
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#L2763
291
- | 関数 | プラグイン名設定 | Sに/Sへ | プラグイン名をSに変更する(システムにより自動的に「メイン」あるいはプラグインのファイル名が呼ばれる) | プラグインめいせってい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2768
292
- | 定数 | 名前空間 | | '' | なまえくうかん | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2773
293
- | 関数 | 名前空間設定 | Sに/Sへ | 名前空間をSに設定する(システムにより自動的に変更される。ファイル名から拡張子を削ったもの) | なまえくうかんせってい | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2778
294
- | 関数 | 名前空間ポップ | | システム利用のため呼ぶべからず。(名前空間を一つ前の値に戻す) | なまえくうかんぽっぷ | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2789
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#L2805
297
- | 関数 | URLデコード | TEXTを/TEXTへ/TEXTに | URLデコードして返す | URLでこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2813
298
- | 関数 | URLパラメータ解析 | URLを/URLの/URLから | URLパラメータを解析してハッシュで返す | URLぱらめーたかいせき | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2821
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#L2845
301
- | 関数 | BASE64デコード | TEXTを/TEXTへ/TEXTに | BASE64デコードして返す | BASE64でこーど | https://github.com/kujirahand/nadesiko3core/blob/main/src/plugin_system.mts#L2863
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,,����,�����Ăނ��񂷂����񂴂�
@@ -25,6 +25,7 @@ module.exports = {
25
25
  //"@typescript-eslint/no-empty-function": 0,
26
26
  // "no-unused-vars":0,
27
27
  // "no-undef": 0
28
+ //"react/prop-types": "off"
28
29
  },
29
30
  "plugins": [
30
31
  "@typescript-eslint"
package/core/index.mjs CHANGED
@@ -23,5 +23,5 @@ export default {
23
23
  NakoPrepare,
24
24
  NakoGen,
25
25
  NakoGenOptions,
26
- NakoGlobal,
26
+ NakoGlobal
27
27
  };
package/core/index.mts CHANGED
@@ -23,5 +23,5 @@ export default {
23
23
  NakoPrepare,
24
24
  NakoGen,
25
25
  NakoGenOptions,
26
- NakoGlobal,
26
+ NakoGlobal
27
27
  }
package/core/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3core",
3
- "version": "3.4.9",
3
+ "version": "3.4.10",
4
4
  "description": "Japanese Programming Language Nadesiko v3 core",
5
5
  "main": "index.mjs",
6
6
  "type": "module",
@@ -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
- * @param {Ast} node
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
- let lineNo;
110
+ const lineNo = node.line + incLine;
111
+ let lineNoStr;
111
112
  if (typeof node.line !== 'number') {
112
- lineNo = 'unknown';
113
+ lineNoStr = 'unknown';
113
114
  }
114
115
  else if (typeof node.file !== 'string') {
115
- lineNo = `l${node.line + incLine}`;
116
+ lineNoStr = `l${lineNo}`;
116
117
  }
117
118
  else {
118
- lineNo = `l${node.line + incLine}:${node.file}`;
119
+ lineNoStr = `l${lineNo}:${node.file}`;
119
120
  }
120
121
  // 強制的に行番号をアップデートするか
121
122
  if (!forceUpdate) {
122
- if (lineNo === this.lastLineNo) {
123
+ if (lineNoStr === this.lastLineNo) {
123
124
  return '';
124
125
  }
125
- this.lastLineNo = lineNo;
126
+ this.lastLineNo = lineNoStr;
126
127
  }
127
128
  // 実行行のデータ
128
- const lineDataJSON = JSON.stringify(lineNo);
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 ((node.line + incLine) >= 1) {
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
@@ -176,28 +176,29 @@ export class NakoGen {
176
176
  }
177
177
 
178
178
  /**
179
- * @param {Ast} node
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
- let lineNo: string
185
+ const lineNo: number = node.line + incLine
186
+ let lineNoStr: string
186
187
  if (typeof node.line !== 'number') {
187
- lineNo = 'unknown'
188
+ lineNoStr = 'unknown'
188
189
  } else if (typeof node.file !== 'string') {
189
- lineNo = `l${node.line + incLine}`
190
+ lineNoStr = `l${lineNo}`
190
191
  } else {
191
- lineNo = `l${node.line + incLine}:${node.file}`
192
+ lineNoStr = `l${lineNo}:${node.file}`
192
193
  }
193
194
 
194
195
  // 強制的に行番号をアップデートするか
195
196
  if (!forceUpdate) {
196
- if (lineNo === this.lastLineNo) { return '' }
197
- this.lastLineNo = lineNo
197
+ if (lineNoStr === this.lastLineNo) { return '' }
198
+ this.lastLineNo = lineNoStr
198
199
  }
199
200
  // 実行行のデータ
200
- const lineDataJSON = JSON.stringify(lineNo)
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 ((node.line + incLine) >= 1) {
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
- const OP_TBL: {[key: string]: string} = { // トークン名からJS演算子
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: /^(÷|\/)/ }, // 普通の割り算
@@ -26,7 +26,8 @@ export const opPriority = {
26
26
  '÷÷': 5,
27
27
  '%': 5,
28
28
  // ^
29
- '^': 6
29
+ '^': 6,
30
+ '**': 6
30
31
  };
31
32
  export const RenbunJosi = [
32
33
  'いて', 'えて', 'きて', 'けて', 'して', 'って', 'にて', 'みて', 'めて', 'ねて', 'には', 'んで'
@@ -26,7 +26,8 @@ export const opPriority: {[key: string]: number} = {
26
26
  '÷÷': 5, // 整数の割り算
27
27
  '%': 5,
28
28
  // ^
29
- '^': 6
29
+ '^': 6,
30
+ '**': 6
30
31
  }
31
32
 
32
33
  export const RenbunJosi: string[] = [
@@ -1564,7 +1564,7 @@ export default {
1564
1564
  josi: [['を', 'が']],
1565
1565
  pure: true,
1566
1566
  fn: function (s) {
1567
- const checkerRE = /^[+\-+-]?([0-90-9]*)(([\..][0-90-9]+)?|([\..][0-90-9]+[eEeE][+\-+-]?[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]*)(([\..][0-90-9]+)?|([\..][0-90-9]+[eEeE][+\-+-]?[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: [],
@@ -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
  })
@@ -228,4 +228,10 @@ describe('dncl2 (core #41)', async () => {
228
228
  '(偽 or 偽)を表示' +
229
229
  '\n', FALSE)
230
230
  })
231
+ it('演算子「**」(#1424)', async () => {
232
+ await cmp('' +
233
+ '!DNCL2\n' +
234
+ '2**3を表示;' +
235
+ '', '8')
236
+ })
231
237
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3",
3
- "version": "3.4.9",
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): 999892ff38791909f0a4ed47f0627601
3
- sha256(hex): b34abf029ca83bed2045da78f1a04149cfa20d770a6616429b1a9f669c2bbd16
4
- sha256(base64): s0q/ApyoO+0gRdp48aBBSc+iDXcKZhZCmxqfZpwrvRY=
5
- sha512(base64): IyNQfneplVqgRvmAfN2Wb8riyEDXlzK5K/m5Py/m+A0j+zW2aFLX5d20tV+D5mQTjG2JVG52YJ2vseCze43RFw==
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): 5924a1b729f294e8d29bd7fbb6f55c93
8
- sha256(hex): a0f43cb907ccf1d8231f7b55d730d8757b86fecc3836e3f0f851ad9770f6c359
9
- sha256(base64): oPQ8uQfM8dgjH3tV1zDYdXuG/sw4NuPw+FGtl3D2w1k=
10
- sha512(base64): P4xzoAjsaPmBhRrLl6FLzKkOzgz1dAnDvaLPqPANCYdhwxC7q3VZ6nNPWS/3QNj7zHhB4OoqTVDPTxLdUqj03w==
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): a72907adbede5cd010f1a6bd5506d80a
13
- sha256(hex): 6204234ad2e64ce97401fbf0835d780987d5ab2d5a570d424661c4c9945d3649
14
- sha256(base64): YgQjStLmTOl0Afvwg114CYfVqy1aVw1CRmHEyZRdNkk=
15
- sha512(base64): Hqd1R0ePqfgu9J8ywwCSn2lD71H/mZocgcNwxCf4OyiushgbsFXBVeF9JJjVb/AhAs+ddKqjVgraa4y+F4e70w==
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): 45fa252fff785c34ea03eb2a7e433c30
58
- sha256(hex): 9e629ba76972e0a2ca8c6e4a17fbb114f14d1fbfab70ac5e37360d6111b92e7a
59
- sha256(base64): nmKbp2ly4KLKjG5KF/uxFPFNH7+rcKxeNzYNYRG5Lno=
60
- sha512(base64): zBVPAKQjjBSzPdH5OX2ahxLuPEKf7PrRiLRq8aXfaZkoxMnEIyFvQyurlhisLsNfIzTZgZ1gfBxLpAl83176gQ==
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): c6f1eda90986c3fbebe2965202676618
63
- sha256(hex): 2ee801f1c9b67cdc49a52ff14849cddd68d3a52a9334726d94e17248d534bc24
64
- sha256(base64): LugB8cm2fNxJpS/xSEnN3WjTpSqTNHJtlOFySNU0vCQ=
65
- sha512(base64): qo5HcN7pio6X7xf8n2NGgaXQBMu4iWrcm6M3whKb3JaFeZ+v8W4lbFOtArk4rCssSqIiNsT02vYbNGqNzrZYHA==
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): 80c27ccc09b78876a86fa33cf6ef0531
68
- sha256(hex): 4937ae56b8e14c0fe31179b8966e09aa86e6886c966e4f04bac9b24d80888295
69
- sha256(base64): STeuVrjhTA/jEXm4lm4JqobmiGyWbk8EusmyTYCIgpU=
70
- sha512(base64): 2qQJC/s8sLv9u/y6yWexQizW5fYnx/lUEx6wM1jLGWvp2nCNKrgiKMtqgFDDUugSa0+MQ9hafJy37gc0mqCffw==
67
+ md5(hex): 6ee837f7eb9b813191701cc32789a48b
68
+ sha256(hex): 48b4c8a9e67549b9e54be59b4371e4ba9ba63785c7fa66ed8bf8d060292f00e6
69
+ sha256(base64): SLTIqeZ1SbnlS+WbQ3HkupumN4XH+mbti/jQYCkvAOY=
70
+ sha512(base64): zztzQRRWxz0hUMfSufH0Zstpulmb6g4eZFQAkt3mRBRmnAB/YS7CIowIyR84Wt/nFzYLn9+hHP8n5eeXvJzq6w==
@@ -1,14 +1,14 @@
1
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&f=release/command.json.js" integrity="sha512-IyNQfneplVqgRvmAfN2Wb8riyEDXlzK5K/m5Py/m+A0j+zW2aFLX5d20tV+D5mQTjG2JVG52YJ2vseCze43RFw==" crossorigin="anonymous"></script>
2
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&f=release/editor.js" integrity="sha512-P4xzoAjsaPmBhRrLl6FLzKkOzgz1dAnDvaLPqPANCYdhwxC7q3VZ6nNPWS/3QNj7zHhB4OoqTVDPTxLdUqj03w==" crossorigin="anonymous"></script>
3
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&f=release/nako_gen_async.js" integrity="sha512-Hqd1R0ePqfgu9J8ywwCSn2lD71H/mZocgcNwxCf4OyiushgbsFXBVeF9JJjVb/AhAs+ddKqjVgraa4y+F4e70w==" crossorigin="anonymous"></script>
4
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&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.9&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.9&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.9&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.9&f=release/plugin_markup.js" integrity="sha512-3gTGPjzEOVBXtYveX8p6mDVfx1wVsYdJclwiWp6qPHIkou9Cyb9PGoZ9yXww4REvRdxKCoHYMF1jHrBIKFDSTg==" crossorigin="anonymous"></script>
9
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&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.9&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.9&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.9&f=release/version.js" integrity="sha512-zBVPAKQjjBSzPdH5OX2ahxLuPEKf7PrRiLRq8aXfaZkoxMnEIyFvQyurlhisLsNfIzTZgZ1gfBxLpAl83176gQ==" crossorigin="anonymous"></script>
13
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&f=release/wnako3.js" integrity="sha512-qo5HcN7pio6X7xf8n2NGgaXQBMu4iWrcm6M3whKb3JaFeZ+v8W4lbFOtArk4rCssSqIiNsT02vYbNGqNzrZYHA==" crossorigin="anonymous"></script>
14
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.4.9&f=release/wnako3webworker.js" integrity="sha512-2qQJC/s8sLv9u/y6yWexQizW5fYnx/lUEx6wM1jLGWvp2nCNKrgiKMtqgFDDUugSa0+MQ9hafJy37gc0mqCffw==" crossorigin="anonymous"></script>
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>