@famibee/skynovel 2.0.2 → 2.0.3

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.
Files changed (121) hide show
  1. package/dist/Button.js +36 -34
  2. package/dist/Button.js.map +1 -1
  3. package/dist/CallStack.js +11 -6
  4. package/dist/CallStack.js.map +1 -1
  5. package/dist/CmnInterface.js +13 -11
  6. package/dist/CmnInterface.js.map +1 -1
  7. package/dist/CmnLib.js +58 -56
  8. package/dist/CmnLib.js.map +1 -1
  9. package/dist/Config.js +9 -7
  10. package/dist/Config.js.map +1 -1
  11. package/dist/ConfigBase.js +52 -49
  12. package/dist/ConfigBase.js.map +1 -1
  13. package/dist/DebugMng.js +9 -6
  14. package/dist/DebugMng.js.map +1 -1
  15. package/dist/EventListenerCtn.js +6 -4
  16. package/dist/EventListenerCtn.js.map +1 -1
  17. package/dist/EventMng.js +522 -417
  18. package/dist/EventMng.js.map +1 -1
  19. package/dist/Grammar.js +22 -20
  20. package/dist/Grammar.js.map +1 -1
  21. package/dist/GrpLayer.js +58 -57
  22. package/dist/GrpLayer.js.map +1 -1
  23. package/dist/Layer.js +66 -64
  24. package/dist/Layer.js.map +1 -1
  25. package/dist/LayerMng.js +461 -441
  26. package/dist/LayerMng.js.map +1 -1
  27. package/dist/Main.js +69 -67
  28. package/dist/Main.js.map +1 -1
  29. package/dist/PropParser.js +23 -19
  30. package/dist/PropParser.js.map +1 -1
  31. package/dist/Reading.js +422 -418
  32. package/dist/Reading.js.map +1 -1
  33. package/dist/RubySpliter.js +4 -2
  34. package/dist/RubySpliter.js.map +1 -1
  35. package/dist/ScriptIterator.js +374 -370
  36. package/dist/ScriptIterator.js.map +1 -1
  37. package/dist/SndBuf.js +643 -622
  38. package/dist/SndBuf.js.map +1 -1
  39. package/dist/SoundMng.js +59 -60
  40. package/dist/SoundMng.js.map +1 -1
  41. package/dist/SpritesMng.js +135 -129
  42. package/dist/SpritesMng.js.map +1 -1
  43. package/dist/SysBase.js +985 -950
  44. package/dist/SysBase.js.map +1 -1
  45. package/dist/TxtLayer.js +558 -551
  46. package/dist/TxtLayer.js.map +1 -1
  47. package/dist/Variable.js +47 -45
  48. package/dist/Variable.js.map +1 -1
  49. package/dist/chunk.js +11 -9
  50. package/dist/gamepad.js +396 -660
  51. package/dist/gamepad.js.map +1 -1
  52. package/dist/pixi.js +2631 -2593
  53. package/dist/pixi.js.map +1 -1
  54. package/dist/platform.js +6 -4
  55. package/dist/platform.js.map +1 -1
  56. package/dist/rolldown-runtime.js +20 -0
  57. package/dist/web.js +418 -418
  58. package/dist/web.js.map +1 -1
  59. package/dist_app/Button.js +36 -34
  60. package/dist_app/Button.js.map +1 -1
  61. package/dist_app/CallStack.js +11 -6
  62. package/dist_app/CallStack.js.map +1 -1
  63. package/dist_app/CmnInterface.js +13 -11
  64. package/dist_app/CmnInterface.js.map +1 -1
  65. package/dist_app/CmnLib.js +58 -56
  66. package/dist_app/CmnLib.js.map +1 -1
  67. package/dist_app/Config.js +9 -7
  68. package/dist_app/Config.js.map +1 -1
  69. package/dist_app/ConfigBase.js +52 -49
  70. package/dist_app/ConfigBase.js.map +1 -1
  71. package/dist_app/DebugMng.js +9 -6
  72. package/dist_app/DebugMng.js.map +1 -1
  73. package/dist_app/EventListenerCtn.js +6 -4
  74. package/dist_app/EventListenerCtn.js.map +1 -1
  75. package/dist_app/EventMng.js +522 -417
  76. package/dist_app/EventMng.js.map +1 -1
  77. package/dist_app/Grammar.js +22 -20
  78. package/dist_app/Grammar.js.map +1 -1
  79. package/dist_app/GrpLayer.js +58 -57
  80. package/dist_app/GrpLayer.js.map +1 -1
  81. package/dist_app/Layer.js +66 -64
  82. package/dist_app/Layer.js.map +1 -1
  83. package/dist_app/LayerMng.js +461 -441
  84. package/dist_app/LayerMng.js.map +1 -1
  85. package/dist_app/Main.js +69 -67
  86. package/dist_app/Main.js.map +1 -1
  87. package/dist_app/PropParser.js +23 -19
  88. package/dist_app/PropParser.js.map +1 -1
  89. package/dist_app/Reading.js +422 -418
  90. package/dist_app/Reading.js.map +1 -1
  91. package/dist_app/RubySpliter.js +4 -2
  92. package/dist_app/RubySpliter.js.map +1 -1
  93. package/dist_app/ScriptIterator.js +374 -370
  94. package/dist_app/ScriptIterator.js.map +1 -1
  95. package/dist_app/SndBuf.js +643 -622
  96. package/dist_app/SndBuf.js.map +1 -1
  97. package/dist_app/SoundMng.js +59 -60
  98. package/dist_app/SoundMng.js.map +1 -1
  99. package/dist_app/SpritesMng.js +135 -129
  100. package/dist_app/SpritesMng.js.map +1 -1
  101. package/dist_app/SysBase.js +985 -950
  102. package/dist_app/SysBase.js.map +1 -1
  103. package/dist_app/TxtLayer.js +558 -551
  104. package/dist_app/TxtLayer.js.map +1 -1
  105. package/dist_app/Variable.js +47 -45
  106. package/dist_app/Variable.js.map +1 -1
  107. package/dist_app/app.js +62 -63
  108. package/dist_app/app.js.map +1 -1
  109. package/dist_app/appMain.js +11 -11
  110. package/dist_app/appMain.js.map +1 -1
  111. package/dist_app/chunk.js +11 -9
  112. package/dist_app/gamepad.js +396 -660
  113. package/dist_app/gamepad.js.map +1 -1
  114. package/dist_app/pixi.js +2028 -1990
  115. package/dist_app/pixi.js.map +1 -1
  116. package/dist_app/platform.js +6 -4
  117. package/dist_app/platform.js.map +1 -1
  118. package/dist_app/preload.js +1 -1
  119. package/dist_app/preload.js.map +1 -1
  120. package/dist_app/rolldown-runtime.js +20 -0
  121. package/package.json +20 -21
