nadesiko3 3.3.63 → 3.3.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/batch/command.txt +15 -15
  2. package/core/package.json +4 -1
  3. package/core/src/nako3.mjs +5 -2
  4. package/core/src/nako3.mts +5 -4
  5. package/core/src/nako_core_version.mjs +2 -2
  6. package/core/src/nako_core_version.mts +2 -2
  7. package/core/src/nako_from_dncl.mjs +0 -254
  8. package/core/src/nako_from_dncl.mts +0 -247
  9. package/core/src/nako_from_dncl2.mjs +313 -0
  10. package/core/src/nako_from_dncl2.mts +299 -0
  11. package/core/src/nako_gen.mjs +1 -1
  12. package/core/src/nako_gen.mts +1 -1
  13. package/core/src/nako_indent_inline.mjs +152 -34
  14. package/core/src/nako_indent_inline.mts +132 -34
  15. package/core/src/nako_lex_rules.mjs +3 -2
  16. package/core/src/nako_lex_rules.mts +3 -2
  17. package/core/src/nako_lexer.mjs +27 -3
  18. package/core/src/nako_lexer.mts +27 -3
  19. package/core/src/nako_parser3.mjs +45 -14
  20. package/core/src/nako_parser3.mts +40 -18
  21. package/core/src/nako_prepare.mjs +13 -0
  22. package/core/src/nako_prepare.mts +11 -0
  23. package/core/src/nako_tools.mjs +53 -0
  24. package/core/src/nako_tools.mts +46 -0
  25. package/core/test/basic_test.mjs +16 -8
  26. package/core/test/dncl2_test.mjs +207 -0
  27. package/core/test/flow_test.mjs +42 -0
  28. package/core/test/indent_test.mjs +74 -50
  29. package/core/test/inline_indent_test.mjs +47 -0
  30. package/core/test/lex_test.mjs +1 -0
  31. package/demo/js/a.js +30 -0
  32. package/package.json +1 -1
  33. package/release/_hash.txt +16 -16
  34. package/release/_script-tags.txt +14 -14
  35. package/release/nako_gen_async.js +1 -1
  36. package/release/stats.json +1 -1
  37. package/release/version.js +1 -1
  38. package/release/wnako3.js +1 -1
  39. package/release/wnako3webworker.js +1 -1
  40. package/src/cnako3mod.mjs +43 -33
  41. package/src/cnako3mod.mts +45 -35
  42. package/src/nako_version.mjs +2 -2
  43. package/src/nako_version.mts +2 -2
  44. package/src/plugin_browser_canvas.mjs +5 -0
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-undef */
1
2
  import assert from 'assert'
2
3
  import { NakoCompiler } from '../src/nako3.mjs'
3
4
 
@@ -100,4 +101,50 @@ describe('inline_indent_test', async () => {
100
101
  ' 「b」と表示。\n',
101
102
  'a\na\na')
102
103
  })
104
+ it('2つ目の関数の定義が失敗する(#40)', async () => {
105
+ await cmp('' +
106
+ '●AAAとは:\n' +
107
+ '  それは30\n' +
108
+ '●BBBとは:\n' +
109
+ '  それは50\n' +
110
+ 'BBBを表示。', '50')
111
+ })
112
+ it('「もし」のネスト', async () => {
113
+ await cmp('' +
114
+ 'A=1;B=1;\n' +
115
+ 'もし,A=1ならば:\n' +
116
+ '  もし,B=1ならば:\n' +
117
+ '    「A=1,B=1」と表示\n' +
118
+ '  違えば:\n' +
119
+ '    「A=1,B=0」と表示\n' +
120
+ '違えば:\n' +
121
+ '  もし,B=1ならば:\n' +
122
+ '    「A=0,B=1」と表示\n' +
123
+ '  違えば:\n' +
124
+ '    「A=0,B=0」と表示\n' +
125
+ '', 'A=1,B=1')
126
+ await cmp('' +
127
+ 'A=0;B=0;\n' +
128
+ 'もし,A=1ならば:\n' +
129
+ '  もし,B=1ならば:\n' +
130
+ '    「A=1,B=1」と表示\n' +
131
+ '  違えば:\n' +
132
+ '    「A=1,B=0」と表示\n' +
133
+ '違えば:\n' +
134
+ '  もし,B=1ならば:\n' +
135
+ '    「A=0,B=1」と表示\n' +
136
+ '  違えば:\n' +
137
+ '    「A=0,B=0」と表示\n' +
138
+ '', 'A=0,B=0')
139
+ })
140
+ it('インラインインデントでJSON(core #46)', async () => {
141
+ await cmp('' +
142
+ 'A=[99]\nもしA[0]=99ならば:\n' +
143
+ '  A=[0,\n0]\n' +
144
+ 'A[0]を表示\n', '0')
145
+ await cmp('' +
146
+ 'A={"a":0,"b":0}\nもし1ならば:\n' +
147
+ '  A={"a":99,\n"b":99}\n' +
148
+ 'A["b"]を表示\n', '99')
149
+ })
103
150
  })
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-undef */
1
2
  import assert from 'assert'
