最后活跃于 1734365264

修订 0c239bddc289323737df3688110430c5e3cf5e30

html_calc.gd 原始文件 Playground
1class_name VeraGenerated
2extends Reference
3var strings: Array = []
4var slots: Dictionary = {}
5var huge: int = 9223372036854775807
6func _c_get(k, f):
7 if counters.has(k):
8 return counters[k]
9 return f
10
11var string_constants = [
12 "br",
13 "app",
14 "button",
15 "calc-output",
16 "div",
17 "AC",
18 "All Clear",
19 "C",
20 "Clear",
21 "0",
22 "9",
23 "8",
24 "7",
25 "6",
26 "5",
27 "4",
28 "3",
29 "2",
30 "1",
31 "+",
32 "/",
33 "*",
34 "-",
35 ".",
36 "=",
37 "Press 7",
38 "Press 8",
39 "Press 9",
40 "Press Divide",
41 "Press 4",
42 "Press 5",
43 "Press 6",
44 "Press Multiply",
45 "Press 1",
46 "Press 2",
47 "Press 3",
48 "Press Subtract",
49 "Press 0",
50 "Press Dot",
51 "Press Equal",
52 "Press Add",
53]
54func _set_slot_DOM_id():
55 slots["DOM id"] = strings.pop_front()
56
57func _fetch_slot_DOM_id():
58 strings.push_back(slots["DOM id"])
59
60func _set_slot_inner_content():
61 slots["inner content"] = strings.pop_front()
62
63func _fetch_slot_inner_content():
64 strings.push_back(slots["inner content"])
65
66func _set_slot_vera_event():
67 slots["vera event"] = strings.pop_front()
68
69func _fetch_slot_vera_event():
70 strings.push_back(slots["vera event"])
71
72func _set_slot_num_A():
73 slots["num A"] = strings.pop_front()
74
75func _fetch_slot_num_A():
76 strings.push_back(slots["num A"])
77
78func _set_slot_num_B():
79 slots["num B"] = strings.pop_front()
80
81func _fetch_slot_num_B():
82 strings.push_back(slots["num B"])
83
84func _set_slot_acc():
85 slots["acc"] = strings.pop_front()
86
87func _fetch_slot_acc():
88 strings.push_back(slots["acc"])
89
90func _set_slot_mem():
91 slots["mem"] = strings.pop_front()
92
93func _fetch_slot_mem():
94 strings.push_back(slots["mem"])
95
96var counters = {
97 "ui init" = 1,
98}
99func on_log_string(counters):
100 push_error('on_log_string is not implemented!');
101
102
103func on_clear_log(counters):
104 push_error('on_clear_log is not implemented!');
105
106
107func on_reset_ui(counters):
108 push_error('on_reset_ui is not implemented!');
109
110func match():
111 var _ = counters
112 if _["push string"] > 0:
113 strings.push_back(string_constants[_["push string"]-1])
114 _["push string"] = 0
115 return true
116
117 if counters["set slot DOM id"] > 0 and counters["nostub"] > 0:
118 set_slot_DOM_id(counters)
119
120 counters["set slot DOM id"] = 0
121
122 counters["nostub"] = 0
123 return true
124
125
126 if counters["fetch slot DOM id"] > 0 and counters["nostub"] > 0:
127 fetch_slot_DOM_id(counters)
128
129 counters["fetch slot DOM id"] = 0
130
131 counters["nostub"] = 0
132 return true
133
134
135 if counters["set slot inner content"] > 0 and counters["nostub"] > 0:
136 set_slot_inner_content(counters)
137
138 counters["set slot inner content"] = 0
139
140 counters["nostub"] = 0
141 return true
142
143
144 if counters["fetch slot inner content"] > 0 and counters["nostub"] > 0:
145 fetch_slot_inner_content(counters)
146
147 counters["fetch slot inner content"] = 0
148
149 counters["nostub"] = 0
150 return true
151
152
153 if counters["set slot vera event"] > 0 and counters["nostub"] > 0:
154 set_slot_vera_event(counters)
155
156 counters["set slot vera event"] = 0
157
158 counters["nostub"] = 0
159 return true
160
161
162 if counters["fetch slot vera event"] > 0 and counters["nostub"] > 0:
163 fetch_slot_vera_event(counters)
164
165 counters["fetch slot vera event"] = 0
166
167 counters["nostub"] = 0
168 return true
169
170
171 if counters["set slot num A"] > 0 and counters["nostub"] > 0:
172 set_slot_num_A(counters)
173
174 counters["set slot num A"] = 0
175
176 counters["nostub"] = 0
177 return true
178
179
180 if counters["fetch slot num A"] > 0 and counters["nostub"] > 0:
181 fetch_slot_num_A(counters)
182
183 counters["fetch slot num A"] = 0
184
185 counters["nostub"] = 0
186 return true
187
188
189 if counters["set slot num B"] > 0 and counters["nostub"] > 0:
190 set_slot_num_B(counters)
191
192 counters["set slot num B"] = 0
193
194 counters["nostub"] = 0
195 return true
196
197
198 if counters["fetch slot num B"] > 0 and counters["nostub"] > 0:
199 fetch_slot_num_B(counters)
200
201 counters["fetch slot num B"] = 0
202
203 counters["nostub"] = 0
204 return true
205
206
207 if counters["set slot acc"] > 0 and counters["nostub"] > 0:
208 set_slot_acc(counters)
209
210 counters["set slot acc"] = 0
211
212 counters["nostub"] = 0
213 return true
214
215
216 if counters["fetch slot acc"] > 0 and counters["nostub"] > 0:
217 fetch_slot_acc(counters)
218
219 counters["fetch slot acc"] = 0
220
221 counters["nostub"] = 0
222 return true
223
224
225 if counters["set slot mem"] > 0 and counters["nostub"] > 0:
226 set_slot_mem(counters)
227
228 counters["set slot mem"] = 0
229
230 counters["nostub"] = 0
231 return true
232
233
234 if counters["fetch slot mem"] > 0 and counters["nostub"] > 0:
235 fetch_slot_mem(counters)
236
237 counters["fetch slot mem"] = 0
238
239 counters["nostub"] = 0
240 return true
241
242
243 if counters["@on log"] > 0:
244 on_log_string(counters)
245
246 counters["@on log"] = 0
247 return true
248
249
250 if counters["@clear log"] > 0:
251 on_clear_log(counters)
252
253 counters["@clear log"] = 0
254 return true
255
256
257 if counters["@reset ui"] > 0:
258 on_reset_ui(counters)
259
260 counters["@reset ui"] = 0
261 return true
262
263
264 if _["# meta code status"] > 0:
265
266 var acc = _c_get("# meta code status", 0)
267 _["# meta code status"] = max(_c_get("# meta code status", 0) - acc, 0);
268 _["Untested"] = _c_get("Untested", 0) + acc * 1;
269 _["uncompiled"] = _c_get("uncompiled", 0) + acc * 1;
270 return true
271
272 if _["#include"] > 0 and _["strings.nv"] > 0 and _["slots.nv"] > 0 and _["DOM.nv"] > 0:
273
274 var acc = huge
275 acc = min(acc, _c_get("#include", 0)
276 acc = min(acc, _c_get("strings.nv", 0)
277 acc = min(acc, _c_get("slots.nv", 0)
278 acc = min(acc, _c_get("DOM.nv", 0)
279 _["#include"] = max(_c_get("#include", 0) - acc, 0);
280 _["strings.nv"] = max(_c_get("strings.nv", 0) - acc, 0);
281 _["slots.nv"] = max(_c_get("slots.nv", 0) - acc, 0);
282 _["DOM.nv"] = max(_c_get("DOM.nv", 0) - acc, 0);
283 return true
284
285 if _["add string br"] > 0:
286
287 var acc = _c_get("add string br", 0)
288 _["add string br"] = max(_c_get("add string br", 0) - acc, 0);
289 _["push string"] = _c_get("push string", 0) + acc * 1;
290 return true
291
292 if _["add string app"] > 0:
293
294 var acc = _c_get("add string app", 0)
295 _["add string app"] = max(_c_get("add string app", 0) - acc, 0);
296 _["push string"] = _c_get("push string", 0) + acc * 2;
297 return true
298
299 if _["add string button"] > 0:
300
301 var acc = _c_get("add string button", 0)
302 _["add string button"] = max(_c_get("add string button", 0) - acc, 0);
303 _["push string"] = _c_get("push string", 0) + acc * 3;
304 return true
305
306 if _["add string calc-output"] > 0:
307
308 var acc = _c_get("add string calc-output", 0)
309 _["add string calc-output"] = max(_c_get("add string calc-output", 0) - acc, 0);
310 _["push string"] = _c_get("push string", 0) + acc * 4;
311 return true
312
313 if _["add string div"] > 0:
314
315 var acc = _c_get("add string div", 0)
316 _["add string div"] = max(_c_get("add string div", 0) - acc, 0);
317 _["push string"] = _c_get("push string", 0) + acc * 5;
318 return true
319
320 if _["add string AC"] > 0:
321
322 var acc = _c_get("add string AC", 0)
323 _["add string AC"] = max(_c_get("add string AC", 0) - acc, 0);
324 _["push string"] = _c_get("push string", 0) + acc * 6;
325 return true
326
327 if _["add string All Clear"] > 0:
328
329 var acc = _c_get("add string All Clear", 0)
330 _["add string All Clear"] = max(_c_get("add string All Clear", 0) - acc, 0);
331 _["push string"] = _c_get("push string", 0) + acc * 7;
332 return true
333
334 if _["add string C"] > 0:
335
336 var acc = _c_get("add string C", 0)
337 _["add string C"] = max(_c_get("add string C", 0) - acc, 0);
338 _["push string"] = _c_get("push string", 0) + acc * 8;
339 return true
340
341 if _["add string Clear"] > 0:
342
343 var acc = _c_get("add string Clear", 0)
344 _["add string Clear"] = max(_c_get("add string Clear", 0) - acc, 0);
345 _["push string"] = _c_get("push string", 0) + acc * 9;
346 return true
347
348 if _["add string 0"] > 0:
349
350 var acc = _c_get("add string 0", 0)
351 _["add string 0"] = max(_c_get("add string 0", 0) - acc, 0);
352 _["push string"] = _c_get("push string", 0) + acc * 10;
353 return true
354
355 if _["add string 9"] > 0:
356
357 var acc = _c_get("add string 9", 0)
358 _["add string 9"] = max(_c_get("add string 9", 0) - acc, 0);
359 _["push string"] = _c_get("push string", 0) + acc * 11;
360 return true
361
362 if _["add string 8"] > 0:
363
364 var acc = _c_get("add string 8", 0)
365 _["add string 8"] = max(_c_get("add string 8", 0) - acc, 0);
366 _["push string"] = _c_get("push string", 0) + acc * 12;
367 return true
368
369 if _["add string 7"] > 0:
370
371 var acc = _c_get("add string 7", 0)
372 _["add string 7"] = max(_c_get("add string 7", 0) - acc, 0);
373 _["push string"] = _c_get("push string", 0) + acc * 13;
374 return true
375
376 if _["add string 6"] > 0:
377
378 var acc = _c_get("add string 6", 0)
379 _["add string 6"] = max(_c_get("add string 6", 0) - acc, 0);
380 _["push string"] = _c_get("push string", 0) + acc * 14;
381 return true
382
383 if _["add string 5"] > 0:
384
385 var acc = _c_get("add string 5", 0)
386 _["add string 5"] = max(_c_get("add string 5", 0) - acc, 0);
387 _["push string"] = _c_get("push string", 0) + acc * 15;
388 return true
389
390 if _["add string 4"] > 0:
391
392 var acc = _c_get("add string 4", 0)
393 _["add string 4"] = max(_c_get("add string 4", 0) - acc, 0);
394 _["push string"] = _c_get("push string", 0) + acc * 16;
395 return true
396
397 if _["add string 3"] > 0:
398
399 var acc = _c_get("add string 3", 0)
400 _["add string 3"] = max(_c_get("add string 3", 0) - acc, 0);
401 _["push string"] = _c_get("push string", 0) + acc * 17;
402 return true
403
404 if _["add string 2"] > 0:
405
406 var acc = _c_get("add string 2", 0)
407 _["add string 2"] = max(_c_get("add string 2", 0) - acc, 0);
408 _["push string"] = _c_get("push string", 0) + acc * 18;
409 return true
410
411 if _["add string 1"] > 0:
412
413 var acc = _c_get("add string 1", 0)
414 _["add string 1"] = max(_c_get("add string 1", 0) - acc, 0);
415 _["push string"] = _c_get("push string", 0) + acc * 19;
416 return true
417
418 if _["add string +"] > 0:
419
420 var acc = _c_get("add string +", 0)
421 _["add string +"] = max(_c_get("add string +", 0) - acc, 0);
422 _["push string"] = _c_get("push string", 0) + acc * 20;
423 return true
424
425 if _["add string /"] > 0:
426
427 var acc = _c_get("add string /", 0)
428 _["add string /"] = max(_c_get("add string /", 0) - acc, 0);
429 _["push string"] = _c_get("push string", 0) + acc * 21;
430 return true
431
432 if _["add string *"] > 0:
433
434 var acc = _c_get("add string *", 0)
435 _["add string *"] = max(_c_get("add string *", 0) - acc, 0);
436 _["push string"] = _c_get("push string", 0) + acc * 22;
437 return true
438
439 if _["add string -"] > 0:
440
441 var acc = _c_get("add string -", 0)
442 _["add string -"] = max(_c_get("add string -", 0) - acc, 0);
443 _["push string"] = _c_get("push string", 0) + acc * 23;
444 return true
445
446 if _["add string ."] > 0:
447
448 var acc = _c_get("add string .", 0)
449 _["add string ."] = max(_c_get("add string .", 0) - acc, 0);
450 _["push string"] = _c_get("push string", 0) + acc * 24;
451 return true
452
453 if _["add string ="] > 0:
454
455 var acc = _c_get("add string =", 0)
456 _["add string ="] = max(_c_get("add string =", 0) - acc, 0);
457 _["push string"] = _c_get("push string", 0) + acc * 25;
458 return true
459
460 if _["add string Press 7"] > 0:
461
462 var acc = _c_get("add string Press 7", 0)
463 _["add string Press 7"] = max(_c_get("add string Press 7", 0) - acc, 0);
464 _["push string"] = _c_get("push string", 0) + acc * 26;
465 return true
466
467 if _["add string Press 8"] > 0:
468
469 var acc = _c_get("add string Press 8", 0)
470 _["add string Press 8"] = max(_c_get("add string Press 8", 0) - acc, 0);
471 _["push string"] = _c_get("push string", 0) + acc * 27;
472 return true
473
474 if _["add string Press 9"] > 0:
475
476 var acc = _c_get("add string Press 9", 0)
477 _["add string Press 9"] = max(_c_get("add string Press 9", 0) - acc, 0);
478 _["push string"] = _c_get("push string", 0) + acc * 28;
479 return true
480
481 if _["add string Press Divide"] > 0:
482
483 var acc = _c_get("add string Press Divide", 0)
484 _["add string Press Divide"] = max(_c_get("add string Press Divide", 0) - acc, 0);
485 _["push string"] = _c_get("push string", 0) + acc * 29;
486 return true
487
488 if _["add string Press 4"] > 0:
489
490 var acc = _c_get("add string Press 4", 0)
491 _["add string Press 4"] = max(_c_get("add string Press 4", 0) - acc, 0);
492 _["push string"] = _c_get("push string", 0) + acc * 30;
493 return true
494
495 if _["add string Press 5"] > 0:
496
497 var acc = _c_get("add string Press 5", 0)
498 _["add string Press 5"] = max(_c_get("add string Press 5", 0) - acc, 0);
499 _["push string"] = _c_get("push string", 0) + acc * 31;
500 return true
501
502 if _["add string Press 6"] > 0:
503
504 var acc = _c_get("add string Press 6", 0)
505 _["add string Press 6"] = max(_c_get("add string Press 6", 0) - acc, 0);
506 _["push string"] = _c_get("push string", 0) + acc * 32;
507 return true
508
509 if _["add string Press Multiply"] > 0:
510
511 var acc = _c_get("add string Press Multiply", 0)
512 _["add string Press Multiply"] = max(_c_get("add string Press Multiply", 0) - acc, 0);
513 _["push string"] = _c_get("push string", 0) + acc * 33;
514 return true
515
516 if _["add string Press 1"] > 0:
517
518 var acc = _c_get("add string Press 1", 0)
519 _["add string Press 1"] = max(_c_get("add string Press 1", 0) - acc, 0);
520 _["push string"] = _c_get("push string", 0) + acc * 34;
521 return true
522
523 if _["add string Press 2"] > 0:
524
525 var acc = _c_get("add string Press 2", 0)
526 _["add string Press 2"] = max(_c_get("add string Press 2", 0) - acc, 0);
527 _["push string"] = _c_get("push string", 0) + acc * 35;
528 return true
529
530 if _["add string Press 3"] > 0:
531
532 var acc = _c_get("add string Press 3", 0)
533 _["add string Press 3"] = max(_c_get("add string Press 3", 0) - acc, 0);
534 _["push string"] = _c_get("push string", 0) + acc * 36;
535 return true
536
537 if _["add string Press Subtract"] > 0:
538
539 var acc = _c_get("add string Press Subtract", 0)
540 _["add string Press Subtract"] = max(_c_get("add string Press Subtract", 0) - acc, 0);
541 _["push string"] = _c_get("push string", 0) + acc * 37;
542 return true
543
544 if _["add string Press 0"] > 0:
545
546 var acc = _c_get("add string Press 0", 0)
547 _["add string Press 0"] = max(_c_get("add string Press 0", 0) - acc, 0);
548 _["push string"] = _c_get("push string", 0) + acc * 38;
549 return true
550
551 if _["add string Press Dot"] > 0:
552
553 var acc = _c_get("add string Press Dot", 0)
554 _["add string Press Dot"] = max(_c_get("add string Press Dot", 0) - acc, 0);
555 _["push string"] = _c_get("push string", 0) + acc * 39;
556 return true
557
558 if _["add string Press Equal"] > 0:
559
560 var acc = _c_get("add string Press Equal", 0)
561 _["add string Press Equal"] = max(_c_get("add string Press Equal", 0) - acc, 0);
562 _["push string"] = _c_get("push string", 0) + acc * 40;
563 return true
564
565 if _["add string Press Add"] > 0:
566
567 var acc = _c_get("add string Press Add", 0)
568 _["add string Press Add"] = max(_c_get("add string Press Add", 0) - acc, 0);
569 _["push string"] = _c_get("push string", 0) + acc * 41;
570 return true
571
572 if _["ui init"] > 0:
573
574 var acc = _c_get("ui init", 0)
575 _["ui init"] = max(_c_get("ui init", 0) - acc, 0);
576 _["@reset ui"] = _c_get("@reset ui", 0) + acc * 1;
577 _["add string app"] = _c_get("add string app", 0) + acc * 1;
578 _["mount element by id"] = _c_get("mount element by id", 0) + acc * 1;
579 _["create display label"] = _c_get("create display label", 0) + acc * 1;
580 _["create buttons"] = _c_get("create buttons", 0) + acc * 1;
581 _["mount to output"] = _c_get("mount to output", 0) + acc * 1;
582 return true
583
584 if _["create button"] > 0:
585
586 var acc = _c_get("create button", 0)
587 _["create button"] = max(_c_get("create button", 0) - acc, 0);
588 _["set slot inner content"] = _c_get("set slot inner content", 0) + acc * 1;
589 _["set slot vera event"] = _c_get("set slot vera event", 0) + acc * 1;
590 _["create button.2"] = _c_get("create button.2", 0) + acc * 1;
591 return true
592
593 if _["create button.2"] > 0:
594
595 var acc = _c_get("create button.2", 0)
596 _["create button.2"] = max(_c_get("create button.2", 0) - acc, 0);
597 _["add string button"] = _c_get("add string button", 0) + acc * 1;
598 _["create element"] = _c_get("create element", 0) + acc * 1;
599 return true
600
601 if _["next row"] > 0:
602
603 var acc = _c_get("next row", 0)
604 _["next row"] = max(_c_get("next row", 0) - acc, 0);
605 _["add string br"] = _c_get("add string br", 0) + acc * 1;
606 _["create element"] = _c_get("create element", 0) + acc * 1;
607 return true
608
609 if _["create element"] > 0:
610
611 var acc = _c_get("create element", 0)
612 _["create element"] = max(_c_get("create element", 0) - acc, 0);
613 _["@create element"] = _c_get("@create element", 0) + acc * 1;
614 return true
615
616 if _["mount element by id"] > 0:
617
618 var acc = _c_get("mount element by id", 0)
619 _["mount element by id"] = max(_c_get("mount element by id", 0) - acc, 0);
620 _["@mount element by id"] = _c_get("@mount element by id", 0) + acc * 1;
621 return true
622
623 if _["create display label"] > 0:
624
625 var acc = _c_get("create display label", 0)
626 _["create display label"] = max(_c_get("create display label", 0) - acc, 0);
627 _["add string calc-output"] = _c_get("add string calc-output", 0) + acc * 1;
628 _["set DOM id"] = _c_get("set DOM id", 0) + acc * 1;
629 _["create display label.2"] = _c_get("create display label.2", 0) + acc * 1;
630 return true
631
632 if _["set DOM id"] > 0:
633
634 var acc = _c_get("set DOM id", 0)
635 _["set DOM id"] = max(_c_get("set DOM id", 0) - acc, 0);
636 _["set slot DOM id"] = _c_get("set slot DOM id", 0) + acc * 1;
637 return true
638
639 if _["create display label.2"] > 0:
640
641 var acc = _c_get("create display label.2", 0)
642 _["create display label.2"] = max(_c_get("create display label.2", 0) - acc, 0);
643 _["add string div"] = _c_get("add string div", 0) + acc * 1;
644 _["create element"] = _c_get("create element", 0) + acc * 1;
645 _["finish label row"] = _c_get("finish label row", 0) + acc * 1;
646 return true
647
648 if _["finish label row"] > 0:
649
650 var acc = _c_get("finish label row", 0)
651 _["finish label row"] = max(_c_get("finish label row", 0) - acc, 0);
652 _["next row"] = _c_get("next row", 0) + acc * 1;
653 return true
654
655 if _["create buttons"] > 0:
656
657 var acc = _c_get("create buttons", 0)
658 _["create buttons"] = max(_c_get("create buttons", 0) - acc, 0);
659 _["create AC C row"] = _c_get("create AC C row", 0) + acc * 1;
660 _["create 7 8 9 / row"] = _c_get("create 7 8 9 / row", 0) + acc * 1;
661 _["create 4 5 6 * row"] = _c_get("create 4 5 6 * row", 0) + acc * 1;
662 _["create 1 2 3 - row"] = _c_get("create 1 2 3 - row", 0) + acc * 1;
663 _["create 0 . = +"] = _c_get("create 0 . = +", 0) + acc * 1;
664 return true
665
666 if _["create AC C row"] > 0:
667
668 var acc = _c_get("create AC C row", 0)
669 _["create AC C row"] = max(_c_get("create AC C row", 0) - acc, 0);
670 _["create AC button"] = _c_get("create AC button", 0) + acc * 1;
671 _["create C button"] = _c_get("create C button", 0) + acc * 1;
672 return true
673
674 if _["create AC button"] > 0:
675
676 var acc = _c_get("create AC button", 0)
677 _["create AC button"] = max(_c_get("create AC button", 0) - acc, 0);
678 _["add string AC"] = _c_get("add string AC", 0) + acc * 1;
679 _["add string All Clear"] = _c_get("add string All Clear", 0) + acc * 1;
680 _["create button"] = _c_get("create button", 0) + acc * 1;
681 return true
682
683 if _["create C button"] > 0:
684
685 var acc = _c_get("create C button", 0)
686 _["create C button"] = max(_c_get("create C button", 0) - acc, 0);
687 _["add string C"] = _c_get("add string C", 0) + acc * 1;
688 _["add string Clear"] = _c_get("add string Clear", 0) + acc * 1;
689 _["create button"] = _c_get("create button", 0) + acc * 1;
690 _["ACC finish"] = _c_get("ACC finish", 0) + acc * 1;
691 return true
692
693 if _["ACC finish"] > 0:
694
695 var acc = _c_get("ACC finish", 0)
696 _["ACC finish"] = max(_c_get("ACC finish", 0) - acc, 0);
697 _["next row"] = _c_get("next row", 0) + acc * 1;
698 return true
699
700 if _["create 7 8 9 / row"] > 0:
701
702 var acc = _c_get("create 7 8 9 / row", 0)
703 _["create 7 8 9 / row"] = max(_c_get("create 7 8 9 / row", 0) - acc, 0);
704 _["add button 7"] = _c_get("add button 7", 0) + acc * 1;
705 _["add button 8"] = _c_get("add button 8", 0) + acc * 1;
706 _["add button 9"] = _c_get("add button 9", 0) + acc * 1;
707 _["add button /"] = _c_get("add button /", 0) + acc * 1;
708 return true
709
710 if _["add button 7"] > 0:
711
712 var acc = _c_get("add button 7", 0)
713 _["add button 7"] = max(_c_get("add button 7", 0) - acc, 0);
714 _["add string 7"] = _c_get("add string 7", 0) + acc * 1;
715 _["add string Press 7"] = _c_get("add string Press 7", 0) + acc * 1;
716 _["create button"] = _c_get("create button", 0) + acc * 1;
717 return true
718
719 if _["add button 8"] > 0:
720
721 var acc = _c_get("add button 8", 0)
722 _["add button 8"] = max(_c_get("add button 8", 0) - acc, 0);
723 _["add string 8"] = _c_get("add string 8", 0) + acc * 1;
724 _["add string Press 8"] = _c_get("add string Press 8", 0) + acc * 1;
725 _["create button"] = _c_get("create button", 0) + acc * 1;
726 return true
727
728 if _["add button 9"] > 0:
729
730 var acc = _c_get("add button 9", 0)
731 _["add button 9"] = max(_c_get("add button 9", 0) - acc, 0);
732 _["add string 9"] = _c_get("add string 9", 0) + acc * 1;
733 _["add string Press 9"] = _c_get("add string Press 9", 0) + acc * 1;
734 _["create button"] = _c_get("create button", 0) + acc * 1;
735 return true
736
737 if _["add button /"] > 0:
738
739 var acc = _c_get("add button /", 0)
740 _["add button /"] = max(_c_get("add button /", 0) - acc, 0);
741 _["add string /"] = _c_get("add string /", 0) + acc * 1;
742 _["add string Press Divide"] = _c_get("add string Press Divide", 0) + acc * 1;
743 _["create button"] = _c_get("create button", 0) + acc * 1;
744 _["789 Finish"] = _c_get("789 Finish", 0) + acc * 1;
745 return true
746
747 if _["789 Finish"] > 0:
748
749 var acc = _c_get("789 Finish", 0)
750 _["789 Finish"] = max(_c_get("789 Finish", 0) - acc, 0);
751 _["next row"] = _c_get("next row", 0) + acc * 1;
752 return true
753
754 if _["create 4 5 6 * row"] > 0:
755
756 var acc = _c_get("create 4 5 6 * row", 0)
757 _["create 4 5 6 * row"] = max(_c_get("create 4 5 6 * row", 0) - acc, 0);
758 _["add button 4"] = _c_get("add button 4", 0) + acc * 1;
759 _["add button 5"] = _c_get("add button 5", 0) + acc * 1;
760 _["add button 6"] = _c_get("add button 6", 0) + acc * 1;
761 _["add button *"] = _c_get("add button *", 0) + acc * 1;
762 return true
763
764 if _["add button 4"] > 0:
765
766 var acc = _c_get("add button 4", 0)
767 _["add button 4"] = max(_c_get("add button 4", 0) - acc, 0);
768 _["add string 4"] = _c_get("add string 4", 0) + acc * 1;
769 _["add string Press 4"] = _c_get("add string Press 4", 0) + acc * 1;
770 _["create button"] = _c_get("create button", 0) + acc * 1;
771 return true
772
773 if _["add button 5"] > 0:
774
775 var acc = _c_get("add button 5", 0)
776 _["add button 5"] = max(_c_get("add button 5", 0) - acc, 0);
777 _["add string 5"] = _c_get("add string 5", 0) + acc * 1;
778 _["add string Press 5"] = _c_get("add string Press 5", 0) + acc * 1;
779 _["create button"] = _c_get("create button", 0) + acc * 1;
780 return true
781
782 if _["add button 6"] > 0:
783
784 var acc = _c_get("add button 6", 0)
785 _["add button 6"] = max(_c_get("add button 6", 0) - acc, 0);
786 _["add string 6"] = _c_get("add string 6", 0) + acc * 1;
787 _["add string Press 6"] = _c_get("add string Press 6", 0) + acc * 1;
788 _["create button"] = _c_get("create button", 0) + acc * 1;
789 return true
790
791 if _["add button *"] > 0:
792
793 var acc = _c_get("add button *", 0)
794 _["add button *"] = max(_c_get("add button *", 0) - acc, 0);
795 _["add string *"] = _c_get("add string *", 0) + acc * 1;
796 _["add string Press Multiply"] = _c_get("add string Press Multiply", 0) + acc * 1;
797 _["create button"] = _c_get("create button", 0) + acc * 1;
798 _["456 Finish"] = _c_get("456 Finish", 0) + acc * 1;
799 return true
800
801 if _["456 Finish"] > 0:
802
803 var acc = _c_get("456 Finish", 0)
804 _["456 Finish"] = max(_c_get("456 Finish", 0) - acc, 0);
805 _["next row"] = _c_get("next row", 0) + acc * 1;
806 return true
807
808 if _["create 1 2 3 - row"] > 0:
809
810 var acc = _c_get("create 1 2 3 - row", 0)
811 _["create 1 2 3 - row"] = max(_c_get("create 1 2 3 - row", 0) - acc, 0);
812 _["add button 1"] = _c_get("add button 1", 0) + acc * 1;
813 _["add button 2"] = _c_get("add button 2", 0) + acc * 1;
814 _["add button 3"] = _c_get("add button 3", 0) + acc * 1;
815 _["add button -"] = _c_get("add button -", 0) + acc * 1;
816 return true
817
818 if _["add button 1"] > 0:
819
820 var acc = _c_get("add button 1", 0)
821 _["add button 1"] = max(_c_get("add button 1", 0) - acc, 0);
822 _["add string 1"] = _c_get("add string 1", 0) + acc * 1;
823 _["add string Press 1"] = _c_get("add string Press 1", 0) + acc * 1;
824 _["create button"] = _c_get("create button", 0) + acc * 1;
825 return true
826
827 if _["add button 2"] > 0:
828
829 var acc = _c_get("add button 2", 0)
830 _["add button 2"] = max(_c_get("add button 2", 0) - acc, 0);
831 _["add string 2"] = _c_get("add string 2", 0) + acc * 1;
832 _["add string Press 2"] = _c_get("add string Press 2", 0) + acc * 1;
833 _["create button"] = _c_get("create button", 0) + acc * 1;
834 return true
835
836 if _["add button 3"] > 0:
837
838 var acc = _c_get("add button 3", 0)
839 _["add button 3"] = max(_c_get("add button 3", 0) - acc, 0);
840 _["add string 3"] = _c_get("add string 3", 0) + acc * 1;
841 _["add string Press 3"] = _c_get("add string Press 3", 0) + acc * 1;
842 _["create button"] = _c_get("create button", 0) + acc * 1;
843 return true
844
845 if _["add button -"] > 0:
846
847 var acc = _c_get("add button -", 0)
848 _["add button -"] = max(_c_get("add button -", 0) - acc, 0);
849 _["add string -"] = _c_get("add string -", 0) + acc * 1;
850 _["add string Press Subtract"] = _c_get("add string Press Subtract", 0) + acc * 1;
851 _["create button"] = _c_get("create button", 0) + acc * 1;
852 _["123 Finish"] = _c_get("123 Finish", 0) + acc * 1;
853 return true
854
855 if _["123 Finish"] > 0:
856
857 var acc = _c_get("123 Finish", 0)
858 _["123 Finish"] = max(_c_get("123 Finish", 0) - acc, 0);
859 _["next row"] = _c_get("next row", 0) + acc * 1;
860 return true
861
862 if _["create 0 . = +"] > 0:
863
864 var acc = _c_get("create 0 . = +", 0)
865 _["create 0 . = +"] = max(_c_get("create 0 . = +", 0) - acc, 0);
866 _["add button 0"] = _c_get("add button 0", 0) + acc * 1;
867 _["add button ."] = _c_get("add button .", 0) + acc * 1;
868 _["add button ="] = _c_get("add button =", 0) + acc * 1;
869 _["add button +"] = _c_get("add button +", 0) + acc * 1;
870 return true
871
872 if _["add button 0"] > 0:
873
874 var acc = _c_get("add button 0", 0)
875 _["add button 0"] = max(_c_get("add button 0", 0) - acc, 0);
876 _["add string 0"] = _c_get("add string 0", 0) + acc * 1;
877 _["add string Press 0"] = _c_get("add string Press 0", 0) + acc * 1;
878 _["create button"] = _c_get("create button", 0) + acc * 1;
879 return true
880
881 if _["add button ."] > 0:
882
883 var acc = _c_get("add button .", 0)
884 _["add button ."] = max(_c_get("add button .", 0) - acc, 0);
885 _["add string ."] = _c_get("add string .", 0) + acc * 1;
886 _["add string Press Dot"] = _c_get("add string Press Dot", 0) + acc * 1;
887 _["create button"] = _c_get("create button", 0) + acc * 1;
888 return true
889
890 if _["add button ="] > 0:
891
892 var acc = _c_get("add button =", 0)
893 _["add button ="] = max(_c_get("add button =", 0) - acc, 0);
894 _["add string ="] = _c_get("add string =", 0) + acc * 1;
895 _["add string Press Equal"] = _c_get("add string Press Equal", 0) + acc * 1;
896 _["create button"] = _c_get("create button", 0) + acc * 1;
897 return true
898
899 if _["add button +"] > 0:
900
901 var acc = _c_get("add button +", 0)
902 _["add button +"] = max(_c_get("add button +", 0) - acc, 0);
903 _["add string +"] = _c_get("add string +", 0) + acc * 1;
904 _["add string Press Add"] = _c_get("add string Press Add", 0) + acc * 1;
905 _["create button"] = _c_get("create button", 0) + acc * 1;
906 return true
907
908 if _["mount to output"] > 0:
909
910 var acc = _c_get("mount to output", 0)
911 _["mount to output"] = max(_c_get("mount to output", 0) - acc, 0);
912 _["add string calc-output"] = _c_get("add string calc-output", 0) + acc * 1;
913 _["mount element by id"] = _c_get("mount element by id", 0) + acc * 1;
914 return true
915
916 if _["Clear"] > 0:
917
918 var acc = _c_get("Clear", 0)
919 _["Clear"] = max(_c_get("Clear", 0) - acc, 0);
920 _["add string Clear"] = _c_get("add string Clear", 0) + acc * 1;
921 _["on log"] = _c_get("on log", 0) + acc * 1;
922 return true
923
924 if _["on log"] > 0:
925
926 var acc = _c_get("on log", 0)
927 _["on log"] = max(_c_get("on log", 0) - acc, 0);
928 _["@on log"] = _c_get("@on log", 0) + acc * 1;
929 return true
930
931 if _["add char"] > 0:
932
933 var acc = _c_get("add char", 0)
934 _["add char"] = max(_c_get("add char", 0) - acc, 0);
935 _["string append"] = _c_get("string append", 0) + acc * 1;
936 _["ac.1"] = _c_get("ac.1", 0) + acc * 1;
937 _["display acc"] = _c_get("display acc", 0) + acc * 1;
938 return true
939
940 if _["ac.1"] > 0:
941
942 var acc = _c_get("ac.1", 0)
943 _["ac.1"] = max(_c_get("ac.1", 0) - acc, 0);
944 _["set slot acc"] = _c_get("set slot acc", 0) + acc * 1;
945 return true
946
947 if _["display acc"] > 0:
948
949 var acc = _c_get("display acc", 0)
950 _["display acc"] = max(_c_get("display acc", 0) - acc, 0);
951 _["dc.1"] = _c_get("dc.1", 0) + acc * 1;
952 return true
953
954 if _["dc.1"] > 0:
955
956 var acc = _c_get("dc.1", 0)
957 _["dc.1"] = max(_c_get("dc.1", 0) - acc, 0);
958 _["dc.2"] = _c_get("dc.2", 0) + acc * 1;
959 _["clear element content"] = _c_get("clear element content", 0) + acc * 1;
960 return true
961
962 if _["dc.2"] > 0:
963
964 var acc = _c_get("dc.2", 0)
965 _["dc.2"] = max(_c_get("dc.2", 0) - acc, 0);
966 _["dc.3"] = _c_get("dc.3", 0) + acc * 1;
967 _["fetch slot acc"] = _c_get("fetch slot acc", 0) + acc * 1;
968 return true
969
970 if _["dc.3"] > 0:
971
972 var acc = _c_get("dc.3", 0)
973 _["dc.3"] = max(_c_get("dc.3", 0) - acc, 0);
974 _["@append string to element"] = _c_get("@append string to element", 0) + acc * 1;
975 return true
976
977 if _["Number Button Pressed"] > 0:
978
979 var acc = _c_get("Number Button Pressed", 0)
980 _["Number Button Pressed"] = max(_c_get("Number Button Pressed", 0) - acc, 0);
981 _["mount to output"] = _c_get("mount to output", 0) + acc * 1;
982 _["fetch slot acc"] = _c_get("fetch slot acc", 0) + acc * 1;
983 _["get button char"] = _c_get("get button char", 0) + acc * 1;
984 _["Finish Number Button Press"] = _c_get("Finish Number Button Press", 0) + acc * 1;
985 return true
986
987 if _["get button char"] > 0 and _["b0"] > 0:
988
989 var acc = huge
990 acc = min(acc, _c_get("get button char", 0)
991 acc = min(acc, _c_get("b0", 0)
992 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
993 _["b0"] = max(_c_get("b0", 0) - acc, 0);
994 _["add string 0"] = _c_get("add string 0", 0) + acc * 1;
995 return true
996
997 if _["get button char"] > 0 and _["b1"] > 0:
998
999 var acc = huge
1000 acc = min(acc, _c_get("get button char", 0)
1001 acc = min(acc, _c_get("b1", 0)
1002 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1003 _["b1"] = max(_c_get("b1", 0) - acc, 0);
1004 _["add string 1"] = _c_get("add string 1", 0) + acc * 1;
1005 return true
1006
1007 if _["get button char"] > 0 and _["b2"] > 0:
1008
1009 var acc = huge
1010 acc = min(acc, _c_get("get button char", 0)
1011 acc = min(acc, _c_get("b2", 0)
1012 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1013 _["b2"] = max(_c_get("b2", 0) - acc, 0);
1014 _["add string 2"] = _c_get("add string 2", 0) + acc * 1;
1015 return true
1016
1017 if _["get button char"] > 0 and _["b3"] > 0:
1018
1019 var acc = huge
1020 acc = min(acc, _c_get("get button char", 0)
1021 acc = min(acc, _c_get("b3", 0)
1022 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1023 _["b3"] = max(_c_get("b3", 0) - acc, 0);
1024 _["add string 3"] = _c_get("add string 3", 0) + acc * 1;
1025 return true
1026
1027 if _["get button char"] > 0 and _["b4"] > 0:
1028
1029 var acc = huge
1030 acc = min(acc, _c_get("get button char", 0)
1031 acc = min(acc, _c_get("b4", 0)
1032 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1033 _["b4"] = max(_c_get("b4", 0) - acc, 0);
1034 _["add string 4"] = _c_get("add string 4", 0) + acc * 1;
1035 return true
1036
1037 if _["get button char"] > 0 and _["b5"] > 0:
1038
1039 var acc = huge
1040 acc = min(acc, _c_get("get button char", 0)
1041 acc = min(acc, _c_get("b5", 0)
1042 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1043 _["b5"] = max(_c_get("b5", 0) - acc, 0);
1044 _["add string 5"] = _c_get("add string 5", 0) + acc * 1;
1045 return true
1046
1047 if _["get button char"] > 0 and _["b6"] > 0:
1048
1049 var acc = huge
1050 acc = min(acc, _c_get("get button char", 0)
1051 acc = min(acc, _c_get("b6", 0)
1052 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1053 _["b6"] = max(_c_get("b6", 0) - acc, 0);
1054 _["add string 6"] = _c_get("add string 6", 0) + acc * 1;
1055 return true
1056
1057 if _["get button char"] > 0 and _["b7"] > 0:
1058
1059 var acc = huge
1060 acc = min(acc, _c_get("get button char", 0)
1061 acc = min(acc, _c_get("b7", 0)
1062 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1063 _["b7"] = max(_c_get("b7", 0) - acc, 0);
1064 _["add string 7"] = _c_get("add string 7", 0) + acc * 1;
1065 return true
1066
1067 if _["get button char"] > 0 and _["b8"] > 0:
1068
1069 var acc = huge
1070 acc = min(acc, _c_get("get button char", 0)
1071 acc = min(acc, _c_get("b8", 0)
1072 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1073 _["b8"] = max(_c_get("b8", 0) - acc, 0);
1074 _["add string 8"] = _c_get("add string 8", 0) + acc * 1;
1075 return true
1076
1077 if _["get button char"] > 0 and _["b9"] > 0:
1078
1079 var acc = huge
1080 acc = min(acc, _c_get("get button char", 0)
1081 acc = min(acc, _c_get("b9", 0)
1082 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1083 _["b9"] = max(_c_get("b9", 0) - acc, 0);
1084 _["add string 9"] = _c_get("add string 9", 0) + acc * 1;
1085 return true
1086
1087 if _["get button char"] > 0 and _["b."] > 0:
1088
1089 var acc = huge
1090 acc = min(acc, _c_get("get button char", 0)
1091 acc = min(acc, _c_get("b.", 0)
1092 _["get button char"] = max(_c_get("get button char", 0) - acc, 0);
1093 _["b."] = max(_c_get("b.", 0) - acc, 0);
1094 _["add string ."] = _c_get("add string .", 0) + acc * 1;
1095 return true
1096
1097 if _["Finish Number Button Press"] > 0:
1098
1099 var acc = _c_get("Finish Number Button Press", 0)
1100 _["Finish Number Button Press"] = max(_c_get("Finish Number Button Press", 0) - acc, 0);
1101 _["add char"] = _c_get("add char", 0) + acc * 1;
1102 return true
1103
1104 if _["Press 0"] > 0:
1105
1106 var acc = _c_get("Press 0", 0)
1107 _["Press 0"] = max(_c_get("Press 0", 0) - acc, 0);
1108 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1109 _["b0"] = _c_get("b0", 0) + acc * 1;
1110 return true
1111
1112 if _["Press 1"] > 0:
1113
1114 var acc = _c_get("Press 1", 0)
1115 _["Press 1"] = max(_c_get("Press 1", 0) - acc, 0);
1116 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1117 _["b1"] = _c_get("b1", 0) + acc * 1;
1118 return true
1119
1120 if _["Press 2"] > 0:
1121
1122 var acc = _c_get("Press 2", 0)
1123 _["Press 2"] = max(_c_get("Press 2", 0) - acc, 0);
1124 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1125 _["b2"] = _c_get("b2", 0) + acc * 1;
1126 return true
1127
1128 if _["Press 3"] > 0:
1129
1130 var acc = _c_get("Press 3", 0)
1131 _["Press 3"] = max(_c_get("Press 3", 0) - acc, 0);
1132 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1133 _["b3"] = _c_get("b3", 0) + acc * 1;
1134 return true
1135
1136 if _["Press 4"] > 0:
1137
1138 var acc = _c_get("Press 4", 0)
1139 _["Press 4"] = max(_c_get("Press 4", 0) - acc, 0);
1140 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1141 _["b4"] = _c_get("b4", 0) + acc * 1;
1142 return true
1143
1144 if _["Press 5"] > 0:
1145
1146 var acc = _c_get("Press 5", 0)
1147 _["Press 5"] = max(_c_get("Press 5", 0) - acc, 0);
1148 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1149 _["b5"] = _c_get("b5", 0) + acc * 1;
1150 return true
1151
1152 if _["Press 6"] > 0:
1153
1154 var acc = _c_get("Press 6", 0)
1155 _["Press 6"] = max(_c_get("Press 6", 0) - acc, 0);
1156 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1157 _["b6"] = _c_get("b6", 0) + acc * 1;
1158 return true
1159
1160 if _["Press 7"] > 0:
1161
1162 var acc = _c_get("Press 7", 0)
1163 _["Press 7"] = max(_c_get("Press 7", 0) - acc, 0);
1164 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1165 _["b7"] = _c_get("b7", 0) + acc * 1;
1166 return true
1167
1168 if _["Press 8"] > 0:
1169
1170 var acc = _c_get("Press 8", 0)
1171 _["Press 8"] = max(_c_get("Press 8", 0) - acc, 0);
1172 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1173 _["b8"] = _c_get("b8", 0) + acc * 1;
1174 return true
1175
1176 if _["Press 9"] > 0:
1177
1178 var acc = _c_get("Press 9", 0)
1179 _["Press 9"] = max(_c_get("Press 9", 0) - acc, 0);
1180 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1181 _["b9"] = _c_get("b9", 0) + acc * 1;
1182 return true
1183
1184 if _["Press Dot"] > 0:
1185
1186 var acc = _c_get("Press Dot", 0)
1187 _["Press Dot"] = max(_c_get("Press Dot", 0) - acc, 0);
1188 _["Number Button Pressed"] = _c_get("Number Button Pressed", 0) + acc * 1;
1189 _["b."] = _c_get("b.", 0) + acc * 1;
1190 return true
1191
1192 return false
1193func run():
1194 while match():
1195 pass
1196
1197func log_state():
1198 print(counters)
1199
html_calc.nv 原始文件 Playground
1| # meta code status | Untested, uncompiled
2| #include, strings.nv, slots.nv, DOM.nv |
3
4| #strings, br, app, button, calc-output, div,
5AC, All Clear, C, Clear,
60,9,8,7,6,5,4,3,2,1,
7+,/,*,-,.,=,
8,Press 7, Press 8, Press 9, Press Divide
9,Press 4, Press 5, Press 6, Press Multiply
10,Press 1, Press 2, Press 3, Press Subtract
11,Press 0, Press Dot, Press Equal, Press Add
12|
13
14| #slots, DOM id, inner content, vera event, num A, num B, acc, mem |
15
16| #port, on log string, needs, @on log |
17| #port body, on log string, js | [=[
18 let toLog = self.state.strings.shift();
19 console.log(toLog);
20 let logElem = document.querySelector("#log");
21 logElem.append(toLog);
22 logElem.append(document.createElement("br"));
23]=]
24
25| #port, on clear log, needs, @clear log |
26| #port body, on clear log, js |
27 document.querySelector("#log").innerHTML = "";
28
29| #port, on reset ui, needs, @reset ui |
30| #port body, on reset ui, js |
31 if (self.state.appElem) {
32 appElem.innerHTML = "";
33 }
34
35
36|| ui init
37
38| ui init |
39 @reset ui,
40 add string app, mount element by id,
41 create display label,
42 create buttons,
43 mount to output,
44
45| create button |
46 set slot inner content,
47 set slot vera event,
48 create button.2
49
50| create button.2 |
51 add string button, create element
52
53| next row |
54 add string br, create element
55
56| create element | @create element
57| mount element by id | @mount element by id
58
59| create display label |
60 add string calc-output, set DOM id, create display label.2,
61| set DOM id | set slot DOM id
62| create display label.2 |
63 add string div, create element, finish label row
64
65| finish label row | next row
66
67| create buttons |
68 create AC C row,
69 create 7 8 9 / row,
70 create 4 5 6 * row,
71 create 1 2 3 - row,
72 create 0 . = +
73
74| create AC C row | create AC button, create C button
75| create AC button | add string AC, add string All Clear, create button
76| create C button | add string C, add string Clear, create button, ACC finish
77|ACC finish| next row
78
79| create 7 8 9 / row | add button 7, add button 8, add button 9, add button /
80| add button 7 | add string 7, add string Press 7, create button
81| add button 8 | add string 8, add string Press 8, create button
82| add button 9 | add string 9, add string Press 9, create button
83| add button / | add string /, add string Press Divide, create button, 789 Finish
84|789 Finish| next row
85
86
87| create 4 5 6 * row | add button 4, add button 5, add button 6, add button *
88| add button 4 | add string 4, add string Press 4, create button
89| add button 5 | add string 5, add string Press 5, create button
90| add button 6 | add string 6, add string Press 6, create button,
91| add button * | add string *, add string Press Multiply, create button, 456 Finish
92|456 Finish| next row
93
94| create 1 2 3 - row | add button 1, add button 2, add button 3, add button -
95
96| add button 1 | add string 1, add string Press 1, create button
97| add button 2 | add string 2, add string Press 2, create button
98| add button 3 | add string 3, add string Press 3, create button
99| add button - | add string -, add string Press Subtract, create button, 123 Finish
100|123 Finish| next row
101
102
103| create 0 . = + | add button 0, add button ., add button =, add button +
104| add button 0 | add string 0, add string Press 0, create button
105| add button . | add string ., add string Press Dot, create button
106| add button = | add string =, add string Press Equal, create button
107| add button + | add string +, add string Press Add, create button
108
109| mount to output | add string calc-output, mount element by id
110
111| Clear | add string Clear, on log
112
113| on log | @on log
114
115| add char | string append, ac.1, display acc
116| ac.1 | set slot acc
117
118| display acc | dc.1
119| dc.1 | dc.2, clear element content
120| dc.2 | dc.3, fetch slot acc
121| dc.3 | @append string to element
122
123| Number Button Pressed | mount to output, fetch slot acc, get button char, Finish Number Button Press
124| get button char, b0 | add string 0
125| get button char, b1 | add string 1
126| get button char, b2 | add string 2
127| get button char, b3 | add string 3
128| get button char, b4 | add string 4
129| get button char, b5 | add string 5
130| get button char, b6 | add string 6
131| get button char, b7 | add string 7
132| get button char, b8 | add string 8
133| get button char, b9 | add string 9
134| get button char, b. | add string .
135| Finish Number Button Press | add char
136
137| Press 0 | Number Button Pressed, b0
138| Press 1 | Number Button Pressed, b1
139| Press 2 | Number Button Pressed, b2
140| Press 3 | Number Button Pressed, b3
141| Press 4 | Number Button Pressed, b4
142| Press 5 | Number Button Pressed, b5
143| Press 6 | Number Button Pressed, b6
144| Press 7 | Number Button Pressed, b7
145| Press 8 | Number Button Pressed, b8
146| Press 9 | Number Button Pressed, b9
147| Press Dot | Number Button Pressed, b.
148
html_calc.nv.js 原始文件 Playground
1return function() {
2 let min = Math.min; var max = Math.max; var huge = Number.MAX_SAFE_INTEGER;
3 let self = { state: { strings: [], slots: {} } };
4
5 self.string_constants = ["br", "app", "button", "calc-output", "div", "AC", "All Clear", "C", "Clear", "0", "9", "8", "7", "6", "5", "4", "3", "2", "1", "+", "/", "*", "-", ".", "=", "Press 7", "Press 8", "Press 9", "Press Divide", "Press 4", "Press 5", "Press 6", "Press Multiply", "Press 1", "Press 2", "Press 3", "Press Subtract", "Press 0", "Press Dot", "Press Equal", "Press Add", ];
6
7
8 self.counters = {
9 "ui init": 1,
10 }
11
12 self.on_log_string = function(counters) {
13
14 let toLog = self.state.strings.shift();
15 console.log(toLog);
16 let logElem = document.querySelector("#log");
17 logElem.append(toLog);
18 logElem.append(document.createElement("br"));
19
20 }
21
22 self.on_clear_log = function(counters) {
23 document.querySelector("#log").innerHTML = "";
24 }
25
26 self.on_reset_ui = function(counters) {
27 if (self.state.appElem) { appElem.innerHTML = ""; }
28 }
29 self.set_slot_DOM_id = function() {
30 self.state.slots["DOM id"] = self.state.strings.shift();
31 }
32
33 self.fetch_slot_DOM_id = function() {
34 self.state.strings.push(self.state.slots["DOM id"]);
35 }
36
37 self.set_slot_inner_content = function() {
38 self.state.slots["inner content"] = self.state.strings.shift();
39 }
40
41 self.fetch_slot_inner_content = function() {
42 self.state.strings.push(self.state.slots["inner content"]);
43 }
44
45 self.set_slot_vera_event = function() {
46 self.state.slots["vera event"] = self.state.strings.shift();
47 }
48
49 self.fetch_slot_vera_event = function() {
50 self.state.strings.push(self.state.slots["vera event"]);
51 }
52
53 self.set_slot_num_A = function() {
54 self.state.slots["num A"] = self.state.strings.shift();
55 }
56
57 self.fetch_slot_num_A = function() {
58 self.state.strings.push(self.state.slots["num A"]);
59 }
60
61 self.set_slot_num_B = function() {
62 self.state.slots["num B"] = self.state.strings.shift();
63 }
64
65 self.fetch_slot_num_B = function() {
66 self.state.strings.push(self.state.slots["num B"]);
67 }
68
69 self.set_slot_acc = function() {
70 self.state.slots["acc"] = self.state.strings.shift();
71 }
72
73 self.fetch_slot_acc = function() {
74 self.state.strings.push(self.state.slots["acc"]);
75 }
76
77 self.set_slot_mem = function() {
78 self.state.slots["mem"] = self.state.strings.shift();
79 }
80
81 self.fetch_slot_mem = function() {
82 self.state.strings.push(self.state.slots["mem"]);
83 }
84
85
86 function match(self, counters) {
87
88 console.log(Object.entries(counters).filter(([,v])=>v>0).map(([k,v]) => `${k} :: ${v}`).join('\n') );
89 console.log(self.state.strings);
90 console.log(self.state.slots);
91 if (counters["push string"] > 0) {
92 self.state.strings.push(self.string_constants[counters["push string"]-1]);
93 counters["push string"] = 0;
94 return true;
95 }
96
97 if /**/ (counters["set slot DOM id"] > 0 && counters["nostub"] > 0) {
98 self.set_slot_DOM_id(counters);
99
100 counters["set slot DOM id"] = 0,
101 counters["nostub"] = 0
102 return true;
103 }
104 if /**/ (counters["fetch slot DOM id"] > 0 && counters["nostub"] > 0) {
105 self.fetch_slot_DOM_id(counters);
106
107 counters["fetch slot DOM id"] = 0,
108 counters["nostub"] = 0
109 return true;
110 }
111 if /**/ (counters["set slot inner content"] > 0 && counters["nostub"] > 0) {
112 self.set_slot_inner_content(counters);
113
114 counters["set slot inner content"] = 0,
115 counters["nostub"] = 0
116 return true;
117 }
118 if /**/ (counters["fetch slot inner content"] > 0 && counters["nostub"] > 0) {
119 self.fetch_slot_inner_content(counters);
120
121 counters["fetch slot inner content"] = 0,
122 counters["nostub"] = 0
123 return true;
124 }
125 if /**/ (counters["set slot vera event"] > 0 && counters["nostub"] > 0) {
126 self.set_slot_vera_event(counters);
127
128 counters["set slot vera event"] = 0,
129 counters["nostub"] = 0
130 return true;
131 }
132 if /**/ (counters["fetch slot vera event"] > 0 && counters["nostub"] > 0) {
133 self.fetch_slot_vera_event(counters);
134
135 counters["fetch slot vera event"] = 0,
136 counters["nostub"] = 0
137 return true;
138 }
139 if /**/ (counters["set slot num A"] > 0 && counters["nostub"] > 0) {
140 self.set_slot_num_A(counters);
141
142 counters["set slot num A"] = 0,
143 counters["nostub"] = 0
144 return true;
145 }
146 if /**/ (counters["fetch slot num A"] > 0 && counters["nostub"] > 0) {
147 self.fetch_slot_num_A(counters);
148
149 counters["fetch slot num A"] = 0,
150 counters["nostub"] = 0
151 return true;
152 }
153 if /**/ (counters["set slot num B"] > 0 && counters["nostub"] > 0) {
154 self.set_slot_num_B(counters);
155
156 counters["set slot num B"] = 0,
157 counters["nostub"] = 0
158 return true;
159 }
160 if /**/ (counters["fetch slot num B"] > 0 && counters["nostub"] > 0) {
161 self.fetch_slot_num_B(counters);
162
163 counters["fetch slot num B"] = 0,
164 counters["nostub"] = 0
165 return true;
166 }
167 if /**/ (counters["set slot acc"] > 0 && counters["nostub"] > 0) {
168 self.set_slot_acc(counters);
169
170 counters["set slot acc"] = 0,
171 counters["nostub"] = 0
172 return true;
173 }
174 if /**/ (counters["fetch slot acc"] > 0 && counters["nostub"] > 0) {
175 self.fetch_slot_acc(counters);
176
177 counters["fetch slot acc"] = 0,
178 counters["nostub"] = 0
179 return true;
180 }
181 if /**/ (counters["set slot mem"] > 0 && counters["nostub"] > 0) {
182 self.set_slot_mem(counters);
183
184 counters["set slot mem"] = 0,
185 counters["nostub"] = 0
186 return true;
187 }
188 if /**/ (counters["fetch slot mem"] > 0 && counters["nostub"] > 0) {
189 self.fetch_slot_mem(counters);
190
191 counters["fetch slot mem"] = 0,
192 counters["nostub"] = 0
193 return true;
194 }
195 if /**/ (counters["@on log"] > 0) {
196 self.on_log_string(counters);
197
198 counters["@on log"] = 0
199 return true;
200 }
201 if /**/ (counters["@clear log"] > 0) {
202 self.on_clear_log(counters);
203
204 counters["@clear log"] = 0
205 return true;
206 }
207 if /**/ (counters["@reset ui"] > 0) {
208 self.on_reset_ui(counters);
209
210 counters["@reset ui"] = 0
211 return true;
212 }
213 if (counters["# meta code status"] > 0) {
214 let acc = counters["# meta code status"] || 0;
215 counters["# meta code status"] = max((counters["# meta code status"] || 0) - acc, 0);
216 counters["Untested"] = (counters["Untested"] || 0) + acc * 1;
217 counters["uncompiled"] = (counters["uncompiled"] || 0) + acc * 1;
218 return true;
219 }
220 if (counters["#include"] > 0 && counters["strings.nv"] > 0 && counters["slots.nv"] > 0 && counters["DOM.nv"] > 0) {
221 let acc = huge;
222 acc = min(acc, counters["#include"] || 0);
223 acc = min(acc, counters["strings.nv"] || 0);
224 acc = min(acc, counters["slots.nv"] || 0);
225 acc = min(acc, counters["DOM.nv"] || 0);
226 counters["#include"] = max((counters["#include"] || 0) - acc, 0);
227 counters["strings.nv"] = max((counters["strings.nv"] || 0) - acc, 0);
228 counters["slots.nv"] = max((counters["slots.nv"] || 0) - acc, 0);
229 counters["DOM.nv"] = max((counters["DOM.nv"] || 0) - acc, 0);
230 return true;
231 }
232 if (counters["add string br"] > 0) {
233 let acc = counters["add string br"] || 0;
234 counters["add string br"] = max((counters["add string br"] || 0) - acc, 0);
235 counters["push string"] = (counters["push string"] || 0) + acc * 1;
236 return true;
237 }
238 if (counters["add string app"] > 0) {
239 let acc = counters["add string app"] || 0;
240 counters["add string app"] = max((counters["add string app"] || 0) - acc, 0);
241 counters["push string"] = (counters["push string"] || 0) + acc * 2;
242 return true;
243 }
244 if (counters["add string button"] > 0) {
245 let acc = counters["add string button"] || 0;
246 counters["add string button"] = max((counters["add string button"] || 0) - acc, 0);
247 counters["push string"] = (counters["push string"] || 0) + acc * 3;
248 return true;
249 }
250 if (counters["add string calc-output"] > 0) {
251 let acc = counters["add string calc-output"] || 0;
252 counters["add string calc-output"] = max((counters["add string calc-output"] || 0) - acc, 0);
253 counters["push string"] = (counters["push string"] || 0) + acc * 4;
254 return true;
255 }
256 if (counters["add string div"] > 0) {
257 let acc = counters["add string div"] || 0;
258 counters["add string div"] = max((counters["add string div"] || 0) - acc, 0);
259 counters["push string"] = (counters["push string"] || 0) + acc * 5;
260 return true;
261 }
262 if (counters["add string AC"] > 0) {
263 let acc = counters["add string AC"] || 0;
264 counters["add string AC"] = max((counters["add string AC"] || 0) - acc, 0);
265 counters["push string"] = (counters["push string"] || 0) + acc * 6;
266 return true;
267 }
268 if (counters["add string All Clear"] > 0) {
269 let acc = counters["add string All Clear"] || 0;
270 counters["add string All Clear"] = max((counters["add string All Clear"] || 0) - acc, 0);
271 counters["push string"] = (counters["push string"] || 0) + acc * 7;
272 return true;
273 }
274 if (counters["add string C"] > 0) {
275 let acc = counters["add string C"] || 0;
276 counters["add string C"] = max((counters["add string C"] || 0) - acc, 0);
277 counters["push string"] = (counters["push string"] || 0) + acc * 8;
278 return true;
279 }
280 if (counters["add string Clear"] > 0) {
281 let acc = counters["add string Clear"] || 0;
282 counters["add string Clear"] = max((counters["add string Clear"] || 0) - acc, 0);
283 counters["push string"] = (counters["push string"] || 0) + acc * 9;
284 return true;
285 }
286 if (counters["add string 0"] > 0) {
287 let acc = counters["add string 0"] || 0;
288 counters["add string 0"] = max((counters["add string 0"] || 0) - acc, 0);
289 counters["push string"] = (counters["push string"] || 0) + acc * 10;
290 return true;
291 }
292 if (counters["add string 9"] > 0) {
293 let acc = counters["add string 9"] || 0;
294 counters["add string 9"] = max((counters["add string 9"] || 0) - acc, 0);
295 counters["push string"] = (counters["push string"] || 0) + acc * 11;
296 return true;
297 }
298 if (counters["add string 8"] > 0) {
299 let acc = counters["add string 8"] || 0;
300 counters["add string 8"] = max((counters["add string 8"] || 0) - acc, 0);
301 counters["push string"] = (counters["push string"] || 0) + acc * 12;
302 return true;
303 }
304 if (counters["add string 7"] > 0) {
305 let acc = counters["add string 7"] || 0;
306 counters["add string 7"] = max((counters["add string 7"] || 0) - acc, 0);
307 counters["push string"] = (counters["push string"] || 0) + acc * 13;
308 return true;
309 }
310 if (counters["add string 6"] > 0) {
311 let acc = counters["add string 6"] || 0;
312 counters["add string 6"] = max((counters["add string 6"] || 0) - acc, 0);
313 counters["push string"] = (counters["push string"] || 0) + acc * 14;
314 return true;
315 }
316 if (counters["add string 5"] > 0) {
317 let acc = counters["add string 5"] || 0;
318 counters["add string 5"] = max((counters["add string 5"] || 0) - acc, 0);
319 counters["push string"] = (counters["push string"] || 0) + acc * 15;
320 return true;
321 }
322 if (counters["add string 4"] > 0) {
323 let acc = counters["add string 4"] || 0;
324 counters["add string 4"] = max((counters["add string 4"] || 0) - acc, 0);
325 counters["push string"] = (counters["push string"] || 0) + acc * 16;
326 return true;
327 }
328 if (counters["add string 3"] > 0) {
329 let acc = counters["add string 3"] || 0;
330 counters["add string 3"] = max((counters["add string 3"] || 0) - acc, 0);
331 counters["push string"] = (counters["push string"] || 0) + acc * 17;
332 return true;
333 }
334 if (counters["add string 2"] > 0) {
335 let acc = counters["add string 2"] || 0;
336 counters["add string 2"] = max((counters["add string 2"] || 0) - acc, 0);
337 counters["push string"] = (counters["push string"] || 0) + acc * 18;
338 return true;
339 }
340 if (counters["add string 1"] > 0) {
341 let acc = counters["add string 1"] || 0;
342 counters["add string 1"] = max((counters["add string 1"] || 0) - acc, 0);
343 counters["push string"] = (counters["push string"] || 0) + acc * 19;
344 return true;
345 }
346 if (counters["add string +"] > 0) {
347 let acc = counters["add string +"] || 0;
348 counters["add string +"] = max((counters["add string +"] || 0) - acc, 0);
349 counters["push string"] = (counters["push string"] || 0) + acc * 20;
350 return true;
351 }
352 if (counters["add string /"] > 0) {
353 let acc = counters["add string /"] || 0;
354 counters["add string /"] = max((counters["add string /"] || 0) - acc, 0);
355 counters["push string"] = (counters["push string"] || 0) + acc * 21;
356 return true;
357 }
358 if (counters["add string *"] > 0) {
359 let acc = counters["add string *"] || 0;
360 counters["add string *"] = max((counters["add string *"] || 0) - acc, 0);
361 counters["push string"] = (counters["push string"] || 0) + acc * 22;
362 return true;
363 }
364 if (counters["add string -"] > 0) {
365 let acc = counters["add string -"] || 0;
366 counters["add string -"] = max((counters["add string -"] || 0) - acc, 0);
367 counters["push string"] = (counters["push string"] || 0) + acc * 23;
368 return true;
369 }
370 if (counters["add string ."] > 0) {
371 let acc = counters["add string ."] || 0;
372 counters["add string ."] = max((counters["add string ."] || 0) - acc, 0);
373 counters["push string"] = (counters["push string"] || 0) + acc * 24;
374 return true;
375 }
376 if (counters["add string ="] > 0) {
377 let acc = counters["add string ="] || 0;
378 counters["add string ="] = max((counters["add string ="] || 0) - acc, 0);
379 counters["push string"] = (counters["push string"] || 0) + acc * 25;
380 return true;
381 }
382 if (counters["add string Press 7"] > 0) {
383 let acc = counters["add string Press 7"] || 0;
384 counters["add string Press 7"] = max((counters["add string Press 7"] || 0) - acc, 0);
385 counters["push string"] = (counters["push string"] || 0) + acc * 26;
386 return true;
387 }
388 if (counters["add string Press 8"] > 0) {
389 let acc = counters["add string Press 8"] || 0;
390 counters["add string Press 8"] = max((counters["add string Press 8"] || 0) - acc, 0);
391 counters["push string"] = (counters["push string"] || 0) + acc * 27;
392 return true;
393 }
394 if (counters["add string Press 9"] > 0) {
395 let acc = counters["add string Press 9"] || 0;
396 counters["add string Press 9"] = max((counters["add string Press 9"] || 0) - acc, 0);
397 counters["push string"] = (counters["push string"] || 0) + acc * 28;
398 return true;
399 }
400 if (counters["add string Press Divide"] > 0) {
401 let acc = counters["add string Press Divide"] || 0;
402 counters["add string Press Divide"] = max((counters["add string Press Divide"] || 0) - acc, 0);
403 counters["push string"] = (counters["push string"] || 0) + acc * 29;
404 return true;
405 }
406 if (counters["add string Press 4"] > 0) {
407 let acc = counters["add string Press 4"] || 0;
408 counters["add string Press 4"] = max((counters["add string Press 4"] || 0) - acc, 0);
409 counters["push string"] = (counters["push string"] || 0) + acc * 30;
410 return true;
411 }
412 if (counters["add string Press 5"] > 0) {
413 let acc = counters["add string Press 5"] || 0;
414 counters["add string Press 5"] = max((counters["add string Press 5"] || 0) - acc, 0);
415 counters["push string"] = (counters["push string"] || 0) + acc * 31;
416 return true;
417 }
418 if (counters["add string Press 6"] > 0) {
419 let acc = counters["add string Press 6"] || 0;
420 counters["add string Press 6"] = max((counters["add string Press 6"] || 0) - acc, 0);
421 counters["push string"] = (counters["push string"] || 0) + acc * 32;
422 return true;
423 }
424 if (counters["add string Press Multiply"] > 0) {
425 let acc = counters["add string Press Multiply"] || 0;
426 counters["add string Press Multiply"] = max((counters["add string Press Multiply"] || 0) - acc, 0);
427 counters["push string"] = (counters["push string"] || 0) + acc * 33;
428 return true;
429 }
430 if (counters["add string Press 1"] > 0) {
431 let acc = counters["add string Press 1"] || 0;
432 counters["add string Press 1"] = max((counters["add string Press 1"] || 0) - acc, 0);
433 counters["push string"] = (counters["push string"] || 0) + acc * 34;
434 return true;
435 }
436 if (counters["add string Press 2"] > 0) {
437 let acc = counters["add string Press 2"] || 0;
438 counters["add string Press 2"] = max((counters["add string Press 2"] || 0) - acc, 0);
439 counters["push string"] = (counters["push string"] || 0) + acc * 35;
440 return true;
441 }
442 if (counters["add string Press 3"] > 0) {
443 let acc = counters["add string Press 3"] || 0;
444 counters["add string Press 3"] = max((counters["add string Press 3"] || 0) - acc, 0);
445 counters["push string"] = (counters["push string"] || 0) + acc * 36;
446 return true;
447 }
448 if (counters["add string Press Subtract"] > 0) {
449 let acc = counters["add string Press Subtract"] || 0;
450 counters["add string Press Subtract"] = max((counters["add string Press Subtract"] || 0) - acc, 0);
451 counters["push string"] = (counters["push string"] || 0) + acc * 37;
452 return true;
453 }
454 if (counters["add string Press 0"] > 0) {
455 let acc = counters["add string Press 0"] || 0;
456 counters["add string Press 0"] = max((counters["add string Press 0"] || 0) - acc, 0);
457 counters["push string"] = (counters["push string"] || 0) + acc * 38;
458 return true;
459 }
460 if (counters["add string Press Dot"] > 0) {
461 let acc = counters["add string Press Dot"] || 0;
462 counters["add string Press Dot"] = max((counters["add string Press Dot"] || 0) - acc, 0);
463 counters["push string"] = (counters["push string"] || 0) + acc * 39;
464 return true;
465 }
466 if (counters["add string Press Equal"] > 0) {
467 let acc = counters["add string Press Equal"] || 0;
468 counters["add string Press Equal"] = max((counters["add string Press Equal"] || 0) - acc, 0);
469 counters["push string"] = (counters["push string"] || 0) + acc * 40;
470 return true;
471 }
472 if (counters["add string Press Add"] > 0) {
473 let acc = counters["add string Press Add"] || 0;
474 counters["add string Press Add"] = max((counters["add string Press Add"] || 0) - acc, 0);
475 counters["push string"] = (counters["push string"] || 0) + acc * 41;
476 return true;
477 }
478 if (counters["ui init"] > 0) {
479 let acc = counters["ui init"] || 0;
480 counters["ui init"] = max((counters["ui init"] || 0) - acc, 0);
481 counters["@reset ui"] = (counters["@reset ui"] || 0) + acc * 1;
482 counters["add string app"] = (counters["add string app"] || 0) + acc * 1;
483 counters["mount element by id"] = (counters["mount element by id"] || 0) + acc * 1;
484 counters["create display label"] = (counters["create display label"] || 0) + acc * 1;
485 counters["create buttons"] = (counters["create buttons"] || 0) + acc * 1;
486 counters["mount to output"] = (counters["mount to output"] || 0) + acc * 1;
487 return true;
488 }
489 if (counters["create button"] > 0) {
490 let acc = counters["create button"] || 0;
491 counters["create button"] = max((counters["create button"] || 0) - acc, 0);
492 counters["set slot inner content"] = (counters["set slot inner content"] || 0) + acc * 1;
493 counters["set slot vera event"] = (counters["set slot vera event"] || 0) + acc * 1;
494 counters["create button.2"] = (counters["create button.2"] || 0) + acc * 1;
495 return true;
496 }
497 if (counters["create button.2"] > 0) {
498 let acc = counters["create button.2"] || 0;
499 counters["create button.2"] = max((counters["create button.2"] || 0) - acc, 0);
500 counters["add string button"] = (counters["add string button"] || 0) + acc * 1;
501 counters["create element"] = (counters["create element"] || 0) + acc * 1;
502 return true;
503 }
504 if (counters["next row"] > 0) {
505 let acc = counters["next row"] || 0;
506 counters["next row"] = max((counters["next row"] || 0) - acc, 0);
507 counters["add string br"] = (counters["add string br"] || 0) + acc * 1;
508 counters["create element"] = (counters["create element"] || 0) + acc * 1;
509 return true;
510 }
511 if (counters["create element"] > 0) {
512 let acc = counters["create element"] || 0;
513 counters["create element"] = max((counters["create element"] || 0) - acc, 0);
514 counters["@create element"] = (counters["@create element"] || 0) + acc * 1;
515 return true;
516 }
517 if (counters["mount element by id"] > 0) {
518 let acc = counters["mount element by id"] || 0;
519 counters["mount element by id"] = max((counters["mount element by id"] || 0) - acc, 0);
520 counters["@mount element by id"] = (counters["@mount element by id"] || 0) + acc * 1;
521 return true;
522 }
523 if (counters["create display label"] > 0) {
524 let acc = counters["create display label"] || 0;
525 counters["create display label"] = max((counters["create display label"] || 0) - acc, 0);
526 counters["add string calc-output"] = (counters["add string calc-output"] || 0) + acc * 1;
527 counters["set DOM id"] = (counters["set DOM id"] || 0) + acc * 1;
528 counters["create display label.2"] = (counters["create display label.2"] || 0) + acc * 1;
529 return true;
530 }
531 if (counters["set DOM id"] > 0) {
532 let acc = counters["set DOM id"] || 0;
533 counters["set DOM id"] = max((counters["set DOM id"] || 0) - acc, 0);
534 counters["set slot DOM id"] = (counters["set slot DOM id"] || 0) + acc * 1;
535 return true;
536 }
537 if (counters["create display label.2"] > 0) {
538 let acc = counters["create display label.2"] || 0;
539 counters["create display label.2"] = max((counters["create display label.2"] || 0) - acc, 0);
540 counters["add string div"] = (counters["add string div"] || 0) + acc * 1;
541 counters["create element"] = (counters["create element"] || 0) + acc * 1;
542 counters["finish label row"] = (counters["finish label row"] || 0) + acc * 1;
543 return true;
544 }
545 if (counters["finish label row"] > 0) {
546 let acc = counters["finish label row"] || 0;
547 counters["finish label row"] = max((counters["finish label row"] || 0) - acc, 0);
548 counters["next row"] = (counters["next row"] || 0) + acc * 1;
549 return true;
550 }
551 if (counters["create buttons"] > 0) {
552 let acc = counters["create buttons"] || 0;
553 counters["create buttons"] = max((counters["create buttons"] || 0) - acc, 0);
554 counters["create AC C row"] = (counters["create AC C row"] || 0) + acc * 1;
555 counters["create 7 8 9 / row"] = (counters["create 7 8 9 / row"] || 0) + acc * 1;
556 counters["create 4 5 6 * row"] = (counters["create 4 5 6 * row"] || 0) + acc * 1;
557 counters["create 1 2 3 - row"] = (counters["create 1 2 3 - row"] || 0) + acc * 1;
558 counters["create 0 . = +"] = (counters["create 0 . = +"] || 0) + acc * 1;
559 return true;
560 }
561 if (counters["create AC C row"] > 0) {
562 let acc = counters["create AC C row"] || 0;
563 counters["create AC C row"] = max((counters["create AC C row"] || 0) - acc, 0);
564 counters["create AC button"] = (counters["create AC button"] || 0) + acc * 1;
565 counters["create C button"] = (counters["create C button"] || 0) + acc * 1;
566 return true;
567 }
568 if (counters["create AC button"] > 0) {
569 let acc = counters["create AC button"] || 0;
570 counters["create AC button"] = max((counters["create AC button"] || 0) - acc, 0);
571 counters["add string AC"] = (counters["add string AC"] || 0) + acc * 1;
572 counters["add string All Clear"] = (counters["add string All Clear"] || 0) + acc * 1;
573 counters["create button"] = (counters["create button"] || 0) + acc * 1;
574 return true;
575 }
576 if (counters["create C button"] > 0) {
577 let acc = counters["create C button"] || 0;
578 counters["create C button"] = max((counters["create C button"] || 0) - acc, 0);
579 counters["add string C"] = (counters["add string C"] || 0) + acc * 1;
580 counters["add string Clear"] = (counters["add string Clear"] || 0) + acc * 1;
581 counters["create button"] = (counters["create button"] || 0) + acc * 1;
582 counters["ACC finish"] = (counters["ACC finish"] || 0) + acc * 1;
583 return true;
584 }
585 if (counters["ACC finish"] > 0) {
586 let acc = counters["ACC finish"] || 0;
587 counters["ACC finish"] = max((counters["ACC finish"] || 0) - acc, 0);
588 counters["next row"] = (counters["next row"] || 0) + acc * 1;
589 return true;
590 }
591 if (counters["create 7 8 9 / row"] > 0) {
592 let acc = counters["create 7 8 9 / row"] || 0;
593 counters["create 7 8 9 / row"] = max((counters["create 7 8 9 / row"] || 0) - acc, 0);
594 counters["add button 7"] = (counters["add button 7"] || 0) + acc * 1;
595 counters["add button 8"] = (counters["add button 8"] || 0) + acc * 1;
596 counters["add button 9"] = (counters["add button 9"] || 0) + acc * 1;
597 counters["add button /"] = (counters["add button /"] || 0) + acc * 1;
598 return true;
599 }
600 if (counters["add button 7"] > 0) {
601 let acc = counters["add button 7"] || 0;
602 counters["add button 7"] = max((counters["add button 7"] || 0) - acc, 0);
603 counters["add string 7"] = (counters["add string 7"] || 0) + acc * 1;
604 counters["add string Press 7"] = (counters["add string Press 7"] || 0) + acc * 1;
605 counters["create button"] = (counters["create button"] || 0) + acc * 1;
606 return true;
607 }
608 if (counters["add button 8"] > 0) {
609 let acc = counters["add button 8"] || 0;
610 counters["add button 8"] = max((counters["add button 8"] || 0) - acc, 0);
611 counters["add string 8"] = (counters["add string 8"] || 0) + acc * 1;
612 counters["add string Press 8"] = (counters["add string Press 8"] || 0) + acc * 1;
613 counters["create button"] = (counters["create button"] || 0) + acc * 1;
614 return true;
615 }
616 if (counters["add button 9"] > 0) {
617 let acc = counters["add button 9"] || 0;
618 counters["add button 9"] = max((counters["add button 9"] || 0) - acc, 0);
619 counters["add string 9"] = (counters["add string 9"] || 0) + acc * 1;
620 counters["add string Press 9"] = (counters["add string Press 9"] || 0) + acc * 1;
621 counters["create button"] = (counters["create button"] || 0) + acc * 1;
622 return true;
623 }
624 if (counters["add button /"] > 0) {
625 let acc = counters["add button /"] || 0;
626 counters["add button /"] = max((counters["add button /"] || 0) - acc, 0);
627 counters["add string /"] = (counters["add string /"] || 0) + acc * 1;
628 counters["add string Press Divide"] = (counters["add string Press Divide"] || 0) + acc * 1;
629 counters["create button"] = (counters["create button"] || 0) + acc * 1;
630 counters["789 Finish"] = (counters["789 Finish"] || 0) + acc * 1;
631 return true;
632 }
633 if (counters["789 Finish"] > 0) {
634 let acc = counters["789 Finish"] || 0;
635 counters["789 Finish"] = max((counters["789 Finish"] || 0) - acc, 0);
636 counters["next row"] = (counters["next row"] || 0) + acc * 1;
637 return true;
638 }
639 if (counters["create 4 5 6 * row"] > 0) {
640 let acc = counters["create 4 5 6 * row"] || 0;
641 counters["create 4 5 6 * row"] = max((counters["create 4 5 6 * row"] || 0) - acc, 0);
642 counters["add button 4"] = (counters["add button 4"] || 0) + acc * 1;
643 counters["add button 5"] = (counters["add button 5"] || 0) + acc * 1;
644 counters["add button 6"] = (counters["add button 6"] || 0) + acc * 1;
645 counters["add button *"] = (counters["add button *"] || 0) + acc * 1;
646 return true;
647 }
648 if (counters["add button 4"] > 0) {
649 let acc = counters["add button 4"] || 0;
650 counters["add button 4"] = max((counters["add button 4"] || 0) - acc, 0);
651 counters["add string 4"] = (counters["add string 4"] || 0) + acc * 1;
652 counters["add string Press 4"] = (counters["add string Press 4"] || 0) + acc * 1;
653 counters["create button"] = (counters["create button"] || 0) + acc * 1;
654 return true;
655 }
656 if (counters["add button 5"] > 0) {
657 let acc = counters["add button 5"] || 0;
658 counters["add button 5"] = max((counters["add button 5"] || 0) - acc, 0);
659 counters["add string 5"] = (counters["add string 5"] || 0) + acc * 1;
660 counters["add string Press 5"] = (counters["add string Press 5"] || 0) + acc * 1;
661 counters["create button"] = (counters["create button"] || 0) + acc * 1;
662 return true;
663 }
664 if (counters["add button 6"] > 0) {
665 let acc = counters["add button 6"] || 0;
666 counters["add button 6"] = max((counters["add button 6"] || 0) - acc, 0);
667 counters["add string 6"] = (counters["add string 6"] || 0) + acc * 1;
668 counters["add string Press 6"] = (counters["add string Press 6"] || 0) + acc * 1;
669 counters["create button"] = (counters["create button"] || 0) + acc * 1;
670 return true;
671 }
672 if (counters["add button *"] > 0) {
673 let acc = counters["add button *"] || 0;
674 counters["add button *"] = max((counters["add button *"] || 0) - acc, 0);
675 counters["add string *"] = (counters["add string *"] || 0) + acc * 1;
676 counters["add string Press Multiply"] = (counters["add string Press Multiply"] || 0) + acc * 1;
677 counters["create button"] = (counters["create button"] || 0) + acc * 1;
678 counters["456 Finish"] = (counters["456 Finish"] || 0) + acc * 1;
679 return true;
680 }
681 if (counters["456 Finish"] > 0) {
682 let acc = counters["456 Finish"] || 0;
683 counters["456 Finish"] = max((counters["456 Finish"] || 0) - acc, 0);
684 counters["next row"] = (counters["next row"] || 0) + acc * 1;
685 return true;
686 }
687 if (counters["create 1 2 3 - row"] > 0) {
688 let acc = counters["create 1 2 3 - row"] || 0;
689 counters["create 1 2 3 - row"] = max((counters["create 1 2 3 - row"] || 0) - acc, 0);
690 counters["add button 1"] = (counters["add button 1"] || 0) + acc * 1;
691 counters["add button 2"] = (counters["add button 2"] || 0) + acc * 1;
692 counters["add button 3"] = (counters["add button 3"] || 0) + acc * 1;
693 counters["add button -"] = (counters["add button -"] || 0) + acc * 1;
694 return true;
695 }
696 if (counters["add button 1"] > 0) {
697 let acc = counters["add button 1"] || 0;
698 counters["add button 1"] = max((counters["add button 1"] || 0) - acc, 0);
699 counters["add string 1"] = (counters["add string 1"] || 0) + acc * 1;
700 counters["add string Press 1"] = (counters["add string Press 1"] || 0) + acc * 1;
701 counters["create button"] = (counters["create button"] || 0) + acc * 1;
702 return true;
703 }
704 if (counters["add button 2"] > 0) {
705 let acc = counters["add button 2"] || 0;
706 counters["add button 2"] = max((counters["add button 2"] || 0) - acc, 0);
707 counters["add string 2"] = (counters["add string 2"] || 0) + acc * 1;
708 counters["add string Press 2"] = (counters["add string Press 2"] || 0) + acc * 1;
709 counters["create button"] = (counters["create button"] || 0) + acc * 1;
710 return true;
711 }
712 if (counters["add button 3"] > 0) {
713 let acc = counters["add button 3"] || 0;
714 counters["add button 3"] = max((counters["add button 3"] || 0) - acc, 0);
715 counters["add string 3"] = (counters["add string 3"] || 0) + acc * 1;
716 counters["add string Press 3"] = (counters["add string Press 3"] || 0) + acc * 1;
717 counters["create button"] = (counters["create button"] || 0) + acc * 1;
718 return true;
719 }
720 if (counters["add button -"] > 0) {
721 let acc = counters["add button -"] || 0;
722 counters["add button -"] = max((counters["add button -"] || 0) - acc, 0);
723 counters["add string -"] = (counters["add string -"] || 0) + acc * 1;
724 counters["add string Press Subtract"] = (counters["add string Press Subtract"] || 0) + acc * 1;
725 counters["create button"] = (counters["create button"] || 0) + acc * 1;
726 counters["123 Finish"] = (counters["123 Finish"] || 0) + acc * 1;
727 return true;
728 }
729 if (counters["123 Finish"] > 0) {
730 let acc = counters["123 Finish"] || 0;
731 counters["123 Finish"] = max((counters["123 Finish"] || 0) - acc, 0);
732 counters["next row"] = (counters["next row"] || 0) + acc * 1;
733 return true;
734 }
735 if (counters["create 0 . = +"] > 0) {
736 let acc = counters["create 0 . = +"] || 0;
737 counters["create 0 . = +"] = max((counters["create 0 . = +"] || 0) - acc, 0);
738 counters["add button 0"] = (counters["add button 0"] || 0) + acc * 1;
739 counters["add button ."] = (counters["add button ."] || 0) + acc * 1;
740 counters["add button ="] = (counters["add button ="] || 0) + acc * 1;
741 counters["add button +"] = (counters["add button +"] || 0) + acc * 1;
742 return true;
743 }
744 if (counters["add button 0"] > 0) {
745 let acc = counters["add button 0"] || 0;
746 counters["add button 0"] = max((counters["add button 0"] || 0) - acc, 0);
747 counters["add string 0"] = (counters["add string 0"] || 0) + acc * 1;
748 counters["add string Press 0"] = (counters["add string Press 0"] || 0) + acc * 1;
749 counters["create button"] = (counters["create button"] || 0) + acc * 1;
750 return true;
751 }
752 if (counters["add button ."] > 0) {
753 let acc = counters["add button ."] || 0;
754 counters["add button ."] = max((counters["add button ."] || 0) - acc, 0);
755 counters["add string ."] = (counters["add string ."] || 0) + acc * 1;
756 counters["add string Press Dot"] = (counters["add string Press Dot"] || 0) + acc * 1;
757 counters["create button"] = (counters["create button"] || 0) + acc * 1;
758 return true;
759 }
760 if (counters["add button ="] > 0) {
761 let acc = counters["add button ="] || 0;
762 counters["add button ="] = max((counters["add button ="] || 0) - acc, 0);
763 counters["add string ="] = (counters["add string ="] || 0) + acc * 1;
764 counters["add string Press Equal"] = (counters["add string Press Equal"] || 0) + acc * 1;
765 counters["create button"] = (counters["create button"] || 0) + acc * 1;
766 return true;
767 }
768 if (counters["add button +"] > 0) {
769 let acc = counters["add button +"] || 0;
770 counters["add button +"] = max((counters["add button +"] || 0) - acc, 0);
771 counters["add string +"] = (counters["add string +"] || 0) + acc * 1;
772 counters["add string Press Add"] = (counters["add string Press Add"] || 0) + acc * 1;
773 counters["create button"] = (counters["create button"] || 0) + acc * 1;
774 return true;
775 }
776 if (counters["mount to output"] > 0) {
777 let acc = counters["mount to output"] || 0;
778 counters["mount to output"] = max((counters["mount to output"] || 0) - acc, 0);
779 counters["add string calc-output"] = (counters["add string calc-output"] || 0) + acc * 1;
780 counters["mount element by id"] = (counters["mount element by id"] || 0) + acc * 1;
781 return true;
782 }
783 if (counters["Clear"] > 0) {
784 let acc = counters["Clear"] || 0;
785 counters["Clear"] = max((counters["Clear"] || 0) - acc, 0);
786 counters["add string Clear"] = (counters["add string Clear"] || 0) + acc * 1;
787 counters["on log"] = (counters["on log"] || 0) + acc * 1;
788 return true;
789 }
790 if (counters["on log"] > 0) {
791 let acc = counters["on log"] || 0;
792 counters["on log"] = max((counters["on log"] || 0) - acc, 0);
793 counters["@on log"] = (counters["@on log"] || 0) + acc * 1;
794 return true;
795 }
796 if (counters["add char"] > 0) {
797 let acc = counters["add char"] || 0;
798 counters["add char"] = max((counters["add char"] || 0) - acc, 0);
799 counters["string append"] = (counters["string append"] || 0) + acc * 1;
800 counters["ac.1"] = (counters["ac.1"] || 0) + acc * 1;
801 counters["display acc"] = (counters["display acc"] || 0) + acc * 1;
802 return true;
803 }
804 if (counters["ac.1"] > 0) {
805 let acc = counters["ac.1"] || 0;
806 counters["ac.1"] = max((counters["ac.1"] || 0) - acc, 0);
807 counters["set slot acc"] = (counters["set slot acc"] || 0) + acc * 1;
808 return true;
809 }
810 if (counters["display acc"] > 0) {
811 let acc = counters["display acc"] || 0;
812 counters["display acc"] = max((counters["display acc"] || 0) - acc, 0);
813 counters["dc.1"] = (counters["dc.1"] || 0) + acc * 1;
814 return true;
815 }
816 if (counters["dc.1"] > 0) {
817 let acc = counters["dc.1"] || 0;
818 counters["dc.1"] = max((counters["dc.1"] || 0) - acc, 0);
819 counters["dc.2"] = (counters["dc.2"] || 0) + acc * 1;
820 counters["clear element content"] = (counters["clear element content"] || 0) + acc * 1;
821 return true;
822 }
823 if (counters["dc.2"] > 0) {
824 let acc = counters["dc.2"] || 0;
825 counters["dc.2"] = max((counters["dc.2"] || 0) - acc, 0);
826 counters["dc.3"] = (counters["dc.3"] || 0) + acc * 1;
827 counters["fetch slot acc"] = (counters["fetch slot acc"] || 0) + acc * 1;
828 return true;
829 }
830 if (counters["dc.3"] > 0) {
831 let acc = counters["dc.3"] || 0;
832 counters["dc.3"] = max((counters["dc.3"] || 0) - acc, 0);
833 counters["@append string to element"] = (counters["@append string to element"] || 0) + acc * 1;
834 return true;
835 }
836 if (counters["Number Button Pressed"] > 0) {
837 let acc = counters["Number Button Pressed"] || 0;
838 counters["Number Button Pressed"] = max((counters["Number Button Pressed"] || 0) - acc, 0);
839 counters["mount to output"] = (counters["mount to output"] || 0) + acc * 1;
840 counters["fetch slot acc"] = (counters["fetch slot acc"] || 0) + acc * 1;
841 counters["get button char"] = (counters["get button char"] || 0) + acc * 1;
842 counters["Finish Number Button Press"] = (counters["Finish Number Button Press"] || 0) + acc * 1;
843 return true;
844 }
845 if (counters["get button char"] > 0 && counters["b0"] > 0) {
846 let acc = huge;
847 acc = min(acc, counters["get button char"] || 0);
848 acc = min(acc, counters["b0"] || 0);
849 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
850 counters["b0"] = max((counters["b0"] || 0) - acc, 0);
851 counters["add string 0"] = (counters["add string 0"] || 0) + acc * 1;
852 return true;
853 }
854 if (counters["get button char"] > 0 && counters["b1"] > 0) {
855 let acc = huge;
856 acc = min(acc, counters["get button char"] || 0);
857 acc = min(acc, counters["b1"] || 0);
858 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
859 counters["b1"] = max((counters["b1"] || 0) - acc, 0);
860 counters["add string 1"] = (counters["add string 1"] || 0) + acc * 1;
861 return true;
862 }
863 if (counters["get button char"] > 0 && counters["b2"] > 0) {
864 let acc = huge;
865 acc = min(acc, counters["get button char"] || 0);
866 acc = min(acc, counters["b2"] || 0);
867 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
868 counters["b2"] = max((counters["b2"] || 0) - acc, 0);
869 counters["add string 2"] = (counters["add string 2"] || 0) + acc * 1;
870 return true;
871 }
872 if (counters["get button char"] > 0 && counters["b3"] > 0) {
873 let acc = huge;
874 acc = min(acc, counters["get button char"] || 0);
875 acc = min(acc, counters["b3"] || 0);
876 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
877 counters["b3"] = max((counters["b3"] || 0) - acc, 0);
878 counters["add string 3"] = (counters["add string 3"] || 0) + acc * 1;
879 return true;
880 }
881 if (counters["get button char"] > 0 && counters["b4"] > 0) {
882 let acc = huge;
883 acc = min(acc, counters["get button char"] || 0);
884 acc = min(acc, counters["b4"] || 0);
885 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
886 counters["b4"] = max((counters["b4"] || 0) - acc, 0);
887 counters["add string 4"] = (counters["add string 4"] || 0) + acc * 1;
888 return true;
889 }
890 if (counters["get button char"] > 0 && counters["b5"] > 0) {
891 let acc = huge;
892 acc = min(acc, counters["get button char"] || 0);
893 acc = min(acc, counters["b5"] || 0);
894 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
895 counters["b5"] = max((counters["b5"] || 0) - acc, 0);
896 counters["add string 5"] = (counters["add string 5"] || 0) + acc * 1;
897 return true;
898 }
899 if (counters["get button char"] > 0 && counters["b6"] > 0) {
900 let acc = huge;
901 acc = min(acc, counters["get button char"] || 0);
902 acc = min(acc, counters["b6"] || 0);
903 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
904 counters["b6"] = max((counters["b6"] || 0) - acc, 0);
905 counters["add string 6"] = (counters["add string 6"] || 0) + acc * 1;
906 return true;
907 }
908 if (counters["get button char"] > 0 && counters["b7"] > 0) {
909 let acc = huge;
910 acc = min(acc, counters["get button char"] || 0);
911 acc = min(acc, counters["b7"] || 0);
912 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
913 counters["b7"] = max((counters["b7"] || 0) - acc, 0);
914 counters["add string 7"] = (counters["add string 7"] || 0) + acc * 1;
915 return true;
916 }
917 if (counters["get button char"] > 0 && counters["b8"] > 0) {
918 let acc = huge;
919 acc = min(acc, counters["get button char"] || 0);
920 acc = min(acc, counters["b8"] || 0);
921 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
922 counters["b8"] = max((counters["b8"] || 0) - acc, 0);
923 counters["add string 8"] = (counters["add string 8"] || 0) + acc * 1;
924 return true;
925 }
926 if (counters["get button char"] > 0 && counters["b9"] > 0) {
927 let acc = huge;
928 acc = min(acc, counters["get button char"] || 0);
929 acc = min(acc, counters["b9"] || 0);
930 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
931 counters["b9"] = max((counters["b9"] || 0) - acc, 0);
932 counters["add string 9"] = (counters["add string 9"] || 0) + acc * 1;
933 return true;
934 }
935 if (counters["get button char"] > 0 && counters["b."] > 0) {
936 let acc = huge;
937 acc = min(acc, counters["get button char"] || 0);
938 acc = min(acc, counters["b."] || 0);
939 counters["get button char"] = max((counters["get button char"] || 0) - acc, 0);
940 counters["b."] = max((counters["b."] || 0) - acc, 0);
941 counters["add string ."] = (counters["add string ."] || 0) + acc * 1;
942 return true;
943 }
944 if (counters["Finish Number Button Press"] > 0) {
945 let acc = counters["Finish Number Button Press"] || 0;
946 counters["Finish Number Button Press"] = max((counters["Finish Number Button Press"] || 0) - acc, 0);
947 counters["add char"] = (counters["add char"] || 0) + acc * 1;
948 return true;
949 }
950 if (counters["Press 0"] > 0) {
951 let acc = counters["Press 0"] || 0;
952 counters["Press 0"] = max((counters["Press 0"] || 0) - acc, 0);
953 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
954 counters["b0"] = (counters["b0"] || 0) + acc * 1;
955 return true;
956 }
957 if (counters["Press 1"] > 0) {
958 let acc = counters["Press 1"] || 0;
959 counters["Press 1"] = max((counters["Press 1"] || 0) - acc, 0);
960 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
961 counters["b1"] = (counters["b1"] || 0) + acc * 1;
962 return true;
963 }
964 if (counters["Press 2"] > 0) {
965 let acc = counters["Press 2"] || 0;
966 counters["Press 2"] = max((counters["Press 2"] || 0) - acc, 0);
967 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
968 counters["b2"] = (counters["b2"] || 0) + acc * 1;
969 return true;
970 }
971 if (counters["Press 3"] > 0) {
972 let acc = counters["Press 3"] || 0;
973 counters["Press 3"] = max((counters["Press 3"] || 0) - acc, 0);
974 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
975 counters["b3"] = (counters["b3"] || 0) + acc * 1;
976 return true;
977 }
978 if (counters["Press 4"] > 0) {
979 let acc = counters["Press 4"] || 0;
980 counters["Press 4"] = max((counters["Press 4"] || 0) - acc, 0);
981 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
982 counters["b4"] = (counters["b4"] || 0) + acc * 1;
983 return true;
984 }
985 if (counters["Press 5"] > 0) {
986 let acc = counters["Press 5"] || 0;
987 counters["Press 5"] = max((counters["Press 5"] || 0) - acc, 0);
988 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
989 counters["b5"] = (counters["b5"] || 0) + acc * 1;
990 return true;
991 }
992 if (counters["Press 6"] > 0) {
993 let acc = counters["Press 6"] || 0;
994 counters["Press 6"] = max((counters["Press 6"] || 0) - acc, 0);
995 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
996 counters["b6"] = (counters["b6"] || 0) + acc * 1;
997 return true;
998 }
999 if (counters["Press 7"] > 0) {
1000 let acc = counters["Press 7"] || 0;
1001 counters["Press 7"] = max((counters["Press 7"] || 0) - acc, 0);
1002 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
1003 counters["b7"] = (counters["b7"] || 0) + acc * 1;
1004 return true;
1005 }
1006 if (counters["Press 8"] > 0) {
1007 let acc = counters["Press 8"] || 0;
1008 counters["Press 8"] = max((counters["Press 8"] || 0) - acc, 0);
1009 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
1010 counters["b8"] = (counters["b8"] || 0) + acc * 1;
1011 return true;
1012 }
1013 if (counters["Press 9"] > 0) {
1014 let acc = counters["Press 9"] || 0;
1015 counters["Press 9"] = max((counters["Press 9"] || 0) - acc, 0);
1016 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
1017 counters["b9"] = (counters["b9"] || 0) + acc * 1;
1018 return true;
1019 }
1020 if (counters["Press Dot"] > 0) {
1021 let acc = counters["Press Dot"] || 0;
1022 counters["Press Dot"] = max((counters["Press Dot"] || 0) - acc, 0);
1023 counters["Number Button Pressed"] = (counters["Number Button Pressed"] || 0) + acc * 1;
1024 counters["b."] = (counters["b."] || 0) + acc * 1;
1025 return true;
1026 }
1027 return false;
1028}
1029 self.run = function() {
1030 let counters = self.counters;
1031 while(match(self, counters)){};
1032 };
1033 self.log_state = function() {
1034 return Object.entries(self.counters).map(([k, v]) => `${k} :: ${v}`).join('\n');
1035 }; return self;
1036};
1037
html_calc.nv.min.js 原始文件 Playground
1(()=>{var h=(g,a)=>()=>(a||g((a={exports:{}}).exports,a),a.exports);var f=h(()=>{return function(){let g=Math.min;var a=Math.max,l=Number.MAX_SAFE_INTEGER;let i={state:{strings:[],slots:{}}};i.string_constants=["br","app","button","calc-output","div","AC","All Clear","C","Clear","0","9","8","7","6","5","4","3","2","1","+","/","*","-",".","=","Press 7","Press 8","Press 9","Press Divide","Press 4","Press 5","Press 6","Press Multiply","Press 1","Press 2","Press 3","Press Subtract","Press 0","Press Dot","Press Equal","Press Add"],i.counters={"ui init":1},i.on_log_string=function(b){let t=i.state.strings.shift();console.log(t);let d=document.querySelector("#log");d.append(t),d.append(document.createElement("br"))},i.on_clear_log=function(b){document.querySelector("#log").innerHTML=""},i.on_reset_ui=function(b){i.state.appElem&&(appElem.innerHTML="")},i.set_slot_DOM_id=function(){i.state.slots["DOM id"]=i.state.strings.shift()},i.fetch_slot_DOM_id=function(){i.state.strings.push(i.state.slots["DOM id"])},i.set_slot_inner_content=function(){i.state.slots["inner content"]=i.state.strings.shift()},i.fetch_slot_inner_content=function(){i.state.strings.push(i.state.slots["inner content"])},i.set_slot_vera_event=function(){i.state.slots["vera event"]=i.state.strings.shift()},i.fetch_slot_vera_event=function(){i.state.strings.push(i.state.slots["vera event"])},i.set_slot_num_A=function(){i.state.slots["num A"]=i.state.strings.shift()},i.fetch_slot_num_A=function(){i.state.strings.push(i.state.slots["num A"])},i.set_slot_num_B=function(){i.state.slots["num B"]=i.state.strings.shift()},i.fetch_slot_num_B=function(){i.state.strings.push(i.state.slots["num B"])},i.set_slot_acc=function(){i.state.slots.acc=i.state.strings.shift()},i.fetch_slot_acc=function(){i.state.strings.push(i.state.slots.acc)},i.set_slot_mem=function(){i.state.slots.mem=i.state.strings.shift()},i.fetch_slot_mem=function(){i.state.strings.push(i.state.slots.mem)};function r(b,t){if(console.log(Object.entries(t).filter(([,d])=>d>0).map(([d,e])=>`${d} :: ${e}`).join(`
2`)),console.log(b.state.strings),console.log(b.state.slots),t["push string"]>0)return b.state.strings.push(b.string_constants[t["push string"]-1]),t["push string"]=0,!0;if(t["set slot DOM id"]>0&&t.nostub>0)return b.set_slot_DOM_id(t),t["set slot DOM id"]=0,t.nostub=0,!0;if(t["fetch slot DOM id"]>0&&t.nostub>0)return b.fetch_slot_DOM_id(t),t["fetch slot DOM id"]=0,t.nostub=0,!0;if(t["set slot inner content"]>0&&t.nostub>0)return b.set_slot_inner_content(t),t["set slot inner content"]=0,t.nostub=0,!0;if(t["fetch slot inner content"]>0&&t.nostub>0)return b.fetch_slot_inner_content(t),t["fetch slot inner content"]=0,t.nostub=0,!0;if(t["set slot vera event"]>0&&t.nostub>0)return b.set_slot_vera_event(t),t["set slot vera event"]=0,t.nostub=0,!0;if(t["fetch slot vera event"]>0&&t.nostub>0)return b.fetch_slot_vera_event(t),t["fetch slot vera event"]=0,t.nostub=0,!0;if(t["set slot num A"]>0&&t.nostub>0)return b.set_slot_num_A(t),t["set slot num A"]=0,t.nostub=0,!0;if(t["fetch slot num A"]>0&&t.nostub>0)return b.fetch_slot_num_A(t),t["fetch slot num A"]=0,t.nostub=0,!0;if(t["set slot num B"]>0&&t.nostub>0)return b.set_slot_num_B(t),t["set slot num B"]=0,t.nostub=0,!0;if(t["fetch slot num B"]>0&&t.nostub>0)return b.fetch_slot_num_B(t),t["fetch slot num B"]=0,t.nostub=0,!0;if(t["set slot acc"]>0&&t.nostub>0)return b.set_slot_acc(t),t["set slot acc"]=0,t.nostub=0,!0;if(t["fetch slot acc"]>0&&t.nostub>0)return b.fetch_slot_acc(t),t["fetch slot acc"]=0,t.nostub=0,!0;if(t["set slot mem"]>0&&t.nostub>0)return b.set_slot_mem(t),t["set slot mem"]=0,t.nostub=0,!0;if(t["fetch slot mem"]>0&&t.nostub>0)return b.fetch_slot_mem(t),t["fetch slot mem"]=0,t.nostub=0,!0;if(t["@on log"]>0)return b.on_log_string(t),t["@on log"]=0,!0;if(t["@clear log"]>0)return b.on_clear_log(t),t["@clear log"]=0,!0;if(t["@reset ui"]>0)return b.on_reset_ui(t),t["@reset ui"]=0,!0;if(t["# meta code status"]>0){let d=t["# meta code status"]||0;return t["# meta code status"]=a((t["# meta code status"]||0)-d,0),t.Untested=(t.Untested||0)+d*1,t.uncompiled=(t.uncompiled||0)+d*1,!0}if(t["#include"]>0&&t["strings.nv"]>0&&t["slots.nv"]>0&&t["DOM.nv"]>0){let d=l;return d=g(d,t["#include"]||0),d=g(d,t["strings.nv"]||0),d=g(d,t["slots.nv"]||0),d=g(d,t["DOM.nv"]||0),t["#include"]=a((t["#include"]||0)-d,0),t["strings.nv"]=a((t["strings.nv"]||0)-d,0),t["slots.nv"]=a((t["slots.nv"]||0)-d,0),t["DOM.nv"]=a((t["DOM.nv"]||0)-d,0),!0}if(t["add string br"]>0){let d=t["add string br"]||0;return t["add string br"]=a((t["add string br"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*1,!0}if(t["add string app"]>0){let d=t["add string app"]||0;return t["add string app"]=a((t["add string app"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*2,!0}if(t["add string button"]>0){let d=t["add string button"]||0;return t["add string button"]=a((t["add string button"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*3,!0}if(t["add string calc-output"]>0){let d=t["add string calc-output"]||0;return t["add string calc-output"]=a((t["add string calc-output"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*4,!0}if(t["add string div"]>0){let d=t["add string div"]||0;return t["add string div"]=a((t["add string div"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*5,!0}if(t["add string AC"]>0){let d=t["add string AC"]||0;return t["add string AC"]=a((t["add string AC"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*6,!0}if(t["add string All Clear"]>0){let d=t["add string All Clear"]||0;return t["add string All Clear"]=a((t["add string All Clear"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*7,!0}if(t["add string C"]>0){let d=t["add string C"]||0;return t["add string C"]=a((t["add string C"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*8,!0}if(t["add string Clear"]>0){let d=t["add string Clear"]||0;return t["add string Clear"]=a((t["add string Clear"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*9,!0}if(t["add string 0"]>0){let d=t["add string 0"]||0;return t["add string 0"]=a((t["add string 0"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*10,!0}if(t["add string 9"]>0){let d=t["add string 9"]||0;return t["add string 9"]=a((t["add string 9"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*11,!0}if(t["add string 8"]>0){let d=t["add string 8"]||0;return t["add string 8"]=a((t["add string 8"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*12,!0}if(t["add string 7"]>0){let d=t["add string 7"]||0;return t["add string 7"]=a((t["add string 7"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*13,!0}if(t["add string 6"]>0){let d=t["add string 6"]||0;return t["add string 6"]=a((t["add string 6"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*14,!0}if(t["add string 5"]>0){let d=t["add string 5"]||0;return t["add string 5"]=a((t["add string 5"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*15,!0}if(t["add string 4"]>0){let d=t["add string 4"]||0;return t["add string 4"]=a((t["add string 4"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*16,!0}if(t["add string 3"]>0){let d=t["add string 3"]||0;return t["add string 3"]=a((t["add string 3"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*17,!0}if(t["add string 2"]>0){let d=t["add string 2"]||0;return t["add string 2"]=a((t["add string 2"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*18,!0}if(t["add string 1"]>0){let d=t["add string 1"]||0;return t["add string 1"]=a((t["add string 1"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*19,!0}if(t["add string +"]>0){let d=t["add string +"]||0;return t["add string +"]=a((t["add string +"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*20,!0}if(t["add string /"]>0){let d=t["add string /"]||0;return t["add string /"]=a((t["add string /"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*21,!0}if(t["add string *"]>0){let d=t["add string *"]||0;return t["add string *"]=a((t["add string *"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*22,!0}if(t["add string -"]>0){let d=t["add string -"]||0;return t["add string -"]=a((t["add string -"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*23,!0}if(t["add string ."]>0){let d=t["add string ."]||0;return t["add string ."]=a((t["add string ."]||0)-d,0),t["push string"]=(t["push string"]||0)+d*24,!0}if(t["add string ="]>0){let d=t["add string ="]||0;return t["add string ="]=a((t["add string ="]||0)-d,0),t["push string"]=(t["push string"]||0)+d*25,!0}if(t["add string Press 7"]>0){let d=t["add string Press 7"]||0;return t["add string Press 7"]=a((t["add string Press 7"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*26,!0}if(t["add string Press 8"]>0){let d=t["add string Press 8"]||0;return t["add string Press 8"]=a((t["add string Press 8"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*27,!0}if(t["add string Press 9"]>0){let d=t["add string Press 9"]||0;return t["add string Press 9"]=a((t["add string Press 9"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*28,!0}if(t["add string Press Divide"]>0){let d=t["add string Press Divide"]||0;return t["add string Press Divide"]=a((t["add string Press Divide"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*29,!0}if(t["add string Press 4"]>0){let d=t["add string Press 4"]||0;return t["add string Press 4"]=a((t["add string Press 4"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*30,!0}if(t["add string Press 5"]>0){let d=t["add string Press 5"]||0;return t["add string Press 5"]=a((t["add string Press 5"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*31,!0}if(t["add string Press 6"]>0){let d=t["add string Press 6"]||0;return t["add string Press 6"]=a((t["add string Press 6"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*32,!0}if(t["add string Press Multiply"]>0){let d=t["add string Press Multiply"]||0;return t["add string Press Multiply"]=a((t["add string Press Multiply"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*33,!0}if(t["add string Press 1"]>0){let d=t["add string Press 1"]||0;return t["add string Press 1"]=a((t["add string Press 1"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*34,!0}if(t["add string Press 2"]>0){let d=t["add string Press 2"]||0;return t["add string Press 2"]=a((t["add string Press 2"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*35,!0}if(t["add string Press 3"]>0){let d=t["add string Press 3"]||0;return t["add string Press 3"]=a((t["add string Press 3"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*36,!0}if(t["add string Press Subtract"]>0){let d=t["add string Press Subtract"]||0;return t["add string Press Subtract"]=a((t["add string Press Subtract"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*37,!0}if(t["add string Press 0"]>0){let d=t["add string Press 0"]||0;return t["add string Press 0"]=a((t["add string Press 0"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*38,!0}if(t["add string Press Dot"]>0){let d=t["add string Press Dot"]||0;return t["add string Press Dot"]=a((t["add string Press Dot"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*39,!0}if(t["add string Press Equal"]>0){let d=t["add string Press Equal"]||0;return t["add string Press Equal"]=a((t["add string Press Equal"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*40,!0}if(t["add string Press Add"]>0){let d=t["add string Press Add"]||0;return t["add string Press Add"]=a((t["add string Press Add"]||0)-d,0),t["push string"]=(t["push string"]||0)+d*41,!0}if(t["ui init"]>0){let d=t["ui init"]||0;return t["ui init"]=a((t["ui init"]||0)-d,0),t["@reset ui"]=(t["@reset ui"]||0)+d*1,t["add string app"]=(t["add string app"]||0)+d*1,t["mount element by id"]=(t["mount element by id"]||0)+d*1,t["create display label"]=(t["create display label"]||0)+d*1,t["create buttons"]=(t["create buttons"]||0)+d*1,t["mount to output"]=(t["mount to output"]||0)+d*1,!0}if(t["create button"]>0){let d=t["create button"]||0;return t["create button"]=a((t["create button"]||0)-d,0),t["set slot inner content"]=(t["set slot inner content"]||0)+d*1,t["set slot vera event"]=(t["set slot vera event"]||0)+d*1,t["create button.2"]=(t["create button.2"]||0)+d*1,!0}if(t["create button.2"]>0){let d=t["create button.2"]||0;return t["create button.2"]=a((t["create button.2"]||0)-d,0),t["add string button"]=(t["add string button"]||0)+d*1,t["create element"]=(t["create element"]||0)+d*1,!0}if(t["next row"]>0){let d=t["next row"]||0;return t["next row"]=a((t["next row"]||0)-d,0),t["add string br"]=(t["add string br"]||0)+d*1,t["create element"]=(t["create element"]||0)+d*1,!0}if(t["create element"]>0){let d=t["create element"]||0;return t["create element"]=a((t["create element"]||0)-d,0),t["@create element"]=(t["@create element"]||0)+d*1,!0}if(t["mount element by id"]>0){let d=t["mount element by id"]||0;return t["mount element by id"]=a((t["mount element by id"]||0)-d,0),t["@mount element by id"]=(t["@mount element by id"]||0)+d*1,!0}if(t["create display label"]>0){let d=t["create display label"]||0;return t["create display label"]=a((t["create display label"]||0)-d,0),t["add string calc-output"]=(t["add string calc-output"]||0)+d*1,t["set DOM id"]=(t["set DOM id"]||0)+d*1,t["create display label.2"]=(t["create display label.2"]||0)+d*1,!0}if(t["set DOM id"]>0){let d=t["set DOM id"]||0;return t["set DOM id"]=a((t["set DOM id"]||0)-d,0),t["set slot DOM id"]=(t["set slot DOM id"]||0)+d*1,!0}if(t["create display label.2"]>0){let d=t["create display label.2"]||0;return t["create display label.2"]=a((t["create display label.2"]||0)-d,0),t["add string div"]=(t["add string div"]||0)+d*1,t["create element"]=(t["create element"]||0)+d*1,t["finish label row"]=(t["finish label row"]||0)+d*1,!0}if(t["finish label row"]>0){let d=t["finish label row"]||0;return t["finish label row"]=a((t["finish label row"]||0)-d,0),t["next row"]=(t["next row"]||0)+d*1,!0}if(t["create buttons"]>0){let d=t["create buttons"]||0;return t["create buttons"]=a((t["create buttons"]||0)-d,0),t["create AC C row"]=(t["create AC C row"]||0)+d*1,t["create 7 8 9 / row"]=(t["create 7 8 9 / row"]||0)+d*1,t["create 4 5 6 * row"]=(t["create 4 5 6 * row"]||0)+d*1,t["create 1 2 3 - row"]=(t["create 1 2 3 - row"]||0)+d*1,t["create 0 . = +"]=(t["create 0 . = +"]||0)+d*1,!0}if(t["create AC C row"]>0){let d=t["create AC C row"]||0;return t["create AC C row"]=a((t["create AC C row"]||0)-d,0),t["create AC button"]=(t["create AC button"]||0)+d*1,t["create C button"]=(t["create C button"]||0)+d*1,!0}if(t["create AC button"]>0){let d=t["create AC button"]||0;return t["create AC button"]=a((t["create AC button"]||0)-d,0),t["add string AC"]=(t["add string AC"]||0)+d*1,t["add string All Clear"]=(t["add string All Clear"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["create C button"]>0){let d=t["create C button"]||0;return t["create C button"]=a((t["create C button"]||0)-d,0),t["add string C"]=(t["add string C"]||0)+d*1,t["add string Clear"]=(t["add string Clear"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,t["ACC finish"]=(t["ACC finish"]||0)+d*1,!0}if(t["ACC finish"]>0){let d=t["ACC finish"]||0;return t["ACC finish"]=a((t["ACC finish"]||0)-d,0),t["next row"]=(t["next row"]||0)+d*1,!0}if(t["create 7 8 9 / row"]>0){let d=t["create 7 8 9 / row"]||0;return t["create 7 8 9 / row"]=a((t["create 7 8 9 / row"]||0)-d,0),t["add button 7"]=(t["add button 7"]||0)+d*1,t["add button 8"]=(t["add button 8"]||0)+d*1,t["add button 9"]=(t["add button 9"]||0)+d*1,t["add button /"]=(t["add button /"]||0)+d*1,!0}if(t["add button 7"]>0){let d=t["add button 7"]||0;return t["add button 7"]=a((t["add button 7"]||0)-d,0),t["add string 7"]=(t["add string 7"]||0)+d*1,t["add string Press 7"]=(t["add string Press 7"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button 8"]>0){let d=t["add button 8"]||0;return t["add button 8"]=a((t["add button 8"]||0)-d,0),t["add string 8"]=(t["add string 8"]||0)+d*1,t["add string Press 8"]=(t["add string Press 8"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button 9"]>0){let d=t["add button 9"]||0;return t["add button 9"]=a((t["add button 9"]||0)-d,0),t["add string 9"]=(t["add string 9"]||0)+d*1,t["add string Press 9"]=(t["add string Press 9"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button /"]>0){let d=t["add button /"]||0;return t["add button /"]=a((t["add button /"]||0)-d,0),t["add string /"]=(t["add string /"]||0)+d*1,t["add string Press Divide"]=(t["add string Press Divide"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,t["789 Finish"]=(t["789 Finish"]||0)+d*1,!0}if(t["789 Finish"]>0){let d=t["789 Finish"]||0;return t["789 Finish"]=a((t["789 Finish"]||0)-d,0),t["next row"]=(t["next row"]||0)+d*1,!0}if(t["create 4 5 6 * row"]>0){let d=t["create 4 5 6 * row"]||0;return t["create 4 5 6 * row"]=a((t["create 4 5 6 * row"]||0)-d,0),t["add button 4"]=(t["add button 4"]||0)+d*1,t["add button 5"]=(t["add button 5"]||0)+d*1,t["add button 6"]=(t["add button 6"]||0)+d*1,t["add button *"]=(t["add button *"]||0)+d*1,!0}if(t["add button 4"]>0){let d=t["add button 4"]||0;return t["add button 4"]=a((t["add button 4"]||0)-d,0),t["add string 4"]=(t["add string 4"]||0)+d*1,t["add string Press 4"]=(t["add string Press 4"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button 5"]>0){let d=t["add button 5"]||0;return t["add button 5"]=a((t["add button 5"]||0)-d,0),t["add string 5"]=(t["add string 5"]||0)+d*1,t["add string Press 5"]=(t["add string Press 5"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button 6"]>0){let d=t["add button 6"]||0;return t["add button 6"]=a((t["add button 6"]||0)-d,0),t["add string 6"]=(t["add string 6"]||0)+d*1,t["add string Press 6"]=(t["add string Press 6"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button *"]>0){let d=t["add button *"]||0;return t["add button *"]=a((t["add button *"]||0)-d,0),t["add string *"]=(t["add string *"]||0)+d*1,t["add string Press Multiply"]=(t["add string Press Multiply"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,t["456 Finish"]=(t["456 Finish"]||0)+d*1,!0}if(t["456 Finish"]>0){let d=t["456 Finish"]||0;return t["456 Finish"]=a((t["456 Finish"]||0)-d,0),t["next row"]=(t["next row"]||0)+d*1,!0}if(t["create 1 2 3 - row"]>0){let d=t["create 1 2 3 - row"]||0;return t["create 1 2 3 - row"]=a((t["create 1 2 3 - row"]||0)-d,0),t["add button 1"]=(t["add button 1"]||0)+d*1,t["add button 2"]=(t["add button 2"]||0)+d*1,t["add button 3"]=(t["add button 3"]||0)+d*1,t["add button -"]=(t["add button -"]||0)+d*1,!0}if(t["add button 1"]>0){let d=t["add button 1"]||0;return t["add button 1"]=a((t["add button 1"]||0)-d,0),t["add string 1"]=(t["add string 1"]||0)+d*1,t["add string Press 1"]=(t["add string Press 1"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button 2"]>0){let d=t["add button 2"]||0;return t["add button 2"]=a((t["add button 2"]||0)-d,0),t["add string 2"]=(t["add string 2"]||0)+d*1,t["add string Press 2"]=(t["add string Press 2"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button 3"]>0){let d=t["add button 3"]||0;return t["add button 3"]=a((t["add button 3"]||0)-d,0),t["add string 3"]=(t["add string 3"]||0)+d*1,t["add string Press 3"]=(t["add string Press 3"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button -"]>0){let d=t["add button -"]||0;return t["add button -"]=a((t["add button -"]||0)-d,0),t["add string -"]=(t["add string -"]||0)+d*1,t["add string Press Subtract"]=(t["add string Press Subtract"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,t["123 Finish"]=(t["123 Finish"]||0)+d*1,!0}if(t["123 Finish"]>0){let d=t["123 Finish"]||0;return t["123 Finish"]=a((t["123 Finish"]||0)-d,0),t["next row"]=(t["next row"]||0)+d*1,!0}if(t["create 0 . = +"]>0){let d=t["create 0 . = +"]||0;return t["create 0 . = +"]=a((t["create 0 . = +"]||0)-d,0),t["add button 0"]=(t["add button 0"]||0)+d*1,t["add button ."]=(t["add button ."]||0)+d*1,t["add button ="]=(t["add button ="]||0)+d*1,t["add button +"]=(t["add button +"]||0)+d*1,!0}if(t["add button 0"]>0){let d=t["add button 0"]||0;return t["add button 0"]=a((t["add button 0"]||0)-d,0),t["add string 0"]=(t["add string 0"]||0)+d*1,t["add string Press 0"]=(t["add string Press 0"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button ."]>0){let d=t["add button ."]||0;return t["add button ."]=a((t["add button ."]||0)-d,0),t["add string ."]=(t["add string ."]||0)+d*1,t["add string Press Dot"]=(t["add string Press Dot"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button ="]>0){let d=t["add button ="]||0;return t["add button ="]=a((t["add button ="]||0)-d,0),t["add string ="]=(t["add string ="]||0)+d*1,t["add string Press Equal"]=(t["add string Press Equal"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["add button +"]>0){let d=t["add button +"]||0;return t["add button +"]=a((t["add button +"]||0)-d,0),t["add string +"]=(t["add string +"]||0)+d*1,t["add string Press Add"]=(t["add string Press Add"]||0)+d*1,t["create button"]=(t["create button"]||0)+d*1,!0}if(t["mount to output"]>0){let d=t["mount to output"]||0;return t["mount to output"]=a((t["mount to output"]||0)-d,0),t["add string calc-output"]=(t["add string calc-output"]||0)+d*1,t["mount element by id"]=(t["mount element by id"]||0)+d*1,!0}if(t.Clear>0){let d=t.Clear||0;return t.Clear=a((t.Clear||0)-d,0),t["add string Clear"]=(t["add string Clear"]||0)+d*1,t["on log"]=(t["on log"]||0)+d*1,!0}if(t["on log"]>0){let d=t["on log"]||0;return t["on log"]=a((t["on log"]||0)-d,0),t["@on log"]=(t["@on log"]||0)+d*1,!0}if(t["add char"]>0){let d=t["add char"]||0;return t["add char"]=a((t["add char"]||0)-d,0),t["string append"]=(t["string append"]||0)+d*1,t["ac.1"]=(t["ac.1"]||0)+d*1,t["display acc"]=(t["display acc"]||0)+d*1,!0}if(t["ac.1"]>0){let d=t["ac.1"]||0;return t["ac.1"]=a((t["ac.1"]||0)-d,0),t["set slot acc"]=(t["set slot acc"]||0)+d*1,!0}if(t["display acc"]>0){let d=t["display acc"]||0;return t["display acc"]=a((t["display acc"]||0)-d,0),t["dc.1"]=(t["dc.1"]||0)+d*1,!0}if(t["dc.1"]>0){let d=t["dc.1"]||0;return t["dc.1"]=a((t["dc.1"]||0)-d,0),t["dc.2"]=(t["dc.2"]||0)+d*1,t["clear element content"]=(t["clear element content"]||0)+d*1,!0}if(t["dc.2"]>0){let d=t["dc.2"]||0;return t["dc.2"]=a((t["dc.2"]||0)-d,0),t["dc.3"]=(t["dc.3"]||0)+d*1,t["fetch slot acc"]=(t["fetch slot acc"]||0)+d*1,!0}if(t["dc.3"]>0){let d=t["dc.3"]||0;return t["dc.3"]=a((t["dc.3"]||0)-d,0),t["@append string to element"]=(t["@append string to element"]||0)+d*1,!0}if(t["Number Button Pressed"]>0){let d=t["Number Button Pressed"]||0;return t["Number Button Pressed"]=a((t["Number Button Pressed"]||0)-d,0),t["mount to output"]=(t["mount to output"]||0)+d*1,t["fetch slot acc"]=(t["fetch slot acc"]||0)+d*1,t["get button char"]=(t["get button char"]||0)+d*1,t["Finish Number Button Press"]=(t["Finish Number Button Press"]||0)+d*1,!0}if(t["get button char"]>0&&t.b0>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b0||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b0=a((t.b0||0)-d,0),t["add string 0"]=(t["add string 0"]||0)+d*1,!0}if(t["get button char"]>0&&t.b1>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b1||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b1=a((t.b1||0)-d,0),t["add string 1"]=(t["add string 1"]||0)+d*1,!0}if(t["get button char"]>0&&t.b2>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b2||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b2=a((t.b2||0)-d,0),t["add string 2"]=(t["add string 2"]||0)+d*1,!0}if(t["get button char"]>0&&t.b3>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b3||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b3=a((t.b3||0)-d,0),t["add string 3"]=(t["add string 3"]||0)+d*1,!0}if(t["get button char"]>0&&t.b4>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b4||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b4=a((t.b4||0)-d,0),t["add string 4"]=(t["add string 4"]||0)+d*1,!0}if(t["get button char"]>0&&t.b5>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b5||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b5=a((t.b5||0)-d,0),t["add string 5"]=(t["add string 5"]||0)+d*1,!0}if(t["get button char"]>0&&t.b6>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b6||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b6=a((t.b6||0)-d,0),t["add string 6"]=(t["add string 6"]||0)+d*1,!0}if(t["get button char"]>0&&t.b7>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b7||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b7=a((t.b7||0)-d,0),t["add string 7"]=(t["add string 7"]||0)+d*1,!0}if(t["get button char"]>0&&t.b8>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b8||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b8=a((t.b8||0)-d,0),t["add string 8"]=(t["add string 8"]||0)+d*1,!0}if(t["get button char"]>0&&t.b9>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t.b9||0),t["get button char"]=a((t["get button char"]||0)-d,0),t.b9=a((t.b9||0)-d,0),t["add string 9"]=(t["add string 9"]||0)+d*1,!0}if(t["get button char"]>0&&t["b."]>0){let d=l;return d=g(d,t["get button char"]||0),d=g(d,t["b."]||0),t["get button char"]=a((t["get button char"]||0)-d,0),t["b."]=a((t["b."]||0)-d,0),t["add string ."]=(t["add string ."]||0)+d*1,!0}if(t["Finish Number Button Press"]>0){let d=t["Finish Number Button Press"]||0;return t["Finish Number Button Press"]=a((t["Finish Number Button Press"]||0)-d,0),t["add char"]=(t["add char"]||0)+d*1,!0}if(t["Press 0"]>0){let d=t["Press 0"]||0;return t["Press 0"]=a((t["Press 0"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b0=(t.b0||0)+d*1,!0}if(t["Press 1"]>0){let d=t["Press 1"]||0;return t["Press 1"]=a((t["Press 1"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b1=(t.b1||0)+d*1,!0}if(t["Press 2"]>0){let d=t["Press 2"]||0;return t["Press 2"]=a((t["Press 2"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b2=(t.b2||0)+d*1,!0}if(t["Press 3"]>0){let d=t["Press 3"]||0;return t["Press 3"]=a((t["Press 3"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b3=(t.b3||0)+d*1,!0}if(t["Press 4"]>0){let d=t["Press 4"]||0;return t["Press 4"]=a((t["Press 4"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b4=(t.b4||0)+d*1,!0}if(t["Press 5"]>0){let d=t["Press 5"]||0;return t["Press 5"]=a((t["Press 5"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b5=(t.b5||0)+d*1,!0}if(t["Press 6"]>0){let d=t["Press 6"]||0;return t["Press 6"]=a((t["Press 6"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b6=(t.b6||0)+d*1,!0}if(t["Press 7"]>0){let d=t["Press 7"]||0;return t["Press 7"]=a((t["Press 7"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b7=(t.b7||0)+d*1,!0}if(t["Press 8"]>0){let d=t["Press 8"]||0;return t["Press 8"]=a((t["Press 8"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b8=(t.b8||0)+d*1,!0}if(t["Press 9"]>0){let d=t["Press 9"]||0;return t["Press 9"]=a((t["Press 9"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t.b9=(t.b9||0)+d*1,!0}if(t["Press Dot"]>0){let d=t["Press Dot"]||0;return t["Press Dot"]=a((t["Press Dot"]||0)-d,0),t["Number Button Pressed"]=(t["Number Button Pressed"]||0)+d*1,t["b."]=(t["b."]||0)+d*1,!0}return!1}return i.run=function(){let b=i.counters;for(;r(i,b););},i.log_state=function(){return Object.entries(i.counters).map(([b,t])=>`${b} :: ${t}`).join(`
3`)},i}});f();})();
4
html_calc.nv.min2.js 原始文件 Playground
1function fn(){let t=Math.min;var s=Math.max,r=Number.MAX_SAFE_INTEGER;let e={state:{strings:[],slots:{}}};function n(e,n){if(console.log(Object.entries(n).filter(([,t])=>t>0).map(([t,s])=>`${t} :: ${s}`).join("\n")),console.log(e.state.strings),console.log(e.state.slots),n["push string"]>0)return e.state.strings.push(e.string_constants[n["push string"]-1]),n["push string"]=0,!0;if(n["set slot DOM id"]>0&&n.nostub>0)return e.set_slot_DOM_id(n),n["set slot DOM id"]=0,n.nostub=0,!0;if(n["fetch slot DOM id"]>0&&n.nostub>0)return e.fetch_slot_DOM_id(n),n["fetch slot DOM id"]=0,n.nostub=0,!0;if(n["set slot inner content"]>0&&n.nostub>0)return e.set_slot_inner_content(n),n["set slot inner content"]=0,n.nostub=0,!0;if(n["fetch slot inner content"]>0&&n.nostub>0)return e.fetch_slot_inner_content(n),n["fetch slot inner content"]=0,n.nostub=0,!0;if(n["set slot vera event"]>0&&n.nostub>0)return e.set_slot_vera_event(n),n["set slot vera event"]=0,n.nostub=0,!0;if(n["fetch slot vera event"]>0&&n.nostub>0)return e.fetch_slot_vera_event(n),n["fetch slot vera event"]=0,n.nostub=0,!0;if(n["set slot num A"]>0&&n.nostub>0)return e.set_slot_num_A(n),n["set slot num A"]=0,n.nostub=0,!0;if(n["fetch slot num A"]>0&&n.nostub>0)return e.fetch_slot_num_A(n),n["fetch slot num A"]=0,n.nostub=0,!0;if(n["set slot num B"]>0&&n.nostub>0)return e.set_slot_num_B(n),n["set slot num B"]=0,n.nostub=0,!0;if(n["fetch slot num B"]>0&&n.nostub>0)return e.fetch_slot_num_B(n),n["fetch slot num B"]=0,n.nostub=0,!0;if(n["set slot acc"]>0&&n.nostub>0)return e.set_slot_acc(n),n["set slot acc"]=0,n.nostub=0,!0;if(n["fetch slot acc"]>0&&n.nostub>0)return e.fetch_slot_acc(n),n["fetch slot acc"]=0,n.nostub=0,!0;if(n["set slot mem"]>0&&n.nostub>0)return e.set_slot_mem(n),n["set slot mem"]=0,n.nostub=0,!0;if(n["fetch slot mem"]>0&&n.nostub>0)return e.fetch_slot_mem(n),n["fetch slot mem"]=0,n.nostub=0,!0;if(n["@on log"]>0)return e.on_log_string(n),n["@on log"]=0,!0;if(n["@clear log"]>0)return e.on_clear_log(n),n["@clear log"]=0,!0;if(n["@reset ui"]>0)return e.on_reset_ui(n),n["@reset ui"]=0,!0;if(n["# meta code status"]>0){let $=n["# meta code status"]||0;return n["# meta code status"]=s((n["# meta code status"]||0)-$,0),n.Untested=(n.Untested||0)+1*$,n.uncompiled=(n.uncompiled||0)+1*$,!0}if(n["#include"]>0&&n["strings.nv"]>0&&n["slots.nv"]>0&&n["DOM.nv"]>0){let d=r;return d=t(d,n["#include"]||0),d=t(d,n["strings.nv"]||0),d=t(d,n["slots.nv"]||0),d=t(d,n["DOM.nv"]||0),n["#include"]=s((n["#include"]||0)-d,0),n["strings.nv"]=s((n["strings.nv"]||0)-d,0),n["slots.nv"]=s((n["slots.nv"]||0)-d,0),n["DOM.nv"]=s((n["DOM.nv"]||0)-d,0),!0}if(n["add string br"]>0){let i=n["add string br"]||0;return n["add string br"]=s((n["add string br"]||0)-i,0),n["push string"]=(n["push string"]||0)+1*i,!0}if(n["add string app"]>0){let a=n["add string app"]||0;return n["add string app"]=s((n["add string app"]||0)-a,0),n["push string"]=(n["push string"]||0)+2*a,!0}if(n["add string button"]>0){let u=n["add string button"]||0;return n["add string button"]=s((n["add string button"]||0)-u,0),n["push string"]=(n["push string"]||0)+3*u,!0}if(n["add string calc-output"]>0){let o=n["add string calc-output"]||0;return n["add string calc-output"]=s((n["add string calc-output"]||0)-o,0),n["push string"]=(n["push string"]||0)+4*o,!0}if(n["add string div"]>0){let g=n["add string div"]||0;return n["add string div"]=s((n["add string div"]||0)-g,0),n["push string"]=(n["push string"]||0)+5*g,!0}if(n["add string AC"]>0){let l=n["add string AC"]||0;return n["add string AC"]=s((n["add string AC"]||0)-l,0),n["push string"]=(n["push string"]||0)+6*l,!0}if(n["add string All Clear"]>0){let b=n["add string All Clear"]||0;return n["add string All Clear"]=s((n["add string All Clear"]||0)-b,0),n["push string"]=(n["push string"]||0)+7*b,!0}if(n["add string C"]>0){let c=n["add string C"]||0;return n["add string C"]=s((n["add string C"]||0)-c,0),n["push string"]=(n["push string"]||0)+8*c,!0}if(n["add string Clear"]>0){let _=n["add string Clear"]||0;return n["add string Clear"]=s((n["add string Clear"]||0)-_,0),n["push string"]=(n["push string"]||0)+9*_,!0}if(n["add string 0"]>0){let h=n["add string 0"]||0;return n["add string 0"]=s((n["add string 0"]||0)-h,0),n["push string"]=(n["push string"]||0)+10*h,!0}if(n["add string 9"]>0){let f=n["add string 9"]||0;return n["add string 9"]=s((n["add string 9"]||0)-f,0),n["push string"]=(n["push string"]||0)+11*f,!0}if(n["add string 8"]>0){let P=n["add string 8"]||0;return n["add string 8"]=s((n["add string 8"]||0)-P,0),n["push string"]=(n["push string"]||0)+12*P,!0}if(n["add string 7"]>0){let p=n["add string 7"]||0;return n["add string 7"]=s((n["add string 7"]||0)-p,0),n["push string"]=(n["push string"]||0)+13*p,!0}if(n["add string 6"]>0){let m=n["add string 6"]||0;return n["add string 6"]=s((n["add string 6"]||0)-m,0),n["push string"]=(n["push string"]||0)+14*m,!0}if(n["add string 5"]>0){let C=n["add string 5"]||0;return n["add string 5"]=s((n["add string 5"]||0)-C,0),n["push string"]=(n["push string"]||0)+15*C,!0}if(n["add string 4"]>0){let v=n["add string 4"]||0;return n["add string 4"]=s((n["add string 4"]||0)-v,0),n["push string"]=(n["push string"]||0)+16*v,!0}if(n["add string 3"]>0){let A=n["add string 3"]||0;return n["add string 3"]=s((n["add string 3"]||0)-A,0),n["push string"]=(n["push string"]||0)+17*A,!0}if(n["add string 2"]>0){let w=n["add string 2"]||0;return n["add string 2"]=s((n["add string 2"]||0)-w,0),n["push string"]=(n["push string"]||0)+18*w,!0}if(n["add string 1"]>0){let B=n["add string 1"]||0;return n["add string 1"]=s((n["add string 1"]||0)-B,0),n["push string"]=(n["push string"]||0)+19*B,!0}if(n["add string +"]>0){let D=n["add string +"]||0;return n["add string +"]=s((n["add string +"]||0)-D,0),n["push string"]=(n["push string"]||0)+20*D,!0}if(n["add string /"]>0){let y=n["add string /"]||0;return n["add string /"]=s((n["add string /"]||0)-y,0),n["push string"]=(n["push string"]||0)+21*y,!0}if(n["add string *"]>0){let N=n["add string *"]||0;return n["add string *"]=s((n["add string *"]||0)-N,0),n["push string"]=(n["push string"]||0)+22*N,!0}if(n["add string -"]>0){let M=n["add string -"]||0;return n["add string -"]=s((n["add string -"]||0)-M,0),n["push string"]=(n["push string"]||0)+23*M,!0}if(n["add string ."]>0){let F=n["add string ."]||0;return n["add string ."]=s((n["add string ."]||0)-F,0),n["push string"]=(n["push string"]||0)+24*F,!0}if(n["add string ="]>0){let O=n["add string ="]||0;return n["add string ="]=s((n["add string ="]||0)-O,0),n["push string"]=(n["push string"]||0)+25*O,!0}if(n["add string Press 7"]>0){let x=n["add string Press 7"]||0;return n["add string Press 7"]=s((n["add string Press 7"]||0)-x,0),n["push string"]=(n["push string"]||0)+26*x,!0}if(n["add string Press 8"]>0){let E=n["add string Press 8"]||0;return n["add string Press 8"]=s((n["add string Press 8"]||0)-E,0),n["push string"]=(n["push string"]||0)+27*E,!0}if(n["add string Press 9"]>0){let S=n["add string Press 9"]||0;return n["add string Press 9"]=s((n["add string Press 9"]||0)-S,0),n["push string"]=(n["push string"]||0)+28*S,!0}if(n["add string Press Divide"]>0){let q=n["add string Press Divide"]||0;return n["add string Press Divide"]=s((n["add string Press Divide"]||0)-q,0),n["push string"]=(n["push string"]||0)+29*q,!0}if(n["add string Press 4"]>0){let T=n["add string Press 4"]||0;return n["add string Press 4"]=s((n["add string Press 4"]||0)-T,0),n["push string"]=(n["push string"]||0)+30*T,!0}if(n["add string Press 5"]>0){let j=n["add string Press 5"]||0;return n["add string Press 5"]=s((n["add string Press 5"]||0)-j,0),n["push string"]=(n["push string"]||0)+31*j,!0}if(n["add string Press 6"]>0){let H=n["add string Press 6"]||0;return n["add string Press 6"]=s((n["add string Press 6"]||0)-H,0),n["push string"]=(n["push string"]||0)+32*H,!0}if(n["add string Press Multiply"]>0){let L=n["add string Press Multiply"]||0;return n["add string Press Multiply"]=s((n["add string Press Multiply"]||0)-L,0),n["push string"]=(n["push string"]||0)+33*L,!0}if(n["add string Press 1"]>0){let U=n["add string Press 1"]||0;return n["add string Press 1"]=s((n["add string Press 1"]||0)-U,0),n["push string"]=(n["push string"]||0)+34*U,!0}if(n["add string Press 2"]>0){let G=n["add string Press 2"]||0;return n["add string Press 2"]=s((n["add string Press 2"]||0)-G,0),n["push string"]=(n["push string"]||0)+35*G,!0}if(n["add string Press 3"]>0){let I=n["add string Press 3"]||0;return n["add string Press 3"]=s((n["add string Press 3"]||0)-I,0),n["push string"]=(n["push string"]||0)+36*I,!0}if(n["add string Press Subtract"]>0){let R=n["add string Press Subtract"]||0;return n["add string Press Subtract"]=s((n["add string Press Subtract"]||0)-R,0),n["push string"]=(n["push string"]||0)+37*R,!0}if(n["add string Press 0"]>0){let X=n["add string Press 0"]||0;return n["add string Press 0"]=s((n["add string Press 0"]||0)-X,0),n["push string"]=(n["push string"]||0)+38*X,!0}if(n["add string Press Dot"]>0){let k=n["add string Press Dot"]||0;return n["add string Press Dot"]=s((n["add string Press Dot"]||0)-k,0),n["push string"]=(n["push string"]||0)+39*k,!0}if(n["add string Press Equal"]>0){let z=n["add string Press Equal"]||0;return n["add string Press Equal"]=s((n["add string Press Equal"]||0)-z,0),n["push string"]=(n["push string"]||0)+40*z,!0}if(n["add string Press Add"]>0){let J=n["add string Press Add"]||0;return n["add string Press Add"]=s((n["add string Press Add"]||0)-J,0),n["push string"]=(n["push string"]||0)+41*J,!0}if(n["ui init"]>0){let K=n["ui init"]||0;return n["ui init"]=s((n["ui init"]||0)-K,0),n["@reset ui"]=(n["@reset ui"]||0)+1*K,n["add string app"]=(n["add string app"]||0)+1*K,n["mount element by id"]=(n["mount element by id"]||0)+1*K,n["create display label"]=(n["create display label"]||0)+1*K,n["create buttons"]=(n["create buttons"]||0)+1*K,n["mount to output"]=(n["mount to output"]||0)+1*K,!0}if(n["create button"]>0){let Q=n["create button"]||0;return n["create button"]=s((n["create button"]||0)-Q,0),n["set slot inner content"]=(n["set slot inner content"]||0)+1*Q,n["set slot vera event"]=(n["set slot vera event"]||0)+1*Q,n["create button.2"]=(n["create button.2"]||0)+1*Q,!0}if(n["create button.2"]>0){let V=n["create button.2"]||0;return n["create button.2"]=s((n["create button.2"]||0)-V,0),n["add string button"]=(n["add string button"]||0)+1*V,n["create element"]=(n["create element"]||0)+1*V,!0}if(n["next row"]>0){let W=n["next row"]||0;return n["next row"]=s((n["next row"]||0)-W,0),n["add string br"]=(n["add string br"]||0)+1*W,n["create element"]=(n["create element"]||0)+1*W,!0}if(n["create element"]>0){let Y=n["create element"]||0;return n["create element"]=s((n["create element"]||0)-Y,0),n["@create element"]=(n["@create element"]||0)+1*Y,!0}if(n["mount element by id"]>0){let Z=n["mount element by id"]||0;return n["mount element by id"]=s((n["mount element by id"]||0)-Z,0),n["@mount element by id"]=(n["@mount element by id"]||0)+1*Z,!0}if(n["create display label"]>0){let tt=n["create display label"]||0;return n["create display label"]=s((n["create display label"]||0)-tt,0),n["add string calc-output"]=(n["add string calc-output"]||0)+1*tt,n["set DOM id"]=(n["set DOM id"]||0)+1*tt,n["create display label.2"]=(n["create display label.2"]||0)+1*tt,!0}if(n["set DOM id"]>0){let ts=n["set DOM id"]||0;return n["set DOM id"]=s((n["set DOM id"]||0)-ts,0),n["set slot DOM id"]=(n["set slot DOM id"]||0)+1*ts,!0}if(n["create display label.2"]>0){let tr=n["create display label.2"]||0;return n["create display label.2"]=s((n["create display label.2"]||0)-tr,0),n["add string div"]=(n["add string div"]||0)+1*tr,n["create element"]=(n["create element"]||0)+1*tr,n["finish label row"]=(n["finish label row"]||0)+1*tr,!0}if(n["finish label row"]>0){let te=n["finish label row"]||0;return n["finish label row"]=s((n["finish label row"]||0)-te,0),n["next row"]=(n["next row"]||0)+1*te,!0}if(n["create buttons"]>0){let tn=n["create buttons"]||0;return n["create buttons"]=s((n["create buttons"]||0)-tn,0),n["create AC C row"]=(n["create AC C row"]||0)+1*tn,n["create 7 8 9 / row"]=(n["create 7 8 9 / row"]||0)+1*tn,n["create 4 5 6 * row"]=(n["create 4 5 6 * row"]||0)+1*tn,n["create 1 2 3 - row"]=(n["create 1 2 3 - row"]||0)+1*tn,n["create 0 . = +"]=(n["create 0 . = +"]||0)+1*tn,!0}if(n["create AC C row"]>0){let t$=n["create AC C row"]||0;return n["create AC C row"]=s((n["create AC C row"]||0)-t$,0),n["create AC button"]=(n["create AC button"]||0)+1*t$,n["create C button"]=(n["create C button"]||0)+1*t$,!0}if(n["create AC button"]>0){let td=n["create AC button"]||0;return n["create AC button"]=s((n["create AC button"]||0)-td,0),n["add string AC"]=(n["add string AC"]||0)+1*td,n["add string All Clear"]=(n["add string All Clear"]||0)+1*td,n["create button"]=(n["create button"]||0)+1*td,!0}if(n["create C button"]>0){let ti=n["create C button"]||0;return n["create C button"]=s((n["create C button"]||0)-ti,0),n["add string C"]=(n["add string C"]||0)+1*ti,n["add string Clear"]=(n["add string Clear"]||0)+1*ti,n["create button"]=(n["create button"]||0)+1*ti,n["ACC finish"]=(n["ACC finish"]||0)+1*ti,!0}if(n["ACC finish"]>0){let ta=n["ACC finish"]||0;return n["ACC finish"]=s((n["ACC finish"]||0)-ta,0),n["next row"]=(n["next row"]||0)+1*ta,!0}if(n["create 7 8 9 / row"]>0){let tu=n["create 7 8 9 / row"]||0;return n["create 7 8 9 / row"]=s((n["create 7 8 9 / row"]||0)-tu,0),n["add button 7"]=(n["add button 7"]||0)+1*tu,n["add button 8"]=(n["add button 8"]||0)+1*tu,n["add button 9"]=(n["add button 9"]||0)+1*tu,n["add button /"]=(n["add button /"]||0)+1*tu,!0}if(n["add button 7"]>0){let to=n["add button 7"]||0;return n["add button 7"]=s((n["add button 7"]||0)-to,0),n["add string 7"]=(n["add string 7"]||0)+1*to,n["add string Press 7"]=(n["add string Press 7"]||0)+1*to,n["create button"]=(n["create button"]||0)+1*to,!0}if(n["add button 8"]>0){let tg=n["add button 8"]||0;return n["add button 8"]=s((n["add button 8"]||0)-tg,0),n["add string 8"]=(n["add string 8"]||0)+1*tg,n["add string Press 8"]=(n["add string Press 8"]||0)+1*tg,n["create button"]=(n["create button"]||0)+1*tg,!0}if(n["add button 9"]>0){let tl=n["add button 9"]||0;return n["add button 9"]=s((n["add button 9"]||0)-tl,0),n["add string 9"]=(n["add string 9"]||0)+1*tl,n["add string Press 9"]=(n["add string Press 9"]||0)+1*tl,n["create button"]=(n["create button"]||0)+1*tl,!0}if(n["add button /"]>0){let tb=n["add button /"]||0;return n["add button /"]=s((n["add button /"]||0)-tb,0),n["add string /"]=(n["add string /"]||0)+1*tb,n["add string Press Divide"]=(n["add string Press Divide"]||0)+1*tb,n["create button"]=(n["create button"]||0)+1*tb,n["789 Finish"]=(n["789 Finish"]||0)+1*tb,!0}if(n["789 Finish"]>0){let tc=n["789 Finish"]||0;return n["789 Finish"]=s((n["789 Finish"]||0)-tc,0),n["next row"]=(n["next row"]||0)+1*tc,!0}if(n["create 4 5 6 * row"]>0){let t_=n["create 4 5 6 * row"]||0;return n["create 4 5 6 * row"]=s((n["create 4 5 6 * row"]||0)-t_,0),n["add button 4"]=(n["add button 4"]||0)+1*t_,n["add button 5"]=(n["add button 5"]||0)+1*t_,n["add button 6"]=(n["add button 6"]||0)+1*t_,n["add button *"]=(n["add button *"]||0)+1*t_,!0}if(n["add button 4"]>0){let th=n["add button 4"]||0;return n["add button 4"]=s((n["add button 4"]||0)-th,0),n["add string 4"]=(n["add string 4"]||0)+1*th,n["add string Press 4"]=(n["add string Press 4"]||0)+1*th,n["create button"]=(n["create button"]||0)+1*th,!0}if(n["add button 5"]>0){let tf=n["add button 5"]||0;return n["add button 5"]=s((n["add button 5"]||0)-tf,0),n["add string 5"]=(n["add string 5"]||0)+1*tf,n["add string Press 5"]=(n["add string Press 5"]||0)+1*tf,n["create button"]=(n["create button"]||0)+1*tf,!0}if(n["add button 6"]>0){let tP=n["add button 6"]||0;return n["add button 6"]=s((n["add button 6"]||0)-tP,0),n["add string 6"]=(n["add string 6"]||0)+1*tP,n["add string Press 6"]=(n["add string Press 6"]||0)+1*tP,n["create button"]=(n["create button"]||0)+1*tP,!0}if(n["add button *"]>0){let tp=n["add button *"]||0;return n["add button *"]=s((n["add button *"]||0)-tp,0),n["add string *"]=(n["add string *"]||0)+1*tp,n["add string Press Multiply"]=(n["add string Press Multiply"]||0)+1*tp,n["create button"]=(n["create button"]||0)+1*tp,n["456 Finish"]=(n["456 Finish"]||0)+1*tp,!0}if(n["456 Finish"]>0){let tm=n["456 Finish"]||0;return n["456 Finish"]=s((n["456 Finish"]||0)-tm,0),n["next row"]=(n["next row"]||0)+1*tm,!0}if(n["create 1 2 3 - row"]>0){let t8=n["create 1 2 3 - row"]||0;return n["create 1 2 3 - row"]=s((n["create 1 2 3 - row"]||0)-t8,0),n["add button 1"]=(n["add button 1"]||0)+1*t8,n["add button 2"]=(n["add button 2"]||0)+1*t8,n["add button 3"]=(n["add button 3"]||0)+1*t8,n["add button -"]=(n["add button -"]||0)+1*t8,!0}if(n["add button 1"]>0){let t0=n["add button 1"]||0;return n["add button 1"]=s((n["add button 1"]||0)-t0,0),n["add string 1"]=(n["add string 1"]||0)+1*t0,n["add string Press 1"]=(n["add string Press 1"]||0)+1*t0,n["create button"]=(n["create button"]||0)+1*t0,!0}if(n["add button 2"]>0){let tC=n["add button 2"]||0;return n["add button 2"]=s((n["add button 2"]||0)-tC,0),n["add string 2"]=(n["add string 2"]||0)+1*tC,n["add string Press 2"]=(n["add string Press 2"]||0)+1*tC,n["create button"]=(n["create button"]||0)+1*tC,!0}if(n["add button 3"]>0){let t1=n["add button 3"]||0;return n["add button 3"]=s((n["add button 3"]||0)-t1,0),n["add string 3"]=(n["add string 3"]||0)+1*t1,n["add string Press 3"]=(n["add string Press 3"]||0)+1*t1,n["create button"]=(n["create button"]||0)+1*t1,!0}if(n["add button -"]>0){let tv=n["add button -"]||0;return n["add button -"]=s((n["add button -"]||0)-tv,0),n["add string -"]=(n["add string -"]||0)+1*tv,n["add string Press Subtract"]=(n["add string Press Subtract"]||0)+1*tv,n["create button"]=(n["create button"]||0)+1*tv,n["123 Finish"]=(n["123 Finish"]||0)+1*tv,!0}if(n["123 Finish"]>0){let tA=n["123 Finish"]||0;return n["123 Finish"]=s((n["123 Finish"]||0)-tA,0),n["next row"]=(n["next row"]||0)+1*tA,!0}if(n["create 0 . = +"]>0){let t2=n["create 0 . = +"]||0;return n["create 0 . = +"]=s((n["create 0 . = +"]||0)-t2,0),n["add button 0"]=(n["add button 0"]||0)+1*t2,n["add button ."]=(n["add button ."]||0)+1*t2,n["add button ="]=(n["add button ="]||0)+1*t2,n["add button +"]=(n["add button +"]||0)+1*t2,!0}if(n["add button 0"]>0){let t3=n["add button 0"]||0;return n["add button 0"]=s((n["add button 0"]||0)-t3,0),n["add string 0"]=(n["add string 0"]||0)+1*t3,n["add string Press 0"]=(n["add string Press 0"]||0)+1*t3,n["create button"]=(n["create button"]||0)+1*t3,!0}if(n["add button ."]>0){let t4=n["add button ."]||0;return n["add button ."]=s((n["add button ."]||0)-t4,0),n["add string ."]=(n["add string ."]||0)+1*t4,n["add string Press Dot"]=(n["add string Press Dot"]||0)+1*t4,n["create button"]=(n["create button"]||0)+1*t4,!0}if(n["add button ="]>0){let t5=n["add button ="]||0;return n["add button ="]=s((n["add button ="]||0)-t5,0),n["add string ="]=(n["add string ="]||0)+1*t5,n["add string Press Equal"]=(n["add string Press Equal"]||0)+1*t5,n["create button"]=(n["create button"]||0)+1*t5,!0}if(n["add button +"]>0){let t6=n["add button +"]||0;return n["add button +"]=s((n["add button +"]||0)-t6,0),n["add string +"]=(n["add string +"]||0)+1*t6,n["add string Press Add"]=(n["add string Press Add"]||0)+1*t6,n["create button"]=(n["create button"]||0)+1*t6,!0}if(n["mount to output"]>0){let t7=n["mount to output"]||0;return n["mount to output"]=s((n["mount to output"]||0)-t7,0),n["add string calc-output"]=(n["add string calc-output"]||0)+1*t7,n["mount element by id"]=(n["mount element by id"]||0)+1*t7,!0}if(n.Clear>0){let tw=n.Clear||0;return n.Clear=s((n.Clear||0)-tw,0),n["add string Clear"]=(n["add string Clear"]||0)+1*tw,n["on log"]=(n["on log"]||0)+1*tw,!0}if(n["on log"]>0){let tB=n["on log"]||0;return n["on log"]=s((n["on log"]||0)-tB,0),n["@on log"]=(n["@on log"]||0)+1*tB,!0}if(n["add char"]>0){let tD=n["add char"]||0;return n["add char"]=s((n["add char"]||0)-tD,0),n["string append"]=(n["string append"]||0)+1*tD,n["ac.1"]=(n["ac.1"]||0)+1*tD,n["display acc"]=(n["display acc"]||0)+1*tD,!0}if(n["ac.1"]>0){let ty=n["ac.1"]||0;return n["ac.1"]=s((n["ac.1"]||0)-ty,0),n["set slot acc"]=(n["set slot acc"]||0)+1*ty,!0}if(n["display acc"]>0){let tN=n["display acc"]||0;return n["display acc"]=s((n["display acc"]||0)-tN,0),n["dc.1"]=(n["dc.1"]||0)+1*tN,!0}if(n["dc.1"]>0){let tM=n["dc.1"]||0;return n["dc.1"]=s((n["dc.1"]||0)-tM,0),n["dc.2"]=(n["dc.2"]||0)+1*tM,n["clear element content"]=(n["clear element content"]||0)+1*tM,!0}if(n["dc.2"]>0){let tF=n["dc.2"]||0;return n["dc.2"]=s((n["dc.2"]||0)-tF,0),n["dc.3"]=(n["dc.3"]||0)+1*tF,n["fetch slot acc"]=(n["fetch slot acc"]||0)+1*tF,!0}if(n["dc.3"]>0){let tO=n["dc.3"]||0;return n["dc.3"]=s((n["dc.3"]||0)-tO,0),n["@append string to element"]=(n["@append string to element"]||0)+1*tO,!0}if(n["Number Button Pressed"]>0){let tx=n["Number Button Pressed"]||0;return n["Number Button Pressed"]=s((n["Number Button Pressed"]||0)-tx,0),n["mount to output"]=(n["mount to output"]||0)+1*tx,n["fetch slot acc"]=(n["fetch slot acc"]||0)+1*tx,n["get button char"]=(n["get button char"]||0)+1*tx,n["Finish Number Button Press"]=(n["Finish Number Button Press"]||0)+1*tx,!0}if(n["get button char"]>0&&n.b0>0){let tE=r;return tE=t(tE,n["get button char"]||0),tE=t(tE,n.b0||0),n["get button char"]=s((n["get button char"]||0)-tE,0),n.b0=s((n.b0||0)-tE,0),n["add string 0"]=(n["add string 0"]||0)+1*tE,!0}if(n["get button char"]>0&&n.b1>0){let tS=r;return tS=t(tS,n["get button char"]||0),tS=t(tS,n.b1||0),n["get button char"]=s((n["get button char"]||0)-tS,0),n.b1=s((n.b1||0)-tS,0),n["add string 1"]=(n["add string 1"]||0)+1*tS,!0}if(n["get button char"]>0&&n.b2>0){let tq=r;return tq=t(tq,n["get button char"]||0),tq=t(tq,n.b2||0),n["get button char"]=s((n["get button char"]||0)-tq,0),n.b2=s((n.b2||0)-tq,0),n["add string 2"]=(n["add string 2"]||0)+1*tq,!0}if(n["get button char"]>0&&n.b3>0){let t9=r;return t9=t(t9,n["get button char"]||0),t9=t(t9,n.b3||0),n["get button char"]=s((n["get button char"]||0)-t9,0),n.b3=s((n.b3||0)-t9,0),n["add string 3"]=(n["add string 3"]||0)+1*t9,!0}if(n["get button char"]>0&&n.b4>0){let tT=r;return tT=t(tT,n["get button char"]||0),tT=t(tT,n.b4||0),n["get button char"]=s((n["get button char"]||0)-tT,0),n.b4=s((n.b4||0)-tT,0),n["add string 4"]=(n["add string 4"]||0)+1*tT,!0}if(n["get button char"]>0&&n.b5>0){let tj=r;return tj=t(tj,n["get button char"]||0),tj=t(tj,n.b5||0),n["get button char"]=s((n["get button char"]||0)-tj,0),n.b5=s((n.b5||0)-tj,0),n["add string 5"]=(n["add string 5"]||0)+1*tj,!0}if(n["get button char"]>0&&n.b6>0){let tH=r;return tH=t(tH,n["get button char"]||0),tH=t(tH,n.b6||0),n["get button char"]=s((n["get button char"]||0)-tH,0),n.b6=s((n.b6||0)-tH,0),n["add string 6"]=(n["add string 6"]||0)+1*tH,!0}if(n["get button char"]>0&&n.b7>0){let tL=r;return tL=t(tL,n["get button char"]||0),tL=t(tL,n.b7||0),n["get button char"]=s((n["get button char"]||0)-tL,0),n.b7=s((n.b7||0)-tL,0),n["add string 7"]=(n["add string 7"]||0)+1*tL,!0}if(n["get button char"]>0&&n.b8>0){let tU=r;return tU=t(tU,n["get button char"]||0),tU=t(tU,n.b8||0),n["get button char"]=s((n["get button char"]||0)-tU,0),n.b8=s((n.b8||0)-tU,0),n["add string 8"]=(n["add string 8"]||0)+1*tU,!0}if(n["get button char"]>0&&n.b9>0){let tG=r;return tG=t(tG,n["get button char"]||0),tG=t(tG,n.b9||0),n["get button char"]=s((n["get button char"]||0)-tG,0),n.b9=s((n.b9||0)-tG,0),n["add string 9"]=(n["add string 9"]||0)+1*tG,!0}if(n["get button char"]>0&&n["b."]>0){let tI=r;return tI=t(tI,n["get button char"]||0),tI=t(tI,n["b."]||0),n["get button char"]=s((n["get button char"]||0)-tI,0),n["b."]=s((n["b."]||0)-tI,0),n["add string ."]=(n["add string ."]||0)+1*tI,!0}if(n["Finish Number Button Press"]>0){let tR=n["Finish Number Button Press"]||0;return n["Finish Number Button Press"]=s((n["Finish Number Button Press"]||0)-tR,0),n["add char"]=(n["add char"]||0)+1*tR,!0}if(n["Press 0"]>0){let tX=n["Press 0"]||0;return n["Press 0"]=s((n["Press 0"]||0)-tX,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tX,n.b0=(n.b0||0)+1*tX,!0}if(n["Press 1"]>0){let tk=n["Press 1"]||0;return n["Press 1"]=s((n["Press 1"]||0)-tk,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tk,n.b1=(n.b1||0)+1*tk,!0}if(n["Press 2"]>0){let tz=n["Press 2"]||0;return n["Press 2"]=s((n["Press 2"]||0)-tz,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tz,n.b2=(n.b2||0)+1*tz,!0}if(n["Press 3"]>0){let tJ=n["Press 3"]||0;return n["Press 3"]=s((n["Press 3"]||0)-tJ,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tJ,n.b3=(n.b3||0)+1*tJ,!0}if(n["Press 4"]>0){let tK=n["Press 4"]||0;return n["Press 4"]=s((n["Press 4"]||0)-tK,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tK,n.b4=(n.b4||0)+1*tK,!0}if(n["Press 5"]>0){let tQ=n["Press 5"]||0;return n["Press 5"]=s((n["Press 5"]||0)-tQ,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tQ,n.b5=(n.b5||0)+1*tQ,!0}if(n["Press 6"]>0){let tV=n["Press 6"]||0;return n["Press 6"]=s((n["Press 6"]||0)-tV,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tV,n.b6=(n.b6||0)+1*tV,!0}if(n["Press 7"]>0){let tW=n["Press 7"]||0;return n["Press 7"]=s((n["Press 7"]||0)-tW,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tW,n.b7=(n.b7||0)+1*tW,!0}if(n["Press 8"]>0){let tY=n["Press 8"]||0;return n["Press 8"]=s((n["Press 8"]||0)-tY,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tY,n.b8=(n.b8||0)+1*tY,!0}if(n["Press 9"]>0){let tZ=n["Press 9"]||0;return n["Press 9"]=s((n["Press 9"]||0)-tZ,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*tZ,n.b9=(n.b9||0)+1*tZ,!0}if(n["Press Dot"]>0){let st=n["Press Dot"]||0;return n["Press Dot"]=s((n["Press Dot"]||0)-st,0),n["Number Button Pressed"]=(n["Number Button Pressed"]||0)+1*st,n["b."]=(n["b."]||0)+1*st,!0}return!1}return e.string_constants=["br","app","button","calc-output","div","AC","All Clear","C","Clear","0","9","8","7","6","5","4","3","2","1","+","/","*","-",".","=","Press 7","Press 8","Press 9","Press Divide","Press 4","Press 5","Press 6","Press Multiply","Press 1","Press 2","Press 3","Press Subtract","Press 0","Press Dot","Press Equal","Press Add",],e.counters={"ui init":1},e.on_log_string=function(t){let s=e.state.strings.shift();console.log(s);let r=document.querySelector("#log");r.append(s),r.append(document.createElement("br"))},e.on_clear_log=function(t){document.querySelector("#log").innerHTML=""},e.on_reset_ui=function(t){e.state.appElem&&(appElem.innerHTML="")},e.set_slot_DOM_id=function(){e.state.slots["DOM id"]=e.state.strings.shift()},e.fetch_slot_DOM_id=function(){e.state.strings.push(e.state.slots["DOM id"])},e.set_slot_inner_content=function(){e.state.slots["inner content"]=e.state.strings.shift()},e.fetch_slot_inner_content=function(){e.state.strings.push(e.state.slots["inner content"])},e.set_slot_vera_event=function(){e.state.slots["vera event"]=e.state.strings.shift()},e.fetch_slot_vera_event=function(){e.state.strings.push(e.state.slots["vera event"])},e.set_slot_num_A=function(){e.state.slots["num A"]=e.state.strings.shift()},e.fetch_slot_num_A=function(){e.state.strings.push(e.state.slots["num A"])},e.set_slot_num_B=function(){e.state.slots["num B"]=e.state.strings.shift()},e.fetch_slot_num_B=function(){e.state.strings.push(e.state.slots["num B"])},e.set_slot_acc=function(){e.state.slots.acc=e.state.strings.shift()},e.fetch_slot_acc=function(){e.state.strings.push(e.state.slots.acc)},e.set_slot_mem=function(){e.state.slots.mem=e.state.strings.shift()},e.fetch_slot_mem=function(){e.state.strings.push(e.state.slots.mem)},e.run=function(){let t=e.counters;for(;n(e,t););},e.log_state=function(){return Object.entries(e.counters).map(([t,s])=>`${t} :: ${s}`).join("\n")},e}