nadesiko3 3.6.21 → 3.6.22

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
@@ -508,36 +508,37 @@
508
508
  | 関数 | 画面更新時実行 | FUNCを | 画面描画タイミングで関数F(文字列指定も可)を実行する。識別IDを返す。 | がめんこうしんじじっこう | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_event.mts#L176
509
509
  | 関数 | 画面更新処理取消 | IDの/IDを | 識別IDを指定して『画面更新時実行』を取り消す | がめんこうしんしょりとりけし | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_event.mts#L187
510
510
  ●DOM部品操作
511
- | 定数 | DOM親要素 | | '' | DOMおやようそ | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L3
512
- | 定数 | DOM部品個数 | | 0 | DOMせいせいこすう | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L4
513
- | 定数 | DOM部品オプション | | { '自動改行': false, 'テーブルヘッダ': true, 'テーブル背景色': ['#AA4040', '#ffffff', '#fff0f0'], 'テーブル数値右寄せ': true } | DOMぶひんおぷしょん | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L5
514
- | 関数 | DOM親要素設定 | ELに/ELへ | 「ボタン作成」「エディタ作成」など『DOM部品作成』で追加する要素の親要素を指定(デフォルトはdocument)して要素を返す。 | DOMおやようそせってい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L10
515
- | 関数 | DOM親部品設定 | ELに/ELへ | DOM部品作成でDOM要素を追加する親の対象を指定。『DOM親要素設定』と同じ。 | DOMおやぶひんせってい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L20
516
- | 定数 | DOMスキン | | '' | DOMすきん | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L24
517
- | 定数 | DOMスキン辞書 | | {} | DOMすきんじしょ | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L25
518
- | 関数 | DOMスキン設定 | SKINを/SKINに/SKINの | 「ボタン作成」「エディタ作成」などで適用するスキンを指定する(#1033) | DOMすきんせってい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L30
519
- | 関数 | DOM部品作成 | ELMの | elmの要素を作成して『DOM親要素設定』で指定した要素に追加して、DOMオブジェクトを返す。(elmがDOM要素なら追加する) | DOMぶひんさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L39
520
- | 関数 | ボタン作成 | LABELの | ラベルlabelを持つbutton要素を追加しDOMオブジェクトを返す | ぼたんさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L61
521
- | 関数 | エディタ作成 | TEXTの | textの値を持つテキストボックス(input[type='text'])の要素を追加しDOMオブジェクトを返す | えでぃたさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L71
522
- | 関数 | テキストエリア作成 | TEXTの | textの値を持つtextarea要素を追加しDOMオブジェクトを返す | てきすとえりあさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L82
523
- | 関数 | ラベル作成 | TEXTの | textの値を持つラベル(span要素)を追加しDOMオブジェクトを返す | らべるさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L92
524
- | 関数 | キャンバス作成 | SIZEの | 大きさ[幅, 高]のcanvas要素を追加しDOMオブジェクトを返す | きゃんばすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L102
525
- | 関数 | 画像作成 | URLの/URLから | URLを指定してimg要素を追加しDOMオブジェクトを返す | がぞうさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L117
526
- | 関数 | 改行作成 | | 改行(br要素)を追加しDOMオブジェクトを返す | かいぎょうさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L127
527
- | 関数 | チェックボックス作成 | TEXTの | textのラベルを持つチェックボックス(input[type='checkbox'])要素を追加しDOMオブジェクトを返す | ちぇっくぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L136
528
- | 関数 | セレクトボックス作成 | OPTIONSの | 配列optionsの選択肢を持つselect要素を追加しDOMオブジェクトを返す | せれくとぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L157
529
- | 関数 | セレクトボックスアイテム設定 | OPTIONSをDOMへ/DOMに | 配列データをセレクトボックスdomのアイテムに差し替える | せれくとぼっくすあいてむさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L174
530
- | 関数 | 色選択ボックス作成 | | 色選択ボックス(input[type='color'])を作成しDOMオブジェクトを返す | いろせんたくぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L192
531
- | 関数 | 日付選択ボックス作成 | | 日付選択ボックス(input[type='date'])を作成しDOMオブジェクトを返す | ひづけせんたくぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L202
532
- | 関数 | パスワード入力エディタ作成 | Sの/Sで | パスワード入力エディタ(input[type='password'])を作成し初期値Sを設定し、DOMオブジェクトを返す | ぱすわーどにゅうりょくさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L212
533
- | 関数 | 値指定バー作成 | RANGEの/RANGEで | 範囲RANGE(配列で[最小,最大[,値]])を指定するバー(input[type='range'])を作成しDOMオブジェクトを返す | ぱすわーどにゅうりょくさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L223
534
- | 関数 | 送信ボタン作成 | LABELの | ラベルSの送信ボタン(input[type='submit'])を作成しDOMオブジェクトを返す | そうしんぼたんさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L242
535
- | 関数 | フォーム作成 | OBJでSを/OBJの | 属性OBJ{method:"GET",action:"..."}で項目一覧S「a=初期値{改行}b=初期値{改行}色=?c#fff0f0{改行}=?送信」を送信フォームを作成しDOMオブジェクトを返す | ふぉーむさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L253
536
- | 関数 | フォーム入力一括取得 | DOMの/DOMから | DOMのフォームを取得し、そのフォーム以下にある入力項目のnameとvalueを辞書形式で返す | ふぉーむにゅうりょくいっかつしゅとく | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L326
537
- | 関数 | テーブル作成 | AAの/AAから | 二次元配列AA(あるいは文字列の簡易CSVデータ)からTABLE要素を作成し、DOMオブジェクトを返す | てーぶるさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L362
538
- | 関数 | ヘッダ無テーブル作成 | AAの/AAから | 二次元配列AA(あるいは文字列の簡易CSVデータ)からヘッダ無しのTABLE要素を作成し、DOMオブジェクトを返す | へっだなしてーぶるさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L404
539
- | 関数 | テーブルセル変更 | TのCELLをVに/Vへ | TABLE要素のセル[行,列]をVへ変更する。Vが二次元配列変数であれば複数のセルを一括変更する | てーぶるせるへんこう | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L414
540
- | 関数 | マーメイド作成 | SRCの | Mermaid記法を使ってSRCのチャートを作成する(非同期関数) | まーめいどさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L464
511
+ | 定数 | DOM親要素 | | '' | DOMおやようそ | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L4
512
+ | 定数 | DOM部品個数 | | 0 | DOMせいせいこすう | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L5
513
+ | 定数 | DOM部品オプション | | { '自動改行': false, 'テーブルヘッダ': true, 'テーブル背景色': ['#AA4040', '#ffffff', '#fff0f0'], 'テーブル数値右寄せ': true } | DOMぶひんおぷしょん | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L6
514
+ | 関数 | DOM親要素設定 | ELに/ELへ | 「ボタン作成」「エディタ作成」など『DOM部品作成』で追加する要素の親要素を指定(デフォルトはdocument)して要素を返す。 | DOMおやようそせってい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L11
515
+ | 関数 | DOM親部品設定 | ELに/ELへ | DOM部品作成でDOM要素を追加する親の対象を指定。『DOM親要素設定』と同じ。 | DOMおやぶひんせってい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L21
516
+ | 定数 | DOMスキン | | '' | DOMすきん | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L25
517
+ | 定数 | DOMスキン辞書 | | {} | DOMすきんじしょ | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L26
518
+ | 関数 | DOMスキン設定 | SKINを/SKINに/SKINの | 「ボタン作成」「エディタ作成」などで適用するスキンを指定する(#1033) | DOMすきんせってい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L31
519
+ | 関数 | DOM部品作成 | ELMの | elmの要素を作成して『DOM親要素設定』で指定した要素に追加して、DOMオブジェクトを返す。(elmがDOM要素なら追加する) | DOMぶひんさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L40
520
+ | 関数 | DOM部品削除 | ELMの/ELMを | elmの要素を削除する | DOMぶひんさくじょ | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L62
521
+ | 関数 | ボタン作成 | LABELの | ラベルlabelを持つbutton要素を追加しDOMオブジェクトを返す | ぼたんさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L72
522
+ | 関数 | エディタ作成 | TEXTの | textの値を持つテキストボックス(input[type='text'])の要素を追加しDOMオブジェクトを返す | えでぃたさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L82
523
+ | 関数 | テキストエリア作成 | TEXTの | textの値を持つtextarea要素を追加しDOMオブジェクトを返す | てきすとえりあさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L93
524
+ | 関数 | ラベル作成 | TEXTの | textの値を持つラベル(span要素)を追加しDOMオブジェクトを返す | らべるさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L103
525
+ | 関数 | キャンバス作成 | SIZEの | 大きさ[幅, 高]のcanvas要素を追加しDOMオブジェクトを返す | きゃんばすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L113
526
+ | 関数 | 画像作成 | URLの/URLから | URLを指定してimg要素を追加しDOMオブジェクトを返す | がぞうさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L128
527
+ | 関数 | 改行作成 | | 改行(br要素)を追加しDOMオブジェクトを返す | かいぎょうさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L138
528
+ | 関数 | チェックボックス作成 | TEXTの | textのラベルを持つチェックボックス(input[type='checkbox'])要素を追加しDOMオブジェクトを返す | ちぇっくぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L147
529
+ | 関数 | セレクトボックス作成 | OPTIONS | 配列optionsの選択肢を持つselect要素を追加しDOMオブジェクトを返す | せれくとぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L168
530
+ | 関数 | セレクトボックスアイテム設定 | OPTIONSをDOMへ/DOMに | 配列データをセレクトボックスdomのアイテムに差し替える | せれくとぼっくすあいてむさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L185
531
+ | 関数 | 色選択ボックス作成 | | 色選択ボックス(input[type='color'])を作成しDOMオブジェクトを返す | いろせんたくぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L203
532
+ | 関数 | 日付選択ボックス作成 | | 日付選択ボックス(input[type='date'])を作成しDOMオブジェクトを返す | ひづけせんたくぼっくすさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L213
533
+ | 関数 | パスワード入力エディタ作成 | Sの/Sで | パスワード入力エディタ(input[type='password'])を作成し初期値Sを設定し、DOMオブジェクトを返す | ぱすわーどにゅうりょくさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L223
534
+ | 関数 | 値指定バー作成 | RANGEの/RANGEで | 範囲RANGE(配列で[最小,最大[,値]])を指定するバー(input[type='range'])を作成しDOMオブジェクトを返す | ぱすわーどにゅうりょくさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L234
535
+ | 関数 | 送信ボタン作成 | LABELの | ラベルSの送信ボタン(input[type='submit'])を作成しDOMオブジェクトを返す | そうしんぼたんさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L253
536
+ | 関数 | フォーム作成 | OBJでSを/OBJの | 属性OBJ{method:"GET",action:"..."}で項目一覧S「a=初期値{改行}b=初期値{改行}色=?c#fff0f0{改行}=?送信」を送信フォームを作成しDOMオブジェクトを返す | ふぉーむさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L264
537
+ | 関数 | フォーム入力一括取得 | DOMの/DOMから | DOMのフォームを取得し、そのフォーム以下にある入力項目のnameとvalueを辞書形式で返す | ふぉーむにゅうりょくいっかつしゅとく | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L337
538
+ | 関数 | テーブル作成 | AAの/AAから | 二次元配列AA(あるいは文字列の簡易CSVデータ)からTABLE要素を作成し、DOMオブジェクトを返す | てーぶるさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L373
539
+ | 関数 | ヘッダ無テーブル作成 | AAの/AAから | 二次元配列AA(あるいは文字列の簡易CSVデータ)からヘッダ無しのTABLE要素を作成し、DOMオブジェクトを返す | へっだなしてーぶるさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L415
540
+ | 関数 | テーブルセル変更 | TCELLをVに/Vへ | TABLE要素のセル[行,列]をVへ変更する。Vが二次元配列変数であれば複数のセルを一括変更する | てーぶるせるへんこう | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L425
541
+ | 関数 | マーメイド作成 | SRCの | Mermaid記法を使ってSRCのチャートを作成する(非同期関数) | まーめいどさくせい | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_dom_parts.mts#L475
541
542
  ●HTML操作
542
543
  | 関数 | HTML変換 | TEXTを | 文字列をHTMLに変換して返す | HTMLへんかん | https://github.com/kujirahand/nadesiko3/blob/master/src/plugin_browser_html.mts#L8
543
544
  ●クリップボード
@@ -15,8 +15,11 @@ NAKO3CORE_DIR=REPOS_DIR&「/nadesiko3core」
15
15
  ###
16
16
  MSG="auto commit ver{ナデシコバージョン}"
17
17
  エラー監視
18
+   「echo "=== GIT ==="」を起動待機。
19
+   CMD=「cd "{NAKO3CORE_DIR}" && cd src && git add *.mts」
20
+   CMDを起動待機。
18
21
    CMD=「cd "{NAKO3CORE_DIR}" && git commit -a -m "{MSG}" && git push」
19
-   CMDを起動待機
22
+   CMDを起動待機。
20
23
  エラーならば
21
24
    「エラーか変更無し」と表示。
22
25
  ここまで
package/core/README.md CHANGED
@@ -12,7 +12,10 @@
12
12
 
13
13
  ## 本リポジトリについて
14
14
 
15
- 本リポジトリは、なでしこ3の言語エンジンのみを取り出したものです。最小限の構成となっています。
15
+ 本リポジトリは、なでしこ3の言語エンジンのみを**取り出したもの**です。最小限の構成となっています。
16
+
17
+ [こちら](https://github.com/kujirahand/nadesiko3)のメインのリポジトリから定期的に[該当ソースファイル](https://github.com/kujirahand/nadesiko3/tree/master/core)がコピーされます。プルリクエストなどは、メインのリポジトリへ送ってください。
18
+
16
19
  言語機能と最小限のプラグインのみを備えています。
17
20
 
18
21
  - [なでしこの基本文法(外部サイト)](https://nadesi.com/v3/doc/index.php?%E6%96%87%E6%B3%95)
@@ -78,12 +81,3 @@ snako nadesiko3core/sample/hello.nako3
78
81
 
79
82
  なでしこの内部構造の仕組みについては、[こちら](/doc/README.md)に詳しく書かれています。
80
83
 
81
- ## 開発時のメモ
82
-
83
- 新バージョンを`npm publish`する場合、必ず、ビルドしてからpublishすること。
84
-
85
- ```sh
86
- # build
87
- npm run build
88
- npm publish
89
- ```
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "nadesiko3core",
3
- "version": "3.6.14",
3
+ "version": "3.6.21",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "nadesiko3core",
9
- "version": "3.6.14",
9
+ "version": "3.6.21",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "cross-env": "^7.0.3"
@@ -2647,9 +2647,9 @@
2647
2647
  }
2648
2648
  },
2649
2649
  "node_modules/micromatch": {
2650
- "version": "4.0.7",
2651
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
2652
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
2650
+ "version": "4.0.8",
2651
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
2652
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
2653
2653
  "dev": true,
2654
2654
  "dependencies": {
2655
2655
  "braces": "^3.0.3",
package/core/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3core",
3
- "version": "3.6.21",
3
+ "version": "3.6.22",
4
4
  "description": "Japanese Programming Language Nadesiko v3 core",
5
5
  "main": "index.mjs",
6
6
  "type": "module",
@@ -152,6 +152,7 @@ export interface AstFor extends AstBlocks {
152
152
  // blocks[2] ... valueInc
153
153
  // blocks[3] ... loop block
154
154
  flagDown: boolean; //
155
+ flagUp: boolean; //
155
156
  loopDirection: null | 'up' | 'down'; // ループの方向
156
157
  }
157
158
 
@@ -1,8 +1,8 @@
1
1
  // 実際のバージョン定義 (自動生成されるので以下を編集しない)
2
2
  const coreVersion = {
3
- version: '3.6.20',
3
+ version: '3.6.22',
4
4
  major: 3,
5
5
  minor: 6,
6
- patch: 20
6
+ patch: 22
7
7
  };
8
8
  export default coreVersion;
@@ -11,9 +11,9 @@ export interface NakoCoreVersion {
11
11
  }
12
12
  // 実際のバージョン定義 (自動生成されるので以下を編集しない)
13
13
  const coreVersion: NakoCoreVersion = {
14
- version: '3.6.20',
14
+ version: '3.6.22',
15
15
  major: 3,
16
16
  minor: 6,
17
- patch: 20
17
+ patch: 22
18
18
  }
19
19
  export default coreVersion
@@ -1071,6 +1071,7 @@ export class NakoGen {
1071
1071
  made = this._convGen(astTo, true);
1072
1072
  }
1073
1073
  const flagDown = node.flagDown;
1074
+ const flagUp = node.flagUp;
1074
1075
  let inc = '1';
1075
1076
  if (astInc.type !== 'nop') {
1076
1077
  inc = this._convGen(astInc, true);
@@ -1083,11 +1084,13 @@ export class NakoGen {
1083
1084
  `const ${varFrom} = ${kara};\n` +
1084
1085
  `const ${varTo} = ${made};\n` +
1085
1086
  `if (${varFrom} <= ${varTo}) { // up\n` +
1086
- ` for (let ${varI} = ${varFrom}; ${varI} <= ${varTo}; ${varI}+= ${inc}) {\n` +
1087
- ` ${sorePrefex};${loopVarSetter}\n` +
1088
- ' // for block begin\n' +
1089
- ` ${block}\n` +
1090
- ' // for block end\n' +
1087
+ ` if (${flagUp}) {` +
1088
+ ` for (let ${varI} = ${varFrom}; ${varI} <= ${varTo}; ${varI}+= ${inc}) {\n` +
1089
+ ` ${sorePrefex};${loopVarSetter}\n` +
1090
+ ' // for block begin\n' +
1091
+ ` ${block}\n` +
1092
+ ' // for block end\n' +
1093
+ ' };\n' +
1091
1094
  ' };\n' +
1092
1095
  '} else { // down\n' +
1093
1096
  ` if (${flagDown}) {` +
@@ -1141,6 +1141,7 @@ export class NakoGen {
1141
1141
  made = this._convGen(astTo, true)
1142
1142
  }
1143
1143
  const flagDown = node.flagDown
1144
+ const flagUp = node.flagUp
1144
1145
  let inc = '1'
1145
1146
  if (astInc.type !== 'nop') {
1146
1147
  inc = this._convGen(astInc, true)
@@ -1154,11 +1155,13 @@ export class NakoGen {
1154
1155
  `const ${varFrom} = ${kara};\n` +
1155
1156
  `const ${varTo} = ${made};\n` +
1156
1157
  `if (${varFrom} <= ${varTo}) { // up\n` +
1157
- ` for (let ${varI} = ${varFrom}; ${varI} <= ${varTo}; ${varI}+= ${inc}) {\n` +
1158
- ` ${sorePrefex};${loopVarSetter}\n` +
1159
- ' // for block begin\n' +
1160
- ` ${block}\n` +
1161
- ' // for block end\n' +
1158
+ ` if (${flagUp}) {` +
1159
+ ` for (let ${varI} = ${varFrom}; ${varI} <= ${varTo}; ${varI}+= ${inc}) {\n` +
1160
+ ` ${sorePrefex};${loopVarSetter}\n` +
1161
+ ' // for block begin\n' +
1162
+ ` ${block}\n` +
1163
+ ' // for block end\n' +
1164
+ ' };\n' +
1162
1165
  ' };\n' +
1163
1166
  '} else { // down\n' +
1164
1167
  ` if (${flagDown}) {` +
@@ -1070,6 +1070,7 @@ export class NakoParser extends NakoParserBase {
1070
1070
  yFor() {
1071
1071
  const errorForArguments = '『繰り返す』文でAからBまでの指定がありません。';
1072
1072
  let flagDown = true; // AからBまでの時、A>=Bを許容するかどうか
1073
+ let flagUp = true; // AからBまでの時、A<=Bを許容するかどうか
1073
1074
  let loopDirection = null; // ループの方向を一方向に限定する
1074
1075
  const map = this.peekSourceMap();
1075
1076
  if (this.check('繰返') || this.check('増繰返') || this.check('減繰返')) {
@@ -1086,6 +1087,9 @@ export class NakoParser extends NakoParserBase {
1086
1087
  if (incdec.value === '増') {
1087
1088
  flagDown = false;
1088
1089
  }
1090
+ else {
1091
+ flagUp = false;
1092
+ }
1089
1093
  const w = incdec.value + kurikaesu.type;
1090
1094
  if (w == '増繰返') {
1091
1095
  kurikaesu.type = '増繰返';
@@ -1108,6 +1112,9 @@ export class NakoParser extends NakoParserBase {
1108
1112
  if (kurikaesu.type === '増繰返') {
1109
1113
  flagDown = false;
1110
1114
  }
1115
+ else {
1116
+ flagUp = false;
1117
+ }
1111
1118
  loopDirection = kurikaesu.type === '増繰返' ? 'up' : 'down';
1112
1119
  }
1113
1120
  const vTo = this.popStack(['まで', 'を']); // 範囲オブジェクトの場合もあり
@@ -1164,6 +1171,7 @@ export class NakoParser extends NakoParserBase {
1164
1171
  type: 'for',
1165
1172
  blocks: [vFrom, vTo, vInc, block],
1166
1173
  flagDown,
1174
+ flagUp,
1167
1175
  loopDirection,
1168
1176
  word: wordStr,
1169
1177
  josi: '',
@@ -935,6 +935,7 @@ export class NakoParser extends NakoParserBase {
935
935
  yFor (): AstFor | null {
936
936
  const errorForArguments = '『繰り返す』文でAからBまでの指定がありません。'
937
937
  let flagDown = true // AからBまでの時、A>=Bを許容するかどうか
938
+ let flagUp = true // AからBまでの時、A<=Bを許容するかどうか
938
939
  let loopDirection : null | 'up' | 'down' = null // ループの方向を一方向に限定する
939
940
  const map = this.peekSourceMap()
940
941
  if (this.check('繰返') || this.check('増繰返') || this.check('減繰返')) {
@@ -947,7 +948,7 @@ export class NakoParser extends NakoParserBase {
947
948
  const incdec = this.stack.pop()
948
949
  if (incdec) {
949
950
  if (incdec.type === 'word' && (incdec.value === '増' || incdec.value === '減')) {
950
- if (incdec.value === '増') { flagDown = false }
951
+ if (incdec.value === '増') { flagDown = false } else { flagUp = false }
951
952
  const w = incdec.value + kurikaesu.type
952
953
  if (w == '増繰返') {
953
954
  kurikaesu.type = '増繰返'
@@ -964,7 +965,7 @@ export class NakoParser extends NakoParserBase {
964
965
  let vInc: Ast = this.yNop()
965
966
  if (kurikaesu.type === '増繰返' || kurikaesu.type === '減繰返') {
966
967
  vInc = this.popStack(['ずつ']) || this.yNop()
967
- if (kurikaesu.type === '増繰返') { flagDown = false }
968
+ if (kurikaesu.type === '増繰返') { flagDown = false } else { flagUp = false }
968
969
  loopDirection = kurikaesu.type === '増繰返' ? 'up' : 'down'
969
970
  }
970
971
  const vTo = this.popStack(['まで', 'を']) // 範囲オブジェクトの場合もあり
@@ -1013,6 +1014,7 @@ export class NakoParser extends NakoParserBase {
1013
1014
  type: 'for',
1014
1015
  blocks: [vFrom, vTo, vInc, block],
1015
1016
  flagDown,
1017
+ flagUp,
1016
1018
  loopDirection,
1017
1019
  word: wordStr,
1018
1020
  josi: '',
@@ -25,7 +25,7 @@ describe('dncl2 (core #41)', async () => {
25
25
  'C=10\n' +
26
26
  'Iを1から10まで1ずつ減らしながら:\n' +
27
27
  '  C=C-1\n' +
28
- 'Cを表示', '0')
28
+ 'Cを表示', '10')
29
29
  })
30
30
  it('繰り返し文([繰り返す]あり)', async () => {
31
31
  await cmp('!DNCL2\n' +
@@ -37,7 +37,7 @@ describe('dncl2 (core #41)', async () => {
37
37
  'C=10\n' +
38
38
  'Iを1から10まで1ずつ減らしながら繰り返す:\n' +
39
39
  '  C=C-1\n' +
40
- 'Cを表示', '0')
40
+ 'Cを表示', '10')
41
41
  await cmp('!DNCL2\n' +
42
42
  'C=0\n' +
43
43
  'm を 1 から 3 まで 1 ずつ増やしながら繰り返す:\n' +
@@ -429,6 +429,24 @@ describe('flow_test', async () => {
429
429
  'ここまで\n' +
430
430
  'Aを表示;', '321')
431
431
  })
432
+ it('「AからBまでNずつ減らし繰り返す」文でBからAまでも実行してしまう問題 #1753', async () => {
433
+ await cmp(
434
+ 'A="";Nを1から3まで繰り返す\n' +
435
+ '  A=A&N\n' +
436
+ 'ここまで\n' +
437
+ 'Aを表示;', '123')
438
+ // 増やすのに減らさない
439
+ await cmp(
440
+ 'A="";Nを1から3まで1ずつ増やし繰り返す\n' +
441
+ '  A=A&N\n' +
442
+ 'ここまで\n' +
443
+ 'Aを表示;', '123')
444
+ await cmp(
445
+ 'A="";Nを1から3まで1ずつ減らし繰り返す\n' +
446
+ '  A=A&N\n' +
447
+ 'ここまで\n' +
448
+ 'Aを表示;', '')
449
+ })
432
450
  it('もしの省略を実装する nadesiko3#1604', async () => {
433
451
  await cmp(
434
452
  'A=10;Aが10と一致するならば\n' +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3",
3
- "version": "3.6.21",
3
+ "version": "3.6.22",
4
4
  "description": "Japanese Programming Language",
5
5
  "type": "module",
6
6
  "main": "src/index.mjs",
@@ -29,6 +29,7 @@
29
29
  "build:nako_version": "node src/cnako3.mjs batch/build_nako_version.nako3",
30
30
  "build:tsc": "tsc",
31
31
  "build": "npm run build:tsc && npm run build:nako_version && npm run build:tsc && npm run build:command && npm run build:esbuild && node src/cnako3.mjs batch/calc_hash.nako3",
32
+ "build:core": "cd core && npm run build",
32
33
  "build:watch": "node bundle_esbuild.js --watch",
33
34
  "clean": "npm run build:tsc && node src/cnako3.mjs batch/clean.nako3",
34
35
  "tsc": "tsc --watch",
@@ -110,7 +111,7 @@
110
111
  "crypto-browserify": "^3.12.0",
111
112
  "css-loader": "^7.1.1",
112
113
  "es6-promise": "^4.2.8",
113
- "esbuild": "0.23.1",
114
+ "esbuild": "0.24.0",
114
115
  "eslint": "^8.57.0",
115
116
  "eslint-config-standard": "^17.1.0",
116
117
  "eslint-plugin-import": "^2.29.1",
@@ -120,7 +121,7 @@
120
121
  "globals": "^15.1.0",
121
122
  "hotkeys-js": "^3.13.7",
122
123
  "markdownlint": "^0.35.0",
123
- "markdownlint-cli": "^0.41.0",
124
+ "markdownlint-cli": "^0.42.0",
124
125
  "mocha": "^10.4.0",
125
126
  "mocha-css": "^1.0.1",
126
127
  "module-alias": "^2.2.3",
package/release/_hash.txt CHANGED
@@ -1,8 +1,8 @@
1
1
  command.json.js:
2
- md5(hex): 84362eea2e3b9e9e98a5e9347e9ce893
3
- sha256(hex): 2474bde61a038d6810e3976889b180e3a388f943b2ba93b95d9b3841c7dc1753
4
- sha256(base64): JHS95hoDjWgQ45doibGA46OI+UOyupO5XZs4QcfcF1M=
5
- sha512(base64): S3byWtbA4Q52Kje4SeEPUvd3MLS7gx23YQNi5tWntuXYziAIG2Vu4sS53SnNfCaG5gAhiaHxB2BYSWMge1tyTw==
2
+ md5(hex): 942c5aa40544a3b320cd8992dc76ab8e
3
+ sha256(hex): 574f5b9b043409cb3342bc42a185d61a73975361079a9005589c5688d779ea13
4
+ sha256(base64): V09bmwQ0CcszQrxCoYXWGnOXU2EHmpAFWJxWiNd56hM=
5
+ sha512(base64): WzWjw+kOPeDk93I7fBC+mI7e3u3tKTUvBRz841tnb3spwyHC9erQgzNCWSr9iOUU791jAiwfDNBlvQn1xQXktg==
6
6
  core_src_nako_josi_list_mjs.js:
7
7
  md5(hex): 2fc99e9b0127c3a50756d4ba4dcc2568
8
8
  sha256(hex): 09821bf4b80ff1c7445cccd154685d00ac2f53a65a3382f4e96e70ac6676330b
@@ -14,10 +14,10 @@ core_src_nako_reserved_words_mjs.js:
14
14
  sha256(base64): 5aJLQsB3GeRK5kfAq4b0Azk0ZCw+3Dv1gU0iOuelIZc=
15
15
  sha512(base64): UzZigh2tIhgBO3+Sp1wnqKMvAGfhqSRdH2+ffmRy4+8CVNEeepddaDV0oKJ+vyvi28zQLmXeMsjRu+Frj3YlTg==
16
16
  edit_main.js:
17
- md5(hex): 05f334036f6bd9f453c2190b9c5e9318
18
- sha256(hex): 578da32e264fdaedf21e1b0e51ccbc52515008057a2413b136e7c3ba5aeaa70c
19
- sha256(base64): V42jLiZP2u3yHhsOUcy8UlFQCAV6JBOxNufDulrqpww=
20
- sha512(base64): lxV1LclyAeTf0BcjFUbHdiZqlSCby43rV3Ra6MkkuGLncH4HXfHsf85GNt6+SL5ada9I4dRoAJ1bD9IToeq+zw==
17
+ md5(hex): 1e48d07295cb091c4ae331de411786f3
18
+ sha256(hex): 02ae686ae1694846358c4b6c69691be71490a4e3ae027746aa5c026971e9a66e
19
+ sha256(base64): Aq5oauFpSEY1jEtsaWkb5xSQpOOuAndGqlwCaXHppm4=
20
+ sha512(base64): ado6OwoJcoyyzYS+bvbPh2DyvNteO+kWHqUaNiw3Gsg0fBdzKC7mOlsTnSDS+K/u9LO7sUj3Qm1HPfzPAuUDMw==
21
21
  edit_main.js:
22
22
  md5(hex): 57ca3d9fbf56352e72858c7ce0b09483
23
23
  sha256(hex): 9ab24fc718a835070d72d23bafd8e90de25e86f755fba67fee6238347201a422
@@ -29,10 +29,10 @@ version_main.js:
29
29
  sha256(base64): BolWQdiyjXjgsV7rd9zbBaP5hJYi3ZWU6lucT5V8fkQ=
30
30
  sha512(base64): KMEb25tO1BMsNxzECPwLM6bi1IIS5wX+VRN6mdzbqhtqPr7eY1K7Wwg66MpCmhrc45KoEJthR4NWyw9O7ODgLw==
31
31
  editor.js:
32
- md5(hex): 05f334036f6bd9f453c2190b9c5e9318
33
- sha256(hex): 578da32e264fdaedf21e1b0e51ccbc52515008057a2413b136e7c3ba5aeaa70c
34
- sha256(base64): V42jLiZP2u3yHhsOUcy8UlFQCAV6JBOxNufDulrqpww=
35
- sha512(base64): lxV1LclyAeTf0BcjFUbHdiZqlSCby43rV3Ra6MkkuGLncH4HXfHsf85GNt6+SL5ada9I4dRoAJ1bD9IToeq+zw==
32
+ md5(hex): 1e48d07295cb091c4ae331de411786f3
33
+ sha256(hex): 02ae686ae1694846358c4b6c69691be71490a4e3ae027746aa5c026971e9a66e
34
+ sha256(base64): Aq5oauFpSEY1jEtsaWkb5xSQpOOuAndGqlwCaXHppm4=
35
+ sha512(base64): ado6OwoJcoyyzYS+bvbPh2DyvNteO+kWHqUaNiw3Gsg0fBdzKC7mOlsTnSDS+K/u9LO7sUj3Qm1HPfzPAuUDMw==
36
36
  nako_gen_async.js:
37
37
  md5(hex): 42d5fed01039474ff197d449c27c84ad
38
38
  sha256(hex): d78d516b32b551c4a51ceef529568760783c84f6c5d90029fa9b38922d5b4430
@@ -144,22 +144,22 @@ wnako3webworker.js:
144
144
  sha256(base64): zkHQ1vYOjoH4nffi+OulPeq/tql28XhdNuKpcaBCOKk=
145
145
  sha512(base64): cY0Mzrpoz/uEyY1n8MeJeWdDmm9vqI7dh28wEqJGtVRfYOJvDHiYDzzlfGndOWmzZmHUK6ZAE7YaUJ7zZxiZLw==
146
146
  version.js:
147
- md5(hex): 036dfc9eca4f63e4e53f11a5a1597260
148
- sha256(hex): e7d49390d7ff73ad9a533f0c907c11ea5e1905fed979aa34618182e123d61f34
149
- sha256(base64): 59STkNf/c62aUz8MkHwR6l4ZBf7Zeao0YYGC4SPWHzQ=
150
- sha512(base64): FA7YvspBoZepTXpf6y/NOd1MTaoBtZ2D9JDA8Ra99NAi3GOWxTF2WA/c9QS3KlAcRCJAwSOW5r7uc0gBczeYWw==
147
+ md5(hex): b51d1a474fe70e082747761c08b6e468
148
+ sha256(hex): b8a79c823ecb31e829979d3b225e12ff40cd55c57b0fa15a376e84590193f7fc
149
+ sha256(base64): uKecgj7LMegpl507Il4S/0DNVcV7D6FaN26EWQGT9/w=
150
+ sha512(base64): cwca8hpM3lXsehzT26grLnTz0ysSgq9dyzI9jmFOO12EzVPMrjjlcyrKUc7I57C54HCnprlNos5Tjokjz4Dl+g==
151
151
  version_main.js:
152
- md5(hex): 036dfc9eca4f63e4e53f11a5a1597260
153
- sha256(hex): e7d49390d7ff73ad9a533f0c907c11ea5e1905fed979aa34618182e123d61f34
154
- sha256(base64): 59STkNf/c62aUz8MkHwR6l4ZBf7Zeao0YYGC4SPWHzQ=
155
- sha512(base64): FA7YvspBoZepTXpf6y/NOd1MTaoBtZ2D9JDA8Ra99NAi3GOWxTF2WA/c9QS3KlAcRCJAwSOW5r7uc0gBczeYWw==
152
+ md5(hex): b51d1a474fe70e082747761c08b6e468
153
+ sha256(hex): b8a79c823ecb31e829979d3b225e12ff40cd55c57b0fa15a376e84590193f7fc
154
+ sha256(base64): uKecgj7LMegpl507Il4S/0DNVcV7D6FaN26EWQGT9/w=
155
+ sha512(base64): cwca8hpM3lXsehzT26grLnTz0ysSgq9dyzI9jmFOO12EzVPMrjjlcyrKUc7I57C54HCnprlNos5Tjokjz4Dl+g==
156
156
  wnako3.js:
157
- md5(hex): 7bf85f51a1bd93b64e745e3eb1782d67
158
- sha256(hex): bfa3fa92b6920154f76fb4246ec1471a3bc24a26070d49c8ded56425426ba55b
159
- sha256(base64): v6P6kraSAVT3b7QkbsFHGjvCSiYHDUnI3tVkJUJrpVs=
160
- sha512(base64): r9wh3bU6XYu/RPPteNaFUagyQiA96kmugQRHUVGnv/MmXNOLK3U//+IHje8PDqu4D7lTjxciEVxeNZqK2Ak/AA==
157
+ md5(hex): 36e9c7e9899d28e98e4ea992d7d25a27
158
+ sha256(hex): ff8bdf834f97807ede494471c2a8e83ee6df161a8e4d2fc93b095b7a77b7520e
159
+ sha256(base64): /4vfg0+XgH7eSURxwqjoPubfFhqOTS/JOwlbene3Ug4=
160
+ sha512(base64): 2N4oZE3XlFHPaf/OdsYE/2ICJIHqXjMoL8GSQ2cAhLMsph/hFkAnqNmI/0zcUDExlYpYk1YVR5LepmjC4ZLHWA==
161
161
  wnako3webworker.js:
162
- md5(hex): 5ca285de0c812f33ca6a06f01ac27243
163
- sha256(hex): ffae9313994f67b2b1482221ac46c7d3cf1184be6644f901327797371e00798a
164
- sha256(base64): /66TE5lPZ7KxSCIhrEbH088RhL5mRPkBMneXNx4AeYo=
165
- sha512(base64): xV9gE5+/z3NMIjLfsc4TqwUG2/+tgTXvUuzRKJqaO3qRBGyB2dmf35/gI/L9eeWur2ezqJ6rSTphKn6h8fimcg==
162
+ md5(hex): e4722fd34759a8de3fe5122f427af49c
163
+ sha256(hex): d85fe1ab3e0369a36fa1fc1126de4d056f856f694bb823bcfec2c598fd3d18d9
164
+ sha256(base64): 2F/hqz4DaaNvofwRJt5NBW+Fb2lLuCO8/sLFmP09GNk=
165
+ sha512(base64): HGE4GxYu8/YC19l7qvbmXTfKEBsQm30D0nPUqrbFohF1VHiTWRwnkpO6FJqLmfLbFALonnWwd+9OpUJUi+y67w==
@@ -1,33 +1,33 @@
1
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/command.json.js" integrity="sha512-S3byWtbA4Q52Kje4SeEPUvd3MLS7gx23YQNi5tWntuXYziAIG2Vu4sS53SnNfCaG5gAhiaHxB2BYSWMge1tyTw==" crossorigin="anonymous"></script>
2
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/core_src_nako_josi_list_mjs.js" integrity="sha512-0+LAeEfPy2Lrl+DeJMjbBIUda9Y5ttpLGy3/FW8rjSW8bN3udrALJa5V/bhjxU7mYouumV/QGN2wt3oxMCKy9g==" crossorigin="anonymous"></script>
3
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/core_src_nako_reserved_words_mjs.js" integrity="sha512-UzZigh2tIhgBO3+Sp1wnqKMvAGfhqSRdH2+ffmRy4+8CVNEeepddaDV0oKJ+vyvi28zQLmXeMsjRu+Frj3YlTg==" crossorigin="anonymous"></script>
4
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/edit_main.js" integrity="sha512-lxV1LclyAeTf0BcjFUbHdiZqlSCby43rV3Ra6MkkuGLncH4HXfHsf85GNt6+SL5ada9I4dRoAJ1bD9IToeq+zw==" crossorigin="anonymous"></script>
5
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/edit_main.js" integrity="sha512-VluJJhYbxG+I5sofn1bKqOuIqMXdCyUUM9dnSBEVAkUXUy/ENHfG6hQFTZULcHy9iNfqPHXTfWuCgyMzQ9Hxrg==" crossorigin="anonymous"></script>
6
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/version_main.js" integrity="sha512-KMEb25tO1BMsNxzECPwLM6bi1IIS5wX+VRN6mdzbqhtqPr7eY1K7Wwg66MpCmhrc45KoEJthR4NWyw9O7ODgLw==" crossorigin="anonymous"></script>
7
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/editor.js" integrity="sha512-lxV1LclyAeTf0BcjFUbHdiZqlSCby43rV3Ra6MkkuGLncH4HXfHsf85GNt6+SL5ada9I4dRoAJ1bD9IToeq+zw==" crossorigin="anonymous"></script>
8
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
9
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_caniuse.js" integrity="sha512-V6nOBHnhxPChu+S/LfB7elCeBk985ukLmBmkCyPk4ai5VfoJZuOIttg72PbZSxWfP5eQTrlLNajsorfwNw/vcA==" crossorigin="anonymous"></script>
10
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_datetime.js" integrity="sha512-ofb5jVaHjjTRoCAmHnbewc2fS8vr1oEkX/B3WoOCjYpDnZ3nnl3EDz6fdAS8CFFzGvuekCk2RFN5BuM9kX6FAg==" crossorigin="anonymous"></script>
11
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_kansuji.js" integrity="sha512-N+S8Th1yCiQy3q5jh0TFvlTOtrWNE82a4UJZ9O3ml3BGBYA141bpWlJR5c34dObTe1prbLJZ7v5WvV0vnDnr9A==" crossorigin="anonymous"></script>
12
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_keigo.js" integrity="sha512-u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==" crossorigin="anonymous"></script>
13
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_markup.js" integrity="sha512-mEcV3CYWM6+zmuxgojP/9wbQNtkTPuPzFHo1KTG2TPaDbSfdPZCazFcNmdjJ95o7+VFfxs2Id7yB02bqSeBxNg==" crossorigin="anonymous"></script>
14
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_three.js" integrity="sha512-4loRkhlxZ9A9v5t3sk5VECW7T33axIVbBQgwkNdgcjk03yRqAvxut5OS4n3BBS4jnWWHOE3i0vj9qxOOp4uV3Q==" crossorigin="anonymous"></script>
15
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_toml.js" integrity="sha512-Z4JmOCY66VuyoD8m4dCzKttEbCTEUfqyuqlmcOhs69m/88skKcPYWXi+4W+Td5LdI3xqezn4BkN32F9ZkPzUpQ==" crossorigin="anonymous"></script>
16
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_turtle.js" integrity="sha512-ce8etr+HoC+UjUyXSgxJzy3+pOYhsBdt9jDzhks2H/eEPQ1gIz7M8hoeyP0223zLLZHBBzlHiL/a6mmJdoKQ+w==" crossorigin="anonymous"></script>
17
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_webworker.js" integrity="sha512-6UHX2dgMPRY4BuIxLXaERKaA8Wg5eK2pWy+OysU0/+gt2E15M7K5Vr8+4CQt6hylWnmzmJQJfgObIr+yjW5kPw==" crossorigin="anonymous"></script>
18
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_weykturtle3d.js" integrity="sha512-ONFdombPCdgdnXs7VMUAHpe8IBvTuLzSgzmERf1jEhHo4l06wDpkpRRCk3/9a1hiXRHQ+le2LZBT7XH4VA27sQ==" crossorigin="anonymous"></script>
19
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_caniuse.js" integrity="sha512-V6nOBHnhxPChu+S/LfB7elCeBk985ukLmBmkCyPk4ai5VfoJZuOIttg72PbZSxWfP5eQTrlLNajsorfwNw/vcA==" crossorigin="anonymous"></script>
20
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_datetime.js" integrity="sha512-ofb5jVaHjjTRoCAmHnbewc2fS8vr1oEkX/B3WoOCjYpDnZ3nnl3EDz6fdAS8CFFzGvuekCk2RFN5BuM9kX6FAg==" crossorigin="anonymous"></script>
21
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_kansuji.js" integrity="sha512-N+S8Th1yCiQy3q5jh0TFvlTOtrWNE82a4UJZ9O3ml3BGBYA141bpWlJR5c34dObTe1prbLJZ7v5WvV0vnDnr9A==" crossorigin="anonymous"></script>
22
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_keigo.js" integrity="sha512-u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==" crossorigin="anonymous"></script>
23
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_markup.js" integrity="sha512-mEcV3CYWM6+zmuxgojP/9wbQNtkTPuPzFHo1KTG2TPaDbSfdPZCazFcNmdjJ95o7+VFfxs2Id7yB02bqSeBxNg==" crossorigin="anonymous"></script>
24
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_three.js" integrity="sha512-4loRkhlxZ9A9v5t3sk5VECW7T33axIVbBQgwkNdgcjk03yRqAvxut5OS4n3BBS4jnWWHOE3i0vj9qxOOp4uV3Q==" crossorigin="anonymous"></script>
25
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_turtle.js" integrity="sha512-ce8etr+HoC+UjUyXSgxJzy3+pOYhsBdt9jDzhks2H/eEPQ1gIz7M8hoeyP0223zLLZHBBzlHiL/a6mmJdoKQ+w==" crossorigin="anonymous"></script>
26
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_webworker.js" integrity="sha512-6UHX2dgMPRY4BuIxLXaERKaA8Wg5eK2pWy+OysU0/+gt2E15M7K5Vr8+4CQt6hylWnmzmJQJfgObIr+yjW5kPw==" crossorigin="anonymous"></script>
27
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/plugin_weykturtle3d.js" integrity="sha512-ONFdombPCdgdnXs7VMUAHpe8IBvTuLzSgzmERf1jEhHo4l06wDpkpRRCk3/9a1hiXRHQ+le2LZBT7XH4VA27sQ==" crossorigin="anonymous"></script>
28
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/wnako3.js" integrity="sha512-ZBC5fnWXr1/lcjLwXqmTj1OXfBewmzxlPqnz6ZnDhtVUY9invxAimbYuxMrgb3ZiFnopNLH7xPbgWlFJNB/jmQ==" crossorigin="anonymous"></script>
29
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/wnako3webworker.js" integrity="sha512-cY0Mzrpoz/uEyY1n8MeJeWdDmm9vqI7dh28wEqJGtVRfYOJvDHiYDzzlfGndOWmzZmHUK6ZAE7YaUJ7zZxiZLw==" crossorigin="anonymous"></script>
30
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/version.js" integrity="sha512-FA7YvspBoZepTXpf6y/NOd1MTaoBtZ2D9JDA8Ra99NAi3GOWxTF2WA/c9QS3KlAcRCJAwSOW5r7uc0gBczeYWw==" crossorigin="anonymous"></script>
31
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/version_main.js" integrity="sha512-FA7YvspBoZepTXpf6y/NOd1MTaoBtZ2D9JDA8Ra99NAi3GOWxTF2WA/c9QS3KlAcRCJAwSOW5r7uc0gBczeYWw==" crossorigin="anonymous"></script>
32
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/wnako3.js" integrity="sha512-r9wh3bU6XYu/RPPteNaFUagyQiA96kmugQRHUVGnv/MmXNOLK3U//+IHje8PDqu4D7lTjxciEVxeNZqK2Ak/AA==" crossorigin="anonymous"></script>
33
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.21&f=release/wnako3webworker.js" integrity="sha512-xV9gE5+/z3NMIjLfsc4TqwUG2/+tgTXvUuzRKJqaO3qRBGyB2dmf35/gI/L9eeWur2ezqJ6rSTphKn6h8fimcg==" crossorigin="anonymous"></script>
1
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/command.json.js" integrity="sha512-WzWjw+kOPeDk93I7fBC+mI7e3u3tKTUvBRz841tnb3spwyHC9erQgzNCWSr9iOUU791jAiwfDNBlvQn1xQXktg==" crossorigin="anonymous"></script>
2
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/core_src_nako_josi_list_mjs.js" integrity="sha512-0+LAeEfPy2Lrl+DeJMjbBIUda9Y5ttpLGy3/FW8rjSW8bN3udrALJa5V/bhjxU7mYouumV/QGN2wt3oxMCKy9g==" crossorigin="anonymous"></script>
3
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/core_src_nako_reserved_words_mjs.js" integrity="sha512-UzZigh2tIhgBO3+Sp1wnqKMvAGfhqSRdH2+ffmRy4+8CVNEeepddaDV0oKJ+vyvi28zQLmXeMsjRu+Frj3YlTg==" crossorigin="anonymous"></script>
4
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/edit_main.js" integrity="sha512-ado6OwoJcoyyzYS+bvbPh2DyvNteO+kWHqUaNiw3Gsg0fBdzKC7mOlsTnSDS+K/u9LO7sUj3Qm1HPfzPAuUDMw==" crossorigin="anonymous"></script>
5
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/edit_main.js" integrity="sha512-VluJJhYbxG+I5sofn1bKqOuIqMXdCyUUM9dnSBEVAkUXUy/ENHfG6hQFTZULcHy9iNfqPHXTfWuCgyMzQ9Hxrg==" crossorigin="anonymous"></script>
6
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/version_main.js" integrity="sha512-KMEb25tO1BMsNxzECPwLM6bi1IIS5wX+VRN6mdzbqhtqPr7eY1K7Wwg66MpCmhrc45KoEJthR4NWyw9O7ODgLw==" crossorigin="anonymous"></script>
7
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/editor.js" integrity="sha512-ado6OwoJcoyyzYS+bvbPh2DyvNteO+kWHqUaNiw3Gsg0fBdzKC7mOlsTnSDS+K/u9LO7sUj3Qm1HPfzPAuUDMw==" crossorigin="anonymous"></script>
8
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
9
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_caniuse.js" integrity="sha512-V6nOBHnhxPChu+S/LfB7elCeBk985ukLmBmkCyPk4ai5VfoJZuOIttg72PbZSxWfP5eQTrlLNajsorfwNw/vcA==" crossorigin="anonymous"></script>
10
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_datetime.js" integrity="sha512-ofb5jVaHjjTRoCAmHnbewc2fS8vr1oEkX/B3WoOCjYpDnZ3nnl3EDz6fdAS8CFFzGvuekCk2RFN5BuM9kX6FAg==" crossorigin="anonymous"></script>
11
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_kansuji.js" integrity="sha512-N+S8Th1yCiQy3q5jh0TFvlTOtrWNE82a4UJZ9O3ml3BGBYA141bpWlJR5c34dObTe1prbLJZ7v5WvV0vnDnr9A==" crossorigin="anonymous"></script>
12
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_keigo.js" integrity="sha512-u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==" crossorigin="anonymous"></script>
13
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_markup.js" integrity="sha512-mEcV3CYWM6+zmuxgojP/9wbQNtkTPuPzFHo1KTG2TPaDbSfdPZCazFcNmdjJ95o7+VFfxs2Id7yB02bqSeBxNg==" crossorigin="anonymous"></script>
14
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_three.js" integrity="sha512-4loRkhlxZ9A9v5t3sk5VECW7T33axIVbBQgwkNdgcjk03yRqAvxut5OS4n3BBS4jnWWHOE3i0vj9qxOOp4uV3Q==" crossorigin="anonymous"></script>
15
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_toml.js" integrity="sha512-Z4JmOCY66VuyoD8m4dCzKttEbCTEUfqyuqlmcOhs69m/88skKcPYWXi+4W+Td5LdI3xqezn4BkN32F9ZkPzUpQ==" crossorigin="anonymous"></script>
16
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_turtle.js" integrity="sha512-ce8etr+HoC+UjUyXSgxJzy3+pOYhsBdt9jDzhks2H/eEPQ1gIz7M8hoeyP0223zLLZHBBzlHiL/a6mmJdoKQ+w==" crossorigin="anonymous"></script>
17
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_webworker.js" integrity="sha512-6UHX2dgMPRY4BuIxLXaERKaA8Wg5eK2pWy+OysU0/+gt2E15M7K5Vr8+4CQt6hylWnmzmJQJfgObIr+yjW5kPw==" crossorigin="anonymous"></script>
18
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_weykturtle3d.js" integrity="sha512-ONFdombPCdgdnXs7VMUAHpe8IBvTuLzSgzmERf1jEhHo4l06wDpkpRRCk3/9a1hiXRHQ+le2LZBT7XH4VA27sQ==" crossorigin="anonymous"></script>
19
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_caniuse.js" integrity="sha512-V6nOBHnhxPChu+S/LfB7elCeBk985ukLmBmkCyPk4ai5VfoJZuOIttg72PbZSxWfP5eQTrlLNajsorfwNw/vcA==" crossorigin="anonymous"></script>
20
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_datetime.js" integrity="sha512-ofb5jVaHjjTRoCAmHnbewc2fS8vr1oEkX/B3WoOCjYpDnZ3nnl3EDz6fdAS8CFFzGvuekCk2RFN5BuM9kX6FAg==" crossorigin="anonymous"></script>
21
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_kansuji.js" integrity="sha512-N+S8Th1yCiQy3q5jh0TFvlTOtrWNE82a4UJZ9O3ml3BGBYA141bpWlJR5c34dObTe1prbLJZ7v5WvV0vnDnr9A==" crossorigin="anonymous"></script>
22
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_keigo.js" integrity="sha512-u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==" crossorigin="anonymous"></script>
23
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_markup.js" integrity="sha512-mEcV3CYWM6+zmuxgojP/9wbQNtkTPuPzFHo1KTG2TPaDbSfdPZCazFcNmdjJ95o7+VFfxs2Id7yB02bqSeBxNg==" crossorigin="anonymous"></script>
24
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_three.js" integrity="sha512-4loRkhlxZ9A9v5t3sk5VECW7T33axIVbBQgwkNdgcjk03yRqAvxut5OS4n3BBS4jnWWHOE3i0vj9qxOOp4uV3Q==" crossorigin="anonymous"></script>
25
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_turtle.js" integrity="sha512-ce8etr+HoC+UjUyXSgxJzy3+pOYhsBdt9jDzhks2H/eEPQ1gIz7M8hoeyP0223zLLZHBBzlHiL/a6mmJdoKQ+w==" crossorigin="anonymous"></script>
26
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_webworker.js" integrity="sha512-6UHX2dgMPRY4BuIxLXaERKaA8Wg5eK2pWy+OysU0/+gt2E15M7K5Vr8+4CQt6hylWnmzmJQJfgObIr+yjW5kPw==" crossorigin="anonymous"></script>
27
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/plugin_weykturtle3d.js" integrity="sha512-ONFdombPCdgdnXs7VMUAHpe8IBvTuLzSgzmERf1jEhHo4l06wDpkpRRCk3/9a1hiXRHQ+le2LZBT7XH4VA27sQ==" crossorigin="anonymous"></script>
28
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/wnako3.js" integrity="sha512-ZBC5fnWXr1/lcjLwXqmTj1OXfBewmzxlPqnz6ZnDhtVUY9invxAimbYuxMrgb3ZiFnopNLH7xPbgWlFJNB/jmQ==" crossorigin="anonymous"></script>
29
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/wnako3webworker.js" integrity="sha512-cY0Mzrpoz/uEyY1n8MeJeWdDmm9vqI7dh28wEqJGtVRfYOJvDHiYDzzlfGndOWmzZmHUK6ZAE7YaUJ7zZxiZLw==" crossorigin="anonymous"></script>
30
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/version.js" integrity="sha512-cwca8hpM3lXsehzT26grLnTz0ysSgq9dyzI9jmFOO12EzVPMrjjlcyrKUc7I57C54HCnprlNos5Tjokjz4Dl+g==" crossorigin="anonymous"></script>
31
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/version_main.js" integrity="sha512-cwca8hpM3lXsehzT26grLnTz0ysSgq9dyzI9jmFOO12EzVPMrjjlcyrKUc7I57C54HCnprlNos5Tjokjz4Dl+g==" crossorigin="anonymous"></script>
32
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/wnako3.js" integrity="sha512-2N4oZE3XlFHPaf/OdsYE/2ICJIHqXjMoL8GSQ2cAhLMsph/hFkAnqNmI/0zcUDExlYpYk1YVR5LepmjC4ZLHWA==" crossorigin="anonymous"></script>
33
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.6.22&f=release/wnako3webworker.js" integrity="sha512-HGE4GxYu8/YC19l7qvbmXTfKEBsQm30D0nPUqrbFohF1VHiTWRwnkpO6FJqLmfLbFALonnWwd+9OpUJUi+y67w==" crossorigin="anonymous"></script>