2
3
  import { NakoCompiler } from '../src/nako3.mjs'
3
4
 
package/demo/js/a.js ADDED
@@ -0,0 +1,30 @@
1
+ const PluginActiveCheck = {
2
+ '初期化': {
3
+ type: 'func',
4
+ josi: [],
5
+ fn: function (sys) {
6
+ sys.__active = true
7
+ if (sys.__tid !== undefined) {
8
+ clearInterval(sys.__tid)
9
+ }
10
+ sys.__tid = setInterval(()=>{
11
+ console.log('__active=', sys.__active)
12
+ },1000)
13
+ }
14
+ },
15
+ '!クリア': {
16
+ type: 'func',
17
+ josi: [],
18
+ fn: function (sys) {
19
+ sys.__active = false
20
+ clearInterval(sys.__tid)
21
+ }
22
+ }
23
+ }
24
+
25
+ // CommonJS方式で自動登録を実装
26
+ if (typeof (navigator) === 'object') {
27
+ navigator.nako3.addPluginObject("PluginActiveCheck", PluginActiveCheck)
28
+ } else {
29
+ module.exports = pluginObj
30
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3",
3
- "version": "3.3.63",
3
+ "version": "3.3.64",
4
4
  "description": "Japanese Programming Language",
5
5
  "type": "module",
6
6
  "main": "src/index.mjs",
package/release/_hash.txt CHANGED
@@ -9,10 +9,10 @@ editor.js:
9
9
  sha256(base64): yCSRDXeRvPGZmcmxpMftkQCCVJrf2j1yx0rlCJqp0YE=
10
10
  sha512(base64): Smup6m3GPrnpjWnnedDl/Mi7Fg4xZQhomn3q84jigmkNQGLaByYGokLfhU18xW6lc9IOu+u9PRCauoQhlCgGZw==
11
11
  nako_gen_async.js:
12
- md5(hex): 6968892ef7cbce1a0db0ea7d8f8c3dc8
13
- sha256(hex): 7cd4b0d455fbaf4a4d0105c3f858e5cf4e3cb6db9c92a360e0f07d88bc62bf37
14
- sha256(base64): fNSw1FX7r0pNAQXD+Fjlz048ttuckqNg4PB9iLxivzc=
15
- sha512(base64): Vhw/ex/EyYmdZBxIcVDTI2JgMBmOc3mhltKuUunj0IaU9D7kfnzFuhuVyiA5K2hOoYfsR7v1xaa1eXWsI3Kdrw==
12
+ md5(hex): fbe87551dbfb1a88bb36e581bdcc7046
13
+ sha256(hex): 28270f2a6d871cfce1b2d7a3715d75a67cc7e8bad4e96512ecb7224bf74b9dfb
14
+ sha256(base64): KCcPKm2HHPzhstejcV11pnzH6LrU6WUS7LciS/dLnfs=
15
+ sha512(base64): yk+ES2Y55BhYfK4mL0s/CqqfgSshxw9sdAkjffu2xpwSyKKRMr1VF7EYRw6V1igfbGD4I6S/kpT9pZk/8oCNfw==
16
16
  plugin_caniuse.js:
17
17
  md5(hex): 95a7a5c98a92a46b6435e577daba3241
18
18
  sha256(hex): 57638b3979be70b45ab8085861f6b2ece43200bd6aa92765d73caf76b9e6fea9
@@ -54,17 +54,17 @@ plugin_weykturtle3d.js:
54
54
  sha256(base64): ND/1JqYrFVGTIPYsbBk+tScnF8RVzgYPM0/E2aE8GRw=
55
55
  sha512(base64): T4B8Cvhn9j5YdMGk4rwPInfqmcXtGEjD2g6X6wSqXvYyIXuSy+t1RVf1viZ2zljHlk3wN6pwKvvg/NIJvfMAzw==
56
56
  version.js:
57
- md5(hex): 1f1c94bb7423de4a3c8c19a9a5bd5cbf
58
- sha256(hex): 0226adcf0bfbad5b5cc28a4879b063d0cb29465781f3d26c5b1f7e65b3926593
59
- sha256(base64): Aiatzwv7rVtcwopIebBj0MspRleB89JsWx9+ZbOSZZM=
60
- sha512(base64): DyAPxfDv5Q2fbbC9IJidx8sM2T2iCYfthM2UwmLuIAK7Eox3M9oMpepx8MqJTsLqT5kIwUG8h0WK/zrofWVFBg==
57
+ md5(hex): c7f1fd936c048caf8ac0fc6c0896fff4
58
+ sha256(hex): 19db94f870b0be7122a14762f952781123a174a81d97d05c4c72ec059eb6b5ac
59
+ sha256(base64): GduU+HCwvnEioUdi+VJ4ESOhdKgdl9BcTHLsBZ62taw=
60
+ sha512(base64): cvQX/02nmJTUJ8UE8xAuVyYFiedlpALEEH2ygSA8BqUWHzzVcml7d9VkIC7j/+Kmzp4/Ildpeh85eUPz1/X+8Q==
61
61
  wnako3.js:
62
- md5(hex): 9e33a345effaa9138fca7c5dee14cf88
63
- sha256(hex): 16989d5700143641a800de611d4eaf12d967ab7a1c3692e383b3d0a4d3217214
64
- sha256(base64): FpidVwAUNkGoAN5hHU6vEtlnq3ocNpLjg7PQpNMhchQ=
65
- sha512(base64): xV+AB3l38DI0AAx6o9VcxRS2NhUHHsvz8v6DbJXDbRhIgmBBSfGx2mzAri+iTn0WgXA2lmwyk0nWjnNt315CuA==
62
+ md5(hex): 23a9d97348fd9cd563a8c1f9809180e9
63
+ sha256(hex): 5a688c513bb9b1c5c928e8a9f7abbd58496faa82978ca66608684fe7a7a4251f
64
+ sha256(base64): WmiMUTu5scXJKOip96u9WElvqoKXjKZmCGhP56ekJR8=
65
+ sha512(base64): uo+98+GwN/P7xEvHfgh2MStl2y5PpyQ/MtCSnumKMljfGHsVOsSD3EqsKZCeGDea/30xuUTBnC4frIBBq83jaQ==
66
66
  wnako3webworker.js:
67
- md5(hex): 2037184355f0eee59ce3ab06533b58f1
68
- sha256(hex): ccae1874db3853798eeea1b977c5a5f4bd5ad86dfefd2eadb1e55ac42155233a
69
- sha256(base64): zK4YdNs4U3mO7qG5d8Wl9L1a2G3+/S6tseVaxCFVIzo=
70
- sha512(base64): SVGahPR/RbmwzXw/cHzWSpDV8XDXXx7Ihmwvz+4q23aJg0eDGL8WTd9NiRWAEpRm/VIadBj1PDE6tcuu4scXYA==
67
+ md5(hex): 2b73c6ea16ce17069fe96b85fcb7a849
68
+ sha256(hex): 954994fc4ab81d4c64552f840a1c91dd5a3eb0b5268d325c6cf470dbdf31f18d
69
+ sha256(base64): lUmU/Eq4HUxkVS+EChyR3Vo+sLUmjTJcbPRw298x8Y0=
70
+ sha512(base64): pP85w6f7IDe/ZUMaushFO5a/XPrikM6hXGcU1zhhXTnRoO4DKtnzlosimlq+EI0ZkQz6RhLg4XJE5ioSUCovdg==
@@ -1,14 +1,14 @@
1
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/command.json.js" integrity="sha512-oymKntu7VidEOP8+ZFUV/5YWCb+AjbzkUll5EdVg4yWy8OOJpY0gxolztfcHE+WPu0hkOB/lCaP9L4YNHRiRvQ==" crossorigin="anonymous"></script>
2
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/editor.js" integrity="sha512-Smup6m3GPrnpjWnnedDl/Mi7Fg4xZQhomn3q84jigmkNQGLaByYGokLfhU18xW6lc9IOu+u9PRCauoQhlCgGZw==" crossorigin="anonymous"></script>
3
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/nako_gen_async.js" integrity="sha512-Vhw/ex/EyYmdZBxIcVDTI2JgMBmOc3mhltKuUunj0IaU9D7kfnzFuhuVyiA5K2hOoYfsR7v1xaa1eXWsI3Kdrw==" crossorigin="anonymous"></script>
4
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_caniuse.js" integrity="sha512-NbX6BKUNq1J8xwtv5CThQC54Lb/KxaPlimRpsF745nxqjYeuGD7S70j4yOgNm4Uwd7AN5FgezS6NDyhlvoJF2w==" crossorigin="anonymous"></script>
5
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_csv.js" integrity="sha512-mQvmj25L2Nc2L7gN1rTjayHVMMPhc7TCSiBsuKS4JKOQqN+91uj9qpLAOejzR1ib5jIOBdtrhN+secNTU9BJtw==" crossorigin="anonymous"></script>
6
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_datetime.js" integrity="sha512-1ADTZFkcfU6vpEEJZEYmIbqS6G2XViooDFD4198P61n7VKZ0PhEVj9l8ULFGrW7woSbDqfSPZmkZ7yvcRqPKYA==" crossorigin="anonymous"></script>
7
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_kansuji.js" integrity="sha512-tXC9Q6LejwYG+HUbXcwBHFmhwTsqiMHOBohLNcSx8b02hxk3waPUEQRWeNP7QxAFMv5BOAY+Grruf+XKmmU26g==" crossorigin="anonymous"></script>
8
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_markup.js" integrity="sha512-pvb+QYO9LMUH055nPJJ5QaWyEYR3wDkHHilV5LLNyxObs7enlHGiF7Jt3Csd93JTdJ3n9hxFbTqWa1QuzVmTfQ==" crossorigin="anonymous"></script>
9
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_turtle.js" integrity="sha512-3/BlAe3uVDBgJrgFWzLJa3bvNQVhAQuL343Icict5hI3LndcPjV6mAD8KoWRlxmF8A8S6n8eKnmrh6NFWTjyEw==" crossorigin="anonymous"></script>
10
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_webworker.js" integrity="sha512-JLlIg9cW9UgM2AT+qMgEuKvea3t8R+1jihhlN/QGDQe7iCaGEfXfKG5gpvRb0IUyisNfzncUN8AfLn9wyxGGiw==" crossorigin="anonymous"></script>
11
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/plugin_weykturtle3d.js" integrity="sha512-T4B8Cvhn9j5YdMGk4rwPInfqmcXtGEjD2g6X6wSqXvYyIXuSy+t1RVf1viZ2zljHlk3wN6pwKvvg/NIJvfMAzw==" crossorigin="anonymous"></script>
12
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/version.js" integrity="sha512-DyAPxfDv5Q2fbbC9IJidx8sM2T2iCYfthM2UwmLuIAK7Eox3M9oMpepx8MqJTsLqT5kIwUG8h0WK/zrofWVFBg==" crossorigin="anonymous"></script>
13
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/wnako3.js" integrity="sha512-xV+AB3l38DI0AAx6o9VcxRS2NhUHHsvz8v6DbJXDbRhIgmBBSfGx2mzAri+iTn0WgXA2lmwyk0nWjnNt315CuA==" crossorigin="anonymous"></script>
14
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.63&f=release/wnako3webworker.js" integrity="sha512-SVGahPR/RbmwzXw/cHzWSpDV8XDXXx7Ihmwvz+4q23aJg0eDGL8WTd9NiRWAEpRm/VIadBj1PDE6tcuu4scXYA==" crossorigin="anonymous"></script>
1
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/command.json.js" integrity="sha512-oymKntu7VidEOP8+ZFUV/5YWCb+AjbzkUll5EdVg4yWy8OOJpY0gxolztfcHE+WPu0hkOB/lCaP9L4YNHRiRvQ==" crossorigin="anonymous"></script>
2
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/editor.js" integrity="sha512-Smup6m3GPrnpjWnnedDl/Mi7Fg4xZQhomn3q84jigmkNQGLaByYGokLfhU18xW6lc9IOu+u9PRCauoQhlCgGZw==" crossorigin="anonymous"></script>
3
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/nako_gen_async.js" integrity="sha512-yk+ES2Y55BhYfK4mL0s/CqqfgSshxw9sdAkjffu2xpwSyKKRMr1VF7EYRw6V1igfbGD4I6S/kpT9pZk/8oCNfw==" crossorigin="anonymous"></script>
4
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_caniuse.js" integrity="sha512-NbX6BKUNq1J8xwtv5CThQC54Lb/KxaPlimRpsF745nxqjYeuGD7S70j4yOgNm4Uwd7AN5FgezS6NDyhlvoJF2w==" crossorigin="anonymous"></script>
5
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_csv.js" integrity="sha512-mQvmj25L2Nc2L7gN1rTjayHVMMPhc7TCSiBsuKS4JKOQqN+91uj9qpLAOejzR1ib5jIOBdtrhN+secNTU9BJtw==" crossorigin="anonymous"></script>
6
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_datetime.js" integrity="sha512-1ADTZFkcfU6vpEEJZEYmIbqS6G2XViooDFD4198P61n7VKZ0PhEVj9l8ULFGrW7woSbDqfSPZmkZ7yvcRqPKYA==" crossorigin="anonymous"></script>
7
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_kansuji.js" integrity="sha512-tXC9Q6LejwYG+HUbXcwBHFmhwTsqiMHOBohLNcSx8b02hxk3waPUEQRWeNP7QxAFMv5BOAY+Grruf+XKmmU26g==" crossorigin="anonymous"></script>
8
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_markup.js" integrity="sha512-pvb+QYO9LMUH055nPJJ5QaWyEYR3wDkHHilV5LLNyxObs7enlHGiF7Jt3Csd93JTdJ3n9hxFbTqWa1QuzVmTfQ==" crossorigin="anonymous"></script>
9
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_turtle.js" integrity="sha512-3/BlAe3uVDBgJrgFWzLJa3bvNQVhAQuL343Icict5hI3LndcPjV6mAD8KoWRlxmF8A8S6n8eKnmrh6NFWTjyEw==" crossorigin="anonymous"></script>
10
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_webworker.js" integrity="sha512-JLlIg9cW9UgM2AT+qMgEuKvea3t8R+1jihhlN/QGDQe7iCaGEfXfKG5gpvRb0IUyisNfzncUN8AfLn9wyxGGiw==" crossorigin="anonymous"></script>
11
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/plugin_weykturtle3d.js" integrity="sha512-T4B8Cvhn9j5YdMGk4rwPInfqmcXtGEjD2g6X6wSqXvYyIXuSy+t1RVf1viZ2zljHlk3wN6pwKvvg/NIJvfMAzw==" crossorigin="anonymous"></script>
12
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/version.js" integrity="sha512-cvQX/02nmJTUJ8UE8xAuVyYFiedlpALEEH2ygSA8BqUWHzzVcml7d9VkIC7j/+Kmzp4/Ildpeh85eUPz1/X+8Q==" crossorigin="anonymous"></script>
13
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/wnako3.js" integrity="sha512-uo+98+GwN/P7xEvHfgh2MStl2y5PpyQ/MtCSnumKMljfGHsVOsSD3EqsKZCeGDea/30xuUTBnC4frIBBq83jaQ==" crossorigin="anonymous"></script>
14
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.3.64&f=release/wnako3webworker.js" integrity="sha512-pP85w6f7IDe/ZUMaushFO5a/XPrikM6hXGcU1zhhXTnRoO4DKtnzlosimlq+EI0ZkQz6RhLg4XJE5ioSUCovdg==" crossorigin="anonymous"></script>