@@ -1,11 +1,10 @@
1
- import { g as uint, l as argChk_Num, p as int, s as argChk_Boolean } from "./CmnLib.js";
2
- import { n as creSYS_DATA, r as creTMP_DATA, t as creSAVEDATA } from "./CmnInterface.js";
3
- import "./pixi.js";
4
- import "./EventListenerCtn.js";
5
- import { n as ReadingState } from "./Reading.js";
6
- import { PropParser } from "./PropParser.js";
7
- import { n as creCSArg } from "./CallStack.js";
8
- var Areas = class e {
1
+ import { g as e, l as t, p as n, s as r } from "./CmnLib.js";
2
+ import { n as i, r as a, t as o } from "./CmnInterface.js";
3
+ import { n as s } from "./Reading.js";
4
+ import { PropParser as c } from "./PropParser.js";
5
+ import { n as l } from "./CallStack.js";
6
+ //#region src/sn/Areas.ts
7
+ var u = class e {
9
8
  #e = {};
10
9
  clear() {
11
10
  this.#e = {};
@@ -57,9 +56,11 @@ var Areas = class e {
57
56
  for (let t of Object.keys(this.#e).map((e) => parseInt(e)).sort((e, t) => e - t)) e += t === this.#e[t] ? "," + String(t) : "," + String(t) + "~" + String(this.#e[String(t)]);
58
57
  return e;
59
58
  }
60
- }, Variable = class d {
61
- #e = creSAVEDATA();
62
- #t = creTMP_DATA();
59
+ }, d = class d {
60
+ sys;
61
+ cfg;
62
+ #e = o();
63
+ #t = a();
63
64
  #n = {
64
65
  sys: {},
65
66
  save: this.#e,
@@ -72,7 +73,7 @@ var Areas = class e {
72
73
  let t = [];
73
74
  for (let [n, r] of Object.entries(this.#r.mark)) {
74
75
  let i = { ...r.json };
75
- i.place = uint(n), t.push(i);
76
+ i.place = e(n), t.push(i);
76
77
  }
77
78
  return JSON.stringify(t);
78
79
  }), this.#t["const.sn.config.window.width"] = n.oCfg.window.width, this.#t["const.sn.config.window.height"] = n.oCfg.window.height, this.#t["const.sn.config.book.title"] = n.oCfg.book.title, this.#t["const.sn.config.book.version"] = n.oCfg.book.version;
@@ -87,32 +88,32 @@ var Areas = class e {
87
88
  #o;
88
89
  async init() {
89
90
  return this.sys.initVal(this.#t, (e) => {
90
- this.updateData(e), this.cfg.oCfg.debug.variable ? this.#s(this.sys) : this.flush = () => this.sys.flush(), this.flush(), this.#o = (e, t) => this.sys.callHook(e, t), this.sys.addHook((e, t) => this.#l[e]?.(e, t)), int(this.getVal("sys:sn.tagCh.msecWait", -1)) === -1 && this.#C(!0), this.#j = !!this.getVal("sys:sn.tagCh.doWait"), this.#M = !!this.getVal("sys:sn.tagCh.doWait_Kidoku"), this.#N = int(this.getVal("sys:sn.tagCh.msecWait")), this.#P = int(this.getVal("sys:sn.tagCh.msecWait_Kidoku")), this.#c();
91
+ this.updateData(e), this.cfg.oCfg.debug.variable ? this.#s(this.sys) : this.flush = () => this.sys.flush(), this.flush(), this.#o = (e, t) => this.sys.callHook(e, t), this.sys.addHook((e, t) => this.#l[e]?.(e, t)), n(this.getVal("sys:sn.tagCh.msecWait", -1)) === -1 && this.#C(!0), this.#j = !!this.getVal("sys:sn.tagCh.doWait"), this.#M = !!this.getVal("sys:sn.tagCh.doWait_Kidoku"), this.#N = n(this.getVal("sys:sn.tagCh.msecWait")), this.#P = n(this.getVal("sys:sn.tagCh.msecWait_Kidoku")), this.#c();
91
92
  });
92
93
  }
93
94
  #s(e) {
94
95
  sessionStorage.clear();
95
96
  let t = this.cfg.headNs;
96
97
  this.flush = () => {
97
- let r = creSYS_DATA();
98
+ let r = i();
98
99
  for (let [e, t] of Object.entries(this.#i)) t instanceof Function || (r[e] = t);
99
100
  sessionStorage[t + "sys"] = JSON.stringify(r);
100
- let s = creSAVEDATA();
101
+ let s = o();
101
102
  for (let [e, t] of Object.entries(this.#e)) s[e] = t;
102
103
  sessionStorage[t + "save"] = JSON.stringify(s);
103
- let c = creTMP_DATA();
104
+ let c = a();
104
105
  for (let [e, t] of Object.entries(this.#t)) c[e] = t instanceof Function ? t() : t;
105
106
  sessionStorage[t + "tmp"] = JSON.stringify(c);
106
- let u = creCSArg();
107
+ let u = l();
107
108
  for (let [e, t] of Object.entries(this.#n.mp)) u[e] = t;
108
109
  sessionStorage[t + "mp"] = JSON.stringify(u);
109
110
  let d = {};
110
- for (let [e, t] of Object.entries(this.#r.mark)) d[int(e)] = t instanceof Function ? t() : t;
111
+ for (let [e, t] of Object.entries(this.#r.mark)) d[n(e)] = t instanceof Function ? t() : t;
111
112
  sessionStorage[t + "mark"] = JSON.stringify(d), sessionStorage[t + "kidoku"] = structuredClone(this.#r.kidoku), e.flush();
112
113
  };
113
114
  }
114
115
  #c() {
115
- ReadingState.playbackPage(String(this.getVal("sys:const.sn.aPageLog", "[]")), String(this.getVal("save:const.sn.styPaging", ReadingState.INI_STYPAGE)));
116
+ s.playbackPage(String(this.getVal("sys:const.sn.aPageLog", "[]")), String(this.getVal("save:const.sn.styPaging", s.INI_STYPAGE)));
116
117
  }
117
118
  #l = {
118
119
  auth: (e, t) => this.#u(t.hBreakpoint.aData),
@@ -135,7 +136,7 @@ var Areas = class e {
135
136
  }
136
137
  updateData(e) {
137
138
  this.#r = e, this.#i = this.#n.sys = e.sys, this.#a = {};
138
- for (let [t, n] of Object.entries(e.kidoku)) this.#a[t] = Areas.from(n);
139
+ for (let [t, n] of Object.entries(e.kidoku)) this.#a[t] = u.from(n);
139
140
  }
140
141
  flush = () => {};
141
142
  setDoRecProc(e) {
@@ -166,7 +167,7 @@ var Areas = class e {
166
167
  this.#e = this.#n.save = { ...e.hSave }, this.#A = this.#e["sn.doRecLog"];
167
168
  }
168
169
  touchAreaKidoku(e) {
169
- return this.#a[e] || (this.#r.kidoku[e] = {}, this.#a[e] = new Areas());
170
+ return this.#a[e] || (this.#r.kidoku[e] = {}, this.#a[e] = new u());
170
171
  }
171
172
  getAreaKidoku(e) {
172
173
  let t = this.#a[e];
@@ -178,14 +179,14 @@ var Areas = class e {
178
179
  this.flush();
179
180
  }
180
181
  #f(e) {
181
- let n = argChk_Num(e, "from", NaN), r = argChk_Num(e, "to", NaN);
182
+ let n = t(e, "from", NaN), r = t(e, "to", NaN);
182
183
  if (n === r) return !1;
183
184
  let i = this.#r.mark[n];
184
185
  if (!i) throw `from:${String(n)} のセーブデータは存在しません`;
185
186
  return this.setMark(r, { ...i }), this.sys.copyBMFolder(n, r), !1;
186
187
  }
187
188
  #p(e) {
188
- let n = argChk_Num(e, "place", NaN);
189
+ let n = t(e, "place", NaN);
189
190
  return delete this.#r.mark[n], this.flush(), this.sys.eraseBMFolder(n), !1;
190
191
  }
191
192
  #m(i) {
@@ -193,16 +194,16 @@ var Areas = class e {
193
194
  let a = !0;
194
195
  if (i.cast) switch (i.cast) {
195
196
  case "num":
196
- argChk_Num(i, "text", NaN);
197
+ t(i, "text", NaN);
197
198
  break;
198
199
  case "int":
199
- i.text = String(int(argChk_Num(i, "text", NaN)));
200
+ i.text = String(n(t(i, "text", NaN)));
200
201
  break;
201
202
  case "uint":
202
- i.text = String(uint(argChk_Num(i, "text", NaN)));
203
+ i.text = String(e(t(i, "text", NaN)));
203
204
  break;
204
205
  case "bool":
205
- argChk_Boolean(i, "text", !1);
206
+ r(i, "text", !1);
206
207
  break;
207
208
  case "str":
208
209
  a = !1;
@@ -212,16 +213,16 @@ var Areas = class e {
212
213
  return this.#T(i.name, i.text, a), !1;
213
214
  }
214
215
  #h(e) {
215
- let n = argChk_Num(e, "text", 0);
216
+ let n = t(e, "text", 0);
216
217
  return e.text = String(n < 0 ? -n : n), this.#m(e), !1;
217
218
  }
218
219
  #g(e) {
219
- return e.text = (e.text ?? "").charAt(argChk_Num(e, "pos", 0)), this.#m(e), !1;
220
+ return e.text = (e.text ?? "").charAt(t(e, "pos", 0)), this.#m(e), !1;
220
221
  }
221
222
  #_(e) {
222
223
  let { val: n } = e;
223
224
  if (!n) throw "valは必須です";
224
- let r = argChk_Num(e, "start", 0);
225
+ let r = t(e, "start", 0);
225
226
  return e.text = String((e.text ?? "").indexOf(n, r)), this.#m(e), !1;
226
227
  }
227
228
  #v(e) {
@@ -233,7 +234,7 @@ var Areas = class e {
233
234
  return e.text = (e.text ?? "").replace(n, String(e.val)), this.#m(e), !1;
234
235
  }
235
236
  #b(e) {
236
- let n = argChk_Num(e, "text", 0);
237
+ let n = t(e, "text", 0);
237
238
  return e.text = String(Math.round(n)), this.#m(e), !1;
238
239
  }
239
240
  #x(e) {
@@ -242,23 +243,23 @@ var Areas = class e {
242
243
  return e.text = String((e.text ?? "").search(n)), this.#m(e), !1;
243
244
  }
244
245
  #S(e) {
245
- let r = argChk_Num(e, "pos", 0);
246
- return e.text = e.len === "all" ? (e.text ?? "").slice(r) : (e.text ?? "").slice(r, r + int(argChk_Num(e, "len", 1))), this.#m(e), !1;
246
+ let r = t(e, "pos", 0);
247
+ return e.text = e.len === "all" ? (e.text ?? "").slice(r) : (e.text ?? "").slice(r, r + n(t(e, "len", 1))), this.#m(e), !1;
247
248
  }
248
249
  #C(e = !1) {
249
- let n = this.#i = this.#n.sys = this.#r.sys = creSYS_DATA();
250
- typeof process < "u" || (this.setVal_Nochk("sys", "const.sn.window.x", 0), this.setVal_Nochk("sys", "const.sn.window.y", 0)), this.setVal_Nochk("sys", "sn.tagCh.msecWait", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.tagCh.msecWait_Kidoku", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.auto.msecPageWait", argChk_Num(n, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait)), this.setVal_Nochk("sys", "sn.auto.msecPageWait_Kidoku", argChk_Num(n, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait));
250
+ let n = this.#i = this.#n.sys = this.#r.sys = i();
251
+ typeof process < "u" || (this.setVal_Nochk("sys", "const.sn.window.x", 0), this.setVal_Nochk("sys", "const.sn.window.y", 0)), this.setVal_Nochk("sys", "sn.tagCh.msecWait", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.tagCh.msecWait_Kidoku", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.auto.msecPageWait", t(n, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait)), this.setVal_Nochk("sys", "sn.auto.msecPageWait_Kidoku", t(n, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait));
251
252
  for (let e of Object.values(this.#a)) e.clear();
252
253
  return this.#n.mark = this.#r.mark = {}, e || this.#c(), this.flush(), !1;
253
254
  }
254
255
  #w() {
255
256
  let e = this.#e["const.sn.mesLayer"], t = this.#e["sn.doRecLog"], n = this.#e["const.sn.sLog"], r = this.#e["const.sn.styPaging"];
256
- return this.#e = this.#n.save = creSAVEDATA(), this.setVal_Nochk("save", "const.sn.mesLayer", e), this.setVal_Nochk("save", "sn.doRecLog", t), this.setVal_Nochk("save", "const.sn.sLog", n), this.setVal_Nochk("save", "const.sn.styPaging", r), !1;
257
+ return this.#e = this.#n.save = o(), this.setVal_Nochk("save", "const.sn.mesLayer", e), this.setVal_Nochk("save", "sn.doRecLog", t), this.setVal_Nochk("save", "const.sn.sLog", n), this.setVal_Nochk("save", "const.sn.styPaging", r), !1;
257
258
  }
258
259
  #T(e, t, n = !0) {
259
260
  if (!e) throw "[変数に値セット] nameは必須です";
260
261
  if (t === void 0) throw "[変数に値セット] textは必須です(空文字はOK)";
261
- let r = PropParser.getValName(e);
262
+ let r = c.getValName(e);
262
263
  if (!r) throw `[変数参照] name(${e})が変数名として異常です`;
263
264
  let { scope: i = "tmp", name: a } = r, o = this.#n[i];
264
265
  if (a.startsWith("const.") && a in o) throw `[変数に値セット] 変数【${a}】は書き換え不可です`;
@@ -279,7 +280,7 @@ var Areas = class e {
279
280
  static #E = {};
280
281
  getVal(e, t, n = !1) {
281
282
  if (!e) throw "[変数参照] nameは必須です";
282
- let r = PropParser.getValName(e);
283
+ let r = c.getValName(e);
283
284
  if (!r) throw "[変数参照] name(" + e + ")が変数名として異常です";
284
285
  let { scope: i = "tmp", name: a, at: o } = r, s = this.#n[i], l = s[a];
285
286
  if (!(a in s)) {
@@ -385,15 +386,16 @@ var Areas = class e {
385
386
  defValTrg(e, t) {
386
387
  this.#F[e] = t;
387
388
  }
388
- #I = (e) => argChk_Boolean(this.#i, e, !0);
389
- #L = (e) => argChk_Num(this.#i, e, 10);
390
- #R = (e) => argChk_Num(this.#i, e, this.cfg.oCfg.init.tagch_msecwait ?? 10);
391
- #z = (e) => argChk_Num(this.#i, e, this.cfg.oCfg.init.auto_msecpagewait ?? 3500);
392
- #B = (e) => argChk_Num(this.#i, e, 500);
389
+ #I = (e) => r(this.#i, e, !0);
390
+ #L = (e) => t(this.#i, e, 10);
391
+ #R = (e) => t(this.#i, e, this.cfg.oCfg.init.tagch_msecwait ?? 10);
392
+ #z = (e) => t(this.#i, e, this.cfg.oCfg.init.auto_msecpagewait ?? 3500);
393
+ #B = (e) => t(this.#i, e, 500);
393
394
  #V(e) {
394
- return argChk_Boolean(this.#e, e, !0);
395
+ return r(this.#e, e, !0);
395
396
  }
396
397
  };
397
- export { Variable };
398
+ //#endregion
399
+ export { d as Variable };
398
400
 
399
401
  //# sourceMappingURL=Variable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Variable.js","names":["#hAreas","#hSave","#hTmp","sys: T_SysBase","cfg: Config","#let","#let_abs","#let_char_at","#let_index_of","#let_length","#let_replace","#let_round","#let_search","#let_substr","#clearsysvar","#clearvar","#dump_val","#copybookmark","#erasebookmark","a: TArg[]","#d4v","#dbgVariable","#callHook","#hProcDbgRes","#tagCh_doWait","#tagCh_doWait_Kidoku","#tagCh_msecWait","#tagCh_msecWait_Kidoku","#saPageLog","#hSys","#hScopes","oMark: T_H_VAL_MARK","#set_data_break","#setVal","#hSetEvent","#hAreaKidoku","#doRecProc","#doRecLog","mesLayer\t: string","doRecLog\t: boolean","sLog\t\t: string","styPaging\t: string","#castAuto","#hSetValTrg","#REG_NUMERICLITERAL","val: any","#runFirst_Bool_hSysVal_true","#runFirst_sys_an_tagCh_msecWait","#runFirst_sys_an_tagCh_msecWait_Kidoku","#runFirst_sys_an_auto_msecPageWait","#runFirst_sys_an_auto_msecLineWait","#runFirst_Bool_hSaveVal_true"],"sources":["../src/sn/Areas.ts","../src/sn/Variable.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nexport type T_H_Areas = {[begin: string]: number};\n\n\nexport class Areas {\n\t#hAreas\t: T_H_Areas\t= {};\n\n\tclear() {this.#hAreas = {}}\n\tstatic\tfrom(new_val: T_H_Areas): Areas {\n\t\tconst ar = new Areas;\n\t\tar.#hAreas = {...new_val};\n\t\treturn ar;\n\t}\n\tval(): T_H_Areas {return {...this.#hAreas}}\n\n\tsearch(idx: number): boolean {\n\t\treturn Object.entries(this.#hAreas)\n\t\t.some(([begin, v])=> idx >= parseInt(begin) && idx <= v);\n\t}\n\n\trecord(idx: number): void {\n\t\tif (this.search(idx)) return;\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\t// 領域末尾+1とマッチ\n\t\t\tif (v +1 === idx) {\n\t\t\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t\t\t// 二つの領域がマージできる場合\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis.#hAreas[begin] = this.#hAreas[idx +1]!;\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\t\t\tdelete this.#hAreas[idx +1]\n\t\t\t\t}\n\t\t\t\telse this.#hAreas[begin] = idx;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// 領域先頭-1とマッチ\n\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tthis.#hAreas[idx] = this.#hAreas[idx +1]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx +1];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#hAreas[idx] = idx;\n\t}\n\n\terase(idx: number): void {\n\t\tif (! this.search(idx)) return;\n\n\t\t// 領域先頭とマッチ\n\t\tif (String(idx) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tif (this.#hAreas[idx]! > idx) this.#hAreas[idx +1] = this.#hAreas[idx]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx];\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\tif (idx < parseInt(begin) || v < idx) continue;\n\n\t\t\t// 領域末尾とマッチ\n\t\t\tif (this.#hAreas[begin] === idx) {\n\t\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 領域内とマッチ、二つの領域に分割\n\t\t\tthis.#hAreas[idx +1] = v;\n\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tget count(): number {return Object.keys(this.#hAreas).length}\t// 4tst\n\n\ttoString(): string {\n\t\tlet ret = '';\n\n\t\tfor (const k of Object.keys(this.#hAreas)\n\t\t.map(k=> parseInt(k))\n\t\t.sort((x, y)=> x-y)) {\n\t\t\tret += k === this.#hAreas[k]\n\t\t\t? ','+ String(k)\n\t\t\t: ','+ String(k) +'~'+ String(this.#hAreas[String(k)]);\n\t\t}\n\n\t\treturn ret;\t// 先頭に , が付いている。削除したいが、修正すると互換性に問題あり凍結\n\t}\n\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {uint, int, argChk_Boolean, argChk_Num} from './CmnLib';\nimport {creCSArg, type T_H_VAL_MP} from './CallStack';\nimport type {TArg, T_HTag} from './Grammar';\nimport type {T_Variable, T_fncSetVal, T_ProcVal, T_SysBase, T_Data4Vari, T_Mark, T_FncHook, Scope, T_H_TMP_DATA, T_H_VAL_MARK, T_H_SYS_DATA, T_VAL_DATA_FNC, T_VAL_DATA, T_VAL_BSNU, T_H_SAVE_DATA} from './CmnInterface';\nimport {creSAVEDATA, creSYS_DATA, creTMP_DATA} from './CmnInterface';\nimport type {Config} from './Config';\nimport {Areas} from './Areas';\nimport {PropParser} from './PropParser';\nimport {ReadingState} from './Reading';\n\n\nexport class Variable implements T_Variable {\n\t#hSave\t\t: T_H_SAVE_DATA\t= creSAVEDATA();\n\t#hTmp\t\t: T_H_TMP_DATA\t= creTMP_DATA();\n\t#hScopes\t= {\n\t\tsys\t\t: {},\t// clearsysvarを呼ぶので\n\t\tsave\t: this.#hSave,\n\t\ttmp\t\t: this.#hTmp,\n\t\tmp\t\t: <T_H_VAL_MP>{},\n\t\tmark\t: <T_H_VAL_MARK>{},\n\t};\n\n\n\tconstructor(private readonly sys: T_SysBase, private readonly cfg: Config, hTag: T_HTag) {\n\t\t//\t変数操作\n\t\thTag.let\t\t\t= o=> this.#let(o);\t\t\t// 変数代入・演算\n\t\thTag.let_abs\t\t= o=> this.#let_abs(o);\t\t// 絶対値\n\t\thTag.let_char_at\t= o=> this.#let_char_at(o);\t// 文字列から一字取りだし\n\t\thTag.let_index_of\t= o=> this.#let_index_of(o);// 文字列で検索\n\t\thTag.let_length\t\t= o=> this.#let_length(o);\t// 文字列の長さ\n\t\t// let_mlはScriptIteratorにて定義\t\t\t\t// インラインテキスト代入\n\t\thTag.let_replace\t= o=> this.#let_replace(o);\t// 正規表現で置換\n\t\thTag.let_round\t\t= o=> this.#let_round(o);\t// 四捨五入\n\t\thTag.let_search\t\t= o=> this.#let_search(o);\t// 正規表現で検索\n\t\thTag.let_substr\t\t= o=> this.#let_substr(o);\t// 文字列から抜きだし\n\t\t// ほぼ瀬戸愛羅さんの「変数代入強化プラグイン」の取り込みです。ありがとうございます!\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-267.html\n\n\t\t//\tデバッグ・その他\n\t\thTag.clearsysvar\t= ()=> this.#clearsysvar();\t// システム変数の全消去\n\t\thTag.clearvar\t\t= ()=> this.#clearvar();\t// ゲーム変数の全消去\n\t\thTag.dump_val\t\t= ()=> this.#dump_val();\t// 変数のダンプ\n\n\t\t// しおり\n\t\thTag.copybookmark\t= o=> this.#copybookmark(o);\t// しおりの複写\n\t\thTag.erasebookmark\t= o=> this.#erasebookmark(o);\t// しおりの消去\n\t\t//hTag.load\t\t\t// ScriptIterator.ts内で定義\t// しおりの読込\n\t\t//hTag.record_place\t// ScriptIterator.ts内で定義\t// セーブポイント指定\n\t\t//hTag.save\t\t\t// ScriptIterator.ts内で定義\t// しおりの保存\n\n\t\t// save:\n\t\tthis.defTmp('const.sn.bookmark.json', ()=> {\n\t\t\tconst a: TArg[] = [];\n\t\t\tfor (const [nm, mk] of Object.entries(this.#d4v.mark)) {\n\t\t\t\tconst o = {...mk.json};\n\t\t\t\to.place = uint(nm);\n\t\t\t\ta.push(o);\t// パスを searchPath() で展開してはいけない\n\t\t\t}\n\t\t\treturn JSON.stringify(a);\n\t\t});\n\n\t\t// tmp:\n\t\t/*\n\t\t\tthis.hTmp['const.Stage.supportsOrientationChange']\n\t\t\t\t= Stage.supportsOrientationChange;\n\t\t\tif (this.hTmp['const.Stage.supportsOrientationChange']) {\n\t\t\t\tthis.hTmp['const.Stage.orientation']\n\t\t\t\t\t= ()=> {return stage.orientation};\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation']\n\t\t\t\t\t= ()=> {return stage.deviceOrientation};\n\n\t\t\t\tconst lenSO:uint = stage.supportedOrientations.length;\n\t\t\t\tfor (let iSO:uint=0; iSO<lenSO; ++iSO) {\n\t\t\t\t\tthis.hTmp['const.Stage.supportedOrientations.'\n\t\t\t\t\t\t+ stage.supportedOrientations[iSO]\n\t\t\t\t\t] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//\timport flash.display.StageOrientation;\n\t\t\t\tthis.hTmp['const.Stage.orientation'] =\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation'] =\n\t\t\t\t//\t\tStageOrientation.DEFAULT;\n\t\t\t\t\t'default';\n\t\t\t}\n\t\t*/\n\n\t\t// ・画面サイズ:screen.width ウインドウが表示されているディスプレイのサイズ\n\t\t//\t※ macOSなら【設定】-【ディスプレイ】-【使用形態】のイメージボタンにホバーすると出る数字と同じ\n// DebugMng.myTrace(`fn:Variable.ts 画面サイズ(${String(screen.width)} x ${String(screen.height)}) 利用可能領域(${String(screen.availWidth)} x ${String(screen.availHeight)})`, 'W');\n\n\t\t// prj.json\n\t\tthis.#hTmp['const.sn.config.window.width']\t= cfg.oCfg.window.width;\n\t\tthis.#hTmp['const.sn.config.window.height']\t= cfg.oCfg.window.height;\n\t\tthis.#hTmp['const.sn.config.book.title']\t= cfg.oCfg.book.title;\n\t\tthis.#hTmp['const.sn.config.book.version']\t= cfg.oCfg.book.version;\n\t}\n\n\n\t#d4v\t: T_Data4Vari\t= {\n\t\tsys\t\t: <T_H_SYS_DATA>{},\t// clearsysvarを呼ぶので\n\t\tmark\t: {},\n\t\tkidoku\t: {},\n\t};\n\t#hSys\t: T_H_SYS_DATA;\n\t#hAreaKidoku\t: {[fn: string]: Areas}\t= {};\n\t#callHook\t\t: T_FncHook;\n\tasync init() {return this.sys.initVal(this.#hTmp, data=> {\n\t\tthis.updateData(data);\n\n\t\tif (this.cfg.oCfg.debug.variable) this.#dbgVariable(this.sys);\n\t\telse this.flush = ()=> this.sys.flush();\n\t\tthis.flush();\n\n\t\tthis.#callHook = (type, o)=> this.sys.callHook(type, o);\n\t\tthis.sys.addHook((type, o)=> this.#hProcDbgRes[type]?.(type, o));\n\n\t\t// 初回の初期化と、v1.11.0 まで未初期化変数があった件の対策\n\t\tconst tm = int(this.getVal('sys:sn.tagCh.msecWait', -1));\n\t\tif (tm === -1) this.#clearsysvar(true);\n\n\t\tthis.#tagCh_doWait = Boolean(this.getVal('sys:sn.tagCh.doWait'));\n\t\tthis.#tagCh_doWait_Kidoku = Boolean(this.getVal('sys:sn.tagCh.doWait_Kidoku'));\n\t\tthis.#tagCh_msecWait = int(this.getVal('sys:sn.tagCh.msecWait'));\n\t\tthis.#tagCh_msecWait_Kidoku = int(this.getVal('sys:sn.tagCh.msecWait_Kidoku'));\n\n\t\tthis.#saPageLog();\n\t})}\n\n\t//MARK: SessionStorage で確認できるデバッグ機能\n\t#dbgVariable(sys: T_SysBase) {\n\t\tsessionStorage.clear();\n\t\tconst ns = this.cfg.headNs;\n\n\t\tthis.flush = () => {\n\t\t\tconst oSys = creSYS_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSys)) {\n\t\t\t\tif (v instanceof Function) continue;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSys)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'sys'] = JSON.stringify(oSys);\n\n\t\t\tconst oSave = creSAVEDATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSave)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSave)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'save'] = JSON.stringify(oSave);\n\n\t\t\tconst oTmp = creTMP_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hTmp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oTmp)[k] = v instanceof Function ? v() : v;\n\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t\tsessionStorage[ns + 'tmp'] = JSON.stringify(oTmp);\n\n\t\t\tconst oMp = creCSArg();\n\t\t\tfor (const [k, v] of Object.entries(this.#hScopes.mp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oMp)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mp'] = JSON.stringify(oMp);\n\n\t\t\tconst oMark: T_H_VAL_MARK = {};\n\t\t\tfor (const [k, v] of Object.entries(this.#d4v.mark)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n\t\t\t\toMark[int(k)] = v instanceof Function ? v() : v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mark'] = JSON.stringify(oMark);\n\n\t\t\tsessionStorage[ns + 'kidoku'] = structuredClone(this.#d4v.kidoku);\n\n\t\t\tsys.flush();\n\t\t};\n\t}\n\n\n\t#saPageLog() {ReadingState.playbackPage(\n\t\tString(this.getVal('sys:const.sn.aPageLog', '[]')),\n\t\tString(this.getVal('save:const.sn.styPaging', ReadingState.INI_STYPAGE)),\n\t)}\n\treadonly\t#hProcDbgRes\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t: {[type: string]: (type: string, o: any)=> void}\t= {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tauth: (_, o)=> this.#set_data_break(o.hBreakpoint.aData),\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tvar\t: (_,o)=> this.sys.send2Dbg(o.ri, {v: this.#hScopes[<Scope>o.scope] ?? {}}),\n\t\tset_var\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\ttry {this.#setVal(o.nm, o.val); this.sys.send2Dbg(o.ri, {})} catch { /* empty */ }\n\t\t},\n\t\tset_data_break\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.#set_data_break(o.a);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.sys.send2Dbg(o.ri, {});\n\t\t},\n\t\tdisconnect: _=> {Variable.#hSetEvent = {}},\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#set_data_break(a: any[]) {\t// o.a.length === 0 なら削除\n\t\tVariable.#hSetEvent = {};\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tfor (const v of a) Variable.#hSetEvent[v.dataId] = 1;\n\t}\n\n\n\t//MARK: 外からのデータで保持データを更新\n\t//\t初期化時やインポートなどで使用\n\tupdateData(d4v: T_Data4Vari): void {\n\t\tthis.#d4v = d4v;\n\t\tthis.#hSys = this.#hScopes.sys = d4v.sys;\n\n\t\tthis.#hAreaKidoku = {};\n\t\tfor (const [fn, dk] of Object.entries(d4v.kidoku)) {\n\t\t\tthis.#hAreaKidoku[fn] = Areas.from(dk);\n\t\t}\n\t\t// this.flush();\t// saveKidoku() に任せる\n\t}\n\tflush\t= ()=> { /* empty */ };\n\n\tsetDoRecProc(fnc: (doRec: boolean)=> void) {this.#doRecProc = fnc}\n\t#doRecProc = (_doRec: boolean)=> { /* empty */ };\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\tdefTmp(name: string, fnc: T_ProcVal) {(<any>this.#hTmp)[name] = fnc}\n\n\tcloneMp() {return {...this.#hScopes.mp}}\n\tsetMp(mp: T_H_VAL_MP) {this.#hScopes.mp = mp}\n\n\tsetMark(place: number, mark: T_Mark) {\n\t\tthis.#d4v.mark[place] = mark;\n\t\tthis.flush();\n\t}\n\tgetMark(place: number) {\n\t\tconst mark = this.#d4v.mark[place];\n\t\tif (! mark) throw `place【${String(place)}】は存在しません`;\n\t\treturn mark;\n\t}\n\n\tcloneSave() {return {...this.#hScopes.save}}\n\tmark2save(mark: T_Mark) {\n\t\tthis.#hSave = this.#hScopes.save = {...mark.hSave};\n\t\tthis.#doRecLog\t= this.#hSave['sn.doRecLog'];\n\t}\n\n\n\t// 既読系\n\ttouchAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (ar) return ar;\n\n\t\tthis.#d4v.kidoku[fn] = {};\n\t\tconst ret = this.#hAreaKidoku[fn] = new Areas;\n\t\treturn ret;\n\t}\n\tgetAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (! ar) throw `hAreaKidoku${fn}】は存在しません`;\n\t\treturn ar;\n\t}\n\tsaveKidoku() {\n\t\tfor (const [fn, ak] of Object.entries(this.#hAreaKidoku)) {\n\t\t\tthis.#d4v.kidoku[fn] = ak.val();\n\t\t}\n\t\tthis.flush();\n\t}\n\n\n//\t// しおり\n\t// しおりの複写\n\t#copybookmark(hArg: TArg) {\n\t\tconst from = argChk_Num(hArg, 'from', NaN);\n\t\tconst to = argChk_Num(hArg, 'to', NaN);\n\t\t// const from = hArg.from;\n\t\t// const to = hArg.to;\n\t\tif (from === to) return false;\n\n\t\tconst f = this.#d4v.mark[from];\n\t\tif (! f) throw `from:${String(from)} のセーブデータは存在しません`;\n\t\tthis.setMark(to, {...f});\n\t\tthis.sys.copyBMFolder(from, to);\n\n\t\treturn false;\n\t}\n\n\t// しおりの消去\n\t#erasebookmark(hArg: TArg) {\n\t\tconst place = argChk_Num(hArg, 'place', NaN);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete this.#d4v.mark[place];\n\t\tthis.flush();\n\n\t\tthis.sys.eraseBMFolder(place);\n\n\t\treturn false;\n\t}\n\n\n//\t//\t変数操作\n\t// 変数代入・演算\n\t#let(hArg: TArg) {\n\t\tif (! hArg.name) throw 'nameは必須です';\n\n\t\t// 自動で数値型変換しない(≒文字変換する)機能\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-108.html\n\t\tlet autocast = true;\n\t\tif (hArg.cast) {\n\t\t\tswitch (hArg.cast) {\n\t\t\tcase 'num':\n\t\t\t\targChk_Num(hArg, 'text', NaN);\n\t\t\t\tbreak;\n\t\t\tcase 'int':\n\t\t\t\thArg.text = String(int(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'uint':\n\t\t\t\thArg.text = String(uint(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'bool':\n\t\t\t\targChk_Boolean(hArg, 'text', false);\n\t\t\t\tbreak;\n\t\t\tcase 'str':\n\t\t\t\tautocast = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'cast【'+ hArg.cast +'】は未定義です';\n\t\t\t}\n\t\t}\n\n\t\tthis.#setVal(hArg.name, hArg.text, autocast);\n\n\t\treturn false;\n\t}\n\n\t// 絶対値\n\t#let_abs(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\t//hArg.text = Math.abs(n);\n\t\thArg.text = String(n < 0 ?-n :n);\n\t\t\t// JavaScriptのMath.abs()で絶対値を取得しないほうが良い理由 | iwb.jp https://iwb.jp/javascript-math-abs-deprecated/\n\t\t\t// 数値以外だとほとんどがNaNを返し、booleanは0や1を返しているため使い方によってはバグの原因になることがある。\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から一字取りだし\n\t#let_char_at(hArg: TArg) {\n\t\thArg.text = (hArg.text ?? '').charAt(argChk_Num(hArg, 'pos', 0));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列で検索\n\t#let_index_of(hArg: TArg) {\n\t\tconst {val} = hArg;\n\t\tif (! val) throw 'valは必須です';\n\t\tconst start = argChk_Num(hArg, 'start', 0);\n\n\t\thArg.text = String((hArg.text ?? '').indexOf(val, start));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列の長さ\n\t#let_length(hArg: TArg) {\n\t\thArg.text = String((hArg.text ?? '').length);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で置換\n\t#let_replace(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = (hArg.text ?? '').replace(reg, String(hArg.val));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 四捨五入\n\t#let_round(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\thArg.text = String(Math.round(n));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で検索\n\t#let_search(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = String((hArg.text ?? '').search(reg));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から抜きだし\n\t#let_substr(hArg: TArg) {\n\t\tconst i = argChk_Num(hArg, 'pos', 0);\n\t\thArg.text = hArg.len !== 'all'\n\t\t\t? (hArg.text ?? '').slice(i, i +int(argChk_Num(hArg, 'len', 1)))\n\t\t\t: (hArg.text ?? '').slice(i);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\n//\t// デバッグ・その他\n\t// システム変数の全消去\n\t#clearsysvar(init = false) {\n\t\tconst sys = this.#hSys = this.#hScopes.sys = this.#d4v.sys = creSYS_DATA();\n\n\t\tconst is_nw = typeof process !== 'undefined';\n\t\tif (is_nw) {\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.x', stage.nativeWindow.x);\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.y', stage.nativeWindow.y);\n\t\t\t//NOTE: これは??\n\t\t}\n\t\telse {\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.x', 0);\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.y', 0);\n\t\t}\n\n\t\t// 文字表示Wait時間\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait', this.cfg.oCfg.init.tagch_msecwait);\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait_Kidoku', this.cfg.oCfg.init.tagch_msecwait);\n\n\t\t// 自動読みすすみモード時の改ページ時のウェイト\n\t\t//\t//\trunFirst_sys_an_auto_msecPageWait('sn.auto.msecPageWait', '');\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait_Kidoku', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\n\t\t//\tSoundMixer.soundTransform = new SoundTransform(\n\t\t//\t\t(sys['flash.media.SoundMixer.soundTransform.volume'] = 1)\n\t\t//\t);\n\n\t\tfor (const ar of Object.values(this.#hAreaKidoku)) ar.clear();\n\t\t\t// this.#data.kidoku へのコピーは saveKidoku() に任せる\n\n\t\tthis.#hScopes.mark = this.#d4v.mark = {};\n\n\t\tif (! init) this.#saPageLog();\n\n\n\t\tthis.flush();\n\n\t\treturn false;\n\t}\n\n\t// ゲーム変数の全消去\n\t#clearvar() {\n\t\tconst mesLayer\t: string = this.#hSave['const.sn.mesLayer'];\n\t\tconst doRecLog\t: boolean= this.#hSave['sn.doRecLog'];\n\t\tconst sLog\t\t: string = this.#hSave['const.sn.sLog'];\n\t\tconst styPaging\t: string = this.#hSave['const.sn.styPaging'];\n\n\t\tthis.#hSave = this.#hScopes.save = creSAVEDATA();\n\n\t\tthis.setVal_Nochk('save', 'const.sn.mesLayer', mesLayer);\n\t\tthis.setVal_Nochk('save', 'sn.doRecLog', doRecLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.sLog', sLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.styPaging', styPaging);\n\n\t\treturn false;\n\t}\n\n\t#setVal(arg_name: string, val: T_VAL_BSNU, autocast = true) {\n\t\tif (! arg_name) throw '[変数に値セット] nameは必須です';\n\t\tif (val === undefined) throw '[変数に値セット] textは必須です(空文字はOK)';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw `[変数参照] name(${arg_name})が変数名として異常です`;\n\n\t\tconst {scope='tmp', name} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\t\tif (name.startsWith('const.') && name in hScope) {\n\t\t\tthrow `[変数に値セット] 変数【${name}】は書き換え不可です`;\n\t\t}\n\n\t\tthis.setVal_Nochk(scope, name, val, autocast);\n\t}\n\tsetVal_Nochk(scope: Scope, nm: string, ival: T_VAL_BSNU, autocast = false) {\n\t\tconst hScope = this.#hScopes[scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst new_v = autocast ?this.#castAuto(ival) : ival;\n\n\t\tconst fullnm = scope +':'+ nm;\n\t\tif (fullnm in Variable.#hSetEvent) {\n\t\t\tconst old_v = hScope[<keyof typeof hScope>nm];\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif (old_v != new_v) this.#callHook('data_break', {\n\t\t\t\tdataId: fullnm,\n\t\t\t\told_v,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tnew_v,\n\t\t\t});\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t(<any>hScope)[nm] = new_v;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#hSetValTrg[fullnm]?.(nm, new_v ?? '');\n\n\t\t// if (scope === 'sys') this.flush()\n\t\t\t// 厳密にはここですべきだが、パフォーマンスに問題があるので\n\t\t\t// クリック待ちを期待できるwait、waitclick、s、l、pタグで\n\t\t\t// saveKidoku()をコール。(中で保存しているのでついでに)\n\n\t\t//console.log(`\\tlet s[${scope}] n[${nm}]='${new_v}' trg[${(trg)}]`);\n\t}\n\t// reload 再生成 Main に受け渡すため static\n\tstatic\t#hSetEvent: {[fullnm: string]: 1} = {};\n\n\n\t// readonly getVal_save = (arg_name: string, def?: number | string)=> {\n\t// \tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\tgetVal(arg_name: string, def?: number | string, touch = false): T_VAL_DATA {\n\t\tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw '[変数参照] name('+ arg_name +')が変数名として異常です';\n\n\t\tconst {scope='tmp', name, at} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\n\t\tlet val = <T_VAL_DATA_FNC>hScope[<keyof typeof hScope>name];\n// console.log(`getVal arg_name=${arg_name}= nm=${name}= A:${String(! (name in hScope))} val:${String(val)}`);\n\t\tif (! (name in hScope)) {\t// 存在しない変数名の場合、刻んで調べていく\n\t\t\tval = def;\n\t\t\tif (touch) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\t\t\t(<any>hScope)[name] = def;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t\t\t}\n\n\t\t\tlet n = '';\n\t\t\tconst aNm = name.split('.');\n\t\t\tconst len = aNm.length;\n\t\t\tfor (let i=0; i<len; ++i, n += '.') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n\t\t\t\tn += aNm[i];\n\t\t\t\tif (! (n in hScope)) continue;\t// 存在しない変数名の場合、延ばす\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tlet v = JSON.parse(hScope[<keyof typeof hScope>n]);\n\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tif (i +1 === len) {val = v; break}\t// 最下層ならそのまま返す\n\t\t\t\t\tcontinue;\n\t\t\t\t\t\t// 短い名前でヒットしたが、JSONでもなく\n\t\t\t\t\t\t// 変数名にはまだ続きがあるので探索続行\n\t\t\t\t}\n\n\t\t\t\tlet j = i;\t// JSONオブジェクトの階層を降りつつ探索\n\t\t\t\twhile (++j < len) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tconst nj = aNm[j]!;\n\t\t\t\t\tif (! (nj in v)) {val = def; break}\n\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tv = v[nj];\n\t\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]'\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t|| j +1 === len) {val = v; break}// 最下層ならそのまま返す\n\t\t\t\t}\n\n\t\t\t\tif (val instanceof Object) val = JSON.stringify(val);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (val instanceof Function) val = val();\n// console.log(`\\tget [${arg_name}] -> s[${scope ?? 'tmp'}'] a[${at ?? ''}] n[${name}'] ret['${String(val)}']('${typeof val}')'`);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#castAuto(val: T_VAL_DATA): any {\n\t\tconst s_val = <string>val;\n\t\tif (s_val === 'true') return true;\n\t\tif (s_val === 'false') return false;\n\t\tif (s_val === 'null') return null;\n\t\tif (s_val === 'undefined') return undefined;\n\t\tif (this.#REG_NUMERICLITERAL.test(s_val)) return parseFloat(s_val);\n\n\t\treturn val;\n\t}\n\t#REG_NUMERICLITERAL\t= /^-?[\\d.]+$/;\n\n\n\t// 変数のダンプ\n\t#dump_val() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst val: any = {tmp:{}, sys:{}, save:{}, mp:{}};\n\t\tfor (const scope in val) {\n\t\t\tconst hVal = this.#hScopes[<Scope>scope];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst hRet = val[scope];\n\t\t\tfor (const [key, v] of Object.entries(hVal)) {\n\t\t\t\tif (v instanceof Function) continue;\n\n\t\t\t\t// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t// hRet[key] = v instanceof Function ?v() :v;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\thRet[key] = v;\n\t\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t}\n\t\tconsole.info('🥟 [dump_val]', val);\n\n\t\treturn false;\n\t}\n\n\t#doRecLog\t= false;\n\tdoRecLog() {return this.#doRecLog}\n\n\n\t#tagCh_doWait = false;\n\tget tagCh_doWait() {return this.#tagCh_doWait;}\n\t#tagCh_doWait_Kidoku = false;\n\tget tagCh_doWait_Kidoku() {return this.#tagCh_doWait_Kidoku;}\n\t#tagCh_msecWait\t\t= 0;\n\tget tagCh_msecWait() {return this.#tagCh_msecWait;}\n\t#tagCh_msecWait_Kidoku= 0;\n\tget tagCh_msecWait_Kidoku() {return this.#tagCh_msecWait_Kidoku;}\n\n\t#hSetValTrg\t: {[name: string]: T_fncSetVal}\t= {\n\t\t// sys\n\t\t'sys:sn.tagCh.doWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_doWait =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.doWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_doWait_Kidoku =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_msecWait =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_msecWait_Kidoku =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait_Kidoku(name);\n\t\t},\n\t\t'sys:sn.tagCh.canskip'\t\t\t: name=> this.#runFirst_Bool_hSysVal_true(name),\n\n\t\t'sys:sn.auto.msecPageWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecPageWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecLineWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\t\t'sys:sn.auto.msecLineWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\n\t\t// save\n\t\t'save:sn.doRecLog'\t\t: name=> {\n\t\t\tthis.#doRecProc(\n\t\t\t\tthis.#doRecLog = this.#runFirst_Bool_hSaveVal_true(name)\n\t\t\t);\n\t\t},\n\t\t'save:sn.userFnTail'\t: (_name, ival)=> {\n\t\t\tconst val = String(ival);\n\t\t\tif (val.includes('@')) throw 'この変数では文字「@」は禁止です';\n\t\t\tthis.cfg.userFnTail = val;\n\t\t},\n\n\t\t// tmp\n\t\t'tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode'\t:\n\t\t\t()=> {\n\t\t\t//\tNativeApplication.nativeApplication.systemIdleMode = val;\n\t\t\t}\n\t\t,\n\t};\n\tdefValTrg(name: string, fnc: T_fncSetVal) {this.#hSetValTrg[name] = fnc}\n\treadonly\t#runFirst_Bool_hSysVal_true = (name: string)=> argChk_Boolean(this.#hSys, name, true);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait = (name: string)=> argChk_Num(this.#hSys, name, 10);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait_Kidoku = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.tagch_msecwait ?? 10\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecPageWait = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.auto_msecpagewait ?? 3500\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecLineWait = (name: string)=> argChk_Num(this.#hSys, name, 500);\n\n\t#runFirst_Bool_hSaveVal_true(name: string) {\n\t\treturn argChk_Boolean(this.#hSave, name, true);\n\t}\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Variable.js","names":["#hAreas","#hSave","#hTmp","#let","#let_abs","#let_char_at","#let_index_of","#let_length","#let_replace","#let_round","#let_search","#let_substr","#clearsysvar","#clearvar","#dump_val","#copybookmark","#erasebookmark","#d4v","#dbgVariable","#callHook","#hProcDbgRes","#tagCh_doWait","#tagCh_doWait_Kidoku","#tagCh_msecWait","#tagCh_msecWait_Kidoku","#saPageLog","#hSys","#hScopes","#set_data_break","#setVal","#hSetEvent","#hAreaKidoku","#doRecProc","#doRecLog","#castAuto","#hSetValTrg","#REG_NUMERICLITERAL","#runFirst_Bool_hSysVal_true","#runFirst_sys_an_tagCh_msecWait","#runFirst_sys_an_tagCh_msecWait_Kidoku","#runFirst_sys_an_auto_msecPageWait","#runFirst_sys_an_auto_msecLineWait","#runFirst_Bool_hSaveVal_true"],"sources":["../src/sn/Areas.ts","../src/sn/Variable.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nexport type T_H_Areas = {[begin: string]: number};\n\n\nexport class Areas {\n\t#hAreas\t: T_H_Areas\t= {};\n\n\tclear() {this.#hAreas = {}}\n\tstatic\tfrom(new_val: T_H_Areas): Areas {\n\t\tconst ar = new Areas;\n\t\tar.#hAreas = {...new_val};\n\t\treturn ar;\n\t}\n\tval(): T_H_Areas {return {...this.#hAreas}}\n\n\tsearch(idx: number): boolean {\n\t\treturn Object.entries(this.#hAreas)\n\t\t.some(([begin, v])=> idx >= parseInt(begin) && idx <= v);\n\t}\n\n\trecord(idx: number): void {\n\t\tif (this.search(idx)) return;\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\t// 領域末尾+1とマッチ\n\t\t\tif (v +1 === idx) {\n\t\t\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t\t\t// 二つの領域がマージできる場合\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis.#hAreas[begin] = this.#hAreas[idx +1]!;\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\t\t\tdelete this.#hAreas[idx +1]\n\t\t\t\t}\n\t\t\t\telse this.#hAreas[begin] = idx;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// 領域先頭-1とマッチ\n\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tthis.#hAreas[idx] = this.#hAreas[idx +1]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx +1];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#hAreas[idx] = idx;\n\t}\n\n\terase(idx: number): void {\n\t\tif (! this.search(idx)) return;\n\n\t\t// 領域先頭とマッチ\n\t\tif (String(idx) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tif (this.#hAreas[idx]! > idx) this.#hAreas[idx +1] = this.#hAreas[idx]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx];\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\tif (idx < parseInt(begin) || v < idx) continue;\n\n\t\t\t// 領域末尾とマッチ\n\t\t\tif (this.#hAreas[begin] === idx) {\n\t\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 領域内とマッチ、二つの領域に分割\n\t\t\tthis.#hAreas[idx +1] = v;\n\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tget count(): number {return Object.keys(this.#hAreas).length}\t// 4tst\n\n\ttoString(): string {\n\t\tlet ret = '';\n\n\t\tfor (const k of Object.keys(this.#hAreas)\n\t\t.map(k=> parseInt(k))\n\t\t.sort((x, y)=> x-y)) {\n\t\t\tret += k === this.#hAreas[k]\n\t\t\t? ','+ String(k)\n\t\t\t: ','+ String(k) +'~'+ String(this.#hAreas[String(k)]);\n\t\t}\n\n\t\treturn ret;\t// 先頭に , が付いている。削除したいが、修正すると互換性に問題あり凍結\n\t}\n\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {uint, int, argChk_Boolean, argChk_Num} from './CmnLib';\nimport {creCSArg, type T_H_VAL_MP} from './CallStack';\nimport type {TArg, T_HTag} from './Grammar';\nimport type {T_Variable, T_fncSetVal, T_ProcVal, T_SysBase, T_Data4Vari, T_Mark, T_FncHook, Scope, T_H_TMP_DATA, T_H_VAL_MARK, T_H_SYS_DATA, T_VAL_DATA_FNC, T_VAL_DATA, T_VAL_BSNU, T_H_SAVE_DATA} from './CmnInterface';\nimport {creSAVEDATA, creSYS_DATA, creTMP_DATA} from './CmnInterface';\nimport type {Config} from './Config';\nimport {Areas} from './Areas';\nimport {PropParser} from './PropParser';\nimport {ReadingState} from './Reading';\n\n\nexport class Variable implements T_Variable {\n\t#hSave\t\t: T_H_SAVE_DATA\t= creSAVEDATA();\n\t#hTmp\t\t: T_H_TMP_DATA\t= creTMP_DATA();\n\t#hScopes\t= {\n\t\tsys\t\t: {},\t// clearsysvarを呼ぶので\n\t\tsave\t: this.#hSave,\n\t\ttmp\t\t: this.#hTmp,\n\t\tmp\t\t: <T_H_VAL_MP>{},\n\t\tmark\t: <T_H_VAL_MARK>{},\n\t};\n\n\n\tconstructor(private readonly sys: T_SysBase, private readonly cfg: Config, hTag: T_HTag) {\n\t\t//\t変数操作\n\t\thTag.let\t\t\t= o=> this.#let(o);\t\t\t// 変数代入・演算\n\t\thTag.let_abs\t\t= o=> this.#let_abs(o);\t\t// 絶対値\n\t\thTag.let_char_at\t= o=> this.#let_char_at(o);\t// 文字列から一字取りだし\n\t\thTag.let_index_of\t= o=> this.#let_index_of(o);// 文字列で検索\n\t\thTag.let_length\t\t= o=> this.#let_length(o);\t// 文字列の長さ\n\t\t// let_mlはScriptIteratorにて定義\t\t\t\t// インラインテキスト代入\n\t\thTag.let_replace\t= o=> this.#let_replace(o);\t// 正規表現で置換\n\t\thTag.let_round\t\t= o=> this.#let_round(o);\t// 四捨五入\n\t\thTag.let_search\t\t= o=> this.#let_search(o);\t// 正規表現で検索\n\t\thTag.let_substr\t\t= o=> this.#let_substr(o);\t// 文字列から抜きだし\n\t\t// ほぼ瀬戸愛羅さんの「変数代入強化プラグイン」の取り込みです。ありがとうございます!\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-267.html\n\n\t\t//\tデバッグ・その他\n\t\thTag.clearsysvar\t= ()=> this.#clearsysvar();\t// システム変数の全消去\n\t\thTag.clearvar\t\t= ()=> this.#clearvar();\t// ゲーム変数の全消去\n\t\thTag.dump_val\t\t= ()=> this.#dump_val();\t// 変数のダンプ\n\n\t\t// しおり\n\t\thTag.copybookmark\t= o=> this.#copybookmark(o);\t// しおりの複写\n\t\thTag.erasebookmark\t= o=> this.#erasebookmark(o);\t// しおりの消去\n\t\t//hTag.load\t\t\t// ScriptIterator.ts内で定義\t// しおりの読込\n\t\t//hTag.record_place\t// ScriptIterator.ts内で定義\t// セーブポイント指定\n\t\t//hTag.save\t\t\t// ScriptIterator.ts内で定義\t// しおりの保存\n\n\t\t// save:\n\t\tthis.defTmp('const.sn.bookmark.json', ()=> {\n\t\t\tconst a: TArg[] = [];\n\t\t\tfor (const [nm, mk] of Object.entries(this.#d4v.mark)) {\n\t\t\t\tconst o = {...mk.json};\n\t\t\t\to.place = uint(nm);\n\t\t\t\ta.push(o);\t// パスを searchPath() で展開してはいけない\n\t\t\t}\n\t\t\treturn JSON.stringify(a);\n\t\t});\n\n\t\t// tmp:\n\t\t/*\n\t\t\tthis.hTmp['const.Stage.supportsOrientationChange']\n\t\t\t\t= Stage.supportsOrientationChange;\n\t\t\tif (this.hTmp['const.Stage.supportsOrientationChange']) {\n\t\t\t\tthis.hTmp['const.Stage.orientation']\n\t\t\t\t\t= ()=> {return stage.orientation};\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation']\n\t\t\t\t\t= ()=> {return stage.deviceOrientation};\n\n\t\t\t\tconst lenSO:uint = stage.supportedOrientations.length;\n\t\t\t\tfor (let iSO:uint=0; iSO<lenSO; ++iSO) {\n\t\t\t\t\tthis.hTmp['const.Stage.supportedOrientations.'\n\t\t\t\t\t\t+ stage.supportedOrientations[iSO]\n\t\t\t\t\t] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//\timport flash.display.StageOrientation;\n\t\t\t\tthis.hTmp['const.Stage.orientation'] =\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation'] =\n\t\t\t\t//\t\tStageOrientation.DEFAULT;\n\t\t\t\t\t'default';\n\t\t\t}\n\t\t*/\n\n\t\t// ・画面サイズ:screen.width ウインドウが表示されているディスプレイのサイズ\n\t\t//\t※ macOSなら【設定】-【ディスプレイ】-【使用形態】のイメージボタンにホバーすると出る数字と同じ\n// DebugMng.myTrace(`fn:Variable.ts 画面サイズ(${String(screen.width)} x ${String(screen.height)}) 利用可能領域(${String(screen.availWidth)} x ${String(screen.availHeight)})`, 'W');\n\n\t\t// prj.json\n\t\tthis.#hTmp['const.sn.config.window.width']\t= cfg.oCfg.window.width;\n\t\tthis.#hTmp['const.sn.config.window.height']\t= cfg.oCfg.window.height;\n\t\tthis.#hTmp['const.sn.config.book.title']\t= cfg.oCfg.book.title;\n\t\tthis.#hTmp['const.sn.config.book.version']\t= cfg.oCfg.book.version;\n\t}\n\n\n\t#d4v\t: T_Data4Vari\t= {\n\t\tsys\t\t: <T_H_SYS_DATA>{},\t// clearsysvarを呼ぶので\n\t\tmark\t: {},\n\t\tkidoku\t: {},\n\t};\n\t#hSys\t: T_H_SYS_DATA;\n\t#hAreaKidoku\t: {[fn: string]: Areas}\t= {};\n\t#callHook\t\t: T_FncHook;\n\tasync init() {return this.sys.initVal(this.#hTmp, data=> {\n\t\tthis.updateData(data);\n\n\t\tif (this.cfg.oCfg.debug.variable) this.#dbgVariable(this.sys);\n\t\telse this.flush = ()=> this.sys.flush();\n\t\tthis.flush();\n\n\t\tthis.#callHook = (type, o)=> this.sys.callHook(type, o);\n\t\tthis.sys.addHook((type, o)=> this.#hProcDbgRes[type]?.(type, o));\n\n\t\t// 初回の初期化と、v1.11.0 まで未初期化変数があった件の対策\n\t\tconst tm = int(this.getVal('sys:sn.tagCh.msecWait', -1));\n\t\tif (tm === -1) this.#clearsysvar(true);\n\n\t\tthis.#tagCh_doWait = Boolean(this.getVal('sys:sn.tagCh.doWait'));\n\t\tthis.#tagCh_doWait_Kidoku = Boolean(this.getVal('sys:sn.tagCh.doWait_Kidoku'));\n\t\tthis.#tagCh_msecWait = int(this.getVal('sys:sn.tagCh.msecWait'));\n\t\tthis.#tagCh_msecWait_Kidoku = int(this.getVal('sys:sn.tagCh.msecWait_Kidoku'));\n\n\t\tthis.#saPageLog();\n\t})}\n\n\t//MARK: SessionStorage で確認できるデバッグ機能\n\t#dbgVariable(sys: T_SysBase) {\n\t\tsessionStorage.clear();\n\t\tconst ns = this.cfg.headNs;\n\n\t\tthis.flush = () => {\n\t\t\tconst oSys = creSYS_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSys)) {\n\t\t\t\tif (v instanceof Function) continue;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSys)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'sys'] = JSON.stringify(oSys);\n\n\t\t\tconst oSave = creSAVEDATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSave)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSave)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'save'] = JSON.stringify(oSave);\n\n\t\t\tconst oTmp = creTMP_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hTmp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oTmp)[k] = v instanceof Function ? v() : v;\n\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t\tsessionStorage[ns + 'tmp'] = JSON.stringify(oTmp);\n\n\t\t\tconst oMp = creCSArg();\n\t\t\tfor (const [k, v] of Object.entries(this.#hScopes.mp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oMp)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mp'] = JSON.stringify(oMp);\n\n\t\t\tconst oMark: T_H_VAL_MARK = {};\n\t\t\tfor (const [k, v] of Object.entries(this.#d4v.mark)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n\t\t\t\toMark[int(k)] = v instanceof Function ? v() : v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mark'] = JSON.stringify(oMark);\n\n\t\t\tsessionStorage[ns + 'kidoku'] = structuredClone(this.#d4v.kidoku);\n\n\t\t\tsys.flush();\n\t\t};\n\t}\n\n\n\t#saPageLog() {ReadingState.playbackPage(\n\t\tString(this.getVal('sys:const.sn.aPageLog', '[]')),\n\t\tString(this.getVal('save:const.sn.styPaging', ReadingState.INI_STYPAGE)),\n\t)}\n\treadonly\t#hProcDbgRes\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t: {[type: string]: (type: string, o: any)=> void}\t= {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tauth: (_, o)=> this.#set_data_break(o.hBreakpoint.aData),\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tvar\t: (_,o)=> this.sys.send2Dbg(o.ri, {v: this.#hScopes[<Scope>o.scope] ?? {}}),\n\t\tset_var\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\ttry {this.#setVal(o.nm, o.val); this.sys.send2Dbg(o.ri, {})} catch { /* empty */ }\n\t\t},\n\t\tset_data_break\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.#set_data_break(o.a);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.sys.send2Dbg(o.ri, {});\n\t\t},\n\t\tdisconnect: _=> {Variable.#hSetEvent = {}},\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#set_data_break(a: any[]) {\t// o.a.length === 0 なら削除\n\t\tVariable.#hSetEvent = {};\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tfor (const v of a) Variable.#hSetEvent[v.dataId] = 1;\n\t}\n\n\n\t//MARK: 外からのデータで保持データを更新\n\t//\t初期化時やインポートなどで使用\n\tupdateData(d4v: T_Data4Vari): void {\n\t\tthis.#d4v = d4v;\n\t\tthis.#hSys = this.#hScopes.sys = d4v.sys;\n\n\t\tthis.#hAreaKidoku = {};\n\t\tfor (const [fn, dk] of Object.entries(d4v.kidoku)) {\n\t\t\tthis.#hAreaKidoku[fn] = Areas.from(dk);\n\t\t}\n\t\t// this.flush();\t// saveKidoku() に任せる\n\t}\n\tflush\t= ()=> { /* empty */ };\n\n\tsetDoRecProc(fnc: (doRec: boolean)=> void) {this.#doRecProc = fnc}\n\t#doRecProc = (_doRec: boolean)=> { /* empty */ };\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\tdefTmp(name: string, fnc: T_ProcVal) {(<any>this.#hTmp)[name] = fnc}\n\n\tcloneMp() {return {...this.#hScopes.mp}}\n\tsetMp(mp: T_H_VAL_MP) {this.#hScopes.mp = mp}\n\n\tsetMark(place: number, mark: T_Mark) {\n\t\tthis.#d4v.mark[place] = mark;\n\t\tthis.flush();\n\t}\n\tgetMark(place: number) {\n\t\tconst mark = this.#d4v.mark[place];\n\t\tif (! mark) throw `place【${String(place)}】は存在しません`;\n\t\treturn mark;\n\t}\n\n\tcloneSave() {return {...this.#hScopes.save}}\n\tmark2save(mark: T_Mark) {\n\t\tthis.#hSave = this.#hScopes.save = {...mark.hSave};\n\t\tthis.#doRecLog\t= this.#hSave['sn.doRecLog'];\n\t}\n\n\n\t// 既読系\n\ttouchAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (ar) return ar;\n\n\t\tthis.#d4v.kidoku[fn] = {};\n\t\tconst ret = this.#hAreaKidoku[fn] = new Areas;\n\t\treturn ret;\n\t}\n\tgetAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (! ar) throw `hAreaKidoku${fn}】は存在しません`;\n\t\treturn ar;\n\t}\n\tsaveKidoku() {\n\t\tfor (const [fn, ak] of Object.entries(this.#hAreaKidoku)) {\n\t\t\tthis.#d4v.kidoku[fn] = ak.val();\n\t\t}\n\t\tthis.flush();\n\t}\n\n\n//\t// しおり\n\t// しおりの複写\n\t#copybookmark(hArg: TArg) {\n\t\tconst from = argChk_Num(hArg, 'from', NaN);\n\t\tconst to = argChk_Num(hArg, 'to', NaN);\n\t\t// const from = hArg.from;\n\t\t// const to = hArg.to;\n\t\tif (from === to) return false;\n\n\t\tconst f = this.#d4v.mark[from];\n\t\tif (! f) throw `from:${String(from)} のセーブデータは存在しません`;\n\t\tthis.setMark(to, {...f});\n\t\tthis.sys.copyBMFolder(from, to);\n\n\t\treturn false;\n\t}\n\n\t// しおりの消去\n\t#erasebookmark(hArg: TArg) {\n\t\tconst place = argChk_Num(hArg, 'place', NaN);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete this.#d4v.mark[place];\n\t\tthis.flush();\n\n\t\tthis.sys.eraseBMFolder(place);\n\n\t\treturn false;\n\t}\n\n\n//\t//\t変数操作\n\t// 変数代入・演算\n\t#let(hArg: TArg) {\n\t\tif (! hArg.name) throw 'nameは必須です';\n\n\t\t// 自動で数値型変換しない(≒文字変換する)機能\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-108.html\n\t\tlet autocast = true;\n\t\tif (hArg.cast) {\n\t\t\tswitch (hArg.cast) {\n\t\t\tcase 'num':\n\t\t\t\targChk_Num(hArg, 'text', NaN);\n\t\t\t\tbreak;\n\t\t\tcase 'int':\n\t\t\t\thArg.text = String(int(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'uint':\n\t\t\t\thArg.text = String(uint(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'bool':\n\t\t\t\targChk_Boolean(hArg, 'text', false);\n\t\t\t\tbreak;\n\t\t\tcase 'str':\n\t\t\t\tautocast = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'cast【'+ hArg.cast +'】は未定義です';\n\t\t\t}\n\t\t}\n\n\t\tthis.#setVal(hArg.name, hArg.text, autocast);\n\n\t\treturn false;\n\t}\n\n\t// 絶対値\n\t#let_abs(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\t//hArg.text = Math.abs(n);\n\t\thArg.text = String(n < 0 ?-n :n);\n\t\t\t// JavaScriptのMath.abs()で絶対値を取得しないほうが良い理由 | iwb.jp https://iwb.jp/javascript-math-abs-deprecated/\n\t\t\t// 数値以外だとほとんどがNaNを返し、booleanは0や1を返しているため使い方によってはバグの原因になることがある。\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から一字取りだし\n\t#let_char_at(hArg: TArg) {\n\t\thArg.text = (hArg.text ?? '').charAt(argChk_Num(hArg, 'pos', 0));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列で検索\n\t#let_index_of(hArg: TArg) {\n\t\tconst {val} = hArg;\n\t\tif (! val) throw 'valは必須です';\n\t\tconst start = argChk_Num(hArg, 'start', 0);\n\n\t\thArg.text = String((hArg.text ?? '').indexOf(val, start));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列の長さ\n\t#let_length(hArg: TArg) {\n\t\thArg.text = String((hArg.text ?? '').length);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で置換\n\t#let_replace(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = (hArg.text ?? '').replace(reg, String(hArg.val));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 四捨五入\n\t#let_round(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\thArg.text = String(Math.round(n));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で検索\n\t#let_search(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = String((hArg.text ?? '').search(reg));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から抜きだし\n\t#let_substr(hArg: TArg) {\n\t\tconst i = argChk_Num(hArg, 'pos', 0);\n\t\thArg.text = hArg.len !== 'all'\n\t\t\t? (hArg.text ?? '').slice(i, i +int(argChk_Num(hArg, 'len', 1)))\n\t\t\t: (hArg.text ?? '').slice(i);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\n//\t// デバッグ・その他\n\t// システム変数の全消去\n\t#clearsysvar(init = false) {\n\t\tconst sys = this.#hSys = this.#hScopes.sys = this.#d4v.sys = creSYS_DATA();\n\n\t\tconst is_nw = typeof process !== 'undefined';\n\t\tif (is_nw) {\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.x', stage.nativeWindow.x);\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.y', stage.nativeWindow.y);\n\t\t\t//NOTE: これは??\n\t\t}\n\t\telse {\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.x', 0);\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.y', 0);\n\t\t}\n\n\t\t// 文字表示Wait時間\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait', this.cfg.oCfg.init.tagch_msecwait);\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait_Kidoku', this.cfg.oCfg.init.tagch_msecwait);\n\n\t\t// 自動読みすすみモード時の改ページ時のウェイト\n\t\t//\t//\trunFirst_sys_an_auto_msecPageWait('sn.auto.msecPageWait', '');\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait_Kidoku', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\n\t\t//\tSoundMixer.soundTransform = new SoundTransform(\n\t\t//\t\t(sys['flash.media.SoundMixer.soundTransform.volume'] = 1)\n\t\t//\t);\n\n\t\tfor (const ar of Object.values(this.#hAreaKidoku)) ar.clear();\n\t\t\t// this.#data.kidoku へのコピーは saveKidoku() に任せる\n\n\t\tthis.#hScopes.mark = this.#d4v.mark = {};\n\n\t\tif (! init) this.#saPageLog();\n\n\n\t\tthis.flush();\n\n\t\treturn false;\n\t}\n\n\t// ゲーム変数の全消去\n\t#clearvar() {\n\t\tconst mesLayer\t: string = this.#hSave['const.sn.mesLayer'];\n\t\tconst doRecLog\t: boolean= this.#hSave['sn.doRecLog'];\n\t\tconst sLog\t\t: string = this.#hSave['const.sn.sLog'];\n\t\tconst styPaging\t: string = this.#hSave['const.sn.styPaging'];\n\n\t\tthis.#hSave = this.#hScopes.save = creSAVEDATA();\n\n\t\tthis.setVal_Nochk('save', 'const.sn.mesLayer', mesLayer);\n\t\tthis.setVal_Nochk('save', 'sn.doRecLog', doRecLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.sLog', sLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.styPaging', styPaging);\n\n\t\treturn false;\n\t}\n\n\t#setVal(arg_name: string, val: T_VAL_BSNU, autocast = true) {\n\t\tif (! arg_name) throw '[変数に値セット] nameは必須です';\n\t\tif (val === undefined) throw '[変数に値セット] textは必須です(空文字はOK)';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw `[変数参照] name(${arg_name})が変数名として異常です`;\n\n\t\tconst {scope='tmp', name} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\t\tif (name.startsWith('const.') && name in hScope) {\n\t\t\tthrow `[変数に値セット] 変数【${name}】は書き換え不可です`;\n\t\t}\n\n\t\tthis.setVal_Nochk(scope, name, val, autocast);\n\t}\n\tsetVal_Nochk(scope: Scope, nm: string, ival: T_VAL_BSNU, autocast = false) {\n\t\tconst hScope = this.#hScopes[scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst new_v = autocast ?this.#castAuto(ival) : ival;\n\n\t\tconst fullnm = scope +':'+ nm;\n\t\tif (fullnm in Variable.#hSetEvent) {\n\t\t\tconst old_v = hScope[<keyof typeof hScope>nm];\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif (old_v != new_v) this.#callHook('data_break', {\n\t\t\t\tdataId: fullnm,\n\t\t\t\told_v,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tnew_v,\n\t\t\t});\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t(<any>hScope)[nm] = new_v;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#hSetValTrg[fullnm]?.(nm, new_v ?? '');\n\n\t\t// if (scope === 'sys') this.flush()\n\t\t\t// 厳密にはここですべきだが、パフォーマンスに問題があるので\n\t\t\t// クリック待ちを期待できるwait、waitclick、s、l、pタグで\n\t\t\t// saveKidoku()をコール。(中で保存しているのでついでに)\n\n\t\t//console.log(`\\tlet s[${scope}] n[${nm}]='${new_v}' trg[${(trg)}]`);\n\t}\n\t// reload 再生成 Main に受け渡すため static\n\tstatic\t#hSetEvent: {[fullnm: string]: 1} = {};\n\n\n\t// readonly getVal_save = (arg_name: string, def?: number | string)=> {\n\t// \tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\tgetVal(arg_name: string, def?: number | string, touch = false): T_VAL_DATA {\n\t\tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw '[変数参照] name('+ arg_name +')が変数名として異常です';\n\n\t\tconst {scope='tmp', name, at} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\n\t\tlet val = <T_VAL_DATA_FNC>hScope[<keyof typeof hScope>name];\n// console.log(`getVal arg_name=${arg_name}= nm=${name}= A:${String(! (name in hScope))} val:${String(val)}`);\n\t\tif (! (name in hScope)) {\t// 存在しない変数名の場合、刻んで調べていく\n\t\t\tval = def;\n\t\t\tif (touch) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\t\t\t(<any>hScope)[name] = def;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t\t\t}\n\n\t\t\tlet n = '';\n\t\t\tconst aNm = name.split('.');\n\t\t\tconst len = aNm.length;\n\t\t\tfor (let i=0; i<len; ++i, n += '.') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n\t\t\t\tn += aNm[i];\n\t\t\t\tif (! (n in hScope)) continue;\t// 存在しない変数名の場合、延ばす\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tlet v = JSON.parse(hScope[<keyof typeof hScope>n]);\n\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tif (i +1 === len) {val = v; break}\t// 最下層ならそのまま返す\n\t\t\t\t\tcontinue;\n\t\t\t\t\t\t// 短い名前でヒットしたが、JSONでもなく\n\t\t\t\t\t\t// 変数名にはまだ続きがあるので探索続行\n\t\t\t\t}\n\n\t\t\t\tlet j = i;\t// JSONオブジェクトの階層を降りつつ探索\n\t\t\t\twhile (++j < len) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tconst nj = aNm[j]!;\n\t\t\t\t\tif (! (nj in v)) {val = def; break}\n\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tv = v[nj];\n\t\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]'\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t|| j +1 === len) {val = v; break}// 最下層ならそのまま返す\n\t\t\t\t}\n\n\t\t\t\tif (val instanceof Object) val = JSON.stringify(val);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (val instanceof Function) val = val();\n// console.log(`\\tget [${arg_name}] -> s[${scope ?? 'tmp'}'] a[${at ?? ''}] n[${name}'] ret['${String(val)}']('${typeof val}')'`);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#castAuto(val: T_VAL_DATA): any {\n\t\tconst s_val = <string>val;\n\t\tif (s_val === 'true') return true;\n\t\tif (s_val === 'false') return false;\n\t\tif (s_val === 'null') return null;\n\t\tif (s_val === 'undefined') return undefined;\n\t\tif (this.#REG_NUMERICLITERAL.test(s_val)) return parseFloat(s_val);\n\n\t\treturn val;\n\t}\n\t#REG_NUMERICLITERAL\t= /^-?[\\d.]+$/;\n\n\n\t// 変数のダンプ\n\t#dump_val() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst val: any = {tmp:{}, sys:{}, save:{}, mp:{}};\n\t\tfor (const scope in val) {\n\t\t\tconst hVal = this.#hScopes[<Scope>scope];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst hRet = val[scope];\n\t\t\tfor (const [key, v] of Object.entries(hVal)) {\n\t\t\t\tif (v instanceof Function) continue;\n\n\t\t\t\t// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t// hRet[key] = v instanceof Function ?v() :v;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\thRet[key] = v;\n\t\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t}\n\t\tconsole.info('🥟 [dump_val]', val);\n\n\t\treturn false;\n\t}\n\n\t#doRecLog\t= false;\n\tdoRecLog() {return this.#doRecLog}\n\n\n\t#tagCh_doWait = false;\n\tget tagCh_doWait() {return this.#tagCh_doWait;}\n\t#tagCh_doWait_Kidoku = false;\n\tget tagCh_doWait_Kidoku() {return this.#tagCh_doWait_Kidoku;}\n\t#tagCh_msecWait\t\t= 0;\n\tget tagCh_msecWait() {return this.#tagCh_msecWait;}\n\t#tagCh_msecWait_Kidoku= 0;\n\tget tagCh_msecWait_Kidoku() {return this.#tagCh_msecWait_Kidoku;}\n\n\t#hSetValTrg\t: {[name: string]: T_fncSetVal}\t= {\n\t\t// sys\n\t\t'sys:sn.tagCh.doWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_doWait =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.doWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_doWait_Kidoku =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_msecWait =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_msecWait_Kidoku =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait_Kidoku(name);\n\t\t},\n\t\t'sys:sn.tagCh.canskip'\t\t\t: name=> this.#runFirst_Bool_hSysVal_true(name),\n\n\t\t'sys:sn.auto.msecPageWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecPageWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecLineWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\t\t'sys:sn.auto.msecLineWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\n\t\t// save\n\t\t'save:sn.doRecLog'\t\t: name=> {\n\t\t\tthis.#doRecProc(\n\t\t\t\tthis.#doRecLog = this.#runFirst_Bool_hSaveVal_true(name)\n\t\t\t);\n\t\t},\n\t\t'save:sn.userFnTail'\t: (_name, ival)=> {\n\t\t\tconst val = String(ival);\n\t\t\tif (val.includes('@')) throw 'この変数では文字「@」は禁止です';\n\t\t\tthis.cfg.userFnTail = val;\n\t\t},\n\n\t\t// tmp\n\t\t'tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode'\t:\n\t\t\t()=> {\n\t\t\t//\tNativeApplication.nativeApplication.systemIdleMode = val;\n\t\t\t}\n\t\t,\n\t};\n\tdefValTrg(name: string, fnc: T_fncSetVal) {this.#hSetValTrg[name] = fnc}\n\treadonly\t#runFirst_Bool_hSysVal_true = (name: string)=> argChk_Boolean(this.#hSys, name, true);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait = (name: string)=> argChk_Num(this.#hSys, name, 10);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait_Kidoku = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.tagch_msecwait ?? 10\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecPageWait = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.auto_msecpagewait ?? 3500\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecLineWait = (name: string)=> argChk_Num(this.#hSys, name, 500);\n\n\t#runFirst_Bool_hSaveVal_true(name: string) {\n\t\treturn argChk_Boolean(this.#hSave, name, true);\n\t}\n\n}\n"],"mappings":"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"}